From 568621ef390a9ac2c0b6540830e9ea959b9e3ad6 Mon Sep 17 00:00:00 2001 From: Larry Masinter Date: Mon, 1 Dec 2025 15:07:07 -0800 Subject: [PATCH] Relegate old primer to history (#2385) * Relegate old primer to history * Old primer converted to HTML also removed --- docs/html-primer/Medley-Primer-OnePage.html | 2 - .../Medley-Primer-OnePage_files/Image_001.png | Bin 772 -> 0 bytes .../Medley-Primer-OnePage_files/Image_002.png | Bin 799 -> 0 bytes .../Medley-Primer-OnePage_files/Image_003.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_004.png | Bin 488 -> 0 bytes .../Medley-Primer-OnePage_files/Image_005.png | Bin 420 -> 0 bytes .../Medley-Primer-OnePage_files/Image_006.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_007.gif | Bin 98 -> 0 bytes .../Medley-Primer-OnePage_files/Image_008.gif | Bin 97 -> 0 bytes .../Medley-Primer-OnePage_files/Image_009.gif | Bin 99 -> 0 bytes .../Medley-Primer-OnePage_files/Image_010.gif | Bin 69 -> 0 bytes .../Medley-Primer-OnePage_files/Image_011.gif | Bin 1973 -> 0 bytes .../Medley-Primer-OnePage_files/Image_012.gif | Bin 577 -> 0 bytes .../Medley-Primer-OnePage_files/Image_013.gif | Bin 836 -> 0 bytes .../Medley-Primer-OnePage_files/Image_014.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_015.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_016.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_017.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_018.gif | Bin 925 -> 0 bytes .../Medley-Primer-OnePage_files/Image_019.gif | Bin 916 -> 0 bytes .../Medley-Primer-OnePage_files/Image_020.gif | Bin 1816 -> 0 bytes .../Medley-Primer-OnePage_files/Image_021.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_022.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_023.gif | Bin 792 -> 0 bytes .../Medley-Primer-OnePage_files/Image_024.gif | Bin 1191 -> 0 bytes .../Medley-Primer-OnePage_files/Image_025.gif | Bin 312 -> 0 bytes .../Medley-Primer-OnePage_files/Image_026.gif | Bin 828 -> 0 bytes .../Medley-Primer-OnePage_files/Image_027.gif | Bin 1408 -> 0 bytes .../Medley-Primer-OnePage_files/Image_028.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_029.gif | Bin 1614 -> 0 bytes .../Medley-Primer-OnePage_files/Image_030.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_031.gif | Bin 1543 -> 0 bytes .../Medley-Primer-OnePage_files/Image_032.gif | Bin 1920 -> 0 bytes .../Medley-Primer-OnePage_files/Image_033.gif | Bin 1532 -> 0 bytes .../Medley-Primer-OnePage_files/Image_034.gif | Bin 1362 -> 0 bytes .../Medley-Primer-OnePage_files/Image_035.gif | Bin 1231 -> 0 bytes .../Medley-Primer-OnePage_files/Image_036.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_037.gif | Bin 2146 -> 0 bytes .../Medley-Primer-OnePage_files/Image_038.png | Bin 9720 -> 0 bytes .../Medley-Primer-OnePage_files/Image_039.gif | Bin 3130 -> 0 bytes .../Medley-Primer-OnePage_files/Image_040.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_041.gif | Bin 3177 -> 0 bytes .../Medley-Primer-OnePage_files/Image_042.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_043.gif | Bin 741 -> 0 bytes .../Medley-Primer-OnePage_files/Image_044.gif | Bin 871 -> 0 bytes .../Medley-Primer-OnePage_files/Image_045.gif | Bin 660 -> 0 bytes .../Medley-Primer-OnePage_files/Image_046.gif | Bin 751 -> 0 bytes .../Medley-Primer-OnePage_files/Image_047.gif | Bin 69 -> 0 bytes .../Medley-Primer-OnePage_files/Image_048.gif | Bin 727 -> 0 bytes .../Medley-Primer-OnePage_files/Image_049.gif | Bin 892 -> 0 bytes .../Medley-Primer-OnePage_files/Image_050.gif | Bin 2367 -> 0 bytes .../Medley-Primer-OnePage_files/Image_051.gif | Bin 78 -> 0 bytes .../Medley-Primer-OnePage_files/Image_052.gif | Bin 77 -> 0 bytes .../Medley-Primer-OnePage_files/Image_053.gif | Bin 70 -> 0 bytes .../Medley-Primer-OnePage_files/Image_054.gif | Bin 1193 -> 0 bytes .../Medley-Primer-OnePage_files/Image_055.gif | Bin 947 -> 0 bytes .../Medley-Primer-OnePage_files/Image_056.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_057.gif | Bin 1638 -> 0 bytes .../Medley-Primer-OnePage_files/Image_058.gif | Bin 1335 -> 0 bytes .../Medley-Primer-OnePage_files/Image_059.gif | Bin 2500 -> 0 bytes .../Medley-Primer-OnePage_files/Image_060.gif | Bin 1609 -> 0 bytes .../Medley-Primer-OnePage_files/Image_061.gif | Bin 1749 -> 0 bytes .../Medley-Primer-OnePage_files/Image_062.gif | Bin 1757 -> 0 bytes .../Medley-Primer-OnePage_files/Image_063.gif | Bin 1739 -> 0 bytes .../Medley-Primer-OnePage_files/Image_064.gif | Bin 2176 -> 0 bytes .../Medley-Primer-OnePage_files/Image_065.gif | Bin 4181 -> 0 bytes .../Medley-Primer-OnePage_files/Image_066.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_067.gif | Bin 1428 -> 0 bytes .../Medley-Primer-OnePage_files/Image_068.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_069.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_070.gif | Bin 2084 -> 0 bytes .../Medley-Primer-OnePage_files/Image_071.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_072.gif | Bin 1216 -> 0 bytes .../Medley-Primer-OnePage_files/Image_073.gif | Bin 2773 -> 0 bytes .../Medley-Primer-OnePage_files/Image_074.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_075.gif | Bin 544 -> 0 bytes .../Medley-Primer-OnePage_files/Image_076.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_077.gif | Bin 2143 -> 0 bytes .../Medley-Primer-OnePage_files/Image_078.gif | Bin 661 -> 0 bytes .../Medley-Primer-OnePage_files/Image_079.gif | Bin 1318 -> 0 bytes .../Medley-Primer-OnePage_files/Image_080.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_081.gif | Bin 1704 -> 0 bytes .../Medley-Primer-OnePage_files/Image_082.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_083.gif | Bin 3854 -> 0 bytes .../Medley-Primer-OnePage_files/Image_084.gif | Bin 4280 -> 0 bytes .../Medley-Primer-OnePage_files/Image_085.gif | Bin 5611 -> 0 bytes .../Medley-Primer-OnePage_files/Image_086.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_087.gif | Bin 1992 -> 0 bytes .../Medley-Primer-OnePage_files/Image_088.gif | Bin 901 -> 0 bytes .../Medley-Primer-OnePage_files/Image_089.gif | Bin 6814 -> 0 bytes .../Medley-Primer-OnePage_files/Image_090.gif | Bin 2133 -> 0 bytes .../Medley-Primer-OnePage_files/Image_091.gif | Bin 2115 -> 0 bytes .../Medley-Primer-OnePage_files/Image_092.gif | Bin 7705 -> 0 bytes .../Medley-Primer-OnePage_files/Image_093.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_094.gif | Bin 2693 -> 0 bytes .../Medley-Primer-OnePage_files/Image_095.gif | Bin 5171 -> 0 bytes .../Medley-Primer-OnePage_files/Image_096.gif | Bin 2972 -> 0 bytes .../Medley-Primer-OnePage_files/Image_097.gif | Bin 3354 -> 0 bytes .../Medley-Primer-OnePage_files/Image_098.gif | Bin 3774 -> 0 bytes .../Medley-Primer-OnePage_files/Image_099.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_100.gif | Bin 1123 -> 0 bytes .../Medley-Primer-OnePage_files/Image_101.gif | Bin 1136 -> 0 bytes .../Medley-Primer-OnePage_files/Image_102.gif | Bin 1318 -> 0 bytes .../Medley-Primer-OnePage_files/Image_103.gif | Bin 1401 -> 0 bytes .../Medley-Primer-OnePage_files/Image_104.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_105.gif | Bin 4243 -> 0 bytes .../Medley-Primer-OnePage_files/Image_106.gif | Bin 4312 -> 0 bytes .../Medley-Primer-OnePage_files/Image_107.gif | Bin 1081 -> 0 bytes .../Medley-Primer-OnePage_files/Image_108.gif | Bin 1096 -> 0 bytes .../Medley-Primer-OnePage_files/Image_109.gif | Bin 674 -> 0 bytes .../Medley-Primer-OnePage_files/Image_110.gif | Bin 2179 -> 0 bytes .../Medley-Primer-OnePage_files/Image_111.gif | Bin 5872 -> 0 bytes .../Medley-Primer-OnePage_files/Image_112.gif | Bin 2794 -> 0 bytes .../Medley-Primer-OnePage_files/Image_113.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_114.gif | Bin 709 -> 0 bytes .../Medley-Primer-OnePage_files/Image_115.gif | Bin 600 -> 0 bytes .../Medley-Primer-OnePage_files/Image_116.gif | Bin 978 -> 0 bytes .../Medley-Primer-OnePage_files/Image_117.gif | Bin 1342 -> 0 bytes .../Medley-Primer-OnePage_files/Image_118.gif | Bin 967 -> 0 bytes .../Medley-Primer-OnePage_files/Image_119.gif | Bin 1916 -> 0 bytes .../Medley-Primer-OnePage_files/Image_120.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_121.gif | Bin 3701 -> 0 bytes .../Medley-Primer-OnePage_files/Image_122.gif | Bin 1934 -> 0 bytes .../Medley-Primer-OnePage_files/Image_123.gif | Bin 3732 -> 0 bytes .../Medley-Primer-OnePage_files/Image_124.gif | Bin 1999 -> 0 bytes .../Medley-Primer-OnePage_files/Image_125.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_126.gif | Bin 1011 -> 0 bytes .../Medley-Primer-OnePage_files/Image_127.gif | Bin 1708 -> 0 bytes .../Medley-Primer-OnePage_files/Image_128.gif | Bin 2713 -> 0 bytes .../Medley-Primer-OnePage_files/Image_129.gif | Bin 2713 -> 0 bytes .../Medley-Primer-OnePage_files/Image_130.gif | Bin 1544 -> 0 bytes .../Medley-Primer-OnePage_files/Image_131.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_132.gif | Bin 2713 -> 0 bytes .../Medley-Primer-OnePage_files/Image_133.gif | Bin 1439 -> 0 bytes .../Medley-Primer-OnePage_files/Image_134.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_135.gif | Bin 837 -> 0 bytes .../Medley-Primer-OnePage_files/Image_136.gif | Bin 795 -> 0 bytes .../Medley-Primer-OnePage_files/Image_137.gif | Bin 4560 -> 0 bytes .../Medley-Primer-OnePage_files/Image_138.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_139.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_140.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_141.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_142.gif | Bin 2620 -> 0 bytes .../Medley-Primer-OnePage_files/Image_143.gif | Bin 6383 -> 0 bytes .../Medley-Primer-OnePage_files/Image_144.gif | Bin 2048 -> 0 bytes .../Medley-Primer-OnePage_files/Image_145.gif | Bin 1650 -> 0 bytes .../Medley-Primer-OnePage_files/Image_146.gif | Bin 739 -> 0 bytes .../Medley-Primer-OnePage_files/Image_147.gif | Bin 582 -> 0 bytes .../Medley-Primer-OnePage_files/Image_148.gif | Bin 843 -> 0 bytes .../Medley-Primer-OnePage_files/Image_149.gif | Bin 597 -> 0 bytes .../Medley-Primer-OnePage_files/Image_150.gif | Bin 828 -> 0 bytes .../Medley-Primer-OnePage_files/Image_151.gif | Bin 580 -> 0 bytes .../Medley-Primer-OnePage_files/Image_152.gif | Bin 681 -> 0 bytes .../Medley-Primer-OnePage_files/Image_153.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_154.gif | Bin 2170 -> 0 bytes .../Medley-Primer-OnePage_files/Image_155.gif | Bin 2190 -> 0 bytes .../Medley-Primer-OnePage_files/Image_156.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/Image_157.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_158.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_159.gif | Bin 2758 -> 0 bytes .../Medley-Primer-OnePage_files/Image_160.png | Bin 162 -> 0 bytes .../Medley-Primer-OnePage_files/Image_161.png | Bin 320 -> 0 bytes .../Medley-Primer-OnePage_files/content.htm | 103 ------------------ .../Medley-Primer-OnePage_files/headings.htm | 47 -------- docs/html-primer/Medley-Primer.html | 2 - .../Medley-Primer_files/Image_001.png | Bin 772 -> 0 bytes .../Medley-Primer_files/Image_002.png | Bin 799 -> 0 bytes .../Medley-Primer_files/Image_003.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_004.png | Bin 488 -> 0 bytes .../Medley-Primer_files/Image_005.png | Bin 420 -> 0 bytes .../Medley-Primer_files/Image_006.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_007.gif | Bin 98 -> 0 bytes .../Medley-Primer_files/Image_008.gif | Bin 97 -> 0 bytes .../Medley-Primer_files/Image_009.gif | Bin 99 -> 0 bytes .../Medley-Primer_files/Image_010.gif | Bin 69 -> 0 bytes .../Medley-Primer_files/Image_011.gif | Bin 1973 -> 0 bytes .../Medley-Primer_files/Image_012.gif | Bin 577 -> 0 bytes .../Medley-Primer_files/Image_013.gif | Bin 836 -> 0 bytes .../Medley-Primer_files/Image_014.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_015.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_016.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_017.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_018.gif | Bin 925 -> 0 bytes .../Medley-Primer_files/Image_019.gif | Bin 916 -> 0 bytes .../Medley-Primer_files/Image_020.gif | Bin 1816 -> 0 bytes .../Medley-Primer_files/Image_021.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_022.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_023.gif | Bin 792 -> 0 bytes .../Medley-Primer_files/Image_024.gif | Bin 1191 -> 0 bytes .../Medley-Primer_files/Image_025.gif | Bin 312 -> 0 bytes .../Medley-Primer_files/Image_026.gif | Bin 828 -> 0 bytes .../Medley-Primer_files/Image_027.gif | Bin 1408 -> 0 bytes .../Medley-Primer_files/Image_028.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_029.gif | Bin 1614 -> 0 bytes .../Medley-Primer_files/Image_030.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_031.gif | Bin 1543 -> 0 bytes .../Medley-Primer_files/Image_032.gif | Bin 1920 -> 0 bytes .../Medley-Primer_files/Image_033.gif | Bin 1532 -> 0 bytes .../Medley-Primer_files/Image_034.gif | Bin 1362 -> 0 bytes .../Medley-Primer_files/Image_035.gif | Bin 1231 -> 0 bytes .../Medley-Primer_files/Image_036.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_037.gif | Bin 2146 -> 0 bytes .../Medley-Primer_files/Image_038.png | Bin 9720 -> 0 bytes .../Medley-Primer_files/Image_039.gif | Bin 3130 -> 0 bytes .../Medley-Primer_files/Image_040.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_041.gif | Bin 3177 -> 0 bytes .../Medley-Primer_files/Image_042.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_043.gif | Bin 741 -> 0 bytes .../Medley-Primer_files/Image_044.gif | Bin 871 -> 0 bytes .../Medley-Primer_files/Image_045.gif | Bin 660 -> 0 bytes .../Medley-Primer_files/Image_046.gif | Bin 751 -> 0 bytes .../Medley-Primer_files/Image_047.gif | Bin 69 -> 0 bytes .../Medley-Primer_files/Image_048.gif | Bin 727 -> 0 bytes .../Medley-Primer_files/Image_049.gif | Bin 892 -> 0 bytes .../Medley-Primer_files/Image_050.gif | Bin 2367 -> 0 bytes .../Medley-Primer_files/Image_051.gif | Bin 78 -> 0 bytes .../Medley-Primer_files/Image_052.gif | Bin 77 -> 0 bytes .../Medley-Primer_files/Image_053.gif | Bin 70 -> 0 bytes .../Medley-Primer_files/Image_054.gif | Bin 1193 -> 0 bytes .../Medley-Primer_files/Image_055.gif | Bin 947 -> 0 bytes .../Medley-Primer_files/Image_056.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_057.gif | Bin 1638 -> 0 bytes .../Medley-Primer_files/Image_058.gif | Bin 1335 -> 0 bytes .../Medley-Primer_files/Image_059.gif | Bin 2500 -> 0 bytes .../Medley-Primer_files/Image_060.gif | Bin 1609 -> 0 bytes .../Medley-Primer_files/Image_061.gif | Bin 1749 -> 0 bytes .../Medley-Primer_files/Image_062.gif | Bin 1757 -> 0 bytes .../Medley-Primer_files/Image_063.gif | Bin 1739 -> 0 bytes .../Medley-Primer_files/Image_064.gif | Bin 2176 -> 0 bytes .../Medley-Primer_files/Image_065.gif | Bin 4181 -> 0 bytes .../Medley-Primer_files/Image_066.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_067.gif | Bin 1428 -> 0 bytes .../Medley-Primer_files/Image_068.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_069.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_070.gif | Bin 2084 -> 0 bytes .../Medley-Primer_files/Image_071.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_072.gif | Bin 1216 -> 0 bytes .../Medley-Primer_files/Image_073.gif | Bin 2773 -> 0 bytes .../Medley-Primer_files/Image_074.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_075.gif | Bin 544 -> 0 bytes .../Medley-Primer_files/Image_076.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_077.gif | Bin 2143 -> 0 bytes .../Medley-Primer_files/Image_078.gif | Bin 661 -> 0 bytes .../Medley-Primer_files/Image_079.gif | Bin 1318 -> 0 bytes .../Medley-Primer_files/Image_080.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_081.gif | Bin 1704 -> 0 bytes .../Medley-Primer_files/Image_082.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_083.gif | Bin 3854 -> 0 bytes .../Medley-Primer_files/Image_084.gif | Bin 4280 -> 0 bytes .../Medley-Primer_files/Image_085.gif | Bin 5611 -> 0 bytes .../Medley-Primer_files/Image_086.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_087.gif | Bin 1992 -> 0 bytes .../Medley-Primer_files/Image_088.gif | Bin 901 -> 0 bytes .../Medley-Primer_files/Image_089.gif | Bin 6814 -> 0 bytes .../Medley-Primer_files/Image_090.gif | Bin 2133 -> 0 bytes .../Medley-Primer_files/Image_091.gif | Bin 2115 -> 0 bytes .../Medley-Primer_files/Image_092.gif | Bin 7705 -> 0 bytes .../Medley-Primer_files/Image_093.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_094.gif | Bin 2693 -> 0 bytes .../Medley-Primer_files/Image_095.gif | Bin 5171 -> 0 bytes .../Medley-Primer_files/Image_096.gif | Bin 2972 -> 0 bytes .../Medley-Primer_files/Image_097.gif | Bin 3354 -> 0 bytes .../Medley-Primer_files/Image_098.gif | Bin 3774 -> 0 bytes .../Medley-Primer_files/Image_099.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_100.gif | Bin 1123 -> 0 bytes .../Medley-Primer_files/Image_101.gif | Bin 1136 -> 0 bytes .../Medley-Primer_files/Image_102.gif | Bin 1318 -> 0 bytes .../Medley-Primer_files/Image_103.gif | Bin 1401 -> 0 bytes .../Medley-Primer_files/Image_104.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_105.gif | Bin 4243 -> 0 bytes .../Medley-Primer_files/Image_106.gif | Bin 4312 -> 0 bytes .../Medley-Primer_files/Image_107.gif | Bin 1081 -> 0 bytes .../Medley-Primer_files/Image_108.gif | Bin 1096 -> 0 bytes .../Medley-Primer_files/Image_109.gif | Bin 674 -> 0 bytes .../Medley-Primer_files/Image_110.gif | Bin 2179 -> 0 bytes .../Medley-Primer_files/Image_111.gif | Bin 5872 -> 0 bytes .../Medley-Primer_files/Image_112.gif | Bin 2794 -> 0 bytes .../Medley-Primer_files/Image_113.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_114.gif | Bin 709 -> 0 bytes .../Medley-Primer_files/Image_115.gif | Bin 600 -> 0 bytes .../Medley-Primer_files/Image_116.gif | Bin 978 -> 0 bytes .../Medley-Primer_files/Image_117.gif | Bin 1342 -> 0 bytes .../Medley-Primer_files/Image_118.gif | Bin 967 -> 0 bytes .../Medley-Primer_files/Image_119.gif | Bin 1916 -> 0 bytes .../Medley-Primer_files/Image_120.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_121.gif | Bin 3701 -> 0 bytes .../Medley-Primer_files/Image_122.gif | Bin 1934 -> 0 bytes .../Medley-Primer_files/Image_123.gif | Bin 3732 -> 0 bytes .../Medley-Primer_files/Image_124.gif | Bin 1999 -> 0 bytes .../Medley-Primer_files/Image_125.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_126.gif | Bin 1011 -> 0 bytes .../Medley-Primer_files/Image_127.gif | Bin 1708 -> 0 bytes .../Medley-Primer_files/Image_128.gif | Bin 2713 -> 0 bytes .../Medley-Primer_files/Image_129.gif | Bin 2713 -> 0 bytes .../Medley-Primer_files/Image_130.gif | Bin 1544 -> 0 bytes .../Medley-Primer_files/Image_131.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_132.gif | Bin 2713 -> 0 bytes .../Medley-Primer_files/Image_133.gif | Bin 1439 -> 0 bytes .../Medley-Primer_files/Image_134.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_135.gif | Bin 837 -> 0 bytes .../Medley-Primer_files/Image_136.gif | Bin 795 -> 0 bytes .../Medley-Primer_files/Image_137.gif | Bin 4560 -> 0 bytes .../Medley-Primer_files/Image_138.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_139.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_140.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_141.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_142.gif | Bin 2620 -> 0 bytes .../Medley-Primer_files/Image_143.gif | Bin 6383 -> 0 bytes .../Medley-Primer_files/Image_144.gif | Bin 2048 -> 0 bytes .../Medley-Primer_files/Image_145.gif | Bin 1650 -> 0 bytes .../Medley-Primer_files/Image_146.gif | Bin 739 -> 0 bytes .../Medley-Primer_files/Image_147.gif | Bin 582 -> 0 bytes .../Medley-Primer_files/Image_148.gif | Bin 843 -> 0 bytes .../Medley-Primer_files/Image_149.gif | Bin 597 -> 0 bytes .../Medley-Primer_files/Image_150.gif | Bin 828 -> 0 bytes .../Medley-Primer_files/Image_151.gif | Bin 580 -> 0 bytes .../Medley-Primer_files/Image_152.gif | Bin 681 -> 0 bytes .../Medley-Primer_files/Image_153.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_154.gif | Bin 2170 -> 0 bytes .../Medley-Primer_files/Image_155.gif | Bin 2190 -> 0 bytes .../Medley-Primer_files/Image_156.png | Bin 320 -> 0 bytes .../Medley-Primer_files/Image_157.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_158.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_159.gif | Bin 2758 -> 0 bytes .../Medley-Primer_files/Image_160.png | Bin 162 -> 0 bytes .../Medley-Primer_files/Image_161.png | Bin 320 -> 0 bytes .../Medley-Primer_files/document.css | 20 ---- .../Medley-Primer_files/navigation.css | 40 ------- .../html-primer/Medley-Primer_files/part1.htm | 2 - .../Medley-Primer_files/part10.htm | 2 - .../Medley-Primer_files/part11.htm | 2 - .../Medley-Primer_files/part12.htm | 2 - .../Medley-Primer_files/part13.htm | 2 - .../Medley-Primer_files/part14.htm | 2 - .../Medley-Primer_files/part15.htm | 2 - .../Medley-Primer_files/part16.htm | 2 - .../Medley-Primer_files/part17.htm | 2 - .../Medley-Primer_files/part18.htm | 2 - .../Medley-Primer_files/part19.htm | 2 - .../html-primer/Medley-Primer_files/part2.htm | 2 - .../Medley-Primer_files/part20.htm | 2 - .../Medley-Primer_files/part21.htm | 2 - .../Medley-Primer_files/part22.htm | 2 - .../Medley-Primer_files/part23.htm | 2 - .../Medley-Primer_files/part24.htm | 2 - .../Medley-Primer_files/part25.htm | 2 - .../Medley-Primer_files/part26.htm | 2 - .../Medley-Primer_files/part27.htm | 2 - .../Medley-Primer_files/part28.htm | 2 - .../html-primer/Medley-Primer_files/part3.htm | 2 - .../html-primer/Medley-Primer_files/part4.htm | 2 - .../html-primer/Medley-Primer_files/part5.htm | 2 - .../html-primer/Medley-Primer_files/part6.htm | 2 - .../html-primer/Medley-Primer_files/part7.htm | 2 - .../html-primer/Medley-Primer_files/part8.htm | 2 - .../html-primer/Medley-Primer_files/part9.htm | 2 - docs/primer/001-TITLEPAGE.TEDIT | Bin 3878 -> 0 bytes docs/primer/002-PREFACE.TEDIT | Bin 5943 -> 0 bytes docs/primer/003-TOC.TEDIT | Bin 8946 -> 0 bytes docs/primer/01-GLOSSARY.TEDIT | Bin 45970 -> 0 bytes docs/primer/02-TYPING-SHORTCUTS.TEDIT | Bin 42452 -> 0 bytes docs/primer/03-USING-MENUS.TEDIT | Bin 26422 -> 0 bytes docs/primer/04-USING-FILES.TEDIT | Bin 44688 -> 0 bytes docs/primer/05-FILEBROWSER.TEDIT | Bin 48948 -> 0 bytes docs/primer/06-WINDOWS.TEDIT | Bin 49288 -> 0 bytes docs/primer/07-EDITING-AND-SAVING.TEDIT | Bin 85959 -> 0 bytes docs/primer/08-YOUR-INIT.TEDIT | Bin 11869 -> 0 bytes docs/primer/09-FLEXIBILITY.TEDIT | Bin 15110 -> 0 bytes docs/primer/10-BREAK-MENU.TEDIT | Bin 34165 -> 0 bytes docs/primer/11-WHAT-TO-DO.TEDIT | Bin 34474 -> 0 bytes docs/primer/12-WINDOWS.TEDIT | Bin 74431 -> 0 bytes docs/primer/13-WHAT-ARE-MENUS.TEDIT | Bin 91896 -> 0 bytes docs/primer/14-BITMAPS.TEDIT | Bin 95020 -> 0 bytes docs/primer/15-DISPLAYSTREAMS.TEDIT | Bin 58876 -> 0 bytes docs/primer/16-FONTS.TEDIT | Bin 109892 -> 0 bytes docs/primer/17-INSPECTOR.TEDIT | Bin 52420 -> 0 bytes docs/primer/18-MASTERSCOPE.TEDIT | Bin 54054 -> 0 bytes docs/primer/19-SPY.TEDIT | Bin 17328 -> 0 bytes docs/primer/20-FREE-MENUS.TEDIT | 48 -------- docs/primer/21-GRAPHER.TEDIT | Bin 70041 -> 0 bytes docs/primer/22-RESOURCE-MANAGEMENT.TEDIT | Bin 28845 -> 0 bytes docs/primer/23-INTERACTIONS.TEDIT | 28 ----- docs/primer/24-GLOBAL-VARIABLES.TEDIT | Bin 29615 -> 0 bytes docs/primer/25-REFERENCES.TEDIT | Bin 5596 -> 0 bytes docs/primer/DRAFT.TEDIT | 4 - docs/primer/DRAFT2.TEDIT | 6 - 386 files changed, 356 deletions(-) delete mode 100644 docs/html-primer/Medley-Primer-OnePage.html delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_001.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_002.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_003.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_004.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_005.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_006.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_007.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_008.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_009.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_010.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_011.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_012.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_013.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_014.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_015.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_016.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_017.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_018.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_019.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_020.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_021.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_022.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_023.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_024.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_025.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_026.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_027.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_028.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_029.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_030.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_031.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_032.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_033.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_034.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_035.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_036.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_037.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_038.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_039.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_040.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_041.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_042.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_043.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_044.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_045.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_046.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_047.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_048.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_049.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_050.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_051.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_052.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_053.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_054.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_055.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_056.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_057.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_058.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_059.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_060.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_061.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_062.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_063.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_064.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_065.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_066.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_067.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_068.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_069.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_070.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_071.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_072.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_073.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_074.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_075.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_076.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_077.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_078.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_079.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_080.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_081.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_082.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_083.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_084.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_085.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_086.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_087.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_088.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_089.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_090.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_091.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_092.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_093.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_094.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_095.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_096.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_097.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_098.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_099.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_100.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_101.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_102.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_103.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_104.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_105.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_106.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_107.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_108.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_109.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_110.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_111.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_112.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_113.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_114.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_115.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_116.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_117.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_118.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_119.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_120.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_121.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_122.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_123.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_124.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_125.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_126.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_127.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_128.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_129.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_130.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_131.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_132.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_133.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_134.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_135.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_136.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_137.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_138.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_139.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_140.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_141.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_142.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_143.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_144.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_145.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_146.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_147.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_148.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_149.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_150.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_151.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_152.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_153.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_154.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_155.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_156.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_157.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_158.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_159.gif delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_160.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/Image_161.png delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/content.htm delete mode 100644 docs/html-primer/Medley-Primer-OnePage_files/headings.htm delete mode 100644 docs/html-primer/Medley-Primer.html delete mode 100644 docs/html-primer/Medley-Primer_files/Image_001.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_002.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_003.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_004.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_005.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_006.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_007.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_008.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_009.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_010.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_011.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_012.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_013.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_014.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_015.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_016.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_017.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_018.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_019.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_020.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_021.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_022.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_023.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_024.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_025.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_026.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_027.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_028.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_029.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_030.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_031.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_032.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_033.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_034.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_035.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_036.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_037.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_038.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_039.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_040.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_041.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_042.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_043.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_044.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_045.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_046.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_047.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_048.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_049.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_050.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_051.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_052.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_053.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_054.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_055.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_056.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_057.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_058.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_059.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_060.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_061.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_062.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_063.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_064.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_065.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_066.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_067.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_068.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_069.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_070.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_071.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_072.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_073.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_074.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_075.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_076.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_077.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_078.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_079.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_080.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_081.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_082.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_083.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_084.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_085.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_086.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_087.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_088.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_089.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_090.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_091.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_092.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_093.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_094.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_095.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_096.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_097.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_098.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_099.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_100.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_101.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_102.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_103.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_104.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_105.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_106.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_107.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_108.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_109.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_110.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_111.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_112.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_113.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_114.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_115.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_116.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_117.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_118.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_119.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_120.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_121.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_122.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_123.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_124.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_125.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_126.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_127.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_128.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_129.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_130.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_131.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_132.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_133.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_134.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_135.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_136.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_137.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_138.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_139.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_140.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_141.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_142.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_143.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_144.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_145.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_146.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_147.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_148.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_149.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_150.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_151.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_152.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_153.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_154.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_155.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_156.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_157.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_158.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_159.gif delete mode 100644 docs/html-primer/Medley-Primer_files/Image_160.png delete mode 100644 docs/html-primer/Medley-Primer_files/Image_161.png delete mode 100644 docs/html-primer/Medley-Primer_files/document.css delete mode 100644 docs/html-primer/Medley-Primer_files/navigation.css delete mode 100644 docs/html-primer/Medley-Primer_files/part1.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part10.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part11.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part12.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part13.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part14.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part15.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part16.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part17.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part18.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part19.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part2.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part20.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part21.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part22.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part23.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part24.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part25.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part26.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part27.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part28.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part3.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part4.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part5.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part6.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part7.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part8.htm delete mode 100644 docs/html-primer/Medley-Primer_files/part9.htm delete mode 100644 docs/primer/001-TITLEPAGE.TEDIT delete mode 100644 docs/primer/002-PREFACE.TEDIT delete mode 100644 docs/primer/003-TOC.TEDIT delete mode 100644 docs/primer/01-GLOSSARY.TEDIT delete mode 100644 docs/primer/02-TYPING-SHORTCUTS.TEDIT delete mode 100644 docs/primer/03-USING-MENUS.TEDIT delete mode 100644 docs/primer/04-USING-FILES.TEDIT delete mode 100644 docs/primer/05-FILEBROWSER.TEDIT delete mode 100644 docs/primer/06-WINDOWS.TEDIT delete mode 100644 docs/primer/07-EDITING-AND-SAVING.TEDIT delete mode 100644 docs/primer/08-YOUR-INIT.TEDIT delete mode 100644 docs/primer/09-FLEXIBILITY.TEDIT delete mode 100644 docs/primer/10-BREAK-MENU.TEDIT delete mode 100644 docs/primer/11-WHAT-TO-DO.TEDIT delete mode 100644 docs/primer/12-WINDOWS.TEDIT delete mode 100644 docs/primer/13-WHAT-ARE-MENUS.TEDIT delete mode 100644 docs/primer/14-BITMAPS.TEDIT delete mode 100644 docs/primer/15-DISPLAYSTREAMS.TEDIT delete mode 100644 docs/primer/16-FONTS.TEDIT delete mode 100644 docs/primer/17-INSPECTOR.TEDIT delete mode 100644 docs/primer/18-MASTERSCOPE.TEDIT delete mode 100644 docs/primer/19-SPY.TEDIT delete mode 100644 docs/primer/20-FREE-MENUS.TEDIT delete mode 100644 docs/primer/21-GRAPHER.TEDIT delete mode 100644 docs/primer/22-RESOURCE-MANAGEMENT.TEDIT delete mode 100644 docs/primer/23-INTERACTIONS.TEDIT delete mode 100644 docs/primer/24-GLOBAL-VARIABLES.TEDIT delete mode 100644 docs/primer/25-REFERENCES.TEDIT delete mode 100644 docs/primer/DRAFT.TEDIT delete mode 100644 docs/primer/DRAFT2.TEDIT diff --git a/docs/html-primer/Medley-Primer-OnePage.html b/docs/html-primer/Medley-Primer-OnePage.html deleted file mode 100644 index 162bc3f2..00000000 --- a/docs/html-primer/Medley-Primer-OnePage.html +++ /dev/null @@ -1,2 +0,0 @@ - -Medley-Primer-OnePage diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_001.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_001.png deleted file mode 100644 index 134a8b09243b0e5fe3d5b22590124bb33d157629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmV+f1N;1mP)AXlhw z(aU7nt&h{Sw?2$-5%>xQ3Inm!MWKLZW++mQ3j}=w7*9{)XDCtfqe^Q{?nP@&N-4Cz z`{->gyWMVIPp8xOyGbl~7)q`6X7TibcIYvb3|fZ0Go8cX@Nzz%pFbg%1rI{;PLjw% zd$PK3)V9gV5;L2yNZ!WGHV5O!HWJd0a<;s^KGYwX4`v_nzR~GIXcDt0LnOG2J(gHZ ze`XRQK)y91i|CEBM9yxG2*7PHn5DYXA7ND{XM!y(+yP_(iEiiHOVWQ*jGlqJ~|Qo64DZ3`9z zC}uXiwxeq&*@O{v7*H1Jw%V}Rn60|b`iS_E+l-H!(pTdc#T?1!#GB#1yI;8*-?BmQ zZ3ceeOk8^%FE`PTiJ-p-=+pnqU9$o7*9CNyUq5Dc9Sex zSFF-$SrJp8C3Q1#c+Ls6ovp?h?K-HRja$V$C#I``T0w7#*2L!6MqFyuMT7oG%qTaD zCwS)dQM1d&l*#>uXMH>#zXnPR7FZdE;pL(f8^?dU=yYGo{Y3M6OgEAvC+cD>sLSqA z7kx1~`cr%?Zq%C-zv^Qg3MxMqGs};0p!_Bl6=cR(^|wMzf~>7sZg5-pTYb0qh!)hG z{;Zto`FvK&z>}$&UvtPNpzn+1EFskQK1wM!33{1&h^-R@c|BLnC)zPC6(8;rYDZK& zwOH_(UvoH}PM;|Af_H({YBlWl`|po%V0D9M5?FSzFJo2?M)f|^jeK|>CFAc*t*a_1 zRS~J`LyZ^mB3}*Bct?7Ove|5YT`rdo?E8v+%iI{h?ksEL4=F0M3TasaIH-zKwYBnW zPWjGsS-$=rb7l{0PR>!hIDxRmYu3jWQL?3 zI~wzq(OdU@|M_XrEO;2(?e^#4aQK!vC^NgCsO(kC>{;J+$FrCJlPvg8vD@u_oX_Wv dk08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_004.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_004.png deleted file mode 100644 index 33c6b56e87689636203c4aeacfc71a8e69ae74bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 488 zcmVP)aF7D6Eiy`0k$-2Vn^ z4>Wk%BLczSC?=JPUbrFo4H^Gtv8~_@buDbo(Ndo;Lp42;yCH4{?%cE_&Jd=~ z9f4f@S!WvaMg)wcs9ZhEj_g`_-0FP{BId?}Q$m+}U zVPIGZOmD3`XGV4vTOAh<>G}@wzw?oyBs( z=~T#HotsgWW^o+l##}TO!*%M*4^6TOXJ?FAcTE2qaD$C6N$<|?EC#~!4Gd8?U#CoN efcP$MlCOPMxA!O+=x}k) zBrDb*$dJ)I?GFGVZ&2Z{v;P=`?}d$ep6uX>^RA zdPDssSdLFP`-)IwuljJBIP%jeV*dbzJNr^`n@s2OxAShR7oijWY#SeCKFI;{Z>7)x O0000$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_007.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_007.gif deleted file mode 100644 index f609c047f1b9702282a92a8d4bc15516d9571052..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98 zcmZ?wbhEHb6k!l$XkY+=|Ns9h{$ycfU|?j>0r5dH3`~|S{VT=Z{ui0^j>S8=>jhK4 y0r5dH3``a+{hbHj*3K(wTg$NEtVPn@ w+^gxiO2;QYp1SBA*SfguvI5ClldZod|Np_LxH9o0r5dH3`|xoeJi=PotK)k&~w+DqaN>* zRp+VaJ?5ypy0S6*#Hy5AX|d`nSMJ^)nai~(WqQELMrWz`6DrRaR=bI^GFSru^5!Fp diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_010.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_010.gif deleted file mode 100644 index c3a529bf8c800d9b097df5ca44c4e323c5a55f6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69 zcmZ?wbhEHb6krfwXkY+=|Ns9h{$ycfU|?j>0r5dH3`{aD{VPweWn5gd>5`N_pH%tm ToJftLB|m)6o!aKX$Y2csRE-ox diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_011.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_011.gif deleted file mode 100644 index 8725aacb4da82d6dc1e3ed4a1b8207175a061e06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1973 zcmV;m2TJ%yNk%w1VORm?0Du4h00030|NkNR1OWg50RSuj000130pIZ0V*d5M{MS;N`s`3V{-I!an`ufTRJ4;(@dyAW^yUT0F`wJW_ zJWO2d>T8^=yv*F}42t|LJxyJ0eHwkOz0KWCob4ShK2B~5UXGrw-hICA{tj>49#3Cy zKRbV~zt0aX)(@1B{u>-+Mf3O(V#bjq zRb}HSF`}4=2X~Zw2~*U=j-OU`>OnB3&Wt&C`uqv2C(xlp&9N+sG$|>eN}DD%W3$H5 zmJ+cQQ#jSBR)0(;jsn@$rL2}4JJR7)wvZ>RUbnjCN|hi=k5b#Bt(($rO{!AOzWpl` zW!|a?zZ9-I^`A|_1^KQ83>j|Juz0&F)?1lu=9`S6MgEL7E9lV;nUX$z&ot`Q@MijL zB6bT@(X49&d-yo_UB|Y2-^NK;>`WY9Y5P8|5jf`M6IC)t4m~;HqnDfSHXc2Ds^Mz; za;B+0y!7DX#hYiP`n>vK>DRmOh5fyJhw>q+y60Dkq_dDq?t;iWVm5qJJ>P z7$Jx>4k*`M#--(qjW=$SV;7EP$QF4<1_t1d_5}Iiki^k-WQlFfsH8efW;oaq6t);; zW-LiTWtG!hsik#7Zi%LpYKl1!ZO)CQ<7|_4S&NTsj_IbIy6Ac5J7M-2-k*SG2jdg4 zK{=gBH|aIoqMN~1VNJLV8jGFaDHNMxbHTZnk(XZA8HjUIS}A%S3Nj~KaO@VBq;^d< z)`O{%%AcjD5{D*ThC15ncbJkT$T2PQNojvH-Escwt-G>1Duur`nd^4L(uy9j-=t&h zpaEvP54W@mN^Ni3;u9`XGd|mEW1V98Dw2yj2W`1~+G-|>kt)ZlK~YWGWV5)gDX&TN zk|ICVz@7omJv&6=sAyyRXX3R%Bg~ zYGP#;y3{glj;9n=cQQr!Qhnyd1uX`2z+5BfHOcJ?{bg{ms#@^SV5S-F+DUQ=9e^y`iwhrlQ z@Phq}@8d*`x7=#UZZNM5s;f2JPr?;1?A0|ZJDyGn7JjcrTir01xW8ZKnGJWZ+xgSN z>a*(ZFb}W>p)7XTXcX&KQ9SQJDraHnoAn9^Ic>nqf7_v81S5CBUYN^*7y4W9E@ip} z7Uh8uqT2w;W3-r%@I}GJ)GZ~RBh5g=DbI_&&xTd= zm`YHRIyI`NQ7Tmv3eKxWhGSYq4OhEr(R_k+oKPJrR?T|PvZ8ezR$Z%6-Re~U9uuxH zoSyUON)(846t8)8C?WaE6SV?19Bm!!H41CkY9KbT>SOF%7VFp^2{y9UfGlNuH`&WJ zR=yRwuaKZFzi4 zlHLNhRKpFfY>Sg?3*jOcfyZ4gKAP)X;zswM(4B6ztV><&Cb7EO1rT?;YZUN?^Sk0L zV|fdDUi7B7p6g|AdzVVy_qt5JlZ!8X|9D?3**Cw+1r6Nk%w1VG99e0Du4h00030|NkNR1OWg50RSuj0000B0c8LH0{(=LsmtvT zqnxzbi?iOm`wxcVNR}oLoa)N9S^&dmn$W0C+mP<|{-4qDLPH$RG6X7@%!AO7lHH`J z8}t~vQma=d^qY0cjMU?|iB5B#)+izeKbOxnu3K(4((T^8`VY7hW44#m$Jdv1cZVqV zR_NuH6i8XgRd?8!_jvhexS7bwRwZd^YO2WTNEf%NFxseTm`QkQ`q5z<~q>59_AJS?YC*DX%keE-jB@8vtZNq{-nerKK?_LD__%+Ydr!@b5hy3~)bK38(27dr5qs2J}9*AIq P3NFZCgX0XCPXPcsa5XI@ diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_013.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_013.gif deleted file mode 100644 index 59e164f9a4006ace0c267f51b22dc9b8af5c3e3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 836 zcmV-K1H1f3Nk%w1VMhRl0Du4h00030|NkNR1OWg50RSuj0000-0EPen0{(=LsmtxJ zf}FJ4i?iO-@DGNeCk9AYrWiR=fb^wl@l9?pgHR~C5jVg|!>bNj)5Sig{j$=MlRO*}nT1 zUO$b$cdu`gocOHYI5yP;4zyGX;5HQe)VMQ+%}YFb2-Er5VUFUG{#rsnWt{Twi#KxW z!2N?V=~0h~%T5~1(D3C7monege8Vq7&792)@+_DIp14)3TvdxTY1TuMC86OA2@xp6 zr|7;x>S!zEMTH}Wf_zCcn828=Ze|PH6Q823RoJyv$_|)Iv;m)}6bc5>qLg(j)h#*F zW8Q(@BD&oIP_GV=7|UsTw&^cZWEr~_4tyAKTvT}rOZt|Sl;kKp@RDZO7jI_Gyr$4W zThU(-*f+_76>IJ!ZI}*oySCR^)oEzgCf?f#)(nGPiq?|Z)0Zu58ujf7J#)KLxq4}>B8Dr z1P(^pbPBaZ5E7PgmK0GfbhqAAiG>wTDBz(|AzT|#=-ze^UWgt__~mDyOf7=7n~O2R z=#O3j=5pU^YT;;XmQ{_{l!tMS2xx|U z`1w|#+DWBVo}n#jm5ycgCnBX^T6!s_`)T${Y<6^-+){H$$Z2JvcF7!&)xn~icUT$u z9;AF?7%Nid!DrN?*hN!ftFb1jVRT0+N}hS`>FOSxu*A;u*m<&)b6jai1!Ej;zYTcg OfDmlUZMWVQ0029iiI&6w diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_014.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_014.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_015.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_015.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_016.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_016.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_017.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_017.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_018.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_018.gif deleted file mode 100644 index 22f74d3a276cb52ca53a0187b115b2a3cac0c971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcmV;O17iF~Nk%w1VdMaG0Du4h00030|NkNR1OWg50RSuj0002w0CWHV0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_Zo$e1qYJ?BA-8L6*DcM=HoY^HVEQp_ru2pg;y0d zg_u~@1sF+aX<-=1<{@uo+#Cxn?e;8PJ&m2My?w&#{S6*2K2Bb4evY25zD`ce{th26KTlt8 z?rxv2zt7(fkMA#_z<~tm0W63xp~8j0a4>ubF`~YM5-VD~2#zAg{*4?ZYU~IyB*Bj& zOPaJt@}$a@>Qb_N2{WUwm^5pKb7?c@N}M`-isb1t=tiJIi+Y@yuN4?XUT{#<=u3%F zhD7fU%qRIXq5UX`1S z*V?9Y6Ot927tOJzX1nU}3z%sft%M8HMOt<*T)htEdhYBvGT&pwB3tHn80}`f-uz0g zjOVLb$FC`$4wzao?X-Mo5n_|mU`-5TYaDVzI$CSa9R@CfkPWVYUZjta&&XWg$KX&}Sxc zXklVwsAe5sXSwFuaKx23qfGlv=7VCC^u{A-yurp~kZz%NDh?R_6Dd{7LKsu>k zXo;yNC76=6_}CpUF4RPJH%R)1QFGB>Zf1GxT-KRbkDk?{$mWt7-s6vUEVCNo$y~npz{6H->rVt%l8dSCz2(nhvHTIz@LZu0z_Y>zBzMwd{_eKD*Gc)Q;5Z zwJKSwEpFL%TN1b6qW0~$Ach8O&t}Aav=++z0z4*SP@4oBw>u<5~ z23+mH1pi9!!3g)NFhT$~{A9uqGiUI`-b!q-KM!ZzCCBq}19HeBk4$pO1poj$p@7>K diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_019.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_019.gif deleted file mode 100644 index aae710d5abc3d79fd2adc4eb25bfb62420088b00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 916 zcmV;F18e+8Nk%w1VdMaG0Du4h00030|NkNR1OWg50RSuj0002w0CWHV0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_Zo$e1qYJ?BA-8L6*DcM=HoY^HVEQp_ru2pg;y0d zg_u~@1sF+aX<-=1<{@uo+#Cxn?e;8PJ&m2My?w&#{S6*2K2Bb4evY25zD`ce{th26KTlt8 z?rxv2zt7(fkMA#_z<~tm0W63xp~8j0a4>ubF`~YM5-VD~2#zAg{*4?ZYU~IyB*Bj& zOPaJt@}$a@>Qb_N2{WUwm^5pKb7?c@N}M`-isb1t=tiJIi+Y@yuN4?XUT{#<=u3%F zhD7fq5|^1Ui| zkGHi==O!e}YmBhOcE7y++ca=kxPH4D7Kk`M6(4RJLjtmUH)GSDi{s9Xv>x$@%a0pO{yb!J=klsr?Kqu!JnP!K zujB4Lyw$(Z#hXV5@b>xjicXFtyQG#|l6sMpfD(a|omTKyzZl=o8qnQ4{ zs&sV`_y>WpawO?ljiGugLXx%yV6V7p$>o{CUgU17uE+kw>#`?(>a4HLM$7D~)P`#9 zwa8AZ?XcN)d(^k!LImx&{FH0%MBJtuZl>&REAG3}#w#yf^wx{ny7-Qz@4oZ8>n~OP q20ReD1UGr_!AT9QFmeeu{M^G3Zz%D^9dd(l#u{(TamN4@0027x1J(}! diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_020.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_020.gif deleted file mode 100644 index 612f779529e3a7ea9925c904c3ca7b0f0940907c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1816 zcmV+z2j}=lNk%w1VKD(70e}Di00030|NkNR1OWg50RSuj0000n0UiMW0{(=LsmtvT zqnxzbi?iOm`wxcVNS3A*r0Es_te6oV+I4>R{tpZ)UX2xO!7~zhh~=&MAPT3{ zs&yheC@HaJ4;(@n@M)7yUW|_`+J)U zJWO0{d|WGxyv*F}ysZ2zJxyJm8f~4ey`7EC{S6)t>@8kye!fbMzRupRsqP*xZw^0i ze{WsiDd?rt6*B`{E-?5Cwu7e*&C}fZukKtncHY{z z;||>K2`kgy&(o{q~psZ<2=C-G2B4DBx!V7FgMV z2rj1Jf`c{a;9d|$c-Mp!&Sl|+{An0nh8(Kp;fH30C}LP7>JW%VoVm0UY4w%3%ZZ4I zp`v*6fz}v|&cFvOBk82^RB9<&nKJn3rZZvc={cZ=TF$7XhGXifG^tu)r>qu~ z>Z=vWDp#zu^5yES^4O~DGrabSWUj!n^Xst4$Oit$UqtE<5DtD>RP2!_b(v9GD~9wD zAy?*T?2lCn309Mst@N#5&B{TpFv6;uWKUZhSFU)?I;7=s-6|K_dOE>tF1?xQ#I2zB zT6c|Q$*g-Sc-KLQaKa4_yeh<3@u;uFux_iO#RiS(n8q8U^q9aNYdU1cBUAeD$l-q-LRT{_fJbY?^U~freJIo)Kj*X5 z;7As3%2v<0q{&-zBOI1rUk$R@V}osEwP&Nf_N7|4?eg1j$6WIktufoL6neLqx4bO= ztGBKvl^M98qp9nn(OX3pCf-dG=bn{W+y0%bl?{Za*dwKE&DECT9BTd%3La+^>zFz^IoGJhe*a zjel+Z&-y>4%`bqliPr!L$h;d75KiN&-2!_Nw(31FMrD)W1cQ;b10qm^7i?VzxA(#2 z)htD(dk$GRc(0_n>ksoGpUC>RKI-kvc3^_c=l&PEqA}@)i1S(i^+7nql&ptyn4tTD zcf{W%ac)b5o5J>$INafmgf_ZJ{t=s49ToN@do)Dc$S-={uri8GJ<&c;s z$6DfvOr^t-E_caCqXqMqOHt(lS-CZ2T1}Z!3)?u9L#5)q%9-}^h6C{^MAzkva4s~` zW7@bWD0wfNCgYqA(HE}9!A^mso0K>WIn2pjiIVB5COP?~z-iv;o1IhRcvQkVO0FlL ztYRkA49ZAjZjhJ^WGDpn75YPn;!vV6q$vInx-^Ww(W2!WA4hxU%1Sy^Z31oKM+qsE zY^Cm`FbgS5TL#I?XjGpgrC?2UF;kElutqQ4Xf|t?rJF*eYeF66JeyQhg7vaSNmXi7 zKlxOsM%7I{6<^&5@l;4^(~6u+>L8)z#jX}rs~zE^9mi@?{#mZ763Zz{rwR+V&g_wJ zHCSl~T31;@Po#N`U?=n1xTU@lur7iUTN6rH#w7M>i}l`NCD~ZVx(-^A)!93?3fTC> zGqPlrtFb%_)5j`Nw5P1BT}|s$)D}~qO9w%o4oqt#3$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_022.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_022.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_023.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_023.gif deleted file mode 100644 index 0ec8cc6fc8f2e9c372d471d8def2ce256f608d61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 792 zcmV+z1LyolNk%w1VTAx;0Du4h00030|NkNR1OWg50RSuj0001m0AT81#Irj)|?*jIPSCDeyJelHYCDo!K89zr0JZ` zR?kPRey}DaH>&karC})T=oRv^w|B&-VZ;WB=7LoBNEnrAsrE@aI#+tCIwQL3x|I4Vi_$u43l)2-TatUCP!-B& z*j7s`N97gT`%>(ihbd{ZoHIQKGML!od09!urA=IoYU0)nPI)DKzRn3KUi3}^Mo#&K z{pX0Dt<}tYNuSOhGJWX+?gJLjSs-?B)Nxx^P+O!j{meXMcX1)a{)p{yXGKk6PpvWPQUI;7HF+dw$?7@iwIXGB)a3Ug59)- z6V|GH`xY5yl}O^byA}&=T(~Jh$wnPhRxHhHxfqdG{?q)@pHGq+Tc8ZPSrKZnCn;QCE?s+#@yCNRZ-v!)}Ar?U51Dr zlOcFbg9|cPNNfCb1|eq@RtOu0ZXJlw0wwk4p(mDE6q;)aW|NA2uDut=H25{f;S zR$6MK__th#0(zI5OBX`b(1;G!WupxnYDbI+G!`hGOu8j`R)m(&DCCI=qB!Jkn5{Np zh|z)gi-gj5(QFFnJnE~vN#kgLFlJR>w)-Rf>9`kVr|NGI74Mg$s#$>LBMTRDR@ z-l>QcW|PQjv%9T|d*pFhi%x^pHZGZFY?`mOGK(PE4O)?TYJlzYkT{f zy1UY=n)zjXWa7FE)CSy(94))c$9%MTP0MYZsitg=%kAUb7M?v7%)5+DtgXzetv)N< zy$$b-jovJMo^0+HAA0p_5sZg0p($z#8!BYzFrv4E5-YB~Qf)uv~lU4MrH~&8}XjHk3TMa=MR~F_#uQWvo!opEG}^ zX%VzUkFMRG7Oc27?uWG{?H1X4<8Q#hSt1sCc*|PTRkIFsXOv6j+j6NxDi`=!=Rx6$ zLl^#h`uBvgjdK>gGyQn#hOKWr?Dfi4s}tD|?{5FTzx?|C>*?-)RY;nB1Q>2E6~@|t zcfADKNXKQtU~0+b^b<`?`4Yur-=yFZRF4tZ*f(=I*ob*Mk!BJ+rA;&9Q}~!zVN{)6 z7NK4veHdSdj-goKa+~S2VMu31qM|x0<^>>S!tM26T(t35UXt}msTh*8@zvLXRhoxa zjk9$mA%DlzRM9^;CWwxRVycB5mgJEM*NGKIM&CnNowsIVJ|a|3SW$+y8kM=_DJYnP z7FykXhyEBSpT2RnsEJJugJ7hz47p{Z*SMLcU5=_Iot$r~`Q?u6ApWoN3!uDaDc(YACf zwaEm=E1c89sMU#wdZ{e6XHH64uZBWlOATL)Yo)N{p)2pR^-d|}q8Qo7DM)B0>#2g4 z%F39lJyutwblBqgAB*mp8Y(_Gs#oyB&8A3|xRCZssk8^1yPb@preyHP8qXIVR}=%> zD28Ds_91*F2god21N(I|&2_1JZ+kuSN|*{imzVQ`LF>sAd|kDBYs*l0t>#&u8JDH?F64hv%-0y1jz;^Z0g2hbc8g`}UVO;BnIBci_qYy}T|QD|w}* zB#zlu^UyncX`j(YpPd{3&YL)7C)-S~W@3N;sj9DYyZxXq3tqJK_sUM{aZeZDJLj;^_$)5Wwt+7H;|Fi2Qvc!-#&xL7Fn z#s~?r;D~6oNGW-VdAKR}BnV~sMc8@wm>GnsI>}n{!!zf4`p_D~1gj&9ds2((>7=`Q zJ8b)^%0{_aNqiLvC+rA{6-ixfeT}UcxQ)!s7g85z2Nb#HGCvV2|k@e>%2;248{MnQQP#>PB_^3F(<_N?Ha5Dj&ZaI?ekW4n+d KpJk&~0029DzLItT diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_026.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_026.gif deleted file mode 100644 index 27e420ea40dd884053a32c5145cc25214ddc9fa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmV-C1H=4BNk%w1VF3bD0Du4h00030|NkNR1OWg50RSuj000010#g700{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8A5zO|D=lag?!CxZ<5y2nLFnlC?%%<}RjS7#W zC7?L8Dy7`6_Y3Z2kwCKXT1FqwY9d)tY@6BXD^(lL>-YSymF{*Xh;+vgH)cneC`aYi z_Xrs&sq^PZh?t0ocUY*HRC&2LIZ9e;$^ohvsv74B@yW`Xx`=mbdy7jti#8Z*$HoZf zhzUdoOq-jmyv)4S{0to}-BLSkeT^+yyv^P1{S6*2K2Bb4evY25zRuq6{th26KTlu3 zu9}^%zc1a&{|_)=saD6dm8e6lO0@(F1v-?%=~P2e5+-&jD6G-L{*7NEG9+e(2u2zs zLz+BU;}am2SxUYkxv*q0ku7NfTUo6RLO3`@Dls+&C{36gi#i~v#otS%KMiFB#dMf2 ziWx1vGPDE>!>wFb8sb~RdTZ7p-hT+g9fXC~cC^*k=G zdw-VwyZG_q!;?Rc-l+NX?A!BO?>@f#Xz=ITzkjPf{{8&^A?fcAV1U}8CSZXEa`E4R z3N9!^f($+gAqoygNMVH@OlV<-8d8Aah8}+S6o?{@SV4y*o=BmID6Y7miY&e;po=ih zxSxzP-YB1qIPRF9jy(QY9)Um(iJy-|9=Vp0NG|!1l1x7NkCRYNnT?cGUfGY3SZ-OA zm0W&Fot9vZ`JR|$o{5c@Xs-E)nryzwotbdX875hD-l>e6c<#xBo_zk9gP(v7+Mt|- z9y*3hJ!1a%$_XnC7Z0rM&hE>94>tD(tX`Vqq3fvdS*YY_rZj3vIO0PD^b$#$NkD G0RTH6qm@Yj diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_027.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_027.gif deleted file mode 100644 index 5d0904701d1b97517aab019a16ceb3f66ae321fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 zcmV-`1%LWSNk%w1VTJ&>0Du4h00030|NkNR1OWg50RSuj0001n0Js1E0{(=LsmtvT zqntC?i?iOm`wxcV2pZ&xhGxpP+3Jokz|o(r#<~UXH)cEVR=o`|U_xAqJ{7LndD3t} zp7nRUKA|Ee7igU>wWaX*dj8(F>U8p4MWW$ybe!FO;oH(-A1T%2CA74cS9qAH*yOe7 z__zkiCyCNX>6esHQ+HWn*va{+2O3FgR7eOWXKBjXNtGi?>Us%VCJRbSX}ig38io5S z?4mntTp4_jHBjrg0oRYe`wI&@5qI;ZOU3T`Y`_otnf z3qMO}J2RE#-s;VnKy(8Ob_r;3*|mht7BW=k@L@cJ5`{(VqNN|1{&{ycX1Swr-lB^Y z0hTOD^5iRuDp&4m$s*;!B6u{x#5d^_AbYA(MFBGIkxVBaMFP_I#>|U)B3U9+6m*q7 zrlGoV3^Enc&@w&UWwRs0WTL28QTaRC)elasPHzfr>vkmExMSzivK4rxhS}P z4Li2%*|clhzKuJ#?gc=1`~D5QU-03?aj)CS8+q~N%ascsBZRqh;!-ufi9S91ZNZs@ zC+)61Jag{i%NHkaz5!onTi1VSuO=!=)lkZgqt9qJ3>-AQCe4Dw*cnV#prdp|# zkyva*r%}MxIU1?u@DnUeo{{^erb*IjXQ;C_Su9MZE03x3+zxP8e@2cfn0T zdo9_#$SG;xKjyiz$|?`unAtuEySLplgZ_GJr3#OVwToOoy?N7}m!01^lV@fyPL_O5 z@aQ9PMN_mEsSeer;kqvR$uG@0yR#DkgcQ1{lAQS{kSgA2@H44|y3f}@&X(~t+n##K zjh`Ux;|ni8_j6Tl6S1k1vpeKEy+3I(_7jhocwy6*SyZ=5rp08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_029.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_029.gif deleted file mode 100644 index a93f51bf42fa9c2a856ebcc0334126ed71d94279..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1614 zcmV-U2C?}^Nk%w1VU+-)0Du4h00030|NkNR1OWg50RSuj0001$0HOc@0{(=LsmtvT zqY1Ryi?iN5$Pb2M)RpFmjq1ui=nHG@Ot0~M*ZL0OKFSLU55Hmukpd(YmZ7a-jAoDv z4>e((I7eBg^h>#7$6{|-dp;|bRy8~8sUX8}H5fdXPcBSGw+*PpwkHTjSV+`Hw09R( zw)ogprYN{(dHI)i^_N)JX!KYqdP#;@Nr`!gYRO6V=?GamO1g?_m}<(pnRv?h>J$2= zXO?LfYkN#b+lguS`?D22^9(I*%|(slo6TLa-EHy>-YpC`ej*No#Zlh$E1Z5l)gA-S zzCrI8mnI*c|5EM^vte$Wf!Y_ZUz2}8_|SPcNY2B36oJKIrSJ$t{&Wr{L7XEn4>W`u zGbZHdt|G(~62Gj`lTqWrmJ}n_oG4Hq%$WE}dK2j>B)mZ9e2H zr?9BeyIFYUpQT*-oM*~}P0oQLYxBiYv6+mCQ}=0w;R zC%}t(t(pxu5inekZftrSOf>J|j`k`#4xCbDL$+-vr>xBRujA1)jTWYA_OWGxLTPpi zlsX{RrL*&@s|_x-Z6LVG_1^tc@^9emhEvn65ji*I*_cnsY}oiS=UNJ5=E=!(zVKT}Jvw)S-V*e4RV_^5?;?mfv}O!C}|_x9LwZpFC>eSJr0XGs*VCv(!sl0@=4|SXnt8e^ zmz+gi+M{cKUKJ^bA!aBlm@%gM=n}RK$mD_Ip&I^bslz6vjjw4cW~qw}*2b!>DJJ*j zV6ckCA2VpwR1&R8ip%D)97^k5mxP+D6uB0uH=NLcc6B!mEdxF2u7RTd3xR%Nk1p^tYioF^?;=)KE;Z zuN+Onq*TXc^@UJF(Xq}t$Vu-I!g{>Q*z@iw1k<8W;x-LrmkM;5q(V=UoNbQ_CH&xlz_N=cn-;Eo|5xtNxw%en?)9;-f`xZZO1=KIZU!)^X1Hf!{K! zX0>%@t1ZTtQ|#y6ezWd6L+jk9t3j&Io&$XX10IveYrd<`WmyStch$OnzE<3%`|*3C zKX+xZzGxD^D2=i=E25auFS?@W&4-EFdi2D6qO?O@k7FJpacqe14*cR+e?9lx zpZ{&_2ag8_X-R+eG9LD3Mk1@_s5`mZpZ>ZwIL8SpW8f-S=8gxWXMrbtb%R#mAT_rE z8cTZk@)WcxcaQFs4}!>wQVXwj7tV-qgeG+1sw(wC4LZ<&_Vb1NNOq?u_3lhml8S(K z2oNMz$2b4$AG2oY#Nsp&S16>{{uH-YB?JNkEoq8~lK`{43MLSWbn_v&RMkO10k0=l z4BVz_n6r-{4?$#nR;_RsM@|`#e?^2COJq12IHoLzZ0uukWYm{1nlOH=<6#{wHWEVe zrj0B-)PJ;yzbN{HlB|;r`-p)QY7w!HLF3768u&?}#VdkgyWtmU!8<)+l8<*x-}HPG zhza76MSlz-2I1u`MUl{k=u2Pa8m2^a;4F{gK_Be&$V;)v@RzQ$W$aGHmmdv^SQ~2B zGHta=d-2kXK0KXW>^RE@wu^~|YzjLcsmW1NGoDgx=eRtRAWn`@a7*->K8I&HQp_x! zj?|7BeZ)L}+S7N%$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_031.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_031.gif deleted file mode 100644 index 16b4cd56e9039affea11e820ffa1650f009fff55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1543 zcmV+i2Kf0$Nk%w1VJrcQ0Du4h00030|NkNR1OWg50RSuj0000i0gC_t0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJt`Wp?Fw%f+ANU;K{65n$ay(rS_DU+3kz9!gb2@K` zsj!M%;1b&_l?e_jt=X?n+G{|mYp_r_iB1cM?5{l%&z5Oq*I<>NKiU ziAJVcy~+?O)~#IUY3&M@Vo;A??{P{qs2!+kMxscoI_a$sO$yQyVr!R6+PZu3IhoVm!R8amgbH{3t5mLX?QmQxg@zVX3CN=cV=8!b5OZ#83#I?S#BcE6(_D% z9mL&Yyqh0i1`Ssv=hxHCct+&>0qD9FMrq#829IF<>)e2{OG5yGrstH*0(9v3Hq$Hk@R^)OM-As!g||kk*YiK>zH$ZkPE9 z7Up>EcBxk0NbRk0$y~GC-_(mw{LbBmul|I1(f}_$wZ||&{`JY^PA*jC8Ro`p-?Bly z^2eKZ4th?ai|g{ynfENS%VTTadQo0mj;8Fl(;oELgT|e^pwn6YvTcwfT)X4?&0f4r zd>@~DStTof;>uTk3YD_N87*sB zsaWFDR=3<`B75meMrtvbVbLWq;ReiORx+8VDDxyffj)05JiW+iSNk%w1VJrcQ0Du4h00030|NkNR1OWg50RSuj0000i0gC_t0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJt`Wp?Fw%f+ANU;K{65n$ay(rS_DU+3kz9!gb2@K` zsj!M%;1b&_l?e_jt=X?n+G{|mYp_r_iB1cM?5{l%&z5Oq*I<>NKiU ziAJVcy~+?O)~#IUY3&M@Vo;A??{P{qs2!+kMxscoI_a$sO$yQyVr!R6+PZu3V(uYSlL-1@5=g{yUY?~c5?B$l`J@O<;#qBTCLO9$wrG7u1MdWQ40^s88PtW#wP=3&DghGK*e{%re?Y|^6S~% z<$g;zeB#%$1#u?-{IYt=+tWiSyQvm&0Z=R%xQ$*Ir|Y>9)*% z2wr!IUg)*9-(BTF=-z;K5i(tWt&~TcgU}(fp?eeRM&W>^(dONO)AUe8iX39r*>e=u z7vqd423KH*3>G-ri8_jyT^XbOHlvIF9XDZj>~$z!lPt3LVvi*H*jtrEO4l5Y^H~`k zkD=|jrHmpr6QF)#La8N?HLeL%i;6udPloiZDd&3{nt2*-dcqQnjKu9_U!B#(C}5i1 z)fEq-R4Rz4TFMFZr%ohF8WvcQ3U(<#ncB0dS(8@kRHw=;B&t`X)^;kWM4jrGs;*Ae z>Z`Ic73-|F4pr-|x)$~5uD;UR>#xG%8tkyf@|ynYvC6WP>$1*v)aJvb42UBGR5VZY@o_^zRYxN z?RJb|llfI#k+$@o{{(|B2_KB=gDdW;AztEr>eu%a8tj>rMiQHRjg~AHMiSFHHXVDVwkL_SMTjI{qO) zZ~gj@OaHzA9`9(Lv0u}qHXrvj?0E`v)4x6zz5e;{bhYsvHDcDl;9M70r5ELYD`Or zh&Fy8(TMrO)QTLnF-d`Ed=ax={^tgW!PLc&U%Q_@ffJ2l>JdjNc(5_#t^=|D_HUK~~W-l)YHhUAHK^jH5pxH&ks zagaZZ-5;k|G^X7Tg?k)h8?RVH%gKw94E&BD3(3j)Nf43y$W8K!NJ3D~k7ZhHpB#zT zJ_e@pklv|f{3Mt`DWVaKu}tJART(=;oPap}F6ojAwdE@Qu~RK?$`F(MgWZ&HIlOOT5mhXtA{)Or$1Qe>n7QQTHM1GV zi;9wdtR&zu<4Bf}(vNqWA}PPrrA(sr(WIOMB=rQDu}MbKcUjDzG-=k*j4n`{yd0`g zb4kdje$l6Xgr-t=>C%<9w3kYOo?oz;FjEfDp(NZXS0{PWJCc&AQ9Nr)H;T%bVw9RT zooSqWX-Qz>wWkzCX))E8(=vYZObAVgU`wjjvg)*v+tg?$(fT%j`c)lY%HoVv! zFL_l3-t!_Qz3N?+dE0BL_rjMe?47Sq>T6$Q#WugZl`nr`<=_8CMI8h#uz?SZ-~>OS G0027>S>$8@ diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_033.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_033.gif deleted file mode 100644 index bd2a4b083634a9d9f2fc636a27debb04b30cc4ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1532 zcmVsYD~NVzL3 zJWQN3%GmoW)}`xe+H3g?>|9)Jea#h$OqWf&94$H7Jc*X7jE$bIF7oNtz78KRzwquk ze~+K9zt7)qfdnw1z<~q{8a#+Fp~8g>8#;UlF`~qY6f0VU23{*4?vdi)47q{xvZ z6J{)lGNsCuEL*yKN%17inKWzKyoobst0Ovl`uqtrs8E11hZ;SKG^x^xMVC5#3N`A{ zrc$d~y^6IY)vR2*di`qh64NuTK6sZ}YAGjOVXkUVBE!x8EtGq;_3` z_h~1PbOr?C6fg?sil=IE?8!pRo*FOo&_eu+@D;&>Ef7F zlKG&S{taj0faEp0nV#_Fs9v0V{&i)7%M8k2e29)IriOcBR!*Qp5_l<%hJMNCk&2$l zD1NdwS!s$pmboNseI809Bqwg_VWv8+vTB2)`g;ChX@V*%WQuz3Qf#5Gde+gd(_TBL zkJsv!o3_|~D-O6odStD*;+DIuisr7%u2!<4duF@x&MRuHll3>EdTD~>t%jKT*l&-+ z;;W{Y6x#Zkj*BKdB%L^F+b_Kj6{RnRk0$$K#vw(lag+9W+?mCYW~iwmjb5yu$s_tZ za=szIY^=o9q6z7mBBu;_PsEF5%$1tk0ukmwYJ@|*EnN+(ZL!A zSvGikXS!OXT{{`Lnl!`t_um!nod?`{lm0Au)eX*>^VE=E&UfF7e;qjBIgbr>=4kKh zDA`j_o_c4ZTh6xYO@|Ej=Bpph^xAo&-g!))*Iqj778gxC?5nqZW$`Z~ZT0B6za6>p z%G*vl^gDaqj7(jnir2b(h2(VHGsQ%MkNxvJn+;mx4KICu`@zobv+$~I zACdYKUA+{|k9zDQWYp!yK$3)yf-EGgP-w_RI)splY$X012}#c_ zFp`v<5Fjgw$*@c^lbjq^CqLP(O@gwMj2vYhOKD0uqB50kTqP^j=*m}`F_y9vBQ0y` z#arT1i@MyU6?^GRDFQQ?P8=pNm1xXk8Znv53?eg|xx;5dvxd@~<_oK7%@krYnsYD~NVzL3 zJWQN3%GmoW)}`xe+H3g?>|9)Jea#h$OqWf&94$H7Jc*X7jE$bIF7oNtz78KRzwquk ze~+K9zt7)qfdnw1z<~q{8a#+Fp~8g>8#;UlF`~qY6f0VU23{*4?vdi)47q{xvZ z6J{)lGNsCuEL*yKN%17inKWzKyoobst0Ovl`uqtrs8E11hZ;SKG^x^xMVC5#3N`A{ zrc$d~y^6IY)vR2*di`qh649?PM z-x(O5cF|RrTyEgC#~^`3Sx294*gZI4hx$1|)O<<|w4R3iZ3o|mBu4mNeI}}?Vu`=~ zw_kuB4u~9jN7UFHhA&FTpm$;McVCe}!sgtJ6`BZOf;ZwQ7K`W^BwR+mTp1)d@^y#d zH#?5zUWrw%qNHz6KB<~QHlC@TlWdBY=8$iaH|LFU%2{WRd3t!~o__v`P*ZDC=_a6t zLMhu$t>`$SA|Vw@B6)>EDk4c+PE_D=ht8BEqv`EfX{e%lL}`eDMoOil9F=P7U#LR3 zDNLPK3aW@-s5<4R@hv)^Wl>(IYaYG=$SZTLP09YEl)?3?Y-n?|Ic$WVjtSystj7A$ ztijgC-GS8_d)~1`)S4cx;f70YuHu60ZMo&TS!xlrn+wOFT^3w$ydy?z>(Jv8J+j7)3LW&x z^8&52Ry;dfvD8-IYTK?fcU|ny20#2Py-Yh?9@q(9Lb1$e$5yk;%Vj;1wix}yuS9(p z^!H7HE9{u*-BbEL4;&a;l_~tY3`1$G!UjF*-%i8|?@~;&B{PyP+|NZ)d zRR8||rp+Q zD7_;h(RoT-qVk&PMB+g)ioKg6E){QQ#Vf`xi&|727rRKhFM<(tVjLsq%4kN+p)rk= U^M@PX2*)_eagKCEL;(N*JJ}+*E&u=k diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_035.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_035.gif deleted file mode 100644 index bdf5beca490aaf601820231386cc7fff497a02fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1231 zcmV;=1TgzYNk%w1VZQ-#0Du4h00030|NkNR1OWg50RSuj0002L0dfEU0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AOxN~}1^OP0J@ES-f;=6tNaPI}!s1YA5aOoP zs`bi5HKS4~5aC^dquKA+Oip9h?6&(9RyU2$xY*p=p4AC&ux!_L_eNM~c-Vk6riVAU z*9bYN$QRjHCn$-ixygxT$LEBWc=jhM8W?KoCsYD~NVzL3 zJWQN3%GmoW)}`xe+H3g?>|9)Jea#h$OqWf&94$H7Jc*X7jE$bIF7oNtz78KRzwquk ze~+K9zt7)qfdnw1z<~q{8a#+Fp~8g>8#;UlF`~qY6f0VU23{*4?vdi)47q{xvZ z6J{)lGNsCuEL*yKN%17inKWzKyoobst0Ovl`uqtrs8E11hZ;SKG^x^xMVC5#3N`A{ zrc$d~y^6IY)vR2*di`qh64;N!46aM57~$}$w9JXZ(& zta>AC(hO&ZzAf2FtJ0lYyDr5W^{LpWc|Reg`t#%?%bPRLDAPGl=(ckE3648^s_ETI z=P?5QweKXj%0m*5-Sm0P>7Nt916;l9BjzcV2$%(MOqB z`jLmFiCP;CvN#{dt+BD~1<7u^Loql38qEUe&H0Vfq z{)woSg(k{qqj@QK=$4L7+US(bP&u6v8_GEsrJjCdX{O&Dx#OrhhSXu$j0 zcq^~9^oHwf!QXb9@3rSDJ1@Wa3QY09(Oz1msQ&7kBb6Dmrm=UuPP|~Q7gvn(nEhfz z6RRn|3@W59D_YacFyDO9ojC7I*rGiDY?#hK4;`1#L?5k|(MT^nmZjpx%5>COodj#d z8%vG#QpQ>xVAftEHRZYwe@(Wa@JiP4s5Y0)cFSj*8)@5e!=&`wcI#C4-FnyT^WJ{{ zl=t6)s}%U)h8x=V;flLd_~MQ~8u#Op%c`09u*WX??6iAs`|XX0m*scR2Fk1>-;IRAw!3aulf)uQv1rbpI06Qf^lQjSU diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_036.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_036.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_037.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_037.gif deleted file mode 100644 index 556c71245e8f0cc905df9719a7a285844383d869..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2146 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_040.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_040.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_041.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_041.gif deleted file mode 100644 index edd4096196cf21eaabbdb1d1df024a0f8565da03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3177 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 PL631smrHX*1poj$+z~-x diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_042.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_042.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_043.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_043.gif deleted file mode 100644 index 1e8b4769f03a09336803911a57194b23ca0321c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741 zcmVYw1{~~%>I)rhD=kZHZK!IUea+qN{f(V0K2Bb4evY25zRuq6{tiz$8Bbqt ze~+K9?@qh#{|_*rz<>P)8a#+Fp}~R*8#;Ul(Hz5w6f0UBIPs#!{*4^@_2~#Qq{w6$ zN18lYu_VfsEDx$|2{UHCmojVGY)A8^&Yk0O^8ESJC(xlbg%Um5(kRlUCK(Fq^HC7f zsSW!aMk(Y~Z?z}Yg=%}YtUv2%m>+ITN zbMH?3JNVn;$LlU{zBl^xz}K@M?*6^;`0|s}ug{z;e)9Uh_n+_YpLzfW*xrBy!e`)t z^ChUDeGE33UuF;@DB*+)R%oGv7-kqDhXrovp-#$$=+KBH0(RetA(^P6ODVR<5sNSi zB;$;3y=bFFHRia_jy%qU;MNFo;Gk_jp4Bu-66xzLnU(rD$CH$JE( zMNoEm&X-`8Bj%VrWof2eXr^i8nrtTN=9^4%DW{8c)`?M^c(POGo_*r^XPtq{Ip~{( XvUzBliJA#cqmDibX{3@WPyhfs3EhIS diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_044.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_044.gif deleted file mode 100644 index fc5531afc1b7bb38a205b2431cb5a4dc83438f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 871 zcmV-t1DO0rNk%w1VK)Jo0Du4h00030|NkNR1OWg50RSuj0000t0hj;)0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hAWCOxJcCFh)g1KNTzS;1ageZ zs`W*suA&KIP`c4x$7E7g2>9x_z34ZcR<9LaHX8f}?u={ivRf7?_y?$mR~XmkCRAt0 z(01qNIN1nB2zNI*xOvrQ2ZiV+iOHy0I23ourWi^`I3va>o8*aTidve<$NFdqJGy(D zISk1ZJBti+9IOhe+r|4t`rGWxHSHQHb)4M2<-q)$>sxsZZR>lUI)3JC=?#ws?lVUW z+(##N-A<}GS69znzjy@41T3N_3%3t>7?~>wF=B*;5-VEdMDe1={*4VhdHe`6q{xvZ zOPV~1GNsCuEL*yK+0r4*nKWzKyoocX&YdDnar_CCN3@_si?(p`(5TX-AdqHc3N_I?%j?o^TzG^H|yZSQ4=pt`Z#jX%9nF)?i@4p=#-~Zhiv^i;664`0~-xuTS1N@14`$fjh8)7@;fM2uD58BNmYCm(DDtP`ivP9fqJS{Q zSRjTpo>k$E1?8w?JUsU3&5uC#HRF&<32CG(NG2IrkxT})_!R=E+CSX!aw zmWf^IWnEx~8Bv#H-eBgLHKeH~4r8_n51VkhAm^Mc)M;mCZ{|4*o_wC*=bt46DrjeW z7Agp#h?ZvKqGcZHs6miM%H^b#e%a`yaayYB5sG$-!Ka|M#_6auh-&HtsHQqmsjSlJ z>Z^CgDyyEE);cAvxB{x{u7mdKtD(0BTj{XGVk$w|u^0iXY-q+dizc(sruOW#r%G#W xsMuypYPHg~6)hAXbE$(D;OPwKAAZoBTj3-1u|&P#8-_TH-#x||dM06WYNza9Vp diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_045.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_045.gif deleted file mode 100644 index c2b18b415dedc51be46b181a9c82e240cdcf6dd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 660 zcmV;F0&D$8Nk%w1VWyNh?hD8AOxN~}=X$;D{tpZahq}Xxh)gP%${zCxjY?Sn zb84#e#_^sF#V2?9k4H zs4{#~-J#-KhZ$n1l7`@U7$S)eRe@rP-7%*kiXbwS3mYaT u6yu82m11LiIKD_@H;$YDWC}tCN#u}2wwU60Mi$BBl1?^BB$8DW0029Mx=!l= diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_046.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_046.gif deleted file mode 100644 index a613adb0019631ea0f12ce1ab0c049b28fc66144..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmVwl@l9?pgHR~C5jVg|!>bNj)5Sig{j$=MlRO*}nT1 zUO$b$cdu`gocOHYI5yP;4zyGX;5HQe)VMQ+%}YFb2-Er5VUFUG{#rsnWt{Twi#KxW z!2N?V=~0h~%T5~1(D3C7monege8Vq7&792)@+_DIp14)3TvdxTY1TuMC86OA2@xp6 zr|7;x>S!zEMTH}Wf_zCcn828=Ze|PH6Q823RoJyv$_|)Iv;m)}6bc5>qLg(j)h#*F zW8Q(@BD&oIP_GV=7|UsTw&^cZWEr~_4tyAKTvT}rOZt|Sl;kKp@RDZO7jI_Gyr$4W zThU(-*f+_76>IJ!ZI}*oySCR^)oEzgCf?f#)(nGPiq?|Z)0Z258ujf7J#)KLxq4}>B8Dr z1P(^pbPBaZ5E7PgmK0GfbhqAAiG>wTDBz(|AzT|#=-ze^UWgt__~mDyOf7=7n~O2R z=#O3j=5pU^YT;;XmQ{_{l!tMS2xx|U h`1w|#+DWBVo}n#jm5ycgCnBYeK!9ncnr>PE06V)@YQg{j diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_047.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_047.gif deleted file mode 100644 index c3a529bf8c800d9b097df5ca44c4e323c5a55f6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69 zcmZ?wbhEHb6krfwXkY+=|Ns9h{$ycfU|?j>0r5dH3`{aD{VPweWn5gd>5`N_pH%tm ToJftLB|m)6o!aKX$Y2csRE-ox diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_048.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_048.gif deleted file mode 100644 index 5dbe5065f7fda620a0f816377256a5a9348cab2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmV;|0x11QNk%w1VOIcO0Du4h00030|NkNR1OWg50RSuj000120ABzA0{(=Lsmtx3 zf}FGlh_l|n`pJbN_kD=hNvUa+)=I&y+RosJ=Z#GtXx9STYP_PV;+yGmv1O8VIT?{M zmefToMW{We_j?74ztpi=WX(?3?Bdqij?1;zUv-XWzwP;ceE*{6H>gw>ct@C6CfJ0i z_y}007Zg@wx$@K&*|l=$%d!c&Vgc}UIYrNVEdh6P(TRg}pY)$-}eOkyJ1j;`pA zm43bqN#1^%-}ff>mRj@9x*zzM@O7Wc+7&pp&75z$C)@MAymh+XEB*Dg;ui{be|@c

q!a?*#( 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_051.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_051.gif deleted file mode 100644 index ddefb8e87134b2f0f35d87d3376bb07b2f3f8177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 zcmZ?wbhEHb0r5dH3{0v$yanAW?+EquTe7c@k-GdZ c)6spJT1Cv|7pZH%78P0rueN&V#>ij|036R4QUCw| diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_052.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_052.gif deleted file mode 100644 index 7454b2a7b7ccac07e5caf162ea4b46b097c99d6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77 zcmZ?wbhEHb0r5dH3`{CL%$&zp)Lv=QyJ)p=&+M|l cE|)x}J?ofwZ05|~UyBwzZ7pUqV`Z=g06J$HWdHyG diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_053.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_053.gif deleted file mode 100644 index d59b78d25680446ee89d01a33d7c3e879ff88858..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70 zcmZ?wbhEHb6l4%&XkY+=|Ns9h{$ycfU|?j>0r5dH3{0{u@+(ij{Aw^1pt(Vcb2WW}_t%`T{Lu>F4WapnALoh|40R%FCSCe~JHNQc+x z_<;yWWQcWWxd+HKNtv0b$oUv5DiH}MRw|iD$rv{l`TEy6I!oK?*5@j_XgV0X>g$(V zSxZdp6FhWQ=8$H)sQ24bm>i>vT8y2|aZSsu{S8hU?j2rkevY25bj;rF{th26KTlt8 ze~+K9zt2yv*$*(Fz<~q{8a!z5AHszU8#;Ul@u0$p6f0W1h>_sL{)`+udi;2CBgl~? zOPahV@}$a@EJ>zp2{We5hA(H@yonQE&73@Y`m9Fir_iB1cM?5{bfnRwOq*6*>NKiU zi9x4Yy-KwV)~#IoLG21Q>?UamS4~kCg-|B6b=aPv_UG6oOh9#rTvqpx5qDNjjqTCb zQ?O2cC&48 z+}dANvXN=?#VmQWDY~2~t4?i(wOrl4MN=D|#xrT;%9-be-Fta-!=n$X)z zgMQu_)AQDq9ShoQ{Wj1zXuZ2?{ux@4zJ@(tQa*Wpaq5Bo(!ZOCSX!x7MP79V8YfIp z`BkRhdHW^yAbJE|p+d1na--x6NlIy^89}OPr$=$>X{bIK$QzzzlDZ&czM195hb#6m zU~O)82cwOmKBeH5Is%6utjP)IDuNA$_iB zu*p)i?5c%UX|05;m}e`swbCgrGKyll?Lgh$siS@k3VIoBd2Ugmk6~VGVZQLN+ipPb zdbq2U#HrhCxoXPzW41v0s$Rg#<_a&Of%b~9i1FgsFtLOlho;06YsG9~ZQ^#|c3vv1 z=az)I1%$CyiVP8`G)H_hO_t`o7|%Kb>@#ygBV_Z?MmtpW(Mo4UnX%a|4Rt|ODrsBP zRtqd+cUmKQb=UG>S7FRDdrh`%cp)h>*JZCgR+1!(&34?0HvL)Ea^Ec<-L$5Pci&0( zjrZSx%PsieY!_~L*@!3Z_2P_Q4WJ%tDunrX)Kmu9vf7pV9JzLYdG7e;j&`nc=AuKM zrWQ`0Zh4wc1I@a`p~oKd?6mW2`|UU9uDi&*_a5-?z;7%3@V6Fke5lAL-|6zqXX^a( zlSVInqtsU)*7ewTrTz9>b?^OE;D8Oi#gmpKh`Pxv}d(gtemah(rpBA!hIAvoMp? zs`biQ0)0W;!S#cJ!`|=rxs8^Ax#t?4#>(gPnUN6d5Aa#wnYdSC^?xo)d(6Y+F+^4xk-5nc$itKdFQz~I!ilR8W{+e+o}MY`+8<* z`dM3Se06&UiHZq@$7A|C*``dSdyJi}-MiiG{Y^y-K2F~Kc#fW~zRuq6{th26KTlt8 ze~+K9zt7(vRt_+rKn<)O#c{L58MlMWaFKF$?xC19Ty%9Q6S1PW{)(L#WF%zJ;~R=^ zDvhKFjiE(05SMK{mI{`yYbj;!*<2`VK|-80nFY;xDkh(Q!W>*1DlMu~ za#MBUqPgm)!=pm2KHwRRY13g}_4w@C@ug9)c*Nf1cIhf5wwKfvtE%y)LbzISstu{p zsY!)e;u<>r+?Sy}R9F%hfjiCpvyyO*O=vrV@Jn{kNJ+ z>*WR*Q0O5RRZ*ZdmKI46g{RF~18vA*hY@-RVu+lLCt`^vhN9t#Dz3OliY&eeV>l$n zNMnsFxM*XJI<_$5jz0c~0ggZpNu&)u7Kvn%A1cXYlS?`YC6Pi#Nu`ZbR*B_{S7ynj ziCcCFriWjKNv1$!mWk##XQs*KHfy#Cr!jBFNvADG)`_PmbLPn>9eef(s1<((O6U=T z7K*4HcP7ec4Tm-gDGHB9O6drbR*IAt|1f#af z>Z`D#D(kGI)@m!LxaP{~uDoLE>#vjsD=ehM7R!z3vB)B-?6QP5>nxzqM$6~4)Z%IF zwRC2yEu7qT%jUP>qABjUWR`0#nCPa<<+|)*>F&E!#w#zB^w!(tz4$7r@4iU(>#vln z2An9s1pjF8!8<0baE=T&T;szK$0+f{S`KV+o)u@T;>H|%iSfsAdMt8?B$q5EOa83P Va?38i40Fsf&rGvAD0f-_06Q;a+J685 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_056.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_056.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_057.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_057.gif deleted file mode 100644 index b6ca464ab761cef480323394f1df7bd609b078ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1638 zcmV-s2ATOsNk%w1VT}QP0Du4h00030|NkNR1OWg50RSuj0001u0e%1g0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AOk=@~2OrMpI`T8*4nbh;h)gP%k|HSR1VD*K zsq+N&S||3!)3++LoBR7Y zJ4{^MAzXoMyv*F($)W5lJxyJ0ea%&?z0KY2{S6*2K2Bb4evY25zRuq6{*DVTKTlt8 ze~+K9zi&>){|_*rz<~q{2J~kzp~8g>8#=6q@S((s6f0U381bUU{*4?vdeoNjqsWmY zO9BjOGNsCuEXSd22{We5k}qf4you9c&73@Y`pmcUr_iB9&jl@tG^x^Gz?M3Fn)E2t zsZ>!7^tDcE)}~lNc76C2-Pf=#n{FfP4XrJHYHJa3*Vb(tZgF?D)0!@<+PVq(f*WgA zoL|3*0MC2p_}UunpI^qdG!Ta%;Z*{L${q=de2+UkD+`< zE7>rfcvej_-K^Pk;76TVtF}Vh_gt^IL{~|T8Z*|+LoQ!t?xS_++Q#i3)?0nE_378= za%WAwclGJBTU#&O8NK86nA1o6K0bbU>GHd$x6l3Ca{06V;R{aQ)o$lSH$-OfskYs4 z*!dISYT1?7Uv9rWs9+$&odrxt`3+d$U&0mWAAS}R=U#>EIR>GL9wxY6iudW4oO4|1 z)m(=qp17ZQFYb7si{X)XVSD}osUC)Qk+mU@N}6|`k3_B&SB@gm_hWW2ve@8!k&Q+f zfnE{_osCuAcw>@UI(VjzP+E!JkoA>kq?+ns_aa~LJ?W;7W}^6}iaFw`SdmYvxhIAV zidL9|VTy^Ifgt*rD22tPDIsl!>SmmxY?=q&q^}j37Mj!nSEZ;Z9qJ@%q#}4?oT+t~ zUyPsL)t*U=6?AJkxxTY&M}^LVmso*r)ayaRZbkl3vBYj_Pq4z;dMrcAhKg&n(6&mC zvsG=&?XuH$do8#&G3Xs{I@LApx4>Ha--^F3sVln!s>>3&d~(>AVp5icZ@w5^xR<=t z#>=Qu_UMwmb}TnsYMS`^n4oqjcttqikJ2 zRd$)o$}K6?KPSB>;(yymwart~9o^pWy8b=3*nHF3;^IpMekRvK*wadAs{S`;@969=baW7++VQXK0{S`3?l9%ce zD!=>s!Qa04C4zqTE8w}pN5K81A%F}d8C?L#zDyZNc?PT?ueg-I^gSnX7_5=rbQVDn zZf}DYEa5`%hrS7dW`SR7VYG77KLOUrWG1X3JW%Mt5H65?1Z-gj8K}egjnIZf1Pbd` zD8nFnk78$$-w|ae!Xir1h!mWn{uO;!#VcyDc+=aW7lYTuFNzT=;~S$He^SOXsu3r# z;R@COxW+irq=Oj}p{nGF$C13Jj*N0+9{=bq0r?P)LjB?AA@shHvr99GT z%Ur4hm%8j_yjbbWU`9%q#B3HUi-}Aa0W+DsC9&$Gn&#QCN--W%xhw^naAAb zGqveWTY@v3vK%KlU1`p9sxqDGG$lLRDav=k)06U?rzY!Z&r0GmpN`xoKM(28e*!X~ z0?i{q3o6HhB6N)kUFaD@8|u(8LNuaZoG3-NXwi#aF{2utB1bz~#E*j1h9VuQ2}^2H k3!*fo23#pi?dQ^$mM^9q+N&S||3!)3++LoBR7Y zJ4{^MAzXoMyv*F($)W5lJxyJ0ea%&?z0KY2{S6*2K2Bb4evY25zRuq6{*DVTKTlt8 ze~+K9zi&?FGX{`{z+43R89azEp~8g>#rcEsZ-_655gS^(h%uwa{*4kRt^>v~q{xvZ zOOAVJGNsCuEL(0v=`yCwnKTi?tcf$H&Yk3L^85)jXic9&iyA%3ktouoOq=R^NMuN` zIsu(py^0l0RbXNY7Oa>xtk|C@J%TjLb*$R8L!&0D`c|qywsh;7^!GI_z^`EK`u%GW zsxOcf-4X_jI59t^Jrz5C{M0Sv$&@!Tu8cWzzRQ|Bdv?e9v*^)1CEN3e4>dZ}s!MYt ziuW*StD)7kJ}tW(>)hZ>?<%8hFhSn4kqSOL6=Lp*d%8LwuIRb&c(2h${i79ot;@H6 z123Kx@7#c1=N@M6oVxevwt(aLt{s*9_wCzvmtVb`>HFaRi1Vn`)t%CQWO)Ne`SCwi&0IzU9ehXLI%ms9k>sO6Z$= z7K$ifgC@#on1?nB=~#4rPMys|8 zYeP^)#Gpu@Zun7Bo9WgUrn4e9o~ym#+SrU4;c5QR6{P-(tCY#T)FgS%LJJ*>hN-xz zcuiW@k$(8)@4ht7w{M2D zjwx@fPZAt(wg6_RtcC@9J7bg(yW1Cou$hN(!{A=$7-YR$93B77}-k{N~ci;CY z>386%T}!gyhTBH?;fl)>+o+2_j-uF*PyT*Rj7L+BxtDyQn>plwcMf`Wj)y)u-lQ9D z`ssnEu6p0Bx1RUwu-E(f!}_1i+uHm)@OzFe74n=HAL;IJd1X2C z#+z&7?YK)1s_DyP52@_j>(2N0f_pDMs^piyZ20Kweg68L)($qX+q(~_^BCKnGyRzc zpY!nf>rW{R%}Zl917P_Q55i=BAV*Nnq#0Ek!ip`rM6BQd}!Yhsj8(i$77rzL`Fp9AN06TM5s3iaZ diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_059.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_059.gif deleted file mode 100644 index 20d1fa14102179e67fede0bef25f92be27d8f29b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2500 zcmV;#2|M;jNk%w1VTu8y0Du4h00030|NkNR1OWg50RSuj0001r0i*x`0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AOh3Vm2OrMpI`T8*4nbh;h)gP%Hd3%CBub}I z0F=tiYPa0cwQ42afaAus=rb<9;ja4)kN0xuw*B{9pA}Fx+b$Oih$>W8`^CeVdHXaA7z-RM z9AbD;JdB*IytcFK{0to}JuOIQeT|*1z0KY2{S6*2K2Bb4evY25zHTnd{th26KTlt8 ze~*tYYc-b3?~^Z}z<~q{8ax4lZyN+YGmd(2M=G_a2L>>*iaATpf9F{Il`8Hz7yj^2^Jp1Nt->{p@uDd+A_O^44 zKYvS{x^wBjnMdEO4LbPq*mbja?KS)M`F@w8)`dkB|oo?n}7A$#!7(b8CYNx z&dEn#gP+-=ntjJ1_h2LG2_<26L8+13h6zH(-dPMfNZ($C{Zw9JBa%3uiHoI}*NQA^ z=i-Yc!Z_oNGUmu*kL`5lV~|491zm=|{e~kw7T%{{hD9D}noKB(r znhV#gh&CyrF9!=uWv}rC%Pob&X6h@yApvP|#zWSqamOTb>~YB3fh=;#qA|7{#sW2r z?^7zvv+p@9uWNA4MJ1KuzA=ZoCbCx*w6jG$o5dB*1?LoBkuzT?rDJy6zrUtEwqcC!HULPMf{(j#?%SYumJz`%Pxo(rb0LfKI9{+*QBLx3g`} zJ9M@4_SSXR@}8S3fGzu)FW@L)b@t*+(f($o%3_YY_vMb)Y^>fMA|^TBn96N8;k@=u zFtC}Y*{$1%r(|@l^is|;gsE=fNenX3%xbJ4JUV2QiM+|r4 zy$g;wvC%)A`_puGABZDiuRy}{uQr?#Vl%Zi&mr}*C25WE?U5gb`jAdCJ@F>%z+de zzzhh|Sb|X`M-OBSpk~x40XTAk8E-U!9=&iz2-GodiLg)}lqM_C@Ih1RnbQEDG#d;- zDUwPXS0cnlo=rvakSuBBry!(6Cccjr*C}NoX`u>JlJbzOWFsmQw257;M>+jz&MA6P zic+vLluN{8am=^}I;LVev%HShPWeh>8giJd;E*bEnaf}jQw&+#IJlIZ4etgj1QxG^8~zbjMwi@|$~sJ?275_NK(uj^8F|U3nqrS`_X|q< zh)SlY-V0&_5|6E>>NeS}OsPxNDdRrr)o7KkQ|q&yoE&B*1HMFb6HF>s@kYr?Vs%VB z1*_q(S}dvb>NVv9YXa?7F`sc&r^st+wsQ7Kwyw3SG@EMm7}wCo5~QuYTP!I#8&tb<|*Y`Z>sK&!#zz?N5KY zIKMHEu)nozp=|zZ+S>}|wv=sYbC393kVbci(|u=ke;8Nb4u%ZC#9f7WD#Q{ocea=9 zspQn>E$>oryh1fAN&1Q_^w|`)S-LI{Wt-E6!gsIk<*dc*yF>iClv0mHpJ)RcBmm=3 zz}_RU)i5_&-SJDoH$3fE(?#6buJ5TnqA(4!>&DFqOSTn?A5v+=UgcUT#VY=tQawCH z7{gG;PoyymLA=sAcD1nh?QO zQhV6C{#VKKZLqYQd{{6?nag;UEb4e%uEKUq$|MwWc>ycp+r@d!N*<+diOgG|Q9K=jBngOSWmrwwk`1g>tuZ^lgz**{H13 zadPGwY6x?9WS};8gVBuVw{dFPEJ}CC!cFTktM|-9j&zGajau&|Jl}JpnZKQfYqN28 zYPrU@r5`=;j}aT$2Dj$Jd;M09qxz*EM`6i-{O)ngIc^C-?$#=D@-5ePxx5A+UtDhN zq|%0*wj4c^Qx9Y)gcWt@a%LoazD8+v5=s+NY`Lt<{3l%r>RRwp9`wK_KG2Ga(u%`g z{w7;*Asdi^QJt2=iH=89rFoC8|pG`99@};b+vna?`h5(X=e`hr+3fI zSN-1bt{%Eb6*zrowGH3rt)z&fw6#_pF>SL OnEqHP&Eho*0027)N#8^O diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_060.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_060.gif deleted file mode 100644 index a8426e53b90471b39750fef9f749c85136debcac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1609 zcmV-P2DbS}Nk%w1VS)i&0Du4h00030|NkNR1OWg50RSuj0001j0bKw90{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AdSu$?6&)zz>&Ywuhkxh>f`H$7Y-OG*z$)LwsZH;w3o)$ zHwYOi8B&;NX;{{1b@u2u`3V{-QHX};QwO$~##u!w`U)E>M}~?RG&kmT>UsDi2NoMF zJS4i;5A#{Ph%sZv{(TG~dK{9?9m6w- zW-a^$vSUAfCr2JsiN>YInKWzK>?X2cLXRW!wA6W0V8Jm9d9oyEa$>`nH=8(WzD%bGp=PHIG|V`WAhxb~n}q;SVNeA_i{!xcH%LOI&)2;C`Qk#eZ5tG&`{~dA(bNAAU~Sn|Wy@W4?HAp6 z`z;t?gAVrR*nLwSh~OPx5yaku8g2-jJ{x`rqCFjkNMecDDQIGfD&8~ViY~s0PKz+k zNTWA0o`cDEnpha#V;Q>VQ+s(JM#UnyH20GuB^9P)g180Q9)^we7iEnQium1<8F3b$fcG&UWnpyLV`3Vnrmw5C1MduDQ0{xD#zSJe1w$cncMxj3!B}26=tD* zehFrlx}~{gmx@+tD4d6uNg0=6S{Wf^>E-FxrGW}6sF`gB=IN+yI(dnoP6Db5QE!ep zUZiJ^$||h|Hi{{AWCAtik9G2=rl>s1S>dlkDw+N$VN7N^teb&8ODwd{+PZ7AKn|7b zkymA9Sg(*;8?36}RcofWbe0<~f0P>Ax$tzWRbhP#EUu@HJDsf1 z#=51K^fFrJzozmF@4Wn4ify)d>MIw8Zn|0|l^64=adU(wsh`2hDa2l=b9h{=kvhDEB-!Q;7P07a^Vq6jyUBvTOKXundcih=Vp8U zd3|)7bGYeBx6b{y1|q6zlLDLm_Es+l z;^==-K_BSW6+S>6Fmer3*N{FazRiiye-Z?s2|c($a~%w1SNoU(!S%3yk!yx^BjNFG z$U$G}aAb0N;hg4|G5uL@h(sJ={ta!&wJTN;gO<@^iM+VQ?O`cuU<{)Xw}?iXh%t?9 zl*bxzC#i+$fq6*U8^(7-G&pLj2$ZA!y0EF{pvSND`_-7%5lu4;TK)Z7nCDMd-viju=4C;K?*sBZGnj;^xB97Co@VU;#aigk(C`Uh9#A=9iq$Dk=Nl!|R H0ssIz0NEf3 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_061.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_061.gif deleted file mode 100644 index 4f0f25601c0194e5b990a25ddf0982c79423a3d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1749 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_064.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_064.gif deleted file mode 100644 index 4c59b213aaf4eaadfdaf7887a77b9601b3062024..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2176 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_066.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_066.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_067.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_067.gif deleted file mode 100644 index 5b0166344147b57095e234c97862edf06727c205..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1428 zcmV;F1#9|8Nk%w1Ve9}|0Du4h00030|NkNR1OWg50RSuj0002&09gP40{(=9smtvT zqnxzbi?iOy01k%YNS3DQo$AWA?%N$~n$Vtofu$tO&?x!k#X5?V7_UFvXJ2B^h6iR0ZI9PWIpD=rN}ZGCK^J0+FgET zeq7o3d`_OO?)Hlm9DK}dEs`gwl)-U}@F`lzupl&l80PfKph^}I{)NcC&C`@47bAxa zMH)*6j3S3UDqFgIIb|ZunKWxoU}-a_&YU=R`us_;C(xlpUkELVH0g*vo|?+k@Kosv zel3+{yDBCh!D~V8^%01OR#aarm2I`wm1jPzVA^tRr|_U$Oo{eU7=jk6K)9>w>eN%w zE!wSC%(3<6_ts6a8~75|C%EREY`PxqrThc4;&F*1Ltw1;?bk1W)F#rr87xU!sF~pD zf+zJ|suG%x-jbIq&B=!6s+L{2b#C05M|-YKJA&=B#GjdV-8(k)+`X4ol5S`@91+@I zHJ3e;x9{n?TirGU z0f*&$aF!QmJ)-mojb(=(=oFct^;chD^7*M+qUbf|=YQN78EIszr72v1-x-(b1!`(V zVUCL~*_j%d|mkEXRk%bWuchzd1tR{hGzb1DhT2_+p&37_@}de-O4J5DJ2UW zR*&ll#Vq}(8Mw$-$ zagkd2`jyAsO?C2y*WEtgnQu%K7H3ul5p)h*<9;^OOhYd!f1bvYhU~h6aqNzdI>u?{Ck_ z%XHXt?+fa>cw?(Ki^!QGZq;Eq8{yzH!~W|gtXBvA7pZ+ST5Yd0uj+W+Ph$$J#gOl< zIphWZ9e3Q*j(ps;_d>f|WoxSeF5~xd4tK|~Srn|gt<$Gnr8lSUHoE|yo*3{GySg8{ zeh-SeySh*BSivTDCUJ|<^GNcYjHBgck4r0$T|a-K(*hzDHRk`= z&vX9zH+DPz?dE6#EZ{T_adiLVP=aIgs1M2HR1T0SJ6vOM^^?)eLgSrpF?@!zqLt3|#xr`aj3a8HwJ=yY4Wdtnt)d|xb>_$TRnQ+tJfs<6CZh?` i?~oAGWBnM(L_Ye@k(}HlCn>4IPnOY>qRe6e00296KGCxP diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_068.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_068.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_069.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_069.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_070.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_070.gif deleted file mode 100644 index 183033aa97f77e9edc891919f5b2c25a632374ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2084 zcmV+<2;28ZNk%w1VZ8yt0Du4h00030|NkNR1OWg50RSuj0002J0l@$O0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AOxN};1^OP0J@ES-f;=6tNaPI}!s1YA5aOoP zs`aXnlA2Me*2_!;!$5Hq!NscA?6yg}Ja@guM!J`d%d_V4V*H1u=SEm)c=+eEln3a? z7YF!-rsyaKw+FRXd5PHR`B}rMsVF)askzBS$$8n7i3%DkJ9| z7GIyQzt7+A|9=FDz<~q{8a#+Fp~8g>8#;UlF`~qY6f0W1h|!_9{)`+udi)47q{xvZ zOPV~m@ubR?EL*yK2{Wd|lrn4DyoocX&Yd)O`uqtrsL-JUdlEg0G^x_17>zQ03N@~qY=x$63pcLZmT%|Uy^FW0xx9S)`kh$! zui(Lc0~0=s7_Q;Oj2nYp%n()`U%$*r{z5PsoXv9zYVMZloRZLWMnf^!Ma*W*lse-% z7Z6iv(6B{Y4)|KM?%9q}@6DJxwjWZbCs{hpn|Saf$(a{DvV1aZ=)$X0uZ>(_^hl+* z>z;Fax$)}LyFUT%y0d!Ry|w?g9@~lM>*k5uK0iFW>+je8)3e`?M0Ds`$6I*xxw2b; z2Oh`We%l#n-h%`7haYwcuGijt1JY(;Ztm@-nQE4dI9`GvQixxL^Gzol5hT`k3WfIR z$6gZ0Iq1!e!@Ve;j6BMi9diI?NC$@-!S`W-`I-2mbLb_BnSV1vDPVptHn<~@CMv1m zeZS4tV|`6x86%leURWcMMH-6 z>XVMb`f8AoN?M+2(z&^3pNw`&XdWpJxhjk496SE1ikbq;AhW4L8ReqQMH{TMwQh)Q zi)aRkD`W}{NfNl=UNo*s;$o`St)EKjZ9?UWL@c`G%4;sV?~Ak{YpO#WuamOC}cCnEgkNhUDAD?{kksL!8 zV9Q0J40FnR{YP7lmSq-m&K0YSG08RBt8>r{^KA0ZF1IOk(nJ#N^U)?ht#s6cr39&h z!~R;e)LJJ-^+ytK4K`a3cl34GW}Bt(*=jHS<=Sq`T=3g+XPEY$i&6&cbGByIQx?g^ zJvZ2O^L;3uQ{K5Arru?$Zs3l0tucZnBmNgAx9@7ZE1ZUc3b^A@+Z>;+EE8V%-HRWM zA%Lpccd+N4L%t@PtJA1#s1T>F>VYTPTDI##!*1Hmq#JJe?WwkXda*+G?z_&g$EWJ> zqKdjAsD-os?3T@+4gA#zDbHCr^?>q84K^O39ZrNKcBA znU$2AY(%L`K^9SSrqZM@t!b_(h*03!bf@0@s781S)Smhjok1;XKZ}agqarn^N?j^X zo9a}XLN%%{ecqp1N>!$YXQa!_YE-Qnsq=aDsgf+_4ab_)vfeS8Xf>)@5rojT?sTeh zohV)F%Fw&wwV-<4>p%PI*L?yuu=gA+Vb^Kc!{RcriVb938~fGALUyT)oooRsYuNx| zHnZ{DEN8dp+0Xhew4!~TWJ_C9(xP^5s$K2dTI<@i!8W!6tS4>#IosO`?zFniXl{Ee zwci3)X~G@u?|A-eT)rYVxqn?Qa|P?%=N2})(nTzFtGn3iV%M>@-7W!(>)nolH@pqh zE_uIe-t*>fyy{&Td)v#d^uo7!@0~B*fY;zd$&`eVH(Y^J3u(-zCEuo(qRN9G4G+xGf?c@mfl3;?Bl5bIml5NGLfHRx!7`VB;^i;%WXob^Oqk33PBNqUFlSyfKh^AJ!L&KfFqt!*0Sb^j>v_+7 O?z5l&+yjOJ0028c*egu{ diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_071.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_071.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_072.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_072.gif deleted file mode 100644 index 3b4feab02a6be8b907b555f74797a34bf27655f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1216 zcmV;x1V8&nNk%w1VUq!T0Du4h00030|NkNR1OWg50RSuj0001!0ek=e0{)DTsmtvT zqnxzbi?iOm`wIZyNS5Y_rs~SJPiThnOxN~}=lag~{tpZahs2`sh)fn^%BJ%PjY_A~ zs#Tb}YPa03_X`d$4dSx-j83c1hqe0+kIUyG@+?5Zi}J8UzAd8{2*XzgSR+Vy_lL0P z80e?S*hp7tdAV~asc6SpxHq^7+By1Y3L2U!nTRT?$0~{`J1eW%S}OQj2&?Oem+NW+ zyqL&3Ojx`tOv~I{X>05`8hKmlD;jqk4}2q%k8e6zg5;kk@_|17{NY=?rGZxG2)bT*C4^`Hn5c){*3sx{afhJU`L50 zOBx{;ZWlF%#wcZ6Ir8PFkJDVz8%NHh&Yg^S`uqu$O~0T-iyC#3^Qh9LOmzTq0X3@B zsZ^_4z1n~wORQYGdi@GEtO~6-#hN{fHmzE#WY@ZV3pcLZ32hrv_+x0C-no4H`u!W} zX(J0|^S1d#2C(AAjLp_Pe0ZxLdXN!Tp4>RI=FKG@Cl*{*)8M^^7lh`FI<;yBo)Ld` zO__3O#HUx=zKy%}-q*1w=e+|PxA5Vqbr0r^xwq>&r)v{`4n3`BNXxSV=UsY|^XS~W zb8YQCy!i32Hj+P&9y<8+?AvQz?>@eKzVPSUzmN9u_3V)T`6D;|)pi&Nn1OSlQHP&; zzg5Ouf75VM9b5zwMpbPSCdiq7{W(}3gqAsgAcCf8RUT^_lE@Nu{H4f^iLa?xVlH+e zRG3W|+NR-WE7JC1k03G_0dozyNZXKo49TO8Mw$oUe?lU6pm{jWcHxbE<(MRoEdq2L z1bPVw+-$ueN#=`YMkuCiE+MI0n3pYgos}6bc;=1`w)h{BZzfkJk$w7?<)3?w24rwu z0y^cOa&CsDpj-MlA(dHen5U9;E~%rGluDKynv-4%WucWWN*|rzbW*68k=kh8k&15Q z=$Bsx`qXw)TJ-5bG`6`_m842%>aW5M+gY&09*h3$fW{`vY_lLP>uj{r)+cSX$5Lx; zwxnXKZMPV5>utF6fh%sg?2&73y5pg%ZoAyE>u$Wm!7FdQtI=z3zKlYvZ@;(U>u~O?gP1oy;A$HkmkP>e^qF@nbni!(`kqBp+980X*Zl^}J zDae?z>Fde%t_QP&f`aoh$fL?!aHH6})diY-wZU0;4R!}#hfTJ!9+!ul~2@xBvS4@XId${I%C_KkoSF ezx)3D`|iL01@CE1DWCxjn3Mx5aDhB20027xM1dv% diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_073.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_073.gif deleted file mode 100644 index 5cefcdbc1e3ec142c155a1da5e5370e02a7f6f0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2773 zcmV;`3M%zSNk%w1VaEaH0Du4h00030|NkNR1OWg50RSuj0002T0pB*-9lv__w!aoAI7rAalx5eDDAyI% zw5W(wG^Z5Qcj;JGxXIaRqgg4Z7#H?57V7ALr-hk$1n3znJ9}j)Ij2gB+lcFDq{$Z7 zin>c{e2g5jdP>UM%WDY+tlRtSS}K~Xz0IxFCTx`b+RP|@_#Ny^DOw5J{SF^5KTlt8 ze~+K9zt7+A|3Bf0z<~q{8a#+Fp~8g>8#;UlF`~qY6f0W1h%w_I{*4?vdi)47q{xvZ zOPVy8cZO3m|@ zuHeChpBi2Gx2>PVX|v|l>bS7v$&_u{t!pYJTd9%t>IKTUvgpyIHC{$(3M*v3i&tB1 zT{^bx*$__`Ow9Fg+IEVM_U1x6xbWc{i5owTe5vi^%$qwWx%|2G>C`1guZ}&t_RK!F zd;hN8Zr(0%~|=3jvZ{&!wk z4y|)wgASSopn?LL7vF;xUWizPdsTRwRv3N=Vt^X5*3gI{p7`N)D6YsNMJl!kV~kOm zC}WK_ikRSyI_?Myk3Rlb9FRiB_~MX8I#}e9O8S@Nl1|FkzVprvrT0WQM zmR=&)<(Fa#7v`8|##ZK;YF3u!nr;%-=9_ZL73Z9GepTn4dNP&go_^}o=bwVsN8_M| zdKKuQimH_8qK=AH=%bQa7U`sxzSQWYnpTwQrk>VT>8GNC)aj_E))nfhs?L<^s;)*< z>Z`BDD(kAW)_Ur#xQ?ppuAlbm>!!d4d+D&mPHO(_v5zLJ?4ryzd+4*!4l3=me^zVl zp4eu4=eFF=>Fu{~hAZxx+Y8D#(U+w^iFB-y-((=?~?rXd*r_W z4=M1#Ko)GUj|eBc@l?DFvByEy0k?#?{R>+{d`1}!wcL>Im9(MbEN^wI%0?KHtqM}6?r zR4WWn)>?1Pb=O{h4R+XKk4<*jW}l6A+G<;Xq&H$T!reIHMDzA7={SSi+(6xeN8D?t z(e~Ywl*0@==DbY}-iqr@PBr5EEr@Gmss7g2QJl5s+kUX|5rgZhj^&~*!mih^mw1_ zYrUqsQLx7jJZ>TNPCPbo_jF{OPL>ck+HM zPmECEtG_-o)MqZ-OGPUThd}!s&~bwM9s)z>Kxza~fE!}SgxWVi^RVI<=CB)Q_D4UT zz@c%_;9qx`$CwFHkb0?8&?0y0~N)(?H)h9(glhBh9HB?3KQDd$H- zWA37&{k*6}U&=x_j+9i{{306(WV^jhCZi-8WPA`)a zBBxp}!d8sU6LyO1Oc9-WS2MO!dLPMa#rDe4oBp*oAdTc*p~uL=f;Fs4^(R#tJ3HPm zHn4__&>Dk@*U3^AvZ&l34z`qaD^_pl z&$;r!9o(dmUD5vf5W`B$tT90@VQE^`(MmSD>cPurH7m*7Sx{)qO>Ryw8QOtHFE`|c zD-10Q+Mcqft{hS+d5Igt%yn@*xV6rDv6{_e0x`4ut#4Ve>Dakekgto)EICoTNIp6j zRp+VRdpsFc{z}-tZ3QqdE4#_}bkva_RqNis`&#ijcq?8wtszM);Kx?Dwb(@_YjTNM zE4CKF5_)cU(}~5;;`of$R1Aw@hFFkZW-~e!t|B9xqYqPfK{Z?OO;x<&Te?t&ktL>y z^$Xk@Ba&6r-R^7CtKRDdQM*T6X>j-Z2;!z@GrR4wbRo3PK;i_%oZ@X*mCIB&zZoNK za`H+1JpLm+@0rVjl_{MO^j7!@de9+`jG^zs=O%V^x`1Z11)GY|F%mSsn^tKzIX&gH zb_CB1+o*@6Y+_M*bk#l{sD&wQX-J6|%C6xr8j-kT&X%Xr0bO*gLFMX9pW2SQthH_% zn_|~C`qzpswDmM?5#oq04K$641_8?XDL`T}=&!``g}p zaSOGWjahaxmbld8BWFELv9i0(sJ<;J?Y-D4?izEx%Y?EsN!oq$`PIpG?1;CR;~%e@ zi?qJuITa4)eyj0$Xsn^?a<^Js|MZO&w|K%aUgsaf^0}8YaJ#WcaG}-~+xkX1p*8Jq z{sqU}lvVEIk%Qey-R_#)OLc1~S{d(GqVt=Xqou%Y9C8fXeAxkp^!qYc^QmK-=y2lt zNVClnun&xqO^snGW_i%Uh#g?2)-Y`g>~=PJ9iVN$FtH(Q_npptkYvB?z>_%RBkSGQ zT7P*unWx8`ihb?abjhf^J5ejfONmlk+J=2^oQW30AWret~BcYwn;Pc4>x z`{#T8ReXZSfgMP7E0`fIh*2-t82aaOiZ>!k24=}6flHHvvb1t+231CeW#gA!8ApUH bxPZx#fbJ58%@#&wXohEqhG|F(1poj$)Xbr^ diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_074.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_074.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_075.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_075.gif deleted file mode 100644 index 2a93d4d3f6774b1106a18f9515b3ab98e29257dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmV+*0^j{dNk%w1VMPFL0Du4h00030|NkNR1OWg50RSuj0000*0B!&P0{(=Lsmtw; zf}FJ4i?iOr@DGNc*C`TEp_DqY;#;1W+od)Pll0o!?vCT=5raT6fHB& zRKyq^ser{^k(;#)iCwJG6uywsY|y$5r-I}0H~oIvqRHL`ezi4I=JY2PsCH9RRv1%q zrRW7|#yBOGNXXc7XxW9C*~oy1P+1Yz&3C$O@R62i*Ldn@AcweQ@lvs0o}cCyjjcP2R1&E9{)UjxEHlhq}H8 z53Om-R;#as->(i}5`F@;6dWk(puuSh7gqTv@D0R*5*scQXE9pF_z(m)TJh*+qD5Tb zxB+_gsMnrwpo(=GL2V&^UtHf1)E;oO#sk0($mg>ur_?w&>u`^1^gHx{! z_}Wlxwm>PLq8R#}Yu!|F*Pi+J)9K#3H*X%DyES2JPD{^$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_077.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_077.gif deleted file mode 100644 index 85f00e1adaa158efedd9c059e5906eb601552c6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2143 zcmV-l2%z^zNk%w1VOs&M0Du4h00030|NkNR1OWg50RSuj000160j&T40{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD6HK-a-|19^VzHm&>lY&{0=*CQHuvZnJHW0H1jI37-&b>DI5CAm5Q6Ya`_fFSc{2? zNQ)@>o5riFygVi3m8#;UlF=D}JrqY41h(X#J{x`OO&9Q(Hq=aG5 zz6dJ0VdF<|YdY0H7%1G!HZ!|uECocG7gop)`E-yI8ql3oZWcXK^Oh)Iuu8&7xpL{G zn}mk>pe0pl5M-}<4J8F@i`QPswk}$w~(q8SBZtt%4z? z%=m-f)@AU{h8$An=dOx_as7SRbd|Q3&2kpZ7_CxIzm9Xb-CGRawV&jAb}OqUS(@67 z!W2sLtWLgftjErbJu7qYl`}vOsR})Oc&f7QI`tku`snojrPD?+p9}fvM^S$U9@x%w z2rkIrG71V9U^5L)c-MX-dC&-a*Z4+^NR4&pol}ogM`11xc3@G2yFFtbe|+82oO;LT z##)Kyv{YV9-$e%2b?liX+DR=&NMmrUu)$MQx%m>Jjk4iL+Ga6EkYN(4B^4TAj$NRf zAxT97*MD}oHD!xVa*1O{O2!u6G-g)08ZUBwxr%n0g=L>;o%Ph+nHQxA+?vD%Ca7>9 zy@sToRQjkUm_WLi5o9m==^m7Ursfo*=Mj3@X~kWrsicldwr4z&PDv?UY2w7`Q{#Pl zDtDxch^2?23c@Of=}mA&lc`opk&1NPb*8YtQb7KdvA{y{>VnN4Ylel;PD`z-1y+k~ zw#Z7WZMWW939g-dB82E`w5_2Nx;Qn7tFqswnrug$WQr-Ao07y~X{f%-Z(7013!JCP zjj~#pt*mFyEraRTSu*2uQZ3~9~BHjHkML97cRDP?->Qqd@VDYUmIMol$? zQ&)|3e^+PCb%NY>4YoR4hfQ`j)Aj1~(Ma#OjS}sZ4R@QvP3*B>OJ5pv+;Q6$D{g{% zs!k>V7(rUPVyvU=k&bFAtmw0o` zhmXdhmB@>lS;o(c4Z8G`>-$(vf$Mtx_8UW)F1a9cWq46uo`^-o=AZvBdDF8W`gVqH zV(|RMcCViM9R^968%v=^r9J<7BYFY+UQaHzvYsvFSqgL(0M($h;|-x>DN|eOFsQH! zS}k`XETP;UWx^B!g@h_>VeeX4!WY7@f@f6%!&9%|8S=mQ!NS(d-UjcAM% zLLJX6M#L_{ij56&BM9#Z3LYXVgZrZ+^jPS}=gBaTyBj1SZ)eCu&MuLPe4QQhr9u1X zk&j2)Q6mwAIUpHMRN>>?=$v=Sb!3uN?sK9N8#TmGVscfB`QYL@`57MiOO>nqmjQoc zoh8muaC|6#G)(dbj}4@ij+)?3mUtKDhkGvCBe#(Nge}?O)B$~ z_}iz0SXs(SGESfelV$M!Xl778{8E{@L?v{l2+@ev2BDD*9l7H8#eIoUqbZmuNa0A# z&FPAy1hSqdH<(X$;Si5&WN9DFX;X#)GN)O?DNm)g)1Ok!r$Wt^9bIL^9Ij2N`zk6W zMmev4rnFubb&gXdI?ut_bE*UtV)?FGp=1tWCm2nh6(9AmCxZ1xVs)k*Rdc|9j&!Xd zFloT1c}A{MkFJ<$YbyU*OfY(huYGlC2isN6rQ$KJgtbIa8w=EjLbhf^oh<#%YFUj{ zHnVLkBPHF*)T)Rpsf*1hXRT#eucC6LC~d9GPFvDwx^_7N#3uw{3n0&$H81cqT3~+* zG2G@hnPv4zl7Rk8Ra^?!1SqR0-dKy=u10maz)P)djhm&uSfl?yxyeWic3b1T%#sUv2QRAcw^%ZV-*1Ety;`{3qgmabONpsXE~@*ZMYB!}JPbnJ6~F z6wCLhCYJDF`L|aPqsYKB1u%F8?9tK6_`Ublu{`N(70tTl~Tdp?>PHxXc{SkkR}J5%coEmwGdtgBKKGLild@ zx-)aRoIYIXO3=@-t=~F7XkONV*Uon?GNGpuOlx}6obI%z_3_b9 Vi+a?gF14vo4dzO#T9E|+06RUAG@t+g diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_078.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_078.gif deleted file mode 100644 index 4a6e22a873a6148a16a9c5d8150fe618e71f427b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4w7Nk%w1VGRLM0Du4h00030|NkNR1OWg50RSuj0000D0Z{+|0{(=LsmtvT zqnxzbi?iOm`wxcVNJhbNo<Fc&*Yi$M>@j-_kISLKw8m{-SEG4*13woi*s)ia;db?=h*n0o zs0TPGIZ0V*d5M{+xyh*s^a&a&I!an`uh3;J4;(@dyAW^8!NW!`wJW_ zJj^O2BYz8njtfutRsoMW$AwU9-QWrfWBs zZ7Qt-33p9%SKD5Jcmun|2bphFhmtE>9!L4I=FO;{a{dh3Xz0d=o!@7P<0xDUC0GUJRR`A<(Pi;`Y_L_Ur1T zZ~s0Sy!c(t$D6Mw{Ji>Z>DRlL_dfpM_VVSIuMhq{{_Xm1_gnApA9Mf)xZHpQB4^-% z#3iU8a11uc+k+6|CgFs%RcIk>7-q=Yh8&{i;fJM#C}L{#l~~}3C?crhiVL>rqJuET v7~zaGQfT9i7v`v=hCKGz;g3LqDCCeM7HOo3NeW2fk|lKlWt38OPyhfs(2z#; diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_079.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_079.gif deleted file mode 100644 index d1ba0420050390d27034ce9ed2d7a7a874815e02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1318 zcmV+>1=;#XNk%w1VUPiM0Du4h00030|NkNR1OWg50RSuj0001x0eAoa0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AOozdZANalOyy5!+e2E<*Py`Z>IpuO_R0NU3 zq^=2FPMyMR^jQmw#~7+rC$*Z-K(xDhY{%vD_56)LulIEJ9S+E5M@Cp^7?{_i#xU4d zw>Z~`n3&dp#HW~9=_Y9>c?cTX0v5GdM~XE`<>|P}h}y+en%DUhM9U?_D$3it@=1B? z$e8FFX-f>z2#na7YzpW6=SyAv!F<{}oIGgE2?=efw2g)tPQEKmY0cg~vFz83u6LJC z|E)RvX=Wb%EV!;L<%+FY62AyqC~S*D{#jor7W@b@q{xvZ zOPV~1GNsCuEL*xfG$p3YnKWzKyoocX&Ye7a`uqtrsL-KAi_+w1G^x_1Oq)7=3N@*2 z^Zl+lJay>T%bQn>)`|Ag&Q*J7tC4qW_vh=|xBKO}HI3%R|v|#~y|oUgz3zQhmrFP%KWSB5Tpj z2V+eyx>zHMbHSCHE()s0ntG=RnV4h|9ch|;z$Gc7kIMmh8>DxFk z8rr9v&|NvAY$=v_=z@VpStxwt`Q`~?ZYru;dqtLpR*soE^xhTg{YY7=xk%}z_}j<(kL-$b3JMd)nH5qy0JMm`6dWWxxhoS#TTeUY6dTB<6^l!UtD6rK9~$MP`c~>Lv105H>Yy$@#h% zvdUC_>~hR9-*xiLHs7pO%{cGOvr{_v40O;!{Va6RM&m^E(Mm533)4blHyl>{7XQejdpO0RY-lU%n zmFcLjZZgcQzrK~~u+Pr2-L&6+mg~6hp1bY5{~na=zz+|X=)@n7wC>0+f1L8nKfkc= z&`-Y__13H9{Porgul?-YcmMkL;IA(J_@|d|{^;nZ@A>-dWA6U@lgBTAE0Wg4b8z2GSX21ikErAL=8v`3Swg*D+YZ9E`)+%Vht6?yMQ`;a1pXR|2 zGA)E6R2m6OSheh-uzf0AA^ckC!ui24hW48w4fAKi8}cuQI{Y6Gdnmvk008v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_081.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_081.gif deleted file mode 100644 index c1811fa44d11ed45e80e141c1ace1b5edb22ff4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1704 zcmV;Z23PqIcgZP##ag5K80rso$J*K_6vh{xDi z;iYHj97z!H-Im6fWYMFTH_NQ6ND>oM_ z4C*5|lv`$MxN4S}ikK{y3EVnteVs8Wtc~66{ff=~Jx*S3eoj-YzRuq6{th26KTlt8 ze~+K9KMlR_{|_*rz<~q{+G}Pop~8g>8#>H~@S((s6f0UhSmdI{{*4?vGK}akq{xvZ z*?}yHGNsCjCs(?B2@_z;m^5qJY&Y|!&Yd)K^85*uq|cy4i&`9NG^tXBNS8W&>aQu( zsZ`}jt%@}(At+kAdNrAmpr%}7IkD>TXC0KZWjb*!_O{_&;Yd+_6ncZ~89%_YMgKS+m}|zukBK*zoi_S1R;h_Ax9<8fA;h=0 zN88+|vSG#AW1IKYdiCPDp*epht%nCK;CX$!=8Qi4YwYg+_2V_J8glB1!WwvG$!1@H z1mXvtGwk^VAw3a6h?aa7T85y048|7Vb&XX=mU#Sq*Ij+w6(}Nd9ww;aY7eRxB7hN& z#$H=)F^A!ED&Dr+eXI${qK4y*7$lG@4r!i$_my{9lQYr=*orPbnVeiCp7tJzxm|H$ zB2~obU5p-#%hv4e&XtCLA>UAp&G%~>K1Lq&4>Q1t!>#RDY9uYD<8DId3mgl%2pex zv&-6;Y^|r#QlW*Y!j)IJ-D0^Gw}~2y<%P3q8yT?bil-L2nth7Zx57pTuDruK`Y&7S z{>$yT1e?3-yXN{Eu)(E%8?R}?TBh*3tQ1Gg}-5T`rrp{>sM zF}esB-0sJIxeG7LFk9^Ls~GQ`?5|2e>}*^j(~Rn*h#l*2(Kt&+VaOCub2ElY*F1Dp zqY{g?O;=~l^-EiK4K_+3`J8dsW+Pf-Y3)u+^Vx0>G-1r!ZcO&ucH23#+|fGS_T7Hp zgV4&S-5cfKhNqhM%{WfH_Ti3K+4$m#wfDBEDwta8Da z0Ig(6I}8cq*Raq`Fj`Fu;Y3Cl9JckWU(-UN$HHYG4dO6rE=&jv&(*Phosfs2vl-7` zMxP#{ZE7C0SPn;)F(hj4h<#Jy{z87(#I-$9Zx=(E5xpqIf)US(xQSq!u){T%}f8=}J2WFqW4*B`qas z%UgmCmb!#qE_->%Ujox)!W`zqifPPH@iLjFoFy|^iOgpPDw@)K6g8`9wQFK?D$Cra zPP*w$<2f^&qS7WgwKvXlE(M(G^qM)_NfdU%Qzi18r`XpCj2PKSScre|99G z0^JBf3u-BRB2dR3R$G^?evDpw7%)vuN@r(%^VI?jsLw5oNjY*j%40028=R$3td diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_082.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_082.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_083.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_083.gif deleted file mode 100644 index f5317b739bca6fbefa1d65fd60affd5037d13b96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3854 zcmV+p5ApCvNk%w1Vax$h0e}Di00030|NkNR1OWg50RSuj0002Y0Z{<}0{(=LsmtvT zqnxzbi?iOm`wxa*K$hl-rs~SJ?hD8AOxN~}=lag~{+}}h0K+2jXiOrP$|m#aj6$c< zD)nm3Vz=5Z_v;OV$Ko>iY)+%cLZJH%kIU!uy8VuK3)kvC|L+$FI4D?1cxaf2xM`dX7&I%`U6TZ?+94U_+Lwh77eB?FmzW(FnNlBiFdOq)8b`B4o} zmqk;CB;jDGk*Zvg3Z3e;Xjr35pPD_3cA?IEFJUgJT9WHjv2^FgEL&H>TC88Yru_>z zFo>w-`cnNR_i)m@ehtDL8+I>W!-6YYzT80ajG#m9Ce{m9C{m@JLn}6Y8nf!vfC-!N z476-qqjqQG<4l{fZPbi$v;Ga-sb(1_QO?|Zbu3)Dqm!FpPOb0b(!r}+r|J3(LFG5O zU;hqX;qVyZ&w3A!K0UweV${2T5C7tLi+9=CzmGq^4o3+7ztqJu@dYAQLoUf=emlOVV24sx)MS-b22hi061-U&yWZ14bDQYRVbqjPu;>f)UA z@fnj?e?E6xhlD zs;Hx>L@Sb|UX^OAx;6-^3xQ6U=&iL1D$-q4?u!2GI+FTFDvhHWM{BOoo+NFu*521^ z3xQfiXSACZyX~sij!Vq4T8K+-x@2a{!m;YUtERcrz)SC)>B1-knFd*i*R z`m1fGlToHBxGXJ-X_SlYSlq0#QkiO7rbb+&Z+=!tal#T~{G-Mn<4W?um2z4vr6Ic; z?v%HNtMbb$&y2FIB|+JPw2IdHXLJy5ylBsakrmg_Mn79owTkXcDbEcft*OmR1HCY# zHRt+t(GXV)sDwJN7-P^}d;RU#DN|eaw_?L(VAT=ZSh3a9_H3+SwwkltrX@p6wpIg6 z?I+V!bLz9-XY*Zj*K)6oWY$O9X0uy;qy9bcuX3}T_T505O?l*WpNMplaML_1;5CzG zY1meO)%e4opPKjIo>Trd&_8b-G~so(o;t%*W_~e@8`qWl;+!9QyQ9S?sCo1FcFy&- z^M%T-&?cYF64j>99{cI+VeLBNv~MMQ?!kL&{O)g+@3Y0~hkSL(=_jtW_VYtO`s8Cz zdpy|iLsL9C8B3y4LCLIP80s-s%=M1vX7}_e-4MO82?T zQH^hiBi8*mS3VKW4uC8?APXBPo3?SxfX+Ih{lN4-+a*d$4@BF}e#k=(>h5TQQ=kSH zCdBP|aD>VWVc(v{x)LUFdnm+S{{Ie_xz6!Se`@pH_a-$saV5`WO$4FWBImg3NlI(jBZ|G0UFJ3OPt{r4D8R6d3kOM6eVR zD3XzI7r^Y0wf>yT2bMh3f;!12N?wwaJEWkDNa-a|UP6_l)Whxw7^YUra!HPK;Vf@i zs8t^F<1i%uKf zGP@`>qwURtk5eA_P{zt?>N1vGvZm?Sma-|J$8nbPg1%fMH|;dd0H!H< zQv+rqCCAL9nUjGRBql@tB}hDfg0G+L`d^&*b%kiY$cVl~rc%76!{=d*eD#YbNr`7o z*gc_)k4$Hi0_r_6ag=e?EZiKIr^jOkvunMpSU)*x%0tC;UF&qyn`Vkl^eu3h9h+be zKgv@nrnHGg!kj?&1y3VsG?&+;O*~Eb6Eu!ab!wy=*i_WfK3-3B)I6X|nS@a(Y!#OQ zv*<;$swKJt)UI%f>lEgyR~EtWu0hRfU=JH2zdGTS+d!;iF^N}CCh3jH=}`tJHd!U{ zu#uLW*^gA_u@ydcOp0A;JJ^cWSoLVN1vD10NTtU7Q3#zV5lIb4OWMeGYqCs8?Q2!5 z+7z|cjoeCLscQaI+s~dhxwt)QQTN2#B&bNb)vK;_4Jh2oW^7A>9PaH{+uVWbR;XgT zE^W>>ypoo{j9TSpMN@wS$RJ1`ZGM4bmEF&wqTnzTrjh77NH|&_CQLeI_ znoLM5YdMr(OfvH%^W-gyIfkd4VS2}mW<+&)ld(FP8Pg2sGtGFnumo?M?`+tcv2((d z#j~HCJpO0$J}}IGj`Ec4SLj5uWqM9lw4;N7WHvu~(pn01gDH(^@@jHkneKE&Ee+`S zhSHpVOJIOV!f9>mF1AEw@_%W}K zZBk(?o7l`=wzHcJVnQQ3)0>9&v#)LKY-4*F#-6sftG#V)i#y!p9=9L5?QLX(+uW>f z_jSgNZeh54-oGhRx&1@$d|w9M(hj8%y_%)NxW%XZ{7lT;_b}ZcTq{QbEzK5=FnveB z-t6vIpP+WC>TM{tVKFLg#tKi%402L^RsUih(ZJa3S{`^oJV8IgCz$J6 zjr&(bzxk7xJ|srZb?T$z`OUWem9J%8Z2Fge?dN|$Ab{>Se#}>Z#Q=cBc7T-dfD4#21Skjd$9NLR zWal?Y7&r_O7zY*zeHS z_KlGkj^b#Fh**wHc#gD|j=i>y)i{psSdSlQiO(>PGL(-7_>Q`$jsHlC#J7P236S^b zi2*5$`=|{4c!LP3X6?9;68Qu1SZffeixxS73aNz*xq}#44;qU>3ldTf;4$*J^tyFkqDIOK$PIOln$AZ zM~RfR_=Q5rflc|0#t4<4CY6ntmHsG%SGknhXOr;|mRZ)7CHa*ziIr!`Q-OGpY)NN0 zsFH9=A4$1=REdFBsg`Bgd}ApOd6L;RnAYHwBgvT5W0&C< znN7%(WT==0h?p{%nHyP|jX8#U*_rsanco1IlJuE+$beuun(t$M zseIMBmX61o+=-mh`IgXGoP`OVuUUuFIhe;;p5%C*{*S2(!f8vp*`Ci?o#@F8@=2SY zS)Ucjo%nf)>S>wx*_`l6mhY*ZUm~FC)}Ka6pb3hD|5>2lDWMRWmJ;fbn2DfUIf@v1 znK`(i-)5k;pr2xRn+>X=70RKk_?{UGq8pl)nt&lXZ2-!THaedtI-$0yqA|*q z9;%=|`k*Tcj5>O3DEgv5>Xy1Gq=f07Oq!hI$(}umo%A`PwNRo%m6}RgqcGZ}GWw*w zX`WIlo=!@jF8ZZr3VldwqO<9x%jc%MhNBNTr`E}zR$8V-3ZxyHrZg(2U^=B}N}hTe zrFnsBoI4vmmOXYN@#DpNKlBsamMTN~yt$tiy_>=Gv*~ z`mE~8qwIQq$VaaZL8~rVulXt-fC`p->973?uyUoW;K{H5YOn!|u>b0<1gn$@>#zq4 zu@1Yi3@fh@Yq1ZDv588t|FW$Y>#-RNvbiv^8@s9@YqB4UvQ#**B+IKQ>#`>cv);I} QESrJ)YO^T!gT$e+h&(Ejyi(u^jY_A~ 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 aKMb@(ti(mk#O#U0jP<`!EX77q0028tc5x{H diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_085.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_085.gif deleted file mode 100644 index cdc6137746913fa64b803f31501ef2cd73d2ea9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5611 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 D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_087.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_087.gif deleted file mode 100644 index 52c7bcfdd4e011eb929497755ff769693fd6f485..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1992 zcmV;(2RHafNk%w1VLkzm0Du4h00030|NkNR1OWg50RSuj0000!0gnIx0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?i&U29DFlV19^Vzw5-g*I{LHBte3eAKXl)uwE3`bs2Fa)lJx&hO%6nd}zTS~;>CPT6KTlu( z&W)e1zt7+A{|_*rz<~q{8a#+FVLnj`8#;UlF`~qY6f1ILXfdP4{*4?vden&VqsWmY zOPb6W@}$a@EL*xv=`yCwnKT{3tcf$H&YjkH`uqu$<;|c(iyF0g?WoeFOaTsU3N`A| zr&6n0$_E z4>-Htnxd7cHm@VVaqr5d=B+Md$dcC(uG~2A;!l9pI4=A+&Z)bat71&*S&d#GMD!(2 z?YZ#~%ySZd{^lxn+u5-*tKPgg^k>YGCXK$_d+OW1%$GA}jkoyT;lDde>S=wFF=oMu zmzLIzG;G|-Yuif18MJcm%-b{6g6*PixZrs+rmtRDdhy8q<;y028-KD97nc>46=R=N zrv(PcMKwV8V08DDS6zVmjpv_%^Y!#yeWlq(+k*d1$Q^iySh${Q4JzT@bjeXCpoj2< zDB6g{l!yd}70OtkVuf|sVTK6iXdH@4y%)%eleM>xX4@g@mwypTcHm~>ojApG_3Z^B zE(89Sl3G{N_auQwdc~2M0;!o3n`Y^BSVV3*^&*^gzPVGJa^6|ioOsTp=bwTO%1@w# z9*QV-F}*_9DSisc<$R|d7fqB2u7+uu-nCU-r2z8fS9hE2`KU-h?r7we6Z){9dT;rt z=7*im+GC7T-eT)>gh^;$sRJ3B=8i$;M`U!IwYvT(n8n_jUbCWRnQE`w5i4z>!Ul&J znnGP`<4tr}n`@@Ly|$@!WIk)zYQ-X`jjru7%a*VI0K3tt-8ShdK6+KTDsI%$7^AcP z#!Bmu`qGN;m((UiFG$=5=%%myE*qaT1lJlcx)>jfF_!QyoZzmc@@bO25R(it#S<&s zrE3WHCu^=elKbz=yvCfCwqiX@SHr5tEAYPRe)?UenqouYw3H29am3u_%dpOgPEEC< zRbPFz&scA5n$%o>O_tVRk8RX$Ko3^t#$>Ne(rz$@v$SKavQ2lew!J-Y7&*#Yci#uO zJuc0hqU?9!+1?%Um4O@1xZOVDt@z4~PyRj;;KODE9OarH{&?WWj!F3DqR;E~=%$xk z`su2FB=+jAE7bbyvKJKl?6%X%x5GW_on^yRDyB4gOuyRbGIa{wU#d5zauzW2OIqb|fGtcs@hyw*ZQVJJWTf$BHwsH2^iELT4IE(Dn{F$T-XzHe3 zo3`@WyLCR8p=xj3xrXGtlra|>5PK!col45r5a~q@Oi81Pz3lfQc2Q_c2o&J|!dI)g zVMTwe7^CP$ovCv{aydDSz zR6~b3&?2Wg5v*GGyH^E|Ku#)N{`VY3v}0h1c~e{>>b!_2fQ^uGNz_WYo)@~T-EeAP zyj{-P=*Bo&3yyNE;|Ci@JVqJsV1onR-I#`*v+?n0k*Zkyen+wBtr2Tx6XF$lghU*H zW_v08SR`W@Bt&v$k;(UY}&+J+t(F2Y^#ngdj& zGdGDxKmMq5PCH`zQc251@^F3$9G^F%>926kMUUA05As@wCZU-JhK0l@xp?`_k=b!` z?@VJr$~e$IkrJNqOeiq^hiTA*w$h;#m5w_97SW1=EhMRF&RUwoq*O)-TI!0Ja8Lsq zfNHda2O=PZG6SKGvM4W1is?vsI8vJ0R7E>oY1>fa(woZ7rXd}gZd!9E__T;ctl{ZQ zeL513B6Uj3QL0mgs?;Sdm1O0C+msrrQ>fyQcvB5)U#wbF26Z*0FV&Zlm>O1|npLbe zZ0T9Q3fH){W_e6~DIoV+)4lG?qZ6eoEA84;yb4yYY?WzF-ReBYE_Jd;HLTr1u!;x|$H-S46L>)$~EIKa}RFM;P9-vj5@ zzzSAxf*Xve0Yf+}5}xo^Ds17cU^v6GeK3c^$lwq2H^d_TFNsSm;1i>`z#d*PST^k9 a6vY_6ubpv(?SbPQ>v+dJ?y))w00294`~JBA diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_088.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_088.gif deleted file mode 100644 index e2c5ab3aedf2646785c7b7b1703795179a5a4bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 901 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 Li#pU*E&u>K1`QrN diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_091.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_091.gif deleted file mode 100644 index fcaf32fc692ffe840db47f8ad9d4d7808b92c7a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2115 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 D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_094.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_094.gif deleted file mode 100644 index 37baf58d980dbbecf368af868a8c64861c80c268..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2693 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_095.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_095.gif deleted file mode 100644 index 52ec68f8c3e5e7f70c577de299455bf4dfe85990..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5171 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_096.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_096.gif deleted file mode 100644 index e2317ceec436dc969e5315640bf0c8abe0b92838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2972 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_098.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_098.gif deleted file mode 100644 index 1af02b15a1d0aace15aa9713512cbc0fb758f8b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3774 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 o3RvlC4elzh>`Jfi1+SA2~p3s3+6JO1WwG5`Po diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_099.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_099.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_100.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_100.gif deleted file mode 100644 index 871398e918c0cae12ea8e43c44907d0a23495f86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1123 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_103.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_103.gif deleted file mode 100644 index a470f97ba73fb01cf49f7dcbc04c98bdcb9ac7a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1401 zcmV-<1%~=ZNk%w1VLSow0Du4h00030|NkNR1OWg50RSuj0000y0q_6-0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_1nSDR?hD8AOxN~}=lag~{tu+3g2bZnh)gP%Ox&;ujY_A~ zs#W#8YPa037n=Qw$K-N3Y)-4!>>|1ikIUzQH~o&!U+wz7|4+mRI7nC+BWReY_=mXY z_!!p+IY~JtS&5lhb*b6unZ)@iI@%LTdWt$@n#$T*cin?jb~R5+{1AXi*!+{*2Z(a+K!rqqC4A zm60rI>?BHIDp&ey=~5TWn7Fdh>FtMM(|j&kRMtZR29-n=IF@=fXY zFU!D!UlJ}X^Ds~Vbs95feAhtX$Br96qe{0jWy;GigM6hqbYIDKA8!r~`IzUCpiiIf ztk~sd*P2rgTW!)Y?b)MkEACB;`Q6OJ9?e@q1AI0bQA2#guXPA4C1PGva zT}VbBfA*z?A2Gv4Mj$Y6MTl4pxWN+&h8fagpoM#R_@N6M>JSWqC88Iidc~Z04vaRa zn1g~<$*7@?E1IYy88lkqKvFp3Ly`qO4GCh4U}SI;k}v$o1PHSA=mnHZh_I5A2`UK+ zcu6u)l9nr2i4K@Gnu!yYTabAKnmf2Tk(jS=S!OvTHYBD*Y`!TcAX@GjNI!tS^QW3m z4m9XGPCk@qDScW;XC#ao%44L2QYyuymKyOWH<&KDDLbDY8Y)_)rlBbpqb7DLHLd!v zDya&|sOPJk+8P(GRmM8qt_Q(bk*;nCOChAho+&^)jg|vz%`qe3hH%GFVosi+jO06b=hm$ z33new)@|;KcS00Wp@*xoK$!F98RVCXBmRCa;bwP`<+N&lFeTpwAIKz4+*sm0Rx9ug@p0ww>-j$_~S=ezW3+nD6;wMyKJNT@0Z@D`tvisuKf4c zudV+31MfHg{V!0*65s&McDVx@D}f61l&}ogK$htWf)UKw1h1E{!%(n-j66`NmA4z_z2WRFA6P)Vx(Ug6Y<0drm=x* zRA3tq_{IUo@qcsNUmfpv$NA;)eS2JAAJ6y4@dfgGC@7>M4~fV`DsqvGY@{O}3CTzv HvH$=(c$T$U diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_104.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_104.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_105.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_105.gif deleted file mode 100644 index f1dd7ebfce33d26d36b728b263b2d75fb8e10a91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4243 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_106.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_106.gif deleted file mode 100644 index 3cdd29b1aa458c92eb1e2a2a35e17863de85e90c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4312 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 G002Af?tj1l diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_107.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_107.gif deleted file mode 100644 index 204de8c6286e6b8e0f937522a99643201c3116a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1081 zcmV-91jhSENk%w1VNC&J0Du4h00030|NkNR1OWg50RSuj0000@0b>9F0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?h8x7Ob4S4;P|1}bMEWac#NHoH#F>G%%=0SBpH>< zXtkKoVRKm}V)_h=$CxP5ORfGIU>o?1R#@X*?&3-(>-T(M()*^B2WKZZhxB)77WZdI zx7Zgc*#h~PR7q%{yv^-WJNex$J}wf@XHK53zRuoGt_&Y9KTlt8 ze~+K9zt7+A{|_)=z%K#|8a#+Fp~8g>8~!8cFrvhX6f0W1I1eJm{*4?vdi>Z?Bgl~? zOPV|>PbA8fEL*x{sPd)EnKWy{i)k~b&YdK2^85)jXhWYuiyA$uk0{cmOq;543Nvw%^%G7Ol$9=oL_WSkz=^Gb~nrVO07a(-P#it*0 z`KgDVYPo$@+I-awg~$))yBa^T>DP)O6Cg@|78v=Qvb!L+JUq<@jx8{*nLP_U@V&>T8fRhoH2SfpqZvYYFUj27U!mq1S(qPmH=gjkEbh%x)z@ik?Ieq_n>MLtEI9B zD3=bYx@xQ_x%%p-wm!6Lsv_nJY_M|TDr~W7>A3!*vC5LA(Q#ld3oTde!G~b9)@p^U zgA)l*K51-w)*S5_69}kz51S%@4o(aRqww7 zV-@hg2J>6+!3qPc+>RB-yKuy{zW8jo@kxyFaD9gNUX>YtoYcl&dPyzFCTk|Lmn4^b za?8V}<}k4?x7_c{Hotsx&Sxd8bI%h)>~qkK2u*azG8f%*%}CFz^wKo*>~zshM-B4S zRA+4U)e>i|^}<|teel;{4=ncB|CVj`zG$a?@7iq7>-O92#w|Cxbk{xZ-FSDa_ukj` z?RT_*2fpm!gd1!4;ld`aIIxU2{_5k9uM{Qu9F0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?h8x7Ob4S4;P|1}bMEWac#NHoH#F>G%%=0SBpH>< zXtkKoVRKm}V)_h=$CxP5ORfGIU>o?1R#@X*?&3-(>-T(M()*^B2WKZZhxB)77WZdI zx7Zgc*#h~PR7q%{yv^-WJNex$J}wf@XHK53zRuoGt_&Y9KTlt8 ze~+K9zt7+A{|_)=z%K#|8a#+Fp~8g>8~!8cFrvhX6f0W1I1eJm{*4?vdi>Z?Bgl~? zOPV|>PbA8fEL*x{sPd)EnKWy{i)k~b&YdK2^85)jXhWYuiyA$uk0{cmOq;543NJuUw~U=d z)*y#8sv_fd-Q^hDWM{|rYHg~`4~hJ;@8L#4z5Yxmc|)q=9LjvnWU6T(y60!BbF8?JxgjBpO6)zN#>2+ zWhrNv)_j)XUTE%_oqiXxSf-;GTG^FrO1j$0E3LggrO>Y@84LcbK*(NXY+K1b3$3%zPP>*yD^iQC zt!A#7ZMSM|`-8XQrUmYYfwb!D{E>tlM+itu-l?$)D_U5E+z4z`rleGN)+wZyn z56qLl1RrdY!3Zz>k-`i=jFH0-PdrhP?1d68#Tv`HDw{`Uym80}S*#{{Uy6*fTOOVV zAjm1d%+|`>e(W;LHXkQ*fdb#mvwZsY40Jvc2TgROKNpR3UdtxU^rB5aoz%`yPaP}O zRx5q<)jH)c(;r#Uai!etL^#cZHF#8-0qx? Odg`jL&N@2<0028pc`r}^ diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_109.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_109.gif deleted file mode 100644 index fd1cf72c5aeba9d0531464e624392cc96df853cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u$_Nk%w1Vdem=0Du4h00030|NkNR1OWg50RSuj0002y0IUE20{(=LsmtvT zqnxzbi?iOm`wxa+K$hl-rs~SJ?hD8AOxL!I-1^S<{tpZWa>AnVh)fEJLlVGwC_PQn zlR=5iYPZy=^V_tF$5pQRjJ7d}Ua%B3EvM)7y0jg4zo~G&{ST@eSKt&y$z(z{k`K2K29S}e*R*PzOJIq{(g4_KVKe8 zf8XMcf3Ckj-tX@lz<}EZ61-;c;IxDapD}E>>>@u{*1dea=hj7Ho!kjuC^6VM$Cs2w)hh8jdR3p-)9hWi%>GbKy zs8UT*t(sCER%R!++Ue?*4%o11#*&S8^(-i}YPYa$TP-czN^j>TscScz+`P&5@&$zV zZ;-%(SNSb0_AuhIiWj5R>NpkQ$Tucau3`ByEXbPIHtwt>Gw5`mN9*Nmnv&?$D^{~k z;rg|e(y|SsuKg!A?jf{yhwJUTGVtJ-hZEmi=r|hPxS7{>E*tu5>8z=zwr(2xXzif6 zclNFs{AKZ!$wxNt82w`Ph}jo*FBtw``F!c;wQm>yT>Wr+`M3427Jz37NEU%%8R!*) zTPcVYgH<^w6@*Vo$P|T1S!fi7Lum*Uhdp_y6Nop7NE3-MndlOVE2)SQizT@z5{w_o z$PtYh*=P}t6X^&Mj}7^#5ReB6Nf40%8R-v_`zVPIllM4Dj|fsuNoAE*UWsLvT5ieZ Il?4C*J3@0$`2YX_ diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_110.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_110.gif deleted file mode 100644 index 4ac9391f3fb97d3ed495f77eadc7fe8914c98a41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2179 zcmV-}2z>WPNk%w1VK@QP0Du4h00030|NkNR1OWg50RSuj0000u0n-2g0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJt{TL07#KBh+qN9zeD9m-7PsGl_ev_4shlWRL^yFr zhBHc}W`|m)_Y0Ox9l+hVI=m*JXLWZ?Mu+G0y1Bf?HrzEm*C?lT)+O{OWrvv9GWa&d z$R()b7a#{|}JfzJLS^8a#+_Ai{+V8#+X%@S((s6f0h_h%uu^{(=!Vdi)6TT*r_k zOPZuM@}$a@AXBn@33H;$m^5n^oM|(s&U-j_`uw@BC(xlpzX{#etI({aj@TrXMv7^y zR6b;_Y1)Gqr659z02yV3S5s7Y!p7q&>J_9yJGhRS!R@HFszK89X}jy|*Qs5n;T5~r zl3uTN?P@ja)o)%&fcs)mTX&b4v`{Ax7Hg`j+sSm1Qbx{pqAjUAR?ex#XL9g5XK zSlovbjwal1w_rF6UF?Z>)pIvyr`2vEM&=qUM4pIMilzB@N0k4$n52gvQU=+4aVlMr4PshyKvlqry%32Nndl1Q0j~I8czM)*>TWexMg&Z2LeO>q~;-MxUjo@U{NlUAN|fAYpPG7_6*(5qqI*zLu40 zX&P49E0R_M8?8#i=2a=V&N^G_h?_!Tq@$(68g5KhHK&|+XF6GLoG11-AeQmOJCvW& z0t}SElIlzFN(Lv)a7DF}iEzU#bwsOZs*;!Ij*YH(q?Ae_L2rlI+PfNmM@pQgza)>R z+iTu!_A+fCD>}1T)!GJgR%%)smcC(VEf;jTV)6O-%u$vJ|K^ zII9IAD}@Bw;JI7_8&~0~W(@OT{(vm8s5gPIOEUZxw~A$>Pz;F>v5BB))P){+h02Q7 z!qxY*xGq!KsAtp~9*3-$rCTtDTT8lNmjK2_V})pm4N7Ah=Qu=id8}-MY$6O>QI@> z4p_!gm$>Af^?HfD|8&r5!vm%*MU=P9h0d5ko05=-898PiQ-6+9W;CVQFku#sio{bT zHWQ{zZ(6f+->f1s_cg2U@Uol*D{rOX3 zcm(1q2g=F`hGu;T1tk6c_SVqE<x1gS!1|E0#!9Xe zb89~68Y#Sr%dYrHSC2|`udgOluj0c`i9j^MvU-HDCP`~y%hgT9Le{8*RV+>+t3)og z&3TrsD`QjEqo_>Qf=%tL!uZOQYDQ>mMzr6ZOuN_5g2}L%ZQ)J>2HTT3mK^E2n_)SY zTZ+gwB)bJIW?TM?B~7*yt_~3>IyY zt$boErx?mF=JNEIOi(JLRm}Fha*fH{WG(mD%g_UJHqks?H4jsHU; zg=}q$giGjtu+#BQ%kzgx0Y|Ok$2!kggDrCAXota F06S7sPjLVM diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_111.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_111.gif deleted file mode 100644 index 63f5022ec5fa371bb06fc7ed9b3f56a2e7fef53d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5872 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 D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_114.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_114.gif deleted file mode 100644 index 9f42429e9a83b88f3a02a877d4790784d047f135..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmV;$0y_OiNk%w1VT1rm0Du4h00030|NkNR1OWg50RSuj0001l07?J=0{(=LsmtvT zqnxzbi?iM@@DGNKX9Ofbo`{;Tj(eDJB(LqgvSumQJdQf0DzingNK@=$z+bM!7&4tG zsISTs24OYfvRA$4zG9D-sWPLXM)o=!J4>-k>@?_}*L61gbPo3x*i+~Bre-MRlGc<0 zX2;mawm5kwM`ze{2-ydi*qF(A_vx1h`G~1F5+&)US~+@ZDw-Kd8CN@tNz`f^cNW_9 zYuTCw9P6p~M|dpa{0zMsJxyJ`#f+V;z0KY2{S6+@Y%E@GevY25O|Bl^Qb<0gBX->` z&Tj90jYqh(-vzKFB*6?7yVErlvni1_@r;4|VtP77a{GQ?$em%+EQ|ARY1=CA!YzZE_es2DY1cj-yCK8JuaVzYPDV0k;eDZN)LWH$>fO$_ zr`GPhdHC@Kd*98P2GzdvMCT3f{>^63gf4Tx)M%V8e0?pRnY*2hk$g&lCsTjEnH6Av zt+fZ%ex`-wmvweQ_@8e2^`;<##ufKlg%;*R;5r#4Jrx7CGCxufR16f4!qCu(OX_Gp zrjod`AhbYH)_3g1tke{*>s2nX&Ffb!e#hHt^o;A1SJ$*RTwLXch9?69C`Z+&=w?TV zsFhZCxWRNr*R@C}WvQ7*X9j5q#kj=h$VnR5Hs@GJIZ2u*vo-n`O8Y6I3Z^id2I~rm z>k?TLS(a4VE9?1$TV503?>obju7P+&rV)$pyl7Lnb<{wAzkEJAg{o{@$ zrBkami~7>)NrTq3_H0_uE3uhjg%q@v} z@&#GBZY_A3lvTu*^$+KyLIrDI2Kix4?uaW%x9Ac&{f_rBaQw+bS%J3=M9CxEjq_{?`az$9j#I z?MzR4>a5!w`z*&FjwZfJ6%sfGnn5U{fDB>SkXWWnCn{RJh%uwa{*4?vdi)47WJVq& zOPV~1GNsCuEL*yK2{YysnKWzKyoocX&SE=z`uqtrs7YQsef)qlvj;(?Lys~oNz{iE zr$TEI9b|K=xfWEnCR;-F>q%0WQfduLa%$C>R|V0O<>jkav24$fl3z%JVoerwo@WS(v>8%~-`^E#xTFW0?GS*B&Nsxzxi z0vW7b(3&N|RvTOHX4a`&uEq-!aooAUfz#c+SoG_$n@@W--kb6A<&|SAAuhXg?xxD2 zFYd}WdiB@SUJj;9z2VZy+0CsUi~H|;@doMJzmI>s_x$|+`-`9NUw{Gv1>k@N9w^v! z>8S+7Ve%d1kbCEurruDzNQKyf{IxY#a7hq`9f-5Bwx1W*l_*4WvvoM&RfS-dqHYw5 z*dB6e>7`+5$B{VWf$yP+l5nO8DOZCda#v)I&qan7koWzTRc5?B=w5a@j#gV-6YZ85 zmk4rZqlc1_H<@wJp_t`fL8{2(m-SuQ+L+F<$Xkzfg4LaGY;NbKV=-oBU2$a!dgOOS z>RBk9J{nbEkU(l!o|2DE2w#Rpg!8kIz&p88~jSOs_1kW^N< z!&4*XQz?Y7t%oUeu=v|9#gjq1lRkzR40BxbCgr+5|OVTLpo&G7iF0XR-NT{Ov z_LV2K;I$d%zUuC}Er`z6885;}+V)trWhSd?z1962Yrc`<7T&mz-U=qA8!l`za||*_ zCQgke+A_vknTl%7z4809%{uGk;y^q9Tvg6M5ABoCL?7+4NJ=lwbkj~h%~1gWJNi56 A<^TWy diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_117.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_117.gif deleted file mode 100644 index dc290f26da000a1043da34f3a3f07a6536a78218..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1342 zcmV-E1;P49Nk%w1Vaot(0Du4h00030|NkNR1OWg50RSuj0002X0BZmM0{(=LsmtvT zqnxzbi?iOm`wtqyNS5Y_rs~SJ?hD8AOshzZ=lag~K70EKhs2^0791sG2Vb)%A|<5J z<7sJKC95?q0BQP$snW1m96*!DF0?wmF1eNOEbs|O*7M~yJMT6ZsMH6DGG|lxHTZY7 zXP2^7he$UGb>&#bNExT7b;!p>I4TNhgSW&<_t*I{IVGnVis@At$%mU}Ns4D0iF&IB zYdb2lt6O~L`Lu^P3`d#SxaxaX^|)yJw%ygY86-WMn+y~RejHx?dyO4St&QWnCQnWZ zTAb*KJiV{J9@uLf7F9EVUGb)k9jbu0^yykC42wUB{wi9$sHYUh{*4?tQtSvaq^XZ0 zOPUly@}$a@G*YsB3GG>NF}! zq*ALIfoe5t7phvj?!f9bthGmC%QE3=HtkroY|r9s3->13xN*VK^=kL7*1USH^6e}2 zFJPyF2P-XX*eK$}LPI!y3^}so$&@QwzKl7u=FOZtd;SbMwCK^KODlM|z|1zJ!zi9c zErRuH)pBOTesDW=Z7;HWNu;pvMiT~=9_E%%36^q45t1(&E*$!~DN(3DhweOf1Jtmy zr;eW7IPr7Gn{WTl+`I$v+vQ>pul+Un^Xtpg?+$@`@YDJJ&x`Lj0eAexCtY;|-ezBV z`wiG$fAc-3UwG`javgo>4cCu*7giV_g3DRApK)?|M+=AY;Rd30460@#f#bah4TK4* zXySwgriWdQ^^IsDaWmq_VR^{Bcma?Q9*H9}G7pd9eZd#TIP?sx8cL;DAMuc3GBHsCod%KwiXrO`)N@$^m z9*U@CjMatKqFpWKs7{d5cF&#>KEoSY%`}>dD5cERk!zr~Aq+zGxWh_qcZBFlsrb~n z6GM&qp{gOLDsvD%qiXjKt@XG%>rhmU+QMqdaKrvfEtSe-;9IDQeMD?Iv1CIG zh0&%83bsT=i>t1&&Q$Fu*S_W3vd>-$O|QaGIA84tNPjfE$-xtbF!rJeNoQ^t`-HR;DRg)A~mB$qsIZ#krU zES_;z{BAxNqbrHAZm#rOzGu~Hus#UOtA&it)~fHt{;D$&K@9VJtEv1*iwUc)G%T;u zAdz(R#kV302+LXr)Ai6mhnq{*)zGU0H`pe`&ez!jvoMQXL%Z(7ZntDFI(N6DaMw%! zT6fA~cjL~zMeoar!*NgTbKp1!G!_lD zxcR+hvtAMi<=Q39j^XZQB6&Tp7fN5BG{AM4eT`;AGJ7ke2APeLbY|LO{maYf-G=Ou z@BY=wckdSb#HdZh*^r!!6~83OjepqV5ANs}8|J}JfoLKVgZu-&Jk75{9(th5BIvy= zWzR-U3SSAS6QleQDSYGu;P#Z)KWo5;IXvo9%}$6uPdO+`e~O_;U>Lmjsqlb4>Q42V z!>1j}k4`7y9$0Mm84nWgb3=q88fBz7#jIJeGgyq>Ua06rNo{eAWGtf@1yuk5J7y@P A{r~^~ diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_118.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_118.gif deleted file mode 100644 index 184628646484bd526e47effb7c27fa8b2e51b88d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 967 zcmV;&133IgNk%w1VaotK0Du4h00030|NkNR1OWg50RSuj0002X06YKy0{(=LsmtvT zqnxzbi?iOm`wxcVNR}oTIKjFeZ0o*ooYJo{8?&6-ti8BRYBh!oan$h=LS-{TECPzs zsSfGNRFPF!Pu0bWugtA=8a`*yV)L3DgSORFBNuLQtK0hE_`OB-gX1(8Bt_KF$5xT} zH~7Z5glA`07xh$0Nk@3s=|~63NH)1y29f5tIO@rSs_2Kd8W|W#`E?d$$`$Cgi0f)- zdnoGrTA89cOWV13YX&-8RtyVvyp|SgjFFwFT>aQw+bS%J3=M9CxEjq_{?`az$9j#I z?MzR4>a5!w`z*&FjwZfJ6%sfGnn5U{fDB>SkXWWnCn{RJh%uwa{*4?vdi)47WJVq& zOPV~1GNsCuEL*yK2{YysnKWzKyoocX&SE=z`uqtrs7YQsef)qlvj;(?Lys~oNz{iE zr$TEI9b|K=xfWEnCR;-F>q%0WQfduLa%$C>R|V0O<>jkav24$fl3z%JVoerwo@WS(v>8%~-`^E#xTFW0?GS*B&Nsxzxi z0vW7b(3&N|RvTOHX4a`&uEq-!aooAUfz#c+SoG_$n@@W--kb6A<&|SAAuhXg?xxD2 zFYd}WdiB@SUJj;9z2VZy+0CsUi~H|;@doMJzmI>s_x$|+`-`9NUw{Gv1>k@N9w^v! z>8S+7Ve%d1kbCEurruDzNQKyf{IxY#a7hq`9f-5Bwx1W*l_*4WvvoM&RfS-dqHYw5 z*dB6e>7`+5$B{VWf$yP+l5nO8DOZCda#v)I&qan7koWzTRc5?B=w5a@j#gV-6YZ85 zmk4rZqlc1_H<@wJp_t`fL8{2(m-SuQ+L+F<$Xkzfg4LaGY;NbKV=-oBU2$a!dgOOS z>RBk9J{nbEkU(l!o|2DE2w#Rpg!8kIz&p88~jSOs_1l5BRi z52Q`n7$~KjmWqX#J02$=jk|)^)RJ^shw6=5xuT(Kh@r(eXPN8)>y2lwI(e(AS|WPe zR*)%Ytg^|aIINtRx`}HRy6y=cw=@un-nwnd=;fWLmfM(lBhuqnv(o-*mxOUx>0Gg3 z5|S*i*X7$IyJ#{S@U#MlN}8IJ=BDqVJ8;%$uOMEyZlitDYb$d)Wq9n!@xk`+Xa%Lr pa#bLY+j7k2VOXBbHsj>+%{l`L^Ugl&CsNQt4^4E@MrTw206TWh;&=c6 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_119.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_119.gif deleted file mode 100644 index 0dfafab1829699002e9af925a183514e6e0eb44c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1916 zcmV-?2ZQ)WNk%w1VJ`u^0Du4h00030|NkNR1OWg50RSuj0000l0lWYJ0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJt`-2nOe3*D&(5vzU#>gwfVSMu7eO+N5MVIzlqefh z=X8mCT%n?27Axa^g`jOT{5_M`y|HxRWy_1;EjYQXBI9H zol=*=nD~Mv)~r8?a^0HoYYLEJ9fd7x7Hv{IYTLSf3pcJ@EmrE*PjP zJ--_U@4W5K^EUtPw6|;Q+GkIX4Zl41?9t!H7hk=-{KeV+_n$|9Uw->}*WY*m-Upt5 z^67@!fq&JOTX6na*WfAmDHz~sS?GtLV*Mcqg?%B$_hE?u<|f;MjVvi2C2wrSA;+UL{G8V_3U@zJiBat0WN8fHL`sN>$2}UR3 zlrbK8-HjjmCZv`*R%IQNQXbYMk{LR8B!|aUho+hHp*W;%=E=EZdH*$8Wh4iVX(N~s z5+|sWZF*TJoOZ7HUZd&NxMZHt?YUx~j=D)=k%@jvD4jv7X%(UFNqHNCh*BpUmtERP zTZO`<$XhBGmbf9N&747NkFJ{f;G(7tD_N+-9((?4WKSZ?EPu!~3vDvdPD^dI*7_yu zwc2jW?XlT*3vRgLZuaV{8k#$9y6Q6Pqor7`3vay0qE?@x^4^Q@Yv=+iY`*^f%b&UY z_6u;q20vJ?o(C_?Fppghd}_lIPfY5kE>es!#Xh2&amOATx9Z0tk8IbsB%e&O$tbVf zvC1sJEV0Wl&unmo98(%#y)^Hf*|!i2iYKQ$51ksvKO1-=(MlIvZpeEodF9el7wxp7 zP`^2K*0vcvtHp6@4K~6~A3bT*VW0im!#8`HGmvP%U2@ZosaiGMXUlAN-ul+9ci))d z?RVgi0WNsq0rPEm;vNe8bEma>sd&~lL;h|ahFC{_cfyS$Z8qj$w@Z1ASAXsK)bv`8 z+~|*%PW0)7f5+hJtn(}@;&<{nyVlumejEWl${qx}k9s2n#KMa13AjShE8nFmcjbpxqkiz_&p#f|=_c1@kt+3+irw_R86xG$=q- zk?(s#10lf1M;Ojs&V&uC9`97AKNj8#h3%6c`x+-hanX=$|BGP`;RU)H-cD0LJebWa z=qFq8s)#34AQM05#3xEFic*wX{syb~vMXY7Wm??g$u>sC^rXp$Uffm}#fZBy&TwB& zDjxvV$gSO3ZGL2gW3_5`F&LK6j%F0t#d^3$K3;2bf6QMX1$oDW{n3M^LZlAE=*TZZ zGLqXvA|*w3#!D_NlbTE*qAZ!9PO1xxo5PT#M5(PEwu*#8L?y9;*hW_3(3PFx;H>o6 zN?Mjim2AT0EOkj4UIq)0xdi6kRP#X|m2HK_Y}OG8$jBu&b6%62rYC=CO@DDRo9Wsn zHy;VgZ|3WWbHk=Mu>-#pn$mpd>{;KgGglYMEmNWVCs)Zz&gYm)r*F(F$f8=<^&!=;Hbra<6)R81p3AXzUFJ?D`_;O( zlB%7t@!Zx9xXbY=!3eZm=4Mt{gEi7(r7Nv3J!_$V?J6G0$XRAemz0gv z)o3v~UbU$fhji;MPg{#!08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_121.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_121.gif deleted file mode 100644 index 00089828601b4655322268dc2130582b86f16dd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3701 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 T%gU_H>a5QStgwfVSMu7eO+N5MVIzlqefh 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 D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_126.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_126.gif deleted file mode 100644 index 549608ecb94ce4b1ad996d9d03831f59c05e40ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1011 zcmV#z@&1Xvo>=iRB>Ibjjq%^(NUT_M|EZ$LjhiJ4+j8TZyY@imH^FTlx36 z*BV=EeB4Q@qxk15%v-AaD|s1gNr#-RZFtl?xmuU`s_NTK?gX1fS-suv{(eEq4NqTh zFYPIRzt7+A{}1p}w}Au;8a#+Fp~8g>8#;UlF`~qY6f0W1h!7mc{*4?vdi)47q{xvZ zA!;m%GNsCuEL*y4dGe*qnKWzKycsek&Ye7a`uyoqC(xlpiyA#zP$<%+Oq)7osr0GT zsZ^^vjA}Kj)~!>qa{UT6EKjdu%bGn~k}TS_Y}-my>o%_3xripwy^A-mD7}39u7&G2 zu;8VD2OB=zvvAIJU6PD?+<2GWF1qGWjspwbH_Vjh7y;+!^5<2OH9zw#8u3iUA2*vu z-54^G$edYarX3q{pWLwV;Qk#cxMkp-JENPedZot6n42Fj)zJ0m-p7YmA9CGxCfc=! z2jhKtlXJ_@EeX$!YC9zG$y0*n;aJ_WBJ<~WCzu}E@9ca2(d!JYUw_`|mz^}>A%{eM zz$Cb!f#tOa(`58b2p@%-RG5)@0V+69fpPHX9d6}$NZvKIjq@QF+F1kMgV&+RAcRoa z^$j8zf`MUu1_3ylY0-4ZS#=<`*kh0Z`I27VE6G@>T1ty3&>FuD-U_>#xF^b<&A==19#UvN|Tq?6A%%$K0{a8jEGM@m>3D zw(d!&ZMVE~>utEef-7#h#FA@nx?csWZo7%0>u$VKE%zd}(exs3zR*6GV~;mpd#Szx zbMzmwTxyB!zzP#gBfr)jyywCaZ**nCTUJQz#2Qm%C%)F|`SHdgKg6!GBcJ>!yeO}n zmdY%@3{uH3&wP-~G~aBF%Q){GkL>K+?(MYeX^wK9c?X<{HN3HSH hR7-62)e2{=wZL3=o$uFR$1C>O?UrqJx&{;g06WH@45|PC diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_127.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_127.gif deleted file mode 100644 index deb7f38b8d553ba9ae9ebe04ce8a55064886c57d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1708 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_132.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_132.gif deleted file mode 100644 index 9db51e18c2ec0b7d16718e4f97c2d00ef784c1af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2713 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_134.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_134.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_135.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_135.gif deleted file mode 100644 index 298316e62a605dc9fa4b66f9455623cecac4b753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmV-L1G@Z2Nk%w1VO0QG0Du4h00030|NkNR1OWg50RSuj0001009gP40{(=LsmtvT zqnxzbi?dFl`wxcVNS5XqDCo+z?x();Ovm(%oA%-{JrFYF5U@iJ6f^!h%9PNFeAc8) zswhb{Hla@75@+R>u-U4&`txpO#PoTzYp09zE{bPX+JYRnbeq+u^GEn*Hzw$pC+D^j zcor7M$Eb+M$MX0^H`oR!w032PSOh658P%Bydg=Jq6e*fQs;7FodFM*ViYP~`W~+Jf zsv9Mo7>C7n>99Vz?)5eN%m{J)OAiJ@y=}))m1dJ`1c2RH0o;Ib(rlZk>IF zM1DaoyH65J-R(;~D=@Oh#UV`^j7U>fCzmxf!n6F>*DB43Pd;pSR`j2JHkr=E z-1JV&!>U~=y-Z}O6>5s_ZoIoD7hnv0`vEn56?mj#%+N{zqs3D%G=KT_oQcg`OT9K> zo0**_{B)V$U2lC=oXxYcIFD;RmLB>$+1eAcoNYU%zfkD@FZyTA5ElLX2TWpzkfg(Z zHvxhlUEz_}oq_=&7?gwH(FdMy=~&bgd!NNN$100qHlAe6<@a7l{aJS#cN1a)&V_kt z6(fnGd1H!DSE(}}VZB9Xpo!JwxXnMgxmKB80FuWfWzOl5U{XFBR}MElPKi=$AMFK| zJd&Zf(|HBeHwu>^ss{&Nw=_rBeUxE?hlji{xLI8s`p^s;-DCx#XH6-WSzVLuiB@s$ zkwzAh78VtpX=QEqWIf{Sxd=jhmXg|=R)Qj?J_jOaR1KR*s?T$|b+xF3qh_Yz23OL< z>JlU6q#cfdZspKxB4(H7t7JL~BvOxBC8Z;r(Rd%@HDYR-=73Y8lI*j#`YLTZu3n36 Pw%TsXZMWVgPyhfsqce?b diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_136.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_136.gif deleted file mode 100644 index b578632227d19a863b157756a6c4d855a2e2c9fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcmV+$1LXWiNk%w1VO0QG0Du4h00030|NkNR1OWg50RSuj0001009gP40{(=LsmtvT zqnxzbi?dFl`wxcVNS5XqDCo+z?x();Ovm(%oA%-{JrFYFYMhkt*E#%vMv!tSi#?OV zY17E0LT6Gd)0=%-x2zq)dDK$B=@JiXJH^e}>v}wzD#3Mk5q1U_2-xOFh;@h(w^X%= zw9>X0SxC}VC)p=LS$WymnVDC_ho}P@dN`^mIthdqWUBc|x(4|tcI1jymWG)q_a_(z z3)u2zH(NSLwj2e_{9LOHJ?$q=eT`-vl@#p2o%5Od;wiB#tUX?#mO|#J>C{aD$4+1Q zPM8bI*3cc?6vhSLrf)qMLHNfeUJZl8;Kfq`5LYX24R!guM~ou3{ypC&QtV?&qOvb{ z4qmx*uiUGR`|>@6*ovUTa}R=O3Af2YJuW5*RuLGn=1-a6GY7$uB_9bw`fh?QlRb!782_C(4Z;6@0&nG1`SDoLn>CnGLf@M54j1$nqu z>M-@peJ2kuMsl~@&|UOA+O>WA(WIB;21bj_Fg0f}#A+|stZ1W5)|~AujeP4TFUw1A z$_AS?I&qprA^nr?7yT~JKE|~U4|eD1JD`id3CVOVeA5{8H|$Wak4cuygf%43=nH$L^<6vLL7y=$A*;RN3IsG|D;B=(DmfHmqf@mBg*&I}uI>qSq-WV-H zR9{~wPNSDZ4Vsg>MCO6i|$Vgnzjr+x~}R;*SP Z>Z?V0Dr=n_-im9ky6(zruL%?Y06PgJdc^<$ diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_137.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_137.gif deleted file mode 100644 index 5e7da1855497a3089c937ecf83c5a91ad575915b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4560 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_139.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_139.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_140.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_140.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_141.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_141.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_142.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_142.gif deleted file mode 100644 index 82ecae8cdfb6c5813ddcc73ba2e5930195ad0829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2620 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 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_145.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_145.gif deleted file mode 100644 index e1eff65c976a99a658ed5a23d8ac486c4a4b364f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1650 zcmV-&295bgNk%w1VW!_4;gRJJ)xR=|#tmfArb4BKWI7$Z2;?C_{&bDX0JM}w;m1=W zz-g>Rt|C2mAOZIC@~%mTnKWzKymfNf&7C}Zn#>u>r_iAqfa<&@k>Lg(J(b=xn!`e( zR~{t#bZS!<&XnZ}qU1=#DnmJ1d_BsL=bc(!GrO*830KKEZzaXT^a%4T1~6sIx?^LO zrdyXP0aF!2Qt3QV{UBKd)R(N@URd|(Rh$)Wz&sscCDfN`bI{9v?@B%07ckzum}?GB zYsT;^wwCm$y1iA&M&y33!DAB<} zg65Nav}>Zh$!l#mmhisx+4@?-COM(o>2Uddu1qk6i%(TPX8Qoo^h-Yg)S?o ztdV&rYhly9#HeG&3WII9B$;cZh>4!coV9wEo84^8$@bxtj@TQEoCCt^2q?|@TU(>; zmZ~p+(NgKJE23@Z-M`WTdabfDvSjK??0E~>dypbKryvMHQ?P%=<_7Y(vzVM?$oru@ zq{{YvxTl&eJWMFGG3OK2rU$Z&%#-0Z6zj9Wfy*wS!DX6jZT&LL>53?#>TpO8x(rpl z^4dYE(5Xf^DZZm7eUQKaml~dG&3PIT)mkczb!Ue%9rf7*=gYIlJ_B-b(2H%omcrP& zn`Yewsy(K#U)yXr(ugO1o~zXA+~eSazy9$!s}@S`xN<)eeK~tWTO4c19PjJRsYU7rz{Fjqk(X45Cn~O0# zphJ&4*vGc%sP)H=p8evC@2x%MEiXR^n*;-$kqW;Ge=}DZIyr29@;|i=wMFt}82CtW zUd83+1kol9=lKVg}oVclTh#{`H$%aMQlPSKV=bWNk6R03-}fxnu@?rAbTYhEuar@@4VJGYCOn~~rsXRWRjYG7T!#dS z&_V^R1!CMA;=AzV#H}a{Q8uhx{+XayL{20LCr!*E36VID0Pc=vF!bUT!I(u0t_OrD z(BU#JbgLaL@p&e3W6o*_xn$w7j0W2yA4TRzI~tKfGOJ7*2kAmDPVkR2R9_IC1**GM zCx3l98YG`M!gEOHJ9wKF>#&%>On!xd2@Bio2$@LDT+n!{;!(`3c*7*_iIk{Y-PkS} z%1gdVih7HZ=inHzJqofEfjpuxjfux$p2?A~l%oz}piF2oQ)aXTB@Z8o%O4s;g&OM< z8pCHsOR2DcYph}+&nQaBc}8QL?4mhoD9e`+@<+AIV>)A)%|+VEVGEn4_hhLvXGX6> z5VIyaYZ%RqAQYJk#bz>38HyoBZIYMnG-xa#Vw~(u43Xe`CRh-2B4RppW?Q;o?UtEJ wjJ5=%JL2d+Q97em?l7g_Y+6i-mC%{tgJfbr9}sB@(O^C_i2p09PYM74J7GR6q5uE@ diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_146.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_146.gif deleted file mode 100644 index dae39f4c661fb8e51f36fd7e8280d4e35647ed96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 739 zcmV<90v!EENk%w1VcY;_0Du4h00030|NkNR1OWg50RSuj0002o0A>IH0{)DTsmtvT z7nro#i?iOm`wxQANS3A(rs~SJ?sUfTEWP%P=NirTB^Iy*Kf_J&ax_v5x~9+vjVgf0 zq>^J@5@B4YQwo*>0mbs6ayDDl+Vhgx9cI0+u)Q}X$I)G~T+62ySJw9jNT+kBD3fPc z)hC!Bga-HM=SGOww8;5`)COs|mm%jExOS+C)5!{v2O}E!RyZjbnTe}P*UHQATIdEF z#8!K$Hw-6yIH$YP`;5@6$t)cLeO;ZcEpq+5{SA)P-5XvGK2C0~UX9L6*$yA}9Xno_+!gJ_u-#5y6BEqb+P010lqM>&{J_Sn=CM{)`#5ZG^ZZNir-B zTTpZHv0=z39z>$tl``QDTf=At8dE75GD5*_#FR;jrYuOd#2o{q6IQA^KPd)1DioEl zSjvjVI%%z`z?o2aeyUZ)6w;eEv~GPWbZM$eH%pCGYtpPgu4#$R8`|$^FiSq=?t7Ui zo8Q0Au&OYeV=%ss9u?CQ=eXph$mk$b4tsf=Wy%sWv)UZFvu94A9g7}a?@8vfopnwq)IH7^{nRj7(7bb{cg|~6Y;D#P{C}M^+lxU)c^?_I&i=(;t9E`@L zsG@!&hPdL5E$a9pk1_fv!-;qwrretVSwpOKSSE80B zY+Lq-Vv$|e_N8!P3OS~3Wd=zklxfQK=4EkeHK&zl(pcwDd3t$gihHK?r<#4580bcY Vnsq2gP$GsLB8xU!&Y}eX06QN`X?p+w diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_147.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_147.gif deleted file mode 100644 index cc5a69d239c1c5c47c4ae9fac39ae9c57f91eee5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmV-M0=fN1Nk%w1VQc_U0Du4h00030|NkNR1OWg50RSuj0001N08jt`0{(=LsmtvT zqnxzbi?iOmqYxyZ1eROqrN;Q7kGpEH%7v~S=g0g3tQiCPd@Nc97u3yoJKSycB<_sI zDh`#c(L=P9kLjcQHJP3vu9Y%5;$Y)d926fUlH)1{0)?jBf9 z8820DqpzF4zn?~*zh&h3v5QxU9yJmF20Ao15L&^16tVG}bWRh({)PfCRut9E(ngCM zKiYc;5GA`>^e7&*=SktplJB;t^H^%)%xvGd>E!8ap0}Mqs|meVbQaM}!-$1Bnl!4$ ziBhYsvx*fX)vQr}aV_fgE6=cErI9U*>@3=3Th}&I>oynMxW3xb?KStVth|k!GK$%f zsa}v;17lh`n54NxwbPE#dwfXpo?e=Ys_ZO}El z%M&={GQM-+PY>VTSmSxl={MPC-(IkG`0+J+aqL&o`ucJoA@hg&UtN|32q1xb`DY+V U2quW%fD9^_UxX4)XhZ=3I|uhAcK`qY diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_148.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_148.gif deleted file mode 100644 index 8399008c0d6e7643ff191c04933ca5f67b25d6e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 843 zcmV-R1GM}{Nk%w1VVD6z0Du4h00030|NkNR1OWg50RSuj0001(0YU%(0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJP~gV$OxJcAI}Lk5by1b-=mvAAxXIah!kC8{O6WIb2}v0Q+UMEo`nq%m*!EbOrs^O>N=Dlj3JV-8 ztYSKBe2kn}oXp(pe9;vxJxyJ0eT|*1z0KY2{S6*2K2Bb4evV%Kyw2X9#kLHsi8G)3 z!c%V%U$KAIdl#mbhJHhu$P1WHAHP2#659DdkRgMJ3Mo)5c*^1>{#&IoU0m?-m&6RZ zNP_G@G1Dx72z9j_HPM%^G4WjL5jgP=PBk_+(p1H3)=gZdWZwGu@Dw34`8=w5N`_xR zhDH<0oH_I4AUiBe2DNvTPsfokl_pI!7VM~{_c)TxDX|h+Nw~!96e*UJKVEWGPRWbv zmfp5_*%B5EsaUO|fjRC{>(w0_~f)@eEdbJKTO z$tB#KIQ8sW|GE4c9JoJO@D5`S%y>IUmh9Wxuj?F-;>Gv=wXe;s8GbZHrJhjSO+{WI zi=}p+fBij&Rec3|5K0(il1@IkLXbHo7bKKcUP)ne0XB(c zmtJzHrCX#W_+^=878jzKYFe4*nr^;XB%E^2DIuM9-Z>$jdb-)>o_^Zc=bwVA80ese zl33`Win5dFqK-1t=%bPj6X~RuzEbI>nsSoqrk)8GN`5$dR>Qc>!usv42%s;<(| z>Z`K05bLbACV6YFoz$vpuMqhP>>|Mqiv_R59y=u+vdY?E?6S@__iVILN=q#Z%~q@I Vwb&l3?Y6^q>n*V0hTCfa06X|oqDcS% diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_149.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_149.gif deleted file mode 100644 index 1a9cea543e9d1ef365363288475246b29c48d682..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>H-Nk%w1VQc_U0Du4h00030|NkNR1OWg50RSuj0001N08jt`0{(=LsmtvT zqnxzbi?iOmqYxyZ1eROqrN;Q7kGpEH%7v~S=g0g3tQiCPd@Nc97u3yoJKSycB<_sI zDh`#c(L=P9kLjcQHJP3vu9Y%5;$Y)d926fUlH)1{0)?jBf9 z8820DqpzF4zn?~*zh&h3v5QxU9yJmF20Ao15L&^16tVG}bWRh({)PfCRut9E(ngCM zKiYc;5GA`>^e7&*=SktplJB;t^H^%)%xvGd>E!8ap0}Mqs|meVbQaM}!-$1B%5!N_ zb48^l{T0kAP^?+CO5=*mYuJffr-~$7)+|P}Y1LA7i?b@*s&K(>6$@_eRJ^k6UfrwL zEMHiG*E&^X*y~`p+t!t0tTgds$gdU_CfRH;#>Q_~MXk))3#fDM$eGrX&ZfvOH&xfP z+>+_ZjwLtFsTcbPz;Xd=OCB9FW|N`3i{oBoeE0F;zddjENE~%%YvoR|T8=ef;n)HSXs>UQUN4(%*mC_+?-& j2qx&uWenz(+k?FBv1Mzz@K`RSzKI0k7Ld3RY!2A2uy`U;EDnDAvfNQQ=bYg+q8n-&`^ zJj_FEe2nbMnatemZ1EK>JxyJ0eT|*1z0KY2{S6*2K2Bb4evV$d{LJ3&UJ^Cp#xftV zZYaWLbkES+=A#eOl2Gz4_^US%f~JDde#xT1k6*$G5)EFO;!qN){yh~RbnJI=Lz9mo zS!Iy8a3erMdh+A}Mr&Tme;xs<#0Rnu&Xqh%vT^xS%1?nYg|=Kaa@Qt~cY-=%3Grpn zoBgChbufx3Ra{~SfyAXVp2@K=Gg@keHDg$XStHs4rm8Hjv+G*YZOXEgCZuOI`qi2? zNTI=}%&zMD;v%QDei<8n+lwzwln%iJd<-|2E~0f;CVgWPaH+qEGq;f}SLh~Pkp_eQ z*cSBL(wUmK$ zsxEHYxo+vdMt-Ip9C%=o>dA`&1b(=D@o2NdbZ=OCX!_3nFL#fwRC?l(HD67{<#GyP z|D6X>2kd>o;B-6j$JImkT=*b`4}~V#sZ=Y{yCH4JD9l$V~jE? zH)D-9-dLVYQ_;5~jz0cag?0Kdr5=z*9(jY1N-?EVkw`uXKxe86=aUx-hF+X@-l-v;dhWR)pML&HBcOr~nkS)# z^7-bWiW-^dqK@9!=%bRx80n;zwo~b)nlh8=rk)bh>8GN?66&a?dQ$4Csv?r=s; z>Z`H_Icu%W#A<7gDxtH~}qM~}=tYlE}UPOAm6)L!dA G0RTHrmz*yE diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_151.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_151.gif deleted file mode 100644 index 8beeabd425e32f342eed89bdeeb3b86974f0126b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ3Nk%w1VQc_T0Du4h00030|NkNR1OWg50RSuj0001N08an_0{(=LsmtvT zqnxzbi?iOmqYxyZ1eROqrN;Q7kGpEH%7v~S=g0g3tQiCPd@Nc97u3yoJKSycB<_sI zDh`#c(L=P9kLjcQHJP3vu9Y%5;$Y)d926fUlH)1{0)?jBf9 z8820DqpzF4zn?~*zh&h3v5QxU9yJmF20Ao15L&^16tVG}bWRh({)PfCRut9E(ngCM zKiYc;5GA`>^e7&*=SktplJB;t^H^%)%xvGd>E!8ap0}Mqs|meVbQaM}!-$1Bnl!4$ ziBhYsvx*fX)vQr}aV_fgE6=cErI9U*>@3=3Th}&I>oynMxW3xb?KStVth|k!GK$%f zsa}v;17lh`n54NxwbPE#dwfXpo?e=Ys_ZO}El z%M&={GQM-+PY>VTSmSxl={MPC-(IkG`0+J+aqL&o`ucJmA@hg&UtN|32q1xb`DY+V S2quW%fD9^_UxXDD0029-I3$k% diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_152.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_152.gif deleted file mode 100644 index b4d58ef3e9d98e0e546b21c53029e710803de421..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^M;Nk%w1VRQi|0Du4h00030|NkNR1OWg50RSuj0001V0VV(d0{(=LsmtvT zQ;4+Mi?iOm`wwQpNQUMzHq*(r?hD6qOV+cxDmhRdyY{;Yhs2_>6ATJdC`8YoyhM-G zs`dIx`k=YmZpGyNz+tb>8Rl)F+$3}SWUsl{y8Uj{(%%x_yX@x_$N;wXH7J)THaB;O zhzA)d>5(S!HHMhhbxB8$%ALD(zFM9uvsdEMxnET6f15EW-+72{*87pa{LHVpqG&( zOPV~1GNsCuEL*yK2{We5nKWzKyoobK&Ye7a`uqtrsL-KAOD+tFG^x@M5|=uC3Kd5` z3r(Y5^k|jhpQ`b)aeYSv>%JLZv%=8%kAhf)H_DP*%a$PAwQ#+e%>yd!SX&VdK6I)%JZ02o$I>MzcN?{s~){eHpAV*zctH6e05#el<-B4quk$Zs=28RB58OsK;v8e zsUUthI`r1{YBRSCZrt$g(<_8~HP7vAQ4r$SwO`*}HT}wh&o9Y)9ct`Nfg5}VwxO7N z+KDz>E$$&!)^Ged^h`Pag+&Pw$kiub4A3<$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_154.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_154.gif deleted file mode 100644 index 23db15f5c463371a13938bd511f9d81d7a063683..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2170 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 QjqGGAd)dsUM*#o;JJLT&H~;_u diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_156.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_156.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_157.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_157.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_158.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_158.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_159.gif b/docs/html-primer/Medley-Primer-OnePage_files/Image_159.gif deleted file mode 100644 index 27d8e145e77f630d734d55f8b792640a863b2b07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2758 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 D(K;$W diff --git a/docs/html-primer/Medley-Primer-OnePage_files/Image_161.png b/docs/html-primer/Medley-Primer-OnePage_files/Image_161.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer-OnePage_files/content.htm b/docs/html-primer/Medley-Primer-OnePage_files/content.htm deleted file mode 100644 index 2305ee7e..00000000 --- a/docs/html-primer/Medley-Primer-OnePage_files/content.htm +++ /dev/null @@ -1,103 +0,0 @@ - -Medley-Primer-OnePage

image

Venue Medley for the Novice

image


Release 2.0

February, 1992


image


Address comments to:

Venue

User Documentation 1549 Industrial Road

San Carlos, CA 94070 415-508-9672

image

Medley for the Novice Release 2.0

February 1992

Copyright 1992 by Venue. All rights reserved.

Medley is a trademark of Venue.

Xerox is a registered trademark and InterPress is a trademark of Xerox Corporation.

UNIX is a registered trademark of UNIX System Laboratories. Post Script is a registered trademark of Adobe Systems Inc.

Copyright protection includes material generated from the

software programs displayed on the screen, such as icons, screen display looks, and the like.


image

The information in this document is subject to change without notice and should not be construed as a commitment by Venue. While every effort has been made to ensure the accuracy of this document, Venue assumes no responsibility for any errors that may appear.


Text was written and produced with Venue text formatting tools; Xerox printers were used to produce text masters. The typeface is Classic.

  1. BRIEF GLOSSARY

    image


    The following definitions will acquaint you with general terms used throughout this primer. You will probably want to read through them now, and use this chapter as a reference while you read through the rest of the primer.


    advising A Medley facility for specifying function modifications without necessarily knowing how a particular function works or even what it does. Even system functions can be changed with

    advising.

    argument A piece of information given to a Lisp function so that it can execute successfully. When a function is explained in the

    primer, the arguments that it requires will also be given. Arguments are also called Parameters.

    atom The smallest structure in Lisp; like a variable in other

    programming languages, but can also have a property list and a function definition.

    Background Menu The menu that appears when the mouse is not in any window and the right mouse button is pressed.

    binding The value of a variable. It could be either a local or a global variable. See unbound.

    bitmap A rectangular array of "pixels," each of which is on or off representing one point in the bitmap image.

    BREAK An Lisp function that causes a function to stop executing, open a Break window, and allows you to find out what is happening while the function is halted.

    Break Window A window that opens when an error is encountered while

    running your program (i.e., when your program has broken).

    There are tools to help you debug your program from this window. This is explained further in Chapter 14.

    browse To examine a data structure by use of a display that allows you to "move" around within the data structure.

    button (1) (n.) A key on a mouse.

    (2) (v.t.) To press one of the mouse keys when making a selection.

    CAR A function that returns the head or first element of a list. See

    CDR.

    caret The small blinking arrowhead that marks where text will appear when it is typed in from the keyboard.

    CDR A function that returns the tail (that is, everything but the first element) of a list. See CAR.


    CLlSP A mechanism for augmenting the standard Lisp syntax. One such augmentation included in Interlisp is the iterative

    statement. See Chapter 9. cr Press your Return key.

    datatype (1) The kind of a datum. In Interlisp, there are many system- defined datatypes, e.g., Floating-Point, Integer, Atom, etc.

    (2) A datatype can also be user-defined. In this case, it is like a record made up from system types and other user-defined datatypes.

    DWIM "Do-what-I-mean." Many errors made by Medley users could be corrected without any information about the purpose of the program or expression in question (e.g., misspellings, certain kinds of parenthesis errors). The DWIM facility is called

    automatically whenever an error occurs in the evaluation of an Interlisp expression. If DWIM is able to make a correction, the computation continues as though no error had occurred; otherwise, the standard error mechanism is invoked.

    error Occasionally, while a program is running, an error may occur which will stop the computation. Interlisp provides extensive facilities for detecting and handling error conditions, to

    enable the testing, debugging, and revising of imperfect programs.

    evaluate or EVAL To find the value of a form. For example, if the variable X is bound to 5, we get 5 by evaluating X. Evaluation of a Lisp function involves evaluating the arguments and then

    applying the function.

    Executive Window This is your main window, where you will run functions and

    develop your programs. This is the window that the caret is in when you turn on your machine and load Medley.

    file package A set of functions and conventions that facilitate the bookkeeping involved with working in a large system consisting of many source code files and their compiled counterparts. Essentially, the file package keeps track of

    where things are and what things have changed. It also keeps track of which files have been modified and need to be

    updated and recompiled.

    form Another way of saying s-expression. A Lisp expression that can be evaluated.

    function A piece of Lisp code that executes and returns a value. history The programmer’s assistant is built around a memory

    structure called the history list. The history functions (e.g.

    FIX, UNDO, REDO) are part of this assistant. These operations allow you to conveniently rework previously specified

    operations.

    History List As you type on the screen, you will notice a number followed by a slash, followed by another number. The first number is the exec number, the second is the event number. Each

    number, and the information on that line, is stored

    sequentially as the History List Using the History List, you


    can easily reexecute lines typed earlier in a work session. See Chapter 2.

    icon A pictorial representation, usually of a shrunken window.

    inspector An interactive display program for examining and changing the parts of a data structure. Medley has inspectors for lists and other data types.

    iterative statement (also called i.s.) A statement in Interlisp that repetitively

    executes a body of code For example, (for x from l to 5 do (PRlNT x)) is an i.s.

    iterative variable (also called i.v.) Usually, an iterative statement is controlled by the value that the i.v. takes on. In the iterative statement

    example above, x is the iterative variable because its value is being changed by each cycle through the loop. All iterative

    variables are local to the iterative statement where they are defined.

    Lisp Family of languages invented for "list processing." These languages have in common a set of basic primitives for

    creating and manipulating symbol structures. Interlisp-D is an implementation of the Lisp language together with an

    environment (set of tools) for programming, and a set of packages that extend the functionality of the system.

    list A collection of atoms and lists; a list is denoted by surrounding its contents with a pair of parentheses.

    Masterscope A program analysis tool. When told to analyze a program,

    Masterscope creates a database of information about the

    program. In particular, Masterscope knows which functions call other functions and which functions use which variables.

    Masterscope can then answer questions about the program and display the information with a browser.

    menu A way of graphically presenting you with a set of options.

    There are two kinds of menus: pop-up menus are created

    when needed and disappear after an item has been selected; permanent menus remain on the screen after use until

    deliberately closed.

    mouse The mouse is the box attached to your keyboard. It controls the movement of the cursor on your screen. As you become

    familiar with the mouse, you will find it much quicker to use the mouse than the keyboard.

    Mouse Cursor The small arrow on the screen that points to the northwest.

    Mouse Cursor Icons Four types of mouse cursor icons are shown below.

    image Wait. The processor is busy.

    image The Mouse Confirm Cursor. It appears when you have to confirm that the choice you just made was correct. If it was, press the left button. If the choice was not correct, press the right button to abort.


    image

    This means "sweep out" the shape of the window. To do this, move the mouse to a position where you want a corner. Press the left mouse button, and hold it down. Move the mouse

    diagonally to sketch a rectangle. When the rectangle is the desired size and shape, release the left button.


    image

    This is the "move window" prompt. Move the mouse so that the large "ghost" rectangle is in the position where you want the window. When you click the left mouse button, the

    window will appear at this new location.

    NIL NIL is the Lisp symbol for the empty list. It can also be represented by a left parenthesis followed by a right

    parenthesis ( ). It is the only expression in Lisp that is both an atom and a list.

    pixel Pixel stands for "picture element." The computer monitor

    screen is made up of a rectangular array of pixels. Each pixel corresponds to one bit. When a bit is turned on (i.e., set to 1), the pixel on the screen represented by this bit is black.

    pretty printing Pretty printing refers to the way Lisp functions are printed with special indentation, to make them easier to read.

    Functions are pretty printed in the structure editor, SEdit

    (see Chapter 7). You can pretty print uncompiled functions by calling the function PP with the function you would like to

    see as an argument, i.e. (PP function-name). For an example of this, see Figure 1.5.


    image

    Figure 1.5. Example of Pretty Printing Function PP


    Programmer’s

    Assistant The programmer’s assistant accesses the History List to allow you to FIX, UNDO, and/or REDO your previous expressions

    typed to the executive window (see Chapter 2).

    Prompt Window The narrow black window at the top of the screen. It displays system prompts, or prompts you have developed (see Figure 1.6).


    image

    Figure 1.6. Prompt Window

    property list A list of the form ( <property-namel> <property-value1>

    <property-name2> <property-value2> ....) associated with an atom. It accessed by the functions GETPROP and PUTPROP.

    record A record is a data structure that consists of named "fields".

    Accessing elements of a record can be separated from the details of how the data structure is actually stored. This

    eliminates many programming details. A record definition

    establishes a record template, describing the form of a record. A record instance is an actual record storing data according to a particular record template. (See datatype, second

    definition.)

    Right Button Default

    Window Menu This is the menu that appears when the mouse is in a

    window, and the right mouse button is pressed. It looks like the menu in Figure 1.7. If this menu does not appear when you press the right button of the mouse and the mouse is in

    the window, move the mouse so that it is pointing to the title bar of the window, and press the right button.


    image


    Figure 1.7. Right Button Default Window Menu


    s-expression Short for "symbolic expression". In Lisp, this refers to any well-formed collection of left parentheses, atoms, and right parentheses.


    stack A pushdown list. Whenever a function is entered, information about that specific function call is pushed onto (i.e., added to

    the front of) the stack. This information includes the variable names and their values associated with the function call.

    When the function is exitted, that data is popped off the stack.


    sysout A flle containing a whole Lisp environment: namely,

    everything you defined or loaded into the environment, the windows that appeared on the screen, the amount of memory

    used, and so on. Everything is stored in the sysout file exactly as it was when the function SYSOUT was called.


    TRACE A function that creates a trace of the execution of another

    function. Each time the traced function is called, it prints out the values of the arguments it was called with, and prints out the value it returns upon completion.


    unbound Without value; an atom is unbound if a value has never been assigned to it.


    window A rectangular area of the screen that acts as the main display area for some Lisp process,

    PREFACE

    image


    It was dawn and the local told him it was down the road a piece, left at the first fishing bridge in the country, right at the appletree stump, and onto the dirt road just before the hill. At midnight he knew he was lost. -Anonymous


    Welcome to the Medley Lisp Development Environment, a collection of powerful tools for assisting you in programming in Lisp, developing sophisticated user interfaces, and creating prototypes of your ideas in a quick and easy manner. Unfortunately, along

    with the power comes mind-numbing complexity. The Medley documentation set

    describes all the tools in detail, but it would be unreasonable for us to expect a new user to wade through all of it, so this primer is intended as an introduction, to give you a

    taste of some of the features.

    We developed this primer to provide a starting point for new Medley users, to enhance your excitement and challenge you with the potential before you. We’re going to make some assumptions about you. For starters, we’re going to assume that you’re sitting at a workstation that can run Medley. All of the examples in the book figure that you’re

    going to want to try things out. We’re also going to assume that you’ve had some exposure to Lisp, hopefully Common Lisp.

    Medley actually consists of two complete Lisp implementations, Common Lisp and InterLisp. All the screen I/O and some of the system functions are in InterLisp.

    However, thanks to the package system, you can call back and forth between the two languages by simply including a package delimiter in front of a symbol name. This sounds complicated, but it will become clearer once we do some examples.

    Throughout we make reference to the lnterlisp-D Reference Manual by section and page number. The material in the primer is just an introduction. When you need more depth, use the detailed treatment provided in the manual.

    While only you can plot your ultimate destination, you will flnd this primer

    indispensable for clearly defining and guiding you to the first landmarks on your way.


    Acknowledgements

    The early inspiration and model for this primer came from the Intelligent Tutoring

    Systems group and the Learning Research and Development Center at the University of Pittsburgh. We gratefully acknowledge their pioneering contribution to more effective

    artificial intelligence.

    This primer was originally developed by Computer Possibilities, a company committed to making Al technology available. Primary development and writing was done by

    Cynthia Cosic, with technical writing support provided by Sam Zordich. It has been re- done by Venue staff to reflect changes in the environment since the original publication.

    At Xerox Artificial Intelligence Systems, John Vittal managed and directed the project. Substantial assistance was provided by many members of the AlS staff who provided both editorial and systems support.



    image

    Medley for the Novice, Release 2.0

    vii

    PREFACE



    [This page intentionally left blank]



    image

    viii Medley for the Novice, Release 2.0

  2. TYPING SHORTCUTS

image


Once you have logged in to Medley, you are in Lisp. The functions you type into the

Executive Window will now execute, that is, perform the designated task. Lisp is case-

sensitive; it often matters whether text is typed in upper- or lowercase letters. Use the Shift-Lock key on your keyboard to ensure that everything typed is in capital letters.

You must type all Lisp functions in parentheses. The Lisp interpreter will read from the left parenthesis to the closing right parenthesis to determine both the function you want to execute and the arguments to that function. Executing this function is called

"evaluation." When the function is evaluated, it returns a value, which is then printed in the Executive Window. This entire process is called the read-eval-print loop, and is how most Lisp interpreters, including the one for Lisp, run.

The prompt in is a number followed by a left-pointing arrow (see Figure 2.3). This number is the function’s position on the History List—a list that stores your

interactions with the Lisp interpreter. Type the function (PLUS 3 4) , and notice the History List assigns to the function (the number immediately to the left of the arrow).

Lisp reads in the function and its arguments, evaluates the function, and then prints the number 7.


Programmer’s Assistant

In addition to this read-eval-print loop, there is also a "programmer’s assistant." It is the programmer’s assistant that prints the number as part of the prompt in the

executive window, and uses these numbers to reference the function calls typed after them.

When you issue commands to the programmer’s assistant, you will not use parentheses as you do with ordinary functiion calls. You simply type the command, and some

specification that indicates which item on the history list the command refers to. Some programmer’s assistant commands are FIX, REDO, and UNDO. They are explained in

detail below.

Programmer’s assistant commands are useful only at the Lisp top level, that is, when you are typing into the Executive Window. They do not work in user-defined functions.

As an example use of the programmer’s assistant, use REDO to redo your function call

(PLUS 3 4). Type REDO at the prompt (programmer’s assistant commands can be

typed in either upper- or lowercase) , then specify the previous expression in one of the following ways:

  • When you originally typed in the function you now want to refer to, there was a

    History List number to the left of the arrow in the prompt. Type this number after the programmer’s assistant command. This is the method illustrated in Figure 2-1.


    image

    Figure 2-1. Using a Programmer’s Assistant Command to REDO a Function


  • A negative number will specify the function call typed in that number of prompts dago. In this example, you would type in -1, the position immediately before the current position. This is shown in Figure 2-2.


    image

    Figure 2-2. Using a Negative Number after the Programmer’s Assistant Command

  • You can also specify the function for the programmer’s assistant with one of the items that was in that function call. The programmer’s assistant will search

    backwards in the History List, and use the first function it finds that includes that

    item. For example, type REDO PLUS to have the functiion (PLUS 3 4) reevaluated.

  • If you type a programmer’s assistant cmmand without specifying a function (i.e., simply typing the command, following by a Return), the programmer’s assistant executes the command using the function entered at the previous prompt.

Figure 2-3 shows a few more examples of how to use the programmer’s assistant.


image


Figure 2-3. Some Applications of the Programmer’s Assistant


If You Make a Mistake

Editing in the Executive Window is explained in detail in Chapter 7. In the following section, only a few of the most useful commands are repeated.

To move the caret to a new place in the command being typed, point the mouse cursor at the appropriate position. Then press the left mouse button.


To move the caret back to the end of the command being typed, press Control-X (hold the Control key down, and type X).


To delete:

Character behind the caret Press the Backspace key

Word behind the caret Press Control-W (hold the Control key down and type

W)

Any part of the command Move the caret to the appropriate place in the

command. Hold the right mouse button down and move the the mouse cursor over the text. All of the

blackened text between the caret and mouse cursor is deleted when you release the right mouse button.

Entire command Press Control-U (hold the Control key down and type

U)

Deletions can be undone. J ust press the UNDO key.

To add more text to the line, move the carent to the appropriate position and start to type. Whatever you type will appear at the caret.



[This page intentionally left blank]

image

TABLE of CONTENTS

Preface vii

  1. Brief Glossary 1-1

  2. Typing Shortcuts

    Programmer’s Assistant 2-1

    If You Make a Mistake 2-2

  3. Using Menus

    Making a Selection from a Menu 3-1

    Explanations of Menu Items 3-2

    Submenus 3-2

    Summary 3-3

  4. How to Use Files

    Types of Files 4-1

    Directories 4-1

    Directory Options 4-2

    Subdirectories 4-2

    To See What Files Are Loaded 4-3

    Simple Commands for Manipulating Files 4-3

    Connecting to a Directory 4-3

    File Version Numbers 4-4

  5. FileBrowser

    Calling the FileBrowser 5-1

    FileBrowser Commands 5-3

  6. Those Wondertul Windows!

    Windows Provided by Medley 6-1

    Creating a Window 6-2

    Right Button Default Window Menu 6-2

    Explanation of Each Menu Item 6-3

    Scrollable Windows 6-4

    Other Window Functions 6-5

    PROMPTPRlNT 6-5

    WHlCHW 6-6

  7. Editing and Saving

    Defining Functions 7-1

    Simple Editing in the Executive Window 7-2

    Using the List Structure Editor 7-3

    Commenting Functions 7-4

    File Functions and Variables: How to See and Save Them 7-5

    File Variables 7-5

    Saving Interlisp-D on Files 7-5

  8. Your Init File

    Using the USERGREETFILES Variable 8-1

    Making an Init File 8-1

  9. Medley Forgiveness: DWIM 9-1

  10. Break Package

    Break Windows 10-1

    Break Package Examples 10-1

    Ways to Stop Execution from the Keyboard (Breaking Lisp) 10-3

    Break Menu 10-3

    Returning to Top Level 10-4

  11. WhatTo Do lf 11-1

  12. Window and Regions

    Windows 12-1

    CREATEW 12-1

    WlNDOWPROP 12-2

    Getting Windows to Do Things 12-3

    BUTTONEVENTFN 12-5

    Looking at a Window’s Properties 12-5

    Regions 12-5

  13. What Are Menus?

    Displaying Menus 13-1

    Getting Menus to Do Stuff 13-2

    WHENHELDFN and WHENSELECTEDFN Fields of a Menu 13-3

    Looking at a Menu’s Fields 13-5

  14. Bitmaps 14-1

  15. Displaystreams

    Drawing on a Displaystream 15-1

    DRAWUNE 15-1

    DRAWTO 15-2

    DRAWCIRCLE 15-3

    FILLCIRCLE 15-1

    Locating and Changing Your Position in a Displaystream 15-4

    DSPXP0SITION 15-5

    DSPYPOSlTION 15-5

    MOVETO 15-5

  16. Fonts

    What Makes Up a Font 16-1

    Fontdescriptors and FONTCREATE 16-2

    Display Fonts 16-3

    InterPress Fonts 16-3

    Functions for Using Fonts 16-4

    FONTPROP - Looking at Font Properties 16-4

    STRINGWlDTH 16-5

    DSPFONT- Changing the Font in One Window 16-5

    Personalizing Your Font Profile 16-6

  17. The Inspector

    Calling the Inspector 17-1

    Using the Inspector 17-2

    Inspector Example 17-2

  18. Masterscope

    SHOW DATA Command and GRAPHER 18-2

  19. Where Does All the Time Go? SPY

    How to Use Spy with the SPY Window 19-1

    How to Use SPY from the Lisp Top Level 19-2

    Interpreting SPY’s Results 19-2

  20. Free Menus

    Free Menu Example 20-1

    Parts of a Free Menu Item 20-2

    Types of Free Menu Items 20-3

  21. The Grapher

    Say it with Graphs 21-1

    Add a Node 21-2

    Add a Link 21-2

    Delete a Link 21-2

    Delete a Node 21-2

    Move a Node 21-2

    Making a Graph from a List 21-2

    Incorporating Grapher into Your Program 21-2

    More of Grapher 21-2

  22. Resource Management

    Naming Variables and Records 22-1

    Some Space and Time Considerations 22-2

    Global Variables 22-3

    Circular Lists 22-3

    When You Run Out of Space 22-4

  23. Simple Interactions with the Cursor, a Bitmap, and a Window

    GETMOUSESTATE Example Function 23-1

    Advising GETMOUSESTATE 23-2

    Changing the Cursor 23-2

    Functions for Tracing the Cursor 23-3

    Running the Functions 23-6

  24. Glossary of Global System Variables

    Directories 24-1

    Flags 24-2

    History Lists 24-3

    System Menus 24-3

    Windows 24-4

    Miscellaneous 24-4

  25. Other Useful References 25.1

Index.............................................................................................................................................. INDEX-1


[This page intentionally left blank]

  1. USING MENUS

    image


    The purpose of this chapter is to show you how to use menus. Many things can be done more easily using menus, and there are many different menus provided in the Medley

    environment. Some are "pop-up" menus that are only available until a selection is made, then disappear until they are needed again. An example of one of these is the Background Menu that appears when the mouse is not in any window and the right

    mouse button is pressed. A background menu is shown in Figure 3-1. Your background menu may have different items on it.


    image

    Figure 3-1. Background Menu

    Another common pop-up menu is the right button default window menu. This menu is explained more in Chapter 6.

    Other menus are more permanent, such as the menu that is always available for use with the Filebrowser. This menu is shown in Figure 3-2., and the specifics of its use with the filebrowser are explained in Chapter 5.


    image

    Figure 3-2. Filebrowser Menu


    Making a Selection from a Menu

    To make a selection from a menu, point with the mouse to the item you would like to select. If one of the mouse buttons is already pressed, the menu item should be

    highlighted in reverse video. If it is a permanent menu, you must press the left mouse button to highlight the item. When you release the button,m the item will be selected. Figure 3-3 shows a menu with the item "Undo" chosen.


    image

    Figure 3-3. Menu with the Item "Undo" Chosen


    Explanation of Menu Items

    Many menu items have explanations associated with the. If you are not sure what the consequences of choosing a particular menu iem will be, highlight the menu item but do not releast the left mouse button. If the menu item has an explanation associated with it, the explanation will be printed in the prompt window. Figure 3-4 shows the

    explanation associated with the item "Snap" from the background menu.


    image


    image


    Figure 3-4. Explanation Associated with Selected Menu Item


    Submenus

    Some menu items have submenus associated with them. This means that, for these items, you can make even more precise choices if you would like to.

    A submenu can also be foun d as described below.

    As shown in Figure 3-5, a submenu can be indicated by a gray arrow to the right of the menu item. To see the submenu, highlight the menu item and move the mose to the

    right to follow the arrow. Choosing an item from a submenu is done the same way you make a choice from the menu. Any submenus that might be associated with the items in the submenu are indicated in the same way as the submenus associated with the

    items in the menu.

    3. USING MENUS

    image


    image


    Figure 3-5. Edit Submenu Displayed with Right Arrow


    Summary

    In summary, here are a few rules of thumb to remember about the interactions of the mouse and system menus:

    • Press the left mouse button to select a menu item

    • Press the middle mouse button to get more options on a submenu

    • Press the right mouse button to see the default right button window menu, and the background menu



      [This page intentionally left blank]

  2. HOW TO USE FILES

    image


    Types of Files

    A program file, or Lisp file, contains a series of expressions that can be read and

    evaluated by the Lisp interpreter. These expressions can include function or macro

    definitions, variables and their values, properties of variables, and so on. How to save Interlisp-D expressions on these files is explained in Chapter 7. Loading a file is

    explained in the Simple Commands for Manipulating Files section below.

    Not all files, however, have Lisp expressions stored on them. For example, TEdit files store text; sketches are stored on files made with the package Sketch , or can be

    incorporated into TEdit files. These files are not loaded directly into the environment, but are accessed with the package used to create them, such as TEdit or Sketch.

    When you name a file, there are conventions that you should follow. These conventions allow you to tell the type of file by the extension to its name.

    If a file contains: Then:

    Lisp expressions It should not have an extension or have the extension

    .LISP. For example, a file called MYCODE should contain Lisp expressions.

    Compiled Code It should have the extension .LCOM or .DFASL. For

    example, a file called MYCODE.DFASL should contain compiled code.

    A Sketch Its extension should be .SKETCH. For example, a file called MOUNTAINS.SKETCH should contain a Sketch.

    Text It should have the extension .TEDIT. For example, a file called REPORT.TEDIT should contain text that can be edited with the editor TEDIT.


    Directories

    This section focu ses on how you can find files, and how you can easily manipulate files. To see all the files listed on a device, use the function DIR. For example, to see what files are stored in your current directory, type:

    (DIR *.*)

    Partial directory listings can be gotten by specifying a file name, rather than just a

    device name. The wildcard character * can be used to match any number of unknown characters. For example, the command (DIR T*) will list the names of all files that begin with the letter T. An example using the wildcard is shown in Figure 4-1.


    image


    Figure 4-1. Using DIR with a Wildcard


    Directory Options

    Various words can appear as extra arguments to the DIR command. these words give you extra information about the files.

    SIZE displays the size of each file in the directory. For example, type:

    (DIR {DSK} SIZE)

    DATE displays the creation date of each file in the directory. An example of this is shown in Figure 4-2.


    image

    Figure 4-2. Example Using DATE DEL deletes all the files foun d by the directory command.


    Subdirectories

    Sudirectories are very helpful for organizing files. A set of files that have a single

    purpose (for example, all the external documentation files for a system) can be grouped together into a subdirectory.

    To associate a subdirectory with a filename, simply include the desired subdirectory as part of the name of the file. Subdirectories are specified after the device name and

    before the simple filename. The first subdirectory should be between less-than and

    greater-than signs (angle brackets) < >, with nested subdirectory names only followed by a greater than sign >. For example:

    {DSK}<Directory>SubDirectory>SubSubDirectory>...>filename

    or use the UNIX convention:

    {DSK}/Directory/Subdirectory/Subsubdirectory/filename


    To See What Files Are Loaded

    If you type FILELST<CR>, the names of all the files you loaded will be displayed. Type SYSFILES<CR> to see what files are loaded to create the sysout.


    Simple Commands for Manipulating Files

    When using these functions, always be sure to specify the full filename, including subfile directories if appropriate.

    To have the conents of a file displayed in a window:

    (SEE ’filename)

    To copy a file (see Figure 4-3):

    (COPYFILE ’oldfilename newfilename)


    image

    Figure 4-3. Example Use of COPYFILE

    To delete a file (see Figure 4-4):

    (DELFILE ’filename)


    image

    Figure 4-4. Example Use of DELFILE

    To rename a file:

    (RENAMEFILE ’oldfilename newfilename)

    Files that contain Lisp expressions can be loaded into the environment. That means that the information on them is read, evaluated, and incorporated into the Medley

    environment. To load a file, type:

    (LOAD ’filename)


    Connecting to a Directory

    Often, each person or project has a subdirectory where files are stored. If this is your situation, you will want any files you create to be put into this directory automatically. This means you should "connect" to the directory.


    CONN is the Medley command that connects you to a directory. For example, CONN in Figure 4-5 connects you to the subsubdirectory IM, in the subdirectory PRIMER , the directory LISPFILES, on the device DSK. This information—the device and the

    directory names down to the subdirectory to which you want to be connected—is called the "path" to that subdirectory. CONN expects the path to a directory as an argument.


    image


    Figure 4-5. CONNecting to Subdirectory Primer Subsubdirectory IM

    Once you are connected to a directory, the command DIR will assume you want to see the files in that directory, or any of its subdirectories.

    Other commands that require a filename as an argument (e.g., SEE, above) will assume that the file is in the connecteds directory if there is no path specified with the filename. This will often save you typing.


    File Version Numbers

    When stored, each filename is fillowed by a semicolon and a number, as shown in this example:

    MYFILE.TEDIT;1

    The number is the version number of the file. This is the system’s way of protecting your files from being overwritten. Each time the file is written, a new file is created with a version number one greater than the last. This new file will have everything from your previous file, plus all of your changes.

    In most cases, you can exclude the version number when referencing the file. When the version is not specified, and there is more than one version of the file on that particular directory, the system generally uses your most recent version. An exception is the

    function DELFILE, which deletes the oldest version (the one with the lowest version number) if none is specified.



    [This page intentionally left blank]

  3. FILEBROWSER

image


The FileBrowser is a Lisp Library Package that works with files stored on disk and floppy devices, and can be used as a file directory editor. If it is not loaded into your sysout, you need to load it first by typing:

(LOAD ’FILEBROWSER.LCOM)


Calling the FileBrowser


Calling the FileBrowser with the directory calls up the files stored in that directory:

(FB ’<usr>local>lde>)


Another way to call a FileBrowser is to choose "FileBrowser" from the background

menu. You will be prompted for a description of the files to be included (see Figure 5-1). Type an asterisk (*), then press Return to see all the files in the connected directory.


image


Figure 5-1. Prompt for Files to Include in FileBrowser


These show a directory of the device in a window you can leave on the screen at all times. The parts of the FileBrowser window are shown below.



image

Prompt Window

Command Menu

File List

Figure 5-2. Parts of a FileBrowser Window Now you do not need to continually type the directory command.

To use the FileBrowser, choose a file by pointing to the file with the mouse and pressing the left or middle mouse button. A small dark arrow appears to the left of the file

name. Choose a command from the menu at the right. In Figure 5-3, the files

OCH1.TEDIT;1, OCH10.TEDIT;1, and OCH11.TEDIT;1 have been selected.


The left mouse button only allows you to choose one file at a time. Even if you choose other files, only the last file you selected with the left mouse button will remain

marked as chosen. When you use the middle mouse button to select a file, the file is added to those already chosen.


To unpick an already chosen file, hold the Control key down while pressing the middle mouse button.


image


Figure 5-3. Files Chosen

  1. FILEBROWSER

    image


    The next section contains a summary of the FileBrowser commands.


    FileBrowser Commands


    Delete In the FileBrowser, this command marks a file, or files, for deletion (see Figure 5-4). These files are marked by a black line crossing through

    them. You may select and mark any number of files for deletion. Delete does not actually remove these files from the device. The Expunge command actually wipes out the files previously marked for deletion.


    image


    Figure 5-4. Files Marked for Deletion


    Undelete Undoes the delete command for one or more files. Undelete erases the black line through a file marked for deletion.

    Copy This command copies the chosen file. The destination filename should

    be typed at a prompt that appears in the window above the FileBrowser.

    Wildcards do not work for this prompt. You must type the whole

    unquoted filename. If more than one file is chosen to be copied, you will be prompted for a directory name. The files will be copied into the

    directory you give, but with the same filenames as the ones they have in their original location.


    Rename This command works much like the Copy command, but does not leave the original file. The chosen file will be renamed to the destination

    filename. You will be prompted, in the prompt window, for the

    destination filename. Give the complete unquoted filename. If more

    than one file is chose to be renamed, you will be prompted for a directory name. The files will be moved into the directory you give.


    Hardcopy If you do not have a hardcopy device, using this command causes an error. Otherwise, it gives a hardcopy of the file.

    See Shows you a file in a window. To use this command, choose a single filename, then the See command. You are prompted for a window.

    Each time the See command is chosen, a new window is opened to display the file.

    Edit Calls the editor with the file as input. If the file is an executable one (i.e., Lisp code as opposed to a documentation file), only the FILECOMS list is edited. The FILECOMS list is the list of variables, lists, and


    functions that are contained on that file. FileBrowser loads it and then allows you to edit the FILECOMS .

    Load Choose a file with the left mouse button, or a group of files with the

    middle mouse button. Once the filenames have been blackened, choose the Load command to load them all into Medley.


    Compile This command calls the file compiler with the chosen filename(s) as arguments. The compiler compiles a file foun d on a storage device

    ({DSK}), not the functions defined in the Medley image. If any functions on a loaded file have been changed, run the function (MAKEFILE ’filename) to write the current version before compiling it. Files do not have to be loaded to use the Compile command.

    Expunge This command completely deletes all the marked files from the

    directory. This allows you to remove unwanted files from your storage device.


    Recompute Choose this command when you know that the directory has been

    changed and should be reread (e.g., after creating new versions of a file).

  2. THOSE WONDERFUL WINDOWS!

    image


    A window is a designated area on the screen. Every rectangular box on the screen is a window. While Medley supplies many of the windows (such as the Executive Window), you may also create your own. Among other things, you will type, draw pictures, and

    save portions of your screen with windows.


    Windows Provided by Medley


    Two important windows are available as soon as you enter the Medley environment.

    One is the Executive Window, the main window where you will run your functions. It is the window that the caret is in when you turn on your machine, and load Medley. It is

    shown in Figure 6-1.

    image


    Figure 6-1. Medley Executive Window


    The other window that is open when you enter Medley is the "Prompt Window". It is the long thin black window at the top of the screen. It displays system prompts, or prompts you have associated with your programs. (See Figure 6-2.)

    image


    Figure 6-2. Prompt Window


    Other programs, such as the editors, also use windows. These windows appear when

    the program starts to run, and close (no longer appear on the screen) when the program is done running.


    Creating a Window


    To create a new window, type: (CREATEW). The mouse cursor will change, and have a small square attached to it. (See Figure 6-3.)



    image


    Figure 6-3. Mouse Cursor Asking You to Sweep Out Window


    There may be a prompt in the prompt window to create a window. Press and hold the left mouse button. Move the mouse around, and notice that it sweeps out a rectangle. When the rectangle is the size that you’d like your window to be, release the left mouse button. More specific information about the creation of windows, such as giving them

    titles and specifying their size and position on the screen when they are created, is given in the WINDOWPROP section of Chapter 12.


    Right Button Default Window Menu

    Position the cursor inside the window you just created, and press and hold the right mouse button. A menu of commands should appear (do not release the right button!), like the one in Figure 6-4. To execute one of the commands on this menu, choose the item. Making a choice from a menu is explained in Chapter 3.



    image


    Figure 6-4 Right Button Default Window Menu


    As an example, select "Move" from this menu. The mouse cursor will become a ghost window (ju st an outline of a window, the same size as the one you are moving), with a square attached to one corner, like the one shown in Figure 6-5.


    image


    Figure 6-5 Mouse Cursor for Moving a Window


    Move the mouse around. The ghost window will follow. Click the left mouse button to place tho window in a new location.


    Choose "Shape", and notice that you are prompted to sweep out another window. Your original window will have the shape of the window you sketch out.


    Explanation of Each Menu Item

    The meaning of each right button default window menu item is explained below:


    Close Removes the window from the screen

    Snap Copies a portion of the screen into a new window Paint Allows drawing in a window

    Clear Clears the window by erasing everything within the window boundaries Bury Puts the window beneath all other windows that overlap it

    Redisplay Redisplays the window contents

    Hardcopy Sends the contents of the window to a printer or to a flle Move Allows the wi ndow to be moved to a new spot on the screen Shape Repositions and/or reshapes the window

    Shrink Reduces the window to a small black rectangle called an icon, or, if appropriate, to the shape for that window type (see Figure 6-6).

    image


    Figure 6-6 Example Icon


    Expand Changes an icon back to its original window. Position the mouse cursor on the icon, depress the right button, and select Expand. Or, just button the icon with the middle mouse button.


    These right-button default window menu selections are available in most windows, including the Executive Window. When the right button has other functions in a

    window (as in an editor window), the right button default window menu should be accessible by pressing the Right button in the black border at the top of the window.


    Scrollable Windows


    Some windows in Medley are "scrollable". This means that you can move the contents of the window up and down, or side to side, to see anything that doesn’t fit in the

    window.


    Point the mouse cursor to the left or bottom border of a window. If the window is scrollable, a "scroll bar" will appear. The mouse cursor will change to a double headed arrow. (See Figure 6-7.)


    image


    Figure 6-7. Scroll Bar of Scrollable Window


    The scroll bar represents the full contents of the window. The example scroll bar is completely white because the window has nothing in it When a part of the scroll bar is shaded, the amount shaded represents the amount of the window’s contents currently

    shown. If everything is showing, the scroll bar will be fully shaded. (See Figure 6-8.)

    The position of the shading is also important. It represents the relationship of the

    section currently diplayed to the the full contents of the window. For example, if the shaded section is at the bottom of the scroll bar, you are looking at the end of the file.


    image


    Figure 6-8 Top of File When Shading at Top of Scroll Bar


    When the scroll bar is visible, you can control the section of the window’s contents displayed:


    • To move the contents higher in the window (scroll the contents up in the window), press the leff button of the mouse, the mouse cursor changes to look like this:


      image


      Figure 6-9. Upward Scrolling Cursor



      The contents of the window will scroll up, making the line thit the cursor is beside the topmost line in the window.


    • To move the contonts lower in the window (scroll the contents "down" in the window), press the right button of the mouse, and the mouse cursor changes to look like this:


      image


      Flgure 6-10. Downward Scrolling Cursor


      The contents of the window scroll down, moving the line that is the topmost line in the window to beside the curtor.

    • To show a specific section of the window’s contents, remember that the scroll bar represents the full contents of the window. Move the mouse cursor to the relative

      position of the section you want to see (e.g., to the top of the scroll bar if you want to see the top of the window’s contents). Press the middle button of the mouse. The mouse cursor will look like this:


      image


      Figure 6-11 Proportional Scrolling Cursor


      When you release the middle mouse button, the window’s contents at that relative position will be displayed.

      The position of the mouse in the scroll bar defines how much of the window will be scrolled. If it is near the top, then only a little will be scrolled. If it is near the bottom, most of the window will be scrolled.


      Other Window Functions


      PROMPTPRlNT

      Prints an expression to the black prompt window.


      For example, type


      (PROMPTPRINT "THIS WILL BE PRINTED IN THE PROMPT WINDOW")


      The message will appear in the prompt window. (See Figure 6-12.)


      image


      image


      Figure 6-12 PROMPTPRINTing


      WHlCHW

      Returns as a value the name of the window that the mouse cursor IS in.


      (WHICHW) can be used as an argument to any function expecting a window, or to

      reclaim a window that has no name (that is not attached to some particular part of the program.).

  3. EDITING AND SAVING

    image


    This chapter explains how to define functions, how to edit them, and how to save your work.


    Defining Functions


    DEFUN can be used to define new functions. The syntax for it is:

    (DEFUN (<functionname> (<parameter-list><body-of-function>))

    New functions can be created with DEFUN by typing directly into the Executive Window. Once defined, a function is a part of the Medley environment. For example, the function EXAMPLE-ADDER is defined in Figure 7-1.


    image


    Figure 7-1. Defining the Function EXAMPLE-ADDER


    Now that the function is defined, it can be called from the Executive Window:


    image


    Figure 7-2.. After EXAMPLE-ADDER is defined, it can he executed The function returns 6, after printing out the message.

    Functions can also be defined using the editor DEdit described above. To do this, simply type

    (ED function-name ’FUNCTIONS)

    You will be told that no definition exists for the function, and a menu will pop up asking you what type of function you would like to create:


    image


    Figure 7-3 Selecting a Function Template

    Selecting the appropriate type will pop up an editor window with a function template. The use of the editor is explained in the Using the List Structure Editor section below.


    Simple Editing in the Executive Window

    First, type in an example function to edit:


    3/41> (defun your-first-function (a b) (if (> a b)

    ’(the first is greater) ’(the second is greater)))

    To run the function, type:

    3/42> (YOUR-FIRST-FUNCTION 3 5) (THE SECOND IS GREATER)

    Now, let’s alter this. Type:

    3/43> FIX 41

    Note that your original function is redisplayed, and ready to edit. (See Figure 7-4.)


    image


    Figure 7-4. Using FIX to Edit a Fundion


    Move the text cursor to the appropriate place in the function by positioning the mouse cursor and pressing the left mouse button.

    Delete text by moving the caret to the beginning of the section to be deleted. Hold the right mouse button down and move the mouse cursor over the text. All of the

    highlighted text between the caret and mouse cursor is deleted when you release the right mouse button.

    If you make a mistake, deletions can be undone. Press the UNDO key on the keypad to the left of the keyboard.

    Now change GREATER to BIGGER:


    1. Position the mouse cursor on the G of GREATER , and click the left mouse button. The text cursor is now where the mouse cursor is.

    2. Next, press the right mouse button and hold it down. Notice that if you move the mouse cursor around, it will blacken the characters from the text cursor to the mouse cursor. Move the mouse so that the word "GREATER " is highlighted.

    3. Release the right mouse button and GREATER is deleted.

    4. Without moving the cursor, type in BIGGER .

    5. There are two ways to end the editing session and run the function. One is to type Control-X. (Hold the Control key down, and type X.) Another is to move the text

      cursor to the end of the line and crø In both cases, the function has been edited!

      Try the new version of the function by typing:

      3/48> (YOUR-FIRST-FUNCTION 8 9) (THE SECOND IS BIGGER)

      and get the new result, or you can type:

      3/49> REDO 42

      (THE SECOND IS BIGGER)


      Using the List Structure Editor


      If the function you want to edit is not readily available (i.e. the function is not in the

      Executive Window, and you can’t remember the history list number, or you simply have a lot of editing), use the List Structure Editor, often called SEdit. This editor is evoked with a call to ED:

      81(ED ’YOUR-FIRST-FUNCTION ’FUNCTIONS)


      Your function will be displayed in an edit window, as in Figure 7-5.

      If there is no edit window on the screen, you will be prompted to create a window. As

      before, hold the leff mouse button down, move the mouse until it form s a rectangle of an acceptable size and shape, then release the button. Your function definition will

      automatically appear in this edit window.



      image


      Figure 7-5. An Edit Window


      Many changes are easily done with the structure editor. Notice that by pressing the left mouse button you can place the caret in position, and by pressing the middle mouse

      button you can select atoms or s-expressions. Repeated pressing of the middle button selects bigger pieces of text.


      To add an expression that does not appear in the edit window (i.e., it cannot simply be underlined), place the caret at the insertion point and type it in.. For example, to

      replace the first GREATER with LARGER, place the caret to the left of GREATER , as shown in Figure 7-6.


      image


      Figure 7-6. Caret Placement Prior to Changing GREATER with LARGER

      Now press the DELETE key seven times, and type in LARGER . The window now looks like this:


      image

      Figure 7-7. GREATER Changed to LARGER

      Notice the asterisk in the left edge of the title bar of the window. This designates that the function has be changed. Now exit the edit session by typing Control-X, and the function will be redifined.


      Commenting Functions


      Text can be marked as a comment by typing a semi-colon before the text of the comment.

      ; This is the form of a comment

      Inside an editor window, the comment will be printed in a different font and may be moved to the far right of the code. SEdit is familiar with the Common Lisp convention of single comments being on the far right, double comments being justified with the

      function level, and triple comments being on the far left, as is shown in Figure 7-8.


      image


      Figure 7-8. Placement of Comments

      There are other editor commands which can be very useful. To learn about them, read Appendix B of the Release Notes.


      File Functions and Variables: How to See and Save Them

      With Medley, all work is done inside the Lisp environment. There is no operating system or command level other than the Executive Window. All functions and data

      structures are defined and edited using normal Lisp commands. This sertion describes tools in the Medley environment that will keep track of any changes that you make in the environment that you have not yet saved on files, such as defining new functions,

      changing the values of variables, or adding new variables. And it then has you save the changes in a file you specify. All of these functions are in the INTERLISP (IL:) package.


      File Variables


      Certain system-defined global variables are used by the file package to keep track of the environment as it stands. You can get system information by checking the values of

      these variables. Two important variables follow.

      • FILELST evaluates to a list, all files that yoU have loaded into the Medley environment.

      • filenameCOMS (Each file loaded into the Lisp environment has associated with it a global variable, whose name is formed by appending COMS to the end of the filename.) This variable evaluates to a list of all the functions, variables, bitmaps, windows, and soon, that are stored on that particular file.

      For example, if you type:

      MYFILECOMS

      the system will respond with something like:

      ((FNS YOUR-FIRST-FUNCTION ) VARS))


      Saving Interlisp-D on Files

      The functions (FILES?) and (MAKEFILE filename) are useful when it is time to save function, variables, windows, bitmaps, records and whatever else to files.

      (FILES?) displays a list of variables that have values and are not already a part of any file, and then the functions that are not already part of any file.

      Type:

      (FILES?)

      the system will respond with something like:

      the variables: MY.VARIABLE CURRENT.TURTLE...to be dumped


      the functions: RIGHT LEFT FORWARD BACKWARD CLEAR-SCREEN...to be dumped

      want to say where the above go?


      If you type Y, the system will prompt with each item. There are three options:

      1. To save the item, type the filename (unquoted) of the file where the item should be placed. (This can be a brand new file or an existing file.)

      2. To skip the item, without removing it from consideration the next

        time (FILES?) is called, type crø This will allow you to postpone the decision about where to save the item.

      3. If the item should not be saved at all, type ]. Nowhere will appear after the item.

        Part of an example interaction is shown in the following figure:



        image

        Figure 7-9. Part of an interaction using the function FILES?

        (FILES?) assembles the items by adding them to the appropriate file’s

        COMS variable (see the File Variables section above). (FILES?) does NOT write the file to secondary storage (disks or floppies). It only

        upclates the global variables discussed in the File Variables section above.


        (MAKEFILE ’filename)

        actually writes the file to secondary storage. Type:

        (MAKEFILE ’MY.FILE.NAME)

        and the system will create the file. The function returns the full name of the file created. (i.e. {DSK}MY.FlLE.NAME.; 1 ).


        Files written to (DSK) are permanent files. They can be removed only by the user deleting them or by reformatting the disk.


        Other file manipulation functions can be foun d in Chapter 4.

  4. YOUR INIT FILE

    image


    Lisp has a number of global variables that control the environment. Global variables make it easy to customize the environment to fit your needs. One way to do this is to

    develop an INIT file. This is a file that is loaded when you start an image. You can use it to set variables, load files, define functions, and any other things that you want to do to make the Medley environment suit you.


    Using the USERGREETFILES Variable


    As described in File Variables section of Chapter 11, each program file has a global Your INIT file could be called INIT, INIT.LISP, INIT.USER, or whatever the

    convention is at your site. There is no default name preferred by the system, it just

    looks for the files listed in the variable USERGREETFILES (see below). Check to see what the preference is at your site. Put this file in your directory. Your directory name should be the same as your login name. The INIT file is loaded by the function GREET. GREET is normally run when Medley is started. If this is not the case at your site, or you want

    to use the machine and Medley has already been started, you can run the function

    GREET yourself. If your user name was, for example, TURING , then you would type:

    (GREET ’TURING)

    This does a number of things, including undoing any previous greeting operation,

    loading the site init file, and loading your init file. Where GREET looks for your INIT file depends on the value of the variable USERGREETFILES. The value of this variable is set when the system’s SYSOUT file is made, so check its value at your site! For example, its value could be:


    image

    Figure 8-1. Possible Value of USERGREETFILES

    In each place you see >USER>, the argument passed to GREET is substituted into the path. This is your login name if you are just starting Medley. For example, the first value in the list would have the system check to see whether there was a

    {DSK}<LISPFlLES>TURING>INIT.LISP file. No error is generated if you do not have an INIT file, and none of the files in USERGREETFILES are foun d.


    Making an Init File


    As described in File Variables section of Chapter 11, each program file has a global

    variable associated with it, whose name is formed by appending COMS to the end of the root filename. For any of the standard INIT file names, the variable INITCOMS is used. To set up an init file, begin by editing this variable. Type:

    (DV INITCOMS)

    8. YOUR INIT FILE


    An SEdit window wiil appear. This window is the same as the one called with the

    function DF, and described in the Using the List Structure Editor section in Chapter 7. This chapter assumes that you know how to use the SEdit structure editor .

    The COMS variable is a list of lists. The first atom in each internal list specifies for the file package what types of items are in the list, and what it is to do with them. This

    section will deal with three types of lists: VARS, FILES, and P. Please read about others in Chapter 17 of the IRM.

    Notice that inside the vars list, there is yet another list. The first item in the list is the name of the variable. It is bound to the value of the second item. There are many other variables that you can set by adding them to the VARS list. Some of these variables are described in Chapter 24, and many others can be foun d in the IRM.

    If you want to automatically load files, that can be done in your init file also. For

    example, if you always want to load tho Library file SPY.LCOM , you can load it by editing tho INITCOMS variable to list the appropriate file in the list starting with FILES:

    .

    .

    .

    (FILES SPY)

    .

    .

    .

    Figure 8-2. INITCOMS Changed to Load SPY.LCOM File

    Other files can also be added by simply adding their names to this FILES list.

    Another list that can appear in a COMS list begins with P. This list contains Lisp

    expressions that are evaluated when the file is loaded. Do not put DEFINEQ expressions in this list. Define the function in the environment, and then save it on the file in the

    usual way (see Chapter 7).

    One type of expression you might want to see here, however, is a FONTCREATE function (see Chapter 16). For example, of you want to use a Helvetica 12 BOLD font, and there is not a font descriptor for it normally in your environment, the appropriate call to FONTCREATE should be in the "P" list. The INITCOMS would look like this:

    .

    .

    .

    (FILES SPY)

    (P (FONTCREATE ’HELVETICA 12 ’BOLD))

    .

    .

    .


    Figure 8-3. INITCOMS Edited to Include a call to FONTCREATE

    To quit, exit from SEdit in the usual way. When you run the function MAKEFILES (see Chapter 7), be sure that you are connected to the directory (see Chapter 4) where the INIT file should appear. Now when GREET is run, your Init file will be loaded.



    image

    8-2 Medley for the Novice, Release 2.0

  5. MEDLEY FORGIVENESS: DWIM

    image


    DWIM (Do What I Mean) is an Interlisp utility that makes life easier.


    DWIM tries to match unrecognized variable and function names to known ones. This allows Lisp to interpret minor typing errors or misspellings in a function, without

    causing a break. Line 152 of Figure 9-1 illustrates how the misspelled BANNANNA was replaced by BANANA before the expression was evaluated.



    image


    Figure 9-1. Examples of DWIM Features


    Sometimes DWIM may alter an expression you didn’t want it to. This may occur if, for

    example, a hyphenated function name (e.g., (MY-FUNCTION) ) is misused. If the system does not recognize the function name, it may think you are trying to subtract "FUNCTION" from "MY". DWIM also takes the liberty of updating the function, so it will

    have to be fixed. However, this is as much a blessing as a curse, since it points out the misused expression!

  6. BREAKPACKAGE

image


The Break Package is a part of Interlisp that makes debugging your programs much easier.


Break Windows

A break is a function either called by the programmer or by the system when an error has occurred. A separate window opens for each break. This window works much like the Executive Window, except for extra menus unique to a break window. Inside a

break window, you can examine variables, look at the call stack at the time of the

break, or call the editor. Each successive break opens a new window, where you can execute functions without disturbing the original system stack. These windows

disappear when you resolve the break and return to a higher level.


Break Package Example


This example illustrates the basic break package functions. A more complete explanation of the breaking functions, and the break package will follow.


The correct definition of FACTORIAL is:

(defun factorial (x) (if (zerop x)

1

(* x (factorial (1- x)))))


To demonstrate the break package, we have edited in an error: DUMMY in the IF statement is an unbound atom, it lacks a value.

((defun factorial (x) (if (zerop x)

dummy

(* x (factorial (1- x)))))

The evaluated function


(FACTORIAL 4)

should return 24, but the above function has an error. DUMMY is an unbound atom, an atom without an assigned value, so Lisp will "break". A break window appears (Figure 10-1), that has all the functionality of the typing lisp expressions into the Executive

Window (The top level), in addition to the break menu functions. Each consecutive break will move to another level "down".


image


Figure 10-1. Break Window


Move the mouse cursor into the break window and hold down the middle mouse button.

The Break Menu will appear. Choose BT. Another menu, called the stack menu, will appear beside the break window. Choosing stack items from this menu will display

another window. This window displays the function’s local variable bindings, or values (see Figure 10-2). This new window, titled FACTORlAL Frame, is an inspector window (see inspector Chapter 17).


image


Figure 10-2. Back Trace of the System Stack


From the break window, you can call the editor for the function FACTORIAL by middle- buttoning on the word FACTORIAL and selecting DisplayEdit from the menu that pops up.

Replace the unbound atom DUMMY with 1. Exit the editor .

The function is fixed, and you can restart it from the last call on the stack. (It does not have to be started again from the Top Level.) To begin again from the last call on the stack, choose the last (top) FACTORIAL call in the BT menu. Select REVERT from the middle button break window, or type it into the window. The break window will close, and a new one will appear with the message: Breakpoint at FACTORIAL

To start execution with this last call to FACTORIAL , choose OK from the middle button break menu. The break window will disappear, and the correct answer, 24, will be

returned to the top level.

  1. BREAKPACKAGE

    image


    Ways to Stop Execution from the Keyboard (Breaking Lisp)


    There are ways you can stop execution from the keyboard. They differ in terms of how much of the current operating state is saved:


    Control-G Provides you with a menu of processes to interrupt. Your process will

    usually be "EXEC". Choose it to break your process. A break window will then appear.

    Control-B Causes your function to break, saves the stack, then displays a break window with all the usual break functions. For information on other interrupt characcers, see Chapter 30 in the IRM.


    Break Menu


    Move the mouse cursor into the break window. Hold the middle button down, and a new menu will pop up, like the one in Figure 10-3.


    image


    Figure 10-3. Middle Button Menu in Break window

    Five of the selections are particularly important when just starting to use Medley:

    BT Back Trace displays the stack in a menu beside the break window. Back

    Trace is a very powerful debugging tool. Each function call is placed on the

    stack and removed when the execution of that function is complete. Choosing an item on the stack will open another window displaying that item’s local

    variables and their bindings. This is an inspector window that offers all the power of the inspector. (For details, see the section on the Inspector, Chapter 17.)

    ? = Before you use this menu option, display the stack by choosing BT from this menu, and choose a function from it. Now, choose ?=. It will display the

    current values of the arguments to the function that has been chosen from the stack.

    Move back to the previous break window, or if there is no other break window, back to the top level, the Executive Window.

    REVERT Move the point of execution back to a specified function call before the error. The function to revert back to is, by default, the last function call before the break. If, however, a different function call is chosen on the BT menu, revert will go back to the start of this function and open a new break window. The

    items on the stack above the new starting place will no longer exist. This is used in the tutorial example (see the Break Package Example section above).


    OK Continue execution from the point of the break. This is useful if you have a simple error, i.e., an unbound variable or a nonnumeric argument to an

    arithmetic function. Reset the variable in the break window, then select OK. (see the Break Package Example section above).

    In addition to being available on the middle button menu of the break window, all of these functions can be typed directly into the window. Only BT behaves differently

    when typed. It types the stack into the trace window instead of opening a new window.)


    Returning to Top Level

    Typing Control-D will immediately take you to the top level from any break window.

    The functions called before the break will stop, but any side effect s of the function that occurred before the break remain. For example, if a function set a global variable before it broke, the variable will still be set after typing Control-D.

  2. WHAT TO DO IF ...

    image


    The purpose of this chapter is to explain what to do in some of the problems commonly experienced by Medley users.


    Executive Window turns black

    An example is shown in Figure 11-1.

    Press any key to unfreeze the window and continue. This pause happens when the command you just typed causes enough information to be printed to fill the window. It gives you a chance to read that one window of text before moving on.


    image


    Figure 11-1. Blackened Executive Window


    You closed the Executive Window

    Open another from the Background Menu.


    Mouse disappears

    Type (CURSOR T) in the Executive Window. The cursor will reappear.


    Second window appears

    This probably happens because you made a typing mistake, as in Figure 11-2.


    image


    Figure 11-2. Second Window Appears (Break Window) after Typing Error Made

    Type a Control-D by simultaneously pressing the Control key and the "D". This aborts the error condition, returning control to the Executive Window.


    You keep getting beeped at

    Usually the beeping means that Medley want input from you. Look for the flashing

    caret. It will usually be preceeded by some kind of prompt, indicating what you should type.


    You cannot delete the first letter

    of the filename you are typing to (FILES?) . Type Control-E (error) You will get a linefeed and  printed to the window. Now type the correct filename.

    Your function is just sitting there

    It is not returning a value, and you think that your program may be in an infinite loop or is having some other major problem. You can see what process is currently running by typing Control-T, or you could interrupt the process by typing Control-E.


    A Break Window appears

    If the Break Window look something like that shown in Figure 11-3, you are trying to save a file, but there is not enough space on the hard disk.


    image


    Figure 11-3. Break Window Caused by Insufficient Space in Save File

    Exit from the Break Window by typing an up arrow followed by a Return. Delete old versions of files, and any other files you do not need. Then try again to save the file


    You have run out of space

    Generally, a Break Window has appeared. The GAINSPACE function allows you to delete non-essential data structures. To use it, type:

    (GAINSPACE)

    into the Executive Window. Answer N to all questions except the following:

    • Delete edit history

    • Delete history list

    • Delete values of old variables

    • Delete your MASTERSCOPE database

    • Delete information for undoing your greeting. Save your work and reload Lisp as soon as possible.

      A redefined message appears

      The message (Some.Crucial.Function.Or.Variable redefined) appears in the

      Executive Window (see Figure 11-4). The function, variable, or other property has been "smashed" (i.e., its original definition has been changed). If this is not what you

      wanted, type UNDO immediately!

      1. WHAT TO DO IF...

        image


        image


        Figure 11-4. CAR redefined!


        UNBOUND ATOM

        If this occurs, you probably just typed something wrong, or you passed an argument that should have been quoted to a function.


        UNDEFINED CAR OF FORM

        First, look at what caused the error. If the CAR of the form is a list, then you typed something wrong. If it is an atom, then perhaps that atom does not have a function associated with it. If it is a CLISP word like if or for, then DWIM may have been

        turned off (see Chapter 9). Type (DWIM ’C) to reenable DWIM.


        You have traced APPLY

        and your screen is spewing out information about everything going on in the

        environment. Type Control E, and type (UNBREAK ’APPLY) before reeturning to the Executive.



        [This page intentionally left blank]

      2. WINDOWS AND REGIONS

        image


        Windows


        Windows have two basic parts: an area on the screen containing a collection of pixels,

        and a property list. The window properties determine how the window looks, the menus that can be accessed from it, what should happen when the mouse is inside the window and a mouse button is pressed, and soon.


        CREATEW

        Some of the window’s properties can be specified when a window is created with the function CREATEW. In particular, it is easy to specify the size and position of the

        window; its title; and the width of its borders.

        (CREATEW region title borderw’idth)


        Region is a record (named REGION , with the fields left, bottom , width, and height) or a list. A region describes a rectangular area on the screen, the window’s dimensions and position. The fields left and bottom refer to the position of the bottom leff corner of

        the region on the screen. Wi dth and height refer to the width and height of the region. The usable space inside the window will be smaller than the width and height, because some of the window’s region is consumed by the title bar, and some is taken by the

        borders.


        Title is a string that will be placed in the title bar of the window.


        Borderwidth is the width of the border around the exterior of the window, in number of pixels.


        For example, typing:

        (SETQ MY.WINDOW (CREATEW (CREATEREGION l00 150 300 200) "THIS IS MY OWN WINDOW")

        or

        (SETQ MY.WINDOW (CREATEW

        (CREATEW ’(100 150 300 200) "THIS IS MY OWN WINDOW")

        produces a window with a default borderwidth. Note that you did not need to specify all the window’s properties (see Figure 12-1).


        image


        Figure 12-1. Creating a Window


        In fact, if (CREATEW) is called without specifying a region, you will be prompted to sweep out a region for the window (see Chapter 10)


        WlNDOWPROP

        The function to access or add to any property of a window’s property list is

        WINDOWPROP.

        (WINDOWPROP window property <value>)


        When you use WINDOWPROP with only two arguments—window and property—it

        returns the value of the window’s property. When you use WINDOWPROP with all three

        arguments—window, property and value—it sets the value the window’s property to the value you inserted for the third argument.


        For example, consider the window, MY WINDOW , created using (CREATEW). TITLE and

        REGION are both properties. Type

        (WINDOWPROP MY.WINDOW ’TITLE)

        and the value of MY.WlNDOW’s TITLE property is returned, "THIS 1S MY OWN WINDOW". To change the title, use the WINDOWPROP function, and give it the window, the property title, and the new title of the window.

        (WINDOWPROP MY.WINDOW ’TITLE "MY FIRST WINDOW")

        automatically changes the title and automatically updates the window. Now the window looks like Figure 12-2.



        image


        Figure 12-2. TITLE is a Window Property

        Altering the region of the window, MY.WINDOW, is also be done with WINDOWPROP, in the same way you changed the title. (Changing either of the first two numbers of a region

        changes the position of the window on the screen. Changing either of the last two numbers changes the dimensions of the window itself.)


        Getting Windows to Do Things

        Four basic window properties will be discussed here: CURSORINFN , CURSOROUTFN, CURSORMOVEDFN, and BUTTONEVENTFN.

        A function can be stored as the value of the CURSORlNFN property of a window. It is called when the mouse cursor is moved into that window.

        Look at the following example:


        1. First, create a window called MY.WINDOW. Type:

          (SETQ MY.WINDQW

          (CREATEW

          (CREATEREGION 200 200 200 200) "THIS WINDOW WILL SCREAM!"))

          This creates a window.


        2. Now define the function SCREAME R. It will be stored on the property CURSOR1NFN . (Notice that this function has one argument, WlNDOWNAM E. All functions called from the property CURSOR1NFN are passed the window it was called from. So the value of MY.WINDOW is bound to WINDOWNAME. When it is called, SCREAMER simply rings

          bells.


          (DEFINEQ (SCREAMER (WINDOWNAME) (RINGBELLS)

          (PROMPTPRINT "YAY - IT WORKS!") (RINGBELLS)))


        3. Now, alter that window’s CURSORINFN property, so that the system calls the function SCREAMER at the appropriate time. Type:

          (WINDOWPROP MY.WINDOW ’CURSORINFN (FUNCTION SCREAMER))

        4. After this, when you move the mouse cursor into MY.WlNDOW , the CURSORINFN

          property’s function is called, and it rings bells twice.


          CURSORINFN is one of the many window properties that come with each window - just as REGION and TITLE did. Other properties include:

          CURSOROUTFN The function that is the value of this property is executed when the cursor is moved out of a window.

          CURSORMOVEDFN The function that is the value of this property is executed when the cursor is moved while it is inside the window.

          BUTTONEVENTFN The function that is the value of this property is executed when either the left or middle mouse buttons are pressed (or released).


          Figure 12-3 shows MY.WlNDOW’s properties. Notice that the CURSORINFN has the

          function SCREAMER stored in it. The properties were shown in this window using the function INSPECT. INSPECT is covered in Chapter 17.


          image


          Figure 12-3. Inspecting MY.WINDOW for Mouse-Related Window Properties


          You can define functions for the values of the properties CURSOROUTFN and CURSORMOVEDFN in much the same way as you did for CURSORINFN. The function that is the value of the property BUTTONEVENTF N, however, can be specialized to respond in different ways, depending on which mouse button is pressed. This is explained in the

          next section.


          BUTTONEVENTFN


          BUTTONEVENTFN is another property of a window. The function that is stored as the value of this property is called when tho mouse is inside the window, and a mouse button is pressed. As an example of how to use it, type:

          (WINDOWPROP MY.WINDOW ’BUTTONEVENTFN (FUNCTION SCREAMER))

          When the mouse cursor is moved into the window, bells will ring because of the CURS0RlNFN, but it will also ring bells when either the left or middle mouse button is pressed. Notice that the right mouse button functions as it usually does, with the

          window manipulation menu. If only the left button should evoke the function SCREAMER, then the function can be written to do just this, using the function MOUSESTATE, and a form that only MOUSESTATE understands, ONLY. For example:

          (DEFINEQ

          (SCREAMER2 (WINDOWNAME)

          (if (MOUSESTATE (ONLY LEFT)) then (RINGBELLS))))


          In addition to (ONLY LEFT), MOUSESTATE can also be passed (ONLY MIDDLE) , (ONLY RIGHT) or combinations of these (e.g. (OR (ONLY LEFT) (ONLY MIDDLE))). You do not need to use ONLY with MOUSESTATE for every application. ONLY means that that

          button is pressed and no other.

          If you do write a function using (ONLY RIGHT), be sure that your function also checks position of the mouse cursor. Even if you want your function to be executed when the mouse cursor is inside the window and the right button is pressed, there is a convention that the function DOWINDOWCOM should be executed when the mouse cursor is in the

          title bar or the border of the window and the right mouse button is pressed. Please

          program your windows using this tradition! For more information, please see Chapter 28 in the IRM.


          Looking at a Window’s Properties

          INSPECT is a function that displays a list of the properties of a window, and their values. Figure 12.3 shows the INSPECT function run with MY.WINDOW . Note the

          properties introduced in CREATEW : WBORDER is the window’s border, REG is the region, and WTITLE is the window’s title.


          Regions


          A region is a record, with the fields LEFT, BOTTOM , WIDTH, and HEIGHT. LEFT and BOTTOM refer to where the bottom left hand corner of the region is positioned on the screen. WIDTH and HEIGHT refer to the width and height of the region.


          CREATEREGION creates an instance of a record of type REGION . Type:

          (SETQ MY.REGION (CREATEREGION 15 l00 200 450))

          to create a record of type REGION that denotes a rectangle 200 pixels high, and 450 pixels wide, whose bottom left corner is at position (15, 100). This record instance can be passed to any function that requires a region as an argument, such as CREATEW , above.

      3. WHAT ARE MENUS?

        image


        While Medley provides a number of menus of its own (see Chapter 3), this section

        addresses the menus you wish to create. You will learn how to create a menu, display a menu, and define functions that make your menu useful. Menus are instances of

        records (see Chapter 24). There are 27 fields that determine the composition of every menu. Because Medley provides default values for most of these descriptive fields, you need to familiarize yourself with only a few that we describe in this section.

        Two of these fields, the TITLE of your menu, and the ITEMS you wish it to contain, can be typed into the executive window as shown below:

        image

        Figure 13-1. Creating a menu

        Note that creating a menu does not display it. MY.MENU is set to an instance of a menu record that specifies how the menu will look, but the menu is not displayed.


        Displaying Menus


        Typing either the MENU or ADDNENU functions will display your menu on the screen. MENU implements pop-up menus, like the Background Menu or the Window Menu. ADDMENU puts menus into a semi-permanent window on the screen, and lets you select items from it.

        (MENU MENU POSITION) pops up a menu at a particular position on the screen. Type:

        (MENU MY.MENU NIL)

        to position the menu at the end of the mouse cursor. Note that the POSITION argument is NIL. In order to go on, you must either choose an item, or move outside the menu

        window and press a mouse button. When you do either, the menu will disappear. If you choose an item, then want to choose another, the menu must be redisplayed.

        (ADDMENU menu window position) positions a permanent menu on the screen, or in an existing window.

        Type:

        (ADDMENU MY.MENU)

        to display the menu as shown in Figure 13-2. This menu will remain active, (will stay on the screen) without stopping all the other processes. Because ADDMENU can display a menu without stopping all other processes, it is very popular in users programs.


        If window is specified, the menu is displayed in that window. If window is not specified, a window the correct size for the menu is created, and the menu is displayed in that

        window.

        If position is not specified, the menu appears at the current position of the mouse cursor.


        image

        Figure 13-2. Simple MenuDisplayed with ADDMENU


        Getting Menus to Do Stuff

        One way to make a menu do things is to specify more about the menu items. Instead of items simply being the strings or atoms that will appear in the menu, items can be lists, each list with three elements (see Figure 13-3). The first element of each list is what

        will appear in the menu; the second expression is what is evaluated, and the results of the evaluation returned, when the item is selected; and the third expression is the

        expression that should be printed in the Prompt window when a mouse button is held down while the mouse is pointing to that menu item. This third item should be thought of as help text for the user. If the third element of the list is NIL, the system responds with Will select this item w hen you release the button.

        image


        Figure 13-3. Creating a Menu to do Things, then displaying it with the function

        ADDMENU


        Now when an item is selected from MY.MENU2, something will happen. When a mouse button is held down, the expression typed as the third element in the item’s

        specification will be printed in the Prompt window. (See Figure 13-4.)


        image


        Figure 13-4. Mouse Button Held Down While Mouse Cursor SeIects NEXT.QUESTION


        When the mouse button is released (i.e., the item is selected) the expression that was typed as the second element of the item’s specification will be run. (See Figure 13-5.)

        image

        Figure 13-5. NEXT-QUESTION Selected


        WHENHELDFN and WHENSELECTEDFN Fields of a Menu

        Another way to get a menu to do things is to define functions, and make them the

        values of the menu’s WHENHELDFN and WHENSELECTEDFN fields. As the value of the

        WHENHELDFN field of a menu, the function you defined will be executed when you press

        and hold a mouse button inside the menu. As the value of the WHENSELECTEDFN field of a menu, the function you defined will be executed when you choose a menu item. This

        example has the same functionality as the previous example, where each menu item was entered as a list of three items.

        As an example, type in these two functions so that they can be executed when the menu is created and displayed:


        (DEFINEQ (MY.MENU3.WHENHELD (ITEM.SELECTED MENU.FROM BUTTON.PRESSED)

        (SELECTQ ITEM.SELECTED

        (QUIT (PROMPTPRINT "CHOOSE THIS TO STOP")

        (NEXT-QUESTION (PROMPTPRINT "CHOOSE THIS TO BE ASKED THE NEXT QUESTION"))

        (NEXT-TOPIC (PROMPTPRINT "CHOOSE THIS TO MOVE ON TO THE NEXT SUBJECT"))

        (SEE-TOPICS (PROMPTPRINT "CHOOSE THIS TO SEE THE TOPICS NOT YET LEARNED"))

        (ERROR (PROMPTPRINT "NO MATCH FOUND"))))


        (DEFINEQ (MY.MENU3.WHENSELECTED (ITEM.SELECTED MENU.FROM BUTTON.PRESSED)

        (SELECTQ ITEM.SELECTED

        (QUIT (PRINT "STOPPED")

        (NEXT-QUESTION (PRINT "HERE IS THE NEXT QUESTION")) (NEXT-TOPIC (PRINT "HERE IS THE NEXT SUBJECT")) (SEE-TOPICS (PRINT "THE FOLLOWING HAVE NOT BEEN

        LEARNED . . ."))

        (ERROR (PROMPTPRINT "NO MATCH FOUND"))))


        Now, to create the menu, type:

        (SETQ MY.MENU3 (CREATE MENU

        TITLE "PLEASE CHOOSE ONE OF THE ITEMS"

        ITEMS ’(QUIT NEXT-QUESTION NEXT-TOPIC SEE-TOPICS) WHENHELDFN (FUNCTION MY.MENU3.WHENHELD) WHENSELECTEDFN (FUNCTION MY.MENU3.WHENSELECTED)))

        To see your menu work, type

        (ADDMENU MY.MENU3)

        Now, due to executing the WHENHELDFN function, holding down any mouse button while pointing to a menu item will display an explanation of the item in the prompt window.

        The screen will once again look like Figure 13-4 when the mouse button is held when the mouse cursor is pointing to the item NEXT-TOPIC .

        Now due to executing the WHENSELECTEDFN function, releasing the mouse button to select an item will cause the proper actions for that item to be taken. The screen will once again look like Figure 13-5 when the item NEXT-TOPIC is selected. The crucial

        thing to note is that the functions you defined for WHENHELDFN and WHENSELECTEDFN

        are automatically given the following arguments:


        1. The item that was sølected, ITEM.SELECTED

        2. The menu it was selected from, MENU.FROM

        3. The mousø button that was pressed BUTTON PRESSED

          These functions, MY.MENU3.WHENHELD and MY.MENU3.WHENSELECTED, were quoted

          using FUNCTION instead of QUOTE both for program readability and so that the compiler can produce faster code when the program is compiled. It is good style to quote

          functions in Lisp by using the function FUNCTION instead of QUOTE.


          Looking at a Menu’s Fields

          INSPECT is a function that displays a list of the fields of a menu, and their values. Figure 13-6 shows the various fields of MY.MENU3 when the function (INSPECT

          MY.MENU3) was called. Notice the values that were assigned by the examples, and all the defaults.

          image

          Figure 13-6. MY.MENU3 Fields

      4. BITMAPS

        image


        A bitmap is a rectangular array of dots. The dots are called "pixels" (for picture

        elements). Each dot, or pixel, is represented by a single bit. When a pixel or bit is turned on (i.e. that bit set to 1), a black dot is inserted into a bitmap. If you have a bitmap of a floppy on your screen (Figure 14-1), then all of the bits in the area that make up the floppy are turned on, and the surrounding bits are turned off.



        image


        Figure 14-1. Bitmap of a Floppy


        BITMAPCREATE creates a bitmap, even though it can’t be seen.

        (BITMAPCREATE width height)

        If the width and height are not supplied, the system will prompt you for them.

        EDITBM edits the bitmap. The syntax of the function is:

        (EDITBM bitmapname)

        Try the following to produce the results in Figure 14-4:

        (SETQ MY.BITMAP (BITMAPCREATE 60 40)) EDITBM MY.BITMAP)


        To dra w In the bitmap, move the mouse into the gridded section of the bitmap editor, and press and hold the leff mouse button. Move the mouse around to turn on the bits

        represented by the spaces in the grid. Notice that each space in the grid represents one pixel on the bitmap

        To erase Move the mouse into the gridded section of the bitmap editor, and press and hold the center mouse button. Move the mouse around to turn off the bits represented by the spaces in the gridded section of the bitmap editor.


        To w ork on a different section Point with the mouse cursor to the picture of the

        actual bitmap (the upper left corner of the bitmap editor). Press and hold the left mouse button. A menu with the single item, Move will appear. (See Figure 14-2.) Choose this

        item.


        image

        Figure 14-2. Menu with Single Item (Move)


        You will be asked to position a ghost window over the bitmap. This ghost window

        represents the portion of the bitmap that you are currently editing. Place it over the

        section of the bitmap that you wish to edit and click the left mouse button (see Figure 14-3).


        image

        Figure 14-3. Ghost Window Awaiting Positioning


        To end the session, bring the mouse cursor into the upper-right portion of the window (the grey area) and press the center button. Select OK from the menu to save your

        artwork.


        image

        Figure 14-4. Editing a Bitmap


        BITBLT is the primitive function for moving bits (or pixels) from one bitmap to another.

        It extracts bits from the source bitmap, and combines them in appropriate ways with those of the destination bitmap. The syntax of the function is:


        (BITBLT sourcebitmap sourcelefl sourcebottom destinationbitmap destinationleft destinationbottom width height sourcetype operation texture clippIngregion)


        Here’s how it’s done —using MY.BITMAP as the sourcebitmap and MY.WlNDOW as the destinationbitmap.

        (BITBLT MY.BITMAP NIL NIL

        MY.WINDOW NIL NIL NIL NIL ‘INPUT ‘REPLACE)


        Note that the destination bitmap can be, and usually is, a window. Actually, it is the bitmap of a window, but the system handles that detail for you. Because of the NILs

        (meaning "use the default"), MY.BITMAP will be BITBLT’d into the lower right corner of

        MY.WlNDOW (see Figure 14-5).


        image


        Figure 14-5. BITBLT ing a Bitmap onto a Window Here is what each of the BITBLT arguments to the function mean:

        sourcebitmap The bitmap to be moved into the destinationbitmap

        sourceleft A number, starting at 0 for the left edge of the

        sourcebitmap, that tells BITBLT where to start moving pixels from the sourcebitmap. For example, if the leftmost 10 pixels of sourcebitmap were not to be moved, sourceleft should be 10. The default value is 0.

        sourcebottom A number, starting at 0 for the bottom edge of the

        sourcebitmap, that tells BITBLT where to start moving pixels from the sourcebitmap. For example, if the bottom 10 rows of pixels of sourcebitmap were not to be moved, sourcebottom should be 10 The default value is 0.

        destinationbitmap The bitmap that will receive the sourcebitmap. This is

        often a window (actually the bitmap of a window, but Interlisp-D takes care of that for you).

        destinationleft A number, starting at 0 for the left edge of the

        destinationbitmap, that tells BITBLT where to start placing pixels from the sourcebitmap. For example, to place the

        sourcebitmap 10 pixels in from the left, destinationleft should be 10. The default value is 0.


        destinationbottom A number, starting at 0 for the bottom edge of the

        destinationbitmap, that tells BITBLT where to start placing pixels from the sourcebitmap. For example, to place the

        sourcebitmap 10 pixels up from the bottom,

        destinationbottom should be 10. The default value is 0.

        width How many pixels in each row of sourcebitmap should be moved. The samc amount of space is used in

        destinationbitmap to receive the sourcebitmap. If this

        argument is NIL, it defaults to the number of pixels from sourceleft to the end of the row of sourcebitmap.

        height How many rows of pixels of sourcebitmap should be moved.

        The same amount of space is used in destinationbitmap to receive the sourcebitmap. If this argument is NIL, it

        defaults to the number of rows from sourcebottom to the top of the sourcebitmap.

        sourcetype Refers to one of three ways to convert the sourcebitmap for

        writing. For now, just use ’INPUT.

        operation Refers to how the sourtebitmap gets BITBLT ’d on to the destinationbitmap. ’REPLACE will BLT the exact

        sourcebitmap. Other operations allow you to AND, OR or XOR the bits from the sourcebitmap onto the bits on the destinationbitmap.

        texture J ust use NIL for now.

        clippingregion J ust use NIL for now.


        For more information on these operations, see Chapter 27 in the IRM.

      5. DISPLAYSTREAMS

        image


        A displaystream is a genera Jized "place to display". They determine exactly what is displayed where. One example of a displaystream is a window. Windows are the only

        displaystreams that will be used in this chapter. If you want to draw on a bitmap that is not a window, other than with BITBLT, or want to use other types of displaystreams, please refer to Chapter 27 in the IRM.


        This chapter explains functions for drawing on displaystreams: DRAWLINE , DRAWTO, DRAWCIRCLE., and FILLCIRCLE. In addition, functions for locating and changIng your curreAt position in the displaystream are covered: DSPXPOSITION , DSPYPOSITION, and MOVETO.


        Drawing on a Displaystream


        The examples belowshow you how the functions for drawing on a display stream work. First, create a window. Windows are displaystreams, and the one you create are used for the examples in this chapter. Type:

        (SETQ EXAMPLE.WINDOW (CREATEW))


        DRAWLlNE


        DRAWLINE draws a line in a displaystream. For example, type:

        (DRAWLINE 10 15 100 150 5 ’INVERT EXAMPLE.WINDOW)

        The results should look like Figure 15-1:

        image

        Figure 15-1. Line Drawn onto the EXAMPLE.WINDOW Displayrtream The syntax of DRAWLINE is

        (DRAWLINE x1 y1 x2 y2 width operation stream color dashing)

        The coordinates of the left bottom corner of the displaystream are 0 0.


        xl and yl x and y coordinates of the beginning of the line x2andy2 ending coordinates of the line

        width width of the line, in pixels

        operation way the line is to be drawn. INVERT causes the line to invert the bits that are already in the displaystream. Drawing a line the second time using INVERT erases the line. For other operations, see Chapter 27 in the IRM.

        stream displaystream. In this case, you used a window.


        DRAWTO


        DRAWTO draws a line that begins at your current position in the displaystream. For example, type:

        (DRAWTO 120 135 5 ’INVERT EXAMPLE.WINDOW)

        The results should look like Figure 15-2:


        image

        Figure 15-2. Another Line drawn onto the EXAMPLE.WINDOW Displaystream The syntax of DRAWTO is

        (DRAWTO x y width operation stream color dashing)


        The line begins at the current position in the displaystream. x x coordinate of the end of the line

        y y coordinate of the end of the line

        width width of the line

        operation way the lino is to be drawn. INVERT causes the line to invert the bits that aro already in tho displaystream. Drawing a line the second time using INVERT erases the line. For other operations, see Chapter 27 in the IRM

        stream displaystreom. In this case. you used a window.


        DRAWClRCLE


        DRAWCIRCLE draws a circle on a displaystream. To use it, type:

        (DRAWCIRCLE 150 100 30 ’(VERTICAL 5) NIL EXAMPLE.WINDOW)

        Now your window, EXAMPLE.WlNDOW, should look like Figure 15-3:


        image

        Figure 15-3. Circle Drawn onto the EXAMPLE.WlNDOW Displaystream The syntax of DRAWCIRCLE is

        (DRAWCIRCLE centerx centery radius brush dashing stream) centerx x coordinate of the center of the circle

        centery coordinate of the center of the circle radius radius of the circle in pixels

        brush list.- The first- item of the list is the shape of the brush. Some of your

        options include ROUND, SQUARE, and VERTICAL. The second item of that list is the width of the brush in pixels.

        dashing list of positive integers. The brush is "on" for the number of units

        indicated by the first element of the list, "off" for the number of units

        indicated by the second element of the list. The third element specifies how long it will be on again, and so forth. The sequence is repeated until the circle has been drawn.

        stream displaystream. In this case, you used a window.


        FlLLClRCLE


        FILLCIRCLE draws a filled circle on a displaystream. To use it, type:

        (FILLCIRCLE 200 150 10 GRAYSHADE EXAMPLE.WINDOW)

        EXAMPLE.WlNDOW now looks like Figure 15-4:


        image


        Figure 15-4. A filled circle drawn onto the displaystream The syntax of FILLCIRCLE is:

        (FILLCIRCLE centerx centery radius texture stream) centerx x coordinate of the center of the circle

        centery y coordinate of the center of the ci rcle radius radius of the circle in pixels

        texture shade that will be used to fill in the circle. Interlisp-D provides you with

        three shades: WHlTESHADE , BLACKSHADE, and GRAYSHADE. You can also create your own shades. For more information on how to do this, see

        Chapter 27 in the IRM.

        stream displaystream. In this case, you used a window

        There are many other functions for drawing on a displaystream. Please refer to Chapter 27 in the IRM.

        Text can also be placed into displaystreams. To do this, use printing functions such as PRIN1 and PRIN2, but supply the name of the displaystream as the "file" to print to. To place the text in the proper position in the displaystream, see the section below.


        Locating and Changing Your Position in a Displaystream


        There are functions provided to locate, and to change your current position in a

        displayitream. This can help you place text, and other images where you want them in

        a displaystream. This primer will only discuss three of these. There are others, and they can be foun d in the Chapter 27 of the IRM.


        DSPXPOSlTlON

        DSPXPOSITION is a function that will either change the current x position in a

        displaystream, or simply report it. To have the function report the current x position in

        EXAMPLE.WlNDOW, type:

        (DSPXPOSITION NIL EXAMPLE.WINDOW)


        DSPXPOSITION expects two arguments. The first is the new x position. If this argument is NIL, the current position is not changed, merely reported. The second argument is

        the displaystream.


        DSPYPOSlTlON

        DSPYPOSITION is an analogous function, but It changes or reports the current y

        position in a displaystream. As with DSPXPOSlTlON , if the first argument is a number, the current y position will be changed to that position. If it is NIL, the current position is simply reported. To have the function report the current y position in EXAMPLE.WlNDOW, type:

        (DSPYPOSITION NIL EXAMPLE.WlNDOW)


        MOVETO

        The function MOVETO always changes your position in the displaystream. It expects three arguments:

        (MOVETO x y stream)


        1. new x position in the display stream

        2. new y position in the display stream

        stream display stream. The examples so far have used a window

      6. FONTS

        image


        This chapter explains font s and font descriptors, what they are and how to use them, so that you can use functions requiring font descriptors

        You have already been exposed to many font s in Medley. For example, when you use the structure editor, DEdit (see the Using the List Structure Editor section of Chapter 7), you noticed that the comments were printed in a smaller font than the code, and

        that CLlSP words (see the CLISP section of Chapter 9) were printed in a darker font

        than the other words in the function. These are only some of the font s that are available in Medley.

        In addition to the font s that appear on your screen, Medley uses font s for printers that are different than the ones used for the screen. The font s used to print to the screen are called DlSPLAYFONTS. The font s used for prining are called INTERPRESSFONTS , or PRESSFONTS, depending on the type of printer.


        What Makes Up a Font


        Fonts are described by family, weight, slope, width, and size. This section discusses each of these, and describes how they affect the font you see on the screen.

        Family is one way that font s can differ. Here are some examples of how "family" affect s the look of a font:

        CLASSIC This family makes the word "Able" look like this: Able MODERN This family makes the word "Able" look like this: Able TITAN This family makes the word "Able" look like this: Able

        Weight also determines the look of a font. Once again, "Able" will be used as an example, this time only with the Classic family. A font’s weight can be:

        BOLD And look like this: Able

        MEDIUM

        or REGULAR And look like this: Able

        The slope of a font is italic or regular. Using the Classic family font again, in a regular weight, the slope affect s the font like this:

        ITALIC Looks like this: Able

        REGULAR Looks like this: Able

        The width of a font is called its "expansion". It can be COMPRESSED , REGULAR, or

        EXPANDED.

        Together, the weight, slope, and expansion of a font specifies the font’s "face". Specifically, the face of a font is a three element list:

        (weight slope expansion)

        To make it easier to type, when a function requires a font face as an argument, it can be abbreviated with a three-character atom. The first specifies the weight, the second the


        slope, and the third character the expansion. For example, some common font faces are abbreviated:

        MRR This is the usual face, MEDIUM, REGULAR, REGULAR

        MIR Makes an italic font. It stands for: MEDIUM , ITALIC, REGULAR

        BRR Makes a bold font. The abbreviation means: BOLD, REGULAR , REGULAR BIR Means that the font should be both bold and italic. BIR stands for BOLD,

        ITALIC, REGULAR

        The above examples are used so oflen, that there are also more mnemonic abbreviations for them. They can also be used to specify a font face for a function that requires a face as an argument. They are:


        STANDARD This is the usual face: MEDIUM, REGULAR, REGULAR; it was abbreviated above, MRR

        ITALIC This was abbreviated above as MIR, and specifies an italic font

        BOLD Makes a bold font; it was abbreviated above, BRR

        BOLDITALIC Makes a font both bold and italic: BOLD, ITALIC , REGULAR; it was abbreviated above, BIR

        A font also has a size. It is a positive integer that specifies the height of the font in

        printers points. A point is, on an 1108 screen, about 1/72 of an inch. On the screen of an 1186, a point is 1/80 of an inch. The size of the font used in this chapter is 10. For

        comparison, here is an example of a TITAN, MRR, size 12 font: Able.


        Fontdescriptors and FONTCREATE

        For Medley to use a font, it must have a font descriptor. A font descriptor is a data type in Interlisp-D that that holds all the information needed in order to use a particular font. When you print out a font descriptor, it looks like this:

        {FONTDESCRIPTOR}#74,45540

        Fontdescriptors are created by the function FONTCREATE . For example,

        (FONTCREATE ’HELVETICA 12 ’BOLD)

        creates a font descriptor that, when used by other functions, prints in HELVETICA BOLD size 12. Interlisp-D functions that work with font s expect a font descriptor produced

        with the FONTCREATE function. The syntax of FONTCREATE is:

        (FONTCREATE family size face)

        Remember from the previous section, face is either a three element list (weight slope expansion), a three character atom abbreviation, e.g. MRR, or one of the mnemonic

        abbreviations, e.g. STANDARD .

        If FONTCREATE is asked to create a font descriptor that a J ready exists, the existing font descriptor is simply returned.


        Display Fonts

        Display font s require files that contain the bitmaps used to print each character on the screen. All of these files have the extension .DlSPLAYFONT . The file name itself

        describes the font style and size that uses its bitmaps. For example:

        MODERN12.DISPLAYFONT

        contains bitmaps for the font family MODERN in size 12 points. Wherever you put your

        .DISPLAYFONT files, you should make this one of the values of the variable DISPLAYFONTDIRECTORIES. Its value is a list of directories to search for the bitmap files for display font s. Usually, it contains the "FONT" directory where you copied the bitmap files, and the current connected directory. The current connected directory is

        specified by the atom NIL. When looking for a .DISPLAYFONT file, the system checks the FONT directory on the hard disk, then the current connected directory.

        Figure 16-1 shows an example value of DISPLAYFONTDIRECTORIES :


        image


        Figure 16-1. Value for the Atom DISFLAYFONTDIRECTORIES


        InterPress Fonts

        InterPress is the format that is used by Xerox laser printers. These printers normally have a resolution that is much higher than that of the screen: 300 points per inch.

        To format files appropriately for output on such a printer, Interlisp must know the

        actual size for each character that is to be printed. This is done through the use of width files that contain font width information for font s in InterPress format. For InterPress font s, you should make the location of these files one of the values of the variable INTERPRESSFONTDIRECTORIES. Its value is a list of directories to search for the font widths files for InterPress font s. Figure 16-2 is an example value of INTERPRESSFONTDIRECTORIES:



        image


        Figure 16-2. Value for Atom INTERPRESSFONTDIRECTORIES


        Functions for Using Fonts


        FONTPR0P Looking at Font Properties

        It is possible to see the properties of a font descriptor. This s done with the function FONTPROP. For the following examples, the font descriptor used will be the one returned by the function (DEFAULTFONT ’DISPLAY) . In other words, the font descriptor

        examined will be the default display font for the system.

        There are many properties of a font that might be useful for you. Some of these are:


        FAMILY To see the family of a font descriptor, type:

        (FONTPROP (DEFAULTFONT ’DISPLAY) ’FAMILY)

        SIZE As above, this is a positive integer that determines the height of the font in printer’s points. As an example, the SIZE of the current default font is:

        image


        Figure 16-3. Value of Font Property SIZE of Default Font

        ASCENT The value of this property is a positive integer, the maximum height of

        any character in the specified font from the baseline (bottom). The top of


        the tallest character in the font, then, will be at (BASELINE + ASCENT

        - l). For example, the ASCENT of the default font is:


        image

        Figure 16-4. Value Font Property ASCENT of Default Font

        DESCENT The DESCENT is an integer that specifies the maximum number of points that a character in the font descends below the baseline (e.g.,

        letters such as "p" and "g" have tails that descend below the baseline.). The bottom of the lowest character in the font will be at (BASELINE - DESCENT). To see the DESCENT of the default font, type:

        (FONTPROP (DEFAULTFONT ’DISPLAY) ’DESCENT) HEIGHT HEIGHT is equal to (DESCENT - ASCENT).

        FACE The value of this property is a list of the form (weight slope expansion). These are the weight, slope, and expansion described above. You can see each one separately, also. Use the property that you are interested in, WEIGHT, SLOPE, or EXPANSION, instead of FACE as the second argument to FONTPROP.

        For other font properties, see Chapter 27 of the IRM.


        STRlNGWlDTH

        It is often useful to see how much space is required to print an expression in a particular font. The function STRINGWIDTH does this. For example, type:

        (STRINGWIDTH "Hi there!" (FONTCREATE ’GACHA 10 ’STANDARD))

        The number returned is how many left to right pixels would be needed if the string

        were printed in this font. (Note that this doesn’t just work for pixels on the screen, but for all kinds of streams. For more information about streams, see Chapter 15.) Compare the number returned from the example call with the number returned when you change GACHA to TIMESROMAN.


        DSPFONT - Changing the Font in One Window

        The function DSPFONT changes the font in a single window. As an example of its use, first create a window to write in. Type:

        (SETQ MY.FONT.WINDOW (CREATEW))

        in the Executive Window. Sweep out the window. To print something in the default font, type:

        (PRINT ’HELLO MY.FONT.WINDOW)

        in the Executive Window. Your window, MY.FONT.WINDOW , will look something like Figure 16-5:


        image

        Figure 16-5. HELLO, Printed with the Default Font in MY.FONT.WINDOW

        Now change the font in the window. Type:

        (DSPFONT (FONTCREATE ’HELVETICA 12 ’BOLD) MY.FONT.WINDOW)

        in the Executive Window. The arguments to FONTCREATE can be changed to create any desired font. Now retype the PRINT statement, and your window will look something

        like Figure 16-6:


        image

        Flgure 16-6. Font in MY.FONT.WINDOW Changed Notice the font has been changed.


        Personalizing Your Font Profile

        Medley keeps a list of default font specifications. This list is used to set the font in all windows where the font is not specifically set by the user (see the DSPFONT section

        above). The value of the atom FONTPROFILE is this list (see Figure 16-7).

        A FONTPROFILE is a list of font descriptions that certain system functions access when printing output. It contains specifications for big font s (used when pretty printing a

        function to type the function name), small font s (used for printing comments in the editor), and various other font s.


        image


        Figure 16-7. Value of the Atom FONTPROFILE


        The list is in the form of an association list. The font class names (e.g., DEFAULTFONT , or BOLDFONT) are the keywords of the association list. When a number follows the

        keyword, it is the font number for that font class.

        The lists following the font class name or number are the font specifications, in a form that the function FONTCREATE can use. The first font specification list affer a keyword

        is the specification for printing to windows. The list(GACHA 10) in the figure above is an example of the default specification for the printing to windows. The last two font

        specification lists are for Press and InterPress file printing, respectively. For more information, see Chapter 27 in the IRM.

        Now, to change your default font settings, change the value of the variable FONTPROFILE. Medley has a list of profiles stored as the value of the atom FONTDEFS . Choose the profile to use, then install it as the default FONTPROFILE .

        Evaluate the atom FONTDEFS and notice that each profile list begins with a keyword (see Figure 16-8). This keyword corresponds to the size of the font s included. BIG, SMALL, and STANDARD are some of the keywords for profiles on this list—SMALL and STANDARD appear in Figure 16-8.



        image


        Figure 16-8. Part of Value of the Atom FONTDEFS

        To install a new profile from this list, follow the following example, but insert any keyword for BIG.

        To use the profile with the keyword BIG instead of the standard one, evaluate the following expression:

        (FONTSET ’BIG))

        Now the font s are permanently replaced. (That is, until another profile is installed.)

      7. THE INSPECTOR

image


The Inspector is a window-oriented tool designed to examine data structures. Because Medley is such a powerful programming environment, many types of data structures would be difficult to see in any other way.


Calling the Inspector


Take as an example an object defined through a sequence of pointers (i.e., a bitmap on the property list of a window on the property list of an atom inaprogram.)

To inspect an object named NAME, type:

(INSPECT ’NAME)

If NAME has many possible interpretations, an option menu will appear. For example, in Interlisp-D, a litatom can refer to both an atom and a function. For example, if NAME

was a record, had a function definition, and had properties on its property list, then the menu would appear as in Figure 17-1.



image


Figure 17-1. Option Window for Inspection of NAME

If NAME were a list, then the option menu shown in Figure 17.2 would appear. The options include:

  • Calling the display editor on the list

  • Calling the TTY editor (see Chapter 6)

  • Seeing the list’s elements in a display window. If you choose this option, each

    element in the list will appear in the right column of the Inspector window. The left column of the Inspector window will be made up of numbers (see Figure 17-3).

  • Inspecting the list as a record type (this last option would produce a menu of known record types). If you choose a record type, the items in the list will appear in the

    right column of the Inspector window. The left column of the Inspector window will be made up of the field names of the record.


    image

    Figure 17-2. Option Window for Inspection of List


    Using the Inspector


    If you choose to display your data structure in an edit window, simply edit the structure and exit in the normal manner when done. If you choose to display the data structure in an inspect window, then follow these instructions:

  • To select an item, point the mouse cursor at it and press the left mouse button.

  • Items in the right column of an Inspector window can themselves be inspected. To do this, choose the item, and press the center mouse button.

  • Items in the right column of an Inspector window can be changed. To do this, choose the corresponding item in the left column, and press the center mouse button. You

will be prompted for the new value, and the item will be changed. The sequence of steps is shown in Figure 17-3.


The item in the lefl column is selected, and the middle mouse button pressed. Select the

SET option from the menu that pops up.

You will then be prompted for the new value. Type it in.

The item in the right column is updated to the value of what you typed in.

image


image


image

Figure 17-3. Steps Involved in Changing Value in Right Column of Inspector Window


Inspector Example


This example will use ideas discussed in Chapter 21. An example, ANlMALGRAPH , is created in that section. You do not need to know the details of how it was created, but the structure is examined in this chapter.

If you type

(INSPECT ANIMAL.GRAPH)

and then choose the Inspect option from the menu, a display appears as shown in

Figure 17-4. ANlMAL.GRAPH is being inspected as a list. Note the numbers in the left column of the inspectorwindow.

image

  1. THE INSPECTOR

    image


    Figure 17-4. Inspector Window For ANIMAL.GRAPH , Inspected as List If you choose the "As A Record" option, and choose "GRAPH" from the menu that

    appears, the inspector window looks like Figure 17-5. Note the fieldnames in the left column of the inspector window.

    image


    Figure 17-5. Inspector Window for ANlMAL.GRAPH , Inspected as Instance of GRAPH

    Record


    The remaining examples will use ANlMAL.GRAPH inspected as a list. When the first item in the Inspector window is chosen with the leff mouse button, the Inspector

    window looks like Figure 17-6.


    image


    Figure 17-6. Inspector Window for ANlMAL.GRAPH With First Element Selected

    When you use the middle mouse button to inspect the selected list element, the display looks like Figure 17-7.


    image

    Figure 17-7. Inspector Window for ANlMAL.GRAPH and for First Element of

    ANIMAL.GRAPH


    How you can see that six items make up the list, and you can further choose to inspect one of these items. Notice that this is also inspected as a list. As usual, it could also

    have been inspected as a record.

    Select item 5 - MAMMAL DOG CAT - with the left mouse button. Press the middle mouse button. Choose "Inspect" to inspect your choice as a list. The Inspector now displays the values of the structure that makes up MAMMAL DOG CAT . (See Figure 17-8.)


    image

    Figure 17-8. Inspector Window for Element S From Figure 17.7 That Begins ((MAMMAL DOG CAT).

  2. MASTERSCOPE

    image


    Masterscope is a tool that allows you to quickly examine the structure of complex

    programs. As your programs enlarge, you may forget what variables are global, what functions call other functions, and so forth. Masterscope keeps track of this for you.

    To use Masterscope, first load MASTERSCOPE.DFASL and EXPORTS.ALL.

    Suppose that JVTO is the name of a file that contains many of the functions involved in a complex system and that LINTRANS is the file containing the remaining functions. The first step is to ask Masterscope to analyze these files. These files must be loaded.

    All Masterscope queries and commands begin with a period followed by a space, as in

    . ANALYZE FNS ON MSCOPEDEMO

    The ANALYZE process takes a while, so the system prints a period on the screen for each function it has analyzed. (See Figure 18-1)


    image


    Figure 18-1. Executive Window After Analyzing Files

    If you are not quite sure what functions were just analyzed, type the file’s COMS variable (see the File Variables section in Chapter 7) into the Executive Window. The names of

    the functions stored on the file will be a part of the value of this variable.

    A variety of commands are now possible, all referring to individual functions within the analyzed files. Substantial variation in exact wording is permitted. Some commands

    are:

    . SHOW PATHS FROM ANY TO ANY

    . EDIT WHERE ANY CALLS functionname

    . EDIT WHERE ANY USES variablename

    . WHO CALLS WHOM

    . WHO CALLS functionname

    . BY WHOM IS functionname CALLED

    . WHO USES variablename AS FIELD


    Note that the function is being called to invoke each command. Refer to the IRM for commands not listed here.

    Figure 18-2 shows the Executive Window after the commands . WHO CALLS GobbleDump and . WHO DOES JVL inScan CALL.


    image


    Figure 18-2. Sample Masterscope Output

    18. MASTERSCOPE


    SHOW DATA Command and GRAPHER


    When the library package GRAPHER is loaded (to load this package, type (FILESLOAD GRAPHER)), Masterscope’s SHOWPATHS command is modified. The command will be

    changed to generate a tree structure showi ng how the program’s functions interact instead of a tabular printout into the Executive window. For example, typing:

    . SHOW PATHS FROM ProcessEND


    produced the display shown in Figure 18-3.


    image


    Figure 18-3. SHOW PATHS Display Example


    All the functions in the display are part of this analyzed file or a previously analyzed file. Boxed functions indicate that the function name has been duplicated in another place on the display.


    Selecting any function name on the display will pretty print the function in a window (see Figure 18-4).


    image



    image


    Figure 18-4. Browser Printout Example


    Selecting it again with the left mouse button will produce a desription of the function’s role in the overall system (see Figure 18-5).

    1. MASTERSCOPE

      image


      image


      image


      Figure 18-5. Browser Description Example

    2. WHERE DOES ALL THE TIME GO? SPY

      image


      SPY is an Lisp library package that shows you where you spend your time when you run your system. It is easy to learn, and very useful when trying to make programs run

      faster.


      How to Use Spy with the SPY Window


      The function SPY.BUTTON brings up a small window which you will be prompted to position. Using the mouse buttons in this window controls the action of the SPY

      program. When you are not using SPY, the window appears as in Figure 19.1.

      image

      Figure 19.1. SPY Window When SPY is Not Being Used


      To use SPY, click either the left or middle mouse button with the mouse cursor in the

      SPY window. The window will appear as in Figure 19.2, and means that SPY is accumulating data about your program.


      image


      Figure 19.2. SPY Window When SPY is Being Used


      To turn off SPY after the program has run, again click a mouse button in the SPY

      window. The eye closes, and you are asked to position another window. This window contains SPY’s results. An example of the resulting window is shown in Figure 19.3.

      19. WHERE DOES ALL THE TIME GO? SPY


      image


      Figure 19.3. Window Produced After Running SPY


      This window is scrollable horizontally and vertically. This is useful, since the whole tree does not fit in the window. If a part that you want to see is not shown, you can scroll the window to show the part you want to see.


      How to Use SPY from the Lisp Top Level


      SPY can also be run while a specific function or system is being used. To do this, type the function WITH.SPY:

      (WITH.SPY form)

      The expression used for form should be the call to begin running the function or system that SPY is to watch. If you watch the SPY window, the eye will blink! To see your

      results, run the function SPY.TREE. To do this, type:

      (SPY.TREE)

      The results of the last running of SPY will be displayed. If you do this, and SPY.TREE returns (no SPY samples have been gathered), your function ran too fast for SPY to follow.


      Interpreting SPY’s Results

      Each node in the tree is a box that contains, first, the percentage of time spent running that particular function, and second, the function name. There are two modes that can be used to display this tree.

      The default mode is cumulative. In this mode, each percentage is the amount of time

      that function spent on top of the stack, plus the amount of time spent by the functions it calls. The second mode is individual. To change the mode to individual, point to the title bar of the window, and press the middle mouse button. Choose Individual from the menu that appears. In this mode, the percentage shown is the amount of time the

      function spent on the top of the stack.

      To look at a single branch of the tree, point with the mouse cursor at one of the nodes of the tree, and press the right mouse button. From the menu that appears, choose the


      image

      19-2 Medley for the Novice, Release 2.0

      19. WHERE DOES ALL THE TIME GO? SPY


      option SubTree. Another SPY window will appear, with just this branch of the tree in it.

      Another way to focu s within the tree is to remove branches from the tree. To do this, point to the node at the top of the branch you would like to delete. Press the middle mouse button, and choose Delete from the menu that appears.

      There are also different amounts of "merging" of functions that can be done in the

      window. A function can be called by another function more than once. The amount of merging determines where the subfunction, and the functions that it calls, appear in the tree, and how often. (For a detailed explanation of merging, see the Lisp Library Packages Manual.)

    3. FREE MENUS

      image


      Free Menu is a library package that is even more flexible than the regular menu package. It allows you to create menus with different types of items in them, and

      format s them as you require. Free menus are particularly useful when you want a "fill in the form" type interaction with the user.

      Each menu item is described with a list of properties and values. The following example will give you an idea of the structure of the description list, and some of your options.

      The most commonly used properties, and each type of menu item will be described in the Parts of a Free Menu Item and Types of Free Menu Items section below.


      Free Menu Example

      Free menus can be created and formatted automatically! It is done with the function

      FM.FORMATMENU. This function takes one argument, a description of the menu. The

      description is a list of lists; each internal list describes one row of the free menu. A free menu row can have more than one item in it, so there are really lists of lists of lists! It really isn’t hard, though, as you can see from the following example:

      (SETQ ExampleMenu (FM.FORMATMENU

      ’(((TYPE TITLE LABEL TitlesDoNothing) TYPE 3STATE LABEL Example3State))

      ((TYPE EDITSTART LABEL PressToStartEditing

      ITEMS (EDITEM)) (TYPE EDIT ID EDITEM LABEL ""))

      (WINDOWPROPS TITLE "Example Does Nothing"))))

      The first row has two items in it: one is a TITLE, and the second is a 3STATE item. The second row also has two items. The second, the EDIT item, is invisible, because its label is an empty string. The caret will appear for editing, however, if the EDITSTART item is chosen. Windowprops can appear as part of the description of the menu, because a

      menu is, affer all, just a special window. You can specify not only the title with

      WINDOWPROPS, but also the position of the free menu, using the "left" and "bottom"

      properties, and the width of the border in pixels, with the "border" property. Evaluating this expression will return a window. You can see the menu by using the function OPENW. The following example illustrates this:


      Figure 20.1. Example Free Menu


      The next example shows you what the menu looks like after the EDITSTART item,

      PressToStartEditing, has been chosen.


      Figure 20.2. Free menu after EDITSTART Item Chosen

      The following example shows the menu with the 3STATE item in its T state, with the item highlighted. (In the previous bitmaps, it was in its neutral state.)

      .


      Figure 20.3. Free menu with 3STATE Item in its T State


      Finally, Figure 20.4 shows the 3STATE item in its NIL state, with a diagonal line through the item


      Figure 20.4 Free menu with the 3STATE item in its NIL State

      If you would like to specify the layout yourself, you can do that too. See the Lisp Library Packages Manual for more information.


      Parts of a Free Menu Item

      There are eight different types of items that you can use in a free menu. No matter

      what type, the menu item is easily described by a list of properties, and values. Some of the properties you will use most often are listed below:


      LABEL Required for every type of menu item. It is the atom, string, or bitmap that appears as a menu selection.

      TYPE One of eight types of menu items. Each of these are described in the section below.

      MESSAGE The message that appears in the prompt window if a mouse button is held down over the item.

      ID An item’s unique identifier. An ID is needed for certain types of menu items.

      ITEMS Used to list a series of choices for an NCHOOSE item, and to list the ID’s of the editable items for an EDITSTART item.

      SELECTEDFN The name of the function to be called if the item is chosen.


      Types of Free Menu Items

      Each type of menu item is described in the following list, including an example description list for each one.


      MOMENTARY This is the familiar sort of menu item. When it is selected, the

      function stored with it is called. A description for the function that creates and format s the menu looks like this:

      (TYPE MOMENTARY

      LABEL Blink-N-Ring

      MESSAGE "Blinks the screen and rings bells" SELECTEDFN RINGBELLS)

      TOGGLE This menu item has two states, T and NIL. The default state is NIL, but choosing the item toggles its state. The following is an example description list, without code for the SELECTEDFN function, for this type of item:

      (TYPE TOGGLE

      LABEL DwimDisable SELECTEDFN ChangeDwimState)

      1. FREE MENUS

        image


        3STATE This type of menu item has three states, NEUTRAL , T, and NIL. NEUTRAL is the default state. T is shown by highlighting the item, and NIL is shown with diagonal lines. The following is an example

        description list, without code for the SELECTEDFN function, for this type of item:

        (TYPE 3STATE

        LABEL CorrectProgramAllOrNoSpelling SELECTEDFN ToggleSpellingCorrection)

        TITLE This menu item appears on the menu as dummy text. It does nothing when chosen. An example of its description:

        (TYPE TITLE LABEL "Choices:")

        NWAY A group of items, nnly one of which can be chosen at a time. The items in the NWAY group should all have an ID field, and the ID’s

        should be the same. For example, to set up a menu that would allow the user to choose between Helvetica, Gacha, Modern, and Classic font s, the descriptions might look like this (once again, without the code for the SELECTEDFN):

        (TYPE NWAY ID FONTCHOICE

        LABEL Helvetica SELECTEDFN ChangeFont)

        (TYPE NWAY ID FONTCHOICE

        LABEL Gacha

        SELECTEDFN ChangeFont) (TYPE NWAY ID FONTCHOICE)

        LABEL Modern SELECTEDFN ChangeFont)

        (TYPE NWAY ID FONTCHOICE

        LABEL Classic SELECTEDFN Changefont)


        NCHOOSE This type of menu item is like NWAY except that the choices are given to the user in a submenu. The list to specify an NCHOOSE menu item that is analogous to the NWAY item above might look like this:

        (TYPE NCHOOSE

        LABEL FontChoices

        ITEMS Helvetica Gacha Modern Classic) SELECTDFN Changefont)

        EDITSTART When this type of menu itein is chosen, it activates another type of item, an EDIT item. The EDIT item or items associated with an EDITSTART item have their lD’s listed on the EDITSTART ’s ITEMS property. An example description list is:

        (TYPE EDITSTART LABEL "Function to add?" ITEMS (Fn))

        EDIT This type of menu item can actually be edited by you. It is often

        associated with an EDITSTART item (see above), but the caret that prompts for input will also appear if the item itself is chosen. An EDIT item follows the same editing conventions as editing in

        Executive Window:

        Add characters by typing them at the caret.

        Move the caret by pointing the mouse at the new position, and clicking the left button.


        Delete characters from the caret to the mouse by pressing the right button of the mouse. Delete a character behind the caret by pressing the backspace key.

        Stop editing by typing a carriage return, a Control-X, or by choosing another item from the menu.

        An example description list for this type of item is:

        (TYPE EDIT ID Fn LABEL **)

      2. THE GRAPHER

        image


        Say it with Graphs


        Grapher is a collection of functions for creating and displaying graphs, networks of nodes and links. Grapher also allows you to associate program behavior with mouse selection of graph nodes. To load this package, type

        (FILESLOAD GRAPHER)

        Figure 21-1 shows a simple graph.

        image


        Figure 21-1. Simple Graph


        In Figure 21-1 there are six nodes (ANIMAL , MAMMAL, DOG, CAT, FISH, and BIRD)

        connected by five links. A GRAPH is a record containing several fields. Perhaps the most

        important field is GRAPHNODES —which is itself a list of GRAPHNODE records. Figure 21-2 illustrates these data structures. The window on top contains the fields from the simple

        graph. The window on the bottoms an inspection of the node, DOG.


        image

        Figure 21-2. Inspecting a Graph and a Node


        The GRAPHNODE data structure is described by its text (NODEID ), what goes into it (FROMNODES), what leaves it (TONODES ), and other fields that specify its looks. The basic model of graph building is to create a bunch of nodes, then layout the nodes into a

        graph, and finally display the resultant graph. This can be done in a number of ways.

        One is to use the function NODECREATE to create the nodes, LAYOUTGRAPH to lay out the nodes, and SHOWGRAPH to display the graph. The primer shows you two simpler ways,

        but please see the Library Packages Manual for more information about these other functions. The primer’s first method is to use SHOWGRAPH to display a graph with no nodes or links, then interactively add them. The second is to use the function

        LAYOUTSEXPR, which does the appropriate NODECREATES and a LAYOUTGRAPH, with a list.

        The function SHOWGRAPH displays graphs and allows you to edit them. The syntax of

        SHOWGRAPH is

        (SHOWGRAPH graph window lefibuttonfn middlebuttonfn topjustifyflg alloweditflg copybuttoneventfn)

        Obviously the graph structure is very complex. Here’s the easiest way to create a graph.

        (SETQ MY.GRAPH NIL)

        (SHOWGRAPH MY.GRAPH "My Graph" NIL NIL NIL T)


        image


        Figure 21-3. My Graph


        You will be prompted to create a small window as in Figure 21-3. This graph has the title My Graph. Hold down the right mouse button in the window. A menu of graph

        editing operations will appear as in Figure 21-4.

        image


        Figure 21-4. Menu of Graph Editing Operations

        Here’s how to use this menu. The commands in this menu are easy to learn. Experiment with them!


        Add a Node

        Start by selecting Add Node . Grapher will prompt you for the name of the node (see Figure 21-5.) and then its position.

        image


        Figure 21-5. Grapher Prompts for Name of Node to add after Add Node is Chosen from Graph Editing Menu.


        Position the node by moving the mouse cursor to the desired location and clicking a mouse button. Figure 21-6 shows the graph with two nodes added using this menu.


        image


        Figure 21-6. Two Nodes Added to MY GRAPH Using GraphEditing Menu


        Add a Link

        Select Add Link from the graph editing menu. The Prompt window will prompt you to select the two nodes to be linked. (See Figure 21-7.) Do this, and the link will be added.


        image


        image


        Figure 21-7. Prompt Window Requesting Selection of Two Nodes to Link, and Result


        Delete a Link

        Select Delete Link from the graph editing menu. ThePrompt window will prompt you to select the two nodes that should no longer be linked. (See Figure 21-8.) Do this, and

        the link will be deleted.


        image


        image


        Figure 21-8. Prompt Window Requesting Selection of Link to Delete, and Result


        Delete a Node

        Select Delete Node from the graph editing menu. The Prompt window will prompt you to select the node to be aeleted. (See Figure 21-9.) Do this, and the node will be deletea.


        image

        Figure 21.-9. Prompt to Delete a Node


        Move a Node

        Select Delete Node from the graph editng menu. Choose a node pointing to the it with the mouse cursor, and pressing and holding the leff mouse button. When you move the mouse cursor, the node will be dragged along. When the node is at the new position,

        release the mouse button to deposit the node.


        Making a Graph from a List


        Typically, a graph is used to display one of your program’s data structures. Here is how that is done.


        LAYOUTSEXPR takes a list and returns a GRAPH record. The syntax of the function is

        (LAYOUTSEXPR sexpr format boxing font motherd personald famlyd)

        For example:

        (SETQ ANIMAL.TREE ’(ANIMAL (MAMMAL DOG CAT) BIRD FISH)) (SETQ ANIMAL.GRAPH

        (LAYOUTSEXPR ANIMAL.TREE ’HORIZONTAL)) (SHOWGRAPH ANIMAL.GRAPH "My Graph" NIL NIL NIL T)

        This is how Figure 21.1 was produced.


        Incorporating Grapher into Your Program

        The Grapher is designed to be built into other programs. It can call functions when, for example, a mouse button is clicked on a node. The function SHOWGRAPH does this:

        (SHOWGRAPH graph window lefibuttonfn middlebuttonfn topjustifyflg alloweditflg copybuttoneventfn)

        For example, the third argument to SHOWGRAPH , leftbuttonfn, is a function that is called when the left mouse button is pressed in the graph window. Try this:

        (DEFINEQ (My.LEFT.BUTT0N.FUNCTION (THE.GRAPHNODE THE.GRAPH.WINDOW)

        (INSPECT THE.GRAPHNODE)))


        (SHOWGRAPH FAMILY.GRAPH "Inspectable family" (FUNCTION MY.LEFT.BUTTON.FUNCTION)

        NIL NIL T)


        In the example above, MY.LEFT.BUTTON.FUNCTION simply calls the inspector. The

        function should be written assuming it will be passed a graphnode and the window that holds the graph. Try adding a function of your own.


        More of Grapher

        Some other Library packages make use of the Grapher. (Grapher needs to be loaded with the packages to use these functions.)


        • MASTERSCOPE: The Browser package modifies the Masterscope command, . SHOW PATHS, so that its output is displayed as a graph (using Grapher) instead of simply printed.

        • GRAPHZOOM: allows a graph to be redisplayed larger or smaller automatically.

      3. RESOURCE MANAGEMENT

        image


        Naming Variables and Records

        You will find times when one environment simultaneously hosts a number of different programs. Running a demo of several programs, or reloading the entire Medley

        environment from floppies when it contains several different programs, are two

        examples that could, if you aren’t careful, provide a few problems. Here are a few tips on how to prevent problems:


        • If you change the value of a system variable, MENUHELDWAIT for example, or connect to a directory other than {DSK}<LISPFILES> , write a function to reset the variable or directory to its original value. Run this function when you are finished working.

          This is especially important if you change any of the system menus.


        • Do not redefine Medley functions or CLISP words. Remember, if you reset an atom’s value or function definition at the top level (in the Executive Window), the message (Some.Crucial.Function.Or.Variable redefined) , appears. If this is not what you wanted, type UNDO immediately!

          If, however, you reset the value or function definition of an atom inside your program, a warning message will not be printed.


        • Make the atom names in your programs as unique as possible. To do this without filling your program with unreadable names that noone, including you, can

          remember, prefix your variable names with the initials of your program. Even then, check to see that they are not already being used with the function BOUNDP . For

          example, type:

          (BOUNDP ’BackgroundMenu)


          This atom is bound to the menu that appears when you press the leff mouse button

          when the mouse cursor is not in any window. BOUNDP returns T. BOUNDP returns NIL

          if its argument does not currently have a value.


        • Make your function names as unique as possible. Once again, prefixing function

          names with the initials of your program can be helpful in making them unique, but even so, check to see that they are not already being used. GETD is the Interlisp-D function that returns the function definition of an atom, if it has one. If an atom has no function definition, GETD returns NIL. For example, type:

          (GETD ’CAR)

          A non-NIL value is returned. The atom CAR already has a function definition.


        • Use complete record field names in record FETCHes and REPLACE s when your code is not compiled. A complete record field name is a list consisting of the record

          declaration name and the field name. Consider the following example:

          (REC0RD NAME (FIRST LAST))

          (SETQ MyName (create Name FIRST ’John LAST ’Smith)) (FETCH (NAME FIRST) OF MyName)

        • Avoid reusing names that are field names of Lisp system records. A few examples of system records follow. Do not reuse these names.

          (RECORD REGION (LEFT BOTTOM WIDTH HEIGHT)) (RECORD POSITION (XCOORD YCOORD))


          (RECORD IMAGEOBJ (- BITMAP -)))


        • When you select a record name and field names for a new record, check to see whether those names have already been used.


          Call the function RECLOOK, with your record name as an argument, in the Executive Window (see Figure 22-1). If your record name is already a record, the record

          definition will be returned; otherwise the function will return NIL.


          image


          Figure 22-1. Response to RECLOCK


          Call the function FIELDLOOK with your new field name in the Executive Window (see Figure 22-2). If your field name is already a field name in another record, the record definition will be returned; otherwise the function will return NIL.


          image

          Figure 22-2. Response to FIELDLOOK


          Some Space and Time Considerations

          In order for your program to run at maximum speed, you must efficiently use the space available on the system. The following section points out areas that you may not know are wasting valuable space, and tips on how to prevent this waste.

          Often programs are written so that new data structures are created each time the

          program is run. This is wasteful. Write your programs so that they only create new variables and other data structures conditionally. If a structure has already been

          created, use it instead of creating a new one.

          Some time and space can be saved by changing your RECORD and TYPERECORD

          declarations to DATATYPE . DATATYPE is used the same way as the functions RECORD and TYPERECORD. In addition, the same FETCH and REPLACE commands can be used with the data structure DATATYPE creates. The difference is that the data structure

          DATATYPE creates cannot be treated as a list the way RECORD s and TYPERECORDs can.

          1. RESOURCE MANAGEMENT

            image


            Global Variables

            Once defined, global variables remain until Lisp is reloaded. Avoid using global

            variables if at all possible! One specific problem arises when programs use the function

            GENSYM. In program development, many atoms are created that may no longer be useful. Hints:

        • Use

          (DELDEF atomname ’PROP)

          to delete property lists, and

          (DELDEF atomname ’VARS)

          to have the atom act like it is not defined.

          These not only remove the definition from memory, but also change the appropriate fileCOMS that the deleted object was associated with so that the file package will not attempt to save the object (function, variable, record definition, and so forth) the next time the file is made. J ust doing something like

          (SETQ (arg atomname) ’NOBIND)

          looks like it will have the same effect as the second DELDEF above, but the SETQ does not update the file package.

        • If you are generating atom names with GENSYM , try to keep a list of the atom names that are no longer needed. Reuse these atom names, before generating new ones.

          There is a (fairly large) maximum to the number of atoms you can have, but things slow down considerably when you create lots of atoms.

        • When possible, use a data structure such as a list or an array, instead of many

          individual atoms. Such a structure has only one pointer to it. Once this pointer is

          removed, the whole structure will be garbage-collected and space will be reclaimed.


          Circular Lists

          If your program is creating circular lists, a lot of space may be wasted. (Many

          crosslinked data structures end up having circularities.) Hints when using circular lists:

        • Write a function to remove pointers that make lists circular when you are through with the circular list.

        • If you are working with circular lists of windows, bind your main window to a unique global variable. Write window creation conditionally so that if the binding of that

          variable is already a window, use it, and only create a new window if that variable is unbound or NIL.

          Here is an example that illustrates the problem. When several auxilIary windows are built, pointers to these windows are usually kept on the main window’s property list.

          Each auxilIary window also typically keeps a pointer to the main window on its

          property list If the top level function creates windows rather than reusing existing ones, there will be many lists of useless windows cluttering the work space. Or, if such a main window is closed and will not be used again, you will have to break the links by deleting the relevant properties from both the main window and all of the auxiliary windows

          first. This is usually done by putting a special CLOSEFN on the main window and all of its auxiliary windows.


          When You Run Out of Space

          Typically, if you generato a lot of structure! that won’t get garbage collected, you will eventually run out of space. The important part ii being aNe to track down those

          structures and the code that generates them to become more space efficient.

          Use the Lisp Library Package GCHAX.DCOM to track down pointers to data structures. The basic idea is that GCHAX will return the number of references to a particular data structure.

          A special function exists that allows you to get a little extra space so that you can try to save your work when you get toward the edge (usually noted by a message indicating

          that you should save your work and load a new Medley environment). The GAINSPACE

          function allows you to delete non-essential data structures. To use it, type:

          (GAINSPACE)

          into the Executive Window. Answer N to all questions except the followi ng.

        • Delete edit history

        • Delete history list.

        • Delete values of old variables.

        • Delete your MASTERSCOPE database

        • Delete information for undoing your greeting.

          Save your work and reload Lisp as soon as possible.

          1. SIMPLE INTERACTIONS WITH THE CURSOR, A BITMAP, AND A WINDOW

            image


            The purpose of this chapter is to show you how to build a moderately tricky interactive interface with the various Medley display facilities. In particular how to move a large

            bitmap (larger than 16 x 16 pixels) around inside a window. To do this, you will change the CURSORINFN and CURSOROUTFN properties of the window. If you would also like to then set the bitmap in place in the window, you must reset the BUTTONEVENTFN . This chapter explains how to create the mobile bitmap.


            GETMOUSESTATE Example Function

            One function that you will use to "trace the cursor" (have a bitmap follow the cursor around in a window) is GETMOUSESTATE. This function finds the current state of the. mouse, and resets global system variables, such as LASTMOUSEX and LASTMOUSEY.

            As an example of how this function works, create a window by typing

            (SETQ EXAMPLE.WINDOW (CREATEW))

            into the Executive Window, and sweeping out a window. Now, type in the function

            (DEFINEQ (PRINTCOORDS (W)

            (PROMPTPRINT "(" LASTMOUSEX ", "LASTMOUSEY ")") (BLOCK)

            (GETMOUSESTATE)))


            This function calls GETMOUSESTATE and then prints the new values of LASTMOUSEX and

            LASTMOUSEY in the promptwindow. To use it, type

            (WINDOWPROP EXAMPLE.WINDOW ’CURSORMOVEDFN ’PRINTCOORDS)

            The window property CURSORMOVEDFN, used in this example, will evaluate the function PRINTCOORDS each time the cursor is moved when it is inside the window. The position coordinates of the mouse cursor will appear in the prompt window. (See Figure 23.1.)


            Figure 23.1. Current Position Coordinates of Mouse Cursor in Prompt Window


            Advising GETMOUSESTATE

            For the bitmap to follow the moving mouse cursor, the function GETMOUSESTATE is advised. When you advise a function, you can add new commands to the function

            without knowing how it is actually implemented. The syntax for advise is

            (ADVISE fn when where what)

            fn is the name of the function to be augmented. when and where are optional

            arguments. when specifies whether the change should be made before, after, or around the body of the function. The values expected are BEFORE , AFTER, or AROUND.

            what specifies the additional code.


            In the example, the additional code, what, moves the bitmap to the position of the

            mouse cursor. The function GETNOUSESTATE will be ADVISEd when the mouse moves

            into the window. This will cause the bitmap to follow the mouse cursor. ADVISE will be undone when the mouse leaves the window or when a mouse button is pushed. The ADVISEing will be done and undone by changing the CURSORINFN , CURSOROUTFN, and BUTTONEVENTFN for the window.


            Changing the Cursor


            One last part of the example, to give the impression that a bitmap is dragged around a window, the original cursor should disappear. Try typing:

            (CURSOR (CURSORCREATE (BITMAPCREATE 1 l) 1 1]

            into the Executive Window. This causes the original cursor to disappear. It reappears when you type

            (CURSOR T)

            When the cursor is invisible, and the bitmap moves as the cursor moves, the illusion is given that the bitmap is dragged around the window.


            Functions for Tracing the Cursor


            To actually have a bitmap trace (follow) the cursor, the environment must be set up so that when the cursor enters the tracing region the trace is turned on, and when the

            cursor leaves the tracing region the trace is turned off. The function Establish/Trace/Data will do this. Type it in as it appears (include comments that will help you remember what the function does).


            (DEFINEQ (Establish/Trace/Data

            [LAMBDA (wnd tracebitmap cursor/rightoffset cursor/heightoffset GCGAGP)


            (* * This function is called to establish the data to trace the desired bitmap. "wnd" is the window in which the tracing is to take place, "tracebitmap" is the tracing bitmap, "cursor/rightoffset" and "cursor/heightoffset" are integers which detemine the hotspot of the tracing bitmap.

            As "cursor/heightoffset and "cursor/rightoffset" increase the cursor hotspot moves up and to the right.

            If GCGAGP is non-NIL, GCGAG will be disabled.)


            (PROG NIL

            (if (OR (NULL wnd)

            (NULL tracebitmap))

            then (PLAYTUNE (LIST (CONS 1000 4000))) (RETURN))

            (if GCGAGP

            then (GCGAG))

            (* * Create a blank cursor.)

            (SETQ *BLANKCURSOR*(BITMAPCREATE 16 16))

            (SETQ *BLANKTRACECURSOR*(CURSORCREATE *BLANKCURSOR*))


            (* * Set the CURSOR IN and OUT FNS for wnd to the following:)

            (WINDOWPROP wnd (QUOTE CURSORINFN)

            (FUNCTION SETUP/TRACE)) (WINDOWPROP wnd (QUOTE CURSOROUTFN)

            (FUNCTION UNTRACE/CURSOR))

            (* * To allow the bitmap to be set down in the window by pressing a mouse button, include this line.

            Otherwise, it is not needed)

            (WINDOWPROP wnd (QUOTE BUTTONEVENTFN)

            (FUNCTION PLACE/BITMAP/IN/WINDOW)) (WINDOWPROP wnd (QUOTE CURSOROUTFN)

            (* * Set up Global Variables for the tracing operation) (SETQ *TRACEBITMAP* tracebitmap

            (SETQ *RIGHTTRACE/OFFSET*(OR cursor/rightoffset 0)) (SETQ *HEIGHTTRACE/OFFSET*(OR cxursor heightoffset 0)) (SETQ *OLDBITMAPPOSITION*(BITMAPCREATE (BITMAPWIDTH

            tracebitmap)

            tracebitmap)))

            (SETQ *TRACEWINDOW* wnd]))

            (BITMAPHEIGHT


            When the function Establish/Trace/Data is called, the functions SETUP/TRACE and

            UNTRACE/CURSOR will be installed as the values of the window’s WlNDOWPROPS , and will be used to turn the trace on and off. Those functions should be typed in, then:


            (DEFINEQ (SETUP/TRACE [LAMBDA (wnd)

            (* * This function is wnd’s CURSORINFN.

            It simply resets the last trace position and the current tracing region. It also readvises GETMOUSESTATE to perform the trace function after each call.)

            (if *TRACEBITMAP*

            then (SETQ *LAST-TRACE-XPOS* -2000) (SETQ *LAST-TRACE-YPOS* -2000)

            (SETQ *WNDREGION* (WINDOWPROP wnd (QUOTE REGION))) (WINDOWPROP wnd (QUOTE TRACING)

            T)

            (* * make the cursor disappear)

            (CURSOR *BLANKTRACECURSOR*) (ADVISE (QUOTE GETMOUSESTATE)

            (QUOTE AFTER) NIL

            (QUOTE (TRACE/CURSOR]))

            (DEFINEQ (UNTRACE/CURSOR [LAMBDA (wnd)


            (* * This function is wnd’s CURSOROUTFN. The function first checks if the cursor is currently being traced; if so, it replaces the tracing bitmap with what is under it and then turns tracing off by unadvising GETMOUSESTATE and setting the TRACING window property of *TRACEWINDOW* to NIL.)

            (if (WINDOWPROP *TRACEWINDOW*(QUOTE TRACING))


            then (BITBLT *OLDBITMAPPOSITION* 0 0 (SCREENBITMAP) (IPLUS (CAR *WNDREGION*)*LAST-TRACE-XPOS*) (IPLUS (CADR *WNDREGION*)*LAST-TRACE-YPOS*))

            (WINDOWPROP *TRACEWINDOW*(QUOTE TRACING)

            NIL))

            (* * replace the original cursor shape) (CURSOR T)

            (* * unadvise GETMOUSESTATE) (UNADVISE (QUOTE GETMOUSESTATE]))

            The function SETUP/TRACE has a helper function that you must also type in. It is

            TRACE/CURSOR:

            (DEFINEQ (TRACE/CURSOR [LAMBDA NIL


            (* * This function does the actual BITBLTing of the tracing bitmap. This function is called after a GETMOUSESTATE, while tracing.)

            (PROG ((xpos (IDIFFERENCE (LASTMOUSEX *TRACEWINDOW*)

            *RIGHTTRACE/OFFSET*))

            (ypos (IDIFFERENCE (LASTMOUSEY *TRACEWINDOW*)

            *HEIGHTTRACE/OFFSET*))

            (* * If there is an error in the function, press the right button to unadvise the function. This will keep the machine from locking up.)

            (if (LASTMOUSESTATE RIGHT)

            then (UNADVISE (QUOTE GETMOUSESTATE))) (if (AND (NEQ xpos *LAST-TRACE-XPOS*)

            (NEQ ypos *LAST-TRACE-YPOS*))

            then

            (* * Restore what was under the old position of the trace bitmap)

            (BITBLT *OLDBITMAPPOSITION* 0 0 (SCREENBITMAP) (IPLUS (CAR *WNDREGION*)*LAST-TRACE-XPOS*) (IPLUS (CADR *WNDREGION*)*LAST-TRACE-YPOS*))

            (* * Save what will be under the position of the new trace bitmap)

            (BITBLT (SCREENBITMAP) (IPLUS (CAR *WNDREGION*)

            xpos)

            (IPLUS (CADR *WNDREGION*) ypos)*OLDBITMAPPOSITION* 0 0)

            (* * BITBLT the trace bitmap onto the new position of the mouse)

            (BITBLT *TRACEBITMAP* 0 0 (SCREENBITMAP) (IPLUS (CAR *WNDREGION*)

            xpos)

            (IPLUS (CADR *WNDREGION*)

            ypos)

            NIL NIL (QUOTE INPUT) (QUOTE PAINT))

            (* * Save the current position as the last trace position.) (SETQ *LAST-TRACE-XPOS* xpos)


            (SETQ *LAST-TRACE-YPOS* ypos]))


            The helper function for UNTRACE/CURSOR , called UNDO/TRACE/DATA, must also be added to the environment:


            (DEFINEQ (UNDO/TRACE/DATA [LAMBDA NIL


            (* * The purpose of this function is to turn tracing off and to free up the global variables used to trace the bitmap so that they can be garbage collected.)


            (* * Check if the cursor is currently being traced. It so, turn it off.)

            (UNTRACE/CURSOR)

            (WINDOWPROP *TRACEWINDOW*(QUOTE CURSORINFN) NIL)

            (WINDOWPROP *TRACEWINDOW*(QUOTE CURSOROUTFN) NIL)

            (SETQ *TRACEBITMAP* NIL)

            (SETQ *RIGHTTRACE/OFFSET* NIL) (SETQ *HEIGHTTRACE/OFFSET* NIL) (SETQ *OLDBITMAPPOSITION* NIL) (SETQ *TRACEWINDOW* NIL)

            (* * Turn GCGAG on) (GCGAG T]))

            Finally, if you included the WlNDOWPROP to allow the user to place the bitmap in the window by pressing a mouse button, you must also type this function:


            (DEFINEQ (PLACE/BITMAP/IN/WINDOW [LAMBDA (wnd)

            (UNADVISE (GETMOUSESTATE))

            (BITBLT *TRACEBITMAP* 0 0 (SCREENBITMAP) (IPLUS (CAR *WNDREGION*)

            xpos)

            (IPLUS (CADR *WNDREGION*)

            ypos)

            NIL NIL (QUOTE INPUT) (QUOTE PAINT]

            That’s all the functions!


            Running the Functions


            To run the functions you just typed in, first set a variable to a window by typing something like

            (SETQ EXAMPLE.WINDOW (CREATEW))

            into the Executive Window, and sweeping out a new window. Now, set a variable to a bitmap, by typing, perhaps,

            (SETQ EXAMPLE.BTM (EDITBM))


            Type

            (Estab1ish/Trace/Data EXAMPLE.WINDOW EXAMPLE.BTM))

            When you move the cursor into the window, the cursor will drag the bitmap.

            (If you want to be able to make menu selections while tracing the cursor, make sure

            that the hotspot of the cursor is set to the extreme right of the bitmap. Otherwise, the menu will be destroyed by the BITBLT s of the trace functions.)

            To stop tracing, do one of the following:

        • Move the mouse cursor out of the window

        • Press the right mouse button

        • Call the function UNTRACE/CURSOR

          1. GLOSSARY OF GLOBAL SYSTEM VARIABLES

            image


            As you can tell by now, there are many system variables in Medley that are useful to know. The following sections gather many of the important variables together into

            groups relating to directory searching, system flags, history lists, system menus, windows, and, of course, the catchall miscellaneous category.


            Directories


            DISPLAYFONTDIRECTORIES

            Its value is a list of directories to search for the bitmap files for display font s. Usually, it contains the FONT directory where you copies the bitmap files (see Chapter 16), and the current connected directory. The current connected

            directory is specified by the atom NIL. Here is an example value of

            DISPLAYFONTDIRECTORIES.


            image

            Figure 24.1. Value for the Atom DISPLAYFONTDIRECTORIES INTERPRESSFONTDIRECTORIES

            Is set to a list of directories to search for the font width files for InterPress font s.


            DIRECTORIES

            This variable is bound to a list of the directories you will be using (see Figure 24-2). The system uses this variable when it is trying to find a file to load. It checks each directory in the list, until the file is foun d. NIL in list means to check the current connected directory.

            LISPUSERSDIRECTORIES

            Its value is a list of directories to search for library package files.


            Flags


            DWIMIFYCOMPFLG

            This flag, if set to T, will cause all expressions to be completely dwinified before the expression is compiled (see Chapter 9). In this state, when the system does not recognize a function of keyword, it will compare the word to a system

            maintained list to determine whether the word is a macro, CLISP word, or misspelled user-defined variable.

            An example of swinifying before compilation is to convert an IF call to a COND. before they are compiled. Undwimified expressions can cause inaccurate

            compilation. This flag is set by the system to NIL. Normally, you want this set to T. For more information on DWIM, refer to the IRM.

            SYSPRETTYFLAG

            When set to T, all lists returned to the executive window are pretty printed. This flag is originally set by the system to NIL.

            CLISPIFTRANFLG

            When set to T, keeps the IF expression, rather than the COND translation in your code.

            PRETTYTABFLG

            When set to T, the pretty printer puts out a tab character rather than several spaces to try to make code align. If NIL, it uses space characters instead.

            FONTCHANGEFLG

            If NIL, then when pretty printing no font changes will happen (e.g., a smaller font for comments, bold for clip words, and so forth). The default is the atom ALL, so different font s are used where appropriate.


            AUTOBACKTRACEFLG

            There are many possible values for this variable. They affect when the back

            trace window appears with the break window, and how much detail is included in it. The values of this variable include:

            • NIL, its initial value. The back trace window is not brought up when an error is generated, until you open it yourself.

            • T, which means that the back trace BT window is opened for error breaks

            • BT! brings up a back trace window with more detail, BT!, window for error breaks

            • ALWAYS brings up a backtrace BT window for both error breaks, and breaks caused by calling the function BREAK

            • ALWAYS! brings up a backtrace window with more detail, BT!, for both error breaks and breaks caused by calling the function


              NOSPELLFLG

              Is initially bound to NIL, so that DWIM tries to correct all spelling errors,

              whether they are in a form you just typed in or within a function being run. If the variable is T, then no spelling correction is performed. This variable is

              automatically reset to T when you are compiling a file. If it has some other non-

              NIL value, then spelling correction is only performed on type-in.


              History Lists

              LISPXHISTORY

              Originally set to the list (NIL 0 30 100) , with the following argument

              interpretation. The NIL is the list (implemented as a circular queue) to which the top level commands append. 0 is the current prompt number. 30 is the

              maximum length of the history list. 100 is the highest number used as a

              prompt. This is a system maintained list used by the programmers assistant commands REDO, UNDO, FIX, and ?? use to retrieve past function calls.

              To delete the history list, reset the variable LISPXHISTORY to its original value of (NIL 0 30 100).

              Setting this variable to NIL disables all the programmers assistant features.

              EDITHISTORY

              This is also set to (NIL 0 30 100), and has the same description as LISPXHISTORY. This list allows you to UNDO edits. You reset this the same way as LISPXHISTORY.


              System Menus


              System menus are all bound to global varieables and are easy to modyfy. If the menu name is set to the NIL value, the menu will be recreated using an items list bound to a global variable.

              To change a system menu, edit the items list bound to the appropriate global variable (system menus use this items list with the default WHENSELECTEDFN ), then set the

              value of the name to NIL. The next time you need the menu, it will be created from the items list you just edited. The names of system menus and the items lists follow.


              BackgroundMenu

              This is the variable bound to the menu this displays when you press the right button in the grey background area of the screen.


              BackgroundMenuCommands

              This list is used for the list of ITEMS for the background menu when it is created.

              WindowMenu

              This is the variable bound to the default window menu displayed when the right mouse button is pressed inside of a window.


              WindowMenuCommands

              This is the list of ITEMS for the WindowMenu.


              BreakMenu

              The menu displayed when the middle mouse button is pressed in a break

              window.


              BreakMenuCommands

              The list of ITEM for the BreakMenu.


              Windows


              PROMPTWINDOW

              Global name of the prompt window.


              T

              Although the value T has several meanings (such as universal TRUE), it also

              stands for the standard output stream. As this is usually the executive window, it may be used as the name for the TTY Window at the top level. Mouse

              processes have their own TTY Windows. A reference to the window T in a mouse driven function (e.g., a WHENSELECTEFN, Chapter 12) will open a TTY Window for Mouse.


              Miscellaneous

              CLEANUPOPTION

              This is a list of options that you set to automate clean-up after a work session. Example options are listing files, or recompilation. You will want to keep this set to NIL until you become comfortable with the machine.


              FILELST

              The list of all the files you loaded.


              SYSFILES

              The list of all the files you loaded for the SYSOUT file.

              INITIALS

              An atom you can bind to your name. If bound, the editor will add your name, in addition to the date, in the editor comment at the beginning of each function.

              FIRSTNAME

              If this variable is set, the system will use it to greet you personally when you log on to your machine.


              INITIALSLST

              A list of elements of the form (USERNAME . INITIALS) or (USERNAME FIRSTNAME INITIALS). This list is used by the function GREET to set your INITIALS , and your FIRSTNAME when you log in.

              #CAREFULCOLUMNS

              An integer. PRETTYPRINT estimates the number of characters in an atom,

              instead of computing it, for efficiency. Unfortunately, for very long atom names, errors can occur. #CAREFULCOLUMNS is the number of columns from the right within which PRETTYPRINT should compute the number of characters in each

              atom, to prevent these errors. Initially this is set to zero. PRETTYPRINT never computes the number of characters in an atom. If you set it to 20 or 30, when PRETTYPRINT comes within 20 or 30 columns of the right of the window, it will begin computing exactly how many characters are in each atom. This will

              prevent errors.


              DWIMWAIT

              Bound to the number of seconds DWIM should wait before it uses the default response, FIXSPELLDEFAULT , to answer its question.

              FIXSPELLDEFAULT

              Bound to either Y or N. Its value is used as the default answer to questions

              asked by DWIM that you don’t answer in DWIMWAIT seconds. It is initially bound to Y, but is rebound to N when DWIMIFYing.

              \TimeZoneComp

              This is the global variable set to the absolute value of the time offset from Greenwich. For EST, \TimeZoneComp should be set to 5.

          2. OTHER USEFUL REFERENCES

image


Here are some references to works that will be useful to you in addition to this primer. Some of these you have already been referred to, such as:

  • The Interlisp-D Reference Manual (IRM)

  • The Library Packages Manual

  • The User’s Guide to SKETCH


    In addition, you can learn more about Lisp with the books:

  • Interlisp-D: The l a ngu ago a n d its usage by Steven H. Kaisler. This book was published in 1986 by John Wiley and Sons, NY.

  • Essenti a l LISP by John Anderson, Albert Corbett, and Brian Reiser. This book was published in 1986 by Addison Wesley Publishing Company, Reading, MA. It was

    informed by research on how beginners learn LISP.

  • The Little Lisper by Daniel P. Friedman and Matthias Felleisen. The second edition of this book was published in 1986 by SRA Associates, Chicago. This book is a

    deceptively simple introduction to recursive programming and the flexible data structures provided by LISP.

  • LISP by Patrick Winston and Berthold Horn. The second edition of this book was published in 1985 by the Addison Wesley Publishing Company, Reading, MA.

  • LISP: A Gentle Introd uction to Symbolic Comp ut a tion by David S. Touretzky. This book was published in 1984 by the Harper and Row Publishing Company, NY.


    Finally, there are three articles about the Interlisp Programming environment:

  • Power Tools For Programmers byBeau Sheil. It appeared in Datamation in February, 1983, Pages 131 - 144.

  • The Interlisp Programming Environment by Warren Teitelman and Larry Masinter. It appeared in April, 1981, in IEEE Computer, Volume 14:1, Pages 25 - 34.

  • Programming In an Interactive Environment, the LISP Experience by Erik

Sandewall. It appeared in March, 1978, in the ACM Computing Surveys, Volume 10:1, pages 35 - 71.


Each of these articles was reprinted in the book Inter active Prog r amming

Environ ments by David R. Barstow, Howard E. Shrobe, and Erik Sandewail. This

book was published in 1984 by McGraw Hill, NY. The first article can be foun d on pages 19 - 30, the second on pages 83 - 96, and the third on pages 31 - 80.


image

Medley for the Novice, Release 2.0

25-1

diff --git a/docs/html-primer/Medley-Primer-OnePage_files/headings.htm b/docs/html-primer/Medley-Primer-OnePage_files/headings.htm deleted file mode 100644 index 02298456..00000000 --- a/docs/html-primer/Medley-Primer-OnePage_files/headings.htm +++ /dev/null @@ -1,47 +0,0 @@ - -Headings
Headings
Release 2.0BRIEF GLOSSARYPREFACETYPING SHORTCUTSProgrammer’s Assistant If You Make a Mistake TABLE of CONTENTSUSING MENUSMaking a Selection from a Menu Explanation of Menu Items Submenus Summary HOW TO USE FILESTypes of Files If a file contains: Then:Directories Directory Options Subdirectories To See What Files Are Loaded Simple Commands for Manipulating Files Connecting to a Directory File Version Numbers FILEBROWSERCalling the FileBrowser FileBrowser Commands THOSE WONDERFUL WINDOWS!Windows Provided by Medley Creating a Window Right Button Default Window Menu Explanation of Each Menu Item Scrollable Windows Other Window Functions PROMPTPRlNT(PROMPTPRINT "THIS WILL BE PRINTED IN THE PROMPT WINDOW")WHlCHWEDITING AND SAVINGDefining Functions Simple Editing in the Executive Window Using the List Structure Editor Commenting Functions File Functions and Variables: How to See and Save Them File Variables Saving Interlisp-D on Files (FILES?)(MAKEFILE ’MY.FILE.NAME)YOUR INIT FILEUsing the USERGREETFILES Variable Making an Init File MEDLEY FORGIVENESS: DWIMBREAKPACKAGEBreak Windows Break Package Example Ways to Stop Execution from the Keyboard (Breaking Lisp) Break Menu Returning to Top Level WHAT TO DO IF ...Executive Window turns blackYou closed the Executive WindowMouse disappearsSecond window appearsYou keep getting beeped atYou cannot delete the first letterYour function is just sitting thereA Break Window appearsYou have run out of space(GAINSPACE)A redefined message appearsUNBOUND ATOMUNDEFINED CAR OF FORMYou have traced APPLYWINDOWS AND REGIONSWindows CREATEWWlNDOWPROPGetting Windows to Do ThingsBUTTONEVENTFNLooking at a Window’s PropertiesRegions WHAT ARE MENUS?Displaying Menus Getting Menus to Do Stuff WHENHELDFN and WHENSELECTEDFN Fields of a Menu Looking at a Menu’s Fields BITMAPSDISPLAYSTREAMSDrawing on a Displaystream DRAWLlNEDRAWTODRAWClRCLEFlLLClRCLELocating and Changing Your Position in a Displaystream DSPXPOSlTlONDSPYPOSlTlONMOVETOFONTSWhat Makes Up a Font Fontdescriptors and FONTCREATE Display Fonts InterPress Fonts Functions for Using Fonts FONTPR0P Looking at Font PropertiesSTRlNGWlDTHDSPFONT - Changing the Font in One WindowPersonalizing Your Font ProfileTHE INSPECTORCalling the Inspector Using the Inspector Inspector Example MASTERSCOPESHOW DATA Command and GRAPHER WHERE DOES ALL THE TIME GO? SPYHow to Use Spy with the SPY Window How to Use SPY from the Lisp Top Level Interpreting SPY’s Results FREE MENUSFree Menu Example Parts of a Free Menu Item Types of Free Menu Items THE GRAPHERSay it with Graphs Add a NodeAdd a LinkDelete a LinkDelete a NodeMove a NodeMaking a Graph from a List Incorporating Grapher into Your Program More of Grapher RESOURCE MANAGEMENTNaming Variables and Records Some Space and Time Considerations Global VariablesCircular ListsWhen You Run Out of SpaceSIMPLE INTERACTIONS WITH THE CURSOR, A BITMAP, AND A WINDOWGETMOUSESTATE Example Function Advising GETMOUSESTATE Changing the Cursor Functions for Tracing the Cursor Running the Functions GLOSSARY OF GLOBAL SYSTEM VARIABLESDirectories Flags History Lists System Menus Windows Miscellaneous OTHER USEFUL REFERENCES
diff --git a/docs/html-primer/Medley-Primer.html b/docs/html-primer/Medley-Primer.html deleted file mode 100644 index c92200b5..00000000 --- a/docs/html-primer/Medley-Primer.html +++ /dev/null @@ -1,2 +0,0 @@ - -Medley-Primer

Next >

image

 

diff --git a/docs/html-primer/Medley-Primer_files/Image_001.png b/docs/html-primer/Medley-Primer_files/Image_001.png deleted file mode 100644 index 134a8b09243b0e5fe3d5b22590124bb33d157629..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 772 zcmV+f1N;1mP)AXlhw z(aU7nt&h{Sw?2$-5%>xQ3Inm!MWKLZW++mQ3j}=w7*9{)XDCtfqe^Q{?nP@&N-4Cz z`{->gyWMVIPp8xOyGbl~7)q`6X7TibcIYvb3|fZ0Go8cX@Nzz%pFbg%1rI{;PLjw% zd$PK3)V9gV5;L2yNZ!WGHV5O!HWJd0a<;s^KGYwX4`v_nzR~GIXcDt0LnOG2J(gHZ ze`XRQK)y91i|CEBM9yxG2*7PHn5DYXA7ND{XM!y(+yP_(iEiiHOVWQ*jGlqJ~|Qo64DZ3`9z zC}uXiwxeq&*@O{v7*H1Jw%V}Rn60|b`iS_E+l-H!(pTdc#T?1!#GB#1yI;8*-?BmQ zZ3ceeOk8^%FE`PTiJ-p-=+pnqU9$o7*9CNyUq5Dc9Sex zSFF-$SrJp8C3Q1#c+Ls6ovp?h?K-HRja$V$C#I``T0w7#*2L!6MqFyuMT7oG%qTaD zCwS)dQM1d&l*#>uXMH>#zXnPR7FZdE;pL(f8^?dU=yYGo{Y3M6OgEAvC+cD>sLSqA z7kx1~`cr%?Zq%C-zv^Qg3MxMqGs};0p!_Bl6=cR(^|wMzf~>7sZg5-pTYb0qh!)hG z{;Zto`FvK&z>}$&UvtPNpzn+1EFskQK1wM!33{1&h^-R@c|BLnC)zPC6(8;rYDZK& zwOH_(UvoH}PM;|Af_H({YBlWl`|po%V0D9M5?FSzFJo2?M)f|^jeK|>CFAc*t*a_1 zRS~J`LyZ^mB3}*Bct?7Ove|5YT`rdo?E8v+%iI{h?ksEL4=F0M3TasaIH-zKwYBnW zPWjGsS-$=rb7l{0PR>!hIDxRmYu3jWQL?3 zI~wzq(OdU@|M_XrEO;2(?e^#4aQK!vC^NgCsO(kC>{;J+$FrCJlPvg8vD@u_oX_Wv dk08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer_files/Image_004.png b/docs/html-primer/Medley-Primer_files/Image_004.png deleted file mode 100644 index 33c6b56e87689636203c4aeacfc71a8e69ae74bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 488 zcmVP)aF7D6Eiy`0k$-2Vn^ z4>Wk%BLczSC?=JPUbrFo4H^Gtv8~_@buDbo(Ndo;Lp42;yCH4{?%cE_&Jd=~ z9f4f@S!WvaMg)wcs9ZhEj_g`_-0FP{BId?}Q$m+}U zVPIGZOmD3`XGV4vTOAh<>G}@wzw?oyBs( z=~T#HotsgWW^o+l##}TO!*%M*4^6TOXJ?FAcTE2qaD$C6N$<|?EC#~!4Gd8?U#CoN efcP$MlCOPMxA!O+=x}k) zBrDb*$dJ)I?GFGVZ&2Z{v;P=`?}d$ep6uX>^RA zdPDssSdLFP`-)IwuljJBIP%jeV*dbzJNr^`n@s2OxAShR7oijWY#SeCKFI;{Z>7)x O0000$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_007.gif b/docs/html-primer/Medley-Primer_files/Image_007.gif deleted file mode 100644 index f609c047f1b9702282a92a8d4bc15516d9571052..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98 zcmZ?wbhEHb6k!l$XkY+=|Ns9h{$ycfU|?j>0r5dH3`~|S{VT=Z{ui0^j>S8=>jhK4 y0r5dH3``a+{hbHj*3K(wTg$NEtVPn@ w+^gxiO2;QYp1SBA*SfguvI5ClldZod|Np_LxH9o0r5dH3`|xoeJi=PotK)k&~w+DqaN>* zRp+VaJ?5ypy0S6*#Hy5AX|d`nSMJ^)nai~(WqQELMrWz`6DrRaR=bI^GFSru^5!Fp diff --git a/docs/html-primer/Medley-Primer_files/Image_010.gif b/docs/html-primer/Medley-Primer_files/Image_010.gif deleted file mode 100644 index c3a529bf8c800d9b097df5ca44c4e323c5a55f6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69 zcmZ?wbhEHb6krfwXkY+=|Ns9h{$ycfU|?j>0r5dH3`{aD{VPweWn5gd>5`N_pH%tm ToJftLB|m)6o!aKX$Y2csRE-ox diff --git a/docs/html-primer/Medley-Primer_files/Image_011.gif b/docs/html-primer/Medley-Primer_files/Image_011.gif deleted file mode 100644 index 8725aacb4da82d6dc1e3ed4a1b8207175a061e06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1973 zcmV;m2TJ%yNk%w1VORm?0Du4h00030|NkNR1OWg50RSuj000130pIZ0V*d5M{MS;N`s`3V{-I!an`ufTRJ4;(@dyAW^yUT0F`wJW_ zJWO2d>T8^=yv*F}42t|LJxyJ0eHwkOz0KWCob4ShK2B~5UXGrw-hICA{tj>49#3Cy zKRbV~zt0aX)(@1B{u>-+Mf3O(V#bjq zRb}HSF`}4=2X~Zw2~*U=j-OU`>OnB3&Wt&C`uqv2C(xlp&9N+sG$|>eN}DD%W3$H5 zmJ+cQQ#jSBR)0(;jsn@$rL2}4JJR7)wvZ>RUbnjCN|hi=k5b#Bt(($rO{!AOzWpl` zW!|a?zZ9-I^`A|_1^KQ83>j|Juz0&F)?1lu=9`S6MgEL7E9lV;nUX$z&ot`Q@MijL zB6bT@(X49&d-yo_UB|Y2-^NK;>`WY9Y5P8|5jf`M6IC)t4m~;HqnDfSHXc2Ds^Mz; za;B+0y!7DX#hYiP`n>vK>DRmOh5fyJhw>q+y60Dkq_dDq?t;iWVm5qJJ>P z7$Jx>4k*`M#--(qjW=$SV;7EP$QF4<1_t1d_5}Iiki^k-WQlFfsH8efW;oaq6t);; zW-LiTWtG!hsik#7Zi%LpYKl1!ZO)CQ<7|_4S&NTsj_IbIy6Ac5J7M-2-k*SG2jdg4 zK{=gBH|aIoqMN~1VNJLV8jGFaDHNMxbHTZnk(XZA8HjUIS}A%S3Nj~KaO@VBq;^d< z)`O{%%AcjD5{D*ThC15ncbJkT$T2PQNojvH-Escwt-G>1Duur`nd^4L(uy9j-=t&h zpaEvP54W@mN^Ni3;u9`XGd|mEW1V98Dw2yj2W`1~+G-|>kt)ZlK~YWGWV5)gDX&TN zk|ICVz@7omJv&6=sAyyRXX3R%Bg~ zYGP#;y3{glj;9n=cQQr!Qhnyd1uX`2z+5BfHOcJ?{bg{ms#@^SV5S-F+DUQ=9e^y`iwhrlQ z@Phq}@8d*`x7=#UZZNM5s;f2JPr?;1?A0|ZJDyGn7JjcrTir01xW8ZKnGJWZ+xgSN z>a*(ZFb}W>p)7XTXcX&KQ9SQJDraHnoAn9^Ic>nqf7_v81S5CBUYN^*7y4W9E@ip} z7Uh8uqT2w;W3-r%@I}GJ)GZ~RBh5g=DbI_&&xTd= zm`YHRIyI`NQ7Tmv3eKxWhGSYq4OhEr(R_k+oKPJrR?T|PvZ8ezR$Z%6-Re~U9uuxH zoSyUON)(846t8)8C?WaE6SV?19Bm!!H41CkY9KbT>SOF%7VFp^2{y9UfGlNuH`&WJ zR=yRwuaKZFzi4 zlHLNhRKpFfY>Sg?3*jOcfyZ4gKAP)X;zswM(4B6ztV><&Cb7EO1rT?;YZUN?^Sk0L zV|fdDUi7B7p6g|AdzVVy_qt5JlZ!8X|9D?3**Cw+1r6Nk%w1VG99e0Du4h00030|NkNR1OWg50RSuj0000B0c8LH0{(=LsmtvT zqnxzbi?iOm`wxcVNR}oLoa)N9S^&dmn$W0C+mP<|{-4qDLPH$RG6X7@%!AO7lHH`J z8}t~vQma=d^qY0cjMU?|iB5B#)+izeKbOxnu3K(4((T^8`VY7hW44#m$Jdv1cZVqV zR_NuH6i8XgRd?8!_jvhexS7bwRwZd^YO2WTNEf%NFxseTm`QkQ`q5z<~q>59_AJS?YC*DX%keE-jB@8vtZNq{-nerKK?_LD__%+Ydr!@b5hy3~)bK38(27dr5qs2J}9*AIq P3NFZCgX0XCPXPcsa5XI@ diff --git a/docs/html-primer/Medley-Primer_files/Image_013.gif b/docs/html-primer/Medley-Primer_files/Image_013.gif deleted file mode 100644 index 59e164f9a4006ace0c267f51b22dc9b8af5c3e3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 836 zcmV-K1H1f3Nk%w1VMhRl0Du4h00030|NkNR1OWg50RSuj0000-0EPen0{(=LsmtxJ zf}FJ4i?iO-@DGNeCk9AYrWiR=fb^wl@l9?pgHR~C5jVg|!>bNj)5Sig{j$=MlRO*}nT1 zUO$b$cdu`gocOHYI5yP;4zyGX;5HQe)VMQ+%}YFb2-Er5VUFUG{#rsnWt{Twi#KxW z!2N?V=~0h~%T5~1(D3C7monege8Vq7&792)@+_DIp14)3TvdxTY1TuMC86OA2@xp6 zr|7;x>S!zEMTH}Wf_zCcn828=Ze|PH6Q823RoJyv$_|)Iv;m)}6bc5>qLg(j)h#*F zW8Q(@BD&oIP_GV=7|UsTw&^cZWEr~_4tyAKTvT}rOZt|Sl;kKp@RDZO7jI_Gyr$4W zThU(-*f+_76>IJ!ZI}*oySCR^)oEzgCf?f#)(nGPiq?|Z)0Zu58ujf7J#)KLxq4}>B8Dr z1P(^pbPBaZ5E7PgmK0GfbhqAAiG>wTDBz(|AzT|#=-ze^UWgt__~mDyOf7=7n~O2R z=#O3j=5pU^YT;;XmQ{_{l!tMS2xx|U z`1w|#+DWBVo}n#jm5ycgCnBX^T6!s_`)T${Y<6^-+){H$$Z2JvcF7!&)xn~icUT$u z9;AF?7%Nid!DrN?*hN!ftFb1jVRT0+N}hS`>FOSxu*A;u*m<&)b6jai1!Ej;zYTcg OfDmlUZMWVQ0029iiI&6w diff --git a/docs/html-primer/Medley-Primer_files/Image_014.png b/docs/html-primer/Medley-Primer_files/Image_014.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_015.png b/docs/html-primer/Medley-Primer_files/Image_015.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer_files/Image_016.png b/docs/html-primer/Medley-Primer_files/Image_016.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer_files/Image_017.png b/docs/html-primer/Medley-Primer_files/Image_017.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_018.gif b/docs/html-primer/Medley-Primer_files/Image_018.gif deleted file mode 100644 index 22f74d3a276cb52ca53a0187b115b2a3cac0c971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcmV;O17iF~Nk%w1VdMaG0Du4h00030|NkNR1OWg50RSuj0002w0CWHV0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_Zo$e1qYJ?BA-8L6*DcM=HoY^HVEQp_ru2pg;y0d zg_u~@1sF+aX<-=1<{@uo+#Cxn?e;8PJ&m2My?w&#{S6*2K2Bb4evY25zD`ce{th26KTlt8 z?rxv2zt7(fkMA#_z<~tm0W63xp~8j0a4>ubF`~YM5-VD~2#zAg{*4?ZYU~IyB*Bj& zOPaJt@}$a@>Qb_N2{WUwm^5pKb7?c@N}M`-isb1t=tiJIi+Y@yuN4?XUT{#<=u3%F zhD7fU%qRIXq5UX`1S z*V?9Y6Ot927tOJzX1nU}3z%sft%M8HMOt<*T)htEdhYBvGT&pwB3tHn80}`f-uz0g zjOVLb$FC`$4wzao?X-Mo5n_|mU`-5TYaDVzI$CSa9R@CfkPWVYUZjta&&XWg$KX&}Sxc zXklVwsAe5sXSwFuaKx23qfGlv=7VCC^u{A-yurp~kZz%NDh?R_6Dd{7LKsu>k zXo;yNC76=6_}CpUF4RPJH%R)1QFGB>Zf1GxT-KRbkDk?{$mWt7-s6vUEVCNo$y~npz{6H->rVt%l8dSCz2(nhvHTIz@LZu0z_Y>zBzMwd{_eKD*Gc)Q;5Z zwJKSwEpFL%TN1b6qW0~$Ach8O&t}Aav=++z0z4*SP@4oBw>u<5~ z23+mH1pi9!!3g)NFhT$~{A9uqGiUI`-b!q-KM!ZzCCBq}19HeBk4$pO1poj$p@7>K diff --git a/docs/html-primer/Medley-Primer_files/Image_019.gif b/docs/html-primer/Medley-Primer_files/Image_019.gif deleted file mode 100644 index aae710d5abc3d79fd2adc4eb25bfb62420088b00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 916 zcmV;F18e+8Nk%w1VdMaG0Du4h00030|NkNR1OWg50RSuj0002w0CWHV0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_Zo$e1qYJ?BA-8L6*DcM=HoY^HVEQp_ru2pg;y0d zg_u~@1sF+aX<-=1<{@uo+#Cxn?e;8PJ&m2My?w&#{S6*2K2Bb4evY25zD`ce{th26KTlt8 z?rxv2zt7(fkMA#_z<~tm0W63xp~8j0a4>ubF`~YM5-VD~2#zAg{*4?ZYU~IyB*Bj& zOPaJt@}$a@>Qb_N2{WUwm^5pKb7?c@N}M`-isb1t=tiJIi+Y@yuN4?XUT{#<=u3%F zhD7fq5|^1Ui| zkGHi==O!e}YmBhOcE7y++ca=kxPH4D7Kk`M6(4RJLjtmUH)GSDi{s9Xv>x$@%a0pO{yb!J=klsr?Kqu!JnP!K zujB4Lyw$(Z#hXV5@b>xjicXFtyQG#|l6sMpfD(a|omTKyzZl=o8qnQ4{ zs&sV`_y>WpawO?ljiGugLXx%yV6V7p$>o{CUgU17uE+kw>#`?(>a4HLM$7D~)P`#9 zwa8AZ?XcN)d(^k!LImx&{FH0%MBJtuZl>&REAG3}#w#yf^wx{ny7-Qz@4oZ8>n~OP q20ReD1UGr_!AT9QFmeeu{M^G3Zz%D^9dd(l#u{(TamN4@0027x1J(}! diff --git a/docs/html-primer/Medley-Primer_files/Image_020.gif b/docs/html-primer/Medley-Primer_files/Image_020.gif deleted file mode 100644 index 612f779529e3a7ea9925c904c3ca7b0f0940907c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1816 zcmV+z2j}=lNk%w1VKD(70e}Di00030|NkNR1OWg50RSuj0000n0UiMW0{(=LsmtvT zqnxzbi?iOm`wxcVNS3A*r0Es_te6oV+I4>R{tpZ)UX2xO!7~zhh~=&MAPT3{ zs&yheC@HaJ4;(@n@M)7yUW|_`+J)U zJWO0{d|WGxyv*F}ysZ2zJxyJm8f~4ey`7EC{S6)t>@8kye!fbMzRupRsqP*xZw^0i ze{WsiDd?rt6*B`{E-?5Cwu7e*&C}fZukKtncHY{z z;||>K2`kgy&(o{q~psZ<2=C-G2B4DBx!V7FgMV z2rj1Jf`c{a;9d|$c-Mp!&Sl|+{An0nh8(Kp;fH30C}LP7>JW%VoVm0UY4w%3%ZZ4I zp`v*6fz}v|&cFvOBk82^RB9<&nKJn3rZZvc={cZ=TF$7XhGXifG^tu)r>qu~ z>Z=vWDp#zu^5yES^4O~DGrabSWUj!n^Xst4$Oit$UqtE<5DtD>RP2!_b(v9GD~9wD zAy?*T?2lCn309Mst@N#5&B{TpFv6;uWKUZhSFU)?I;7=s-6|K_dOE>tF1?xQ#I2zB zT6c|Q$*g-Sc-KLQaKa4_yeh<3@u;uFux_iO#RiS(n8q8U^q9aNYdU1cBUAeD$l-q-LRT{_fJbY?^U~freJIo)Kj*X5 z;7As3%2v<0q{&-zBOI1rUk$R@V}osEwP&Nf_N7|4?eg1j$6WIktufoL6neLqx4bO= ztGBKvl^M98qp9nn(OX3pCf-dG=bn{W+y0%bl?{Za*dwKE&DECT9BTd%3La+^>zFz^IoGJhe*a zjel+Z&-y>4%`bqliPr!L$h;d75KiN&-2!_Nw(31FMrD)W1cQ;b10qm^7i?VzxA(#2 z)htD(dk$GRc(0_n>ksoGpUC>RKI-kvc3^_c=l&PEqA}@)i1S(i^+7nql&ptyn4tTD zcf{W%ac)b5o5J>$INafmgf_ZJ{t=s49ToN@do)Dc$S-={uri8GJ<&c;s z$6DfvOr^t-E_caCqXqMqOHt(lS-CZ2T1}Z!3)?u9L#5)q%9-}^h6C{^MAzkva4s~` zW7@bWD0wfNCgYqA(HE}9!A^mso0K>WIn2pjiIVB5COP?~z-iv;o1IhRcvQkVO0FlL ztYRkA49ZAjZjhJ^WGDpn75YPn;!vV6q$vInx-^Ww(W2!WA4hxU%1Sy^Z31oKM+qsE zY^Cm`FbgS5TL#I?XjGpgrC?2UF;kElutqQ4Xf|t?rJF*eYeF66JeyQhg7vaSNmXi7 zKlxOsM%7I{6<^&5@l;4^(~6u+>L8)z#jX}rs~zE^9mi@?{#mZ763Zz{rwR+V&g_wJ zHCSl~T31;@Po#N`U?=n1xTU@lur7iUTN6rH#w7M>i}l`NCD~ZVx(-^A)!93?3fTC> zGqPlrtFb%_)5j`Nw5P1BT}|s$)D}~qO9w%o4oqt#3$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_022.png b/docs/html-primer/Medley-Primer_files/Image_022.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_023.gif b/docs/html-primer/Medley-Primer_files/Image_023.gif deleted file mode 100644 index 0ec8cc6fc8f2e9c372d471d8def2ce256f608d61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 792 zcmV+z1LyolNk%w1VTAx;0Du4h00030|NkNR1OWg50RSuj0001m0AT81#Irj)|?*jIPSCDeyJelHYCDo!K89zr0JZ` zR?kPRey}DaH>&karC})T=oRv^w|B&-VZ;WB=7LoBNEnrAsrE@aI#+tCIwQL3x|I4Vi_$u43l)2-TatUCP!-B& z*j7s`N97gT`%>(ihbd{ZoHIQKGML!od09!urA=IoYU0)nPI)DKzRn3KUi3}^Mo#&K z{pX0Dt<}tYNuSOhGJWX+?gJLjSs-?B)Nxx^P+O!j{meXMcX1)a{)p{yXGKk6PpvWPQUI;7HF+dw$?7@iwIXGB)a3Ug59)- z6V|GH`xY5yl}O^byA}&=T(~Jh$wnPhRxHhHxfqdG{?q)@pHGq+Tc8ZPSrKZnCn;QCE?s+#@yCNRZ-v!)}Ar?U51Dr zlOcFbg9|cPNNfCb1|eq@RtOu0ZXJlw0wwk4p(mDE6q;)aW|NA2uDut=H25{f;S zR$6MK__th#0(zI5OBX`b(1;G!WupxnYDbI+G!`hGOu8j`R)m(&DCCI=qB!Jkn5{Np zh|z)gi-gj5(QFFnJnE~vN#kgLFlJR>w)-Rf>9`kVr|NGI74Mg$s#$>LBMTRDR@ z-l>QcW|PQjv%9T|d*pFhi%x^pHZGZFY?`mOGK(PE4O)?TYJlzYkT{f zy1UY=n)zjXWa7FE)CSy(94))c$9%MTP0MYZsitg=%kAUb7M?v7%)5+DtgXzetv)N< zy$$b-jovJMo^0+HAA0p_5sZg0p($z#8!BYzFrv4E5-YB~Qf)uv~lU4MrH~&8}XjHk3TMa=MR~F_#uQWvo!opEG}^ zX%VzUkFMRG7Oc27?uWG{?H1X4<8Q#hSt1sCc*|PTRkIFsXOv6j+j6NxDi`=!=Rx6$ zLl^#h`uBvgjdK>gGyQn#hOKWr?Dfi4s}tD|?{5FTzx?|C>*?-)RY;nB1Q>2E6~@|t zcfADKNXKQtU~0+b^b<`?`4Yur-=yFZRF4tZ*f(=I*ob*Mk!BJ+rA;&9Q}~!zVN{)6 z7NK4veHdSdj-goKa+~S2VMu31qM|x0<^>>S!tM26T(t35UXt}msTh*8@zvLXRhoxa zjk9$mA%DlzRM9^;CWwxRVycB5mgJEM*NGKIM&CnNowsIVJ|a|3SW$+y8kM=_DJYnP z7FykXhyEBSpT2RnsEJJugJ7hz47p{Z*SMLcU5=_Iot$r~`Q?u6ApWoN3!uDaDc(YACf zwaEm=E1c89sMU#wdZ{e6XHH64uZBWlOATL)Yo)N{p)2pR^-d|}q8Qo7DM)B0>#2g4 z%F39lJyutwblBqgAB*mp8Y(_Gs#oyB&8A3|xRCZssk8^1yPb@preyHP8qXIVR}=%> zD28Ds_91*F2god21N(I|&2_1JZ+kuSN|*{imzVQ`LF>sAd|kDBYs*l0t>#&u8JDH?F64hv%-0y1jz;^Z0g2hbc8g`}UVO;BnIBci_qYy}T|QD|w}* zB#zlu^UyncX`j(YpPd{3&YL)7C)-S~W@3N;sj9DYyZxXq3tqJK_sUM{aZeZDJLj;^_$)5Wwt+7H;|Fi2Qvc!-#&xL7Fn z#s~?r;D~6oNGW-VdAKR}BnV~sMc8@wm>GnsI>}n{!!zf4`p_D~1gj&9ds2((>7=`Q zJ8b)^%0{_aNqiLvC+rA{6-ixfeT}UcxQ)!s7g85z2Nb#HGCvV2|k@e>%2;248{MnQQP#>PB_^3F(<_N?Ha5Dj&ZaI?ekW4n+d KpJk&~0029DzLItT diff --git a/docs/html-primer/Medley-Primer_files/Image_026.gif b/docs/html-primer/Medley-Primer_files/Image_026.gif deleted file mode 100644 index 27e420ea40dd884053a32c5145cc25214ddc9fa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmV-C1H=4BNk%w1VF3bD0Du4h00030|NkNR1OWg50RSuj000010#g700{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8A5zO|D=lag?!CxZ<5y2nLFnlC?%%<}RjS7#W zC7?L8Dy7`6_Y3Z2kwCKXT1FqwY9d)tY@6BXD^(lL>-YSymF{*Xh;+vgH)cneC`aYi z_Xrs&sq^PZh?t0ocUY*HRC&2LIZ9e;$^ohvsv74B@yW`Xx`=mbdy7jti#8Z*$HoZf zhzUdoOq-jmyv)4S{0to}-BLSkeT^+yyv^P1{S6*2K2Bb4evY25zRuq6{th26KTlu3 zu9}^%zc1a&{|_)=saD6dm8e6lO0@(F1v-?%=~P2e5+-&jD6G-L{*7NEG9+e(2u2zs zLz+BU;}am2SxUYkxv*q0ku7NfTUo6RLO3`@Dls+&C{36gi#i~v#otS%KMiFB#dMf2 ziWx1vGPDE>!>wFb8sb~RdTZ7p-hT+g9fXC~cC^*k=G zdw-VwyZG_q!;?Rc-l+NX?A!BO?>@f#Xz=ITzkjPf{{8&^A?fcAV1U}8CSZXEa`E4R z3N9!^f($+gAqoygNMVH@OlV<-8d8Aah8}+S6o?{@SV4y*o=BmID6Y7miY&e;po=ih zxSxzP-YB1qIPRF9jy(QY9)Um(iJy-|9=Vp0NG|!1l1x7NkCRYNnT?cGUfGY3SZ-OA zm0W&Fot9vZ`JR|$o{5c@Xs-E)nryzwotbdX875hD-l>e6c<#xBo_zk9gP(v7+Mt|- z9y*3hJ!1a%$_XnC7Z0rM&hE>94>tD(tX`Vqq3fvdS*YY_rZj3vIO0PD^b$#$NkD G0RTH6qm@Yj diff --git a/docs/html-primer/Medley-Primer_files/Image_027.gif b/docs/html-primer/Medley-Primer_files/Image_027.gif deleted file mode 100644 index 5d0904701d1b97517aab019a16ceb3f66ae321fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1408 zcmV-`1%LWSNk%w1VTJ&>0Du4h00030|NkNR1OWg50RSuj0001n0Js1E0{(=LsmtvT zqntC?i?iOm`wxcV2pZ&xhGxpP+3Jokz|o(r#<~UXH)cEVR=o`|U_xAqJ{7LndD3t} zp7nRUKA|Ee7igU>wWaX*dj8(F>U8p4MWW$ybe!FO;oH(-A1T%2CA74cS9qAH*yOe7 z__zkiCyCNX>6esHQ+HWn*va{+2O3FgR7eOWXKBjXNtGi?>Us%VCJRbSX}ig38io5S z?4mntTp4_jHBjrg0oRYe`wI&@5qI;ZOU3T`Y`_otnf z3qMO}J2RE#-s;VnKy(8Ob_r;3*|mht7BW=k@L@cJ5`{(VqNN|1{&{ycX1Swr-lB^Y z0hTOD^5iRuDp&4m$s*;!B6u{x#5d^_AbYA(MFBGIkxVBaMFP_I#>|U)B3U9+6m*q7 zrlGoV3^Enc&@w&UWwRs0WTL28QTaRC)elasPHzfr>vkmExMSzivK4rxhS}P z4Li2%*|clhzKuJ#?gc=1`~D5QU-03?aj)CS8+q~N%ascsBZRqh;!-ufi9S91ZNZs@ zC+)61Jag{i%NHkaz5!onTi1VSuO=!=)lkZgqt9qJ3>-AQCe4Dw*cnV#prdp|# zkyva*r%}MxIU1?u@DnUeo{{^erb*IjXQ;C_Su9MZE03x3+zxP8e@2cfn0T zdo9_#$SG;xKjyiz$|?`unAtuEySLplgZ_GJr3#OVwToOoy?N7}m!01^lV@fyPL_O5 z@aQ9PMN_mEsSeer;kqvR$uG@0yR#DkgcQ1{lAQS{kSgA2@H44|y3f}@&X(~t+n##K zjh`Ux;|ni8_j6Tl6S1k1vpeKEy+3I(_7jhocwy6*SyZ=5rp08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer_files/Image_029.gif b/docs/html-primer/Medley-Primer_files/Image_029.gif deleted file mode 100644 index a93f51bf42fa9c2a856ebcc0334126ed71d94279..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1614 zcmV-U2C?}^Nk%w1VU+-)0Du4h00030|NkNR1OWg50RSuj0001$0HOc@0{(=LsmtvT zqY1Ryi?iN5$Pb2M)RpFmjq1ui=nHG@Ot0~M*ZL0OKFSLU55Hmukpd(YmZ7a-jAoDv z4>e((I7eBg^h>#7$6{|-dp;|bRy8~8sUX8}H5fdXPcBSGw+*PpwkHTjSV+`Hw09R( zw)ogprYN{(dHI)i^_N)JX!KYqdP#;@Nr`!gYRO6V=?GamO1g?_m}<(pnRv?h>J$2= zXO?LfYkN#b+lguS`?D22^9(I*%|(slo6TLa-EHy>-YpC`ej*No#Zlh$E1Z5l)gA-S zzCrI8mnI*c|5EM^vte$Wf!Y_ZUz2}8_|SPcNY2B36oJKIrSJ$t{&Wr{L7XEn4>W`u zGbZHdt|G(~62Gj`lTqWrmJ}n_oG4Hq%$WE}dK2j>B)mZ9e2H zr?9BeyIFYUpQT*-oM*~}P0oQLYxBiYv6+mCQ}=0w;R zC%}t(t(pxu5inekZftrSOf>J|j`k`#4xCbDL$+-vr>xBRujA1)jTWYA_OWGxLTPpi zlsX{RrL*&@s|_x-Z6LVG_1^tc@^9emhEvn65ji*I*_cnsY}oiS=UNJ5=E=!(zVKT}Jvw)S-V*e4RV_^5?;?mfv}O!C}|_x9LwZpFC>eSJr0XGs*VCv(!sl0@=4|SXnt8e^ zmz+gi+M{cKUKJ^bA!aBlm@%gM=n}RK$mD_Ip&I^bslz6vjjw4cW~qw}*2b!>DJJ*j zV6ckCA2VpwR1&R8ip%D)97^k5mxP+D6uB0uH=NLcc6B!mEdxF2u7RTd3xR%Nk1p^tYioF^?;=)KE;Z zuN+Onq*TXc^@UJF(Xq}t$Vu-I!g{>Q*z@iw1k<8W;x-LrmkM;5q(V=UoNbQ_CH&xlz_N=cn-;Eo|5xtNxw%en?)9;-f`xZZO1=KIZU!)^X1Hf!{K! zX0>%@t1ZTtQ|#y6ezWd6L+jk9t3j&Io&$XX10IveYrd<`WmyStch$OnzE<3%`|*3C zKX+xZzGxD^D2=i=E25auFS?@W&4-EFdi2D6qO?O@k7FJpacqe14*cR+e?9lx zpZ{&_2ag8_X-R+eG9LD3Mk1@_s5`mZpZ>ZwIL8SpW8f-S=8gxWXMrbtb%R#mAT_rE z8cTZk@)WcxcaQFs4}!>wQVXwj7tV-qgeG+1sw(wC4LZ<&_Vb1NNOq?u_3lhml8S(K z2oNMz$2b4$AG2oY#Nsp&S16>{{uH-YB?JNkEoq8~lK`{43MLSWbn_v&RMkO10k0=l z4BVz_n6r-{4?$#nR;_RsM@|`#e?^2COJq12IHoLzZ0uukWYm{1nlOH=<6#{wHWEVe zrj0B-)PJ;yzbN{HlB|;r`-p)QY7w!HLF3768u&?}#VdkgyWtmU!8<)+l8<*x-}HPG zhza76MSlz-2I1u`MUl{k=u2Pa8m2^a;4F{gK_Be&$V;)v@RzQ$W$aGHmmdv^SQ~2B zGHta=d-2kXK0KXW>^RE@wu^~|YzjLcsmW1NGoDgx=eRtRAWn`@a7*->K8I&HQp_x! zj?|7BeZ)L}+S7N%$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_031.gif b/docs/html-primer/Medley-Primer_files/Image_031.gif deleted file mode 100644 index 16b4cd56e9039affea11e820ffa1650f009fff55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1543 zcmV+i2Kf0$Nk%w1VJrcQ0Du4h00030|NkNR1OWg50RSuj0000i0gC_t0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJt`Wp?Fw%f+ANU;K{65n$ay(rS_DU+3kz9!gb2@K` zsj!M%;1b&_l?e_jt=X?n+G{|mYp_r_iB1cM?5{l%&z5Oq*I<>NKiU ziAJVcy~+?O)~#IUY3&M@Vo;A??{P{qs2!+kMxscoI_a$sO$yQyVr!R6+PZu3IhoVm!R8amgbH{3t5mLX?QmQxg@zVX3CN=cV=8!b5OZ#83#I?S#BcE6(_D% z9mL&Yyqh0i1`Ssv=hxHCct+&>0qD9FMrq#829IF<>)e2{OG5yGrstH*0(9v3Hq$Hk@R^)OM-As!g||kk*YiK>zH$ZkPE9 z7Up>EcBxk0NbRk0$y~GC-_(mw{LbBmul|I1(f}_$wZ||&{`JY^PA*jC8Ro`p-?Bly z^2eKZ4th?ai|g{ynfENS%VTTadQo0mj;8Fl(;oELgT|e^pwn6YvTcwfT)X4?&0f4r zd>@~DStTof;>uTk3YD_N87*sB zsaWFDR=3<`B75meMrtvbVbLWq;ReiORx+8VDDxyffj)05JiW+iSNk%w1VJrcQ0Du4h00030|NkNR1OWg50RSuj0000i0gC_t0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJt`Wp?Fw%f+ANU;K{65n$ay(rS_DU+3kz9!gb2@K` zsj!M%;1b&_l?e_jt=X?n+G{|mYp_r_iB1cM?5{l%&z5Oq*I<>NKiU ziAJVcy~+?O)~#IUY3&M@Vo;A??{P{qs2!+kMxscoI_a$sO$yQyVr!R6+PZu3V(uYSlL-1@5=g{yUY?~c5?B$l`J@O<;#qBTCLO9$wrG7u1MdWQ40^s88PtW#wP=3&DghGK*e{%re?Y|^6S~% z<$g;zeB#%$1#u?-{IYt=+tWiSyQvm&0Z=R%xQ$*Ir|Y>9)*% z2wr!IUg)*9-(BTF=-z;K5i(tWt&~TcgU}(fp?eeRM&W>^(dONO)AUe8iX39r*>e=u z7vqd423KH*3>G-ri8_jyT^XbOHlvIF9XDZj>~$z!lPt3LVvi*H*jtrEO4l5Y^H~`k zkD=|jrHmpr6QF)#La8N?HLeL%i;6udPloiZDd&3{nt2*-dcqQnjKu9_U!B#(C}5i1 z)fEq-R4Rz4TFMFZr%ohF8WvcQ3U(<#ncB0dS(8@kRHw=;B&t`X)^;kWM4jrGs;*Ae z>Z`Ic73-|F4pr-|x)$~5uD;UR>#xG%8tkyf@|ynYvC6WP>$1*v)aJvb42UBGR5VZY@o_^zRYxN z?RJb|llfI#k+$@o{{(|B2_KB=gDdW;AztEr>eu%a8tj>rMiQHRjg~AHMiSFHHXVDVwkL_SMTjI{qO) zZ~gj@OaHzA9`9(Lv0u}qHXrvj?0E`v)4x6zz5e;{bhYsvHDcDl;9M70r5ELYD`Or zh&Fy8(TMrO)QTLnF-d`Ed=ax={^tgW!PLc&U%Q_@ffJ2l>JdjNc(5_#t^=|D_HUK~~W-l)YHhUAHK^jH5pxH&ks zagaZZ-5;k|G^X7Tg?k)h8?RVH%gKw94E&BD3(3j)Nf43y$W8K!NJ3D~k7ZhHpB#zT zJ_e@pklv|f{3Mt`DWVaKu}tJART(=;oPap}F6ojAwdE@Qu~RK?$`F(MgWZ&HIlOOT5mhXtA{)Or$1Qe>n7QQTHM1GV zi;9wdtR&zu<4Bf}(vNqWA}PPrrA(sr(WIOMB=rQDu}MbKcUjDzG-=k*j4n`{yd0`g zb4kdje$l6Xgr-t=>C%<9w3kYOo?oz;FjEfDp(NZXS0{PWJCc&AQ9Nr)H;T%bVw9RT zooSqWX-Qz>wWkzCX))E8(=vYZObAVgU`wjjvg)*v+tg?$(fT%j`c)lY%HoVv! zFL_l3-t!_Qz3N?+dE0BL_rjMe?47Sq>T6$Q#WugZl`nr`<=_8CMI8h#uz?SZ-~>OS G0027>S>$8@ diff --git a/docs/html-primer/Medley-Primer_files/Image_033.gif b/docs/html-primer/Medley-Primer_files/Image_033.gif deleted file mode 100644 index bd2a4b083634a9d9f2fc636a27debb04b30cc4ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1532 zcmVsYD~NVzL3 zJWQN3%GmoW)}`xe+H3g?>|9)Jea#h$OqWf&94$H7Jc*X7jE$bIF7oNtz78KRzwquk ze~+K9zt7)qfdnw1z<~q{8a#+Fp~8g>8#;UlF`~qY6f0VU23{*4?vdi)47q{xvZ z6J{)lGNsCuEL*yKN%17inKWzKyoobst0Ovl`uqtrs8E11hZ;SKG^x^xMVC5#3N`A{ zrc$d~y^6IY)vR2*di`qh64NuTK6sZ}YAGjOVXkUVBE!x8EtGq;_3` z_h~1PbOr?C6fg?sil=IE?8!pRo*FOo&_eu+@D;&>Ef7F zlKG&S{taj0faEp0nV#_Fs9v0V{&i)7%M8k2e29)IriOcBR!*Qp5_l<%hJMNCk&2$l zD1NdwS!s$pmboNseI809Bqwg_VWv8+vTB2)`g;ChX@V*%WQuz3Qf#5Gde+gd(_TBL zkJsv!o3_|~D-O6odStD*;+DIuisr7%u2!<4duF@x&MRuHll3>EdTD~>t%jKT*l&-+ z;;W{Y6x#Zkj*BKdB%L^F+b_Kj6{RnRk0$$K#vw(lag+9W+?mCYW~iwmjb5yu$s_tZ za=szIY^=o9q6z7mBBu;_PsEF5%$1tk0ukmwYJ@|*EnN+(ZL!A zSvGikXS!OXT{{`Lnl!`t_um!nod?`{lm0Au)eX*>^VE=E&UfF7e;qjBIgbr>=4kKh zDA`j_o_c4ZTh6xYO@|Ej=Bpph^xAo&-g!))*Iqj778gxC?5nqZW$`Z~ZT0B6za6>p z%G*vl^gDaqj7(jnir2b(h2(VHGsQ%MkNxvJn+;mx4KICu`@zobv+$~I zACdYKUA+{|k9zDQWYp!yK$3)yf-EGgP-w_RI)splY$X012}#c_ zFp`v<5Fjgw$*@c^lbjq^CqLP(O@gwMj2vYhOKD0uqB50kTqP^j=*m}`F_y9vBQ0y` z#arT1i@MyU6?^GRDFQQ?P8=pNm1xXk8Znv53?eg|xx;5dvxd@~<_oK7%@krYnsYD~NVzL3 zJWQN3%GmoW)}`xe+H3g?>|9)Jea#h$OqWf&94$H7Jc*X7jE$bIF7oNtz78KRzwquk ze~+K9zt7)qfdnw1z<~q{8a#+Fp~8g>8#;UlF`~qY6f0VU23{*4?vdi)47q{xvZ z6J{)lGNsCuEL*yKN%17inKWzKyoobst0Ovl`uqtrs8E11hZ;SKG^x^xMVC5#3N`A{ zrc$d~y^6IY)vR2*di`qh649?PM z-x(O5cF|RrTyEgC#~^`3Sx294*gZI4hx$1|)O<<|w4R3iZ3o|mBu4mNeI}}?Vu`=~ zw_kuB4u~9jN7UFHhA&FTpm$;McVCe}!sgtJ6`BZOf;ZwQ7K`W^BwR+mTp1)d@^y#d zH#?5zUWrw%qNHz6KB<~QHlC@TlWdBY=8$iaH|LFU%2{WRd3t!~o__v`P*ZDC=_a6t zLMhu$t>`$SA|Vw@B6)>EDk4c+PE_D=ht8BEqv`EfX{e%lL}`eDMoOil9F=P7U#LR3 zDNLPK3aW@-s5<4R@hv)^Wl>(IYaYG=$SZTLP09YEl)?3?Y-n?|Ic$WVjtSystj7A$ ztijgC-GS8_d)~1`)S4cx;f70YuHu60ZMo&TS!xlrn+wOFT^3w$ydy?z>(Jv8J+j7)3LW&x z^8&52Ry;dfvD8-IYTK?fcU|ny20#2Py-Yh?9@q(9Lb1$e$5yk;%Vj;1wix}yuS9(p z^!H7HE9{u*-BbEL4;&a;l_~tY3`1$G!UjF*-%i8|?@~;&B{PyP+|NZ)d zRR8||rp+Q zD7_;h(RoT-qVk&PMB+g)ioKg6E){QQ#Vf`xi&|727rRKhFM<(tVjLsq%4kN+p)rk= U^M@PX2*)_eagKCEL;(N*JJ}+*E&u=k diff --git a/docs/html-primer/Medley-Primer_files/Image_035.gif b/docs/html-primer/Medley-Primer_files/Image_035.gif deleted file mode 100644 index bdf5beca490aaf601820231386cc7fff497a02fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1231 zcmV;=1TgzYNk%w1VZQ-#0Du4h00030|NkNR1OWg50RSuj0002L0dfEU0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AOxN~}1^OP0J@ES-f;=6tNaPI}!s1YA5aOoP zs`bi5HKS4~5aC^dquKA+Oip9h?6&(9RyU2$xY*p=p4AC&ux!_L_eNM~c-Vk6riVAU z*9bYN$QRjHCn$-ixygxT$LEBWc=jhM8W?KoCsYD~NVzL3 zJWQN3%GmoW)}`xe+H3g?>|9)Jea#h$OqWf&94$H7Jc*X7jE$bIF7oNtz78KRzwquk ze~+K9zt7)qfdnw1z<~q{8a#+Fp~8g>8#;UlF`~qY6f0VU23{*4?vdi)47q{xvZ z6J{)lGNsCuEL*yKN%17inKWzKyoobst0Ovl`uqtrs8E11hZ;SKG^x^xMVC5#3N`A{ zrc$d~y^6IY)vR2*di`qh64;N!46aM57~$}$w9JXZ(& zta>AC(hO&ZzAf2FtJ0lYyDr5W^{LpWc|Reg`t#%?%bPRLDAPGl=(ckE3648^s_ETI z=P?5QweKXj%0m*5-Sm0P>7Nt916;l9BjzcV2$%(MOqB z`jLmFiCP;CvN#{dt+BD~1<7u^Loql38qEUe&H0Vfq z{)woSg(k{qqj@QK=$4L7+US(bP&u6v8_GEsrJjCdX{O&Dx#OrhhSXu$j0 zcq^~9^oHwf!QXb9@3rSDJ1@Wa3QY09(Oz1msQ&7kBb6Dmrm=UuPP|~Q7gvn(nEhfz z6RRn|3@W59D_YacFyDO9ojC7I*rGiDY?#hK4;`1#L?5k|(MT^nmZjpx%5>COodj#d z8%vG#QpQ>xVAftEHRZYwe@(Wa@JiP4s5Y0)cFSj*8)@5e!=&`wcI#C4-FnyT^WJ{{ zl=t6)s}%U)h8x=V;flLd_~MQ~8u#Op%c`09u*WX??6iAs`|XX0m*scR2Fk1>-;IRAw!3aulf)uQv1rbpI06Qf^lQjSU diff --git a/docs/html-primer/Medley-Primer_files/Image_036.png b/docs/html-primer/Medley-Primer_files/Image_036.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_037.gif b/docs/html-primer/Medley-Primer_files/Image_037.gif deleted file mode 100644 index 556c71245e8f0cc905df9719a7a285844383d869..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2146 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_040.png b/docs/html-primer/Medley-Primer_files/Image_040.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer_files/Image_041.gif b/docs/html-primer/Medley-Primer_files/Image_041.gif deleted file mode 100644 index edd4096196cf21eaabbdb1d1df024a0f8565da03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3177 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 PL631smrHX*1poj$+z~-x diff --git a/docs/html-primer/Medley-Primer_files/Image_042.png b/docs/html-primer/Medley-Primer_files/Image_042.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_043.gif b/docs/html-primer/Medley-Primer_files/Image_043.gif deleted file mode 100644 index 1e8b4769f03a09336803911a57194b23ca0321c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 741 zcmVYw1{~~%>I)rhD=kZHZK!IUea+qN{f(V0K2Bb4evY25zRuq6{tiz$8Bbqt ze~+K9?@qh#{|_*rz<>P)8a#+Fp}~R*8#;Ul(Hz5w6f0UBIPs#!{*4^@_2~#Qq{w6$ zN18lYu_VfsEDx$|2{UHCmojVGY)A8^&Yk0O^8ESJC(xlbg%Um5(kRlUCK(Fq^HC7f zsSW!aMk(Y~Z?z}Yg=%}YtUv2%m>+ITN zbMH?3JNVn;$LlU{zBl^xz}K@M?*6^;`0|s}ug{z;e)9Uh_n+_YpLzfW*xrBy!e`)t z^ChUDeGE33UuF;@DB*+)R%oGv7-kqDhXrovp-#$$=+KBH0(RetA(^P6ODVR<5sNSi zB;$;3y=bFFHRia_jy%qU;MNFo;Gk_jp4Bu-66xzLnU(rD$CH$JE( zMNoEm&X-`8Bj%VrWof2eXr^i8nrtTN=9^4%DW{8c)`?M^c(POGo_*r^XPtq{Ip~{( XvUzBliJA#cqmDibX{3@WPyhfs3EhIS diff --git a/docs/html-primer/Medley-Primer_files/Image_044.gif b/docs/html-primer/Medley-Primer_files/Image_044.gif deleted file mode 100644 index fc5531afc1b7bb38a205b2431cb5a4dc83438f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 871 zcmV-t1DO0rNk%w1VK)Jo0Du4h00030|NkNR1OWg50RSuj0000t0hj;)0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hAWCOxJcCFh)g1KNTzS;1ageZ zs`W*suA&KIP`c4x$7E7g2>9x_z34ZcR<9LaHX8f}?u={ivRf7?_y?$mR~XmkCRAt0 z(01qNIN1nB2zNI*xOvrQ2ZiV+iOHy0I23ourWi^`I3va>o8*aTidve<$NFdqJGy(D zISk1ZJBti+9IOhe+r|4t`rGWxHSHQHb)4M2<-q)$>sxsZZR>lUI)3JC=?#ws?lVUW z+(##N-A<}GS69znzjy@41T3N_3%3t>7?~>wF=B*;5-VEdMDe1={*4VhdHe`6q{xvZ zOPV~1GNsCuEL*yK+0r4*nKWzKyoocX&YdDnar_CCN3@_si?(p`(5TX-AdqHc3N_I?%j?o^TzG^H|yZSQ4=pt`Z#jX%9nF)?i@4p=#-~Zhiv^i;664`0~-xuTS1N@14`$fjh8)7@;fM2uD58BNmYCm(DDtP`ivP9fqJS{Q zSRjTpo>k$E1?8w?JUsU3&5uC#HRF&<32CG(NG2IrkxT})_!R=E+CSX!aw zmWf^IWnEx~8Bv#H-eBgLHKeH~4r8_n51VkhAm^Mc)M;mCZ{|4*o_wC*=bt46DrjeW z7Agp#h?ZvKqGcZHs6miM%H^b#e%a`yaayYB5sG$-!Ka|M#_6auh-&HtsHQqmsjSlJ z>Z^CgDyyEE);cAvxB{x{u7mdKtD(0BTj{XGVk$w|u^0iXY-q+dizc(sruOW#r%G#W xsMuypYPHg~6)hAXbE$(D;OPwKAAZoBTj3-1u|&P#8-_TH-#x||dM06WYNza9Vp diff --git a/docs/html-primer/Medley-Primer_files/Image_045.gif b/docs/html-primer/Medley-Primer_files/Image_045.gif deleted file mode 100644 index c2b18b415dedc51be46b181a9c82e240cdcf6dd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 660 zcmV;F0&D$8Nk%w1VWyNh?hD8AOxN~}=X$;D{tpZahq}Xxh)gP%${zCxjY?Sn zb84#e#_^sF#V2?9k4H zs4{#~-J#-KhZ$n1l7`@U7$S)eRe@rP-7%*kiXbwS3mYaT u6yu82m11LiIKD_@H;$YDWC}tCN#u}2wwU60Mi$BBl1?^BB$8DW0029Mx=!l= diff --git a/docs/html-primer/Medley-Primer_files/Image_046.gif b/docs/html-primer/Medley-Primer_files/Image_046.gif deleted file mode 100644 index a613adb0019631ea0f12ce1ab0c049b28fc66144..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 751 zcmVwl@l9?pgHR~C5jVg|!>bNj)5Sig{j$=MlRO*}nT1 zUO$b$cdu`gocOHYI5yP;4zyGX;5HQe)VMQ+%}YFb2-Er5VUFUG{#rsnWt{Twi#KxW z!2N?V=~0h~%T5~1(D3C7monege8Vq7&792)@+_DIp14)3TvdxTY1TuMC86OA2@xp6 zr|7;x>S!zEMTH}Wf_zCcn828=Ze|PH6Q823RoJyv$_|)Iv;m)}6bc5>qLg(j)h#*F zW8Q(@BD&oIP_GV=7|UsTw&^cZWEr~_4tyAKTvT}rOZt|Sl;kKp@RDZO7jI_Gyr$4W zThU(-*f+_76>IJ!ZI}*oySCR^)oEzgCf?f#)(nGPiq?|Z)0Z258ujf7J#)KLxq4}>B8Dr z1P(^pbPBaZ5E7PgmK0GfbhqAAiG>wTDBz(|AzT|#=-ze^UWgt__~mDyOf7=7n~O2R z=#O3j=5pU^YT;;XmQ{_{l!tMS2xx|U h`1w|#+DWBVo}n#jm5ycgCnBYeK!9ncnr>PE06V)@YQg{j diff --git a/docs/html-primer/Medley-Primer_files/Image_047.gif b/docs/html-primer/Medley-Primer_files/Image_047.gif deleted file mode 100644 index c3a529bf8c800d9b097df5ca44c4e323c5a55f6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69 zcmZ?wbhEHb6krfwXkY+=|Ns9h{$ycfU|?j>0r5dH3`{aD{VPweWn5gd>5`N_pH%tm ToJftLB|m)6o!aKX$Y2csRE-ox diff --git a/docs/html-primer/Medley-Primer_files/Image_048.gif b/docs/html-primer/Medley-Primer_files/Image_048.gif deleted file mode 100644 index 5dbe5065f7fda620a0f816377256a5a9348cab2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727 zcmV;|0x11QNk%w1VOIcO0Du4h00030|NkNR1OWg50RSuj000120ABzA0{(=Lsmtx3 zf}FGlh_l|n`pJbN_kD=hNvUa+)=I&y+RosJ=Z#GtXx9STYP_PV;+yGmv1O8VIT?{M zmefToMW{We_j?74ztpi=WX(?3?Bdqij?1;zUv-XWzwP;ceE*{6H>gw>ct@C6CfJ0i z_y}007Zg@wx$@K&*|l=$%d!c&Vgc}UIYrNVEdh6P(TRg}pY)$-}eOkyJ1j;`pA zm43bqN#1^%-}ff>mRj@9x*zzM@O7Wc+7&pp&75z$C)@MAymh+XEB*Dg;ui{be|@c

q!a?*#( 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_051.gif b/docs/html-primer/Medley-Primer_files/Image_051.gif deleted file mode 100644 index ddefb8e87134b2f0f35d87d3376bb07b2f3f8177..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78 zcmZ?wbhEHb0r5dH3{0v$yanAW?+EquTe7c@k-GdZ c)6spJT1Cv|7pZH%78P0rueN&V#>ij|036R4QUCw| diff --git a/docs/html-primer/Medley-Primer_files/Image_052.gif b/docs/html-primer/Medley-Primer_files/Image_052.gif deleted file mode 100644 index 7454b2a7b7ccac07e5caf162ea4b46b097c99d6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77 zcmZ?wbhEHb0r5dH3`{CL%$&zp)Lv=QyJ)p=&+M|l cE|)x}J?ofwZ05|~UyBwzZ7pUqV`Z=g06J$HWdHyG diff --git a/docs/html-primer/Medley-Primer_files/Image_053.gif b/docs/html-primer/Medley-Primer_files/Image_053.gif deleted file mode 100644 index d59b78d25680446ee89d01a33d7c3e879ff88858..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70 zcmZ?wbhEHb6l4%&XkY+=|Ns9h{$ycfU|?j>0r5dH3{0{u@+(ij{Aw^1pt(Vcb2WW}_t%`T{Lu>F4WapnALoh|40R%FCSCe~JHNQc+x z_<;yWWQcWWxd+HKNtv0b$oUv5DiH}MRw|iD$rv{l`TEy6I!oK?*5@j_XgV0X>g$(V zSxZdp6FhWQ=8$H)sQ24bm>i>vT8y2|aZSsu{S8hU?j2rkevY25bj;rF{th26KTlt8 ze~+K9zt2yv*$*(Fz<~q{8a!z5AHszU8#;Ul@u0$p6f0W1h>_sL{)`+udi;2CBgl~? zOPahV@}$a@EJ>zp2{We5hA(H@yonQE&73@Y`m9Fir_iB1cM?5{bfnRwOq*6*>NKiU zi9x4Yy-KwV)~#IoLG21Q>?UamS4~kCg-|B6b=aPv_UG6oOh9#rTvqpx5qDNjjqTCb zQ?O2cC&48 z+}dANvXN=?#VmQWDY~2~t4?i(wOrl4MN=D|#xrT;%9-be-Fta-!=n$X)z zgMQu_)AQDq9ShoQ{Wj1zXuZ2?{ux@4zJ@(tQa*Wpaq5Bo(!ZOCSX!x7MP79V8YfIp z`BkRhdHW^yAbJE|p+d1na--x6NlIy^89}OPr$=$>X{bIK$QzzzlDZ&czM195hb#6m zU~O)82cwOmKBeH5Is%6utjP)IDuNA$_iB zu*p)i?5c%UX|05;m}e`swbCgrGKyll?Lgh$siS@k3VIoBd2Ugmk6~VGVZQLN+ipPb zdbq2U#HrhCxoXPzW41v0s$Rg#<_a&Of%b~9i1FgsFtLOlho;06YsG9~ZQ^#|c3vv1 z=az)I1%$CyiVP8`G)H_hO_t`o7|%Kb>@#ygBV_Z?MmtpW(Mo4UnX%a|4Rt|ODrsBP zRtqd+cUmKQb=UG>S7FRDdrh`%cp)h>*JZCgR+1!(&34?0HvL)Ea^Ec<-L$5Pci&0( zjrZSx%PsieY!_~L*@!3Z_2P_Q4WJ%tDunrX)Kmu9vf7pV9JzLYdG7e;j&`nc=AuKM zrWQ`0Zh4wc1I@a`p~oKd?6mW2`|UU9uDi&*_a5-?z;7%3@V6Fke5lAL-|6zqXX^a( zlSVInqtsU)*7ewTrTz9>b?^OE;D8Oi#gmpKh`Pxv}d(gtemah(rpBA!hIAvoMp? zs`biQ0)0W;!S#cJ!`|=rxs8^Ax#t?4#>(gPnUN6d5Aa#wnYdSC^?xo)d(6Y+F+^4xk-5nc$itKdFQz~I!ilR8W{+e+o}MY`+8<* z`dM3Se06&UiHZq@$7A|C*``dSdyJi}-MiiG{Y^y-K2F~Kc#fW~zRuq6{th26KTlt8 ze~+K9zt7(vRt_+rKn<)O#c{L58MlMWaFKF$?xC19Ty%9Q6S1PW{)(L#WF%zJ;~R=^ zDvhKFjiE(05SMK{mI{`yYbj;!*<2`VK|-80nFY;xDkh(Q!W>*1DlMu~ za#MBUqPgm)!=pm2KHwRRY13g}_4w@C@ug9)c*Nf1cIhf5wwKfvtE%y)LbzISstu{p zsY!)e;u<>r+?Sy}R9F%hfjiCpvyyO*O=vrV@Jn{kNJ+ z>*WR*Q0O5RRZ*ZdmKI46g{RF~18vA*hY@-RVu+lLCt`^vhN9t#Dz3OliY&eeV>l$n zNMnsFxM*XJI<_$5jz0c~0ggZpNu&)u7Kvn%A1cXYlS?`YC6Pi#Nu`ZbR*B_{S7ynj ziCcCFriWjKNv1$!mWk##XQs*KHfy#Cr!jBFNvADG)`_PmbLPn>9eef(s1<((O6U=T z7K*4HcP7ec4Tm-gDGHB9O6drbR*IAt|1f#af z>Z`D#D(kGI)@m!LxaP{~uDoLE>#vjsD=ehM7R!z3vB)B-?6QP5>nxzqM$6~4)Z%IF zwRC2yEu7qT%jUP>qABjUWR`0#nCPa<<+|)*>F&E!#w#zB^w!(tz4$7r@4iU(>#vln z2An9s1pjF8!8<0baE=T&T;szK$0+f{S`KV+o)u@T;>H|%iSfsAdMt8?B$q5EOa83P Va?38i40Fsf&rGvAD0f-_06Q;a+J685 diff --git a/docs/html-primer/Medley-Primer_files/Image_056.png b/docs/html-primer/Medley-Primer_files/Image_056.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_057.gif b/docs/html-primer/Medley-Primer_files/Image_057.gif deleted file mode 100644 index b6ca464ab761cef480323394f1df7bd609b078ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1638 zcmV-s2ATOsNk%w1VT}QP0Du4h00030|NkNR1OWg50RSuj0001u0e%1g0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AOk=@~2OrMpI`T8*4nbh;h)gP%k|HSR1VD*K zsq+N&S||3!)3++LoBR7Y zJ4{^MAzXoMyv*F($)W5lJxyJ0ea%&?z0KY2{S6*2K2Bb4evY25zRuq6{*DVTKTlt8 ze~+K9zi&>){|_*rz<~q{2J~kzp~8g>8#=6q@S((s6f0U381bUU{*4?vdeoNjqsWmY zO9BjOGNsCuEXSd22{We5k}qf4you9c&73@Y`pmcUr_iB9&jl@tG^x^Gz?M3Fn)E2t zsZ>!7^tDcE)}~lNc76C2-Pf=#n{FfP4XrJHYHJa3*Vb(tZgF?D)0!@<+PVq(f*WgA zoL|3*0MC2p_}UunpI^qdG!Ta%;Z*{L${q=de2+UkD+`< zE7>rfcvej_-K^Pk;76TVtF}Vh_gt^IL{~|T8Z*|+LoQ!t?xS_++Q#i3)?0nE_378= za%WAwclGJBTU#&O8NK86nA1o6K0bbU>GHd$x6l3Ca{06V;R{aQ)o$lSH$-OfskYs4 z*!dISYT1?7Uv9rWs9+$&odrxt`3+d$U&0mWAAS}R=U#>EIR>GL9wxY6iudW4oO4|1 z)m(=qp17ZQFYb7si{X)XVSD}osUC)Qk+mU@N}6|`k3_B&SB@gm_hWW2ve@8!k&Q+f zfnE{_osCuAcw>@UI(VjzP+E!JkoA>kq?+ns_aa~LJ?W;7W}^6}iaFw`SdmYvxhIAV zidL9|VTy^Ifgt*rD22tPDIsl!>SmmxY?=q&q^}j37Mj!nSEZ;Z9qJ@%q#}4?oT+t~ zUyPsL)t*U=6?AJkxxTY&M}^LVmso*r)ayaRZbkl3vBYj_Pq4z;dMrcAhKg&n(6&mC zvsG=&?XuH$do8#&G3Xs{I@LApx4>Ha--^F3sVln!s>>3&d~(>AVp5icZ@w5^xR<=t z#>=Qu_UMwmb}TnsYMS`^n4oqjcttqikJ2 zRd$)o$}K6?KPSB>;(yymwart~9o^pWy8b=3*nHF3;^IpMekRvK*wadAs{S`;@969=baW7++VQXK0{S`3?l9%ce zD!=>s!Qa04C4zqTE8w}pN5K81A%F}d8C?L#zDyZNc?PT?ueg-I^gSnX7_5=rbQVDn zZf}DYEa5`%hrS7dW`SR7VYG77KLOUrWG1X3JW%Mt5H65?1Z-gj8K}egjnIZf1Pbd` zD8nFnk78$$-w|ae!Xir1h!mWn{uO;!#VcyDc+=aW7lYTuFNzT=;~S$He^SOXsu3r# z;R@COxW+irq=Oj}p{nGF$C13Jj*N0+9{=bq0r?P)LjB?AA@shHvr99GT z%Ur4hm%8j_yjbbWU`9%q#B3HUi-}Aa0W+DsC9&$Gn&#QCN--W%xhw^naAAb zGqveWTY@v3vK%KlU1`p9sxqDGG$lLRDav=k)06U?rzY!Z&r0GmpN`xoKM(28e*!X~ z0?i{q3o6HhB6N)kUFaD@8|u(8LNuaZoG3-NXwi#aF{2utB1bz~#E*j1h9VuQ2}^2H k3!*fo23#pi?dQ^$mM^9q+N&S||3!)3++LoBR7Y zJ4{^MAzXoMyv*F($)W5lJxyJ0ea%&?z0KY2{S6*2K2Bb4evY25zRuq6{*DVTKTlt8 ze~+K9zi&?FGX{`{z+43R89azEp~8g>#rcEsZ-_655gS^(h%uwa{*4kRt^>v~q{xvZ zOOAVJGNsCuEL(0v=`yCwnKTi?tcf$H&Yk3L^85)jXic9&iyA%3ktouoOq=R^NMuN` zIsu(py^0l0RbXNY7Oa>xtk|C@J%TjLb*$R8L!&0D`c|qywsh;7^!GI_z^`EK`u%GW zsxOcf-4X_jI59t^Jrz5C{M0Sv$&@!Tu8cWzzRQ|Bdv?e9v*^)1CEN3e4>dZ}s!MYt ziuW*StD)7kJ}tW(>)hZ>?<%8hFhSn4kqSOL6=Lp*d%8LwuIRb&c(2h${i79ot;@H6 z123Kx@7#c1=N@M6oVxevwt(aLt{s*9_wCzvmtVb`>HFaRi1Vn`)t%CQWO)Ne`SCwi&0IzU9ehXLI%ms9k>sO6Z$= z7K$ifgC@#on1?nB=~#4rPMys|8 zYeP^)#Gpu@Zun7Bo9WgUrn4e9o~ym#+SrU4;c5QR6{P-(tCY#T)FgS%LJJ*>hN-xz zcuiW@k$(8)@4ht7w{M2D zjwx@fPZAt(wg6_RtcC@9J7bg(yW1Cou$hN(!{A=$7-YR$93B77}-k{N~ci;CY z>386%T}!gyhTBH?;fl)>+o+2_j-uF*PyT*Rj7L+BxtDyQn>plwcMf`Wj)y)u-lQ9D z`ssnEu6p0Bx1RUwu-E(f!}_1i+uHm)@OzFe74n=HAL;IJd1X2C z#+z&7?YK)1s_DyP52@_j>(2N0f_pDMs^piyZ20Kweg68L)($qX+q(~_^BCKnGyRzc zpY!nf>rW{R%}Zl917P_Q55i=BAV*Nnq#0Ek!ip`rM6BQd}!Yhsj8(i$77rzL`Fp9AN06TM5s3iaZ diff --git a/docs/html-primer/Medley-Primer_files/Image_059.gif b/docs/html-primer/Medley-Primer_files/Image_059.gif deleted file mode 100644 index 20d1fa14102179e67fede0bef25f92be27d8f29b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2500 zcmV;#2|M;jNk%w1VTu8y0Du4h00030|NkNR1OWg50RSuj0001r0i*x`0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AOh3Vm2OrMpI`T8*4nbh;h)gP%Hd3%CBub}I z0F=tiYPa0cwQ42afaAus=rb<9;ja4)kN0xuw*B{9pA}Fx+b$Oih$>W8`^CeVdHXaA7z-RM z9AbD;JdB*IytcFK{0to}JuOIQeT|*1z0KY2{S6*2K2Bb4evY25zHTnd{th26KTlt8 ze~*tYYc-b3?~^Z}z<~q{8ax4lZyN+YGmd(2M=G_a2L>>*iaATpf9F{Il`8Hz7yj^2^Jp1Nt->{p@uDd+A_O^44 zKYvS{x^wBjnMdEO4LbPq*mbja?KS)M`F@w8)`dkB|oo?n}7A$#!7(b8CYNx z&dEn#gP+-=ntjJ1_h2LG2_<26L8+13h6zH(-dPMfNZ($C{Zw9JBa%3uiHoI}*NQA^ z=i-Yc!Z_oNGUmu*kL`5lV~|491zm=|{e~kw7T%{{hD9D}noKB(r znhV#gh&CyrF9!=uWv}rC%Pob&X6h@yApvP|#zWSqamOTb>~YB3fh=;#qA|7{#sW2r z?^7zvv+p@9uWNA4MJ1KuzA=ZoCbCx*w6jG$o5dB*1?LoBkuzT?rDJy6zrUtEwqcC!HULPMf{(j#?%SYumJz`%Pxo(rb0LfKI9{+*QBLx3g`} zJ9M@4_SSXR@}8S3fGzu)FW@L)b@t*+(f($o%3_YY_vMb)Y^>fMA|^TBn96N8;k@=u zFtC}Y*{$1%r(|@l^is|;gsE=fNenX3%xbJ4JUV2QiM+|r4 zy$g;wvC%)A`_puGABZDiuRy}{uQr?#Vl%Zi&mr}*C25WE?U5gb`jAdCJ@F>%z+de zzzhh|Sb|X`M-OBSpk~x40XTAk8E-U!9=&iz2-GodiLg)}lqM_C@Ih1RnbQEDG#d;- zDUwPXS0cnlo=rvakSuBBry!(6Cccjr*C}NoX`u>JlJbzOWFsmQw257;M>+jz&MA6P zic+vLluN{8am=^}I;LVev%HShPWeh>8giJd;E*bEnaf}jQw&+#IJlIZ4etgj1QxG^8~zbjMwi@|$~sJ?275_NK(uj^8F|U3nqrS`_X|q< zh)SlY-V0&_5|6E>>NeS}OsPxNDdRrr)o7KkQ|q&yoE&B*1HMFb6HF>s@kYr?Vs%VB z1*_q(S}dvb>NVv9YXa?7F`sc&r^st+wsQ7Kwyw3SG@EMm7}wCo5~QuYTP!I#8&tb<|*Y`Z>sK&!#zz?N5KY zIKMHEu)nozp=|zZ+S>}|wv=sYbC393kVbci(|u=ke;8Nb4u%ZC#9f7WD#Q{ocea=9 zspQn>E$>oryh1fAN&1Q_^w|`)S-LI{Wt-E6!gsIk<*dc*yF>iClv0mHpJ)RcBmm=3 zz}_RU)i5_&-SJDoH$3fE(?#6buJ5TnqA(4!>&DFqOSTn?A5v+=UgcUT#VY=tQawCH z7{gG;PoyymLA=sAcD1nh?QO zQhV6C{#VKKZLqYQd{{6?nag;UEb4e%uEKUq$|MwWc>ycp+r@d!N*<+diOgG|Q9K=jBngOSWmrwwk`1g>tuZ^lgz**{H13 zadPGwY6x?9WS};8gVBuVw{dFPEJ}CC!cFTktM|-9j&zGajau&|Jl}JpnZKQfYqN28 zYPrU@r5`=;j}aT$2Dj$Jd;M09qxz*EM`6i-{O)ngIc^C-?$#=D@-5ePxx5A+UtDhN zq|%0*wj4c^Qx9Y)gcWt@a%LoazD8+v5=s+NY`Lt<{3l%r>RRwp9`wK_KG2Ga(u%`g z{w7;*Asdi^QJt2=iH=89rFoC8|pG`99@};b+vna?`h5(X=e`hr+3fI zSN-1bt{%Eb6*zrowGH3rt)z&fw6#_pF>SL OnEqHP&Eho*0027)N#8^O diff --git a/docs/html-primer/Medley-Primer_files/Image_060.gif b/docs/html-primer/Medley-Primer_files/Image_060.gif deleted file mode 100644 index a8426e53b90471b39750fef9f749c85136debcac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1609 zcmV-P2DbS}Nk%w1VS)i&0Du4h00030|NkNR1OWg50RSuj0001j0bKw90{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AdSu$?6&)zz>&Ywuhkxh>f`H$7Y-OG*z$)LwsZH;w3o)$ zHwYOi8B&;NX;{{1b@u2u`3V{-QHX};QwO$~##u!w`U)E>M}~?RG&kmT>UsDi2NoMF zJS4i;5A#{Ph%sZv{(TG~dK{9?9m6w- zW-a^$vSUAfCr2JsiN>YInKWzK>?X2cLXRW!wA6W0V8Jm9d9oyEa$>`nH=8(WzD%bGp=PHIG|V`WAhxb~n}q;SVNeA_i{!xcH%LOI&)2;C`Qk#eZ5tG&`{~dA(bNAAU~Sn|Wy@W4?HAp6 z`z;t?gAVrR*nLwSh~OPx5yaku8g2-jJ{x`rqCFjkNMecDDQIGfD&8~ViY~s0PKz+k zNTWA0o`cDEnpha#V;Q>VQ+s(JM#UnyH20GuB^9P)g180Q9)^we7iEnQium1<8F3b$fcG&UWnpyLV`3Vnrmw5C1MduDQ0{xD#zSJe1w$cncMxj3!B}26=tD* zehFrlx}~{gmx@+tD4d6uNg0=6S{Wf^>E-FxrGW}6sF`gB=IN+yI(dnoP6Db5QE!ep zUZiJ^$||h|Hi{{AWCAtik9G2=rl>s1S>dlkDw+N$VN7N^teb&8ODwd{+PZ7AKn|7b zkymA9Sg(*;8?36}RcofWbe0<~f0P>Ax$tzWRbhP#EUu@HJDsf1 z#=51K^fFrJzozmF@4Wn4ify)d>MIw8Zn|0|l^64=adU(wsh`2hDa2l=b9h{=kvhDEB-!Q;7P07a^Vq6jyUBvTOKXundcih=Vp8U zd3|)7bGYeBx6b{y1|q6zlLDLm_Es+l z;^==-K_BSW6+S>6Fmer3*N{FazRiiye-Z?s2|c($a~%w1SNoU(!S%3yk!yx^BjNFG z$U$G}aAb0N;hg4|G5uL@h(sJ={ta!&wJTN;gO<@^iM+VQ?O`cuU<{)Xw}?iXh%t?9 zl*bxzC#i+$fq6*U8^(7-G&pLj2$ZA!y0EF{pvSND`_-7%5lu4;TK)Z7nCDMd-viju=4C;K?*sBZGnj;^xB97Co@VU;#aigk(C`Uh9#A=9iq$Dk=Nl!|R H0ssIz0NEf3 diff --git a/docs/html-primer/Medley-Primer_files/Image_061.gif b/docs/html-primer/Medley-Primer_files/Image_061.gif deleted file mode 100644 index 4f0f25601c0194e5b990a25ddf0982c79423a3d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1749 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_064.gif b/docs/html-primer/Medley-Primer_files/Image_064.gif deleted file mode 100644 index 4c59b213aaf4eaadfdaf7887a77b9601b3062024..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2176 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_066.png b/docs/html-primer/Medley-Primer_files/Image_066.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_067.gif b/docs/html-primer/Medley-Primer_files/Image_067.gif deleted file mode 100644 index 5b0166344147b57095e234c97862edf06727c205..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1428 zcmV;F1#9|8Nk%w1Ve9}|0Du4h00030|NkNR1OWg50RSuj0002&09gP40{(=9smtvT zqnxzbi?iOy01k%YNS3DQo$AWA?%N$~n$Vtofu$tO&?x!k#X5?V7_UFvXJ2B^h6iR0ZI9PWIpD=rN}ZGCK^J0+FgET zeq7o3d`_OO?)Hlm9DK}dEs`gwl)-U}@F`lzupl&l80PfKph^}I{)NcC&C`@47bAxa zMH)*6j3S3UDqFgIIb|ZunKWxoU}-a_&YU=R`us_;C(xlpUkELVH0g*vo|?+k@Kosv zel3+{yDBCh!D~V8^%01OR#aarm2I`wm1jPzVA^tRr|_U$Oo{eU7=jk6K)9>w>eN%w zE!wSC%(3<6_ts6a8~75|C%EREY`PxqrThc4;&F*1Ltw1;?bk1W)F#rr87xU!sF~pD zf+zJ|suG%x-jbIq&B=!6s+L{2b#C05M|-YKJA&=B#GjdV-8(k)+`X4ol5S`@91+@I zHJ3e;x9{n?TirGU z0f*&$aF!QmJ)-mojb(=(=oFct^;chD^7*M+qUbf|=YQN78EIszr72v1-x-(b1!`(V zVUCL~*_j%d|mkEXRk%bWuchzd1tR{hGzb1DhT2_+p&37_@}de-O4J5DJ2UW zR*&ll#Vq}(8Mw$-$ zagkd2`jyAsO?C2y*WEtgnQu%K7H3ul5p)h*<9;^OOhYd!f1bvYhU~h6aqNzdI>u?{Ck_ z%XHXt?+fa>cw?(Ki^!QGZq;Eq8{yzH!~W|gtXBvA7pZ+ST5Yd0uj+W+Ph$$J#gOl< zIphWZ9e3Q*j(ps;_d>f|WoxSeF5~xd4tK|~Srn|gt<$Gnr8lSUHoE|yo*3{GySg8{ zeh-SeySh*BSivTDCUJ|<^GNcYjHBgck4r0$T|a-K(*hzDHRk`= z&vX9zH+DPz?dE6#EZ{T_adiLVP=aIgs1M2HR1T0SJ6vOM^^?)eLgSrpF?@!zqLt3|#xr`aj3a8HwJ=yY4Wdtnt)d|xb>_$TRnQ+tJfs<6CZh?` i?~oAGWBnM(L_Ye@k(}HlCn>4IPnOY>qRe6e00296KGCxP diff --git a/docs/html-primer/Medley-Primer_files/Image_068.png b/docs/html-primer/Medley-Primer_files/Image_068.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer_files/Image_069.png b/docs/html-primer/Medley-Primer_files/Image_069.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_070.gif b/docs/html-primer/Medley-Primer_files/Image_070.gif deleted file mode 100644 index 183033aa97f77e9edc891919f5b2c25a632374ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2084 zcmV+<2;28ZNk%w1VZ8yt0Du4h00030|NkNR1OWg50RSuj0002J0l@$O0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AOxN};1^OP0J@ES-f;=6tNaPI}!s1YA5aOoP zs`aXnlA2Me*2_!;!$5Hq!NscA?6yg}Ja@guM!J`d%d_V4V*H1u=SEm)c=+eEln3a? z7YF!-rsyaKw+FRXd5PHR`B}rMsVF)askzBS$$8n7i3%DkJ9| z7GIyQzt7+A|9=FDz<~q{8a#+Fp~8g>8#;UlF`~qY6f0W1h|!_9{)`+udi)47q{xvZ zOPV~m@ubR?EL*yK2{Wd|lrn4DyoocX&Yd)O`uqtrsL-JUdlEg0G^x_17>zQ03N@~qY=x$63pcLZmT%|Uy^FW0xx9S)`kh$! zui(Lc0~0=s7_Q;Oj2nYp%n()`U%$*r{z5PsoXv9zYVMZloRZLWMnf^!Ma*W*lse-% z7Z6iv(6B{Y4)|KM?%9q}@6DJxwjWZbCs{hpn|Saf$(a{DvV1aZ=)$X0uZ>(_^hl+* z>z;Fax$)}LyFUT%y0d!Ry|w?g9@~lM>*k5uK0iFW>+je8)3e`?M0Ds`$6I*xxw2b; z2Oh`We%l#n-h%`7haYwcuGijt1JY(;Ztm@-nQE4dI9`GvQixxL^Gzol5hT`k3WfIR z$6gZ0Iq1!e!@Ve;j6BMi9diI?NC$@-!S`W-`I-2mbLb_BnSV1vDPVptHn<~@CMv1m zeZS4tV|`6x86%leURWcMMH-6 z>XVMb`f8AoN?M+2(z&^3pNw`&XdWpJxhjk496SE1ikbq;AhW4L8ReqQMH{TMwQh)Q zi)aRkD`W}{NfNl=UNo*s;$o`St)EKjZ9?UWL@c`G%4;sV?~Ak{YpO#WuamOC}cCnEgkNhUDAD?{kksL!8 zV9Q0J40FnR{YP7lmSq-m&K0YSG08RBt8>r{^KA0ZF1IOk(nJ#N^U)?ht#s6cr39&h z!~R;e)LJJ-^+ytK4K`a3cl34GW}Bt(*=jHS<=Sq`T=3g+XPEY$i&6&cbGByIQx?g^ zJvZ2O^L;3uQ{K5Arru?$Zs3l0tucZnBmNgAx9@7ZE1ZUc3b^A@+Z>;+EE8V%-HRWM zA%Lpccd+N4L%t@PtJA1#s1T>F>VYTPTDI##!*1Hmq#JJe?WwkXda*+G?z_&g$EWJ> zqKdjAsD-os?3T@+4gA#zDbHCr^?>q84K^O39ZrNKcBA znU$2AY(%L`K^9SSrqZM@t!b_(h*03!bf@0@s781S)Smhjok1;XKZ}agqarn^N?j^X zo9a}XLN%%{ecqp1N>!$YXQa!_YE-Qnsq=aDsgf+_4ab_)vfeS8Xf>)@5rojT?sTeh zohV)F%Fw&wwV-<4>p%PI*L?yuu=gA+Vb^Kc!{RcriVb938~fGALUyT)oooRsYuNx| zHnZ{DEN8dp+0Xhew4!~TWJ_C9(xP^5s$K2dTI<@i!8W!6tS4>#IosO`?zFniXl{Ee zwci3)X~G@u?|A-eT)rYVxqn?Qa|P?%=N2})(nTzFtGn3iV%M>@-7W!(>)nolH@pqh zE_uIe-t*>fyy{&Td)v#d^uo7!@0~B*fY;zd$&`eVH(Y^J3u(-zCEuo(qRN9G4G+xGf?c@mfl3;?Bl5bIml5NGLfHRx!7`VB;^i;%WXob^Oqk33PBNqUFlSyfKh^AJ!L&KfFqt!*0Sb^j>v_+7 O?z5l&+yjOJ0028c*egu{ diff --git a/docs/html-primer/Medley-Primer_files/Image_071.png b/docs/html-primer/Medley-Primer_files/Image_071.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_072.gif b/docs/html-primer/Medley-Primer_files/Image_072.gif deleted file mode 100644 index 3b4feab02a6be8b907b555f74797a34bf27655f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1216 zcmV;x1V8&nNk%w1VUq!T0Du4h00030|NkNR1OWg50RSuj0001!0ek=e0{)DTsmtvT zqnxzbi?iOm`wIZyNS5Y_rs~SJPiThnOxN~}=lag~{tpZahs2`sh)fn^%BJ%PjY_A~ zs#Tb}YPa03_X`d$4dSx-j83c1hqe0+kIUyG@+?5Zi}J8UzAd8{2*XzgSR+Vy_lL0P z80e?S*hp7tdAV~asc6SpxHq^7+By1Y3L2U!nTRT?$0~{`J1eW%S}OQj2&?Oem+NW+ zyqL&3Ojx`tOv~I{X>05`8hKmlD;jqk4}2q%k8e6zg5;kk@_|17{NY=?rGZxG2)bT*C4^`Hn5c){*3sx{afhJU`L50 zOBx{;ZWlF%#wcZ6Ir8PFkJDVz8%NHh&Yg^S`uqu$O~0T-iyC#3^Qh9LOmzTq0X3@B zsZ^_4z1n~wORQYGdi@GEtO~6-#hN{fHmzE#WY@ZV3pcLZ32hrv_+x0C-no4H`u!W} zX(J0|^S1d#2C(AAjLp_Pe0ZxLdXN!Tp4>RI=FKG@Cl*{*)8M^^7lh`FI<;yBo)Ld` zO__3O#HUx=zKy%}-q*1w=e+|PxA5Vqbr0r^xwq>&r)v{`4n3`BNXxSV=UsY|^XS~W zb8YQCy!i32Hj+P&9y<8+?AvQz?>@eKzVPSUzmN9u_3V)T`6D;|)pi&Nn1OSlQHP&; zzg5Ouf75VM9b5zwMpbPSCdiq7{W(}3gqAsgAcCf8RUT^_lE@Nu{H4f^iLa?xVlH+e zRG3W|+NR-WE7JC1k03G_0dozyNZXKo49TO8Mw$oUe?lU6pm{jWcHxbE<(MRoEdq2L z1bPVw+-$ueN#=`YMkuCiE+MI0n3pYgos}6bc;=1`w)h{BZzfkJk$w7?<)3?w24rwu z0y^cOa&CsDpj-MlA(dHen5U9;E~%rGluDKynv-4%WucWWN*|rzbW*68k=kh8k&15Q z=$Bsx`qXw)TJ-5bG`6`_m842%>aW5M+gY&09*h3$fW{`vY_lLP>uj{r)+cSX$5Lx; zwxnXKZMPV5>utF6fh%sg?2&73y5pg%ZoAyE>u$Wm!7FdQtI=z3zKlYvZ@;(U>u~O?gP1oy;A$HkmkP>e^qF@nbni!(`kqBp+980X*Zl^}J zDae?z>Fde%t_QP&f`aoh$fL?!aHH6})diY-wZU0;4R!}#hfTJ!9+!ul~2@xBvS4@XId${I%C_KkoSF ezx)3D`|iL01@CE1DWCxjn3Mx5aDhB20027xM1dv% diff --git a/docs/html-primer/Medley-Primer_files/Image_073.gif b/docs/html-primer/Medley-Primer_files/Image_073.gif deleted file mode 100644 index 5cefcdbc1e3ec142c155a1da5e5370e02a7f6f0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2773 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 bxPZx#fbJ58%@#&wXohEqhG|F(1poj$)Xbr^ diff --git a/docs/html-primer/Medley-Primer_files/Image_074.png b/docs/html-primer/Medley-Primer_files/Image_074.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer_files/Image_075.gif b/docs/html-primer/Medley-Primer_files/Image_075.gif deleted file mode 100644 index 2a93d4d3f6774b1106a18f9515b3ab98e29257dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmV+*0^j{dNk%w1VMPFL0Du4h00030|NkNR1OWg50RSuj0000*0B!&P0{(=Lsmtw; zf}FJ4i?iOr@DGNc*C`TEp_DqY;#;1W+od)Pll0o!?vCT=5raT6fHB& zRKyq^ser{^k(;#)iCwJG6uywsY|y$5r-I}0H~oIvqRHL`ezi4I=JY2PsCH9RRv1%q zrRW7|#yBOGNXXc7XxW9C*~oy1P+1Yz&3C$O@R62i*Ldn@AcweQ@lvs0o}cCyjjcP2R1&E9{)UjxEHlhq}H8 z53Om-R;#as->(i}5`F@;6dWk(puuSh7gqTv@D0R*5*scQXE9pF_z(m)TJh*+qD5Tb zxB+_gsMnrwpo(=GL2V&^UtHf1)E;oO#sk0($mg>ur_?w&>u`^1^gHx{! z_}Wlxwm>PLq8R#}Yu!|F*Pi+J)9K#3H*X%DyES2JPD{^$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_077.gif b/docs/html-primer/Medley-Primer_files/Image_077.gif deleted file mode 100644 index 85f00e1adaa158efedd9c059e5906eb601552c6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2143 zcmV-l2%z^zNk%w1VOs&M0Du4h00030|NkNR1OWg50RSuj000160j&T40{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD6HK-a-|19^VzHm&>lY&{0=*CQHuvZnJHW0H1jI37-&b>DI5CAm5Q6Ya`_fFSc{2? zNQ)@>o5riFygVi3m8#;UlF=D}JrqY41h(X#J{x`OO&9Q(Hq=aG5 zz6dJ0VdF<|YdY0H7%1G!HZ!|uECocG7gop)`E-yI8ql3oZWcXK^Oh)Iuu8&7xpL{G zn}mk>pe0pl5M-}<4J8F@i`QPswk}$w~(q8SBZtt%4z? z%=m-f)@AU{h8$An=dOx_as7SRbd|Q3&2kpZ7_CxIzm9Xb-CGRawV&jAb}OqUS(@67 z!W2sLtWLgftjErbJu7qYl`}vOsR})Oc&f7QI`tku`snojrPD?+p9}fvM^S$U9@x%w z2rkIrG71V9U^5L)c-MX-dC&-a*Z4+^NR4&pol}ogM`11xc3@G2yFFtbe|+82oO;LT z##)Kyv{YV9-$e%2b?liX+DR=&NMmrUu)$MQx%m>Jjk4iL+Ga6EkYN(4B^4TAj$NRf zAxT97*MD}oHD!xVa*1O{O2!u6G-g)08ZUBwxr%n0g=L>;o%Ph+nHQxA+?vD%Ca7>9 zy@sToRQjkUm_WLi5o9m==^m7Ursfo*=Mj3@X~kWrsicldwr4z&PDv?UY2w7`Q{#Pl zDtDxch^2?23c@Of=}mA&lc`opk&1NPb*8YtQb7KdvA{y{>VnN4Ylel;PD`z-1y+k~ zw#Z7WZMWW939g-dB82E`w5_2Nx;Qn7tFqswnrug$WQr-Ao07y~X{f%-Z(7013!JCP zjj~#pt*mFyEraRTSu*2uQZ3~9~BHjHkML97cRDP?->Qqd@VDYUmIMol$? zQ&)|3e^+PCb%NY>4YoR4hfQ`j)Aj1~(Ma#OjS}sZ4R@QvP3*B>OJ5pv+;Q6$D{g{% zs!k>V7(rUPVyvU=k&bFAtmw0o` zhmXdhmB@>lS;o(c4Z8G`>-$(vf$Mtx_8UW)F1a9cWq46uo`^-o=AZvBdDF8W`gVqH zV(|RMcCViM9R^968%v=^r9J<7BYFY+UQaHzvYsvFSqgL(0M($h;|-x>DN|eOFsQH! zS}k`XETP;UWx^B!g@h_>VeeX4!WY7@f@f6%!&9%|8S=mQ!NS(d-UjcAM% zLLJX6M#L_{ij56&BM9#Z3LYXVgZrZ+^jPS}=gBaTyBj1SZ)eCu&MuLPe4QQhr9u1X zk&j2)Q6mwAIUpHMRN>>?=$v=Sb!3uN?sK9N8#TmGVscfB`QYL@`57MiOO>nqmjQoc zoh8muaC|6#G)(dbj}4@ij+)?3mUtKDhkGvCBe#(Nge}?O)B$~ z_}iz0SXs(SGESfelV$M!Xl778{8E{@L?v{l2+@ev2BDD*9l7H8#eIoUqbZmuNa0A# z&FPAy1hSqdH<(X$;Si5&WN9DFX;X#)GN)O?DNm)g)1Ok!r$Wt^9bIL^9Ij2N`zk6W zMmev4rnFubb&gXdI?ut_bE*UtV)?FGp=1tWCm2nh6(9AmCxZ1xVs)k*Rdc|9j&!Xd zFloT1c}A{MkFJ<$YbyU*OfY(huYGlC2isN6rQ$KJgtbIa8w=EjLbhf^oh<#%YFUj{ zHnVLkBPHF*)T)Rpsf*1hXRT#eucC6LC~d9GPFvDwx^_7N#3uw{3n0&$H81cqT3~+* zG2G@hnPv4zl7Rk8Ra^?!1SqR0-dKy=u10maz)P)djhm&uSfl?yxyeWic3b1T%#sUv2QRAcw^%ZV-*1Ety;`{3qgmabONpsXE~@*ZMYB!}JPbnJ6~F z6wCLhCYJDF`L|aPqsYKB1u%F8?9tK6_`Ublu{`N(70tTl~Tdp?>PHxXc{SkkR}J5%coEmwGdtgBKKGLild@ zx-)aRoIYIXO3=@-t=~F7XkONV*Uon?GNGpuOlx}6obI%z_3_b9 Vi+a?gF14vo4dzO#T9E|+06RUAG@t+g diff --git a/docs/html-primer/Medley-Primer_files/Image_078.gif b/docs/html-primer/Medley-Primer_files/Image_078.gif deleted file mode 100644 index 4a6e22a873a6148a16a9c5d8150fe618e71f427b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4w7Nk%w1VGRLM0Du4h00030|NkNR1OWg50RSuj0000D0Z{+|0{(=LsmtvT zqnxzbi?iOm`wxcVNJhbNo<Fc&*Yi$M>@j-_kISLKw8m{-SEG4*13woi*s)ia;db?=h*n0o zs0TPGIZ0V*d5M{+xyh*s^a&a&I!an`uh3;J4;(@dyAW^8!NW!`wJW_ zJj^O2BYz8njtfutRsoMW$AwU9-QWrfWBs zZ7Qt-33p9%SKD5Jcmun|2bphFhmtE>9!L4I=FO;{a{dh3Xz0d=o!@7P<0xDUC0GUJRR`A<(Pi;`Y_L_Ur1T zZ~s0Sy!c(t$D6Mw{Ji>Z>DRlL_dfpM_VVSIuMhq{{_Xm1_gnApA9Mf)xZHpQB4^-% z#3iU8a11uc+k+6|CgFs%RcIk>7-q=Yh8&{i;fJM#C}L{#l~~}3C?crhiVL>rqJuET v7~zaGQfT9i7v`v=hCKGz;g3LqDCCeM7HOo3NeW2fk|lKlWt38OPyhfs(2z#; diff --git a/docs/html-primer/Medley-Primer_files/Image_079.gif b/docs/html-primer/Medley-Primer_files/Image_079.gif deleted file mode 100644 index d1ba0420050390d27034ce9ed2d7a7a874815e02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1318 zcmV+>1=;#XNk%w1VUPiM0Du4h00030|NkNR1OWg50RSuj0001x0eAoa0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AOozdZANalOyy5!+e2E<*Py`Z>IpuO_R0NU3 zq^=2FPMyMR^jQmw#~7+rC$*Z-K(xDhY{%vD_56)LulIEJ9S+E5M@Cp^7?{_i#xU4d zw>Z~`n3&dp#HW~9=_Y9>c?cTX0v5GdM~XE`<>|P}h}y+en%DUhM9U?_D$3it@=1B? z$e8FFX-f>z2#na7YzpW6=SyAv!F<{}oIGgE2?=efw2g)tPQEKmY0cg~vFz83u6LJC z|E)RvX=Wb%EV!;L<%+FY62AyqC~S*D{#jor7W@b@q{xvZ zOPV~1GNsCuEL*xfG$p3YnKWzKyoocX&Ye7a`uqtrsL-KAi_+w1G^x_1Oq)7=3N@*2 z^Zl+lJay>T%bQn>)`|Ag&Q*J7tC4qW_vh=|xBKO}HI3%R|v|#~y|oUgz3zQhmrFP%KWSB5Tpj z2V+eyx>zHMbHSCHE()s0ntG=RnV4h|9ch|;z$Gc7kIMmh8>DxFk z8rr9v&|NvAY$=v_=z@VpStxwt`Q`~?ZYru;dqtLpR*soE^xhTg{YY7=xk%}z_}j<(kL-$b3JMd)nH5qy0JMm`6dWWxxhoS#TTeUY6dTB<6^l!UtD6rK9~$MP`c~>Lv105H>Yy$@#h% zvdUC_>~hR9-*xiLHs7pO%{cGOvr{_v40O;!{Va6RM&m^E(Mm533)4blHyl>{7XQejdpO0RY-lU%n zmFcLjZZgcQzrK~~u+Pr2-L&6+mg~6hp1bY5{~na=zz+|X=)@n7wC>0+f1L8nKfkc= z&`-Y__13H9{Porgul?-YcmMkL;IA(J_@|d|{^;nZ@A>-dWA6U@lgBTAE0Wg4b8z2GSX21ikErAL=8v`3Swg*D+YZ9E`)+%Vht6?yMQ`;a1pXR|2 zGA)E6R2m6OSheh-uzf0AA^ckC!ui24hW48w4fAKi8}cuQI{Y6Gdnmvk008v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer_files/Image_081.gif b/docs/html-primer/Medley-Primer_files/Image_081.gif deleted file mode 100644 index c1811fa44d11ed45e80e141c1ace1b5edb22ff4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1704 zcmV;Z23PqIcgZP##ag5K80rso$J*K_6vh{xDi z;iYHj97z!H-Im6fWYMFTH_NQ6ND>oM_ z4C*5|lv`$MxN4S}ikK{y3EVnteVs8Wtc~66{ff=~Jx*S3eoj-YzRuq6{th26KTlt8 ze~+K9KMlR_{|_*rz<~q{+G}Pop~8g>8#>H~@S((s6f0UhSmdI{{*4?vGK}akq{xvZ z*?}yHGNsCjCs(?B2@_z;m^5qJY&Y|!&Yd)K^85*uq|cy4i&`9NG^tXBNS8W&>aQu( zsZ`}jt%@}(At+kAdNrAmpr%}7IkD>TXC0KZWjb*!_O{_&;Yd+_6ncZ~89%_YMgKS+m}|zukBK*zoi_S1R;h_Ax9<8fA;h=0 zN88+|vSG#AW1IKYdiCPDp*epht%nCK;CX$!=8Qi4YwYg+_2V_J8glB1!WwvG$!1@H z1mXvtGwk^VAw3a6h?aa7T85y048|7Vb&XX=mU#Sq*Ij+w6(}Nd9ww;aY7eRxB7hN& z#$H=)F^A!ED&Dr+eXI${qK4y*7$lG@4r!i$_my{9lQYr=*orPbnVeiCp7tJzxm|H$ zB2~obU5p-#%hv4e&XtCLA>UAp&G%~>K1Lq&4>Q1t!>#RDY9uYD<8DId3mgl%2pex zv&-6;Y^|r#QlW*Y!j)IJ-D0^Gw}~2y<%P3q8yT?bil-L2nth7Zx57pTuDruK`Y&7S z{>$yT1e?3-yXN{Eu)(E%8?R}?TBh*3tQ1Gg}-5T`rrp{>sM zF}esB-0sJIxeG7LFk9^Ls~GQ`?5|2e>}*^j(~Rn*h#l*2(Kt&+VaOCub2ElY*F1Dp zqY{g?O;=~l^-EiK4K_+3`J8dsW+Pf-Y3)u+^Vx0>G-1r!ZcO&ucH23#+|fGS_T7Hp zgV4&S-5cfKhNqhM%{WfH_Ti3K+4$m#wfDBEDwta8Da z0Ig(6I}8cq*Raq`Fj`Fu;Y3Cl9JckWU(-UN$HHYG4dO6rE=&jv&(*Phosfs2vl-7` zMxP#{ZE7C0SPn;)F(hj4h<#Jy{z87(#I-$9Zx=(E5xpqIf)US(xQSq!u){T%}f8=}J2WFqW4*B`qas z%UgmCmb!#qE_->%Ujox)!W`zqifPPH@iLjFoFy|^iOgpPDw@)K6g8`9wQFK?D$Cra zPP*w$<2f^&qS7WgwKvXlE(M(G^qM)_NfdU%Qzi18r`XpCj2PKSScre|99G z0^JBf3u-BRB2dR3R$G^?evDpw7%)vuN@r(%^VI?jsLw5oNjY*j%40028=R$3td diff --git a/docs/html-primer/Medley-Primer_files/Image_082.png b/docs/html-primer/Medley-Primer_files/Image_082.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_083.gif b/docs/html-primer/Medley-Primer_files/Image_083.gif deleted file mode 100644 index f5317b739bca6fbefa1d65fd60affd5037d13b96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3854 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 QESrJ)YO^T!gT$e+h&(Ejyi(u^jY_A~ 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 aKMb@(ti(mk#O#U0jP<`!EX77q0028tc5x{H diff --git a/docs/html-primer/Medley-Primer_files/Image_085.gif b/docs/html-primer/Medley-Primer_files/Image_085.gif deleted file mode 100644 index cdc6137746913fa64b803f31501ef2cd73d2ea9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5611 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 D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_087.gif b/docs/html-primer/Medley-Primer_files/Image_087.gif deleted file mode 100644 index 52c7bcfdd4e011eb929497755ff769693fd6f485..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1992 zcmV;(2RHafNk%w1VLkzm0Du4h00030|NkNR1OWg50RSuj0000!0gnIx0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?i&U29DFlV19^Vzw5-g*I{LHBte3eAKXl)uwE3`bs2Fa)lJx&hO%6nd}zTS~;>CPT6KTlu( z&W)e1zt7+A{|_*rz<~q{8a#+FVLnj`8#;UlF`~qY6f1ILXfdP4{*4?vden&VqsWmY zOPb6W@}$a@EL*xv=`yCwnKT{3tcf$H&YjkH`uqu$<;|c(iyF0g?WoeFOaTsU3N`A| zr&6n0$_E z4>-Htnxd7cHm@VVaqr5d=B+Md$dcC(uG~2A;!l9pI4=A+&Z)bat71&*S&d#GMD!(2 z?YZ#~%ySZd{^lxn+u5-*tKPgg^k>YGCXK$_d+OW1%$GA}jkoyT;lDde>S=wFF=oMu zmzLIzG;G|-Yuif18MJcm%-b{6g6*PixZrs+rmtRDdhy8q<;y028-KD97nc>46=R=N zrv(PcMKwV8V08DDS6zVmjpv_%^Y!#yeWlq(+k*d1$Q^iySh${Q4JzT@bjeXCpoj2< zDB6g{l!yd}70OtkVuf|sVTK6iXdH@4y%)%eleM>xX4@g@mwypTcHm~>ojApG_3Z^B zE(89Sl3G{N_auQwdc~2M0;!o3n`Y^BSVV3*^&*^gzPVGJa^6|ioOsTp=bwTO%1@w# z9*QV-F}*_9DSisc<$R|d7fqB2u7+uu-nCU-r2z8fS9hE2`KU-h?r7we6Z){9dT;rt z=7*im+GC7T-eT)>gh^;$sRJ3B=8i$;M`U!IwYvT(n8n_jUbCWRnQE`w5i4z>!Ul&J znnGP`<4tr}n`@@Ly|$@!WIk)zYQ-X`jjru7%a*VI0K3tt-8ShdK6+KTDsI%$7^AcP z#!Bmu`qGN;m((UiFG$=5=%%myE*qaT1lJlcx)>jfF_!QyoZzmc@@bO25R(it#S<&s zrE3WHCu^=elKbz=yvCfCwqiX@SHr5tEAYPRe)?UenqouYw3H29am3u_%dpOgPEEC< zRbPFz&scA5n$%o>O_tVRk8RX$Ko3^t#$>Ne(rz$@v$SKavQ2lew!J-Y7&*#Yci#uO zJuc0hqU?9!+1?%Um4O@1xZOVDt@z4~PyRj;;KODE9OarH{&?WWj!F3DqR;E~=%$xk z`su2FB=+jAE7bbyvKJKl?6%X%x5GW_on^yRDyB4gOuyRbGIa{wU#d5zauzW2OIqb|fGtcs@hyw*ZQVJJWTf$BHwsH2^iELT4IE(Dn{F$T-XzHe3 zo3`@WyLCR8p=xj3xrXGtlra|>5PK!col45r5a~q@Oi81Pz3lfQc2Q_c2o&J|!dI)g zVMTwe7^CP$ovCv{aydDSz zR6~b3&?2Wg5v*GGyH^E|Ku#)N{`VY3v}0h1c~e{>>b!_2fQ^uGNz_WYo)@~T-EeAP zyj{-P=*Bo&3yyNE;|Ci@JVqJsV1onR-I#`*v+?n0k*Zkyen+wBtr2Tx6XF$lghU*H zW_v08SR`W@Bt&v$k;(UY}&+J+t(F2Y^#ngdj& zGdGDxKmMq5PCH`zQc251@^F3$9G^F%>926kMUUA05As@wCZU-JhK0l@xp?`_k=b!` z?@VJr$~e$IkrJNqOeiq^hiTA*w$h;#m5w_97SW1=EhMRF&RUwoq*O)-TI!0Ja8Lsq zfNHda2O=PZG6SKGvM4W1is?vsI8vJ0R7E>oY1>fa(woZ7rXd}gZd!9E__T;ctl{ZQ zeL513B6Uj3QL0mgs?;Sdm1O0C+msrrQ>fyQcvB5)U#wbF26Z*0FV&Zlm>O1|npLbe zZ0T9Q3fH){W_e6~DIoV+)4lG?qZ6eoEA84;yb4yYY?WzF-ReBYE_Jd;HLTr1u!;x|$H-S46L>)$~EIKa}RFM;P9-vj5@ zzzSAxf*Xve0Yf+}5}xo^Ds17cU^v6GeK3c^$lwq2H^d_TFNsSm;1i>`z#d*PST^k9 a6vY_6ubpv(?SbPQ>v+dJ?y))w00294`~JBA diff --git a/docs/html-primer/Medley-Primer_files/Image_088.gif b/docs/html-primer/Medley-Primer_files/Image_088.gif deleted file mode 100644 index e2c5ab3aedf2646785c7b7b1703795179a5a4bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 901 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 Li#pU*E&u>K1`QrN diff --git a/docs/html-primer/Medley-Primer_files/Image_091.gif b/docs/html-primer/Medley-Primer_files/Image_091.gif deleted file mode 100644 index fcaf32fc692ffe840db47f8ad9d4d7808b92c7a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2115 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 D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_094.gif b/docs/html-primer/Medley-Primer_files/Image_094.gif deleted file mode 100644 index 37baf58d980dbbecf368af868a8c64861c80c268..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2693 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_095.gif b/docs/html-primer/Medley-Primer_files/Image_095.gif deleted file mode 100644 index 52ec68f8c3e5e7f70c577de299455bf4dfe85990..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5171 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_096.gif b/docs/html-primer/Medley-Primer_files/Image_096.gif deleted file mode 100644 index e2317ceec436dc969e5315640bf0c8abe0b92838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2972 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_098.gif b/docs/html-primer/Medley-Primer_files/Image_098.gif deleted file mode 100644 index 1af02b15a1d0aace15aa9713512cbc0fb758f8b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3774 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 o3RvlC4elzh>`Jfi1+SA2~p3s3+6JO1WwG5`Po diff --git a/docs/html-primer/Medley-Primer_files/Image_099.png b/docs/html-primer/Medley-Primer_files/Image_099.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_100.gif b/docs/html-primer/Medley-Primer_files/Image_100.gif deleted file mode 100644 index 871398e918c0cae12ea8e43c44907d0a23495f86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1123 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_103.gif b/docs/html-primer/Medley-Primer_files/Image_103.gif deleted file mode 100644 index a470f97ba73fb01cf49f7dcbc04c98bdcb9ac7a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1401 zcmV-<1%~=ZNk%w1VLSow0Du4h00030|NkNR1OWg50RSuj0000y0q_6-0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_1nSDR?hD8AOxN~}=lag~{tu+3g2bZnh)gP%Ox&;ujY_A~ zs#W#8YPa037n=Qw$K-N3Y)-4!>>|1ikIUzQH~o&!U+wz7|4+mRI7nC+BWReY_=mXY z_!!p+IY~JtS&5lhb*b6unZ)@iI@%LTdWt$@n#$T*cin?jb~R5+{1AXi*!+{*2Z(a+K!rqqC4A zm60rI>?BHIDp&ey=~5TWn7Fdh>FtMM(|j&kRMtZR29-n=IF@=fXY zFU!D!UlJ}X^Ds~Vbs95feAhtX$Br96qe{0jWy;GigM6hqbYIDKA8!r~`IzUCpiiIf ztk~sd*P2rgTW!)Y?b)MkEACB;`Q6OJ9?e@q1AI0bQA2#guXPA4C1PGva zT}VbBfA*z?A2Gv4Mj$Y6MTl4pxWN+&h8fagpoM#R_@N6M>JSWqC88Iidc~Z04vaRa zn1g~<$*7@?E1IYy88lkqKvFp3Ly`qO4GCh4U}SI;k}v$o1PHSA=mnHZh_I5A2`UK+ zcu6u)l9nr2i4K@Gnu!yYTabAKnmf2Tk(jS=S!OvTHYBD*Y`!TcAX@GjNI!tS^QW3m z4m9XGPCk@qDScW;XC#ao%44L2QYyuymKyOWH<&KDDLbDY8Y)_)rlBbpqb7DLHLd!v zDya&|sOPJk+8P(GRmM8qt_Q(bk*;nCOChAho+&^)jg|vz%`qe3hH%GFVosi+jO06b=hm$ z33new)@|;KcS00Wp@*xoK$!F98RVCXBmRCa;bwP`<+N&lFeTpwAIKz4+*sm0Rx9ug@p0ww>-j$_~S=ezW3+nD6;wMyKJNT@0Z@D`tvisuKf4c zudV+31MfHg{V!0*65s&McDVx@D}f61l&}ogK$htWf)UKw1h1E{!%(n-j66`NmA4z_z2WRFA6P)Vx(Ug6Y<0drm=x* zRA3tq_{IUo@qcsNUmfpv$NA;)eS2JAAJ6y4@dfgGC@7>M4~fV`DsqvGY@{O}3CTzv HvH$=(c$T$U diff --git a/docs/html-primer/Medley-Primer_files/Image_104.png b/docs/html-primer/Medley-Primer_files/Image_104.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_105.gif b/docs/html-primer/Medley-Primer_files/Image_105.gif deleted file mode 100644 index f1dd7ebfce33d26d36b728b263b2d75fb8e10a91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4243 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_106.gif b/docs/html-primer/Medley-Primer_files/Image_106.gif deleted file mode 100644 index 3cdd29b1aa458c92eb1e2a2a35e17863de85e90c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4312 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 G002Af?tj1l diff --git a/docs/html-primer/Medley-Primer_files/Image_107.gif b/docs/html-primer/Medley-Primer_files/Image_107.gif deleted file mode 100644 index 204de8c6286e6b8e0f937522a99643201c3116a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1081 zcmV-91jhSENk%w1VNC&J0Du4h00030|NkNR1OWg50RSuj0000@0b>9F0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?h8x7Ob4S4;P|1}bMEWac#NHoH#F>G%%=0SBpH>< zXtkKoVRKm}V)_h=$CxP5ORfGIU>o?1R#@X*?&3-(>-T(M()*^B2WKZZhxB)77WZdI zx7Zgc*#h~PR7q%{yv^-WJNex$J}wf@XHK53zRuoGt_&Y9KTlt8 ze~+K9zt7+A{|_)=z%K#|8a#+Fp~8g>8~!8cFrvhX6f0W1I1eJm{*4?vdi>Z?Bgl~? zOPV|>PbA8fEL*x{sPd)EnKWy{i)k~b&YdK2^85)jXhWYuiyA$uk0{cmOq;543Nvw%^%G7Ol$9=oL_WSkz=^Gb~nrVO07a(-P#it*0 z`KgDVYPo$@+I-awg~$))yBa^T>DP)O6Cg@|78v=Qvb!L+JUq<@jx8{*nLP_U@V&>T8fRhoH2SfpqZvYYFUj27U!mq1S(qPmH=gjkEbh%x)z@ik?Ieq_n>MLtEI9B zD3=bYx@xQ_x%%p-wm!6Lsv_nJY_M|TDr~W7>A3!*vC5LA(Q#ld3oTde!G~b9)@p^U zgA)l*K51-w)*S5_69}kz51S%@4o(aRqww7 zV-@hg2J>6+!3qPc+>RB-yKuy{zW8jo@kxyFaD9gNUX>YtoYcl&dPyzFCTk|Lmn4^b za?8V}<}k4?x7_c{Hotsx&Sxd8bI%h)>~qkK2u*azG8f%*%}CFz^wKo*>~zshM-B4S zRA+4U)e>i|^}<|teel;{4=ncB|CVj`zG$a?@7iq7>-O92#w|Cxbk{xZ-FSDa_ukj` z?RT_*2fpm!gd1!4;ld`aIIxU2{_5k9uM{Qu9F0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJ?h8x7Ob4S4;P|1}bMEWac#NHoH#F>G%%=0SBpH>< zXtkKoVRKm}V)_h=$CxP5ORfGIU>o?1R#@X*?&3-(>-T(M()*^B2WKZZhxB)77WZdI zx7Zgc*#h~PR7q%{yv^-WJNex$J}wf@XHK53zRuoGt_&Y9KTlt8 ze~+K9zt7+A{|_)=z%K#|8a#+Fp~8g>8~!8cFrvhX6f0W1I1eJm{*4?vdi>Z?Bgl~? zOPV|>PbA8fEL*x{sPd)EnKWy{i)k~b&YdK2^85)jXhWYuiyA$uk0{cmOq;543NJuUw~U=d z)*y#8sv_fd-Q^hDWM{|rYHg~`4~hJ;@8L#4z5Yxmc|)q=9LjvnWU6T(y60!BbF8?JxgjBpO6)zN#>2+ zWhrNv)_j)XUTE%_oqiXxSf-;GTG^FrO1j$0E3LggrO>Y@84LcbK*(NXY+K1b3$3%zPP>*yD^iQC zt!A#7ZMSM|`-8XQrUmYYfwb!D{E>tlM+itu-l?$)D_U5E+z4z`rleGN)+wZyn z56qLl1RrdY!3Zz>k-`i=jFH0-PdrhP?1d68#Tv`HDw{`Uym80}S*#{{Uy6*fTOOVV zAjm1d%+|`>e(W;LHXkQ*fdb#mvwZsY40Jvc2TgROKNpR3UdtxU^rB5aoz%`yPaP}O zRx5q<)jH)c(;r#Uai!etL^#cZHF#8-0qx? Odg`jL&N@2<0028pc`r}^ diff --git a/docs/html-primer/Medley-Primer_files/Image_109.gif b/docs/html-primer/Medley-Primer_files/Image_109.gif deleted file mode 100644 index fd1cf72c5aeba9d0531464e624392cc96df853cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmV;T0$u$_Nk%w1Vdem=0Du4h00030|NkNR1OWg50RSuj0002y0IUE20{(=LsmtvT zqnxzbi?iOm`wxa+K$hl-rs~SJ?hD8AOxL!I-1^S<{tpZWa>AnVh)fEJLlVGwC_PQn zlR=5iYPZy=^V_tF$5pQRjJ7d}Ua%B3EvM)7y0jg4zo~G&{ST@eSKt&y$z(z{k`K2K29S}e*R*PzOJIq{(g4_KVKe8 zf8XMcf3Ckj-tX@lz<}EZ61-;c;IxDapD}E>>>@u{*1dea=hj7Ho!kjuC^6VM$Cs2w)hh8jdR3p-)9hWi%>GbKy zs8UT*t(sCER%R!++Ue?*4%o11#*&S8^(-i}YPYa$TP-czN^j>TscScz+`P&5@&$zV zZ;-%(SNSb0_AuhIiWj5R>NpkQ$Tucau3`ByEXbPIHtwt>Gw5`mN9*Nmnv&?$D^{~k z;rg|e(y|SsuKg!A?jf{yhwJUTGVtJ-hZEmi=r|hPxS7{>E*tu5>8z=zwr(2xXzif6 zclNFs{AKZ!$wxNt82w`Ph}jo*FBtw``F!c;wQm>yT>Wr+`M3427Jz37NEU%%8R!*) zTPcVYgH<^w6@*Vo$P|T1S!fi7Lum*Uhdp_y6Nop7NE3-MndlOVE2)SQizT@z5{w_o z$PtYh*=P}t6X^&Mj}7^#5ReB6Nf40%8R-v_`zVPIllM4Dj|fsuNoAE*UWsLvT5ieZ Il?4C*J3@0$`2YX_ diff --git a/docs/html-primer/Medley-Primer_files/Image_110.gif b/docs/html-primer/Medley-Primer_files/Image_110.gif deleted file mode 100644 index 4ac9391f3fb97d3ed495f77eadc7fe8914c98a41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2179 zcmV-}2z>WPNk%w1VK@QP0Du4h00030|NkNR1OWg50RSuj0000u0n-2g0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJt{TL07#KBh+qN9zeD9m-7PsGl_ev_4shlWRL^yFr zhBHc}W`|m)_Y0Ox9l+hVI=m*JXLWZ?Mu+G0y1Bf?HrzEm*C?lT)+O{OWrvv9GWa&d z$R()b7a#{|}JfzJLS^8a#+_Ai{+V8#+X%@S((s6f0h_h%uu^{(=!Vdi)6TT*r_k zOPZuM@}$a@AXBn@33H;$m^5n^oM|(s&U-j_`uw@BC(xlpzX{#etI({aj@TrXMv7^y zR6b;_Y1)Gqr659z02yV3S5s7Y!p7q&>J_9yJGhRS!R@HFszK89X}jy|*Qs5n;T5~r zl3uTN?P@ja)o)%&fcs)mTX&b4v`{Ax7Hg`j+sSm1Qbx{pqAjUAR?ex#XL9g5XK zSlovbjwal1w_rF6UF?Z>)pIvyr`2vEM&=qUM4pIMilzB@N0k4$n52gvQU=+4aVlMr4PshyKvlqry%32Nndl1Q0j~I8czM)*>TWexMg&Z2LeO>q~;-MxUjo@U{NlUAN|fAYpPG7_6*(5qqI*zLu40 zX&P49E0R_M8?8#i=2a=V&N^G_h?_!Tq@$(68g5KhHK&|+XF6GLoG11-AeQmOJCvW& z0t}SElIlzFN(Lv)a7DF}iEzU#bwsOZs*;!Ij*YH(q?Ae_L2rlI+PfNmM@pQgza)>R z+iTu!_A+fCD>}1T)!GJgR%%)smcC(VEf;jTV)6O-%u$vJ|K^ zII9IAD}@Bw;JI7_8&~0~W(@OT{(vm8s5gPIOEUZxw~A$>Pz;F>v5BB))P){+h02Q7 z!qxY*xGq!KsAtp~9*3-$rCTtDTT8lNmjK2_V})pm4N7Ah=Qu=id8}-MY$6O>QI@> z4p_!gm$>Af^?HfD|8&r5!vm%*MU=P9h0d5ko05=-898PiQ-6+9W;CVQFku#sio{bT zHWQ{zZ(6f+->f1s_cg2U@Uol*D{rOX3 zcm(1q2g=F`hGu;T1tk6c_SVqE<x1gS!1|E0#!9Xe zb89~68Y#Sr%dYrHSC2|`udgOluj0c`i9j^MvU-HDCP`~y%hgT9Le{8*RV+>+t3)og z&3TrsD`QjEqo_>Qf=%tL!uZOQYDQ>mMzr6ZOuN_5g2}L%ZQ)J>2HTT3mK^E2n_)SY zTZ+gwB)bJIW?TM?B~7*yt_~3>IyY zt$boErx?mF=JNEIOi(JLRm}Fha*fH{WG(mD%g_UJHqks?H4jsHU; zg=}q$giGjtu+#BQ%kzgx0Y|Ok$2!kggDrCAXota F06S7sPjLVM diff --git a/docs/html-primer/Medley-Primer_files/Image_111.gif b/docs/html-primer/Medley-Primer_files/Image_111.gif deleted file mode 100644 index 63f5022ec5fa371bb06fc7ed9b3f56a2e7fef53d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5872 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 D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_114.gif b/docs/html-primer/Medley-Primer_files/Image_114.gif deleted file mode 100644 index 9f42429e9a83b88f3a02a877d4790784d047f135..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmV;$0y_OiNk%w1VT1rm0Du4h00030|NkNR1OWg50RSuj0001l07?J=0{(=LsmtvT zqnxzbi?iM@@DGNKX9Ofbo`{;Tj(eDJB(LqgvSumQJdQf0DzingNK@=$z+bM!7&4tG zsISTs24OYfvRA$4zG9D-sWPLXM)o=!J4>-k>@?_}*L61gbPo3x*i+~Bre-MRlGc<0 zX2;mawm5kwM`ze{2-ydi*qF(A_vx1h`G~1F5+&)US~+@ZDw-Kd8CN@tNz`f^cNW_9 zYuTCw9P6p~M|dpa{0zMsJxyJ`#f+V;z0KY2{S6+@Y%E@GevY25O|Bl^Qb<0gBX->` z&Tj90jYqh(-vzKFB*6?7yVErlvni1_@r;4|VtP77a{GQ?$em%+EQ|ARY1=CA!YzZE_es2DY1cj-yCK8JuaVzYPDV0k;eDZN)LWH$>fO$_ zr`GPhdHC@Kd*98P2GzdvMCT3f{>^63gf4Tx)M%V8e0?pRnY*2hk$g&lCsTjEnH6Av zt+fZ%ex`-wmvweQ_@8e2^`;<##ufKlg%;*R;5r#4Jrx7CGCxufR16f4!qCu(OX_Gp zrjod`AhbYH)_3g1tke{*>s2nX&Ffb!e#hHt^o;A1SJ$*RTwLXch9?69C`Z+&=w?TV zsFhZCxWRNr*R@C}WvQ7*X9j5q#kj=h$VnR5Hs@GJIZ2u*vo-n`O8Y6I3Z^id2I~rm z>k?TLS(a4VE9?1$TV503?>obju7P+&rV)$pyl7Lnb<{wAzkEJAg{o{@$ zrBkami~7>)NrTq3_H0_uE3uhjg%q@v} z@&#GBZY_A3lvTu*^$+KyLIrDI2Kix4?uaW%x9Ac&{f_rBaQw+bS%J3=M9CxEjq_{?`az$9j#I z?MzR4>a5!w`z*&FjwZfJ6%sfGnn5U{fDB>SkXWWnCn{RJh%uwa{*4?vdi)47WJVq& zOPV~1GNsCuEL*yK2{YysnKWzKyoocX&SE=z`uqtrs7YQsef)qlvj;(?Lys~oNz{iE zr$TEI9b|K=xfWEnCR;-F>q%0WQfduLa%$C>R|V0O<>jkav24$fl3z%JVoerwo@WS(v>8%~-`^E#xTFW0?GS*B&Nsxzxi z0vW7b(3&N|RvTOHX4a`&uEq-!aooAUfz#c+SoG_$n@@W--kb6A<&|SAAuhXg?xxD2 zFYd}WdiB@SUJj;9z2VZy+0CsUi~H|;@doMJzmI>s_x$|+`-`9NUw{Gv1>k@N9w^v! z>8S+7Ve%d1kbCEurruDzNQKyf{IxY#a7hq`9f-5Bwx1W*l_*4WvvoM&RfS-dqHYw5 z*dB6e>7`+5$B{VWf$yP+l5nO8DOZCda#v)I&qan7koWzTRc5?B=w5a@j#gV-6YZ85 zmk4rZqlc1_H<@wJp_t`fL8{2(m-SuQ+L+F<$Xkzfg4LaGY;NbKV=-oBU2$a!dgOOS z>RBk9J{nbEkU(l!o|2DE2w#Rpg!8kIz&p88~jSOs_1kW^N< z!&4*XQz?Y7t%oUeu=v|9#gjq1lRkzR40BxbCgr+5|OVTLpo&G7iF0XR-NT{Ov z_LV2K;I$d%zUuC}Er`z6885;}+V)trWhSd?z1962Yrc`<7T&mz-U=qA8!l`za||*_ zCQgke+A_vknTl%7z4809%{uGk;y^q9Tvg6M5ABoCL?7+4NJ=lwbkj~h%~1gWJNi56 A<^TWy diff --git a/docs/html-primer/Medley-Primer_files/Image_117.gif b/docs/html-primer/Medley-Primer_files/Image_117.gif deleted file mode 100644 index dc290f26da000a1043da34f3a3f07a6536a78218..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1342 zcmV-E1;P49Nk%w1Vaot(0Du4h00030|NkNR1OWg50RSuj0002X0BZmM0{(=LsmtvT zqnxzbi?iOm`wtqyNS5Y_rs~SJ?hD8AOshzZ=lag~K70EKhs2^0791sG2Vb)%A|<5J z<7sJKC95?q0BQP$snW1m96*!DF0?wmF1eNOEbs|O*7M~yJMT6ZsMH6DGG|lxHTZY7 zXP2^7he$UGb>&#bNExT7b;!p>I4TNhgSW&<_t*I{IVGnVis@At$%mU}Ns4D0iF&IB zYdb2lt6O~L`Lu^P3`d#SxaxaX^|)yJw%ygY86-WMn+y~RejHx?dyO4St&QWnCQnWZ zTAb*KJiV{J9@uLf7F9EVUGb)k9jbu0^yykC42wUB{wi9$sHYUh{*4?tQtSvaq^XZ0 zOPUly@}$a@G*YsB3GG>NF}! zq*ALIfoe5t7phvj?!f9bthGmC%QE3=HtkroY|r9s3->13xN*VK^=kL7*1USH^6e}2 zFJPyF2P-XX*eK$}LPI!y3^}so$&@QwzKl7u=FOZtd;SbMwCK^KODlM|z|1zJ!zi9c zErRuH)pBOTesDW=Z7;HWNu;pvMiT~=9_E%%36^q45t1(&E*$!~DN(3DhweOf1Jtmy zr;eW7IPr7Gn{WTl+`I$v+vQ>pul+Un^Xtpg?+$@`@YDJJ&x`Lj0eAexCtY;|-ezBV z`wiG$fAc-3UwG`javgo>4cCu*7giV_g3DRApK)?|M+=AY;Rd30460@#f#bah4TK4* zXySwgriWdQ^^IsDaWmq_VR^{Bcma?Q9*H9}G7pd9eZd#TIP?sx8cL;DAMuc3GBHsCod%KwiXrO`)N@$^m z9*U@CjMatKqFpWKs7{d5cF&#>KEoSY%`}>dD5cERk!zr~Aq+zGxWh_qcZBFlsrb~n z6GM&qp{gOLDsvD%qiXjKt@XG%>rhmU+QMqdaKrvfEtSe-;9IDQeMD?Iv1CIG zh0&%83bsT=i>t1&&Q$Fu*S_W3vd>-$O|QaGIA84tNPjfE$-xtbF!rJeNoQ^t`-HR;DRg)A~mB$qsIZ#krU zES_;z{BAxNqbrHAZm#rOzGu~Hus#UOtA&it)~fHt{;D$&K@9VJtEv1*iwUc)G%T;u zAdz(R#kV302+LXr)Ai6mhnq{*)zGU0H`pe`&ez!jvoMQXL%Z(7ZntDFI(N6DaMw%! zT6fA~cjL~zMeoar!*NgTbKp1!G!_lD zxcR+hvtAMi<=Q39j^XZQB6&Tp7fN5BG{AM4eT`;AGJ7ke2APeLbY|LO{maYf-G=Ou z@BY=wckdSb#HdZh*^r!!6~83OjepqV5ANs}8|J}JfoLKVgZu-&Jk75{9(th5BIvy= zWzR-U3SSAS6QleQDSYGu;P#Z)KWo5;IXvo9%}$6uPdO+`e~O_;U>Lmjsqlb4>Q42V z!>1j}k4`7y9$0Mm84nWgb3=q88fBz7#jIJeGgyq>Ua06rNo{eAWGtf@1yuk5J7y@P A{r~^~ diff --git a/docs/html-primer/Medley-Primer_files/Image_118.gif b/docs/html-primer/Medley-Primer_files/Image_118.gif deleted file mode 100644 index 184628646484bd526e47effb7c27fa8b2e51b88d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 967 zcmV;&133IgNk%w1VaotK0Du4h00030|NkNR1OWg50RSuj0002X06YKy0{(=LsmtvT zqnxzbi?iOm`wxcVNR}oTIKjFeZ0o*ooYJo{8?&6-ti8BRYBh!oan$h=LS-{TECPzs zsSfGNRFPF!Pu0bWugtA=8a`*yV)L3DgSORFBNuLQtK0hE_`OB-gX1(8Bt_KF$5xT} zH~7Z5glA`07xh$0Nk@3s=|~63NH)1y29f5tIO@rSs_2Kd8W|W#`E?d$$`$Cgi0f)- zdnoGrTA89cOWV13YX&-8RtyVvyp|SgjFFwFT>aQw+bS%J3=M9CxEjq_{?`az$9j#I z?MzR4>a5!w`z*&FjwZfJ6%sfGnn5U{fDB>SkXWWnCn{RJh%uwa{*4?vdi)47WJVq& zOPV~1GNsCuEL*yK2{YysnKWzKyoocX&SE=z`uqtrs7YQsef)qlvj;(?Lys~oNz{iE zr$TEI9b|K=xfWEnCR;-F>q%0WQfduLa%$C>R|V0O<>jkav24$fl3z%JVoerwo@WS(v>8%~-`^E#xTFW0?GS*B&Nsxzxi z0vW7b(3&N|RvTOHX4a`&uEq-!aooAUfz#c+SoG_$n@@W--kb6A<&|SAAuhXg?xxD2 zFYd}WdiB@SUJj;9z2VZy+0CsUi~H|;@doMJzmI>s_x$|+`-`9NUw{Gv1>k@N9w^v! z>8S+7Ve%d1kbCEurruDzNQKyf{IxY#a7hq`9f-5Bwx1W*l_*4WvvoM&RfS-dqHYw5 z*dB6e>7`+5$B{VWf$yP+l5nO8DOZCda#v)I&qan7koWzTRc5?B=w5a@j#gV-6YZ85 zmk4rZqlc1_H<@wJp_t`fL8{2(m-SuQ+L+F<$Xkzfg4LaGY;NbKV=-oBU2$a!dgOOS z>RBk9J{nbEkU(l!o|2DE2w#Rpg!8kIz&p88~jSOs_1l5BRi z52Q`n7$~KjmWqX#J02$=jk|)^)RJ^shw6=5xuT(Kh@r(eXPN8)>y2lwI(e(AS|WPe zR*)%Ytg^|aIINtRx`}HRy6y=cw=@un-nwnd=;fWLmfM(lBhuqnv(o-*mxOUx>0Gg3 z5|S*i*X7$IyJ#{S@U#MlN}8IJ=BDqVJ8;%$uOMEyZlitDYb$d)Wq9n!@xk`+Xa%Lr pa#bLY+j7k2VOXBbHsj>+%{l`L^Ugl&CsNQt4^4E@MrTw206TWh;&=c6 diff --git a/docs/html-primer/Medley-Primer_files/Image_119.gif b/docs/html-primer/Medley-Primer_files/Image_119.gif deleted file mode 100644 index 0dfafab1829699002e9af925a183514e6e0eb44c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1916 zcmV-?2ZQ)WNk%w1VJ`u^0Du4h00030|NkNR1OWg50RSuj0000l0lWYJ0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJt`-2nOe3*D&(5vzU#>gwfVSMu7eO+N5MVIzlqefh z=X8mCT%n?27Axa^g`jOT{5_M`y|HxRWy_1;EjYQXBI9H zol=*=nD~Mv)~r8?a^0HoYYLEJ9fd7x7Hv{IYTLSf3pcJ@EmrE*PjP zJ--_U@4W5K^EUtPw6|;Q+GkIX4Zl41?9t!H7hk=-{KeV+_n$|9Uw->}*WY*m-Upt5 z^67@!fq&JOTX6na*WfAmDHz~sS?GtLV*Mcqg?%B$_hE?u<|f;MjVvi2C2wrSA;+UL{G8V_3U@zJiBat0WN8fHL`sN>$2}UR3 zlrbK8-HjjmCZv`*R%IQNQXbYMk{LR8B!|aUho+hHp*W;%=E=EZdH*$8Wh4iVX(N~s z5+|sWZF*TJoOZ7HUZd&NxMZHt?YUx~j=D)=k%@jvD4jv7X%(UFNqHNCh*BpUmtERP zTZO`<$XhBGmbf9N&747NkFJ{f;G(7tD_N+-9((?4WKSZ?EPu!~3vDvdPD^dI*7_yu zwc2jW?XlT*3vRgLZuaV{8k#$9y6Q6Pqor7`3vay0qE?@x^4^Q@Yv=+iY`*^f%b&UY z_6u;q20vJ?o(C_?Fppghd}_lIPfY5kE>es!#Xh2&amOATx9Z0tk8IbsB%e&O$tbVf zvC1sJEV0Wl&unmo98(%#y)^Hf*|!i2iYKQ$51ksvKO1-=(MlIvZpeEodF9el7wxp7 zP`^2K*0vcvtHp6@4K~6~A3bT*VW0im!#8`HGmvP%U2@ZosaiGMXUlAN-ul+9ci))d z?RVgi0WNsq0rPEm;vNe8bEma>sd&~lL;h|ahFC{_cfyS$Z8qj$w@Z1ASAXsK)bv`8 z+~|*%PW0)7f5+hJtn(}@;&<{nyVlumejEWl${qx}k9s2n#KMa13AjShE8nFmcjbpxqkiz_&p#f|=_c1@kt+3+irw_R86xG$=q- zk?(s#10lf1M;Ojs&V&uC9`97AKNj8#h3%6c`x+-hanX=$|BGP`;RU)H-cD0LJebWa z=qFq8s)#34AQM05#3xEFic*wX{syb~vMXY7Wm??g$u>sC^rXp$Uffm}#fZBy&TwB& zDjxvV$gSO3ZGL2gW3_5`F&LK6j%F0t#d^3$K3;2bf6QMX1$oDW{n3M^LZlAE=*TZZ zGLqXvA|*w3#!D_NlbTE*qAZ!9PO1xxo5PT#M5(PEwu*#8L?y9;*hW_3(3PFx;H>o6 zN?Mjim2AT0EOkj4UIq)0xdi6kRP#X|m2HK_Y}OG8$jBu&b6%62rYC=CO@DDRo9Wsn zHy;VgZ|3WWbHk=Mu>-#pn$mpd>{;KgGglYMEmNWVCs)Zz&gYm)r*F(F$f8=<^&!=;Hbra<6)R81p3AXzUFJ?D`_;O( zlB%7t@!Zx9xXbY=!3eZm=4Mt{gEi7(r7Nv3J!_$V?J6G0$XRAemz0gv z)o3v~UbU$fhji;MPg{#!08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer_files/Image_121.gif b/docs/html-primer/Medley-Primer_files/Image_121.gif deleted file mode 100644 index 00089828601b4655322268dc2130582b86f16dd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3701 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 T%gU_H>a5QStgwfVSMu7eO+N5MVIzlqefh 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 D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_126.gif b/docs/html-primer/Medley-Primer_files/Image_126.gif deleted file mode 100644 index 549608ecb94ce4b1ad996d9d03831f59c05e40ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1011 zcmV#z@&1Xvo>=iRB>Ibjjq%^(NUT_M|EZ$LjhiJ4+j8TZyY@imH^FTlx36 z*BV=EeB4Q@qxk15%v-AaD|s1gNr#-RZFtl?xmuU`s_NTK?gX1fS-suv{(eEq4NqTh zFYPIRzt7+A{}1p}w}Au;8a#+Fp~8g>8#;UlF`~qY6f0W1h!7mc{*4?vdi)47q{xvZ zA!;m%GNsCuEL*y4dGe*qnKWzKycsek&Ye7a`uyoqC(xlpiyA#zP$<%+Oq)7osr0GT zsZ^^vjA}Kj)~!>qa{UT6EKjdu%bGn~k}TS_Y}-my>o%_3xripwy^A-mD7}39u7&G2 zu;8VD2OB=zvvAIJU6PD?+<2GWF1qGWjspwbH_Vjh7y;+!^5<2OH9zw#8u3iUA2*vu z-54^G$edYarX3q{pWLwV;Qk#cxMkp-JENPedZot6n42Fj)zJ0m-p7YmA9CGxCfc=! z2jhKtlXJ_@EeX$!YC9zG$y0*n;aJ_WBJ<~WCzu}E@9ca2(d!JYUw_`|mz^}>A%{eM zz$Cb!f#tOa(`58b2p@%-RG5)@0V+69fpPHX9d6}$NZvKIjq@QF+F1kMgV&+RAcRoa z^$j8zf`MUu1_3ylY0-4ZS#=<`*kh0Z`I27VE6G@>T1ty3&>FuD-U_>#xF^b<&A==19#UvN|Tq?6A%%$K0{a8jEGM@m>3D zw(d!&ZMVE~>utEef-7#h#FA@nx?csWZo7%0>u$VKE%zd}(exs3zR*6GV~;mpd#Szx zbMzmwTxyB!zzP#gBfr)jyywCaZ**nCTUJQz#2Qm%C%)F|`SHdgKg6!GBcJ>!yeO}n zmdY%@3{uH3&wP-~G~aBF%Q){GkL>K+?(MYeX^wK9c?X<{HN3HSH hR7-62)e2{=wZL3=o$uFR$1C>O?UrqJx&{;g06WH@45|PC diff --git a/docs/html-primer/Medley-Primer_files/Image_127.gif b/docs/html-primer/Medley-Primer_files/Image_127.gif deleted file mode 100644 index deb7f38b8d553ba9ae9ebe04ce8a55064886c57d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1708 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_132.gif b/docs/html-primer/Medley-Primer_files/Image_132.gif deleted file mode 100644 index 9db51e18c2ec0b7d16718e4f97c2d00ef784c1af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2713 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_134.png b/docs/html-primer/Medley-Primer_files/Image_134.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_135.gif b/docs/html-primer/Medley-Primer_files/Image_135.gif deleted file mode 100644 index 298316e62a605dc9fa4b66f9455623cecac4b753..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 837 zcmV-L1G@Z2Nk%w1VO0QG0Du4h00030|NkNR1OWg50RSuj0001009gP40{(=LsmtvT zqnxzbi?dFl`wxcVNS5XqDCo+z?x();Ovm(%oA%-{JrFYF5U@iJ6f^!h%9PNFeAc8) zswhb{Hla@75@+R>u-U4&`txpO#PoTzYp09zE{bPX+JYRnbeq+u^GEn*Hzw$pC+D^j zcor7M$Eb+M$MX0^H`oR!w032PSOh658P%Bydg=Jq6e*fQs;7FodFM*ViYP~`W~+Jf zsv9Mo7>C7n>99Vz?)5eN%m{J)OAiJ@y=}))m1dJ`1c2RH0o;Ib(rlZk>IF zM1DaoyH65J-R(;~D=@Oh#UV`^j7U>fCzmxf!n6F>*DB43Pd;pSR`j2JHkr=E z-1JV&!>U~=y-Z}O6>5s_ZoIoD7hnv0`vEn56?mj#%+N{zqs3D%G=KT_oQcg`OT9K> zo0**_{B)V$U2lC=oXxYcIFD;RmLB>$+1eAcoNYU%zfkD@FZyTA5ElLX2TWpzkfg(Z zHvxhlUEz_}oq_=&7?gwH(FdMy=~&bgd!NNN$100qHlAe6<@a7l{aJS#cN1a)&V_kt z6(fnGd1H!DSE(}}VZB9Xpo!JwxXnMgxmKB80FuWfWzOl5U{XFBR}MElPKi=$AMFK| zJd&Zf(|HBeHwu>^ss{&Nw=_rBeUxE?hlji{xLI8s`p^s;-DCx#XH6-WSzVLuiB@s$ zkwzAh78VtpX=QEqWIf{Sxd=jhmXg|=R)Qj?J_jOaR1KR*s?T$|b+xF3qh_Yz23OL< z>JlU6q#cfdZspKxB4(H7t7JL~BvOxBC8Z;r(Rd%@HDYR-=73Y8lI*j#`YLTZu3n36 Pw%TsXZMWVgPyhfsqce?b diff --git a/docs/html-primer/Medley-Primer_files/Image_136.gif b/docs/html-primer/Medley-Primer_files/Image_136.gif deleted file mode 100644 index b578632227d19a863b157756a6c4d855a2e2c9fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 795 zcmV+$1LXWiNk%w1VO0QG0Du4h00030|NkNR1OWg50RSuj0001009gP40{(=LsmtvT zqnxzbi?dFl`wxcVNS5XqDCo+z?x();Ovm(%oA%-{JrFYFYMhkt*E#%vMv!tSi#?OV zY17E0LT6Gd)0=%-x2zq)dDK$B=@JiXJH^e}>v}wzD#3Mk5q1U_2-xOFh;@h(w^X%= zw9>X0SxC}VC)p=LS$WymnVDC_ho}P@dN`^mIthdqWUBc|x(4|tcI1jymWG)q_a_(z z3)u2zH(NSLwj2e_{9LOHJ?$q=eT`-vl@#p2o%5Od;wiB#tUX?#mO|#J>C{aD$4+1Q zPM8bI*3cc?6vhSLrf)qMLHNfeUJZl8;Kfq`5LYX24R!guM~ou3{ypC&QtV?&qOvb{ z4qmx*uiUGR`|>@6*ovUTa}R=O3Af2YJuW5*RuLGn=1-a6GY7$uB_9bw`fh?QlRb!782_C(4Z;6@0&nG1`SDoLn>CnGLf@M54j1$nqu z>M-@peJ2kuMsl~@&|UOA+O>WA(WIB;21bj_Fg0f}#A+|stZ1W5)|~AujeP4TFUw1A z$_AS?I&qprA^nr?7yT~JKE|~U4|eD1JD`id3CVOVeA5{8H|$Wak4cuygf%43=nH$L^<6vLL7y=$A*;RN3IsG|D;B=(DmfHmqf@mBg*&I}uI>qSq-WV-H zR9{~wPNSDZ4Vsg>MCO6i|$Vgnzjr+x~}R;*SP Z>Z?V0Dr=n_-im9ky6(zruL%?Y06PgJdc^<$ diff --git a/docs/html-primer/Medley-Primer_files/Image_137.gif b/docs/html-primer/Medley-Primer_files/Image_137.gif deleted file mode 100644 index 5e7da1855497a3089c937ecf83c5a91ad575915b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4560 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_139.png b/docs/html-primer/Medley-Primer_files/Image_139.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_140.png b/docs/html-primer/Medley-Primer_files/Image_140.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer_files/Image_141.png b/docs/html-primer/Medley-Primer_files/Image_141.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_142.gif b/docs/html-primer/Medley-Primer_files/Image_142.gif deleted file mode 100644 index 82ecae8cdfb6c5813ddcc73ba2e5930195ad0829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2620 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 diff --git a/docs/html-primer/Medley-Primer_files/Image_145.gif b/docs/html-primer/Medley-Primer_files/Image_145.gif deleted file mode 100644 index e1eff65c976a99a658ed5a23d8ac486c4a4b364f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1650 zcmV-&295bgNk%w1VW!_4;gRJJ)xR=|#tmfArb4BKWI7$Z2;?C_{&bDX0JM}w;m1=W zz-g>Rt|C2mAOZIC@~%mTnKWzKymfNf&7C}Zn#>u>r_iAqfa<&@k>Lg(J(b=xn!`e( zR~{t#bZS!<&XnZ}qU1=#DnmJ1d_BsL=bc(!GrO*830KKEZzaXT^a%4T1~6sIx?^LO zrdyXP0aF!2Qt3QV{UBKd)R(N@URd|(Rh$)Wz&sscCDfN`bI{9v?@B%07ckzum}?GB zYsT;^wwCm$y1iA&M&y33!DAB<} zg65Nav}>Zh$!l#mmhisx+4@?-COM(o>2Uddu1qk6i%(TPX8Qoo^h-Yg)S?o ztdV&rYhly9#HeG&3WII9B$;cZh>4!coV9wEo84^8$@bxtj@TQEoCCt^2q?|@TU(>; zmZ~p+(NgKJE23@Z-M`WTdabfDvSjK??0E~>dypbKryvMHQ?P%=<_7Y(vzVM?$oru@ zq{{YvxTl&eJWMFGG3OK2rU$Z&%#-0Z6zj9Wfy*wS!DX6jZT&LL>53?#>TpO8x(rpl z^4dYE(5Xf^DZZm7eUQKaml~dG&3PIT)mkczb!Ue%9rf7*=gYIlJ_B-b(2H%omcrP& zn`Yewsy(K#U)yXr(ugO1o~zXA+~eSazy9$!s}@S`xN<)eeK~tWTO4c19PjJRsYU7rz{Fjqk(X45Cn~O0# zphJ&4*vGc%sP)H=p8evC@2x%MEiXR^n*;-$kqW;Ge=}DZIyr29@;|i=wMFt}82CtW zUd83+1kol9=lKVg}oVclTh#{`H$%aMQlPSKV=bWNk6R03-}fxnu@?rAbTYhEuar@@4VJGYCOn~~rsXRWRjYG7T!#dS z&_V^R1!CMA;=AzV#H}a{Q8uhx{+XayL{20LCr!*E36VID0Pc=vF!bUT!I(u0t_OrD z(BU#JbgLaL@p&e3W6o*_xn$w7j0W2yA4TRzI~tKfGOJ7*2kAmDPVkR2R9_IC1**GM zCx3l98YG`M!gEOHJ9wKF>#&%>On!xd2@Bio2$@LDT+n!{;!(`3c*7*_iIk{Y-PkS} z%1gdVih7HZ=inHzJqofEfjpuxjfux$p2?A~l%oz}piF2oQ)aXTB@Z8o%O4s;g&OM< z8pCHsOR2DcYph}+&nQaBc}8QL?4mhoD9e`+@<+AIV>)A)%|+VEVGEn4_hhLvXGX6> z5VIyaYZ%RqAQYJk#bz>38HyoBZIYMnG-xa#Vw~(u43Xe`CRh-2B4RppW?Q;o?UtEJ wjJ5=%JL2d+Q97em?l7g_Y+6i-mC%{tgJfbr9}sB@(O^C_i2p09PYM74J7GR6q5uE@ diff --git a/docs/html-primer/Medley-Primer_files/Image_146.gif b/docs/html-primer/Medley-Primer_files/Image_146.gif deleted file mode 100644 index dae39f4c661fb8e51f36fd7e8280d4e35647ed96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 739 zcmV<90v!EENk%w1VcY;_0Du4h00030|NkNR1OWg50RSuj0002o0A>IH0{)DTsmtvT z7nro#i?iOm`wxQANS3A(rs~SJ?sUfTEWP%P=NirTB^Iy*Kf_J&ax_v5x~9+vjVgf0 zq>^J@5@B4YQwo*>0mbs6ayDDl+Vhgx9cI0+u)Q}X$I)G~T+62ySJw9jNT+kBD3fPc z)hC!Bga-HM=SGOww8;5`)COs|mm%jExOS+C)5!{v2O}E!RyZjbnTe}P*UHQATIdEF z#8!K$Hw-6yIH$YP`;5@6$t)cLeO;ZcEpq+5{SA)P-5XvGK2C0~UX9L6*$yA}9Xno_+!gJ_u-#5y6BEqb+P010lqM>&{J_Sn=CM{)`#5ZG^ZZNir-B zTTpZHv0=z39z>$tl``QDTf=At8dE75GD5*_#FR;jrYuOd#2o{q6IQA^KPd)1DioEl zSjvjVI%%z`z?o2aeyUZ)6w;eEv~GPWbZM$eH%pCGYtpPgu4#$R8`|$^FiSq=?t7Ui zo8Q0Au&OYeV=%ss9u?CQ=eXph$mk$b4tsf=Wy%sWv)UZFvu94A9g7}a?@8vfopnwq)IH7^{nRj7(7bb{cg|~6Y;D#P{C}M^+lxU)c^?_I&i=(;t9E`@L zsG@!&hPdL5E$a9pk1_fv!-;qwrretVSwpOKSSE80B zY+Lq-Vv$|e_N8!P3OS~3Wd=zklxfQK=4EkeHK&zl(pcwDd3t$gihHK?r<#4580bcY Vnsq2gP$GsLB8xU!&Y}eX06QN`X?p+w diff --git a/docs/html-primer/Medley-Primer_files/Image_147.gif b/docs/html-primer/Medley-Primer_files/Image_147.gif deleted file mode 100644 index cc5a69d239c1c5c47c4ae9fac39ae9c57f91eee5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmV-M0=fN1Nk%w1VQc_U0Du4h00030|NkNR1OWg50RSuj0001N08jt`0{(=LsmtvT zqnxzbi?iOmqYxyZ1eROqrN;Q7kGpEH%7v~S=g0g3tQiCPd@Nc97u3yoJKSycB<_sI zDh`#c(L=P9kLjcQHJP3vu9Y%5;$Y)d926fUlH)1{0)?jBf9 z8820DqpzF4zn?~*zh&h3v5QxU9yJmF20Ao15L&^16tVG}bWRh({)PfCRut9E(ngCM zKiYc;5GA`>^e7&*=SktplJB;t^H^%)%xvGd>E!8ap0}Mqs|meVbQaM}!-$1Bnl!4$ ziBhYsvx*fX)vQr}aV_fgE6=cErI9U*>@3=3Th}&I>oynMxW3xb?KStVth|k!GK$%f zsa}v;17lh`n54NxwbPE#dwfXpo?e=Ys_ZO}El z%M&={GQM-+PY>VTSmSxl={MPC-(IkG`0+J+aqL&o`ucJoA@hg&UtN|32q1xb`DY+V U2quW%fD9^_UxX4)XhZ=3I|uhAcK`qY diff --git a/docs/html-primer/Medley-Primer_files/Image_148.gif b/docs/html-primer/Medley-Primer_files/Image_148.gif deleted file mode 100644 index 8399008c0d6e7643ff191c04933ca5f67b25d6e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 843 zcmV-R1GM}{Nk%w1VVD6z0Du4h00030|NkNR1OWg50RSuj0001(0YU%(0{(=LsmtvT zqnxzbi?iOm`wxcVNS5Y_rs~SJP~gV$OxJcAI}Lk5by1b-=mvAAxXIah!kC8{O6WIb2}v0Q+UMEo`nq%m*!EbOrs^O>N=Dlj3JV-8 ztYSKBe2kn}oXp(pe9;vxJxyJ0eT|*1z0KY2{S6*2K2Bb4evV%Kyw2X9#kLHsi8G)3 z!c%V%U$KAIdl#mbhJHhu$P1WHAHP2#659DdkRgMJ3Mo)5c*^1>{#&IoU0m?-m&6RZ zNP_G@G1Dx72z9j_HPM%^G4WjL5jgP=PBk_+(p1H3)=gZdWZwGu@Dw34`8=w5N`_xR zhDH<0oH_I4AUiBe2DNvTPsfokl_pI!7VM~{_c)TxDX|h+Nw~!96e*UJKVEWGPRWbv zmfp5_*%B5EsaUO|fjRC{>(w0_~f)@eEdbJKTO z$tB#KIQ8sW|GE4c9JoJO@D5`S%y>IUmh9Wxuj?F-;>Gv=wXe;s8GbZHrJhjSO+{WI zi=}p+fBij&Rec3|5K0(il1@IkLXbHo7bKKcUP)ne0XB(c zmtJzHrCX#W_+^=878jzKYFe4*nr^;XB%E^2DIuM9-Z>$jdb-)>o_^Zc=bwVA80ese zl33`Win5dFqK-1t=%bPj6X~RuzEbI>nsSoqrk)8GN`5$dR>Qc>!usv42%s;<(| z>Z`K05bLbACV6YFoz$vpuMqhP>>|Mqiv_R59y=u+vdY?E?6S@__iVILN=q#Z%~q@I Vwb&l3?Y6^q>n*V0hTCfa06X|oqDcS% diff --git a/docs/html-primer/Medley-Primer_files/Image_149.gif b/docs/html-primer/Medley-Primer_files/Image_149.gif deleted file mode 100644 index 1a9cea543e9d1ef365363288475246b29c48d682..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>H-Nk%w1VQc_U0Du4h00030|NkNR1OWg50RSuj0001N08jt`0{(=LsmtvT zqnxzbi?iOmqYxyZ1eROqrN;Q7kGpEH%7v~S=g0g3tQiCPd@Nc97u3yoJKSycB<_sI zDh`#c(L=P9kLjcQHJP3vu9Y%5;$Y)d926fUlH)1{0)?jBf9 z8820DqpzF4zn?~*zh&h3v5QxU9yJmF20Ao15L&^16tVG}bWRh({)PfCRut9E(ngCM zKiYc;5GA`>^e7&*=SktplJB;t^H^%)%xvGd>E!8ap0}Mqs|meVbQaM}!-$1B%5!N_ zb48^l{T0kAP^?+CO5=*mYuJffr-~$7)+|P}Y1LA7i?b@*s&K(>6$@_eRJ^k6UfrwL zEMHiG*E&^X*y~`p+t!t0tTgds$gdU_CfRH;#>Q_~MXk))3#fDM$eGrX&ZfvOH&xfP z+>+_ZjwLtFsTcbPz;Xd=OCB9FW|N`3i{oBoeE0F;zddjENE~%%YvoR|T8=ef;n)HSXs>UQUN4(%*mC_+?-& j2qx&uWenz(+k?FBv1Mzz@K`RSzKI0k7Ld3RY!2A2uy`U;EDnDAvfNQQ=bYg+q8n-&`^ zJj_FEe2nbMnatemZ1EK>JxyJ0eT|*1z0KY2{S6*2K2Bb4evV$d{LJ3&UJ^Cp#xftV zZYaWLbkES+=A#eOl2Gz4_^US%f~JDde#xT1k6*$G5)EFO;!qN){yh~RbnJI=Lz9mo zS!Iy8a3erMdh+A}Mr&Tme;xs<#0Rnu&Xqh%vT^xS%1?nYg|=Kaa@Qt~cY-=%3Grpn zoBgChbufx3Ra{~SfyAXVp2@K=Gg@keHDg$XStHs4rm8Hjv+G*YZOXEgCZuOI`qi2? zNTI=}%&zMD;v%QDei<8n+lwzwln%iJd<-|2E~0f;CVgWPaH+qEGq;f}SLh~Pkp_eQ z*cSBL(wUmK$ zsxEHYxo+vdMt-Ip9C%=o>dA`&1b(=D@o2NdbZ=OCX!_3nFL#fwRC?l(HD67{<#GyP z|D6X>2kd>o;B-6j$JImkT=*b`4}~V#sZ=Y{yCH4JD9l$V~jE? zH)D-9-dLVYQ_;5~jz0cag?0Kdr5=z*9(jY1N-?EVkw`uXKxe86=aUx-hF+X@-l-v;dhWR)pML&HBcOr~nkS)# z^7-bWiW-^dqK@9!=%bRx80n;zwo~b)nlh8=rk)bh>8GN?66&a?dQ$4Csv?r=s; z>Z`H_Icu%W#A<7gDxtH~}qM~}=tYlE}UPOAm6)L!dA G0RTHrmz*yE diff --git a/docs/html-primer/Medley-Primer_files/Image_151.gif b/docs/html-primer/Medley-Primer_files/Image_151.gif deleted file mode 100644 index 8beeabd425e32f342eed89bdeeb3b86974f0126b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmV-K0=xZ3Nk%w1VQc_T0Du4h00030|NkNR1OWg50RSuj0001N08an_0{(=LsmtvT zqnxzbi?iOmqYxyZ1eROqrN;Q7kGpEH%7v~S=g0g3tQiCPd@Nc97u3yoJKSycB<_sI zDh`#c(L=P9kLjcQHJP3vu9Y%5;$Y)d926fUlH)1{0)?jBf9 z8820DqpzF4zn?~*zh&h3v5QxU9yJmF20Ao15L&^16tVG}bWRh({)PfCRut9E(ngCM zKiYc;5GA`>^e7&*=SktplJB;t^H^%)%xvGd>E!8ap0}Mqs|meVbQaM}!-$1Bnl!4$ ziBhYsvx*fX)vQr}aV_fgE6=cErI9U*>@3=3Th}&I>oynMxW3xb?KStVth|k!GK$%f zsa}v;17lh`n54NxwbPE#dwfXpo?e=Ys_ZO}El z%M&={GQM-+PY>VTSmSxl={MPC-(IkG`0+J+aqL&o`ucJmA@hg&UtN|32q1xb`DY+V S2quW%fD9^_UxXDD0029-I3$k% diff --git a/docs/html-primer/Medley-Primer_files/Image_152.gif b/docs/html-primer/Medley-Primer_files/Image_152.gif deleted file mode 100644 index b4d58ef3e9d98e0e546b21c53029e710803de421..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681 zcmV;a0#^M;Nk%w1VRQi|0Du4h00030|NkNR1OWg50RSuj0001V0VV(d0{(=LsmtvT zQ;4+Mi?iOm`wwQpNQUMzHq*(r?hD6qOV+cxDmhRdyY{;Yhs2_>6ATJdC`8YoyhM-G zs`dIx`k=YmZpGyNz+tb>8Rl)F+$3}SWUsl{y8Uj{(%%x_yX@x_$N;wXH7J)THaB;O zhzA)d>5(S!HHMhhbxB8$%ALD(zFM9uvsdEMxnET6f15EW-+72{*87pa{LHVpqG&( zOPV~1GNsCuEL*yK2{We5nKWzKyoobK&Ye7a`uqtrsL-KAOD+tFG^x@M5|=uC3Kd5` z3r(Y5^k|jhpQ`b)aeYSv>%JLZv%=8%kAhf)H_DP*%a$PAwQ#+e%>yd!SX&VdK6I)%JZ02o$I>MzcN?{s~){eHpAV*zctH6e05#el<-B4quk$Zs=28RB58OsK;v8e zsUUthI`r1{YBRSCZrt$g(<_8~HP7vAQ4r$SwO`*}HT}wh&o9Y)9ct`Nfg5}VwxO7N z+KDz>E$$&!)^Ged^h`Pag+&Pw$kiub4A3<$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_154.gif b/docs/html-primer/Medley-Primer_files/Image_154.gif deleted file mode 100644 index 23db15f5c463371a13938bd511f9d81d7a063683..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2170 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 QjqGGAd)dsUM*#o;JJLT&H~;_u diff --git a/docs/html-primer/Medley-Primer_files/Image_156.png b/docs/html-primer/Medley-Primer_files/Image_156.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer_files/Image_157.png b/docs/html-primer/Medley-Primer_files/Image_157.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_158.png b/docs/html-primer/Medley-Primer_files/Image_158.png deleted file mode 100644 index 09a298f0bd3896ac1e59830923ca1183b07d64be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162 zcmeAS@N?(olHy`uVBq!ia0y~yU}^xeIXKvWWadV{{XmK>$=lt9;Xep2*t>i(P=vF< zBeIx*f$s;rukz`;n`t}~E z=$=sn1A`%(0E5CY1}26h5)KRv63iS70?7=F3`u&OLX7;^d=@MQDrE3<^>bP0l+XkK D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_159.gif b/docs/html-primer/Medley-Primer_files/Image_159.gif deleted file mode 100644 index 27d8e145e77f630d734d55f8b792640a863b2b07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2758 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 D(K;$W diff --git a/docs/html-primer/Medley-Primer_files/Image_161.png b/docs/html-primer/Medley-Primer_files/Image_161.png deleted file mode 100644 index 8990609ef99b23b4ce3a5be4128f06e73528ccae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmV-G0l)r08v#0u4?Au)~ugS`?gi4 diff --git a/docs/html-primer/Medley-Primer_files/document.css b/docs/html-primer/Medley-Primer_files/document.css deleted file mode 100644 index b085590e..00000000 --- a/docs/html-primer/Medley-Primer_files/document.css +++ /dev/null @@ -1,20 +0,0 @@ -@charset "UTF-8"; * {margin:0; padding:0; text-indent:0; } - .s1 { color: black; font-family:"Times New Roman", serif; font-style: italic; font-weight: normal; text-decoration: none; font-size: 24pt; } - h4 { color: black; font-family:Arial, sans-serif; font-style: normal; font-weight: bold; text-decoration: none; font-size: 10pt; } - .p, p { color: black; font-family:"Times New Roman", serif; font-style: normal; font-weight: normal; text-decoration: none; font-size: 10pt; margin:0pt; } - .s2 { color: black; font-family:Symbol, serif; font-style: normal; font-weight: normal; text-decoration: none; font-size: 10pt; } - h1 { color: black; font-family:Arial, sans-serif; font-style: normal; font-weight: bold; text-decoration: none; font-size: 18pt; } - .s3 { color: black; font-family:"Courier New", monospace; font-style: normal; font-weight: normal; text-decoration: none; font-size: 10pt; } - .s4 { color: black; font-family:"Times New Roman", serif; font-style: italic; font-weight: normal; text-decoration: none; font-size: 10pt; } - .s5 { color: black; font-family:Arial, sans-serif; font-style: normal; font-weight: bold; text-decoration: none; font-size: 14pt; } - .s6 { color: black; font-family:Arial, sans-serif; font-style: normal; font-weight: normal; text-decoration: none; font-size: 10pt; } - .s7 { color: black; font-family:Arial, sans-serif; font-style: normal; font-weight: normal; text-decoration: underline; font-size: 10pt; } - .s8 { color: black; font-family:Arial, sans-serif; font-style: normal; font-weight: normal; text-decoration: none; font-size: 10pt; vertical-align: -2pt; } - h2 { color: black; font-family:Arial, sans-serif; font-style: normal; font-weight: bold; text-decoration: underline; font-size: 14pt; } - .s9 { color: black; font-family:"Courier New", monospace; font-style: normal; font-weight: bold; text-decoration: none; font-size: 10pt; } - .s10 { color: black; font-family:"Times New Roman", serif; font-style: normal; font-weight: bold; text-decoration: none; font-size: 10pt; } - .s11 { color: black; font-family:"Courier New", monospace; font-style: normal; font-weight: normal; text-decoration: underline; font-size: 10pt; } - h3 { color: black; font-family:Arial, sans-serif; font-style: normal; font-weight: bold; text-decoration: none; font-size: 12pt; } - .s12 { color: black; font-family:"Courier New", monospace; font-style: normal; font-weight: normal; text-decoration: none; font-size: 12pt; } - .s13 { color: black; font-family:"Courier New", monospace; font-style: normal; font-weight: normal; text-decoration: none; font-size: 10pt; vertical-align: 2pt; } - .s14 { color: black; font-family:"Times New Roman", serif; font-style: italic; font-weight: bold; text-decoration: none; font-size: 10pt; } diff --git a/docs/html-primer/Medley-Primer_files/navigation.css b/docs/html-primer/Medley-Primer_files/navigation.css deleted file mode 100644 index f95cdfb3..00000000 --- a/docs/html-primer/Medley-Primer_files/navigation.css +++ /dev/null @@ -1,40 +0,0 @@ -@charset "UTF-8"; -.nav > a, .top_nav > a, .toc > a -{ -color: #663300; -font-family: Arial, Helvetica, sans-serif; -font-size: 12px; -font-weight: bold; -background-color: white; -cursor: pointer; -text-decoration:none; -} -.nav > a:hover, .top_nav > a:hover, .toc > a:hover -{ -text-decoration:underline; -} - -.toc0 -{ -display: block; -margin-left: 0pt -} - -.toc1 -{ -display: block; -margin-left: 10pt -} - - -.toc2 -{ -display: block; -margin-left: 20pt -} - -.toc > *:before -{ -content: "• "; -} - diff --git a/docs/html-primer/Medley-Primer_files/part1.htm b/docs/html-primer/Medley-Primer_files/part1.htm deleted file mode 100644 index 941adbf8..00000000 --- a/docs/html-primer/Medley-Primer_files/part1.htm +++ /dev/null @@ -1,2 +0,0 @@ - -001-TITLEPAGE

< Previous | Contents | Next >

Venue Medley for the Novice

image


Release 2.0

February, 1992


image


Address comments to:

Venue

User Documentation 1549 Industrial Road

San Carlos, CA 94070 415-508-9672

image

Medley for the Novice Release 2.0

February 1992

Copyright 1992 by Venue. All rights reserved.

Medley is a trademark of Venue.

Xerox is a registered trademark and InterPress is a trademark of Xerox Corporation.

UNIX is a registered trademark of UNIX System Laboratories. Post Script is a registered trademark of Adobe Systems Inc.

Copyright protection includes material generated from the

software programs displayed on the screen, such as icons, screen display looks, and the like.


image

The information in this document is subject to change without notice and should not be construed as a commitment by Venue. While every effort has been made to ensure the accuracy of this document, Venue assumes no responsibility for any errors that may appear.


Text was written and produced with Venue text formatting tools; Xerox printers were used to produce text masters. The typeface is Classic.

diff --git a/docs/html-primer/Medley-Primer_files/part10.htm b/docs/html-primer/Medley-Primer_files/part10.htm deleted file mode 100644 index c1c4471d..00000000 --- a/docs/html-primer/Medley-Primer_files/part10.htm +++ /dev/null @@ -1,2 +0,0 @@ - -07-EDITING-AND-SAVING

< Previous | Contents | Next >

7. EDITING AND SAVING

image


This chapter explains how to define functions, how to edit them, and how to save your work.


Defining Functions


DEFUN can be used to define new functions. The syntax for it is:

(DEFUN (<functionname> (<parameter-list><body-of-function>))

New functions can be created with DEFUN by typing directly into the Executive Window. Once defined, a function is a part of the Medley environment. For example, the function EXAMPLE-ADDER is defined in Figure 7-1.


image


Figure 7-1. Defining the Function EXAMPLE-ADDER


Now that the function is defined, it can be called from the Executive Window:


image


Figure 7-2.. After EXAMPLE-ADDER is defined, it can he executed The function returns 6, after printing out the message.

Functions can also be defined using the editor DEdit described above. To do this, simply type

(ED function-name ’FUNCTIONS)

You will be told that no definition exists for the function, and a menu will pop up asking you what type of function you would like to create:


image


Figure 7-3 Selecting a Function Template

Selecting the appropriate type will pop up an editor window with a function template. The use of the editor is explained in the Using the List Structure Editor section below.


Simple Editing in the Executive Window

First, type in an example function to edit:


3/41> (defun your-first-function (a b) (if (> a b)

’(the first is greater) ’(the second is greater)))

To run the function, type:

3/42> (YOUR-FIRST-FUNCTION 3 5) (THE SECOND IS GREATER)

Now, let’s alter this. Type:

3/43> FIX 41

Note that your original function is redisplayed, and ready to edit. (See Figure 7-4.)


image


Figure 7-4. Using FIX to Edit a Fundion


Move the text cursor to the appropriate place in the function by positioning the mouse cursor and pressing the left mouse button.

Delete text by moving the caret to the beginning of the section to be deleted. Hold the right mouse button down and move the mouse cursor over the text. All of the

highlighted text between the caret and mouse cursor is deleted when you release the right mouse button.

If you make a mistake, deletions can be undone. Press the UNDO key on the keypad to the left of the keyboard.

Now change GREATER to BIGGER:


1. Position the mouse cursor on the G of GREATER , and click the left mouse button. The text cursor is now where the mouse cursor is.

2. Next, press the right mouse button and hold it down. Notice that if you move the mouse cursor around, it will blacken the characters from the text cursor to the mouse cursor. Move the mouse so that the word "GREATER " is highlighted.

3. Release the right mouse button and GREATER is deleted.

4. Without moving the cursor, type in BIGGER .

5. There are two ways to end the editing session and run the function. One is to type Control-X. (Hold the Control key down, and type X.) Another is to move the text

cursor to the end of the line and crø In both cases, the function has been edited!

Try the new version of the function by typing:

3/48> (YOUR-FIRST-FUNCTION 8 9) (THE SECOND IS BIGGER)

and get the new result, or you can type:

3/49> REDO 42

(THE SECOND IS BIGGER)


Using the List Structure Editor


If the function you want to edit is not readily available (i.e. the function is not in the

Executive Window, and you can’t remember the history list number, or you simply have a lot of editing), use the List Structure Editor, often called SEdit. This editor is evoked with a call to ED:

81(ED ’YOUR-FIRST-FUNCTION ’FUNCTIONS)


Your function will be displayed in an edit window, as in Figure 7-5.

If there is no edit window on the screen, you will be prompted to create a window. As

before, hold the leff mouse button down, move the mouse until it form s a rectangle of an acceptable size and shape, then release the button. Your function definition will

automatically appear in this edit window.



image


Figure 7-5. An Edit Window


Many changes are easily done with the structure editor. Notice that by pressing the left mouse button you can place the caret in position, and by pressing the middle mouse

button you can select atoms or s-expressions. Repeated pressing of the middle button selects bigger pieces of text.


To add an expression that does not appear in the edit window (i.e., it cannot simply be underlined), place the caret at the insertion point and type it in.. For example, to

replace the first GREATER with LARGER, place the caret to the left of GREATER , as shown in Figure 7-6.


image


Figure 7-6. Caret Placement Prior to Changing GREATER with LARGER

Now press the DELETE key seven times, and type in LARGER . The window now looks like this:


image

Figure 7-7. GREATER Changed to LARGER

Notice the asterisk in the left edge of the title bar of the window. This designates that the function has be changed. Now exit the edit session by typing Control-X, and the function will be redifined.


Commenting Functions


Text can be marked as a comment by typing a semi-colon before the text of the comment.

; This is the form of a comment

Inside an editor window, the comment will be printed in a different font and may be moved to the far right of the code. SEdit is familiar with the Common Lisp convention of single comments being on the far right, double comments being justified with the

function level, and triple comments being on the far left, as is shown in Figure 7-8.


image


Figure 7-8. Placement of Comments

There are other editor commands which can be very useful. To learn about them, read Appendix B of the Release Notes.


File Functions and Variables: How to See and Save Them

With Medley, all work is done inside the Lisp environment. There is no operating system or command level other than the Executive Window. All functions and data

structures are defined and edited using normal Lisp commands. This sertion describes tools in the Medley environment that will keep track of any changes that you make in the environment that you have not yet saved on files, such as defining new functions,

changing the values of variables, or adding new variables. And it then has you save the changes in a file you specify. All of these functions are in the INTERLISP (IL:) package.


File Variables


Certain system-defined global variables are used by the file package to keep track of the environment as it stands. You can get system information by checking the values of

these variables. Two important variables follow.

FILELST evaluates to a list, all files that yoU have loaded into the Medley environment.

filenameCOMS (Each file loaded into the Lisp environment has associated with it a global variable, whose name is formed by appending COMS to the end of the filename.) This variable evaluates to a list of all the functions, variables, bitmaps, windows, and soon, that are stored on that particular file.

For example, if you type:

MYFILECOMS

the system will respond with something like:

((FNS YOUR-FIRST-FUNCTION ) VARS))


Saving Interlisp-D on Files

The functions (FILES?) and (MAKEFILE filename) are useful when it is time to save function, variables, windows, bitmaps, records and whatever else to files.

(FILES?) displays a list of variables that have values and are not already a part of any file, and then the functions that are not already part of any file.

Type:

(FILES?)

the system will respond with something like:

the variables: MY.VARIABLE CURRENT.TURTLE...to be dumped


the functions: RIGHT LEFT FORWARD BACKWARD CLEAR-SCREEN...to be dumped

want to say where the above go?


If you type Y, the system will prompt with each item. There are three options:

1. To save the item, type the filename (unquoted) of the file where the item should be placed. (This can be a brand new file or an existing file.)

2. To skip the item, without removing it from consideration the next

time (FILES?) is called, type crø This will allow you to postpone the decision about where to save the item.

3. If the item should not be saved at all, type ]. Nowhere will appear after the item.

Part of an example interaction is shown in the following figure:



image

Figure 7-9. Part of an interaction using the function FILES?

(FILES?) assembles the items by adding them to the appropriate file’s

COMS variable (see the File Variables section above). (FILES?) does NOT write the file to secondary storage (disks or floppies). It only

upclates the global variables discussed in the File Variables section above.


(MAKEFILE ’filename)

actually writes the file to secondary storage. Type:

(MAKEFILE ’MY.FILE.NAME)

and the system will create the file. The function returns the full name of the file created. (i.e. {DSK}MY.FlLE.NAME.; 1 ).


Files written to (DSK) are permanent files. They can be removed only by the user deleting them or by reformatting the disk.


Other file manipulation functions can be foun d in Chapter 4.

diff --git a/docs/html-primer/Medley-Primer_files/part11.htm b/docs/html-primer/Medley-Primer_files/part11.htm deleted file mode 100644 index 2a78a9c4..00000000 --- a/docs/html-primer/Medley-Primer_files/part11.htm +++ /dev/null @@ -1,2 +0,0 @@ - -08-YOUR-INIT

< Previous | Contents | Next >

8. YOUR INIT FILE

image


Lisp has a number of global variables that control the environment. Global variables make it easy to customize the environment to fit your needs. One way to do this is to

develop an INIT file. This is a file that is loaded when you start an image. You can use it to set variables, load files, define functions, and any other things that you want to do to make the Medley environment suit you.


Using the USERGREETFILES Variable


As described in File Variables section of Chapter 11, each program file has a global Your INIT file could be called INIT, INIT.LISP, INIT.USER, or whatever the

convention is at your site. There is no default name preferred by the system, it just

looks for the files listed in the variable USERGREETFILES (see below). Check to see what the preference is at your site. Put this file in your directory. Your directory name should be the same as your login name. The INIT file is loaded by the function GREET. GREET is normally run when Medley is started. If this is not the case at your site, or you want

to use the machine and Medley has already been started, you can run the function

GREET yourself. If your user name was, for example, TURING , then you would type:

(GREET ’TURING)

This does a number of things, including undoing any previous greeting operation,

loading the site init file, and loading your init file. Where GREET looks for your INIT file depends on the value of the variable USERGREETFILES. The value of this variable is set when the system’s SYSOUT file is made, so check its value at your site! For example, its value could be:


image

Figure 8-1. Possible Value of USERGREETFILES

In each place you see >USER>, the argument passed to GREET is substituted into the path. This is your login name if you are just starting Medley. For example, the first value in the list would have the system check to see whether there was a

{DSK}<LISPFlLES>TURING>INIT.LISP file. No error is generated if you do not have an INIT file, and none of the files in USERGREETFILES are foun d.


Making an Init File


As described in File Variables section of Chapter 11, each program file has a global

variable associated with it, whose name is formed by appending COMS to the end of the root filename. For any of the standard INIT file names, the variable INITCOMS is used. To set up an init file, begin by editing this variable. Type:

(DV INITCOMS)

8. YOUR INIT FILE


An SEdit window wiil appear. This window is the same as the one called with the

function DF, and described in the Using the List Structure Editor section in Chapter 7. This chapter assumes that you know how to use the SEdit structure editor .

The COMS variable is a list of lists. The first atom in each internal list specifies for the file package what types of items are in the list, and what it is to do with them. This

section will deal with three types of lists: VARS, FILES, and P. Please read about others in Chapter 17 of the IRM.

Notice that inside the vars list, there is yet another list. The first item in the list is the name of the variable. It is bound to the value of the second item. There are many other variables that you can set by adding them to the VARS list. Some of these variables are described in Chapter 24, and many others can be foun d in the IRM.

If you want to automatically load files, that can be done in your init file also. For

example, if you always want to load tho Library file SPY.LCOM , you can load it by editing tho INITCOMS variable to list the appropriate file in the list starting with FILES:

.

.

.

(FILES SPY)

.

.

.

Figure 8-2. INITCOMS Changed to Load SPY.LCOM File

Other files can also be added by simply adding their names to this FILES list.

Another list that can appear in a COMS list begins with P. This list contains Lisp

expressions that are evaluated when the file is loaded. Do not put DEFINEQ expressions in this list. Define the function in the environment, and then save it on the file in the

usual way (see Chapter 7).

One type of expression you might want to see here, however, is a FONTCREATE function (see Chapter 16). For example, of you want to use a Helvetica 12 BOLD font, and there is not a font descriptor for it normally in your environment, the appropriate call to FONTCREATE should be in the "P" list. The INITCOMS would look like this:

.

.

.

(FILES SPY)

(P (FONTCREATE ’HELVETICA 12 ’BOLD))

.

.

.


Figure 8-3. INITCOMS Edited to Include a call to FONTCREATE

To quit, exit from SEdit in the usual way. When you run the function MAKEFILES (see Chapter 7), be sure that you are connected to the directory (see Chapter 4) where the INIT file should appear. Now when GREET is run, your Init file will be loaded.



image

8-2 Medley for the Novice, Release 2.0

diff --git a/docs/html-primer/Medley-Primer_files/part12.htm b/docs/html-primer/Medley-Primer_files/part12.htm deleted file mode 100644 index f69c981a..00000000 --- a/docs/html-primer/Medley-Primer_files/part12.htm +++ /dev/null @@ -1,2 +0,0 @@ - -09-FLEXIBILITY

< Previous | Contents | Next >

9. MEDLEY FORGIVENESS: DWIM

image


DWIM (Do What I Mean) is an Interlisp utility that makes life easier.


DWIM tries to match unrecognized variable and function names to known ones. This allows Lisp to interpret minor typing errors or misspellings in a function, without

causing a break. Line 152 of Figure 9-1 illustrates how the misspelled BANNANNA was replaced by BANANA before the expression was evaluated.



image


Figure 9-1. Examples of DWIM Features


Sometimes DWIM may alter an expression you didn’t want it to. This may occur if, for

example, a hyphenated function name (e.g., (MY-FUNCTION) ) is misused. If the system does not recognize the function name, it may think you are trying to subtract "FUNCTION" from "MY". DWIM also takes the liberty of updating the function, so it will

have to be fixed. However, this is as much a blessing as a curse, since it points out the misused expression!

diff --git a/docs/html-primer/Medley-Primer_files/part13.htm b/docs/html-primer/Medley-Primer_files/part13.htm deleted file mode 100644 index 33e88f19..00000000 --- a/docs/html-primer/Medley-Primer_files/part13.htm +++ /dev/null @@ -1,2 +0,0 @@ - -10-BREAK-MENU

< Previous | Contents | Next >

10. BREAKPACKAGE

image


The Break Package is a part of Interlisp that makes debugging your programs much easier.


Break Windows

A break is a function either called by the programmer or by the system when an error has occurred. A separate window opens for each break. This window works much like the Executive Window, except for extra menus unique to a break window. Inside a

break window, you can examine variables, look at the call stack at the time of the

break, or call the editor. Each successive break opens a new window, where you can execute functions without disturbing the original system stack. These windows

disappear when you resolve the break and return to a higher level.


Break Package Example


This example illustrates the basic break package functions. A more complete explanation of the breaking functions, and the break package will follow.


The correct definition of FACTORIAL is:

(defun factorial (x) (if (zerop x)

1

(* x (factorial (1- x)))))


To demonstrate the break package, we have edited in an error: DUMMY in the IF statement is an unbound atom, it lacks a value.

((defun factorial (x) (if (zerop x)

dummy

(* x (factorial (1- x)))))

The evaluated function


(FACTORIAL 4)

should return 24, but the above function has an error. DUMMY is an unbound atom, an atom without an assigned value, so Lisp will "break". A break window appears (Figure 10-1), that has all the functionality of the typing lisp expressions into the Executive

Window (The top level), in addition to the break menu functions. Each consecutive break will move to another level "down".


image


Figure 10-1. Break Window


Move the mouse cursor into the break window and hold down the middle mouse button.

The Break Menu will appear. Choose BT. Another menu, called the stack menu, will appear beside the break window. Choosing stack items from this menu will display

another window. This window displays the function’s local variable bindings, or values (see Figure 10-2). This new window, titled FACTORlAL Frame, is an inspector window (see inspector Chapter 17).


image


Figure 10-2. Back Trace of the System Stack


From the break window, you can call the editor for the function FACTORIAL by middle- buttoning on the word FACTORIAL and selecting DisplayEdit from the menu that pops up.

Replace the unbound atom DUMMY with 1. Exit the editor .

The function is fixed, and you can restart it from the last call on the stack. (It does not have to be started again from the Top Level.) To begin again from the last call on the stack, choose the last (top) FACTORIAL call in the BT menu. Select REVERT from the middle button break window, or type it into the window. The break window will close, and a new one will appear with the message: Breakpoint at FACTORIAL

To start execution with this last call to FACTORIAL , choose OK from the middle button break menu. The break window will disappear, and the correct answer, 24, will be

returned to the top level.

10. BREAKPACKAGE

image


Ways to Stop Execution from the Keyboard (Breaking Lisp)


There are ways you can stop execution from the keyboard. They differ in terms of how much of the current operating state is saved:


Control-G Provides you with a menu of processes to interrupt. Your process will

usually be "EXEC". Choose it to break your process. A break window will then appear.

Control-B Causes your function to break, saves the stack, then displays a break window with all the usual break functions. For information on other interrupt characcers, see Chapter 30 in the IRM.


Break Menu


Move the mouse cursor into the break window. Hold the middle button down, and a new menu will pop up, like the one in Figure 10-3.


image


Figure 10-3. Middle Button Menu in Break window

Five of the selections are particularly important when just starting to use Medley:

BT Back Trace displays the stack in a menu beside the break window. Back

Trace is a very powerful debugging tool. Each function call is placed on the

stack and removed when the execution of that function is complete. Choosing an item on the stack will open another window displaying that item’s local

variables and their bindings. This is an inspector window that offers all the power of the inspector. (For details, see the section on the Inspector, Chapter 17.)

? = Before you use this menu option, display the stack by choosing BT from this menu, and choose a function from it. Now, choose ?=. It will display the

current values of the arguments to the function that has been chosen from the stack.

Move back to the previous break window, or if there is no other break window, back to the top level, the Executive Window.

REVERT Move the point of execution back to a specified function call before the error. The function to revert back to is, by default, the last function call before the break. If, however, a different function call is chosen on the BT menu, revert will go back to the start of this function and open a new break window. The

items on the stack above the new starting place will no longer exist. This is used in the tutorial example (see the Break Package Example section above).


OK Continue execution from the point of the break. This is useful if you have a simple error, i.e., an unbound variable or a nonnumeric argument to an

arithmetic function. Reset the variable in the break window, then select OK. (see the Break Package Example section above).

In addition to being available on the middle button menu of the break window, all of these functions can be typed directly into the window. Only BT behaves differently

when typed. It types the stack into the trace window instead of opening a new window.)


Returning to Top Level

Typing Control-D will immediately take you to the top level from any break window.

The functions called before the break will stop, but any side effect s of the function that occurred before the break remain. For example, if a function set a global variable before it broke, the variable will still be set after typing Control-D.

diff --git a/docs/html-primer/Medley-Primer_files/part14.htm b/docs/html-primer/Medley-Primer_files/part14.htm deleted file mode 100644 index c47dc398..00000000 --- a/docs/html-primer/Medley-Primer_files/part14.htm +++ /dev/null @@ -1,2 +0,0 @@ - -11-WHAT-TO-DO

< Previous | Contents | Next >

11. WHAT TO DO IF ...

image


The purpose of this chapter is to explain what to do in some of the problems commonly experienced by Medley users.


Executive Window turns black

An example is shown in Figure 11-1.

Press any key to unfreeze the window and continue. This pause happens when the command you just typed causes enough information to be printed to fill the window. It gives you a chance to read that one window of text before moving on.


image


Figure 11-1. Blackened Executive Window


You closed the Executive Window

Open another from the Background Menu.


Mouse disappears

Type (CURSOR T) in the Executive Window. The cursor will reappear.


Second window appears

This probably happens because you made a typing mistake, as in Figure 11-2.


image


Figure 11-2. Second Window Appears (Break Window) after Typing Error Made

Type a Control-D by simultaneously pressing the Control key and the "D". This aborts the error condition, returning control to the Executive Window.


You keep getting beeped at

Usually the beeping means that Medley want input from you. Look for the flashing

caret. It will usually be preceeded by some kind of prompt, indicating what you should type.


You cannot delete the first letter

of the filename you are typing to (FILES?) . Type Control-E (error) You will get a linefeed and  printed to the window. Now type the correct filename.

Your function is just sitting there

It is not returning a value, and you think that your program may be in an infinite loop or is having some other major problem. You can see what process is currently running by typing Control-T, or you could interrupt the process by typing Control-E.


A Break Window appears

If the Break Window look something like that shown in Figure 11-3, you are trying to save a file, but there is not enough space on the hard disk.


image


Figure 11-3. Break Window Caused by Insufficient Space in Save File

Exit from the Break Window by typing an up arrow followed by a Return. Delete old versions of files, and any other files you do not need. Then try again to save the file


You have run out of space

Generally, a Break Window has appeared. The GAINSPACE function allows you to delete non-essential data structures. To use it, type:

(GAINSPACE)

into the Executive Window. Answer N to all questions except the following:

• Delete edit history

• Delete history list

• Delete values of old variables

• Delete your MASTERSCOPE database

• Delete information for undoing your greeting. Save your work and reload Lisp as soon as possible.

A redefined message appears

The message (Some.Crucial.Function.Or.Variable redefined) appears in the

Executive Window (see Figure 11-4). The function, variable, or other property has been "smashed" (i.e., its original definition has been changed). If this is not what you

wanted, type UNDO immediately!

11. WHAT TO DO IF...

image


image


Figure 11-4. CAR redefined!


UNBOUND ATOM

If this occurs, you probably just typed something wrong, or you passed an argument that should have been quoted to a function.


UNDEFINED CAR OF FORM

First, look at what caused the error. If the CAR of the form is a list, then you typed something wrong. If it is an atom, then perhaps that atom does not have a function associated with it. If it is a CLISP word like if or for, then DWIM may have been

turned off (see Chapter 9). Type (DWIM ’C) to reenable DWIM.


You have traced APPLY

and your screen is spewing out information about everything going on in the

environment. Type Control E, and type (UNBREAK ’APPLY) before reeturning to the Executive.



[This page intentionally left blank]

diff --git a/docs/html-primer/Medley-Primer_files/part15.htm b/docs/html-primer/Medley-Primer_files/part15.htm deleted file mode 100644 index e5335846..00000000 --- a/docs/html-primer/Medley-Primer_files/part15.htm +++ /dev/null @@ -1,2 +0,0 @@ - -12-WINDOWS

< Previous | Contents | Next >

12. WINDOWS AND REGIONS

image


Windows


Windows have two basic parts: an area on the screen containing a collection of pixels,

and a property list. The window properties determine how the window looks, the menus that can be accessed from it, what should happen when the mouse is inside the window and a mouse button is pressed, and soon.


CREATEW

Some of the window’s properties can be specified when a window is created with the function CREATEW. In particular, it is easy to specify the size and position of the

window; its title; and the width of its borders.

(CREATEW region title borderw’idth)


Region is a record (named REGION , with the fields left, bottom , width, and height) or a list. A region describes a rectangular area on the screen, the window’s dimensions and position. The fields left and bottom refer to the position of the bottom leff corner of

the region on the screen. Wi dth and height refer to the width and height of the region. The usable space inside the window will be smaller than the width and height, because some of the window’s region is consumed by the title bar, and some is taken by the

borders.


Title is a string that will be placed in the title bar of the window.


Borderwidth is the width of the border around the exterior of the window, in number of pixels.


For example, typing:

(SETQ MY.WINDOW (CREATEW (CREATEREGION l00 150 300 200) "THIS IS MY OWN WINDOW")

or

(SETQ MY.WINDOW (CREATEW

(CREATEW ’(100 150 300 200) "THIS IS MY OWN WINDOW")

produces a window with a default borderwidth. Note that you did not need to specify all the window’s properties (see Figure 12-1).


image


Figure 12-1. Creating a Window


In fact, if (CREATEW) is called without specifying a region, you will be prompted to sweep out a region for the window (see Chapter 10)


WlNDOWPROP

The function to access or add to any property of a window’s property list is

WINDOWPROP.

(WINDOWPROP window property <value>)


When you use WINDOWPROP with only two arguments—window and property—it

returns the value of the window’s property. When you use WINDOWPROP with all three

arguments—window, property and value—it sets the value the window’s property to the value you inserted for the third argument.


For example, consider the window, MY WINDOW , created using (CREATEW). TITLE and

REGION are both properties. Type

(WINDOWPROP MY.WINDOW ’TITLE)

and the value of MY.WlNDOW’s TITLE property is returned, "THIS 1S MY OWN WINDOW". To change the title, use the WINDOWPROP function, and give it the window, the property title, and the new title of the window.

(WINDOWPROP MY.WINDOW ’TITLE "MY FIRST WINDOW")

automatically changes the title and automatically updates the window. Now the window looks like Figure 12-2.



image


Figure 12-2. TITLE is a Window Property

Altering the region of the window, MY.WINDOW, is also be done with WINDOWPROP, in the same way you changed the title. (Changing either of the first two numbers of a region

changes the position of the window on the screen. Changing either of the last two numbers changes the dimensions of the window itself.)


Getting Windows to Do Things

Four basic window properties will be discussed here: CURSORINFN , CURSOROUTFN, CURSORMOVEDFN, and BUTTONEVENTFN.

A function can be stored as the value of the CURSORlNFN property of a window. It is called when the mouse cursor is moved into that window.

Look at the following example:


1. First, create a window called MY.WINDOW. Type:

(SETQ MY.WINDQW

(CREATEW

(CREATEREGION 200 200 200 200) "THIS WINDOW WILL SCREAM!"))

This creates a window.


2. Now define the function SCREAME R. It will be stored on the property CURSOR1NFN . (Notice that this function has one argument, WlNDOWNAM E. All functions called from the property CURSOR1NFN are passed the window it was called from. So the value of MY.WINDOW is bound to WINDOWNAME. When it is called, SCREAMER simply rings

bells.


(DEFINEQ (SCREAMER (WINDOWNAME) (RINGBELLS)

(PROMPTPRINT "YAY - IT WORKS!") (RINGBELLS)))


3. Now, alter that window’s CURSORINFN property, so that the system calls the function SCREAMER at the appropriate time. Type:

(WINDOWPROP MY.WINDOW ’CURSORINFN (FUNCTION SCREAMER))

4. After this, when you move the mouse cursor into MY.WlNDOW , the CURSORINFN

property’s function is called, and it rings bells twice.


CURSORINFN is one of the many window properties that come with each window - just as REGION and TITLE did. Other properties include:

CURSOROUTFN The function that is the value of this property is executed when the cursor is moved out of a window.

CURSORMOVEDFN The function that is the value of this property is executed when the cursor is moved while it is inside the window.

BUTTONEVENTFN The function that is the value of this property is executed when either the left or middle mouse buttons are pressed (or released).


Figure 12-3 shows MY.WlNDOW’s properties. Notice that the CURSORINFN has the

function SCREAMER stored in it. The properties were shown in this window using the function INSPECT. INSPECT is covered in Chapter 17.


image


Figure 12-3. Inspecting MY.WINDOW for Mouse-Related Window Properties


You can define functions for the values of the properties CURSOROUTFN and CURSORMOVEDFN in much the same way as you did for CURSORINFN. The function that is the value of the property BUTTONEVENTF N, however, can be specialized to respond in different ways, depending on which mouse button is pressed. This is explained in the

next section.


BUTTONEVENTFN


BUTTONEVENTFN is another property of a window. The function that is stored as the value of this property is called when tho mouse is inside the window, and a mouse button is pressed. As an example of how to use it, type:

(WINDOWPROP MY.WINDOW ’BUTTONEVENTFN (FUNCTION SCREAMER))

When the mouse cursor is moved into the window, bells will ring because of the CURS0RlNFN, but it will also ring bells when either the left or middle mouse button is pressed. Notice that the right mouse button functions as it usually does, with the

window manipulation menu. If only the left button should evoke the function SCREAMER, then the function can be written to do just this, using the function MOUSESTATE, and a form that only MOUSESTATE understands, ONLY. For example:

(DEFINEQ

(SCREAMER2 (WINDOWNAME)

(if (MOUSESTATE (ONLY LEFT)) then (RINGBELLS))))


In addition to (ONLY LEFT), MOUSESTATE can also be passed (ONLY MIDDLE) , (ONLY RIGHT) or combinations of these (e.g. (OR (ONLY LEFT) (ONLY MIDDLE))). You do not need to use ONLY with MOUSESTATE for every application. ONLY means that that

button is pressed and no other.

If you do write a function using (ONLY RIGHT), be sure that your function also checks position of the mouse cursor. Even if you want your function to be executed when the mouse cursor is inside the window and the right button is pressed, there is a convention that the function DOWINDOWCOM should be executed when the mouse cursor is in the

title bar or the border of the window and the right mouse button is pressed. Please

program your windows using this tradition! For more information, please see Chapter 28 in the IRM.


Looking at a Window’s Properties

INSPECT is a function that displays a list of the properties of a window, and their values. Figure 12.3 shows the INSPECT function run with MY.WINDOW . Note the

properties introduced in CREATEW : WBORDER is the window’s border, REG is the region, and WTITLE is the window’s title.


Regions


A region is a record, with the fields LEFT, BOTTOM , WIDTH, and HEIGHT. LEFT and BOTTOM refer to where the bottom left hand corner of the region is positioned on the screen. WIDTH and HEIGHT refer to the width and height of the region.


CREATEREGION creates an instance of a record of type REGION . Type:

(SETQ MY.REGION (CREATEREGION 15 l00 200 450))

to create a record of type REGION that denotes a rectangle 200 pixels high, and 450 pixels wide, whose bottom left corner is at position (15, 100). This record instance can be passed to any function that requires a region as an argument, such as CREATEW , above.

diff --git a/docs/html-primer/Medley-Primer_files/part16.htm b/docs/html-primer/Medley-Primer_files/part16.htm deleted file mode 100644 index ecf2d40f..00000000 --- a/docs/html-primer/Medley-Primer_files/part16.htm +++ /dev/null @@ -1,2 +0,0 @@ - -13-WHAT-ARE-MENUS

< Previous | Contents | Next >

13. WHAT ARE MENUS?

image


While Medley provides a number of menus of its own (see Chapter 3), this section

addresses the menus you wish to create. You will learn how to create a menu, display a menu, and define functions that make your menu useful. Menus are instances of

records (see Chapter 24). There are 27 fields that determine the composition of every menu. Because Medley provides default values for most of these descriptive fields, you need to familiarize yourself with only a few that we describe in this section.

Two of these fields, the TITLE of your menu, and the ITEMS you wish it to contain, can be typed into the executive window as shown below:

image

Figure 13-1. Creating a menu

Note that creating a menu does not display it. MY.MENU is set to an instance of a menu record that specifies how the menu will look, but the menu is not displayed.


Displaying Menus


Typing either the MENU or ADDNENU functions will display your menu on the screen. MENU implements pop-up menus, like the Background Menu or the Window Menu. ADDMENU puts menus into a semi-permanent window on the screen, and lets you select items from it.

(MENU MENU POSITION) pops up a menu at a particular position on the screen. Type:

(MENU MY.MENU NIL)

to position the menu at the end of the mouse cursor. Note that the POSITION argument is NIL. In order to go on, you must either choose an item, or move outside the menu

window and press a mouse button. When you do either, the menu will disappear. If you choose an item, then want to choose another, the menu must be redisplayed.

(ADDMENU menu window position) positions a permanent menu on the screen, or in an existing window.

Type:

(ADDMENU MY.MENU)

to display the menu as shown in Figure 13-2. This menu will remain active, (will stay on the screen) without stopping all the other processes. Because ADDMENU can display a menu without stopping all other processes, it is very popular in users programs.


If window is specified, the menu is displayed in that window. If window is not specified, a window the correct size for the menu is created, and the menu is displayed in that

window.

If position is not specified, the menu appears at the current position of the mouse cursor.


image

Figure 13-2. Simple MenuDisplayed with ADDMENU


Getting Menus to Do Stuff

One way to make a menu do things is to specify more about the menu items. Instead of items simply being the strings or atoms that will appear in the menu, items can be lists, each list with three elements (see Figure 13-3). The first element of each list is what

will appear in the menu; the second expression is what is evaluated, and the results of the evaluation returned, when the item is selected; and the third expression is the

expression that should be printed in the Prompt window when a mouse button is held down while the mouse is pointing to that menu item. This third item should be thought of as help text for the user. If the third element of the list is NIL, the system responds with Will select this item w hen you release the button.

image


Figure 13-3. Creating a Menu to do Things, then displaying it with the function

ADDMENU


Now when an item is selected from MY.MENU2, something will happen. When a mouse button is held down, the expression typed as the third element in the item’s

specification will be printed in the Prompt window. (See Figure 13-4.)


image


Figure 13-4. Mouse Button Held Down While Mouse Cursor SeIects NEXT.QUESTION


When the mouse button is released (i.e., the item is selected) the expression that was typed as the second element of the item’s specification will be run. (See Figure 13-5.)

image

Figure 13-5. NEXT-QUESTION Selected


WHENHELDFN and WHENSELECTEDFN Fields of a Menu

Another way to get a menu to do things is to define functions, and make them the

values of the menu’s WHENHELDFN and WHENSELECTEDFN fields. As the value of the

WHENHELDFN field of a menu, the function you defined will be executed when you press

and hold a mouse button inside the menu. As the value of the WHENSELECTEDFN field of a menu, the function you defined will be executed when you choose a menu item. This

example has the same functionality as the previous example, where each menu item was entered as a list of three items.

As an example, type in these two functions so that they can be executed when the menu is created and displayed:


(DEFINEQ (MY.MENU3.WHENHELD (ITEM.SELECTED MENU.FROM BUTTON.PRESSED)

(SELECTQ ITEM.SELECTED

(QUIT (PROMPTPRINT "CHOOSE THIS TO STOP")

(NEXT-QUESTION (PROMPTPRINT "CHOOSE THIS TO BE ASKED THE NEXT QUESTION"))

(NEXT-TOPIC (PROMPTPRINT "CHOOSE THIS TO MOVE ON TO THE NEXT SUBJECT"))

(SEE-TOPICS (PROMPTPRINT "CHOOSE THIS TO SEE THE TOPICS NOT YET LEARNED"))

(ERROR (PROMPTPRINT "NO MATCH FOUND"))))


(DEFINEQ (MY.MENU3.WHENSELECTED (ITEM.SELECTED MENU.FROM BUTTON.PRESSED)

(SELECTQ ITEM.SELECTED

(QUIT (PRINT "STOPPED")

(NEXT-QUESTION (PRINT "HERE IS THE NEXT QUESTION")) (NEXT-TOPIC (PRINT "HERE IS THE NEXT SUBJECT")) (SEE-TOPICS (PRINT "THE FOLLOWING HAVE NOT BEEN

LEARNED . . ."))

(ERROR (PROMPTPRINT "NO MATCH FOUND"))))


Now, to create the menu, type:

(SETQ MY.MENU3 (CREATE MENU

TITLE "PLEASE CHOOSE ONE OF THE ITEMS"

ITEMS ’(QUIT NEXT-QUESTION NEXT-TOPIC SEE-TOPICS) WHENHELDFN (FUNCTION MY.MENU3.WHENHELD) WHENSELECTEDFN (FUNCTION MY.MENU3.WHENSELECTED)))

To see your menu work, type

(ADDMENU MY.MENU3)

Now, due to executing the WHENHELDFN function, holding down any mouse button while pointing to a menu item will display an explanation of the item in the prompt window.

The screen will once again look like Figure 13-4 when the mouse button is held when the mouse cursor is pointing to the item NEXT-TOPIC .

Now due to executing the WHENSELECTEDFN function, releasing the mouse button to select an item will cause the proper actions for that item to be taken. The screen will once again look like Figure 13-5 when the item NEXT-TOPIC is selected. The crucial

thing to note is that the functions you defined for WHENHELDFN and WHENSELECTEDFN

are automatically given the following arguments:


1. The item that was sølected, ITEM.SELECTED

2. The menu it was selected from, MENU.FROM

3. The mousø button that was pressed BUTTON PRESSED

These functions, MY.MENU3.WHENHELD and MY.MENU3.WHENSELECTED, were quoted

using FUNCTION instead of QUOTE both for program readability and so that the compiler can produce faster code when the program is compiled. It is good style to quote

functions in Lisp by using the function FUNCTION instead of QUOTE.


Looking at a Menu’s Fields

INSPECT is a function that displays a list of the fields of a menu, and their values. Figure 13-6 shows the various fields of MY.MENU3 when the function (INSPECT

MY.MENU3) was called. Notice the values that were assigned by the examples, and all the defaults.

image

Figure 13-6. MY.MENU3 Fields

diff --git a/docs/html-primer/Medley-Primer_files/part17.htm b/docs/html-primer/Medley-Primer_files/part17.htm deleted file mode 100644 index 03ee2125..00000000 --- a/docs/html-primer/Medley-Primer_files/part17.htm +++ /dev/null @@ -1,2 +0,0 @@ - -14-BITMAPS

< Previous | Contents | Next >

14. BITMAPS

image


A bitmap is a rectangular array of dots. The dots are called "pixels" (for picture

elements). Each dot, or pixel, is represented by a single bit. When a pixel or bit is turned on (i.e. that bit set to 1), a black dot is inserted into a bitmap. If you have a bitmap of a floppy on your screen (Figure 14-1), then all of the bits in the area that make up the floppy are turned on, and the surrounding bits are turned off.



image


Figure 14-1. Bitmap of a Floppy


BITMAPCREATE creates a bitmap, even though it can’t be seen.

(BITMAPCREATE width height)

If the width and height are not supplied, the system will prompt you for them.

EDITBM edits the bitmap. The syntax of the function is:

(EDITBM bitmapname)

Try the following to produce the results in Figure 14-4:

(SETQ MY.BITMAP (BITMAPCREATE 60 40)) EDITBM MY.BITMAP)


To dra w In the bitmap, move the mouse into the gridded section of the bitmap editor, and press and hold the leff mouse button. Move the mouse around to turn on the bits

represented by the spaces in the grid. Notice that each space in the grid represents one pixel on the bitmap

To erase Move the mouse into the gridded section of the bitmap editor, and press and hold the center mouse button. Move the mouse around to turn off the bits represented by the spaces in the gridded section of the bitmap editor.


To w ork on a different section Point with the mouse cursor to the picture of the

actual bitmap (the upper left corner of the bitmap editor). Press and hold the left mouse button. A menu with the single item, Move will appear. (See Figure 14-2.) Choose this

item.


image

Figure 14-2. Menu with Single Item (Move)


You will be asked to position a ghost window over the bitmap. This ghost window

represents the portion of the bitmap that you are currently editing. Place it over the

section of the bitmap that you wish to edit and click the left mouse button (see Figure 14-3).


image

Figure 14-3. Ghost Window Awaiting Positioning


To end the session, bring the mouse cursor into the upper-right portion of the window (the grey area) and press the center button. Select OK from the menu to save your

artwork.


image

Figure 14-4. Editing a Bitmap


BITBLT is the primitive function for moving bits (or pixels) from one bitmap to another.

It extracts bits from the source bitmap, and combines them in appropriate ways with those of the destination bitmap. The syntax of the function is:


(BITBLT sourcebitmap sourcelefl sourcebottom destinationbitmap destinationleft destinationbottom width height sourcetype operation texture clippIngregion)


Here’s how it’s done —using MY.BITMAP as the sourcebitmap and MY.WlNDOW as the destinationbitmap.

(BITBLT MY.BITMAP NIL NIL

MY.WINDOW NIL NIL NIL NIL ‘INPUT ‘REPLACE)


Note that the destination bitmap can be, and usually is, a window. Actually, it is the bitmap of a window, but the system handles that detail for you. Because of the NILs

(meaning "use the default"), MY.BITMAP will be BITBLT’d into the lower right corner of

MY.WlNDOW (see Figure 14-5).


image


Figure 14-5. BITBLT ing a Bitmap onto a Window Here is what each of the BITBLT arguments to the function mean:

sourcebitmap The bitmap to be moved into the destinationbitmap

sourceleft A number, starting at 0 for the left edge of the

sourcebitmap, that tells BITBLT where to start moving pixels from the sourcebitmap. For example, if the leftmost 10 pixels of sourcebitmap were not to be moved, sourceleft should be 10. The default value is 0.

sourcebottom A number, starting at 0 for the bottom edge of the

sourcebitmap, that tells BITBLT where to start moving pixels from the sourcebitmap. For example, if the bottom 10 rows of pixels of sourcebitmap were not to be moved, sourcebottom should be 10 The default value is 0.

destinationbitmap The bitmap that will receive the sourcebitmap. This is

often a window (actually the bitmap of a window, but Interlisp-D takes care of that for you).

destinationleft A number, starting at 0 for the left edge of the

destinationbitmap, that tells BITBLT where to start placing pixels from the sourcebitmap. For example, to place the

sourcebitmap 10 pixels in from the left, destinationleft should be 10. The default value is 0.


destinationbottom A number, starting at 0 for the bottom edge of the

destinationbitmap, that tells BITBLT where to start placing pixels from the sourcebitmap. For example, to place the

sourcebitmap 10 pixels up from the bottom,

destinationbottom should be 10. The default value is 0.

width How many pixels in each row of sourcebitmap should be moved. The samc amount of space is used in

destinationbitmap to receive the sourcebitmap. If this

argument is NIL, it defaults to the number of pixels from sourceleft to the end of the row of sourcebitmap.

height How many rows of pixels of sourcebitmap should be moved.

The same amount of space is used in destinationbitmap to receive the sourcebitmap. If this argument is NIL, it

defaults to the number of rows from sourcebottom to the top of the sourcebitmap.

sourcetype Refers to one of three ways to convert the sourcebitmap for

writing. For now, just use ’INPUT.

operation Refers to how the sourtebitmap gets BITBLT ’d on to the destinationbitmap. ’REPLACE will BLT the exact

sourcebitmap. Other operations allow you to AND, OR or XOR the bits from the sourcebitmap onto the bits on the destinationbitmap.

texture J ust use NIL for now.

clippingregion J ust use NIL for now.


For more information on these operations, see Chapter 27 in the IRM.

diff --git a/docs/html-primer/Medley-Primer_files/part18.htm b/docs/html-primer/Medley-Primer_files/part18.htm deleted file mode 100644 index c3a9dc89..00000000 --- a/docs/html-primer/Medley-Primer_files/part18.htm +++ /dev/null @@ -1,2 +0,0 @@ - -15-DISPLAYSTREAMS

< Previous | Contents | Next >

15. DISPLAYSTREAMS

image


A displaystream is a genera Jized "place to display". They determine exactly what is displayed where. One example of a displaystream is a window. Windows are the only

displaystreams that will be used in this chapter. If you want to draw on a bitmap that is not a window, other than with BITBLT, or want to use other types of displaystreams, please refer to Chapter 27 in the IRM.


This chapter explains functions for drawing on displaystreams: DRAWLINE , DRAWTO, DRAWCIRCLE., and FILLCIRCLE. In addition, functions for locating and changIng your curreAt position in the displaystream are covered: DSPXPOSITION , DSPYPOSITION, and MOVETO.


Drawing on a Displaystream


The examples belowshow you how the functions for drawing on a display stream work. First, create a window. Windows are displaystreams, and the one you create are used for the examples in this chapter. Type:

(SETQ EXAMPLE.WINDOW (CREATEW))


DRAWLlNE


DRAWLINE draws a line in a displaystream. For example, type:

(DRAWLINE 10 15 100 150 5 ’INVERT EXAMPLE.WINDOW)

The results should look like Figure 15-1:

image

Figure 15-1. Line Drawn onto the EXAMPLE.WINDOW Displayrtream The syntax of DRAWLINE is

(DRAWLINE x1 y1 x2 y2 width operation stream color dashing)

The coordinates of the left bottom corner of the displaystream are 0 0.


xl and yl x and y coordinates of the beginning of the line x2andy2 ending coordinates of the line

width width of the line, in pixels

operation way the line is to be drawn. INVERT causes the line to invert the bits that are already in the displaystream. Drawing a line the second time using INVERT erases the line. For other operations, see Chapter 27 in the IRM.

stream displaystream. In this case, you used a window.


DRAWTO


DRAWTO draws a line that begins at your current position in the displaystream. For example, type:

(DRAWTO 120 135 5 ’INVERT EXAMPLE.WINDOW)

The results should look like Figure 15-2:


image

Figure 15-2. Another Line drawn onto the EXAMPLE.WINDOW Displaystream The syntax of DRAWTO is

(DRAWTO x y width operation stream color dashing)


The line begins at the current position in the displaystream. x x coordinate of the end of the line

y y coordinate of the end of the line

width width of the line

operation way the lino is to be drawn. INVERT causes the line to invert the bits that aro already in tho displaystream. Drawing a line the second time using INVERT erases the line. For other operations, see Chapter 27 in the IRM

stream displaystreom. In this case. you used a window.


DRAWClRCLE


DRAWCIRCLE draws a circle on a displaystream. To use it, type:

(DRAWCIRCLE 150 100 30 ’(VERTICAL 5) NIL EXAMPLE.WINDOW)

Now your window, EXAMPLE.WlNDOW, should look like Figure 15-3:


image

Figure 15-3. Circle Drawn onto the EXAMPLE.WlNDOW Displaystream The syntax of DRAWCIRCLE is

(DRAWCIRCLE centerx centery radius brush dashing stream) centerx x coordinate of the center of the circle

centery coordinate of the center of the circle radius radius of the circle in pixels

brush list.- The first- item of the list is the shape of the brush. Some of your

options include ROUND, SQUARE, and VERTICAL. The second item of that list is the width of the brush in pixels.

dashing list of positive integers. The brush is "on" for the number of units

indicated by the first element of the list, "off" for the number of units

indicated by the second element of the list. The third element specifies how long it will be on again, and so forth. The sequence is repeated until the circle has been drawn.

stream displaystream. In this case, you used a window.


FlLLClRCLE


FILLCIRCLE draws a filled circle on a displaystream. To use it, type:

(FILLCIRCLE 200 150 10 GRAYSHADE EXAMPLE.WINDOW)

EXAMPLE.WlNDOW now looks like Figure 15-4:


image


Figure 15-4. A filled circle drawn onto the displaystream The syntax of FILLCIRCLE is:

(FILLCIRCLE centerx centery radius texture stream) centerx x coordinate of the center of the circle

centery y coordinate of the center of the ci rcle radius radius of the circle in pixels

texture shade that will be used to fill in the circle. Interlisp-D provides you with

three shades: WHlTESHADE , BLACKSHADE, and GRAYSHADE. You can also create your own shades. For more information on how to do this, see

Chapter 27 in the IRM.

stream displaystream. In this case, you used a window

There are many other functions for drawing on a displaystream. Please refer to Chapter 27 in the IRM.

Text can also be placed into displaystreams. To do this, use printing functions such as PRIN1 and PRIN2, but supply the name of the displaystream as the "file" to print to. To place the text in the proper position in the displaystream, see the section below.


Locating and Changing Your Position in a Displaystream


There are functions provided to locate, and to change your current position in a

displayitream. This can help you place text, and other images where you want them in

a displaystream. This primer will only discuss three of these. There are others, and they can be foun d in the Chapter 27 of the IRM.


DSPXPOSlTlON

DSPXPOSITION is a function that will either change the current x position in a

displaystream, or simply report it. To have the function report the current x position in

EXAMPLE.WlNDOW, type:

(DSPXPOSITION NIL EXAMPLE.WINDOW)


DSPXPOSITION expects two arguments. The first is the new x position. If this argument is NIL, the current position is not changed, merely reported. The second argument is

the displaystream.


DSPYPOSlTlON

DSPYPOSITION is an analogous function, but It changes or reports the current y

position in a displaystream. As with DSPXPOSlTlON , if the first argument is a number, the current y position will be changed to that position. If it is NIL, the current position is simply reported. To have the function report the current y position in EXAMPLE.WlNDOW, type:

(DSPYPOSITION NIL EXAMPLE.WlNDOW)


MOVETO

The function MOVETO always changes your position in the displaystream. It expects three arguments:

(MOVETO x y stream)


x new x position in the display stream

y new y position in the display stream

stream display stream. The examples so far have used a window

diff --git a/docs/html-primer/Medley-Primer_files/part19.htm b/docs/html-primer/Medley-Primer_files/part19.htm deleted file mode 100644 index 3216076b..00000000 --- a/docs/html-primer/Medley-Primer_files/part19.htm +++ /dev/null @@ -1,2 +0,0 @@ - -16-FONTS

< Previous | Contents | Next >

16. FONTS

image


This chapter explains font s and font descriptors, what they are and how to use them, so that you can use functions requiring font descriptors

You have already been exposed to many font s in Medley. For example, when you use the structure editor, DEdit (see the Using the List Structure Editor section of Chapter 7), you noticed that the comments were printed in a smaller font than the code, and

that CLlSP words (see the CLISP section of Chapter 9) were printed in a darker font

than the other words in the function. These are only some of the font s that are available in Medley.

In addition to the font s that appear on your screen, Medley uses font s for printers that are different than the ones used for the screen. The font s used to print to the screen are called DlSPLAYFONTS. The font s used for prining are called INTERPRESSFONTS , or PRESSFONTS, depending on the type of printer.


What Makes Up a Font


Fonts are described by family, weight, slope, width, and size. This section discusses each of these, and describes how they affect the font you see on the screen.

Family is one way that font s can differ. Here are some examples of how "family" affect s the look of a font:

CLASSIC This family makes the word "Able" look like this: Able MODERN This family makes the word "Able" look like this: Able TITAN This family makes the word "Able" look like this: Able

Weight also determines the look of a font. Once again, "Able" will be used as an example, this time only with the Classic family. A font’s weight can be:

BOLD And look like this: Able

MEDIUM

or REGULAR And look like this: Able

The slope of a font is italic or regular. Using the Classic family font again, in a regular weight, the slope affect s the font like this:

ITALIC Looks like this: Able

REGULAR Looks like this: Able

The width of a font is called its "expansion". It can be COMPRESSED , REGULAR, or

EXPANDED.

Together, the weight, slope, and expansion of a font specifies the font’s "face". Specifically, the face of a font is a three element list:

(weight slope expansion)

To make it easier to type, when a function requires a font face as an argument, it can be abbreviated with a three-character atom. The first specifies the weight, the second the


slope, and the third character the expansion. For example, some common font faces are abbreviated:

MRR This is the usual face, MEDIUM, REGULAR, REGULAR

MIR Makes an italic font. It stands for: MEDIUM , ITALIC, REGULAR

BRR Makes a bold font. The abbreviation means: BOLD, REGULAR , REGULAR BIR Means that the font should be both bold and italic. BIR stands for BOLD,

ITALIC, REGULAR

The above examples are used so oflen, that there are also more mnemonic abbreviations for them. They can also be used to specify a font face for a function that requires a face as an argument. They are:


STANDARD This is the usual face: MEDIUM, REGULAR, REGULAR; it was abbreviated above, MRR

ITALIC This was abbreviated above as MIR, and specifies an italic font

BOLD Makes a bold font; it was abbreviated above, BRR

BOLDITALIC Makes a font both bold and italic: BOLD, ITALIC , REGULAR; it was abbreviated above, BIR

A font also has a size. It is a positive integer that specifies the height of the font in

printers points. A point is, on an 1108 screen, about 1/72 of an inch. On the screen of an 1186, a point is 1/80 of an inch. The size of the font used in this chapter is 10. For

comparison, here is an example of a TITAN, MRR, size 12 font: Able.


Fontdescriptors and FONTCREATE

For Medley to use a font, it must have a font descriptor. A font descriptor is a data type in Interlisp-D that that holds all the information needed in order to use a particular font. When you print out a font descriptor, it looks like this:

{FONTDESCRIPTOR}#74,45540

Fontdescriptors are created by the function FONTCREATE . For example,

(FONTCREATE ’HELVETICA 12 ’BOLD)

creates a font descriptor that, when used by other functions, prints in HELVETICA BOLD size 12. Interlisp-D functions that work with font s expect a font descriptor produced

with the FONTCREATE function. The syntax of FONTCREATE is:

(FONTCREATE family size face)

Remember from the previous section, face is either a three element list (weight slope expansion), a three character atom abbreviation, e.g. MRR, or one of the mnemonic

abbreviations, e.g. STANDARD .

If FONTCREATE is asked to create a font descriptor that a J ready exists, the existing font descriptor is simply returned.


Display Fonts

Display font s require files that contain the bitmaps used to print each character on the screen. All of these files have the extension .DlSPLAYFONT . The file name itself

describes the font style and size that uses its bitmaps. For example:

MODERN12.DISPLAYFONT

contains bitmaps for the font family MODERN in size 12 points. Wherever you put your

.DISPLAYFONT files, you should make this one of the values of the variable DISPLAYFONTDIRECTORIES. Its value is a list of directories to search for the bitmap files for display font s. Usually, it contains the "FONT" directory where you copied the bitmap files, and the current connected directory. The current connected directory is

specified by the atom NIL. When looking for a .DISPLAYFONT file, the system checks the FONT directory on the hard disk, then the current connected directory.

Figure 16-1 shows an example value of DISPLAYFONTDIRECTORIES :


image


Figure 16-1. Value for the Atom DISFLAYFONTDIRECTORIES


InterPress Fonts

InterPress is the format that is used by Xerox laser printers. These printers normally have a resolution that is much higher than that of the screen: 300 points per inch.

To format files appropriately for output on such a printer, Interlisp must know the

actual size for each character that is to be printed. This is done through the use of width files that contain font width information for font s in InterPress format. For InterPress font s, you should make the location of these files one of the values of the variable INTERPRESSFONTDIRECTORIES. Its value is a list of directories to search for the font widths files for InterPress font s. Figure 16-2 is an example value of INTERPRESSFONTDIRECTORIES:



image


Figure 16-2. Value for Atom INTERPRESSFONTDIRECTORIES


Functions for Using Fonts


FONTPR0P Looking at Font Properties

It is possible to see the properties of a font descriptor. This s done with the function FONTPROP. For the following examples, the font descriptor used will be the one returned by the function (DEFAULTFONT ’DISPLAY) . In other words, the font descriptor

examined will be the default display font for the system.

There are many properties of a font that might be useful for you. Some of these are:


FAMILY To see the family of a font descriptor, type:

(FONTPROP (DEFAULTFONT ’DISPLAY) ’FAMILY)

SIZE As above, this is a positive integer that determines the height of the font in printer’s points. As an example, the SIZE of the current default font is:

image


Figure 16-3. Value of Font Property SIZE of Default Font

ASCENT The value of this property is a positive integer, the maximum height of

any character in the specified font from the baseline (bottom). The top of


the tallest character in the font, then, will be at (BASELINE + ASCENT

- l). For example, the ASCENT of the default font is:


image

Figure 16-4. Value Font Property ASCENT of Default Font

DESCENT The DESCENT is an integer that specifies the maximum number of points that a character in the font descends below the baseline (e.g.,

letters such as "p" and "g" have tails that descend below the baseline.). The bottom of the lowest character in the font will be at (BASELINE - DESCENT). To see the DESCENT of the default font, type:

(FONTPROP (DEFAULTFONT ’DISPLAY) ’DESCENT) HEIGHT HEIGHT is equal to (DESCENT - ASCENT).

FACE The value of this property is a list of the form (weight slope expansion). These are the weight, slope, and expansion described above. You can see each one separately, also. Use the property that you are interested in, WEIGHT, SLOPE, or EXPANSION, instead of FACE as the second argument to FONTPROP.

For other font properties, see Chapter 27 of the IRM.


STRlNGWlDTH

It is often useful to see how much space is required to print an expression in a particular font. The function STRINGWIDTH does this. For example, type:

(STRINGWIDTH "Hi there!" (FONTCREATE ’GACHA 10 ’STANDARD))

The number returned is how many left to right pixels would be needed if the string

were printed in this font. (Note that this doesn’t just work for pixels on the screen, but for all kinds of streams. For more information about streams, see Chapter 15.) Compare the number returned from the example call with the number returned when you change GACHA to TIMESROMAN.


DSPFONT - Changing the Font in One Window

The function DSPFONT changes the font in a single window. As an example of its use, first create a window to write in. Type:

(SETQ MY.FONT.WINDOW (CREATEW))

in the Executive Window. Sweep out the window. To print something in the default font, type:

(PRINT ’HELLO MY.FONT.WINDOW)

in the Executive Window. Your window, MY.FONT.WINDOW , will look something like Figure 16-5:


image

Figure 16-5. HELLO, Printed with the Default Font in MY.FONT.WINDOW

Now change the font in the window. Type:

(DSPFONT (FONTCREATE ’HELVETICA 12 ’BOLD) MY.FONT.WINDOW)

in the Executive Window. The arguments to FONTCREATE can be changed to create any desired font. Now retype the PRINT statement, and your window will look something

like Figure 16-6:


image

Flgure 16-6. Font in MY.FONT.WINDOW Changed Notice the font has been changed.


Personalizing Your Font Profile

Medley keeps a list of default font specifications. This list is used to set the font in all windows where the font is not specifically set by the user (see the DSPFONT section

above). The value of the atom FONTPROFILE is this list (see Figure 16-7).

A FONTPROFILE is a list of font descriptions that certain system functions access when printing output. It contains specifications for big font s (used when pretty printing a

function to type the function name), small font s (used for printing comments in the editor), and various other font s.


image


Figure 16-7. Value of the Atom FONTPROFILE


The list is in the form of an association list. The font class names (e.g., DEFAULTFONT , or BOLDFONT) are the keywords of the association list. When a number follows the

keyword, it is the font number for that font class.

The lists following the font class name or number are the font specifications, in a form that the function FONTCREATE can use. The first font specification list affer a keyword

is the specification for printing to windows. The list(GACHA 10) in the figure above is an example of the default specification for the printing to windows. The last two font

specification lists are for Press and InterPress file printing, respectively. For more information, see Chapter 27 in the IRM.

Now, to change your default font settings, change the value of the variable FONTPROFILE. Medley has a list of profiles stored as the value of the atom FONTDEFS . Choose the profile to use, then install it as the default FONTPROFILE .

Evaluate the atom FONTDEFS and notice that each profile list begins with a keyword (see Figure 16-8). This keyword corresponds to the size of the font s included. BIG, SMALL, and STANDARD are some of the keywords for profiles on this list—SMALL and STANDARD appear in Figure 16-8.



image


Figure 16-8. Part of Value of the Atom FONTDEFS

To install a new profile from this list, follow the following example, but insert any keyword for BIG.

To use the profile with the keyword BIG instead of the standard one, evaluate the following expression:

(FONTSET ’BIG))

Now the font s are permanently replaced. (That is, until another profile is installed.)

diff --git a/docs/html-primer/Medley-Primer_files/part2.htm b/docs/html-primer/Medley-Primer_files/part2.htm deleted file mode 100644 index 6cb3869c..00000000 --- a/docs/html-primer/Medley-Primer_files/part2.htm +++ /dev/null @@ -1,2 +0,0 @@ - -01-GLOSSARY

< Previous | Contents | Next >

1. BRIEF GLOSSARY

image


The following definitions will acquaint you with general terms used throughout this primer. You will probably want to read through them now, and use this chapter as a reference while you read through the rest of the primer.


advising A Medley facility for specifying function modifications without necessarily knowing how a particular function works or even what it does. Even system functions can be changed with

advising.

argument A piece of information given to a Lisp function so that it can execute successfully. When a function is explained in the

primer, the arguments that it requires will also be given. Arguments are also called Parameters.

atom The smallest structure in Lisp; like a variable in other

programming languages, but can also have a property list and a function definition.

Background Menu The menu that appears when the mouse is not in any window and the right mouse button is pressed.

binding The value of a variable. It could be either a local or a global variable. See unbound.

bitmap A rectangular array of "pixels," each of which is on or off representing one point in the bitmap image.

BREAK An Lisp function that causes a function to stop executing, open a Break window, and allows you to find out what is happening while the function is halted.

Break Window A window that opens when an error is encountered while

running your program (i.e., when your program has broken).

There are tools to help you debug your program from this window. This is explained further in Chapter 14.

browse To examine a data structure by use of a display that allows you to "move" around within the data structure.

button (1) (n.) A key on a mouse.

(2) (v.t.) To press one of the mouse keys when making a selection.

CAR A function that returns the head or first element of a list. See

CDR.

caret The small blinking arrowhead that marks where text will appear when it is typed in from the keyboard.

CDR A function that returns the tail (that is, everything but the first element) of a list. See CAR.


CLlSP A mechanism for augmenting the standard Lisp syntax. One such augmentation included in Interlisp is the iterative

statement. See Chapter 9. cr Press your Return key.

datatype (1) The kind of a datum. In Interlisp, there are many system- defined datatypes, e.g., Floating-Point, Integer, Atom, etc.

(2) A datatype can also be user-defined. In this case, it is like a record made up from system types and other user-defined datatypes.

DWIM "Do-what-I-mean." Many errors made by Medley users could be corrected without any information about the purpose of the program or expression in question (e.g., misspellings, certain kinds of parenthesis errors). The DWIM facility is called

automatically whenever an error occurs in the evaluation of an Interlisp expression. If DWIM is able to make a correction, the computation continues as though no error had occurred; otherwise, the standard error mechanism is invoked.

error Occasionally, while a program is running, an error may occur which will stop the computation. Interlisp provides extensive facilities for detecting and handling error conditions, to

enable the testing, debugging, and revising of imperfect programs.

evaluate or EVAL To find the value of a form. For example, if the variable X is bound to 5, we get 5 by evaluating X. Evaluation of a Lisp function involves evaluating the arguments and then

applying the function.

Executive Window This is your main window, where you will run functions and

develop your programs. This is the window that the caret is in when you turn on your machine and load Medley.

file package A set of functions and conventions that facilitate the bookkeeping involved with working in a large system consisting of many source code files and their compiled counterparts. Essentially, the file package keeps track of

where things are and what things have changed. It also keeps track of which files have been modified and need to be

updated and recompiled.

form Another way of saying s-expression. A Lisp expression that can be evaluated.

function A piece of Lisp code that executes and returns a value. history The programmer’s assistant is built around a memory

structure called the history list. The history functions (e.g.

FIX, UNDO, REDO) are part of this assistant. These operations allow you to conveniently rework previously specified

operations.

History List As you type on the screen, you will notice a number followed by a slash, followed by another number. The first number is the exec number, the second is the event number. Each

number, and the information on that line, is stored

sequentially as the History List Using the History List, you


can easily reexecute lines typed earlier in a work session. See Chapter 2.

icon A pictorial representation, usually of a shrunken window.

inspector An interactive display program for examining and changing the parts of a data structure. Medley has inspectors for lists and other data types.

iterative statement (also called i.s.) A statement in Interlisp that repetitively

executes a body of code For example, (for x from l to 5 do (PRlNT x)) is an i.s.

iterative variable (also called i.v.) Usually, an iterative statement is controlled by the value that the i.v. takes on. In the iterative statement

example above, x is the iterative variable because its value is being changed by each cycle through the loop. All iterative

variables are local to the iterative statement where they are defined.

Lisp Family of languages invented for "list processing." These languages have in common a set of basic primitives for

creating and manipulating symbol structures. Interlisp-D is an implementation of the Lisp language together with an

environment (set of tools) for programming, and a set of packages that extend the functionality of the system.

list A collection of atoms and lists; a list is denoted by surrounding its contents with a pair of parentheses.

Masterscope A program analysis tool. When told to analyze a program,

Masterscope creates a database of information about the

program. In particular, Masterscope knows which functions call other functions and which functions use which variables.

Masterscope can then answer questions about the program and display the information with a browser.

menu A way of graphically presenting you with a set of options.

There are two kinds of menus: pop-up menus are created

when needed and disappear after an item has been selected; permanent menus remain on the screen after use until

deliberately closed.

mouse The mouse is the box attached to your keyboard. It controls the movement of the cursor on your screen. As you become

familiar with the mouse, you will find it much quicker to use the mouse than the keyboard.

Mouse Cursor The small arrow on the screen that points to the northwest.

Mouse Cursor Icons Four types of mouse cursor icons are shown below.

image Wait. The processor is busy.

image The Mouse Confirm Cursor. It appears when you have to confirm that the choice you just made was correct. If it was, press the left button. If the choice was not correct, press the right button to abort.


image

This means "sweep out" the shape of the window. To do this, move the mouse to a position where you want a corner. Press the left mouse button, and hold it down. Move the mouse

diagonally to sketch a rectangle. When the rectangle is the desired size and shape, release the left button.


image

This is the "move window" prompt. Move the mouse so that the large "ghost" rectangle is in the position where you want the window. When you click the left mouse button, the

window will appear at this new location.

NIL NIL is the Lisp symbol for the empty list. It can also be represented by a left parenthesis followed by a right

parenthesis ( ). It is the only expression in Lisp that is both an atom and a list.

pixel Pixel stands for "picture element." The computer monitor

screen is made up of a rectangular array of pixels. Each pixel corresponds to one bit. When a bit is turned on (i.e., set to 1), the pixel on the screen represented by this bit is black.

pretty printing Pretty printing refers to the way Lisp functions are printed with special indentation, to make them easier to read.

Functions are pretty printed in the structure editor, SEdit

(see Chapter 7). You can pretty print uncompiled functions by calling the function PP with the function you would like to

see as an argument, i.e. (PP function-name). For an example of this, see Figure 1.5.


image

Figure 1.5. Example of Pretty Printing Function PP


Programmer’s

Assistant The programmer’s assistant accesses the History List to allow you to FIX, UNDO, and/or REDO your previous expressions

typed to the executive window (see Chapter 2).

Prompt Window The narrow black window at the top of the screen. It displays system prompts, or prompts you have developed (see Figure 1.6).


image

Figure 1.6. Prompt Window

property list A list of the form ( <property-namel> <property-value1>

<property-name2> <property-value2> ....) associated with an atom. It accessed by the functions GETPROP and PUTPROP.

record A record is a data structure that consists of named "fields".

Accessing elements of a record can be separated from the details of how the data structure is actually stored. This

eliminates many programming details. A record definition

establishes a record template, describing the form of a record. A record instance is an actual record storing data according to a particular record template. (See datatype, second

definition.)

Right Button Default

Window Menu This is the menu that appears when the mouse is in a

window, and the right mouse button is pressed. It looks like the menu in Figure 1.7. If this menu does not appear when you press the right button of the mouse and the mouse is in

the window, move the mouse so that it is pointing to the title bar of the window, and press the right button.


image


Figure 1.7. Right Button Default Window Menu


s-expression Short for "symbolic expression". In Lisp, this refers to any well-formed collection of left parentheses, atoms, and right parentheses.


stack A pushdown list. Whenever a function is entered, information about that specific function call is pushed onto (i.e., added to

the front of) the stack. This information includes the variable names and their values associated with the function call.

When the function is exitted, that data is popped off the stack.


sysout A flle containing a whole Lisp environment: namely,

everything you defined or loaded into the environment, the windows that appeared on the screen, the amount of memory

used, and so on. Everything is stored in the sysout file exactly as it was when the function SYSOUT was called.


TRACE A function that creates a trace of the execution of another

function. Each time the traced function is called, it prints out the values of the arguments it was called with, and prints out the value it returns upon completion.


unbound Without value; an atom is unbound if a value has never been assigned to it.


window A rectangular area of the screen that acts as the main display area for some Lisp process,

diff --git a/docs/html-primer/Medley-Primer_files/part20.htm b/docs/html-primer/Medley-Primer_files/part20.htm deleted file mode 100644 index a9cfce39..00000000 --- a/docs/html-primer/Medley-Primer_files/part20.htm +++ /dev/null @@ -1,2 +0,0 @@ - -17-INSPECTOR

< Previous | Contents | Next >

17. THE INSPECTOR

image


The Inspector is a window-oriented tool designed to examine data structures. Because Medley is such a powerful programming environment, many types of data structures would be difficult to see in any other way.


Calling the Inspector


Take as an example an object defined through a sequence of pointers (i.e., a bitmap on the property list of a window on the property list of an atom inaprogram.)

To inspect an object named NAME, type:

(INSPECT ’NAME)

If NAME has many possible interpretations, an option menu will appear. For example, in Interlisp-D, a litatom can refer to both an atom and a function. For example, if NAME

was a record, had a function definition, and had properties on its property list, then the menu would appear as in Figure 17-1.



image


Figure 17-1. Option Window for Inspection of NAME

If NAME were a list, then the option menu shown in Figure 17.2 would appear. The options include:

• Calling the display editor on the list

• Calling the TTY editor (see Chapter 6)

• Seeing the list’s elements in a display window. If you choose this option, each

element in the list will appear in the right column of the Inspector window. The left column of the Inspector window will be made up of numbers (see Figure 17-3).

• Inspecting the list as a record type (this last option would produce a menu of known record types). If you choose a record type, the items in the list will appear in the

right column of the Inspector window. The left column of the Inspector window will be made up of the field names of the record.


image

Figure 17-2. Option Window for Inspection of List


Using the Inspector


If you choose to display your data structure in an edit window, simply edit the structure and exit in the normal manner when done. If you choose to display the data structure in an inspect window, then follow these instructions:

• To select an item, point the mouse cursor at it and press the left mouse button.

• Items in the right column of an Inspector window can themselves be inspected. To do this, choose the item, and press the center mouse button.

• Items in the right column of an Inspector window can be changed. To do this, choose the corresponding item in the left column, and press the center mouse button. You

will be prompted for the new value, and the item will be changed. The sequence of steps is shown in Figure 17-3.


The item in the lefl column is selected, and the middle mouse button pressed. Select the

SET option from the menu that pops up.

You will then be prompted for the new value. Type it in.

The item in the right column is updated to the value of what you typed in.

image


image


image

Figure 17-3. Steps Involved in Changing Value in Right Column of Inspector Window


Inspector Example


This example will use ideas discussed in Chapter 21. An example, ANlMALGRAPH , is created in that section. You do not need to know the details of how it was created, but the structure is examined in this chapter.

If you type

(INSPECT ANIMAL.GRAPH)

and then choose the Inspect option from the menu, a display appears as shown in

Figure 17-4. ANlMAL.GRAPH is being inspected as a list. Note the numbers in the left column of the inspectorwindow.

image

17. THE INSPECTOR

image


Figure 17-4. Inspector Window For ANIMAL.GRAPH , Inspected as List If you choose the "As A Record" option, and choose "GRAPH" from the menu that

appears, the inspector window looks like Figure 17-5. Note the fieldnames in the left column of the inspector window.

image


Figure 17-5. Inspector Window for ANlMAL.GRAPH , Inspected as Instance of GRAPH

Record


The remaining examples will use ANlMAL.GRAPH inspected as a list. When the first item in the Inspector window is chosen with the leff mouse button, the Inspector

window looks like Figure 17-6.


image


Figure 17-6. Inspector Window for ANlMAL.GRAPH With First Element Selected

When you use the middle mouse button to inspect the selected list element, the display looks like Figure 17-7.


image

Figure 17-7. Inspector Window for ANlMAL.GRAPH and for First Element of

ANIMAL.GRAPH


How you can see that six items make up the list, and you can further choose to inspect one of these items. Notice that this is also inspected as a list. As usual, it could also

have been inspected as a record.

Select item 5 - MAMMAL DOG CAT - with the left mouse button. Press the middle mouse button. Choose "Inspect" to inspect your choice as a list. The Inspector now displays the values of the structure that makes up MAMMAL DOG CAT . (See Figure 17-8.)


image

Figure 17-8. Inspector Window for Element S From Figure 17.7 That Begins ((MAMMAL DOG CAT).

diff --git a/docs/html-primer/Medley-Primer_files/part21.htm b/docs/html-primer/Medley-Primer_files/part21.htm deleted file mode 100644 index 014feeba..00000000 --- a/docs/html-primer/Medley-Primer_files/part21.htm +++ /dev/null @@ -1,2 +0,0 @@ - -18-MASTERSCOPE

< Previous | Contents | Next >

18. MASTERSCOPE

image


Masterscope is a tool that allows you to quickly examine the structure of complex

programs. As your programs enlarge, you may forget what variables are global, what functions call other functions, and so forth. Masterscope keeps track of this for you.

To use Masterscope, first load MASTERSCOPE.DFASL and EXPORTS.ALL.

Suppose that JVTO is the name of a file that contains many of the functions involved in a complex system and that LINTRANS is the file containing the remaining functions. The first step is to ask Masterscope to analyze these files. These files must be loaded.

All Masterscope queries and commands begin with a period followed by a space, as in

. ANALYZE FNS ON MSCOPEDEMO

The ANALYZE process takes a while, so the system prints a period on the screen for each function it has analyzed. (See Figure 18-1)


image


Figure 18-1. Executive Window After Analyzing Files

If you are not quite sure what functions were just analyzed, type the file’s COMS variable (see the File Variables section in Chapter 7) into the Executive Window. The names of

the functions stored on the file will be a part of the value of this variable.

A variety of commands are now possible, all referring to individual functions within the analyzed files. Substantial variation in exact wording is permitted. Some commands

are:

. SHOW PATHS FROM ANY TO ANY

. EDIT WHERE ANY CALLS functionname

. EDIT WHERE ANY USES variablename

. WHO CALLS WHOM

. WHO CALLS functionname

. BY WHOM IS functionname CALLED

. WHO USES variablename AS FIELD


Note that the function is being called to invoke each command. Refer to the IRM for commands not listed here.

Figure 18-2 shows the Executive Window after the commands . WHO CALLS GobbleDump and . WHO DOES JVL inScan CALL.


image


Figure 18-2. Sample Masterscope Output

18. MASTERSCOPE


SHOW DATA Command and GRAPHER


When the library package GRAPHER is loaded (to load this package, type (FILESLOAD GRAPHER)), Masterscope’s SHOWPATHS command is modified. The command will be

changed to generate a tree structure showi ng how the program’s functions interact instead of a tabular printout into the Executive window. For example, typing:

. SHOW PATHS FROM ProcessEND


produced the display shown in Figure 18-3.


image


Figure 18-3. SHOW PATHS Display Example


All the functions in the display are part of this analyzed file or a previously analyzed file. Boxed functions indicate that the function name has been duplicated in another place on the display.


Selecting any function name on the display will pretty print the function in a window (see Figure 18-4).


image



image


Figure 18-4. Browser Printout Example


Selecting it again with the left mouse button will produce a desription of the function’s role in the overall system (see Figure 18-5).

18. MASTERSCOPE

image


image


image


Figure 18-5. Browser Description Example

diff --git a/docs/html-primer/Medley-Primer_files/part22.htm b/docs/html-primer/Medley-Primer_files/part22.htm deleted file mode 100644 index 81423fd4..00000000 --- a/docs/html-primer/Medley-Primer_files/part22.htm +++ /dev/null @@ -1,2 +0,0 @@ - -19-SPY

< Previous | Contents | Next >

19. WHERE DOES ALL THE TIME GO? SPY

image


SPY is an Lisp library package that shows you where you spend your time when you run your system. It is easy to learn, and very useful when trying to make programs run

faster.


How to Use Spy with the SPY Window


The function SPY.BUTTON brings up a small window which you will be prompted to position. Using the mouse buttons in this window controls the action of the SPY

program. When you are not using SPY, the window appears as in Figure 19.1.

image

Figure 19.1. SPY Window When SPY is Not Being Used


To use SPY, click either the left or middle mouse button with the mouse cursor in the

SPY window. The window will appear as in Figure 19.2, and means that SPY is accumulating data about your program.


image


Figure 19.2. SPY Window When SPY is Being Used


To turn off SPY after the program has run, again click a mouse button in the SPY

window. The eye closes, and you are asked to position another window. This window contains SPY’s results. An example of the resulting window is shown in Figure 19.3.

19. WHERE DOES ALL THE TIME GO? SPY


image


Figure 19.3. Window Produced After Running SPY


This window is scrollable horizontally and vertically. This is useful, since the whole tree does not fit in the window. If a part that you want to see is not shown, you can scroll the window to show the part you want to see.


How to Use SPY from the Lisp Top Level


SPY can also be run while a specific function or system is being used. To do this, type the function WITH.SPY:

(WITH.SPY form)

The expression used for form should be the call to begin running the function or system that SPY is to watch. If you watch the SPY window, the eye will blink! To see your

results, run the function SPY.TREE. To do this, type:

(SPY.TREE)

The results of the last running of SPY will be displayed. If you do this, and SPY.TREE returns (no SPY samples have been gathered), your function ran too fast for SPY to follow.


Interpreting SPY’s Results

Each node in the tree is a box that contains, first, the percentage of time spent running that particular function, and second, the function name. There are two modes that can be used to display this tree.

The default mode is cumulative. In this mode, each percentage is the amount of time

that function spent on top of the stack, plus the amount of time spent by the functions it calls. The second mode is individual. To change the mode to individual, point to the title bar of the window, and press the middle mouse button. Choose Individual from the menu that appears. In this mode, the percentage shown is the amount of time the

function spent on the top of the stack.

To look at a single branch of the tree, point with the mouse cursor at one of the nodes of the tree, and press the right mouse button. From the menu that appears, choose the


image

19-2 Medley for the Novice, Release 2.0

19. WHERE DOES ALL THE TIME GO? SPY


option SubTree. Another SPY window will appear, with just this branch of the tree in it.

Another way to focu s within the tree is to remove branches from the tree. To do this, point to the node at the top of the branch you would like to delete. Press the middle mouse button, and choose Delete from the menu that appears.

There are also different amounts of "merging" of functions that can be done in the

window. A function can be called by another function more than once. The amount of merging determines where the subfunction, and the functions that it calls, appear in the tree, and how often. (For a detailed explanation of merging, see the Lisp Library Packages Manual.)

diff --git a/docs/html-primer/Medley-Primer_files/part23.htm b/docs/html-primer/Medley-Primer_files/part23.htm deleted file mode 100644 index 9ab05b6b..00000000 --- a/docs/html-primer/Medley-Primer_files/part23.htm +++ /dev/null @@ -1,2 +0,0 @@ - -20-FREE-MENUS

< Previous | Contents | Next >

20. FREE MENUS

image


Free Menu is a library package that is even more flexible than the regular menu package. It allows you to create menus with different types of items in them, and

format s them as you require. Free menus are particularly useful when you want a "fill in the form" type interaction with the user.

Each menu item is described with a list of properties and values. The following example will give you an idea of the structure of the description list, and some of your options.

The most commonly used properties, and each type of menu item will be described in the Parts of a Free Menu Item and Types of Free Menu Items section below.


Free Menu Example

Free menus can be created and formatted automatically! It is done with the function

FM.FORMATMENU. This function takes one argument, a description of the menu. The

description is a list of lists; each internal list describes one row of the free menu. A free menu row can have more than one item in it, so there are really lists of lists of lists! It really isn’t hard, though, as you can see from the following example:

(SETQ ExampleMenu (FM.FORMATMENU

’(((TYPE TITLE LABEL TitlesDoNothing) TYPE 3STATE LABEL Example3State))

((TYPE EDITSTART LABEL PressToStartEditing

ITEMS (EDITEM)) (TYPE EDIT ID EDITEM LABEL ""))

(WINDOWPROPS TITLE "Example Does Nothing"))))

The first row has two items in it: one is a TITLE, and the second is a 3STATE item. The second row also has two items. The second, the EDIT item, is invisible, because its label is an empty string. The caret will appear for editing, however, if the EDITSTART item is chosen. Windowprops can appear as part of the description of the menu, because a

menu is, affer all, just a special window. You can specify not only the title with

WINDOWPROPS, but also the position of the free menu, using the "left" and "bottom"

properties, and the width of the border in pixels, with the "border" property. Evaluating this expression will return a window. You can see the menu by using the function OPENW. The following example illustrates this:


Figure 20.1. Example Free Menu


The next example shows you what the menu looks like after the EDITSTART item,

PressToStartEditing, has been chosen.


Figure 20.2. Free menu after EDITSTART Item Chosen

The following example shows the menu with the 3STATE item in its T state, with the item highlighted. (In the previous bitmaps, it was in its neutral state.)

.


Figure 20.3. Free menu with 3STATE Item in its T State


Finally, Figure 20.4 shows the 3STATE item in its NIL state, with a diagonal line through the item


Figure 20.4 Free menu with the 3STATE item in its NIL State

If you would like to specify the layout yourself, you can do that too. See the Lisp Library Packages Manual for more information.


Parts of a Free Menu Item

There are eight different types of items that you can use in a free menu. No matter

what type, the menu item is easily described by a list of properties, and values. Some of the properties you will use most often are listed below:


LABEL Required for every type of menu item. It is the atom, string, or bitmap that appears as a menu selection.

TYPE One of eight types of menu items. Each of these are described in the section below.

MESSAGE The message that appears in the prompt window if a mouse button is held down over the item.

ID An item’s unique identifier. An ID is needed for certain types of menu items.

ITEMS Used to list a series of choices for an NCHOOSE item, and to list the ID’s of the editable items for an EDITSTART item.

SELECTEDFN The name of the function to be called if the item is chosen.


Types of Free Menu Items

Each type of menu item is described in the following list, including an example description list for each one.


MOMENTARY This is the familiar sort of menu item. When it is selected, the

function stored with it is called. A description for the function that creates and format s the menu looks like this:

(TYPE MOMENTARY

LABEL Blink-N-Ring

MESSAGE "Blinks the screen and rings bells" SELECTEDFN RINGBELLS)

TOGGLE This menu item has two states, T and NIL. The default state is NIL, but choosing the item toggles its state. The following is an example description list, without code for the SELECTEDFN function, for this type of item:

(TYPE TOGGLE

LABEL DwimDisable SELECTEDFN ChangeDwimState)

20. FREE MENUS

image


3STATE This type of menu item has three states, NEUTRAL , T, and NIL. NEUTRAL is the default state. T is shown by highlighting the item, and NIL is shown with diagonal lines. The following is an example

description list, without code for the SELECTEDFN function, for this type of item:

(TYPE 3STATE

LABEL CorrectProgramAllOrNoSpelling SELECTEDFN ToggleSpellingCorrection)

TITLE This menu item appears on the menu as dummy text. It does nothing when chosen. An example of its description:

(TYPE TITLE LABEL "Choices:")

NWAY A group of items, nnly one of which can be chosen at a time. The items in the NWAY group should all have an ID field, and the ID’s

should be the same. For example, to set up a menu that would allow the user to choose between Helvetica, Gacha, Modern, and Classic font s, the descriptions might look like this (once again, without the code for the SELECTEDFN):

(TYPE NWAY ID FONTCHOICE

LABEL Helvetica SELECTEDFN ChangeFont)

(TYPE NWAY ID FONTCHOICE

LABEL Gacha

SELECTEDFN ChangeFont) (TYPE NWAY ID FONTCHOICE)

LABEL Modern SELECTEDFN ChangeFont)

(TYPE NWAY ID FONTCHOICE

LABEL Classic SELECTEDFN Changefont)


NCHOOSE This type of menu item is like NWAY except that the choices are given to the user in a submenu. The list to specify an NCHOOSE menu item that is analogous to the NWAY item above might look like this:

(TYPE NCHOOSE

LABEL FontChoices

ITEMS Helvetica Gacha Modern Classic) SELECTDFN Changefont)

EDITSTART When this type of menu itein is chosen, it activates another type of item, an EDIT item. The EDIT item or items associated with an EDITSTART item have their lD’s listed on the EDITSTART ’s ITEMS property. An example description list is:

(TYPE EDITSTART LABEL "Function to add?" ITEMS (Fn))

EDIT This type of menu item can actually be edited by you. It is often

associated with an EDITSTART item (see above), but the caret that prompts for input will also appear if the item itself is chosen. An EDIT item follows the same editing conventions as editing in

Executive Window:

Add characters by typing them at the caret.

Move the caret by pointing the mouse at the new position, and clicking the left button.


Delete characters from the caret to the mouse by pressing the right button of the mouse. Delete a character behind the caret by pressing the backspace key.

Stop editing by typing a carriage return, a Control-X, or by choosing another item from the menu.

An example description list for this type of item is:

(TYPE EDIT ID Fn LABEL **)

diff --git a/docs/html-primer/Medley-Primer_files/part24.htm b/docs/html-primer/Medley-Primer_files/part24.htm deleted file mode 100644 index 101cb810..00000000 --- a/docs/html-primer/Medley-Primer_files/part24.htm +++ /dev/null @@ -1,2 +0,0 @@ - -21-GRAPHER

< Previous | Contents | Next >

21. THE GRAPHER

image


Say it with Graphs


Grapher is a collection of functions for creating and displaying graphs, networks of nodes and links. Grapher also allows you to associate program behavior with mouse selection of graph nodes. To load this package, type

(FILESLOAD GRAPHER)

Figure 21-1 shows a simple graph.

image


Figure 21-1. Simple Graph


In Figure 21-1 there are six nodes (ANIMAL , MAMMAL, DOG, CAT, FISH, and BIRD)

connected by five links. A GRAPH is a record containing several fields. Perhaps the most

important field is GRAPHNODES —which is itself a list of GRAPHNODE records. Figure 21-2 illustrates these data structures. The window on top contains the fields from the simple

graph. The window on the bottoms an inspection of the node, DOG.


image

Figure 21-2. Inspecting a Graph and a Node


The GRAPHNODE data structure is described by its text (NODEID ), what goes into it (FROMNODES), what leaves it (TONODES ), and other fields that specify its looks. The basic model of graph building is to create a bunch of nodes, then layout the nodes into a

graph, and finally display the resultant graph. This can be done in a number of ways.

One is to use the function NODECREATE to create the nodes, LAYOUTGRAPH to lay out the nodes, and SHOWGRAPH to display the graph. The primer shows you two simpler ways,

but please see the Library Packages Manual for more information about these other functions. The primer’s first method is to use SHOWGRAPH to display a graph with no nodes or links, then interactively add them. The second is to use the function

LAYOUTSEXPR, which does the appropriate NODECREATES and a LAYOUTGRAPH, with a list.

The function SHOWGRAPH displays graphs and allows you to edit them. The syntax of

SHOWGRAPH is

(SHOWGRAPH graph window lefibuttonfn middlebuttonfn topjustifyflg alloweditflg copybuttoneventfn)

Obviously the graph structure is very complex. Here’s the easiest way to create a graph.

(SETQ MY.GRAPH NIL)

(SHOWGRAPH MY.GRAPH "My Graph" NIL NIL NIL T)


image


Figure 21-3. My Graph


You will be prompted to create a small window as in Figure 21-3. This graph has the title My Graph. Hold down the right mouse button in the window. A menu of graph

editing operations will appear as in Figure 21-4.

image


Figure 21-4. Menu of Graph Editing Operations

Here’s how to use this menu. The commands in this menu are easy to learn. Experiment with them!


Add a Node

Start by selecting Add Node . Grapher will prompt you for the name of the node (see Figure 21-5.) and then its position.

image


Figure 21-5. Grapher Prompts for Name of Node to add after Add Node is Chosen from Graph Editing Menu.


Position the node by moving the mouse cursor to the desired location and clicking a mouse button. Figure 21-6 shows the graph with two nodes added using this menu.


image


Figure 21-6. Two Nodes Added to MY GRAPH Using GraphEditing Menu


Add a Link

Select Add Link from the graph editing menu. The Prompt window will prompt you to select the two nodes to be linked. (See Figure 21-7.) Do this, and the link will be added.


image


image


Figure 21-7. Prompt Window Requesting Selection of Two Nodes to Link, and Result


Delete a Link

Select Delete Link from the graph editing menu. ThePrompt window will prompt you to select the two nodes that should no longer be linked. (See Figure 21-8.) Do this, and

the link will be deleted.


image


image


Figure 21-8. Prompt Window Requesting Selection of Link to Delete, and Result


Delete a Node

Select Delete Node from the graph editing menu. The Prompt window will prompt you to select the node to be aeleted. (See Figure 21-9.) Do this, and the node will be deletea.


image

Figure 21.-9. Prompt to Delete a Node


Move a Node

Select Delete Node from the graph editng menu. Choose a node pointing to the it with the mouse cursor, and pressing and holding the leff mouse button. When you move the mouse cursor, the node will be dragged along. When the node is at the new position,

release the mouse button to deposit the node.


Making a Graph from a List


Typically, a graph is used to display one of your program’s data structures. Here is how that is done.


LAYOUTSEXPR takes a list and returns a GRAPH record. The syntax of the function is

(LAYOUTSEXPR sexpr format boxing font motherd personald famlyd)

For example:

(SETQ ANIMAL.TREE ’(ANIMAL (MAMMAL DOG CAT) BIRD FISH)) (SETQ ANIMAL.GRAPH

(LAYOUTSEXPR ANIMAL.TREE ’HORIZONTAL)) (SHOWGRAPH ANIMAL.GRAPH "My Graph" NIL NIL NIL T)

This is how Figure 21.1 was produced.


Incorporating Grapher into Your Program

The Grapher is designed to be built into other programs. It can call functions when, for example, a mouse button is clicked on a node. The function SHOWGRAPH does this:

(SHOWGRAPH graph window lefibuttonfn middlebuttonfn topjustifyflg alloweditflg copybuttoneventfn)

For example, the third argument to SHOWGRAPH , leftbuttonfn, is a function that is called when the left mouse button is pressed in the graph window. Try this:

(DEFINEQ (My.LEFT.BUTT0N.FUNCTION (THE.GRAPHNODE THE.GRAPH.WINDOW)

(INSPECT THE.GRAPHNODE)))


(SHOWGRAPH FAMILY.GRAPH "Inspectable family" (FUNCTION MY.LEFT.BUTTON.FUNCTION)

NIL NIL T)


In the example above, MY.LEFT.BUTTON.FUNCTION simply calls the inspector. The

function should be written assuming it will be passed a graphnode and the window that holds the graph. Try adding a function of your own.


More of Grapher

Some other Library packages make use of the Grapher. (Grapher needs to be loaded with the packages to use these functions.)


MASTERSCOPE: The Browser package modifies the Masterscope command, . SHOW PATHS, so that its output is displayed as a graph (using Grapher) instead of simply printed.

GRAPHZOOM: allows a graph to be redisplayed larger or smaller automatically.

diff --git a/docs/html-primer/Medley-Primer_files/part25.htm b/docs/html-primer/Medley-Primer_files/part25.htm deleted file mode 100644 index 69bae92e..00000000 --- a/docs/html-primer/Medley-Primer_files/part25.htm +++ /dev/null @@ -1,2 +0,0 @@ - -22-RESOURCE-MANAGEMENT

< Previous | Contents | Next >

22. RESOURCE MANAGEMENT

image


Naming Variables and Records

You will find times when one environment simultaneously hosts a number of different programs. Running a demo of several programs, or reloading the entire Medley

environment from floppies when it contains several different programs, are two

examples that could, if you aren’t careful, provide a few problems. Here are a few tips on how to prevent problems:


• If you change the value of a system variable, MENUHELDWAIT for example, or connect to a directory other than {DSK}<LISPFILES> , write a function to reset the variable or directory to its original value. Run this function when you are finished working.

This is especially important if you change any of the system menus.


• Do not redefine Medley functions or CLISP words. Remember, if you reset an atom’s value or function definition at the top level (in the Executive Window), the message (Some.Crucial.Function.Or.Variable redefined) , appears. If this is not what you wanted, type UNDO immediately!

If, however, you reset the value or function definition of an atom inside your program, a warning message will not be printed.


• Make the atom names in your programs as unique as possible. To do this without filling your program with unreadable names that noone, including you, can

remember, prefix your variable names with the initials of your program. Even then, check to see that they are not already being used with the function BOUNDP . For

example, type:

(BOUNDP ’BackgroundMenu)


This atom is bound to the menu that appears when you press the leff mouse button

when the mouse cursor is not in any window. BOUNDP returns T. BOUNDP returns NIL

if its argument does not currently have a value.


• Make your function names as unique as possible. Once again, prefixing function

names with the initials of your program can be helpful in making them unique, but even so, check to see that they are not already being used. GETD is the Interlisp-D function that returns the function definition of an atom, if it has one. If an atom has no function definition, GETD returns NIL. For example, type:

(GETD ’CAR)

A non-NIL value is returned. The atom CAR already has a function definition.


• Use complete record field names in record FETCHes and REPLACE s when your code is not compiled. A complete record field name is a list consisting of the record

declaration name and the field name. Consider the following example:

(REC0RD NAME (FIRST LAST))

(SETQ MyName (create Name FIRST ’John LAST ’Smith)) (FETCH (NAME FIRST) OF MyName)

• Avoid reusing names that are field names of Lisp system records. A few examples of system records follow. Do not reuse these names.

(RECORD REGION (LEFT BOTTOM WIDTH HEIGHT)) (RECORD POSITION (XCOORD YCOORD))


(RECORD IMAGEOBJ (- BITMAP -)))


• When you select a record name and field names for a new record, check to see whether those names have already been used.


Call the function RECLOOK, with your record name as an argument, in the Executive Window (see Figure 22-1). If your record name is already a record, the record

definition will be returned; otherwise the function will return NIL.


image


Figure 22-1. Response to RECLOCK


Call the function FIELDLOOK with your new field name in the Executive Window (see Figure 22-2). If your field name is already a field name in another record, the record definition will be returned; otherwise the function will return NIL.


image

Figure 22-2. Response to FIELDLOOK


Some Space and Time Considerations

In order for your program to run at maximum speed, you must efficiently use the space available on the system. The following section points out areas that you may not know are wasting valuable space, and tips on how to prevent this waste.

Often programs are written so that new data structures are created each time the

program is run. This is wasteful. Write your programs so that they only create new variables and other data structures conditionally. If a structure has already been

created, use it instead of creating a new one.

Some time and space can be saved by changing your RECORD and TYPERECORD

declarations to DATATYPE . DATATYPE is used the same way as the functions RECORD and TYPERECORD. In addition, the same FETCH and REPLACE commands can be used with the data structure DATATYPE creates. The difference is that the data structure

DATATYPE creates cannot be treated as a list the way RECORD s and TYPERECORDs can.

22. RESOURCE MANAGEMENT

image


Global Variables

Once defined, global variables remain until Lisp is reloaded. Avoid using global

variables if at all possible! One specific problem arises when programs use the function

GENSYM. In program development, many atoms are created that may no longer be useful. Hints:

• Use

(DELDEF atomname ’PROP)

to delete property lists, and

(DELDEF atomname ’VARS)

to have the atom act like it is not defined.

These not only remove the definition from memory, but also change the appropriate fileCOMS that the deleted object was associated with so that the file package will not attempt to save the object (function, variable, record definition, and so forth) the next time the file is made. J ust doing something like

(SETQ (arg atomname) ’NOBIND)

looks like it will have the same effect as the second DELDEF above, but the SETQ does not update the file package.

• If you are generating atom names with GENSYM , try to keep a list of the atom names that are no longer needed. Reuse these atom names, before generating new ones.

There is a (fairly large) maximum to the number of atoms you can have, but things slow down considerably when you create lots of atoms.

• When possible, use a data structure such as a list or an array, instead of many

individual atoms. Such a structure has only one pointer to it. Once this pointer is

removed, the whole structure will be garbage-collected and space will be reclaimed.


Circular Lists

If your program is creating circular lists, a lot of space may be wasted. (Many

crosslinked data structures end up having circularities.) Hints when using circular lists:

• Write a function to remove pointers that make lists circular when you are through with the circular list.

• If you are working with circular lists of windows, bind your main window to a unique global variable. Write window creation conditionally so that if the binding of that

variable is already a window, use it, and only create a new window if that variable is unbound or NIL.

Here is an example that illustrates the problem. When several auxilIary windows are built, pointers to these windows are usually kept on the main window’s property list.

Each auxilIary window also typically keeps a pointer to the main window on its

property list If the top level function creates windows rather than reusing existing ones, there will be many lists of useless windows cluttering the work space. Or, if such a main window is closed and will not be used again, you will have to break the links by deleting the relevant properties from both the main window and all of the auxiliary windows

first. This is usually done by putting a special CLOSEFN on the main window and all of its auxiliary windows.


When You Run Out of Space

Typically, if you generato a lot of structure! that won’t get garbage collected, you will eventually run out of space. The important part ii being aNe to track down those

structures and the code that generates them to become more space efficient.

Use the Lisp Library Package GCHAX.DCOM to track down pointers to data structures. The basic idea is that GCHAX will return the number of references to a particular data structure.

A special function exists that allows you to get a little extra space so that you can try to save your work when you get toward the edge (usually noted by a message indicating

that you should save your work and load a new Medley environment). The GAINSPACE

function allows you to delete non-essential data structures. To use it, type:

(GAINSPACE)

into the Executive Window. Answer N to all questions except the followi ng.

• Delete edit history

• Delete history list.

• Delete values of old variables.

• Delete your MASTERSCOPE database

• Delete information for undoing your greeting.

Save your work and reload Lisp as soon as possible.

diff --git a/docs/html-primer/Medley-Primer_files/part26.htm b/docs/html-primer/Medley-Primer_files/part26.htm deleted file mode 100644 index b11dee3f..00000000 --- a/docs/html-primer/Medley-Primer_files/part26.htm +++ /dev/null @@ -1,2 +0,0 @@ - -23-INTERACTIONS

< Previous | Contents | Next >

23. SIMPLE INTERACTIONS WITH THE CURSOR, A BITMAP, AND A WINDOW

image


The purpose of this chapter is to show you how to build a moderately tricky interactive interface with the various Medley display facilities. In particular how to move a large

bitmap (larger than 16 x 16 pixels) around inside a window. To do this, you will change the CURSORINFN and CURSOROUTFN properties of the window. If you would also like to then set the bitmap in place in the window, you must reset the BUTTONEVENTFN . This chapter explains how to create the mobile bitmap.


GETMOUSESTATE Example Function

One function that you will use to "trace the cursor" (have a bitmap follow the cursor around in a window) is GETMOUSESTATE. This function finds the current state of the. mouse, and resets global system variables, such as LASTMOUSEX and LASTMOUSEY.

As an example of how this function works, create a window by typing

(SETQ EXAMPLE.WINDOW (CREATEW))

into the Executive Window, and sweeping out a window. Now, type in the function

(DEFINEQ (PRINTCOORDS (W)

(PROMPTPRINT "(" LASTMOUSEX ", "LASTMOUSEY ")") (BLOCK)

(GETMOUSESTATE)))


This function calls GETMOUSESTATE and then prints the new values of LASTMOUSEX and

LASTMOUSEY in the promptwindow. To use it, type

(WINDOWPROP EXAMPLE.WINDOW ’CURSORMOVEDFN ’PRINTCOORDS)

The window property CURSORMOVEDFN, used in this example, will evaluate the function PRINTCOORDS each time the cursor is moved when it is inside the window. The position coordinates of the mouse cursor will appear in the prompt window. (See Figure 23.1.)


Figure 23.1. Current Position Coordinates of Mouse Cursor in Prompt Window


Advising GETMOUSESTATE

For the bitmap to follow the moving mouse cursor, the function GETMOUSESTATE is advised. When you advise a function, you can add new commands to the function

without knowing how it is actually implemented. The syntax for advise is

(ADVISE fn when where what)

fn is the name of the function to be augmented. when and where are optional

arguments. when specifies whether the change should be made before, after, or around the body of the function. The values expected are BEFORE , AFTER, or AROUND.

what specifies the additional code.


In the example, the additional code, what, moves the bitmap to the position of the

mouse cursor. The function GETNOUSESTATE will be ADVISEd when the mouse moves

into the window. This will cause the bitmap to follow the mouse cursor. ADVISE will be undone when the mouse leaves the window or when a mouse button is pushed. The ADVISEing will be done and undone by changing the CURSORINFN , CURSOROUTFN, and BUTTONEVENTFN for the window.


Changing the Cursor


One last part of the example, to give the impression that a bitmap is dragged around a window, the original cursor should disappear. Try typing:

(CURSOR (CURSORCREATE (BITMAPCREATE 1 l) 1 1]

into the Executive Window. This causes the original cursor to disappear. It reappears when you type

(CURSOR T)

When the cursor is invisible, and the bitmap moves as the cursor moves, the illusion is given that the bitmap is dragged around the window.


Functions for Tracing the Cursor


To actually have a bitmap trace (follow) the cursor, the environment must be set up so that when the cursor enters the tracing region the trace is turned on, and when the

cursor leaves the tracing region the trace is turned off. The function Establish/Trace/Data will do this. Type it in as it appears (include comments that will help you remember what the function does).


(DEFINEQ (Establish/Trace/Data

[LAMBDA (wnd tracebitmap cursor/rightoffset cursor/heightoffset GCGAGP)


(* * This function is called to establish the data to trace the desired bitmap. "wnd" is the window in which the tracing is to take place, "tracebitmap" is the tracing bitmap, "cursor/rightoffset" and "cursor/heightoffset" are integers which detemine the hotspot of the tracing bitmap.

As "cursor/heightoffset and "cursor/rightoffset" increase the cursor hotspot moves up and to the right.

If GCGAGP is non-NIL, GCGAG will be disabled.)


(PROG NIL

(if (OR (NULL wnd)

(NULL tracebitmap))

then (PLAYTUNE (LIST (CONS 1000 4000))) (RETURN))

(if GCGAGP

then (GCGAG))

(* * Create a blank cursor.)

(SETQ *BLANKCURSOR*(BITMAPCREATE 16 16))

(SETQ *BLANKTRACECURSOR*(CURSORCREATE *BLANKCURSOR*))


(* * Set the CURSOR IN and OUT FNS for wnd to the following:)

(WINDOWPROP wnd (QUOTE CURSORINFN)

(FUNCTION SETUP/TRACE)) (WINDOWPROP wnd (QUOTE CURSOROUTFN)

(FUNCTION UNTRACE/CURSOR))

(* * To allow the bitmap to be set down in the window by pressing a mouse button, include this line.

Otherwise, it is not needed)

(WINDOWPROP wnd (QUOTE BUTTONEVENTFN)

(FUNCTION PLACE/BITMAP/IN/WINDOW)) (WINDOWPROP wnd (QUOTE CURSOROUTFN)

(* * Set up Global Variables for the tracing operation) (SETQ *TRACEBITMAP* tracebitmap

(SETQ *RIGHTTRACE/OFFSET*(OR cursor/rightoffset 0)) (SETQ *HEIGHTTRACE/OFFSET*(OR cxursor heightoffset 0)) (SETQ *OLDBITMAPPOSITION*(BITMAPCREATE (BITMAPWIDTH

tracebitmap)

tracebitmap)))

(SETQ *TRACEWINDOW* wnd]))

(BITMAPHEIGHT


When the function Establish/Trace/Data is called, the functions SETUP/TRACE and

UNTRACE/CURSOR will be installed as the values of the window’s WlNDOWPROPS , and will be used to turn the trace on and off. Those functions should be typed in, then:


(DEFINEQ (SETUP/TRACE [LAMBDA (wnd)

(* * This function is wnd’s CURSORINFN.

It simply resets the last trace position and the current tracing region. It also readvises GETMOUSESTATE to perform the trace function after each call.)

(if *TRACEBITMAP*

then (SETQ *LAST-TRACE-XPOS* -2000) (SETQ *LAST-TRACE-YPOS* -2000)

(SETQ *WNDREGION* (WINDOWPROP wnd (QUOTE REGION))) (WINDOWPROP wnd (QUOTE TRACING)

T)

(* * make the cursor disappear)

(CURSOR *BLANKTRACECURSOR*) (ADVISE (QUOTE GETMOUSESTATE)

(QUOTE AFTER) NIL

(QUOTE (TRACE/CURSOR]))

(DEFINEQ (UNTRACE/CURSOR [LAMBDA (wnd)


(* * This function is wnd’s CURSOROUTFN. The function first checks if the cursor is currently being traced; if so, it replaces the tracing bitmap with what is under it and then turns tracing off by unadvising GETMOUSESTATE and setting the TRACING window property of *TRACEWINDOW* to NIL.)

(if (WINDOWPROP *TRACEWINDOW*(QUOTE TRACING))


then (BITBLT *OLDBITMAPPOSITION* 0 0 (SCREENBITMAP) (IPLUS (CAR *WNDREGION*)*LAST-TRACE-XPOS*) (IPLUS (CADR *WNDREGION*)*LAST-TRACE-YPOS*))

(WINDOWPROP *TRACEWINDOW*(QUOTE TRACING)

NIL))

(* * replace the original cursor shape) (CURSOR T)

(* * unadvise GETMOUSESTATE) (UNADVISE (QUOTE GETMOUSESTATE]))

The function SETUP/TRACE has a helper function that you must also type in. It is

TRACE/CURSOR:

(DEFINEQ (TRACE/CURSOR [LAMBDA NIL


(* * This function does the actual BITBLTing of the tracing bitmap. This function is called after a GETMOUSESTATE, while tracing.)

(PROG ((xpos (IDIFFERENCE (LASTMOUSEX *TRACEWINDOW*)

*RIGHTTRACE/OFFSET*))

(ypos (IDIFFERENCE (LASTMOUSEY *TRACEWINDOW*)

*HEIGHTTRACE/OFFSET*))

(* * If there is an error in the function, press the right button to unadvise the function. This will keep the machine from locking up.)

(if (LASTMOUSESTATE RIGHT)

then (UNADVISE (QUOTE GETMOUSESTATE))) (if (AND (NEQ xpos *LAST-TRACE-XPOS*)

(NEQ ypos *LAST-TRACE-YPOS*))

then

(* * Restore what was under the old position of the trace bitmap)

(BITBLT *OLDBITMAPPOSITION* 0 0 (SCREENBITMAP) (IPLUS (CAR *WNDREGION*)*LAST-TRACE-XPOS*) (IPLUS (CADR *WNDREGION*)*LAST-TRACE-YPOS*))

(* * Save what will be under the position of the new trace bitmap)

(BITBLT (SCREENBITMAP) (IPLUS (CAR *WNDREGION*)

xpos)

(IPLUS (CADR *WNDREGION*) ypos)*OLDBITMAPPOSITION* 0 0)

(* * BITBLT the trace bitmap onto the new position of the mouse)

(BITBLT *TRACEBITMAP* 0 0 (SCREENBITMAP) (IPLUS (CAR *WNDREGION*)

xpos)

(IPLUS (CADR *WNDREGION*)

ypos)

NIL NIL (QUOTE INPUT) (QUOTE PAINT))

(* * Save the current position as the last trace position.) (SETQ *LAST-TRACE-XPOS* xpos)


(SETQ *LAST-TRACE-YPOS* ypos]))


The helper function for UNTRACE/CURSOR , called UNDO/TRACE/DATA, must also be added to the environment:


(DEFINEQ (UNDO/TRACE/DATA [LAMBDA NIL


(* * The purpose of this function is to turn tracing off and to free up the global variables used to trace the bitmap so that they can be garbage collected.)


(* * Check if the cursor is currently being traced. It so, turn it off.)

(UNTRACE/CURSOR)

(WINDOWPROP *TRACEWINDOW*(QUOTE CURSORINFN) NIL)

(WINDOWPROP *TRACEWINDOW*(QUOTE CURSOROUTFN) NIL)

(SETQ *TRACEBITMAP* NIL)

(SETQ *RIGHTTRACE/OFFSET* NIL) (SETQ *HEIGHTTRACE/OFFSET* NIL) (SETQ *OLDBITMAPPOSITION* NIL) (SETQ *TRACEWINDOW* NIL)

(* * Turn GCGAG on) (GCGAG T]))

Finally, if you included the WlNDOWPROP to allow the user to place the bitmap in the window by pressing a mouse button, you must also type this function:


(DEFINEQ (PLACE/BITMAP/IN/WINDOW [LAMBDA (wnd)

(UNADVISE (GETMOUSESTATE))

(BITBLT *TRACEBITMAP* 0 0 (SCREENBITMAP) (IPLUS (CAR *WNDREGION*)

xpos)

(IPLUS (CADR *WNDREGION*)

ypos)

NIL NIL (QUOTE INPUT) (QUOTE PAINT]

That’s all the functions!


Running the Functions


To run the functions you just typed in, first set a variable to a window by typing something like

(SETQ EXAMPLE.WINDOW (CREATEW))

into the Executive Window, and sweeping out a new window. Now, set a variable to a bitmap, by typing, perhaps,

(SETQ EXAMPLE.BTM (EDITBM))


Type

(Estab1ish/Trace/Data EXAMPLE.WINDOW EXAMPLE.BTM))

When you move the cursor into the window, the cursor will drag the bitmap.

(If you want to be able to make menu selections while tracing the cursor, make sure

that the hotspot of the cursor is set to the extreme right of the bitmap. Otherwise, the menu will be destroyed by the BITBLT s of the trace functions.)

To stop tracing, do one of the following:

• Move the mouse cursor out of the window

• Press the right mouse button

• Call the function UNTRACE/CURSOR

diff --git a/docs/html-primer/Medley-Primer_files/part27.htm b/docs/html-primer/Medley-Primer_files/part27.htm deleted file mode 100644 index e4d9fa9e..00000000 --- a/docs/html-primer/Medley-Primer_files/part27.htm +++ /dev/null @@ -1,2 +0,0 @@ - -24-GLOBAL-VARIABLES

< Previous | Contents | Next >

24. GLOSSARY OF GLOBAL SYSTEM VARIABLES

image


As you can tell by now, there are many system variables in Medley that are useful to know. The following sections gather many of the important variables together into

groups relating to directory searching, system flags, history lists, system menus, windows, and, of course, the catchall miscellaneous category.


Directories


DISPLAYFONTDIRECTORIES

Its value is a list of directories to search for the bitmap files for display font s. Usually, it contains the FONT directory where you copies the bitmap files (see Chapter 16), and the current connected directory. The current connected

directory is specified by the atom NIL. Here is an example value of

DISPLAYFONTDIRECTORIES.


image

Figure 24.1. Value for the Atom DISPLAYFONTDIRECTORIES INTERPRESSFONTDIRECTORIES

Is set to a list of directories to search for the font width files for InterPress font s.


DIRECTORIES

This variable is bound to a list of the directories you will be using (see Figure 24-2). The system uses this variable when it is trying to find a file to load. It checks each directory in the list, until the file is foun d. NIL in list means to check the current connected directory.

LISPUSERSDIRECTORIES

Its value is a list of directories to search for library package files.


Flags


DWIMIFYCOMPFLG

This flag, if set to T, will cause all expressions to be completely dwinified before the expression is compiled (see Chapter 9). In this state, when the system does not recognize a function of keyword, it will compare the word to a system

maintained list to determine whether the word is a macro, CLISP word, or misspelled user-defined variable.

An example of swinifying before compilation is to convert an IF call to a COND. before they are compiled. Undwimified expressions can cause inaccurate

compilation. This flag is set by the system to NIL. Normally, you want this set to T. For more information on DWIM, refer to the IRM.

SYSPRETTYFLAG

When set to T, all lists returned to the executive window are pretty printed. This flag is originally set by the system to NIL.

CLISPIFTRANFLG

When set to T, keeps the IF expression, rather than the COND translation in your code.

PRETTYTABFLG

When set to T, the pretty printer puts out a tab character rather than several spaces to try to make code align. If NIL, it uses space characters instead.

FONTCHANGEFLG

If NIL, then when pretty printing no font changes will happen (e.g., a smaller font for comments, bold for clip words, and so forth). The default is the atom ALL, so different font s are used where appropriate.


AUTOBACKTRACEFLG

There are many possible values for this variable. They affect when the back

trace window appears with the break window, and how much detail is included in it. The values of this variable include:

NIL, its initial value. The back trace window is not brought up when an error is generated, until you open it yourself.

T, which means that the back trace BT window is opened for error breaks

BT! brings up a back trace window with more detail, BT!, window for error breaks

ALWAYS brings up a backtrace BT window for both error breaks, and breaks caused by calling the function BREAK

ALWAYS! brings up a backtrace window with more detail, BT!, for both error breaks and breaks caused by calling the function


NOSPELLFLG

Is initially bound to NIL, so that DWIM tries to correct all spelling errors,

whether they are in a form you just typed in or within a function being run. If the variable is T, then no spelling correction is performed. This variable is

automatically reset to T when you are compiling a file. If it has some other non-

NIL value, then spelling correction is only performed on type-in.


History Lists

LISPXHISTORY

Originally set to the list (NIL 0 30 100) , with the following argument

interpretation. The NIL is the list (implemented as a circular queue) to which the top level commands append. 0 is the current prompt number. 30 is the

maximum length of the history list. 100 is the highest number used as a

prompt. This is a system maintained list used by the programmers assistant commands REDO, UNDO, FIX, and ?? use to retrieve past function calls.

To delete the history list, reset the variable LISPXHISTORY to its original value of (NIL 0 30 100).

Setting this variable to NIL disables all the programmers assistant features.

EDITHISTORY

This is also set to (NIL 0 30 100), and has the same description as LISPXHISTORY. This list allows you to UNDO edits. You reset this the same way as LISPXHISTORY.


System Menus


System menus are all bound to global varieables and are easy to modyfy. If the menu name is set to the NIL value, the menu will be recreated using an items list bound to a global variable.

To change a system menu, edit the items list bound to the appropriate global variable (system menus use this items list with the default WHENSELECTEDFN ), then set the

value of the name to NIL. The next time you need the menu, it will be created from the items list you just edited. The names of system menus and the items lists follow.


BackgroundMenu

This is the variable bound to the menu this displays when you press the right button in the grey background area of the screen.


BackgroundMenuCommands

This list is used for the list of ITEMS for the background menu when it is created.

WindowMenu

This is the variable bound to the default window menu displayed when the right mouse button is pressed inside of a window.


WindowMenuCommands

This is the list of ITEMS for the WindowMenu.


BreakMenu

The menu displayed when the middle mouse button is pressed in a break

window.


BreakMenuCommands

The list of ITEM for the BreakMenu.


Windows


PROMPTWINDOW

Global name of the prompt window.


T

Although the value T has several meanings (such as universal TRUE), it also

stands for the standard output stream. As this is usually the executive window, it may be used as the name for the TTY Window at the top level. Mouse

processes have their own TTY Windows. A reference to the window T in a mouse driven function (e.g., a WHENSELECTEFN, Chapter 12) will open a TTY Window for Mouse.


Miscellaneous

CLEANUPOPTION

This is a list of options that you set to automate clean-up after a work session. Example options are listing files, or recompilation. You will want to keep this set to NIL until you become comfortable with the machine.


FILELST

The list of all the files you loaded.


SYSFILES

The list of all the files you loaded for the SYSOUT file.

INITIALS

An atom you can bind to your name. If bound, the editor will add your name, in addition to the date, in the editor comment at the beginning of each function.

FIRSTNAME

If this variable is set, the system will use it to greet you personally when you log on to your machine.


INITIALSLST

A list of elements of the form (USERNAME . INITIALS) or (USERNAME FIRSTNAME INITIALS). This list is used by the function GREET to set your INITIALS , and your FIRSTNAME when you log in.

#CAREFULCOLUMNS

An integer. PRETTYPRINT estimates the number of characters in an atom,

instead of computing it, for efficiency. Unfortunately, for very long atom names, errors can occur. #CAREFULCOLUMNS is the number of columns from the right within which PRETTYPRINT should compute the number of characters in each

atom, to prevent these errors. Initially this is set to zero. PRETTYPRINT never computes the number of characters in an atom. If you set it to 20 or 30, when PRETTYPRINT comes within 20 or 30 columns of the right of the window, it will begin computing exactly how many characters are in each atom. This will

prevent errors.


DWIMWAIT

Bound to the number of seconds DWIM should wait before it uses the default response, FIXSPELLDEFAULT , to answer its question.

FIXSPELLDEFAULT

Bound to either Y or N. Its value is used as the default answer to questions

asked by DWIM that you don’t answer in DWIMWAIT seconds. It is initially bound to Y, but is rebound to N when DWIMIFYing.

\TimeZoneComp

This is the global variable set to the absolute value of the time offset from Greenwich. For EST, \TimeZoneComp should be set to 5.

diff --git a/docs/html-primer/Medley-Primer_files/part28.htm b/docs/html-primer/Medley-Primer_files/part28.htm deleted file mode 100644 index 423c03b0..00000000 --- a/docs/html-primer/Medley-Primer_files/part28.htm +++ /dev/null @@ -1,2 +0,0 @@ - -25-REFERENCES

< Previous | Contents

25. OTHER USEFUL REFERENCES

image


Here are some references to works that will be useful to you in addition to this primer. Some of these you have already been referred to, such as:

• The Interlisp-D Reference Manual (IRM)

• The Library Packages Manual

• The User’s Guide to SKETCH


In addition, you can learn more about Lisp with the books:

Interlisp-D: The l a ngu ago a n d its usage by Steven H. Kaisler. This book was published in 1986 by John Wiley and Sons, NY.

Essenti a l LISP by John Anderson, Albert Corbett, and Brian Reiser. This book was published in 1986 by Addison Wesley Publishing Company, Reading, MA. It was

informed by research on how beginners learn LISP.

The Little Lisper by Daniel P. Friedman and Matthias Felleisen. The second edition of this book was published in 1986 by SRA Associates, Chicago. This book is a

deceptively simple introduction to recursive programming and the flexible data structures provided by LISP.

LISP by Patrick Winston and Berthold Horn. The second edition of this book was published in 1985 by the Addison Wesley Publishing Company, Reading, MA.

LISP: A Gentle Introd uction to Symbolic Comp ut a tion by David S. Touretzky. This book was published in 1984 by the Harper and Row Publishing Company, NY.


Finally, there are three articles about the Interlisp Programming environment:

• Power Tools For Programmers byBeau Sheil. It appeared in Datamation in February, 1983, Pages 131 - 144.

• The Interlisp Programming Environment by Warren Teitelman and Larry Masinter. It appeared in April, 1981, in IEEE Computer, Volume 14:1, Pages 25 - 34.

• Programming In an Interactive Environment, the LISP Experience by Erik

Sandewall. It appeared in March, 1978, in the ACM Computing Surveys, Volume 10:1, pages 35 - 71.


Each of these articles was reprinted in the book Inter active Prog r amming

Environ ments by David R. Barstow, Howard E. Shrobe, and Erik Sandewail. This

book was published in 1984 by McGraw Hill, NY. The first article can be foun d on pages 19 - 30, the second on pages 83 - 96, and the third on pages 31 - 80.


image

Medley for the Novice, Release 2.0

diff --git a/docs/html-primer/Medley-Primer_files/part3.htm b/docs/html-primer/Medley-Primer_files/part3.htm deleted file mode 100644 index 2babb8fe..00000000 --- a/docs/html-primer/Medley-Primer_files/part3.htm +++ /dev/null @@ -1,2 +0,0 @@ - -002-PREFACE

< Previous | Contents | Next >

PREFACE

image


It was dawn and the local told him it was down the road a piece, left at the first fishing bridge in the country, right at the appletree stump, and onto the dirt road just before the hill. At midnight he knew he was lost. -Anonymous


Welcome to the Medley Lisp Development Environment, a collection of powerful tools for assisting you in programming in Lisp, developing sophisticated user interfaces, and creating prototypes of your ideas in a quick and easy manner. Unfortunately, along

with the power comes mind-numbing complexity. The Medley documentation set

describes all the tools in detail, but it would be unreasonable for us to expect a new user to wade through all of it, so this primer is intended as an introduction, to give you a

taste of some of the features.

We developed this primer to provide a starting point for new Medley users, to enhance your excitement and challenge you with the potential before you. We’re going to make some assumptions about you. For starters, we’re going to assume that you’re sitting at a workstation that can run Medley. All of the examples in the book figure that you’re

going to want to try things out. We’re also going to assume that you’ve had some exposure to Lisp, hopefully Common Lisp.

Medley actually consists of two complete Lisp implementations, Common Lisp and InterLisp. All the screen I/O and some of the system functions are in InterLisp.

However, thanks to the package system, you can call back and forth between the two languages by simply including a package delimiter in front of a symbol name. This sounds complicated, but it will become clearer once we do some examples.

Throughout we make reference to the lnterlisp-D Reference Manual by section and page number. The material in the primer is just an introduction. When you need more depth, use the detailed treatment provided in the manual.

While only you can plot your ultimate destination, you will flnd this primer

indispensable for clearly defining and guiding you to the first landmarks on your way.


Acknowledgements

The early inspiration and model for this primer came from the Intelligent Tutoring

Systems group and the Learning Research and Development Center at the University of Pittsburgh. We gratefully acknowledge their pioneering contribution to more effective

artificial intelligence.

This primer was originally developed by Computer Possibilities, a company committed to making Al technology available. Primary development and writing was done by

Cynthia Cosic, with technical writing support provided by Sam Zordich. It has been re- done by Venue staff to reflect changes in the environment since the original publication.

At Xerox Artificial Intelligence Systems, John Vittal managed and directed the project. Substantial assistance was provided by many members of the AlS staff who provided both editorial and systems support.



image

Medley for the Novice, Release 2.0

vii

PREFACE



[This page intentionally left blank]



image

viii Medley for the Novice, Release 2.0

diff --git a/docs/html-primer/Medley-Primer_files/part4.htm b/docs/html-primer/Medley-Primer_files/part4.htm deleted file mode 100644 index ac7034aa..00000000 --- a/docs/html-primer/Medley-Primer_files/part4.htm +++ /dev/null @@ -1,2 +0,0 @@ - -02-TYPING-SHORTCUTS

< Previous | Contents | Next >

2. TYPING SHORTCUTS

image


Once you have logged in to Medley, you are in Lisp. The functions you type into the

Executive Window will now execute, that is, perform the designated task. Lisp is case-

sensitive; it often matters whether text is typed in upper- or lowercase letters. Use the Shift-Lock key on your keyboard to ensure that everything typed is in capital letters.

You must type all Lisp functions in parentheses. The Lisp interpreter will read from the left parenthesis to the closing right parenthesis to determine both the function you want to execute and the arguments to that function. Executing this function is called

"evaluation." When the function is evaluated, it returns a value, which is then printed in the Executive Window. This entire process is called the read-eval-print loop, and is how most Lisp interpreters, including the one for Lisp, run.

The prompt in is a number followed by a left-pointing arrow (see Figure 2.3). This number is the function’s position on the History List—a list that stores your

interactions with the Lisp interpreter. Type the function (PLUS 3 4) , and notice the History List assigns to the function (the number immediately to the left of the arrow).

Lisp reads in the function and its arguments, evaluates the function, and then prints the number 7.


Programmer’s Assistant

In addition to this read-eval-print loop, there is also a "programmer’s assistant." It is the programmer’s assistant that prints the number as part of the prompt in the

executive window, and uses these numbers to reference the function calls typed after them.

When you issue commands to the programmer’s assistant, you will not use parentheses as you do with ordinary functiion calls. You simply type the command, and some

specification that indicates which item on the history list the command refers to. Some programmer’s assistant commands are FIX, REDO, and UNDO. They are explained in

detail below.

Programmer’s assistant commands are useful only at the Lisp top level, that is, when you are typing into the Executive Window. They do not work in user-defined functions.

As an example use of the programmer’s assistant, use REDO to redo your function call

(PLUS 3 4). Type REDO at the prompt (programmer’s assistant commands can be

typed in either upper- or lowercase) , then specify the previous expression in one of the following ways:

• When you originally typed in the function you now want to refer to, there was a

History List number to the left of the arrow in the prompt. Type this number after the programmer’s assistant command. This is the method illustrated in Figure 2-1.


image

Figure 2-1. Using a Programmer’s Assistant Command to REDO a Function


• A negative number will specify the function call typed in that number of prompts dago. In this example, you would type in -1, the position immediately before the current position. This is shown in Figure 2-2.


image

Figure 2-2. Using a Negative Number after the Programmer’s Assistant Command

• You can also specify the function for the programmer’s assistant with one of the items that was in that function call. The programmer’s assistant will search

backwards in the History List, and use the first function it finds that includes that

item. For example, type REDO PLUS to have the functiion (PLUS 3 4) reevaluated.

• If you type a programmer’s assistant cmmand without specifying a function (i.e., simply typing the command, following by a Return), the programmer’s assistant executes the command using the function entered at the previous prompt.

Figure 2-3 shows a few more examples of how to use the programmer’s assistant.


image


Figure 2-3. Some Applications of the Programmer’s Assistant


If You Make a Mistake

Editing in the Executive Window is explained in detail in Chapter 7. In the following section, only a few of the most useful commands are repeated.

To move the caret to a new place in the command being typed, point the mouse cursor at the appropriate position. Then press the left mouse button.


To move the caret back to the end of the command being typed, press Control-X (hold the Control key down, and type X).


To delete:

Character behind the caret Press the Backspace key

Word behind the caret Press Control-W (hold the Control key down and type

W)

Any part of the command Move the caret to the appropriate place in the

command. Hold the right mouse button down and move the the mouse cursor over the text. All of the

blackened text between the caret and mouse cursor is deleted when you release the right mouse button.

Entire command Press Control-U (hold the Control key down and type

U)

Deletions can be undone. J ust press the UNDO key.

To add more text to the line, move the carent to the appropriate position and start to type. Whatever you type will appear at the caret.



[This page intentionally left blank]

image

diff --git a/docs/html-primer/Medley-Primer_files/part5.htm b/docs/html-primer/Medley-Primer_files/part5.htm deleted file mode 100644 index 9d30bda1..00000000 --- a/docs/html-primer/Medley-Primer_files/part5.htm +++ /dev/null @@ -1,2 +0,0 @@ - -003-TOC

< Previous | Contents | Next >

TABLE of CONTENTS

Preface vii

1. Brief Glossary 1-1

2. Typing Shortcuts

Programmer’s Assistant 2-1

If You Make a Mistake 2-2

3. Using Menus

Making a Selection from a Menu 3-1

Explanations of Menu Items 3-2

Submenus 3-2

Summary 3-3

4. How to Use Files

Types of Files 4-1

Directories 4-1

Directory Options 4-2

Subdirectories 4-2

To See What Files Are Loaded 4-3

Simple Commands for Manipulating Files 4-3

Connecting to a Directory 4-3

File Version Numbers 4-4

5. FileBrowser

Calling the FileBrowser 5-1

FileBrowser Commands 5-3

6. Those Wondertul Windows!

Windows Provided by Medley 6-1

Creating a Window 6-2

Right Button Default Window Menu 6-2

Explanation of Each Menu Item 6-3

Scrollable Windows 6-4

Other Window Functions 6-5

PROMPTPRlNT 6-5

WHlCHW 6-6

7. Editing and Saving

Defining Functions 7-1

Simple Editing in the Executive Window 7-2

Using the List Structure Editor 7-3

Commenting Functions 7-4

File Functions and Variables: How to See and Save Them 7-5

File Variables 7-5

Saving Interlisp-D on Files 7-5

8. Your Init File

Using the USERGREETFILES Variable 8-1

Making an Init File 8-1

9. Medley Forgiveness: DWIM 9-1

10. Break Package

Break Windows 10-1

Break Package Examples 10-1

Ways to Stop Execution from the Keyboard (Breaking Lisp) 10-3

Break Menu 10-3

Returning to Top Level 10-4

11. WhatTo Do lf 11-1

12. Window and Regions

Windows 12-1

CREATEW 12-1

WlNDOWPROP 12-2

Getting Windows to Do Things 12-3

BUTTONEVENTFN 12-5

Looking at a Window’s Properties 12-5

Regions 12-5

13. What Are Menus?

Displaying Menus 13-1

Getting Menus to Do Stuff 13-2

WHENHELDFN and WHENSELECTEDFN Fields of a Menu 13-3

Looking at a Menu’s Fields 13-5

14. Bitmaps 14-1

15. Displaystreams

Drawing on a Displaystream 15-1

DRAWUNE 15-1

DRAWTO 15-2

DRAWCIRCLE 15-3

FILLCIRCLE 15-1

Locating and Changing Your Position in a Displaystream 15-4

DSPXP0SITION 15-5

DSPYPOSlTION 15-5

MOVETO 15-5

16. Fonts

What Makes Up a Font 16-1

Fontdescriptors and FONTCREATE 16-2

Display Fonts 16-3

InterPress Fonts 16-3

Functions for Using Fonts 16-4

FONTPROP - Looking at Font Properties 16-4

STRINGWlDTH 16-5

DSPFONT- Changing the Font in One Window 16-5

Personalizing Your Font Profile 16-6

17. The Inspector

Calling the Inspector 17-1

Using the Inspector 17-2

Inspector Example 17-2

18. Masterscope

SHOW DATA Command and GRAPHER 18-2

19. Where Does All the Time Go? SPY

How to Use Spy with the SPY Window 19-1

How to Use SPY from the Lisp Top Level 19-2

Interpreting SPY’s Results 19-2

20. Free Menus

Free Menu Example 20-1

Parts of a Free Menu Item 20-2

Types of Free Menu Items 20-3

21. The Grapher

Say it with Graphs 21-1

Add a Node 21-2

Add a Link 21-2

Delete a Link 21-2

Delete a Node 21-2

Move a Node 21-2

Making a Graph from a List 21-2

Incorporating Grapher into Your Program 21-2

More of Grapher 21-2

22. Resource Management

Naming Variables and Records 22-1

Some Space and Time Considerations 22-2

Global Variables 22-3

Circular Lists 22-3

When You Run Out of Space 22-4

23. Simple Interactions with the Cursor, a Bitmap, and a Window

GETMOUSESTATE Example Function 23-1

Advising GETMOUSESTATE 23-2

Changing the Cursor 23-2

Functions for Tracing the Cursor 23-3

Running the Functions 23-6

24. Glossary of Global System Variables

Directories 24-1

Flags 24-2

History Lists 24-3

System Menus 24-3

Windows 24-4

Miscellaneous 24-4

25. Other Useful References 25.1

Index.............................................................................................................................................. INDEX-1


[This page intentionally left blank]

diff --git a/docs/html-primer/Medley-Primer_files/part6.htm b/docs/html-primer/Medley-Primer_files/part6.htm deleted file mode 100644 index 5127f03d..00000000 --- a/docs/html-primer/Medley-Primer_files/part6.htm +++ /dev/null @@ -1,2 +0,0 @@ - -03-USING-MENUS

< Previous | Contents | Next >

3. USING MENUS

image


The purpose of this chapter is to show you how to use menus. Many things can be done more easily using menus, and there are many different menus provided in the Medley

environment. Some are "pop-up" menus that are only available until a selection is made, then disappear until they are needed again. An example of one of these is the Background Menu that appears when the mouse is not in any window and the right

mouse button is pressed. A background menu is shown in Figure 3-1. Your background menu may have different items on it.


image

Figure 3-1. Background Menu

Another common pop-up menu is the right button default window menu. This menu is explained more in Chapter 6.

Other menus are more permanent, such as the menu that is always available for use with the Filebrowser. This menu is shown in Figure 3-2., and the specifics of its use with the filebrowser are explained in Chapter 5.


image

Figure 3-2. Filebrowser Menu


Making a Selection from a Menu

To make a selection from a menu, point with the mouse to the item you would like to select. If one of the mouse buttons is already pressed, the menu item should be

highlighted in reverse video. If it is a permanent menu, you must press the left mouse button to highlight the item. When you release the button,m the item will be selected. Figure 3-3 shows a menu with the item "Undo" chosen.


image

Figure 3-3. Menu with the Item "Undo" Chosen


Explanation of Menu Items

Many menu items have explanations associated with the. If you are not sure what the consequences of choosing a particular menu iem will be, highlight the menu item but do not releast the left mouse button. If the menu item has an explanation associated with it, the explanation will be printed in the prompt window. Figure 3-4 shows the

explanation associated with the item "Snap" from the background menu.


image


image


Figure 3-4. Explanation Associated with Selected Menu Item


Submenus

Some menu items have submenus associated with them. This means that, for these items, you can make even more precise choices if you would like to.

A submenu can also be foun d as described below.

As shown in Figure 3-5, a submenu can be indicated by a gray arrow to the right of the menu item. To see the submenu, highlight the menu item and move the mose to the

right to follow the arrow. Choosing an item from a submenu is done the same way you make a choice from the menu. Any submenus that might be associated with the items in the submenu are indicated in the same way as the submenus associated with the

items in the menu.

3. USING MENUS

image


image


Figure 3-5. Edit Submenu Displayed with Right Arrow


Summary

In summary, here are a few rules of thumb to remember about the interactions of the mouse and system menus:

• Press the left mouse button to select a menu item

• Press the middle mouse button to get more options on a submenu

• Press the right mouse button to see the default right button window menu, and the background menu



[This page intentionally left blank]

diff --git a/docs/html-primer/Medley-Primer_files/part7.htm b/docs/html-primer/Medley-Primer_files/part7.htm deleted file mode 100644 index 261b3fae..00000000 --- a/docs/html-primer/Medley-Primer_files/part7.htm +++ /dev/null @@ -1,2 +0,0 @@ - -04-USING-FILES

< Previous | Contents | Next >

4. HOW TO USE FILES

image


Types of Files

A program file, or Lisp file, contains a series of expressions that can be read and

evaluated by the Lisp interpreter. These expressions can include function or macro

definitions, variables and their values, properties of variables, and so on. How to save Interlisp-D expressions on these files is explained in Chapter 7. Loading a file is

explained in the Simple Commands for Manipulating Files section below.

Not all files, however, have Lisp expressions stored on them. For example, TEdit files store text; sketches are stored on files made with the package Sketch , or can be

incorporated into TEdit files. These files are not loaded directly into the environment, but are accessed with the package used to create them, such as TEdit or Sketch.

When you name a file, there are conventions that you should follow. These conventions allow you to tell the type of file by the extension to its name.

If a file contains: Then:

Lisp expressions It should not have an extension or have the extension

.LISP. For example, a file called MYCODE should contain Lisp expressions.

Compiled Code It should have the extension .LCOM or .DFASL. For

example, a file called MYCODE.DFASL should contain compiled code.

A Sketch Its extension should be .SKETCH. For example, a file called MOUNTAINS.SKETCH should contain a Sketch.

Text It should have the extension .TEDIT. For example, a file called REPORT.TEDIT should contain text that can be edited with the editor TEDIT.


Directories

This section focu ses on how you can find files, and how you can easily manipulate files. To see all the files listed on a device, use the function DIR. For example, to see what files are stored in your current directory, type:

(DIR *.*)

Partial directory listings can be gotten by specifying a file name, rather than just a

device name. The wildcard character * can be used to match any number of unknown characters. For example, the command (DIR T*) will list the names of all files that begin with the letter T. An example using the wildcard is shown in Figure 4-1.


image


Figure 4-1. Using DIR with a Wildcard


Directory Options

Various words can appear as extra arguments to the DIR command. these words give you extra information about the files.

SIZE displays the size of each file in the directory. For example, type:

(DIR {DSK} SIZE)

DATE displays the creation date of each file in the directory. An example of this is shown in Figure 4-2.


image

Figure 4-2. Example Using DATE DEL deletes all the files foun d by the directory command.


Subdirectories

Sudirectories are very helpful for organizing files. A set of files that have a single

purpose (for example, all the external documentation files for a system) can be grouped together into a subdirectory.

To associate a subdirectory with a filename, simply include the desired subdirectory as part of the name of the file. Subdirectories are specified after the device name and

before the simple filename. The first subdirectory should be between less-than and

greater-than signs (angle brackets) < >, with nested subdirectory names only followed by a greater than sign >. For example:

{DSK}<Directory>SubDirectory>SubSubDirectory>...>filename

or use the UNIX convention:

{DSK}/Directory/Subdirectory/Subsubdirectory/filename


To See What Files Are Loaded

If you type FILELST<CR>, the names of all the files you loaded will be displayed. Type SYSFILES<CR> to see what files are loaded to create the sysout.


Simple Commands for Manipulating Files

When using these functions, always be sure to specify the full filename, including subfile directories if appropriate.

To have the conents of a file displayed in a window:

(SEE ’filename)

To copy a file (see Figure 4-3):

(COPYFILE ’oldfilename newfilename)


image

Figure 4-3. Example Use of COPYFILE

To delete a file (see Figure 4-4):

(DELFILE ’filename)


image

Figure 4-4. Example Use of DELFILE

To rename a file:

(RENAMEFILE ’oldfilename newfilename)

Files that contain Lisp expressions can be loaded into the environment. That means that the information on them is read, evaluated, and incorporated into the Medley

environment. To load a file, type:

(LOAD ’filename)


Connecting to a Directory

Often, each person or project has a subdirectory where files are stored. If this is your situation, you will want any files you create to be put into this directory automatically. This means you should "connect" to the directory.


CONN is the Medley command that connects you to a directory. For example, CONN in Figure 4-5 connects you to the subsubdirectory IM, in the subdirectory PRIMER , the directory LISPFILES, on the device DSK. This information—the device and the

directory names down to the subdirectory to which you want to be connected—is called the "path" to that subdirectory. CONN expects the path to a directory as an argument.


image


Figure 4-5. CONNecting to Subdirectory Primer Subsubdirectory IM

Once you are connected to a directory, the command DIR will assume you want to see the files in that directory, or any of its subdirectories.

Other commands that require a filename as an argument (e.g., SEE, above) will assume that the file is in the connecteds directory if there is no path specified with the filename. This will often save you typing.


File Version Numbers

When stored, each filename is fillowed by a semicolon and a number, as shown in this example:

MYFILE.TEDIT;1

The number is the version number of the file. This is the system’s way of protecting your files from being overwritten. Each time the file is written, a new file is created with a version number one greater than the last. This new file will have everything from your previous file, plus all of your changes.

In most cases, you can exclude the version number when referencing the file. When the version is not specified, and there is more than one version of the file on that particular directory, the system generally uses your most recent version. An exception is the

function DELFILE, which deletes the oldest version (the one with the lowest version number) if none is specified.



[This page intentionally left blank]

diff --git a/docs/html-primer/Medley-Primer_files/part8.htm b/docs/html-primer/Medley-Primer_files/part8.htm deleted file mode 100644 index 1123a67b..00000000 --- a/docs/html-primer/Medley-Primer_files/part8.htm +++ /dev/null @@ -1,2 +0,0 @@ - -05-FILEBROWSER

< Previous | Contents | Next >

5. FILEBROWSER

image


The FileBrowser is a Lisp Library Package that works with files stored on disk and floppy devices, and can be used as a file directory editor. If it is not loaded into your sysout, you need to load it first by typing:

(LOAD ’FILEBROWSER.LCOM)


Calling the FileBrowser


Calling the FileBrowser with the directory calls up the files stored in that directory:

(FB ’<usr>local>lde>)


Another way to call a FileBrowser is to choose "FileBrowser" from the background

menu. You will be prompted for a description of the files to be included (see Figure 5-1). Type an asterisk (*), then press Return to see all the files in the connected directory.


image


Figure 5-1. Prompt for Files to Include in FileBrowser


These show a directory of the device in a window you can leave on the screen at all times. The parts of the FileBrowser window are shown below.



image

Prompt Window

Prompt Window

Prompt Window

Command Menu

Command Menu

Command Menu

File List

File List

File List

Figure 5-2. Parts of a FileBrowser Window Now you do not need to continually type the directory command.

To use the FileBrowser, choose a file by pointing to the file with the mouse and pressing the left or middle mouse button. A small dark arrow appears to the left of the file

name. Choose a command from the menu at the right. In Figure 5-3, the files

OCH1.TEDIT;1, OCH10.TEDIT;1, and OCH11.TEDIT;1 have been selected.


The left mouse button only allows you to choose one file at a time. Even if you choose other files, only the last file you selected with the left mouse button will remain

marked as chosen. When you use the middle mouse button to select a file, the file is added to those already chosen.


To unpick an already chosen file, hold the Control key down while pressing the middle mouse button.


image


Figure 5-3. Files Chosen

5. FILEBROWSER

image


The next section contains a summary of the FileBrowser commands.


FileBrowser Commands


Delete In the FileBrowser, this command marks a file, or files, for deletion (see Figure 5-4). These files are marked by a black line crossing through

them. You may select and mark any number of files for deletion. Delete does not actually remove these files from the device. The Expunge command actually wipes out the files previously marked for deletion.


image


Figure 5-4. Files Marked for Deletion


Undelete Undoes the delete command for one or more files. Undelete erases the black line through a file marked for deletion.

Copy This command copies the chosen file. The destination filename should

be typed at a prompt that appears in the window above the FileBrowser.

Wildcards do not work for this prompt. You must type the whole

unquoted filename. If more than one file is chosen to be copied, you will be prompted for a directory name. The files will be copied into the

directory you give, but with the same filenames as the ones they have in their original location.


Rename This command works much like the Copy command, but does not leave the original file. The chosen file will be renamed to the destination

filename. You will be prompted, in the prompt window, for the

destination filename. Give the complete unquoted filename. If more

than one file is chose to be renamed, you will be prompted for a directory name. The files will be moved into the directory you give.


Hardcopy If you do not have a hardcopy device, using this command causes an error. Otherwise, it gives a hardcopy of the file.

See Shows you a file in a window. To use this command, choose a single filename, then the See command. You are prompted for a window.

Each time the See command is chosen, a new window is opened to display the file.

Edit Calls the editor with the file as input. If the file is an executable one (i.e., Lisp code as opposed to a documentation file), only the FILECOMS list is edited. The FILECOMS list is the list of variables, lists, and


functions that are contained on that file. FileBrowser loads it and then allows you to edit the FILECOMS .

Load Choose a file with the left mouse button, or a group of files with the

middle mouse button. Once the filenames have been blackened, choose the Load command to load them all into Medley.


Compile This command calls the file compiler with the chosen filename(s) as arguments. The compiler compiles a file foun d on a storage device

({DSK}), not the functions defined in the Medley image. If any functions on a loaded file have been changed, run the function (MAKEFILE ’filename) to write the current version before compiling it. Files do not have to be loaded to use the Compile command.

Expunge This command completely deletes all the marked files from the

directory. This allows you to remove unwanted files from your storage device.


Recompute Choose this command when you know that the directory has been

changed and should be reread (e.g., after creating new versions of a file).

diff --git a/docs/html-primer/Medley-Primer_files/part9.htm b/docs/html-primer/Medley-Primer_files/part9.htm deleted file mode 100644 index 52b32978..00000000 --- a/docs/html-primer/Medley-Primer_files/part9.htm +++ /dev/null @@ -1,2 +0,0 @@ - -06-WINDOWS

< Previous | Contents | Next >

6. THOSE WONDERFUL WINDOWS!

image


A window is a designated area on the screen. Every rectangular box on the screen is a window. While Medley supplies many of the windows (such as the Executive Window), you may also create your own. Among other things, you will type, draw pictures, and

save portions of your screen with windows.


Windows Provided by Medley


Two important windows are available as soon as you enter the Medley environment.

One is the Executive Window, the main window where you will run your functions. It is the window that the caret is in when you turn on your machine, and load Medley. It is

shown in Figure 6-1.

image


Figure 6-1. Medley Executive Window


The other window that is open when you enter Medley is the "Prompt Window". It is the long thin black window at the top of the screen. It displays system prompts, or prompts you have associated with your programs. (See Figure 6-2.)

image


Figure 6-2. Prompt Window


Other programs, such as the editors, also use windows. These windows appear when

the program starts to run, and close (no longer appear on the screen) when the program is done running.


Creating a Window


To create a new window, type: (CREATEW). The mouse cursor will change, and have a small square attached to it. (See Figure 6-3.)



image


Figure 6-3. Mouse Cursor Asking You to Sweep Out Window


There may be a prompt in the prompt window to create a window. Press and hold the left mouse button. Move the mouse around, and notice that it sweeps out a rectangle. When the rectangle is the size that you’d like your window to be, release the left mouse button. More specific information about the creation of windows, such as giving them

titles and specifying their size and position on the screen when they are created, is given in the WINDOWPROP section of Chapter 12.


Right Button Default Window Menu

Position the cursor inside the window you just created, and press and hold the right mouse button. A menu of commands should appear (do not release the right button!), like the one in Figure 6-4. To execute one of the commands on this menu, choose the item. Making a choice from a menu is explained in Chapter 3.



image


Figure 6-4 Right Button Default Window Menu


As an example, select "Move" from this menu. The mouse cursor will become a ghost window (ju st an outline of a window, the same size as the one you are moving), with a square attached to one corner, like the one shown in Figure 6-5.


image


Figure 6-5 Mouse Cursor for Moving a Window


Move the mouse around. The ghost window will follow. Click the left mouse button to place tho window in a new location.


Choose "Shape", and notice that you are prompted to sweep out another window. Your original window will have the shape of the window you sketch out.


Explanation of Each Menu Item

The meaning of each right button default window menu item is explained below:


Close Removes the window from the screen

Snap Copies a portion of the screen into a new window Paint Allows drawing in a window

Clear Clears the window by erasing everything within the window boundaries Bury Puts the window beneath all other windows that overlap it

Redisplay Redisplays the window contents

Hardcopy Sends the contents of the window to a printer or to a flle Move Allows the wi ndow to be moved to a new spot on the screen Shape Repositions and/or reshapes the window

Shrink Reduces the window to a small black rectangle called an icon, or, if appropriate, to the shape for that window type (see Figure 6-6).

image


Figure 6-6 Example Icon


Expand Changes an icon back to its original window. Position the mouse cursor on the icon, depress the right button, and select Expand. Or, just button the icon with the middle mouse button.


These right-button default window menu selections are available in most windows, including the Executive Window. When the right button has other functions in a

window (as in an editor window), the right button default window menu should be accessible by pressing the Right button in the black border at the top of the window.


Scrollable Windows


Some windows in Medley are "scrollable". This means that you can move the contents of the window up and down, or side to side, to see anything that doesn’t fit in the

window.


Point the mouse cursor to the left or bottom border of a window. If the window is scrollable, a "scroll bar" will appear. The mouse cursor will change to a double headed arrow. (See Figure 6-7.)


image


Figure 6-7. Scroll Bar of Scrollable Window


The scroll bar represents the full contents of the window. The example scroll bar is completely white because the window has nothing in it When a part of the scroll bar is shaded, the amount shaded represents the amount of the window’s contents currently

shown. If everything is showing, the scroll bar will be fully shaded. (See Figure 6-8.)

The position of the shading is also important. It represents the relationship of the

section currently diplayed to the the full contents of the window. For example, if the shaded section is at the bottom of the scroll bar, you are looking at the end of the file.


image


Figure 6-8 Top of File When Shading at Top of Scroll Bar


When the scroll bar is visible, you can control the section of the window’s contents displayed:


• To move the contents higher in the window (scroll the contents up in the window), press the leff button of the mouse, the mouse cursor changes to look like this:


image


Figure 6-9. Upward Scrolling Cursor



The contents of the window will scroll up, making the line thit the cursor is beside the topmost line in the window.


• To move the contonts lower in the window (scroll the contents "down" in the window), press the right button of the mouse, and the mouse cursor changes to look like this:


image


Flgure 6-10. Downward Scrolling Cursor


The contents of the window scroll down, moving the line that is the topmost line in the window to beside the curtor.

• To show a specific section of the window’s contents, remember that the scroll bar represents the full contents of the window. Move the mouse cursor to the relative

position of the section you want to see (e.g., to the top of the scroll bar if you want to see the top of the window’s contents). Press the middle button of the mouse. The mouse cursor will look like this:


image


Figure 6-11 Proportional Scrolling Cursor


When you release the middle mouse button, the window’s contents at that relative position will be displayed.

The position of the mouse in the scroll bar defines how much of the window will be scrolled. If it is near the top, then only a little will be scrolled. If it is near the bottom, most of the window will be scrolled.


Other Window Functions


PROMPTPRlNT

Prints an expression to the black prompt window.


For example, type


(PROMPTPRINT "THIS WILL BE PRINTED IN THE PROMPT WINDOW")


The message will appear in the prompt window. (See Figure 6-12.)


image


image


Figure 6-12 PROMPTPRINTing


WHlCHW

Returns as a value the name of the window that the mouse cursor IS in.


(WHICHW) can be used as an argument to any function expecting a window, or to

reclaim a window that has no name (that is not attached to some particular part of the program.).

diff --git a/docs/primer/001-TITLEPAGE.TEDIT b/docs/primer/001-TITLEPAGE.TEDIT deleted file mode 100644 index f8ca0e8941d6cf80b45f38505d5046dbd506d3a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3878 zcmb_e&2kz?5FU{HqsSY(lsL(;%eg>Gq7VYf#FYa=NTLdZ3XrY%HtY^!<7J1MnYBz# zd4L>p%tPb}@)*v`_?Yh5MOyS1iOQ4^yWQW{{q@go(G`KgXz>A2rSgR?I7d>Oo~!(cxkVL5sCjZAk`Njtx&`N=I};_1aA`i^hi(vg zLc^G26*Qq!5em$QWe$}b+cnT~XwJA2fW%Y9#~M6ePXazg5XPWQ(XJ9ATn8PwBj6f* zSB5y<*gS(nAmw|sQrCzS`0qs_9(5mY{SfyKb;P<5f$j8?ZK7&*H24K&#_nGpI!SqxSHrX_3i>jD5Z-b^QA$gzRg^9n}sR&~CN> zuZ|ksUh`c8S^_mH*zdHOoo0K#1G!qaw%e@3ix>EphhD$d?Kj&8#Qh#N^N=e-5wLYxl`1cxvIAR{GHh+<35~|Pa489qicrB27u{P#$bmiz$^iR+!@6twOB79QS?E z0xu6Up232}+F9Inoc~L)`Mllc2kaTE&{gI$TcYo!3}ab#n9Y2~i(5_!eQRk_=D!#l z?2sL1eq%X`nq9`vU#a++e(Hv?^#uHd1>ZpmYhUQkp#HgNmv5|i_U_({;k_6?ur>C_ zy%^i~X6)XRu}-bPv0?jJHftw-xjE|3^S*l4|J^qch>vztlJ3VY5T z)myb*uUWs|_?STUq>xWy%e8cLrI2eea^Cn|Y{Z6q%^r4+`pwrh+yr|tB-&ng_8Q%G zO3)fxZgmbiEMX$_3M%HK+NXGB1;!1J4PTO*4AvNz6nm^;h1|$}X8&i{>S6b|)hHY^ z`upw74Y@3FH6hZsH9SrX)Zr|e<|Cy#bJ2u^`6ywMmc^KqdodIa3KMYy>va=;q5(3k2CR=RU@D=&ehAWhBE+g!3 zuQX-(w#B%3xDtIcCOPI}lfk0X2)pTN!#TnhOK(kjLe5Jd_go2N0Q{UI=!JNkHW1>c mw1E(>E*t(#8;G)4)fhW7Hv~%ddpb55;(cPvuh`pP|Na+L#GL^E diff --git a/docs/primer/002-PREFACE.TEDIT b/docs/primer/002-PREFACE.TEDIT deleted file mode 100644 index 5493278788138e7895e44944fc45f18de903a6f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5943 zcmeHJ-EP~+6{eE?%LXdYqJKb(;vn0iHlV1so5a~m)uv*0Wl5!EC)uJGBXT6onw(+D zp%wKZ`Ut)1Q}h`Yz1rIXz362hU@!ZfA@%3oq;6XDrZo(T9M1Xs&Ue1yVY7KI<3uiL zYI3r3NquvzBH5x)CQ=lVj@k#!!&~hdhJLqm;`8pU+x7jEX0sVsT8M&TvCt%R>;fhx z5(!z8#57kasd|gS7S1O(A|^qZlAKi{rB0QEKOB0S9(U1T*WgsOqNP*$=BB^H=6H}8$~8b zWMq}mWTupvh0LcVLuHb}^-C0mDlAvOG$ogw*fM!b# z{|V3+i9ytbvU7){D*}s)tx!peCZ%;GG9?%_kyL6_R2VHLiFBxy1@}R|%785@;Wj!Xu(%L0 zcRV-cZ0;hUa)n+L+&5JKUzIXu41$$928aMeXnxF1T)Jkp*!@ghOV<@aRuon;h6Pgq zznu0ID3`e`+Tg~jL-4j81zymDYk-a{3oG)fEe5e%9h`U#6z7lraanpUbmT(ks4-Gj zI%@H>MRR~AHKv5=vegxoVikt4raa!Z>ACzV*gr$G8T(De6{dy@0O>G0+!0hhF+khx z??OLZk}i|QuC=paWHGwf&7KQoT|HP4v@rP4#t2jS8g8IX(pm80eVy( zT8<{%2?#XEftM~8Pxu^Mu?xgBo6XrQa87Gj>Gj4@*AV#OQ7IECEh zJU}SP;kcFwcaq%D2M})#;CKeL#LTCB%)~OY^A-z{^H7Ny3j)iro8Vdt;#CkxE^>o@ z;Bj<)a z=$^m}=u>}GTxbY)4slvCEr$@PVp8U_IjaR+1IlXN!RA#(oRZ4%g<{Z7mkP$+;*=^Y zJ%f01hvjt29D<;*l227s5oT3MB$=q2iutnwh0V}3R*?D-2O}_E(1)z#q=yDy027rc ztK9kRhDB%=9DD>=KIALyW`H_S4jIk0Nz80X;u@zVcezbN&{aSi>lo|vVv)ly4BaOi zigTft8WJjyLZPBoeTcAEOlU$Yi=xajsKo00a!HRwN}rlMRuRC&hu|CqPFO*5`7o}% zUrJp&fB5Jmqq@Y!e0{_NA_G;Gv0^$S1rA;5FqE)@v)%l4#SqpX1=b=wzH68s z?z?z`>AU(()8oIpd%a*ZroFvk=b2CaphvhH`r#<})W=YO8aZ_byA?g1@6%}93CBVI8QXtE$NRK*KnL{X@Q98-KEl(UvtD@)JH5f+lM(Ix>Y@Vy z4W6Bi_vz%U6V}V43yysf2E#GD1pUik6#Sy+)1cd>k>B%A#zSN>cF)6bFvfy^TD|3j z4-cr@IS+a->CEq4`s3iFLxW2{>;?VW$2bf=@dp=`hl~E{);s^ju+tv}gFc1+vx{CQ zq)~4$^w&?%eNLCo{nOy$oOAQTRq%_EA3A^-z|r_6GRECLkPFW{K<8_r12{*=2Xy$D zj-EcHpFi2JZ1&Fl&M5$`Agdq7FOf)hFkqxZ7(RYPN5}N|@wVOAe=&AOu8Y{g{|Arg z_yB$2boOERmTiXR?c3V(yZ_T&1@8ZHQ!iiB)Yp;$>>CaEZDn};WpzdP5)c>UP&&b%{hejh7$zIO9^ ztGC+wqg(C$-21%o<*ocy32*lPt?~CwP;V<)UhVP)j@{o~RM%*HxvKF#Yh(?xcW*ss z)!v=!u9rJ+@Um{sj(zpu^AB?2_>H@7@bW=@09;mfJJ($&ZzyQxB-}CIJiLS6f6u$O zK0m#0RPT`2cf9vcdY#cIIPpHL77^$B-iPDh+#k7*f`7ISs~z9pTKnEvuD#>sS3_d) z+unQU1DxD_Z)3k%+ZeO+J1B>*4e$P0c+vCQ&-`(>-`Mi8z28xQ4OWI9@$GwjfsYT| z^({QH;RE);o_1pJ!0_933^zev>#)9|f?FEMACpQ-=guMG-cpv}nPyYZhge)rn diff --git a/docs/primer/003-TOC.TEDIT b/docs/primer/003-TOC.TEDIT deleted file mode 100644 index 64166d16d6d823049146c55f816060e658af13b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8946 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�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 R!Bl}Dto_1hK>PZC{(oZ0&D#I~ diff --git a/docs/primer/02-TYPING-SHORTCUTS.TEDIT b/docs/primer/02-TYPING-SHORTCUTS.TEDIT deleted file mode 100644 index df0dab88718e9f871e6a21b87877d803ce398ab6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42452 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 diff --git a/docs/primer/04-USING-FILES.TEDIT b/docs/primer/04-USING-FILES.TEDIT deleted file mode 100644 index 2ba249bf73ff86b458e62a992980df64eb15cde3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44688 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 diff --git a/docs/primer/05-FILEBROWSER.TEDIT b/docs/primer/05-FILEBROWSER.TEDIT deleted file mode 100644 index 2edd98649067f667b7caf4a7fe529801df6e0488..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48948 zcmeHw4R9ORo!YI0?&)MPv2%7Zwr|pQCQTKalAOj)CzkAb z&Z171*x&!X-Ngb}U>_7Kw&%FEfZeyh_y2xxAF==aZ*6gLS73N7FvCW|Q5N4FVBO)# z;80*a>kW(r{ILM5tF9@ol|r$`YR1}qo!*w-o}GQ(Ug~DnR_tnYr9(Fq7Z>+~dwXy! z&=L(##R5^cffVcZbsEp{V>cSBSZx&x#+aXV24fL?3`YIY8MfU&^r(L{0EPTzz_--}=@-Y^RhogaE77nrDVC+%m4-K=Cv2Y|Z!-fN-d~7{$8}f(PV1P};fb|m# z>WwbZzz_(`u)uH--_Y4N!h&&VtqSWx;WOyg%FqoVlj-E_(T-ChZ%K-c?{&aO#*Bv z910G52RBgYEw$JU9<0nq4T_% zTPtCP(ApLTi|#6{I^0xvSL}{WKYxO0?U~;TLqDx7dcap%R5|y(%4fQAAqR^#7rB7k zJX}`!j4zXv-U9Bd$hEDqh~56QC2~z+#lLAPT=Q;O)6Wm*;y$1#MT)`^_^?3UnnWtu zw|sn*ol5GN6`HB`Fh5$clDS<{Tfa0`lAk|6XXLfy6(Of23;T-Cd|JZ6mmi#6&VgOn zzkKG}Wfi%cfjoHd`Z|7cd3Is{wU@4a^6b>)=J@3YcYhSQcuAa4KhL~;O>LN6*muv# zeXDk!oH+ZJ|L}{^P&ky1yn6kf`oEZd|D!#i`Cs>ca`~_SOVh@G_(eDzp7>S@%|i#T zUi;mf$4-uhLO`Cp2ILRUUN%FXdHL$K58giYH{meRJPDeo-#&Zt+NE$Py!T8BO%?fK zIDCLK`gGOO{&zM{0l6n~H63~F1JFE)i@(Jc_RPWSYwvmc)Js3uv&RBy5G4=fKaHW*xg+_yVspF{=Z?SK z8u{vz-1PTbBj@J0<0WX$&2h&|$T=stms)XGmgb-l9M3F~NpH>?27kuxbseWDpAXFv zRRU}7r3nGGMzWGS%LprhEPeKAS>)000vFy^GBtSu9miW zDej&%Ef35ek)a8U*eo^DfY!R_kF=cUolLQFvX=9_jM&dLtr&aBrq&U^nOX~bl&?+GRm$=vLT1z9A) zrDMs`@A$#$LoR@&-xb9!e%P_JCy>f{=wt08a6ezpfV5uMDN5PL=j3QAMLd*cr1d4B;o8M_wX)Px$YaIz0zgGaM0BLQ{ z=C$j8@+wwA)_!lUsQ+3eR#w)2Z?14vR$^TzLla1>>#XIhsBm%a)_z~R*7a4=$l9K; z5ns+LGJcmwlI`=jzFTrHSP~SiY4U5P6nDF={6hKppD$R`Ecoz5`RejIW{tEfE#>9q ztIx?I%ORKdqq&jm%I+xR+n-+k4NXU7(yxcX|-qvh2-o0({|MQ!XT?eLKwX&yX&H4F+ zm7J4bHR8wt8Kk0=9D8v9>3C{7mq_8GK7J&Dg@%Em%sWcvLqg+ZfYSablMQ)b0iE@Yv%i9UfL&gWWD~n{P)K>-BEk(dp^czN-k;>IH>f z*5c{&BG=E$n|Aa*3|6&G)itcCisw&KPNj|&T?k3d>c1-1ukAtzO1C6{yQaF9u?7%g zZYY5aOls}h=Iioo_4c&x@vx3ev(27k~Y?5h#%$B_4B)|Fl zi-ewC*0x1$C(AdkQU&4V0)F<|TZ_xN@j%aBTHddsmrc;uZ!KJ!73Y@;9eQa0U)=Nd zQ}_JyxBmC$T@Rk(XObV+uV1}&-20dV&qP9)H{4Zs6M zjyCQZ@IaB2Ta^Shv6iIZLfOxGpd6AxYhgmGb!*yRB=lxIzGdX5Tdmk6wM=Z@)s_dk zWiT&vi#s3M8rte_K$?+TS_WzMftE7p&6{`SfmW2}{LlmPk^o7Yq}&25hqf){h1ULD zmXgHg*b}+%Mw6u6Hpk(^tLqRbaGNXa1f50oPd7)28p^vP8|NMmuOm2Ph(9?}~78kOX_45=?Z(G|5YxK0E?3Kr#sNM6Gw`9ir%pI#6ANiNRJa%_knZ$MH+xNZu zoBRLtg|C18A(zB_vajvow$9EsySn=2lH+o;Ir@++T2Z!)ym?4o?xFn9`(_TxY6%&{CTYQ&h5q7hlN30Yueh9D~p(1*U=Oq;ArF3C*y&goLnPJZZ=uAlM2 ze&k$ltYh_cjMX>RQ!;j4BWm>`6}y&aX4mkPaxG!IrV;Hpt)^@@@^&@LysoAOCy@MJ zUxTD>%H?*c+4wto{=5rCcF|~(R4$i|?yhZYs0RP~8j@^NEd&93kC-F!DE?#SRe4MKGcA?(u?=4+@1Gh_k%_gvEYA}lUoxWbA)4Sab za6mPQMuIgoG^HQZ)gap*XX+Yoh7RZ`BduRe#ZSr67fJeL`G&fBblu46HX!qV0}&8- z168!)h`86)Y~l>-YpXZZG&O8M6RWGOsczU%fhfz?#PD#=4D78>;w5R4F!$ zp;KFvqJN!Gxu$_=)in}3gi-RKu1VnYRJpDJ>TcXbPdd~YH5MF*D9KjW*hm^Tsr>4N z>|EofjY55)ab4p^Bd|$WBMnF@s~V?{mRj+IgF0N`N)e9@c$R`X@VdlQe>(pA$Ks|s z8YvBp;IN_IJQVBb5f1gq3mQnwt;Hfn3RG&~0awq10s92V)A;pu8yW21*u;2LtHGvI z1VMK_5BmllYW4Mv$xv$)kygJ^*iyyuNK3&%MILDNBGRggF_}Rxu3SR{S-762C6uK` z{qd&aZ|4==Y(#lchRS&KQP zy0||~CBOMu!^1!8wJOwV8F19>j)YOy@69m9odfM1^K4UL9I1-8~i^c*u!HIZ09D-sV78|F>k%s+I)FqFi5IXZmA_0GtKMzF$i~h;V)hy&651?nO zsFCeQiD@x6>h-ayC^kLjM7^WI(cN*Nee^_?THLyx7qM1LqxZCS)K>T7$)f%TYu7V6 zs!1M_GSs9a*lv2DYLK3zilJOQ6}E=`G%1a`;i)T_9jc+UJAWQ4S=Kuo3W&<;^e7gK z<3TJ4=$!=3;D~s1OQ7TxJ7FHMT18@RnvB*8gYI2suD;~BAW z7#h{MQQjRz#$y5U!A`2^O~kY)FmaVA@=Y2;WD+T9Ltc%3m}-ba#W)d#+R=c2ct&Hv zBPb0dy>;87_I%Boj*}WIno_Xim2WS8C)Wyk9c254Q_W~p1zuf!6--mv1YIYIzUiE6T z`>tNP_^sbuyV$hxwTqv8a{1Qls1N(Qe|DARe0O%ySZ#K8?Mb zh>tw{K9Fn4OBDySZDBy$Gy66mnI-Z@s?829p-|Pdy>OM_zN949DD?Xn-@qM7hFZ1R zX1j7%v)xIh{;p$!fD4 zi7akMB_o>6373PA{AMF@Pga{H z)3%V*NCWbE2aF#%9OAo_juLc3oa@fN=_Bb)N5O*LswAfQKIGIkOTX(iWUVT9z?o`Y zT8S#IH@DjCwMA`ACBIAf?rY0b>vnEVt2XJp8<(c#_B; zS9WAWlAIpB+APUA=Omi9X3*qFmsV|d6jnO!EWL96M|OHdN#AhGRv{}TtIdw+=j{5P zzC+wis?DY_7hpo()M~Tb?`xDRAHVWcLQhTsZ`}Xk8tF0%zq^zQdj+nFdNUF%5~hCt z8b>TTX0s}RKFXl%_jYx8lSuexSLj+H8K~Z zfxNlZX1U*;7Jg4GU}oUs{Vr+0yQTf^%<6YqvT!@7eg`s(-;s1DjHmkD1gZL+((}$k zA5;uf$9p!vgS%F3miv86R=F)0tct~4`341U+D%@UGj9q&j1(W}kU zJfF+&X4Pghr*F*OidnVUEPlVK)n;#&-|aHvo%?-F4!<*UD3%x$A5*tneYCP>xq#%i;W^Qg&s zp4@YuQ-}pSgj{h1aKKRTakoF8@A{|-syzqO9nfN?!Ttq0~j^EL<`2AU380?Uo>UdAN zZgRh;)6~X0|IJyW!sq!^WUld^iqwek^{9RzcCsK%{GJ7wMvo3}6q)pU3VVKiPor$;`bawjw4I*a^(?rJZ zl97o#(%9>>+D|5s)Z^wjC3eIpX9BnUdBQ>{Fdawszz}~iIAw|;Ie=dI9-BZm1>W_p z7MC?7glLHtv1*Xc_oemq$=9*>bai>U+xn94V;A`wu`1mA=b0Qa{$}=~HY8ZY1MW6& zr?=mWY&>zYiivh!rj^pds#twh5z;#-dB7kSRNILr9EhGv_~>Ul&2jat%6>X zK1_`0{phLhKyTphK!?Bpic)^R=M|YDn z<1jnDn0*{CdlzXMJUNCaU}uJfCdLQxE_fJPkT;5guBw{DVfYQNjc5L$xJczeB1afW zDByrh3$?5EYIso#7`^*p4exYhA~Z_xU>6B8I)$lV1VqCVB1J}!K+eu&5E(p3T2XaO zkw;6e=v02B*al={H231oNF|S(>^X;(aYWu6n#aN7AtM{gS1{RDQae^sJB$%7_SHXF z=)n3nxCOA1+F_c?wUXLFp~HXJ z&m*O0CAA~v=Vdm$Z;g!^ml$-@INV%0V6E-pz0{l0YmDCPcZ6&oMZGP7d zZ}28N&0uOuPfFOWq;_bArSF{cd=|@_jQ1?a6vGR)S&&AV)cqSp=DNP$C`}Xb^rjS= zv&LUr)AyJ3KG=~*8hicW_mfE=4SEttm#6?ixA%FD0Wu$oi*|%~7DT{}*YBn$TxjP~ zQ!da-sR@*JA-d{$21J=^T;OXwjGPIcU;y?yoj}wdQ@a{+DB`V#Tv#54<`s5Km! zakuttf5eawLT#zC^&3+^hQg7c%1xBK-~y>R62pNQDw_Ct`UlBL#YN~{#}g<=F^D9K znFtljprRKM@xJExZaPv+l%Spl>94+Z**~b}Wf=2Nz-MQ0YSc#@rv#p2OK> z+87(37}|}*oJWNfd3>lzFhWv2sYbjYn|!ECL2|3XVF(vdLj~rGa>>+MClvab@uRv@ zGoNPg_4JBvVx>lsh#HZCM9o=9ZH0Y#H)s%{jHnxk2dd1Hl>PUO2TDI0&J_-DU?jA3>aOBoKnH;QrxYEHZ{nG>SA;bMJ64?xxB|hPjm5Qk8E-4I?pt12~5{V=5Tu z`E8sG4enqlGQn#s8HzN4H#uZFFfP_+Fd|YLyeAMpi^tSeN^ktjArSHbd8;}fv}0OmL3t{?=pGZ5ACox@MMS`cY8n~qJds@7 z(3(sb5S{4b?(Ffj8H`PB24go=6(K>B*H03*)h(S-(}|}r`q?P1n2}@#p^i5%kkk_z z62U_%(QF?xl(XU&VhR>Lbjf~PLM?v~QAC=PX5*x>m;$;2DC;!?4O=lkfiSMlUEAR) zgP!V{R8>>2(Rz@PY&0r}lp)p(Q!z>IMz$z|#~&T#@e)&GK<}sS(6HwON5T_u6S(n21VB!f|SzsN4I^?K`@+8Xc!)kWxWB zk!y<>O?8}lQ9|0NSOvo5hzv5Mwt(Z3>BZTGgHa?MhodvxWi(Bs3>`JObs{w74{1xD z7~{Qhb%>^U55o5b$k!7{6z-+TVf&7hTw(oeYV4`Qj4!`bJD|>(S_SRV5Q@<8p-)=q z@?xySU{QcnZ}QQfTq;HbRP&6v1J$FLiHl~o5~%0uMv2&t+rMqVwp z0(Ymc57V%Fy9f5?*52;f?(OaK{R=Pa48)06drzmY$JgE7!`z-;Pm8aWxf;LWVlI?m z?CbaR_WQcGQtx|NZ54CZFqBiQtz#QEp`fAL&HHL}dp(^!J=^-2`%iXYHtO|l?dV79 zHLlZYbKef)+}i8g-VZ9i?uUJSz7_;%PkTG-!`}w2{o5f&KR@2y+tZH*Z<{zv;-Y|M zyQj<7`3URqc0TOw_qBRh&%@r{PG7f5qrca;&D*m>P@umzlIIYDp6)(hPdDrJZr#!8 z>1BPLJ=?wd(M~Uk%ervY+R;U_d3!bHJNmr6+&pByzWzrbG0zTf@9FLGz&a*|gK6qE z*09<}RAFpl^(ec^d$>Eio;H|M7)(9re*|K*_wi1}Y$lOLiO3ssG5X27wA0)EkJzKIdEO3vIEzEG1_I))uZPZxjvF`B$%X=z zZvDfB!pi8*KNzx&?ySLp3s3*=8w^!d{6cUG9uaL+I+UZhiA5!%>;(n*P!8A>JWro% zTaQj1S|>X?<=9dg;CVGU24l(?7|<`Ub~`%d*y@bJkOnrTKL;GAzCow?jXQjsQnw{3 zXkdPy!U~*fnA~z}SR!n#qe0>V(6!ml<)+?<4!Vxi!>+u6+u!3 z-m6im6zNkE^+?-Nsn9)ATNWyMET>VRLoa>c0e0eVE672`sa_`^rVeRaDiM&%CW=O+ zH;n)tt~a)sMt~83$B&gFWwmlkzpvlZ&Bv8EeTP!m+Ue=*^R+7KgTqkjPNhg+xEPvm zS8naclTQZlpc1Vn;-=9ed3aGk+i8>*R@lJ)QVN z=?&Mk1`1ZL7&jL2r?J6XxG*U#chD(=j5a=m4GqeO5do6xR^7OX{;81`naE>oAn(xd z;PJB!TuefePh&SBeu$(V3|xIW`l`7Q|C59ykPh6eweSd|uI*Zjm^qYne|6(#yU$1~ zMN+aMmpjV{p3K^lPYfhzg{h9VA7$;SD{XEa+n;6aX(jD+)}GwsB<(s=X_a4O?P;N> z@`Tn?7mm*wq@>>RWClhbTIAgnk67{h8;w>*Pd#+*GuQF3){|ch$Qa+&TKKe2E#J~w ybYgtKaF?Y^szb8yJEGCbkd$9Th~3xCCDm<8Ju@y7{Q8X(An>1$Du4CuzyALb%cK7Q diff --git a/docs/primer/06-WINDOWS.TEDIT b/docs/primer/06-WINDOWS.TEDIT deleted file mode 100644 index 523d9bf1723c2899cf976d8372efd8e9bbff0334..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49288 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 I{>I<_e~;4gz5oCK diff --git a/docs/primer/13-WHAT-ARE-MENUS.TEDIT b/docs/primer/13-WHAT-ARE-MENUS.TEDIT deleted file mode 100644 index b3d177bc95db6213847b124cb4999d4af822e31b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91896 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 f`hlft diff --git a/docs/primer/14-BITMAPS.TEDIT b/docs/primer/14-BITMAPS.TEDIT deleted file mode 100644 index 54c9ba3c3567db98ec7c9c4cafbecf0bc0e1951d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 95020 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 H@o)bNSg7(E diff --git a/docs/primer/16-FONTS.TEDIT b/docs/primer/16-FONTS.TEDIT deleted file mode 100644 index 17b5e8cac5c931242ac6545960482e770526ac13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 109892 zcmeIbeQ+GdbuT)*SOO~rAG09kKp`zQRv-x~FfKq@AR;r&EU+MfT#$eO=E>(hy_G4rlbJ~2@6}YNISPmDy6KCIQRM1d-Y0=tL%HP;|L&WlBp+^UT)QWk&3Yh zk}m0wmsq4(FC>eS_`{`+Bz~uqeaKQoMYN(x^1uR4ST3PhzaO zrIE26J-Y|`iEzegMYy>I|0JTNqM~A8-)M>r?~6@L#V1+(;6x%eI-X*ClH*e;78@Vo zsgZbUcye@NDmj^IU&BlBxIzH8B<&KVQiyfFMBve zynu7oJ(`+g{Sr?wkWR%p<1D#{wVQIlf%goFinEyG}^lp{k`l!a&jbPG1%VSg-jPV{$R69J0r2l zC$gGJqI;7jU2sF46$)u&1N-7o9ceQ;o;U>UjUlzi0C79utZ{8W85>Q+h7xh=k}3X* zF7$2$qJnZsN1V2;+QdXWHVMikFbH#a5;|=#E0dChvF(AV4S`Lj3}H}E*_jTMiQwd{&Lfo?oJ0n69{Y0+q{ zphT*klV!WRx_Lp0r|N0sZf4D!IVZ+=96|?%FdSlIqlrT>{P^hJeNz~GiR1*0gVB+x zeTHSFM*lQUy~98kMl>>-8lFy(@Z+)JeWtckrX>pUDaJ=OAL`J;Fdz1Y{n7xV@nd$; zR6xZJ&P(1Nu>ObJc1Lz~upN%_*QELxpH*Clw%wn8nGNm|6B$H1NAjY|Wu%f*?(%;|J&hFqsF>1iMkVXhj zn+SxfEg>2Xe zj3@yYJrak@9~-67lr5u1)-yf~G4I9Yph3vuz-S@?pKJ`i7+oJMzf00#Q={ZM$cY>n zo!ZCAwkKk#)abCO-$oYUD%eCGlI)dVABN%&R|^n#wX)@rxUTsM%z`x*+XM| zm~!Ke->f1BC<&W4;xJKuS+IIt0Tbya3+;yKrkGV=7@(Aadoc-sJAk|b*qpai4%Cjv zdLz60yLxs@5#fp)8&ARCXNbx4kfXT%g(W83$hw4@S$oee?khW@4MLCHf$}z@9nr>$ zf#lveB!tT}$tlCB(RET1wy7vJ5g#7iGiq8gi4q0|PcR%u>-|O{F$XtERH?vL8w!pg z9~UMTPsHi^4SA=g9;~Q0ZPd_~YahE{B7XfpofXpE)}d<>bKeFamr$=EPW(qdD|G4o|ihuJ?TW+LUfuaK)}J)G{uHkbpVRs2OfHsVS(OW(boHN)pD%kfbWw z`uYR`Hk3>lQ&vMjl0TZ8jKyKJ4>EEzva(E6v~fNN0^W@ouF>1nzT`BBLN`O0MHwxS z9U81QGOB2?X_C+6aRB0o4J9$PmDekhAD^bc6({#3Xi_8^Hm`5oOOGXSHZ~rI^x=W* z9pYjkK^xX^h?@|vBV06$(l8Fp)h*SLH0fMeC~wu6lpAJBqr+*TT$+5s|6oN$KQ3O; zNFThlyRt1!nL3t2{u&wj0U~YLjUg5oNME1yd7Q2*j`)JbnDZJr>YbKjUQ0})vTPz> z^DrV_O}JfAnH#*D;)Nk)XgY5jU40c1Ll0a{`$!VZn4Q5zayNuq9n7R*Cv@kqmmCWj zqjQMwGp?MrDLPHZ<=lB9iMlDe(()AO!o^~aKF*q(n_A@z9OgJZ#hU-!)-Bu>V(g6% z@1x5;nUsk#OPZToTOe{t54BpG9JR>4sUwt0)w$TXb%QfLHGr?-x0vWbl!DV|e5%B)12bD{pm_@?ZcM})jXAUJ{*>QJ(G0r1uOl+hLDT9T zFn8l#g}gMFG6w^9yJOSvpvFBXr)!ZCQxz-6(9lS13O z_Q4CGE0`>iEJnvM;KpM7{%AZNAAx5_O-wP3%Z9-a1c6&gnp$u+8rh@bKGwK}Azc|` z*y4wGfM!ef`9a0ksrS*2{`S7E-hrOJr|#YQ)rPM=@W5A_`0a&N+qluNfc^58!-lcn zd~7jpK5zrauTHr2;F=b0#1gvm`cc7W8HPI8rp}J;M>+<&+9RaMP2`I=R~Qs&ERfk) zt#gT*S5$6GXwtZm6}}6W&BcQm+BmaF^SPvHEx3%>bR;Vp+QLNt3F9(LE#qeBAY4ke zpwUQjWSVaD<+Rr7t-X8oJ4|V8=7OVpIP=a8!V_&{jzgp6(D+pBAQ`zu3I>Krhwa?F zGvQsKtM2BCKFm+XhG02+CX-`a0TVP|NKVUpy9Q&5fw2_F9GvD0fMw2YSgxrJ4RZr- zO%7Qufv$ICqs)v|IVnt^> zhI=C978hXA6954T3{=P)Sg-YCUPW*q|`6GDEM+`OgH6b%`6 zh1o}02eL61aY%|VU0Tdw=KVE9A$-2LsKG75-eJ|W0xbeS?nDLJGpeHmjpbtp9zAH!`)d>Gd>qC#D=IH73_<>FR|_)9&(s~LIu zI#97=bT2IcH@AGHnZYIwIOZ9KhM*UB)jwFFD1(Zk_zwGaD?TKO$LA@5XKt?KP?Xz^ zKU@ZW{`uS>Yx>%!OH1bpFsCR_5#pEcKK1d{v!DLW2Ok&4fA-65&;0W5IsPpV_`_9y za`vqc&OWt#;OwU-KDb(#{>{H$dlUGNFMaLPPnW#le|qEQ2S4Zhe0I(Yp7{B|=&uL- z;Zo}Fxu=%5zW3#&bA{#e4E0dLWFkkuO?!}RpUZ(0*(fG} zFQk0dzx>hL{+i^wf1W(|%10l)`|hh-Khj-0V(Pc%Y)hi7CQ*m?6BY9>zH}D!x4vCc^Zt)d>#h}upZW4@HSb-0 zyW&WB4dFj5FR3}#QnHv6pPtof-fJnZ0{;Drf`26s{tfWoQeJbyj?dd)W&JB3R=szk zyy~Tk>tEUW(TS>;fBdnYlONZD9GRy4bChOh|0eL7Pgh*USFR|f87vV$v$H-$V=9#d z6u(l2trkIrbtr4ppx>u}R&ZHSD*dfNrOxMq_hsXmqWJwm;K_bs{@IFkoh*Fs{Fl}R z_g9~osjQ2t=U;mk^!Hte_(JO*Q)^Gm`vbv!%h58zEB@8tUKXzFd^sFkSj{4#`e>+n z5PYaFSI_uD;Sn`lr_Ba}FRM}FC#IB#Y6ffC?yWjnqsFT5T`F&ivg5T1dX_$+91qoK zpj9>-3@%)nGw}XUpqI6=v>H&=H|iq(`g#^7yqXTrpp5WA!Ycy5I^4--M>>y&S^6*P zBB8qaNc9lmU#^Y>R);kWyw0k@mqP(AAKhQEF3M*9VqRUxCfZIcRfbjV{2PSdccC^= zu};&_U*PwhFIysc>VA|l{HH^sKU^35$495OgYb6!lB$tKe-tH$evLwJe~G>~q=C9+ z{0#MR8}F&Q9m&8d*JdUC2;sx{?^l9MQFMP!eC%iQl?|=z^`Fg$!jJ6_ot_V{)*qZ- z%84J^*m-PARBhYX`Hk>MNDT*Pw?)s)G97JYAK)i8*BN4m)%ITm=eB9;>ldnKSu{PP z>)BxB5dTr&HTFgzIL9>gjc_mkydH6d6Q1~C(MWY&@EgFlg*(&0f1A4Qau7f0FKe9% zoh(B$YUKR9%39O0lP+Ln5kCR@vdT#nML_XQMe{aDz1^bz(*CPS$I_^H|Ix&1{fUys^_!e zCs_M@pe4#KoZML%WcmfTx!-HuKiHn0Yj|wp{Lfyj+=jDRlfDv+2AS45cVD!2bzSGN zpmupR+}y_C!cnbrcFV{@^~R`Ar8C8pPt(DJto@X7U%l^F;q>#R+Dvu0)E^GU)b=y8 zVeQ(9Uqq{bS0z5E!AV63?+>SEgA90IARG*-(T+e^)5C#ii150g&+*_#t*x#N9t*0# zcczJ-Xh(31woqLcJysoD2pRqg-4ANu=XBscm0hSUs|*J93$^p=?*-A{<7$I8asFg` zRXOGs7M=@D{4qp`Gh9vm@=D7~&Hm=lFYx8ActN?~uSvfkP5_E{Aqn^2qI}%tB64q8 zJ~e^@|6O#P*-ixg`r74^c`KjYyNnYJGqW=CS^kn4h1vX@qSV)_%8U))M*a^F8j=iy zQm0`i{Tty!i!+t$)c4gR-wds5WwRyUyl0)d@BGhZFq{5C^&(C2-u%C%e^ZoNmCg9V z>VH<}x{rmUwIwIJ)8XJt;f)brIQX}#*-U6l@Nb)>zfzQ?^UE_;HOlv2D?9UzaMRuX zKxeupn690RRN6rN08+2Y%K8eg@9&x5uaaBMfuz&`Q)(w z%+`eb^ZPfrIPzB)#C)uff1~*u@U?b)KK~Z`*^8lu)(Pg-za8BX4Q+|0nP!dmy#7sz zM(+wAzGlbg^=}-n=}foib9^rU2K+a|(R8iNpXBpzKTx9WcZORh!Ztj_Wjo{<{FUY3 z01*1}nCSAj#>k3T#s*mSsU8 za2V;J4`XW?qYFR26FQZO`_ol{u%a@`;YT2-VcHh(;e-(yho;kCF@FQT6>GY)Ys2dP zp?l{8sf~^wsu|X#IlC9;MVlA@Na=|KxK7pcZJo3Z`XCsv4ac80+H2$ z=owZQxhoLGL`;7b>9V3{-)4KWONuJ zq?8W1IuFAha_LuhUC(z?$bV+g&yTT}+VF!J`Sw$pw(zgb>y_(dzM{XV!(bGMd>wu+ zVv)9<3T^l~&2LFYnZdmRQ*_3~rPl_ZSF`Xt{SbBgNLyt?bYginSlMuJBJvmWUkbFQ zwc6mH1vBu<9G)Qr(rw>s!=)2yt_p2o>F{9sWn{A2(ty#n#ZO7u{A^&`p#KeheYifo zI1&tn*@Cx5^dT+p!he+p!hen`!G7|DUtH zrB`TgM~n7mH!yd5^V|JZ9{=V$xihrA^|~)&$LH~HvvqBEv#37f#OL;JZ3aG~>6ZQE z^Kap@<9BUqx&(h};q%#BIM8+%3&Q!@@Ok}PUE6B#uVv$N_%{QuJMnq^n;}nJI4u5g z@w6ZE%Z(mi%%vG zGDP}AUPJQlKAng~#P{i~7L>U>K$LkU_*dk1#?pZfqJcx@&~oaAYI4iCgpwih?<8L?JQ+ zDr1Bc4vOK7d1|wpTa0mGbrnI(c>ELUWo9qXHyO8K3lE`T1&5MB8*;K%pR*)y)D9W$ zLHG6H2~F|%VoAW$Ra}5RQxuW(^m_~VYgM59Pk*zh4Ia30AAxAPygZI&7c3D9RG|5{Iz?2^5bWI`lB0*pg;f90^t=nKL@wo1peIefg3lD zc)@@D>dl}2H_p$eZ+XCfM*RG>(O(bvYZcVrzqzrPeDiBZ-YP5~EpC*UAk`eck4^1%HRLt;5)CBBGvNFk(yI2V@I0Y@k^CK&BUKSVaMz4_|u^pz2&{r zZ@>S;!w0W?*zz9eUr|8+^0GUAsdDorpsHToKDh1crG&qJL^-wf9sN=ce5g}zIe4o4 zz555t*Onq>@~`LOKXh0#@#wFG&(mL}rSn+%Lczcj7`ST&Y3`vwto^o z$Ca9J(_+)yj`ggG9k1ItTQiuB%(Vf(6nf4#7jDu)t16&|R-X?Vc)aNPnl=|vS&-F6 zJ7)vEy;_v;wQ7eSWrPm_U+ok4jnSi#z!`eUKeVHBHr&}eTX&N4Q#Tvj7}a&~8epL< zVUAx?(BE{VWG7zo*Os51pQYFmC!)Zkziq+aYt{Ak`Kka@|L%CzEXflxr+4s-L#H1` zfB28zNXfszFWU7BRpVIXf9aJ97yX)r2BgqmqF)GOFTYj1&(A>SAnz&TyV>uwla*;n zf0pnhM7&t7;VvbR6My2HmFpgxh_rvRG8}#L!o4rT-O+CLocNP?|8OMD@EYP8>=$Rz zP=N1dmn=9E;O9i}DBh@M^JhZAgL-ZI$@Kxgo81AEC&Ygmcs&vghJu=28;z>8J6)NT z5Jv)d;zvu*)^&!~;0>O+=rP*;UPoPbIfx(hSKIHu7yF5UKXRgy@!jk$U}OP_j z^32>@!DrIQcTV*4m1maO@Q!-OcReKD7pYR#wMvZ7w;pNuJu^o&e{J}n94mWNxBj}$wE2?19Z&o$0}uape#xhlhQiUvxA%Y_;D;={OSGH-uBWTg z=y!WT~1*yMw zek`RRWw$ZiR$}p^EZVY3&hpS@O4z3@qd?L|zW~xGzE!;bnkVwoel+iRL^ln$GVl0P zotUF}y@5o3Pxc%OH?0JZITuBs^>h&Z&SM*+nkO{ZFXB03P1ieq(Ib?@ZdJct+xRu; zJNf}Su7{*w$iG##PPF-TX>SVF)AFvr`PKAN20pKU^Q#Nmtc`vl|K?W*HO)SL3-~v` zsygun{99N}}?^GfiGll>I&_RX?Fd7{`RKpcKQYFZGmh=$`khaZ_M7LP322i^2vv?%8GbP z7H+A3v+{A=l=^fx*-)O4PjCBTne7W8+RjB3>I{GA2$Y4^MXz1_g}8rIl-@Sx^BaZq zSDT}c6=;f?8k(p|-{susA+r3zGYOVdN+OjVp&|f4__N8sD3_+{EL=Uo-47|^x zue7m<-yf~*s|_OXSGuh%jgLL3_lAQnQ?zQ9ULPE|bYfAL{QHiaSn}V~x3393zfI(VFaz_(W*^( z+VC2QQ68F1Da=YDCF$qXZw|bJO70U$KR3itBJq%wmqX&A3opm5<25hjEqTIty&M)l zzioKk3;VYIt`NUs{d!`@#?KcPzf^fx^Ts?-u%FW*O=G#2gIyZg>7snHWn#}M%EvB^>~v8+*)p-`6y;-= zMs~U=pKO`fbBgk@OCvk|Z%{sY-u}xjx`p=#vxQvDDN5iAD*;=$iY@kV6+Bc$&KLMA zDt1hd4^!j_gbzUAfQM6~<9n^J6%{*rb`SLSHTAOYWbz3rLJ)}^$?+-HixeEh#Ln+6A6krLFE*@VKP27Jvkm9VMB+EI)a({XvdDo!`%bK3)_UyAH4|ufkwN= zSrU~e*@5Kbhd0CAE!l$wfhf2mq_wJjbejqZ&p6LW9bSOF9$oi9GJX8j#B1i=&JqV3Qc6D_>&ZXMV zWk?E5Nr{qV`yX!G9of~vdi#2MJNgE?I{GPVpyROtI}^wfK!YZM1kT9Wd{h^P_Fa%{yj&&l^1!q z>QBzT^}*SvmJgi$^uz~OopkJHX#KC(-URaFOJDo+)1~~#pWe9n!OwZ?pPkE(q}D$$ zdXyJ=xRiQy?y2Ri?|pgcT)w_PLtIOMOxXKkqz!FK_ReJ^M9vEIKIru_SYAYW5LHo1 z9)zUaHYt@nefZ+j*DqgLF8$=wYwc^xK7RMllZ(l>uYBk$zhBw=%GD2vJKlQf;HfJ$ z@4T|Msr=NEesQhu`I--gmBiR9EhW!4>xuVTN(|)uI_8RO7(3BY@?1=Btl48AhtqFp z<%dt5*Mm`O@hnowu(4r)%YdKwiJHcDd%%(hQK# z*8o|b`1*&XOZsBTd#Cv0`|`p0-_wA6w`S>;wF)7x5c2(tK&~w<15$baITM)wBjdgn^nKLT0x%GL7* zpI{a@qsEc>Ryg*z>L@X#gp_wAuR~O26*}PuFXGv^$3l+iW#J~X%J z5jps*_W2{9^GwrokA^SmUitKfGe?{!@a@sNr=|f~N$csvfo5}cy!Mw zRtk;Pz)1udrscpPL<3G>Rf*LPC8rR17|V{t$5e7c1oWLkG~jq@Dw`w`;yjEu$mK_@ z7uL5$`a8P2c6YGfXJ%*FS6ISaL^YR94c^USb1f=s4GN1;%v^=qrHm-PLMAE8ugO%Q z#0rqtszA(3jL>VIqk~?%;WaMkHO~=2(YnW2pg?+z0($L+*Z7~;JV*XCB!5mQNG3#v z^=lyIGSypFNoHyV+FbPNh-!*R527kc$%BxT+a{&bPp+T(^vcDL7Avmbxb$30)wx$& z&*|r0{^)Ig%^u}=)%ri$|5lUHdil}|A2z?z(lU7W3rBpXT1sk~|N4~j-r1H!SqfjrX3RN8d$h+ ztQSQ)Zo`6+Nz}e#WM&ylMxq?shp^Mfv1ce{F8UZ-hQvzI`1IHi7KXsQu}R3-<`r{a z;NknI;^QMJ>;S{gw~RHTc;nv229}6VVWlZ$ez7UV!V_VzGQz@p!^T&nredQB;sL8e zv@HwdT&OjgOHal+lvsU2n>iPs+*h5x!i0FRlx1xY6Jl~%Y{Fuc*9~HVbVX-J*Urv? z&v}oSNz}GW%*fe%hgkw0$M@6MuCNgjy9T+nVR6k|L2ShKyY|m}-x?=r^S zv0`Y7nm&QW>JJzj)=~*<+r;L{iP(4wJ3|ef8`}rDZ5glz#&HeYj3k&F&*bP37BTsz zxkmPQa+(dp>S-4s|Lzy#<0D1 zcsda?K3Zn1`O3|)Xu1ncccJNeTRP7c*#|b`Lu!0y;wbhUQirW|UOu!Obi$pZr0dCe zZP*wQ2P>aDh+q z4UrS02jlQH2a?kXax!c@9v>ma?%~#zn!?xQ_Ob)C_0`xbNjgUn2$FIdS^e(h6d4Qb zgXdDW#y3r||8*J$jeWRJ@cpl5D-b8Gp&OsPYhXk8a2;*4#ezA*hGzIomq{j+hfV^lIRPJ3v6pm8&6PmV!XhV^C&VUJkDH)V~HfQIE>=S=v4eXt&~c|02! z-y3I!uwf+wUAsE^`+9aob~jd3MEiUBHsr66U5@W1X;ByH^5^;-#M~qO09~H=wq9s( z_fDA42G+HE1MAt{v4K6>wL9ALC?WVRU*0|lZ-68=(9Y-$V0wHcd0;c?q6Z`RQGUub zFOAY-01Qm{W85tpm_UJO%g81L-p?(WH8B2Uxsnb=XzCESov z%Y2TLzc`M4}FJrEBP5DWor!t=v_;%Z8%3|J$S?RA`ezNB% z%YBDmir9H7i{|8^aQW$Xf4%y@Zu=*DUfrIrf45t{Mfy372L->r{TAh0ly7bc6z!`x zK5|<}(f<_3M{#@<$471n6vsz#eB`!{;`O6AK8oX`I6iVqpg2B?<0H3q6t5q}@$p3; zA366P@PfkY+xbR^monRKga;ZKU+izdP6T>tNnu~i$Ts$U2=vgv`Ani>H=Yxk&wc2D zgLo$5c=%vE(XgJc;E{%SFo#wj=@{s0$HTcTY*SlLcXV?`3wa(m44^^rWE78Nj7Os; zWqNpvr*sBu{F$YA>VhYG*ek%FWExNAs0(-i2rl_E6XW4WY6_2N=#i`Os2Gp8#Ip^E z22aECKgwv4k1~7@DIYpMpj1#Z&*ZlYTdAVlF0ALkC^r?wb7&O8dJT>Otmp73oCl8q zQaILQh!l?X7$k-G^%^DxSgtqu;)zVybSsi3)=Q`qL044G`)j=ZRL~d+fQ{*co`6NH z6jM=VhA4iEBUV~-!6amxt5Z_k`m?B<~N7SIo%hxT`M2H=lT)CQh=4k z>oaejQc7FO1J9Qdwp76zH71tAwG5Xo9a+1Lu#V zYB;u}9Iv=EmDJd<2%=E_^kIZ*SqHiZvvT;I8#SkwOSgV}qUzNBA2yY&*VnKAqo)mi zq3u%B_{Far3s%CA*$S~RA%2Ko^VI$$^=8k^nO>ny?)~y}RfxT_ls@~ywd?7(bCM;! z0b7pfJHGVUcV2iQeJVfpuiqxD^7B{TdExn=KUV;Iu!6=s>OmMWCBN#GZ0b*zTqTBJq@m*M9lhwQzpAgN`=ySP#hD zIyU>=DA{ZlU0ITyAgrAU9y%x+#&ZZee>$}N;I;Fo=kM9xdP)1=PAEaO>7q+i8p6&6 zUk*lRs_WW9^pT#|I+U8GhtxVPi+UEe{nE2aeeXj`bkP+%pZ<@*=%wRjv!Ht^qAh@j zW6K?`bcX{$VD<1S|2@IzYt4~62&+EpiUq&l;r!03!RXPQ=d1LfdR=vi;$!e@VB3IA zx6S&>gK8)g$Uzrh9fHhG?o@-Vgbi#zte!8?mCS?aI&wAho4A=koD+7?mQQ-KeJb2m z^2MC*%x`CoKIA%q9EQ_#TCQS8KFRFG;5A2Ht`owhk7~J!9r*^9Ir4Iy5O!Y8RqD(q ztTQL~*%uLeZu|IFK4n?&I~_Z6<)gKihFUH@y?yBZjBcWDv6p|CY}RSY(mVrf>DHGP zhgz--4-Yl#PO!vc$^z`i_m>cM>mFdY# z_nq>!B_Fn)2tIfE>Fq&1n{H-zWrs3-JjqO#rOt#4HnY330_ZpnoDVuO@|>&?JGAMH z>M0}^=nmE4J92rNmPISX4u6!sEp%@ezeAheebuYX2BlC6Bvz=mFC1O3q2wS3&%xwK zW-qQ=!FA{jt$-GcVxsFcq#R+r29+bMCk6nzMJz>($vAXJlQz05!Di2rGaQ|y*xZbXZ!)p-t*51d-(G0p?kadjb6WU(P0636VD7T9<~$DL-)ks z;NmIo*rg-40ekc5!P`O?eY;(Bz02&Gr$6zk3%h7}I*;CpST2Fv=KDOz_Zidif0B*O zxFlH5hrD0~xq^KYK>QZ5hA@h9D9XV$EQ;g86h?7e6vstzT-YU0viE|o~+oB*gK7=7tJkSX`yf;h^UgarI8r{D&iy9+lW{u#->2N zuW=uOvJAx$?84kt*jUkv=tRl!SYq@~DWn1qfWV33LxX!p6Y+{&@sULQ5PJeK84yH? ziQqN%pbN~5r8FGlA2g(hDTo=uk@!W_2)=nS6*mGpa6Z7Y5s-soTOcF}|KOgr`!dDG zlL-A`glMAB9fuIn1s~coJ`M;`p%IR5=9JX$5tcYZyt?u(qh|lQpuQ>9sD8u+PV+?&WJ|xIQfDQ<5co;Ee zsGsJC=t$TIaWOHCxGMONBSPd*MZ}2`eYU<0IW)SLZ%R$EdM-QTt5Cu5VN z$!P>`fu4-mIH^W6+J&#jcVT5)M1SMs#?~NxGSAcT$!$R{K7+=`{@Gtr^434B`*LnZ zJ}Eng!q5Kk>IXNUdh6^z{W34|mlsce_D=^m^3%M?#sBZ;Kl${Ze*8h%Q*ZslAAbBy zPNHc2#?o7ayjk+rxqn!nA9)VQzo*vE{nO37NZ$HKMvw9$7sshbS3f9uYUUrl{8>&m zZyGw10GY_HVQN#b_h~jlwMT(3Yy7R$`*4I1>s;vb z0XdR~W)#Sv&Y}j=tw)fO@ASL+w&=v`r_TVnzZx`M!cdWvSY}H(B=22EnFMp4OREdm z5V|cblM)%kW9?1veruhoEc=45Zfjjo%U=9eSgTz&e=NU*O_lySe;{1%Q+*Xj!|KAD zfzD7^dq_2ZETn27{RNPRFZ*`R23Wna?7#E7pxImYq6(U5o&Pv!`l9{-i~3amoz!~o zs^IU2wFS-m$wGz?OJpDoKCd(L$AMJl&?Ac`@5+MFqXpGMLQ0qBk5{gXno`=Y2711= z?l6$Xj}0kBoMY}RCGTBF7RekbNi(b5=eIXQ<2?%^GG?4+`ne#r89|-@=ArpTLEZ)_ ztw2W(X>x65`FTA9W1K?r4nM!Wb>Wg;<_6_Ro1bUVGnyWBqY9+M&lf=2{QS1)_Y2W9 z{X8RNS>D#erk{_#r0Gh2r10}V=IW8t&$p)0dM+uki~_f|SE!>5in&hZIFf_gZ7(u| zJR~yM$}ZF@fptpl>W}6_Vde7WlbwNW=8wuW8#4M(byzPCE469`HvI%KcPL1kbP+VKIL`) zFFHf@=8qE@yw>)8wxK5=ke~^L!}#2gGvN)Lfz?WH+eqg(sP#=}j%`g6lvgGaX? z-oJVox4GtJKFjDxN9uy#pFSGY7LMv@z`V@6BAJD}QxTVW2TPm}&}0i2kAvpHgL^2NxlSQZ<1mS3w<>B%q@nOi2P*=^e=Q_eIHmx(4v91r9uhsu z##=}}udDQe`}*syAfy>vwpeiC2HC?@eQpSXfH3yM?6WT}P5+t_0+1H#EN!XCM7Qs{1d^l~vM> zyH5#(56`Ur=rjzPEeCeqV<$pL7K!>pbUR)Gq&9=K$`H-xOOHE7Kafl!S1Cb>e7y-s ztDF4#&XFqJxcijg_JjIgEcsQM&#!8`CkxqD=f@`kI5Mp1Z}|Kw&F5FOt;s^R|AP2@ ziD(+g5Y6XTwN+;!LDPn8Lyu@azp5>hPj#Yg)9Ffv8~3tBNa^pF3D0O+T+h_b=aSE`&7vJdj!;q~Yg*WCfAj&jVSAPt(ssN`?Av)2Xhw9a5g&b>v3Ik>^5F@mut5 zScwcq_h0-dt*=wk7nd?@&wyLV#6oqTTMsMmwbkZFsuq&DUS}jtbzouj>2IL*@3$`& zL{_i56Rm&0O)rcLEO2DTqOaM1d+XJKE{-g~CrRlSog}3T1^RB&yDz_#Y-fN zqFImDgF2Aa&-$`xa^yx;(FL+c503b%qd919RDB8|RnY9zgHc~~HlOMx42#OJ>br!; zR@>EUkrQcsd#mq4cHb>O?_^AIs((c~a`Z6w31}LJQ^^)bvZ_Sdp2w9{IWFub)`pbN z;{xepHv1ApCDQgh4oD|29Bd)2=W%5(Ixg&)t%Ih|d>$A0W5xQ3SD8#4q^OpACq-ooCk#Pf;iM0H@l5qocj2k!?r10|@H*lFqo1f3Pfy+Xg8OD!Y!y^4v$Az#-NtPqpUJ0MT%UIlWTuoXk)Gc*}LkR zgRIT32LcLi=dzLMwqGEeDv+SL2Cd_!BBDAz2cK)Qce!GI(IR{BDC7I(S;*?d_K=tp5^*H z)2vz&`F@EppI7Yb^KM8ck@od@+OFj|&^r6i7rsa9^O(=u*5}=k{_oNHJk8Rr_4ypg zkxtC#6^W$v`Fu!&rdXeMLqbaT()v7qiXqqM-TH1#qV1mD4e4D+4yolnaq8U>rrYnV zMS7pWecUm=&#DZ&r^IVBk)>?p!sd5<8v5f_~ee?jTBf zpQ--Kp1b%yt13km%Qs5fYp%%7yZAnCIU)DvT+$Ry-ru$4#}rY;RTT1b>!Bd zBTu$2Xl8jC0hdVg`o1p9$7LhUr|N}~;<*fMopn8A>*BeLCnSF^;|)pA-#sGn{Jk(z ztk)IpyU=@Kq<0;;%Fvz(d5U(Ct=o$1Y03stz5Xk_5Q$-N$ybG+{paz<3Y@=2#kPZx zwf@>5R^f2l;}5iGcsJr_cPmY<&t+6E>WSt8-l71~ z^|?&#uZ;CN-RG}_l<*eCG3BtUl&EL?aQIlw%oIN>(vhfC;1@JK9uir+kIN%5o0Pt2 z_i-~B6FRe(vPZ#IJ#u2ck_P&Ws{|}$RDYumE&&6*08%xP80ebrMpV*NHU0G?emIiv z7e>yg+N>vJbmmvYCkA?<){W2m&_FMM47Oemk(4md3-sOcw}p@aDVah#lE7REDbHL0 znSWc5mBAYqWDEHc<)y7^G#@~gA)WwxQJ1HA5*eWVeg+><8_$ zoO066$cSi}SVQ!}F{33;NrXV8j@rJWjj)NPutq0SCQ}Y_hSXzw_Mn?F(K*pEC(;ow z5up~*4GLjt&?n{9?~Jr};$z@Vo0$lsxM!4y?2HX1pNtb#C^LRAHa3xvwjjc3X17KC zlJOa{+KZt(QwNfUoSl`47c>QB6U)7m6n~P!ICkOV=#$1N1^AT28}J2jqA)f3WIS<* zLW@qau_UUGj+2zR-64QvJkFzwPJjs8vQ_l3t8Z5$eMr55zF}^DOr3vlTy)G(A!1fS z>!}6-q0TvCbW)7T*bulP4fgi+P@K+2X2u|;;H6dw&IuzxDMDrb}BlEWqezmx94br3wT__T!sC| zW5fF(VIE4=FtVZeUW)U{KTdC%T1NEIRvy0;mST=G#0Q-u?Ig!BT){GRG&TCC(tM17 zo}=T#iRqE}NF!_O+S$PRcSX9pjnJL_1Cia)NMDqjLn=8YD@q?=m^J4U4uO0RS|<~_ zc~kj#!%c+~U&E0e-z(u#KjgH`By6epNPom>Gu=m zw&O3Y2PbEr()GoUua=cPlbdP~ z4-bsr{QB6{nRCgjRbM|>nEq#%l7xQ?{9onqW%E=a{y)3=@y)MK6F*mPJmZ1>r^L@8 zqrV>Tm)25$pSr4_8$3|<%v*VwL6Oj}gvo?^J%K+bik}e)_g{f`FU`&cUSG-3D=*^n zimND}yyC$pdHz+{+tY_HKK;q3*O&8m7Nur?2Txt8Ikj}8$qRmV-8J3B>t68R3Wt=# zr_R=#x_)`t3x0Opy~~4yU(zpm!iOWu;Hh^B?~Q+Km^1KR`>QE~hfmjh^63#z{Objo zwgG+%?G5Y6bm;sq|KoTrDp!&@0Q}Dd!_oc5!@0}Ya;YL@z{QV_huGn37qCGQtJoJ$ zzl(rpO&ZZM@eA03gC})(kKB(ZkG0i-RUw9G7quu?-$#6)mz8L*6Ysa-BNl#*!UUd4 z`rD&3*p7o|aSInV&8pj!$m-M2g8t>|*OdTv>{M@h@h$~>a3nq){jb=#5By~wDnSAL z;4$zc@O5|MnV$o{K=_U7OqlZzd=t3;h`yBDn{VomXp+8c4d+`G+q`y*p_X_E+6puljEucK|%myRp3xt=B&1ZWWlZSux z`V|Bx3~I{qjMepg_*(zQ<9Dyoe5yA*lXy*+4dkKEYA^n*?XET8$1C3dY};L7@Z%ZZ z(YAW~O7I)nR(q$f*8Zvv!5$H4!JB-fV^h50SE^qrb9*9>{OvHA&cti7Bp_4vjgFc4 z`7(7Ig_5Jqdq(7u8b|1fO#EE>D57v5)v?jh-2YVX2tbj6_XQ+g?1CbEMDmu2F9V)} z%lQ;@FI1q@5sV@ek8p6{hliLm-c%2EIzm#ov^8QCWb?+*mE8UMyM1@Z0vie4X~ zz(CpVtLvx9$*x1#@K;FbB)0lZr4J4yVLJdg3+Hja+xU zxSmod8!=K067G0$J*9v)Uhv|2N?~op$jwJzTu&*ujYmAco>GV#uXwtiQlJ~Jc)Ffa zxEn8caXqD=H(unU8N#5yp76}Vd(y83&rG@NHxp%@XW}(cWZmM}Z+EinZQcxli;!8Z zm#>`EDl=ZO&!j&$%LC!!ZTObxf`6kHqSxnZMWb2v>E``Q5@cw5tAHFVPfAu~a&%@r9EfRfybdm63O;^N` z1Fvv?{B?`yuj4iR3_R{nd9YlC%kx)tBu~f7_?dXwvY22HBR;`RmOK?r6nWIIfam(n zJfDZLd|`v&|zO*HgT69Q?C-ulTxdym=h_cAZyzxEt>u2akE; z-?*OoE-zMjlaF0RUgXJaD)pjY8$2WFF8>UW?KBgw$ui49>oPCf-saymUTLR~Vi<2g znGa6QI+^tG%AxUMJJyGd_n^!NrxIUb+aBH8$a-UwQ?wh|eVa7x;j9=)%3Ye+m>fSK zH&^bN#Mj;BuEhp(k1^jVX>B()cilFyp=s<}9>;g&vD0&$zHZOALi3%n*gJ{6%6wZW zuPt_O@*SJB@lt>R;9V(3`ouOX|D3`UhBjeQ#uE2ix7%&5-Kt=i*mal|aIJ}u*-)G-I*Y2HE{a)6*nbkM3Cf3rtg>C(VEjUA0P+1V} zi*)z&{QG`Z|IovcDC_Im*@>O!*caVrX7@i#O}F=T^$vha*X~EU`n%e?J6O+-9jw2j zyQ6)e7mN(>bL;~iKt@N@C?$TIo7j%XuCDIKS!YN0BOL=>?Ge`VNJn3H*KU)>KwsCt z@925hpz!eSsI9EyvEIn;{;r$?I3p9u8wHe!@G#Ljy}=& z!~Gq7Ts|bf{(;BAF;bf$xV~KxNXJcbkj<8@O|1C=wxzX|-QTj=s8ZkA5s5;chQ!R1 zfycqej-DP8bRQ}{@KxGm{lEkEdIKGg4e&}_hd|K3rmwP=KfsoA;$|}{-kOq8(YsQ+ zJ9hkA)+waEVwFCUL!~)Q0jAgAL#0N=tu6O^HHOx&{zi?VIKn^25uVc=`rrl~=CEbu z=CIkg9IR6AQW}&_rPH@;T#o%E=4ILaXN!_h62Q_YPW>ggi}NW*-H{@93#cD8se7x@ zU~j{3yHgY-ZNEgFcsKX~@1FRvYIx~EgHor|p^XsQ^%vkr$ddC@P?m;dyvtHhzjMW$ zA+4nGBUfbC*uw%DRaiar$Q58dmen1pu zCyDKMkl@bPAnk`}C_9s+Yd1`q_L@$bM4YIRICz@=a6UvGD!H}R$WKaAoLm-h?n-Z| zD-PnsAuVCHwHQ6ijJ{fEAei)_MNxbRC zX^;(mlakb94izQnz3)e&gc>Dr{6u7My|2Pqy~rV+6w0ChoE#S-oz;mPB180v4Sw;X z3?h|RW!5+`SuCaMsFT$jYEd?S5BgIH@pj?<=`lmTRPDR;hqDF>)F)1jGPb!_h>Hpi z@sKL$63E-b$X0mAS|~xZvaq}r;!R?=2rOT~ASq;3;(eh%vgCe8B}WmF_R^m}6C|ht zb%VE0q`pKYq#vF`jLLQeHoF^CLIa);da5j?;v|<+0A0HorVPcjGmx%qIfJ#ARvyh#WB^pVOV@Ycpaud$eRBpn&gb4q>AS}%+ zo4@QF4}>2Ogk@*AQzEftH&v()#HrBF|3yh5{VX3t>Tv3o>Pi#K(@=IV*NK*77qa>- z=}CdE&#EMIs0YNKv;V~3SF$QedZH5Vu{2n!bg!u7q(?x>)`~kt_ALhzHD`HHA}l3A zS4eAs6SuM{N@nSW80LcDLlKBuzpfA;ALG9?0&1C$JkBp@qZ9lh%n@7My~URW1u0m5 zA)_;g?1?xdED?85YYft;#kU%JdEOmpE>$Y4e`cEo!i|z$SZt4>gG)mOHJ-g z{V9q#libIUfc`|}kT^&-+-Y-xn)2Bo5OT2GCvqf}KN2}oygeg5N zAe52SJYAUNNZ6a*h|hU<%x#zm;rMrU!bIoyDMOf&Kpwx;S;(@3N zvry0A)G-_gDcdC=akhbSNwAV4H+P}vUqc#a1m)kQ1hqwX-@Gj;U&oYEszNkQ%nC=W zPI>B%6o+ggt2^9eiJehU%$UsQQ7+Zs%**;WMGo&5l}q<5F>+v$yh)f1REg6vGbE!@ zH7heZSxpj>T=4sAYD?GzPktVDDDUt1C?g$x2mhVAm5uV=(jT56AD1j)OC4;DRAym3Npb4!QHe7c4ko5F@%$X41$uxYry7*wF(< z8MYocCkNC9Uv{=5Hc}O8l~2m3q+aAu=VXs~hmiq!|L(7G9g=qfF2u(dm8TMY>ClH)XD&fkcGucp^z&QFPG=)Yt{TX`aaHyW=7i7yMDyJklGyIR) z5hftqYDCkdW?o`9g4YF98o?%!BMrM&EYc5s^a>vS)tV#`}j1BKwGe@Gbn(-|?sa?f(aJT&HLN diff --git a/docs/primer/17-INSPECTOR.TEDIT b/docs/primer/17-INSPECTOR.TEDIT deleted file mode 100644 index 3dcbf68a1d8a12563f6af32e91749de8eca2ffe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52420 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 J@6Z1J{{d%QeUJbE diff --git a/docs/primer/18-MASTERSCOPE.TEDIT b/docs/primer/18-MASTERSCOPE.TEDIT deleted file mode 100644 index 8feeb509ebc8db90da65e121525ba8f910db5788..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54054 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   . [  . O   HRULE.GETFNCLASSIC HKIM.INDEX.GETFN  - mIM.INDEX.GETFNCLASSIC -k -kIM.INDEX.GETFNCLASSIC - U -qIM.INDEX.GETFNCLASSIC - \ -gIM.INDEX.GETFNCLASSIC - O -mIM.INDEX.GETFNCLASSIC - (9  - -aIM.INDEX.GETFNCLASSIC ->  AIM.INDEX.GETFN  HRULE.GETFNCLASSIC o - kIM.INDEX.GETFN HELVETICA- -eIM.INDEX.GETFN HELVETICA n -"   -eIM.INDEX.GETFN HELVETICA )(b -" %& -cIM.INDEX.GETFN HELVETICA n - -aIM.INDEX.GETFN HELVETICA O -   -gIM.INDEX.GETFN HELVETICA T$"'  - kIM.INDEX.GETFN HELVETICAO " $ + -6 -aIM.INDEX.GETFN HELVETICAW jL - -J - - V -7 - "uz \ No newline at end of file diff --git a/docs/primer/21-GRAPHER.TEDIT b/docs/primer/21-GRAPHER.TEDIT deleted file mode 100644 index 9520bb1be81f2e6724a745ff47aa289a538a636a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70041 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 diff --git a/docs/primer/22-RESOURCE-MANAGEMENT.TEDIT b/docs/primer/22-RESOURCE-MANAGEMENT.TEDIT deleted file mode 100644 index 1395787b137caf52d1de5b6df1d5bd201ddd2c35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28845 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,`l,H`,HH,ll,ll,ll,HH,HH,HH --T-T2F PAGEHEADING VERSOHEADF PAGEHEADING RECTOHEADE PAGEHEADINGFOOTINGVE PAGEHEADINGFOOTINGR, TITAN -CLASSIC -TITAN -CLASSIC HELVETICAMODERN HELVETICACLASSIC - HELVETICA -MODERN - -TIMESROMAN - HRULE.GETFNMODERN - -"  HRULE.GETFNCLASSIC -# 9  HRULE.GETFNCLASSIC -8  HRULE.GETFNCLASSIC - IM.CHAP.GETFN HELVETICAA HRULE.GETFNMODERN   aGIM.INDEX.GETFN - t 9 HRULE.GETFNCLASSICm *IM.INDEX.GETFNc -'IM.INDEX.GETFN -'IM.INDEX.GETFN  D   P - 5     # - -& 8  *IM.INDEX.GETFN3 (IM.INDEX.GETFNL  HRULE.GETFNCLASSIC?   .x   %E  _W, -   HRULE.GETFNCLASSIC rAIM.INDEX.GETFN . d -  ! HRULE.GETFNCLASSIC 3?IM.INDEX.GETFNo H < = 7 < 2 : . /  -    ,       ) 6  4   # $ $ '  ; /   & / $ :  4 7 E *     (IM.INDEX.GETFN+IM.INDEX.GETFN1 [  ( 9 a %!5"!       +/5.0+  * #   9  QM)'"C1.0E -"C+ - -< "  )      5   ,  -             -s !  )          HRULE.GETFNCLASSIC b  o   3 J  H[IM.INDEX.GETFN *+! *Wz \ No newline at end of file diff --git a/docs/primer/24-GLOBAL-VARIABLES.TEDIT b/docs/primer/24-GLOBAL-VARIABLES.TEDIT deleted file mode 100644 index 6346d1400af660bb20a43c5d444edacf90fed4ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29615 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 M@^gu=KKu9o18>Ry&;S4c diff --git a/docs/primer/25-REFERENCES.TEDIT b/docs/primer/25-REFERENCES.TEDIT deleted file mode 100644 index d82bbe040c905b3275414a51b9522ea48e29c783..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5596 zcmeHKO>g7K5v4t|yEC&85G1=u4oOh(B8UxW1WEpOPP9x}%upX8DbG%TJ+!2@MVKOu zCS|SmZzR7ax7_m^g8c_M1(-vC$*ZPlQ)A2H*$r|@1dk+kS5?1y^{QG^E0x-E6v{cB z$BNRiq)vPt3}u;I8A_2zs#mI|+M}$fzFQ&c`Yp?)zGpT24!Ks-a;;9o@;Jr^4N4pJ zUHm-|Wv^5!wWN|H@Gprcl9W8hb2O9*r7_K7b%`%yk#?}TQK6DzG)F8MWydKwf^(UY>2ORUIV!z- zXZ+*bc>d1t!Jr+bQiVZs_3{KPF3?e1L{kycrtP-3mhGKjpoE%JPYf@`1@g#DmyP;~ zRKHE=bQ+8#1NUB8exp^gZ__Dj#6uAg3a28P#7xs5o~Gmg4ERXLy267vzAR!c;5{Nv zAQaKXR9wU)q7emY0t$hP26OUKc?}X;6?!FtBxKTjW{^YDOn}Pi0GW@$4~VWE9_+E# z@8fYquLD*YNA%(-DO2Z78xy32R1}mU z6snFe<9G&5Tm(@BkPFfoejzVr(+Scvg8bna7ZAS=ORdQkCf}4yTy&wVfku zXAtYVK)785m=nNK=NXGAe3n30pb-inbt$r`Wqpeh27DDUa!Uo5N_>fqmNY zx2VxF-Nmxk=c600-SZK}?wr}4ee77&Z8piX9IN5?0L0hNJ-6#)!8*xy8E>shO|xw~ zZ>VKCXO?d_OzNIlu48u=F?`p4Wp(>mgns9wuxEYUGdrH$?cnFyY2Ptj@| znJ3^gV{Gx@zX6VBx64GkaNOOY`abRM7X5tdYhOF*8p4AAsynoISj|Fj!SRO`8IF%H zs$(_(mum{vKf0u6D@wXj3Xq=H<=xD2f3N;nF&ymtSHnOsn-)FRjlbdfVW*~cdaF+{vSZ%n9-s5bTrh7uziGV8cIkaN$~s`It%!0{uOB)AQ_x z)&f>>_}#@PhVg~*X}gQ-w`2S?I|r%$+<1O-Zx@#D`om+%mUWlCZo}TL{la+R+ilBp zyKS?R<679S8_)4=9WXy{xqZi~oLYXfvsQq28%HN&=(b=NcHH1FpW>gE%P0JVooD*} z{gC&j@t!BQ+*cfgV{#~7_!WP>bBONFJGdWn$Wo|Z-W!}v?vnD+!8r(%@)S5rcDsUK zdcBY#CH7H_<2Z%HQ)9KKf3bvwmgG N7|;G`eDmF3{tdF){2>4U diff --git a/docs/primer/DRAFT.TEDIT b/docs/primer/DRAFT.TEDIT deleted file mode 100644 index f30e8fef..00000000 --- a/docs/primer/DRAFT.TEDIT +++ /dev/null @@ -1,4 +0,0 @@ -Primer from Scan TABLEOFCONTENTS ~)19 ~`~ 1. A Brief Glossary t 1.1 2. The Mouse and the Keyboard / 2.1 2.1. The Mouse 2.1 2.1.1. 2and3ButtonMice 2.1 2.2. _ The _ Keyhoard _ 2.2 2.2.1. _ The _ 1186 _ Keyhoard _ 2.2 2.2.2. _ The _ 1108 _ Keyhoard _ 2.2 3. Turning On Your Lisp Machine / 3.1 3.1. _ Turningonthello8 _ 3.1 3.2. _ Turning on _ the1186 _ 3.2 3.3. _ Loading _ lntertis~D from the _ Hard _ Disk _ 3.3 3.4. _ AfterBooting _ Lisp _ 3.5 3.5. _ Restarting _ Lisp After Logging _ Out _ 3.5 4. If You Have a Fileserver / 4.1 4.1. _ Turning on your 1108 _ 4.1 4.2. _ Turningonyourll86 _ 4.1 4.3. Location of Files 4.2 4.4. The Timeserver 4.2 5. Logging Out And Turning the Machine Off 51 5.1. _ Logging Out _ 5.1 5.2. _ Turning _ The _ MachineOff _ 5.2 6. Typing Shortcuts 6.1 6.1. _ If you _ makea _ Mistake _ 6.3 7. Using Menus 7.1 7.1. _ Making _ a _ Selection from _ a _ Menu _ 7.2 7.2. _ Explanations _ of _ Menu _ Items _ 7.2 7.3. Submenus 7.3 8. How to use Files 8.1 8.1. _ Types of Files _ 8.1 TA8~ OF CONTENtt To'., 1 - - - - . - - - - . - - , - TABLE OF CONTENtr 8.2. _ Directories _ 8.1 8.3. _ Directory Options _ 8.2 8.4. _ Subfile _ Directories _ 8.3 8.5. _ To See What Filri Are _ Loaded _ 8.3 8.6. _ Simple Commands for Manipulating _ Filu _ 8.3 \ 8.7. _ to a _ 8.4 - `.~--y Connecting _ Directory \ s 8.8. _ File Vettion _ Numbers _ 8.4 9. FileBrowser 9.1 9.1. _ Calling the _ FileSrowser _ 9.1 9.2. FileBrowserCommands 9.3 10. ffose Wondertul Windows! 10.1 10.1. _ Windows _ provided _ by lnterlis~D _ 10.1 10.2. _ Creating a _ window _ 10.2 10.3. _ The Right _ Button DefaultWindow _ Menu _ 10.2 10.4. _ An _ explanation of each _ menu _ item _ 10.3 10.5. _ krollable Windows _ 10.3 10.6. Other Window Functions 10.5 10.6.1. PROMPTPRlNT 10.5 10.6.2. _ WHlCHW _ 10.6 11. Editing and Saving 11.1 11.1. _ Defining _ Functions _ 11.1 11.2. Simple Editing in the 1nterlis~D Executive Window 11.2 YA8~ OF cottnritt iA.3. _ Wys to Stop Excution from th Kyboard, called _ 1rhlng LIzp5 _ 14.3 t4.4. _ Programming _ Braks and Dbugging Cod _ 14.4 14.5. Break Monu 14.4 14.6. _ Returning to Top Lovl _ `4.5 15. _ On-Line _ Help _ with _ Interlisp-D: _ HELPSYS and _ DlNFO _ ~ _ 15.1 15.1. _ HelpSys _ 15.1 15.2. Dlnfo 15.1 16. Floppy Disks / 16.1 16.1. _ Buying Floppy Disks _ 16.1 16.2. _ Basic Floppy Disk Information _ 16.1 16.3. _ Care of Floppies _ 16.2 16.4. _ Write Enabling and Write Protecting _ Floppies _ 16.3 16.4.1. _ Write Enabling an _ 1108's _ Floppy _ Disk _ 16.3 16.4.2. _ Write Protecting an _ 1186's Floppy Disk _ 16.3 16.5. _ Inserting _ Floppies _ intothe _ Floppy Drive _ 16.3 16.6. _ Functions for Floppy Disks _ 16.4 16.6.1. _ Formatting Floppies _ 16.4 16.6.2. _ Available Space on a Floppy Disk _ 16.4 16.6.3. _ The Name ofa Floppy Disk _ 16.4 16.6.4. _ FLOPPY.MODE _ 16.5 17. Duplicating Floppy Disks 17.1 17.1. _ Supplies _ 17.1 17.2. _ Preparabon _ 17.1 17.2.1. _ Handling _ Floppy _ Disks _ 17.1 17.2.2. _ Setup _ 17.1 17.3. _ Copying _ Floppy Disks _ 17.2 18. Sysout Files 18.1 18.1. _ Loading SYSOUT Filri _ 18.1 18.1.1. _ Loading a _ SYSOUTfile on the _ 1108 _ 18.1 18.1.2. _ Loading a SYSOuTfileonthe _ 1186 _ 18.2 18.2. _ Making _ Your Own SYSOUT File _ 18.3 19. Using the Epson FX80 Printer ~ 19.1 19.1. _ Initializing the RS232 Port _ 19.1 19.2. _ Power upthe Printer _ 19.1 19.3. _ to Align Top of Page _ 19.1 YA8~ OF CONTENTS TOC.3 TABLE OF CONTEND yl 19.4. _ Fundions To Print Filri and _ Bitmapf _ 19.2 19.4.1. _ RS232.Print _ 19.2 19.4.2. _ FXWSTREAM _ 19.2 19.4.3. _ Printing a Portion of the Screen _ 19.3 20. R5232 File Transfer With a VAX 20.1 20.1. _ Prerequisites _ 20.1 20.2. _ Using Chat to Transfer Filri _ 20.1 21. Ethernet File Transfer 21.1 21.1. _ Prerequisites _ 21.1 21.2. File Transfer 21.1 22. WhatToDolf... 22.1 ;;23. The Text ditor,TEdit 23.1 23.1. _ Using TEdit _ 23.1 23.2. _ Managing the edit Window _ 23.2 23.3. _ Seleding _ Tert _ 23.3 23.4. _ Deleting, Copying, and _ Moving Text with edit _ 23.4 23.4.1. _ Deleting Text From a File _ 23.4 23.4.2. _ Copying _ Text _ 23.4 23.4.3. _ Moving _ Text _ 23.5 23.5. _ rtdit Menus _ 23.6 23.5.1. _ Finding _ and _ Substituting Text with _ edit _ 23.7 23.5.1.1. _ Finding Text _ 23.7 23.5.1.2. _ Substituting Text _ 23.8 23.5.L _ Text Formatting _ 23.10 23.5.2.1. _ Choosing Fonts _ 23.10 23.5.2.2. _ Paragraph _ Formatting _ 23.11 23.5.3. _ Adding _ Bitmaps and Sketches to your TEdit File _ 23.13 23.5.3.t. _ Adding a _ Bitmap to your TEdit file _ 23.13 23.5.3.2. _ Adding a Sketch to your TEdit file _ 23.14 23.5.4. _ Getting and _ Including _ Filri _ 23.14 23.5.4.1. _ Get _ 23.14 23.5.4.2. _ Include _ 23.14 23.5.5. _ Saving and Printing Files _ 23.15 24. _ Records _ May _ BG _ Your _ Favorite _ Data _ Structure! _ 24.1 2&1. _ Interlisp Record ~imitlves _ 24.1 T~.. rAa~0fC0NTENrt TABLE OF OoNTENfl 24.2. _ Exomplo _ 24.3 24.3. _ AFwflps _ 24.4 25. Local Variables - Using LET and PR0G 7 25.1 25.1. _ LET _ 25.1 25.2. _ PfloG _ 25.3 25.3. _ Porillol _ vottus _ S~uential _ Vorioblo _ Binding _ 25.6 25.3.1. _ L~ _ 25.6 25.3.2. _ PROG _ 25.7 26. lterative statements 26.1 26.1. _ General _ Strudurc and _ Use _ 26.1 26.2. _ Local _ Variables _ 26.2 26.3. _ lteration _ On _ Lists _ 26.3 26.4. _ Parallel _ lteration _ 26.4 26.5. _ Conditional _ lteration _ 26.5 26.6. _ More _ lteration _ 26.6 27. Window and Regions 27.1 27.1. _ Windows _ 27.1 27.1.1. _ CREATEW _ 27.1 27.1.2. _ WlNDOWPROP _ 27.2 27.1.3. _ Getting windows to do things _ 27.3 27.1.3.1. _ BUflONEVENTFN _ 27.4 27.1.4. _ Looking at a _ window's properties _ 27.5 27.2. _ Regions _ 27.5 28. What Are Menus? 281 28.1. _ Displaying _ Menus _ 28.1 28.2. _ Getting _ Menus to DO Stuff _ 28.2 28.2.1. The WHENHELDFH and WHENSELE~DFN fields of a menu 28.4 28.3. _ Looking _ at a _ menu's fields _ 28.5 29. Bitmaps 29.1 30. Displaystreams 30.1 30.1. _ Drawing _ on a _ Displaystream _ 30.1 30.1.1. _ DliWUNE _ 30.1 30.1.2. _ DliWTO _ 30.2 30.1.3. _ DliWaRCLE _ 30.3 TABS OF CONTENff TOC.5 l TABS OF CON~Nfl 30.1.3.1. _ FlLLGRCLE _ 30.3 30.2. _ Locating and _ Changing _ Your Position _ in _ a _ Displaystream _ 30.4 30.2.1. _ DSPXP0SlflON _ 30.5 30.2.2. _ DSPYPOSlBON _ 30.5 30.2.3. _ MOVETO _ 30.5 31. Fonts 31.1 31.1. _ WhatmakesupaFONn _ 31.1 31.2. _ Fontdescriptors, and _ FONTCREATE _ 31.2 31.3. _ Display Fonts-Theirfiles, and how to find them _ 31.3 31.4. _ Interpress _ Fonts- Their files, and _ how to find them _ 31.4 31.5. _ Functions for Using Fonts _ 31.4 31.5.1. _ FOHTPROP - _ Looking at Font Properties _ 31.4 31.5.2. _ SffllNGWlDTH _ 31.5 31.5.3. _ DSPFONT- Changing the Font in _ One Window _ 31.6 31.5.4. _ GIo~IlyChanging Fonts _ 31.7 31.5.5. _ Pettonalizing _ Your Font Profile _ 31.7 32. The Inspetror 32.1 32.1. _ Calling the Inspector _ 32.1 32.2. _ Using _ the _ Inspector _ 32.2 32.3. _ Inspector _ Example _ 32.2 33. Masterscope 33.1 33.1. _ The SHOW DATA command and GRAPHER _ 33.2 33.2. Databasefns: Automatic Conrtruction and Upkeep of a Mastettcope Data~se _ 33.3 34. Where Does All the Time Go? SPY 34.1 34.1. _ How to use Spy with the SAY Window _ 34.1 34.2. _ How to use _ SPY from the _ Lisp Top Level _ 34.2 343. _ Interpreting _ SPY's Results _ 34.2 35. SKETCH 35.1 35.1. _ Starting _ Sketch _ 35.1 35.2. _ Selecting _ Sketch elements _ 35.1 35.3. _ Drawing _ with _ Sketch _ 35.2 35.3.1. _ Simpl Shapes: _ Circles, Ellipsri and _ Boxes _ 35.3 35.3.1.1. _ Drawing _ Circlri _ 35.3 35.3.1.1 _ Elllpsri _ 35.3 TA.G TAlLE0fC0NFENrt `/` ----- Next Message ----- Date: 19 Dec 91 14:18 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.141853pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11640>; Thu, 19 Dec 1991 14:19:05 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 14:18:53 -0800 From: John Sybalsky -----RFC822 headers----> TABLE OF CONTENff 42. _ Simple _ Interactions _ with _ the _ Cursor, _ a _ Bitm&p, _ and _ & _ Window _ 42.1 42.1. _ An _ Example Function _ Using _ GETHOUSESTATE _ 42.1 42.2. _ Advising _ GETMOUSESTATE _ 42.2 42.3. _ Changing the Cursor _ 42.2 42.4. _ Functions for _ "Tracing the cursor" _ 42.3 42.5. _ Running the Functions _ 42.6 43. Glossary of Global System Variables 43.1 43.1. _ Directories _ 43.1 43.2. _ Flags _ 43.2 43.3. _ Hirtory _ Lists _ 43.3 43.4. _ Syrtem _ Menus _ 43.3 43.5. _ Windows _ 43.4 43.6. _ Miscellaneous _ 43.4 44. Other References that will be Useful to You 44.1 TA.G TAaU0FC0NTENff PREFACE it wos dawn and the locd told him it was down the road a p;ece, lefl &t the hst fishing bridge in the counvy right at the apple tree stump, and onto the d;rt roadjust before the hill. At m;dnight he knew he was lo$t. -Anonymous Welcome to the Interlisp-D programming environment! The Interlis~D environment truly must be one of the most sophisticated and powerful tools in use by human beings. Overall, it is flexible, well thought out, and full of pleasant surprises: "Wow, here are exactly the set of functions l thought I'd need to write." Unfortunately, along with the power comes mind-numbing complexity. The Intedisp Refertnce Manual describes the functions and some of the tools available in the Interlisp-D environment. To do this takes three large volumes. Other volumes are needed to document the library packages and other newly written tools. Needless to say, it is very difficult to learn such a huge amount of material when there is no way to determine where to rtart! We developed this primer to provide a starting point for new lnterlis~D usert, to enhance your excitement and challenge you with the potential before you. We assume you know a little about LISP, most likely received from taking a survey courte in Artificial Intelligence (Al), and have seen a demonrtration of how lnterlis~D runs on your 1186 or 1108. We further assume that your machine is not on a network system with a file server - though this is addressed, and that you will be working from floppy disks and the hard disk that is part of the machine. If this describes your situation, you are ready to sit down in front of your machine and follow the ste~by-step examples provided in this primer. The primer is broken into many small chapters, and these chapters are organized into five parts. You may want to read Parts 1 through 3 straight through, since they describe the basics of using the machine. Each chapter in Sections 4 and 5, however, can be used to learn a specific skill whenever you are ready to for it Part one, "Introduction", includes Chapters 1 and 2. Part two, "Getting Into/Out of Interlisp", includes Chapters 3 through 5. Part three, "The lnterlis~D language and Programming Environment", includes Chapters 6 through IS. These chapters discuss primary elements in lnterIis~D, and orient you in relation to those elements. Part four, "Important Other Things to Know to Work Successfully", includes Chapters 16 through 31. Part five, "More Language and Environment and Packages", includes Chapters 32 through 44. PREFAcE v ----- Next Message ----- Date: 19 Dec 91 14:20 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.142054pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11636>; Thu, 19 Dec 1991 14:21:05 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 14:20:54 -0800 From: John Sybalsky -----RFC822 headers----> PREFACE Through out we make reference to the lnterlis~D Reference Manual by section and page number. The material in the primer is just an introduction. When you need more depth use the detailed treatment provided in the manual. While only you can plot your ultimate destination, you will flnd this primer indispensable for clearly defining and guiding you to the first landmarks on your way. Acknowledgements The early inspiration and model for this primer came from the Intelligent Tutoring Systems group and the Learning Research and Development Center at the University of Pittsburgh. We gratefully acknowledge their pioneering contribution to more effective artificial intelligence. This primer was developed by Computer Possibilities, a company committed to making Al technology available. Primary development and writing was done by Cynthia Cosic, with technical writing support provided by Sam Zordich. At Xerox Artificial Intelligence Systems, John Vittal managed and directed the project. Substantial assistance was provided by many members of the AlS staff who provided both editorial and systems support. PREFA~ 1 ----- Next Message ----- Date: 19 Dec 91 14:33 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.143340pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11653>; Thu, 19 Dec 1991 14:33:46 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 14:33:40 -0800 From: John Sybalsky -----RFC822 headers----> 1. ABRlEFGLOSSARY The following definitions will acquaint you with general terms used throughout this primer. You will probably want to read through them now, and use this chapter as a reference while you read through the rest of the primer. advising An lnterlis~D facility for specifying function modifications without necessarily knowing how a particular function works or even what it does. Even system functions can be changed with advising. argument An argument is a piece of information given to an lnterlis~D function so that it can execute successfully. When a function is explained in the primer, the arguments that it requires will also be given. Arguments are also called Parametert. atom The smallest rtrvcture in Lisp; like a variable in other programming languages, but can also have a property lirt and a function definition. Background Menu The menu that appears when the mouse is not in any window and the right mouse button is pressed. A typical background menu is shown in Figure I.I. Loops Icon FileB'owser Figuro 1.1. The Menu that appeort when the mouse is not in any window, and the right mouse button is pressed. Your background menu may have some different items in it binding The value of a variable. It could be either a local or a global variable. See unbound. bitmap A rectangular array of ` pixels, ` each of which is on or off representing one point in the bitmap image. BREAK An Interlisp function that causes a function to stop executing, open a Break window, and allow the user to find out what is happening while the function is halted. Break Window A window that opens when an error is encountered while running your program (i.e., when your program has broken). There are tools to help you debug your program from this window. This is explained further in Chapter 14, Page 14.1. browse To examine a data strvcture by use of a display that allows the user to "move" around within the data rtructure. button A BRIEF GL0SSARY 1.1 1 A BRIEF GLOssAny (1) (n.) Akeyonamouse. (2) (v.t.) To depress one of the mouse keys when making a selection. EAR A function that returns the head or firrt element of a list. See CDR. caret The small blinking arrowhead that marks where tert will appear when it is typed in from the keyboard. An example of the caret in the lnterIis~D Executive Window is shown in Figure 1.2. NIL B6+(PLus 3A Figur lJ. Me caret is to the right of the numher 3. When a characters frped atthe keylsoard. it will ap~ar at the caret CDR A function that returns the tail (that is, everything but the first element) ofa list SeeEAR. CLlSP A mechanism for augmenting the standard Lisp syntax. One such augmentation included in Interlisp is the iterative rtatement. SeeSection 13.1. cr Please press your carriage return key. datatype (1) The kind of a datum. In Interlisp, there are many SystemAefine~ datatypes e.g. Floating Point, Integer, Atom, etc. (2) A datatype can also be user~efined. In this case it is like a record made up from system types and other user-defined datatypes. DWlM D~whatl-mean. Many errors made by Interlisp users could be corrected without any information about the purpose of the program or expression in question (e.g. misspellings, certain kinds of parenthesis errort). The DWlM facility is called automatically whenever an error occurt in the evaluation of an Interlisp expression. If DWlM is able to make a correction, the computation continues as though no error had occurred; otherwise, the standard error mechanism is invoked. error Occasionally, while a program is running, an error may occur which will stop the computation. Interlisp provides ertensive facilities for detecting and handling error conditions, to enable the testing, debugging, and revising of impertect programs. evaluate or EVAL Means to flnd the value of a form. For example, if the variable X is bound to 5, we get 5 by evaluating X. Evaluation of a Interlisp function involves evaluating th arguments and then applying thfunction. file packag A set of functions and convntions that facilitato th bookkeping involved with working in i larg systm consisting of many sourc cod files and thir compiled countrparts. Essentially, th fll packag k:ps track of whr things ar and 1, AR1EFGLos~y l A RlF GLoSSARY whet things hevo chonged. N 4150 kaps trck of which files hove been modifiod end n#d to be updetod end recompiled. form Another wey of seying ~xpre5sion. An Jntorlisp-D ex~on tbetcen be evaluated. function A Lisp function is e piece of l;sp code thet executes end returns e veiue. history The progremmers essistent is l,uilt eround e memory structure celled the hirtory Iirt. The hirtory functions (e.g. FIX, UNDO, REDO) ere part of this essirtant. These operations allow you to conveniently r~work previously specifiecl operations. History List As you type on the xreen, you will notice a number followecl by a prompt attow. Each number, and the information on that line, is seeluentially rtored as the History List Using the History List, you can easily reexecute lines typed earlier in a worksession. See Chapter6. icon A pictorial representation, usually of shrunken window. lnterlis~D Executive Window This is your main window, where you will run functions and develop your programs. See Figure 1.3. This is the window that the caret is in when you turn on your machine and load lnterlis~D. NIL 8~#iPRO*PTPRIHT "HELLO" A Fqur tJ. m window inspector An interactive display program for examining and changing the parts of a data structure. Jnterlisp-D has inspectors for lists and other data types. iterative statement (also called i.s.) A statement in Interlisp that repetitively executes abody of code. (E.g.(forxfromltosdo(PRlNTx))isani.s.) iterative variable (also called i.v.) Usually, an iterative statement is controlled by the value that the i.v. takes on. In the iterative statement example above, x is the iterative variable leecause its value is being changed by each cycle through the loop. All iterative variables are local to the iterative rtatement where they are defined. LISP Family of languages invented for "list processing." These languages have in common a set of basic primitives for creating and manipulating symbol rtructures. lnterlis~D is an implementation of the LISP language together with an environment (set of tools) for programming, an a set of packages that ertend the functionality of the system. list A collection of atoms and lists; a list is denoted by surrounding its contents with a pair of parentheses. A BRIEF GLOSSARY lJ 1 A BRIEF GLOSSARY Loading LJSP This is the process of bringing lnterlis~D from floppy disks, hard disks, or some other secondary rtorage into your main, or working, memory. You will need to load (i.e., install, and boot) lnterlis~D if you have not logged off the machine at the end of a session. The process of loading lnterlis~D is explained in Chapter3. Maintenance Panel Codes Should you have a problem with your equipment, these codes will indicate the status of your processor. On the 1108, these are the red LED numbett under the floppy drive door. There is a cover over these numbers. Pull down the cover located immediately under the floppy door button. The code numbers are defined for the 1108 in the 1108 Useri Guide, in the MP Codeschapter. If there is a problem with the 1186, the mouse curtor will change from its normal arrow to the code number that describes the problem. The code numbert are defined for the 1186 in the 1166 User's Guide in the Curtor Codes subsection of the Diagnostics Chapter. Marterscope A program analysis tool. When told to analyze a program, Masterscope creates a data base of information about the program. In particular, Marterscope knows which functions call other functions and which functions use which variables. Masterscope can then answer questions about the program and display the information with a browser. menu A way of graphically presenting the user with a set of options. There are twO kinds of menus: p0~up menus are created when needed and disappear after an item has been selected; permanent menus remain on the screen after use. mouse The Mouse is the box to the right of your keyboard. It controls the movement of the cursor on your screen. As you become familiar with the mouse, you will find it much quicker to use the mouse than the keyboard. See Figure 1.4. (Note: Some mice have three buttons; the button in the center is known as the middle mouse button. If your mouse has only two buttons, you can simulate a middle button by pressing the left and right buttons simultaneously.). Fw- 1.& Mous Mouse Curtor The small arrow on the screen that points to the northwest. See Figure 1.5. F~m I.L Mous c~~~ Mous Curtor Icons I.A A llEF GLos~Y l A IRlEF GLOSSARY I Wait Tho processor is busy. The processor is saving a anpashot or your cureent system session. This is usually don when tbc procffssor hos ~n idle for a while. The "Mouse Confirm Cursor". It appeatt when you have to confirm that the choice you just made was correct. If it was, press the left button. If the choice was not tight, press the right button to abort. F='*x This means "sweep out" the shape of the window. To do this, move the mouse to a position where you want a corner. Press the leff mouse button, and hold it down. Move the mouse diagonally to sketch a rectangle. When the rectangle is the desired size and shape, release the left button. r-'l l l l l - This is the "move window" prompt. Move the mouse so that the large "ghost" rectangle is in the position where you want the window. When you click the left mouse button, the window will appear at this new location. NIL NIL is the lnterlis~D symbol for the empty list h can also be represented by a lefl paren followed by a right paren: (). It is the only expression in lnterIis~D that is both an atom and a list pixel Pixel rtands for PIcture Element. The xreen of your Lisp Machine is made up of a rectangular array of pixels. Each pixel corresponds to one bit When a bit is turned on, i.e. set to 1, the pixel on the screen represented by this bit is black. pretty printing Pretty printing refers to the way lnterIis~D functions are printed with special indentation, to make them easier to read. Functions are pretty printed in the structure eclitor, DEdit (See Section 11.3, Page 11.4). You can pretty print uncompiled functions by calling the function PP with the function you would like to see as an argument, i.e. (PP tunction-name). For an example of this, see Figure 1.6. 96.(PP HEAD) [LANBDA (LST) <6rtG; `~JlinH13;3&) (CAR LsTJ) (HEAD) 97.' Fbm 1.6. An oxam~ u~oftho pro printing `unmon FP A BRIEF GLOSSARY 1.5 I A BRIEF GLOSSARY Programmer's Assistant The programmer's assistant accesses the History List to allow you to FIX, UlOO, and'or REDO your previous expressions typed to the lnterlis~D executive window. (See Chapter 6.) Promptwindow The skinny black window at the top of the xreen. It displays system prompts, or prompts you have developed. (See Figure 1.7.) Fqur 1.7. Prompt window property list A list of the form ( ....) associated with an atom. It accessed by the functions GETPROP and PUTPR0P. record A record is a data-structure that consists of named "flelds". Accessing elements of a record can be separated from the details of how the data structure is actually stored. This eliminates many programming details. A record definition establishes a record template, describing the form of a record. A record instance is an actual record storing data according to a particular record template. (See datatype, second definition.) Right Button Default Window Menu This is the menu that appeaff when the mouse is in a window, and the right mouse button is pressed. It looks like the menu in Figure 1.8. If this menu does not appear when you depress the right button of the mouse and the mouse is in the window, move the mouse so that it is pointing to the title bar of the window, and press the right button. Clone Snap Paint Clear 8ury Redi~play Hardcopy~ Move Shapo Shrink f~a 1.1. tt Right Sutton DqfaultWindow Menu 5-expression Short for "symbolic expression." In Lisp, this refers to any well-formed collection of leff parffns, atoms, and right parens. stack A pushdown lirt Whenever a function is entered, information about that specific function call is pushed onto (i.e. added to the front ofi the stack; this information includes the variable names and their values associated with the function call. When the function is exitted, that data is popped off the stack. storag devices Information is rtored for your Lisp machine on floppy disks, or on the hard disk. They are referred to as (FLOPPY) and (DSK) respectivly. sysout A fll containing G wl'0l Lisp environmnt: namely, lnterlis~O, evrything th user' dfinecl or loaded into the environment, th 1.6 A ~N:EF GL0SsARY I A BRIEF GLOSSARY windows that ppeored on tho Kreen, tb mount of memory used, and 50 on. Evorything ;s rtord in th sysout fil exactly .5 it was whon tho function SYSWT was called). TFACE A function that crates a trace of the execution of another function. Eich time the traced function is called, it prints out the values of the arguments it was called with, and prints out the value it returns upon completion. Unbound Without value; an atom is unbound if a value has never been assigned to it window A rectangular area of the screen that acts as the main display area for some Interlisp process, A BRIEF GLOSSARY 1.7 1 ----- Next Message ----- Date: 19 Dec 91 14:42 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.144256pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11642>; Thu, 19 Dec 1991 14:43:07 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 14:42:56 -0800 From: John Sybalsky -----RFC822 headers----> 6. TYPING SHORTCUTS Once you have logged it, as per Chapters 3 or 4, you are in lnterlis~D. The functions you type into the Interlisp-D executive window will now execute, that is, perform the designated task. Please note that Interlisp-D is case-sensitive; offen it matters whether text is typed in capital- or lower-case letters. The shifflock key is above the left shift key; when it is pressed (on the 1186, the red LED will be on; on the 1108, the key will be depressed), everything typed is in capital letters. You must type all Interlisp-D functions in parentheses. The lnterlis~D interpreter wtll read from the leff parenthesis to the closing right parenthesis to determine both the function you want to execute, and the arguments to that function. Executing this function is called evaluation. When the function is evaluated it returns a value, which is then printed in the lnterlis~D executive window. This entire process is called the read-eval-print loop, and is how most Ll5P interpreters, including the one for lnterlis~D, run. The prompt in Interlis~D is a number followed by a left pointing arrow (see Figure 6.3). This number is the function's position on the History List -- a list that stores your interactions with the lnterlis~D interpreter. Type the function (PLUS 3 4), and notice the number the History List assigns to the function (the number immediately to the leff of the arrow). lnterlis~D reads in the function and its arguments, evaluates the function, then prints the number 7. In addition to this read-eval-print loop, there is also a programmer's assistant. It is the programmer's assistant that prints the number as part of the prompt in the lnterlis~D executive window, and uses these numbers to reference the function calls typed after them. When you issue commands to the programmer's assistant, you will not use parentheses as you do with ordinary function calls. You simply type the command, and some specification that indicates which item on the history list the command refers to. Some programmer's assistant commands are FIX, REDO, and UNDO. They are explained in detail below. Programmer's assistant commands are useful only at the lnterlis~D top level, that is, when you are typing into the lnterlis~D executive window. They will not work in user-defined functions. As an example use of the programmer's assistant, use REDO to redo your function call (PLUS 3 4). Type REDO (Note: programmer's assistant commands can be typed in either upper TYPING 5H0RTCUTS 6 1 TYPING SHORTCUTS or lower case) at the prompt, then specify the previous expression in one of the following ways: (1) When you originally typed in tne function you now want to refer to, there was a History List number to the left of the arrow in the prompt. Type this number affer the programmer's assistant command. This is the method illustrated in the following figure: iPLUe~ 3 4) C'5~REOO `24 7 26-',' , , , . . , . , . . . . . . . , . . . . , , , , . Figure 6.1. Using the programrner's assistant to REDO a function, when you know the its number on the history list (2) A negative number will specily the function call typed in that number of prompts ago. in this example, you would type in-I, the position immediately before the current position. This is shown in the following figure: `2~.(PLUS :3 j) ;;;; `-,7' ii, ~` F.EDS -i 7 :`0~. , , , , , ,: , , :, , ,:, , , , , , ;, : , , , ,; , , Figur 6.2. Typing a negative number affer the programmer's assistant command will cause it use the function found on the History List that many positions before the current one. (3) You can also specify the function for the programmer's assistant with one of the items that was in that function call. The programmer's assistant will se'rch backwards in the History List, and use the first function it finds that includes that item. For example, type REDO PLUS to have the function (PLUS 3 4) reevaluated. (4) If you type a Programmer's Assistant command without specifying a function (i.e., simply typing the command, then a cr) the Programmer's Assistant executes the command using the function entered at the previous prompt. Here are a few more examples of using the programmer's assistant: G.a TYPING SHORrCUff 1 TYPING SH0RTCUTS NIL 54k[PLUS 4 5) 9 55~REDO 9 56#?? 54 +(PLUC~ 4 5) 9 56~(SETQ B `80Y) BOY 5'~B BOY 59" UNDO cETQ SETQ undone. 59'.B UN8OUND nTOM B SBkREDO 56 BOY 6IkB BOY 62# Fqur 6.3. Some Applications of the Programmer's Assistant 6.1 If you make a Mistake Editing in the Interlisp-D Executive Window is explained in Section 11.2, Page 11.2. In this section, only a few of the most useful commands will be repeated. To move the caret to a new place in the command being typed, point the mouse cursor at the appropriate position, and press the leff mouse button. To move the caret back to the end of the command being typed, press CONTROL-X. (Hold the CONTROL key down, and type .X.'.) The way you choose to delete an error may depend on the amount you need to remove. To delete: The character behind the caret simply press the backspace key The word behind the caret press CONTROL-W. (Hold the CONTROL key down, and rype `W'.) Any part of the command, first move the caret to the appropriate place in the command. Hold the right mouse button down and move the mouse cursor over the ten. All of the blackened tert between the caret and mouse cursor is deleted when you release the right mouse button. TYPING SHORTCUTS 63 IF YOU MAKE A MISTAKE The entire command press CONTROL-U. (Hold the CONTROL key down, and type in".) Deletions can be undone. Just press the UNDO key. To add more text to the line, move the caret to the appropriate position, and just type. Whatever you type will appear at the caret. 6.4 TYPING SHORTcUTS ----- Next Message ----- Date: 19 Dec 91 14:48 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.144827pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11544>; Thu, 19 Dec 1991 14:48:38 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 14:48:27 -0800 From: John Sybalsky -----RFC822 headers----> 7. USING MENUS The purpose of this chapter is to show you how to use menus. Many things can be done more easily using menus, and there are many different menus provided in the Interlisp-D environment. Some are "po~up" menus, that are only available until a selection is made, then disappear until they are needed again. An example of one of these is the "background menu", that appears when the mouse is not in any window and the right mouse button is pressed. A background menu is shown in Figure 7.1. Yours may have different items in it. SkGtL'h LUop3 Icon CHAT F.lle0ro~er sav"VM 5nap Figure 7.1. A hackground menu. Another common pop-up menu is the right button default window menu. This menu is explained more in Section 10.4, Page 10.3. Other menus are more permanent, such as the menu that is always available for use with the Interlisp-D Filebrowser. This menu is shown in figure Figure 7.2, and the specifics of its use with the filebrowser is explained in Chapter 9). Dnjelsta Rcname Hor~'UpJ -=`ffl.e Compil'. E~prnnge Recrjm Ut.fl,L' Figure 7.2. The menu that is available when using the Filehrowser USING MENUS 71 I MAKING A SELEcTION FROM A MENU 7.1 Making a Selection from a Menu To make a selection from a menu, point with the inouse to the item you would like to selert If one of the moU5e buttons is already pressed, the menu item 5hould blacken. If it is a permanent menu, you must press the leff mouse button to blacken the item. When you release the button, the item will be chosen. Figure 7.3 shows a menu with the item "Undo" chosen. 1 .lffer Bpfor', GeIer~, Replace `witch ( `3 LIt. Find `=w~ pcpflnt Edt Edfl-Um 0~ik Eva E.xit Figure 73. A menu with the item "Undo" chosen 7.2 Explanations of Men.u Items Many menu items have explanations associated with them. If you are not sure what the consequences of choosing a particular menu item will be, blacken the menu item, and do not release the leff button. If the menu item has an explanation associated with it, the explanation will be printed in the prompt window. Figure 7.4 shows the explanation associated with the item "Snap" from the background menu. ile0row~or Flguv 7.& The explanation associated with the cliosen item, Snip, is displayed in the prom pt window. 7.2 USING NENuS I SUBMENUS 7.3 Submenus Some menus items have submenus associated witl, them. This means that, for these items, you can make even more precise choices if you would like to. A submenu can slso be found in one of two ways. One is to point to the item with the mouse cuttor, and press the middle mouse button. If there is a submenu associated with that item, it will appear. (See Figure 7.5.) l Atter 8e?are DoloCe Replace Yvitch `ut l)nda Find cap Repnnt Edit EditL'om Break Eva OK TOP FigurQ 7.5. The submenu associated with the menu item Exit It appeared when the mouse curtor Pointed to the menu item. and the middle mouse button was pressed. A submenu can be indicated by a gray arrow to the right of the menu item, like the one to the right of the "Hardcopy' choice in Figure 7.1. To see the submenu, blacken the menu item, and move the mouse to follow the arrow. An example of this is shown in Figure 7.6. Choosing an item from a submenu is done in the same way as choosing an item from the menu. Any submenus that might be associated with the items in the submenu are indicated in the same way as the submenus associated with the items in the menu. Dnclelete .~ . Copy Rename Harjcopv .=.ee ~~e~; Loa.d c'.Ee!T.: E,puni~e P',com Ll!e Figure 7.6. The submenu associated with the menu item Edit - It appeared when the menu item was blackened, and the mou>e was moved (0 follow the gray arrow. In summary, here are a few rules of thumb to rerrember about the interactions of the mouse, and system menus: Press the leff mouse button to select an item of a menu Press the middle mouse button to get more options - one of the ways to find a submenu USING MENUS 73 SUBMENU5 Press the right mouse button to see the default right button window menu, and the background menu 7.4 usiNG MENUS ----- Next Message ----- Date: 19 Dec 91 14:56 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.145658pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11659>; Thu, 19 Dec 1991 14:57:09 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 14:56:58 -0800 From: John Sybalsky -----RFC822 headers----> 8. MOW TO USE FILES 8.1 Types of Files A program file, or lisp file, contains a series of expressions that can be read and evaluated by the lnterlis~D interpreter. These expressions can include function or macro definitions, variables and their values, properties of variables, and soon. How to save Interlisp-D expressions on these files is explained in Section 11.6, Page 11.7. Loading a file is explained below, in Section 8.6, Page 8.4. Not all files, however, have lnterlis~D expressions stored on them. For example, TEdit files (see Chapter 23) store tert; sketches are stored on files made with the package Sketch (see Chapter 35), or can be incorporated into TEdit files. These files are not loaded directly into the environment, but are accessed with the package used to create them, such as TEdit or Sketch. When you name a file, there are conventions that you should follow. These conventions allow you to tell the type of a file by the extension to its name. If a file contains: Interlisp-D expressions, it should not have an extension. For example, a file called "MYCODE" should contain lnterlis~D expressions; compiled code, it should have the extension" .DCOM'. For example, a file called `MYCODE.DCOM" should contain compiled code; a Sketch, then its extension should be ".SKETCH. For example, a file called `MOUNTAlNS.SKETCH" should contain a Sketch; text, it should have the extension ".TEDlT'. For example, a file called `REPORT.TEDlT' should contain text that can be edited with the editor TEDlT. 8.2 Directories This section focuses on how you can find files, and how you can easily manipulate files. To see all the files listed on a device, use the function DIR. For example, to see what files are stored on the Y;ard disk, type (DIR (DSK)) HOW TO USE FILES B1 DlRG0R1E5 To see what files are stored on the floppy disk inside of the floppy drive, type (DIR (FLOPPY)) Partial directory listings can be gotten by specifying a file name, rather than just a device name. The wildcard "` can be used to match any number of unknown characters. For example, the command (DIR (DSK)T) will list the names of all files stored on the hard disk that begin with the letter T. An example using the wildcard is shown in Figure 8.1 `DIR `(P\h',(LI'.\PFIL.'.'PRIMER~T';l `LPQh/''.LI."'l FILE.C\,'PRIMER\ Tsi'REF.>.TEP[1)2 T6LlClNT.TEDIT,1 FigurG 8.1. Using the function DIR with a wildcard 8.3 Directory Options Various words can appear as extra arguments to the DIR command. These words give you extra information about the files. (1) SIZE displays the size of each file in the directory. For example, type (DIR (DSK) SIZE) (2) DATE displays the creation date of each file in the directory. An example of this is shown in Figure 8.2 35~(DIR (DsxJ.PRIMER~T* DATE) CREATIDNOATE (DSK)'LI5PFILES~PRIflER? TA'1"REF~TEPlT;2 26-lun-R5 19:A,O:R2 TBLnrnNT.TEDIT;1 26-lun'66 ja:4R~? 3Lq~ . . . . . . : . . . . . . . . . . . .. . . . . . .. . . . . Figure 8.2. An eximpie using th dirctory option DATE (3) DEL deletes all tho files found by the directory command G.a H0W TO USE FILES SUFlLE DlREO0RlES 8.4 Subfile Directories Subfile directories are very helpful for orgonizing files. A set of files that have a single purpose, for example all the external documentation files for a system, can be grouped together into a subfiledirectory. To associate a subfile directory with a filename, simply include the desired subfile directory as part of the name of the file Subfile directories are specified after the device name and before the simple filename. The first sibfile directory should be between less-than and greater-than signs < >, with nested subdirectory names only followed by a greater-than sign > For example: [DSK)SubOlmctory>SrnbSubDirctor-y>.. .>fi1on~ 8.5 To See What Files Are Loaded If you type FILELST, the names of all the files you loaded will display. Type SYSFILES, to see what files are loaded to create the SYSOUT. 8.6 Simple Commands for Manipulating Files The following commands will work with the (FLOPPY) and other devices, but have been shown with (DSK) for simplicity To have the contents of a file displayed in a window: (SEE `[DSK)f11nrn) To copy a file: (coPYFILE `[~)o1dfi1n~ `[DSF)ne,r,,ilonrn) An example of this is shown in Figure 8.3 (sOPvFILE `T~0r,RFc.TEDIT `PF;IMEFREFO.TDITJ t'Dcxl,(.LIsPFILEs.PRIMP.;.PRIMEP.fiEFs.TEDIT;1 Figure 8.3. An example of the use of the function COPYFILE To delete a file: (DEl.FIL `(~)fi1on~) An example of this is shown in Figure 8.4. ,, OELFIL `L'AMPLE.TEPITJ . \l.. I'PfILE;'."PRIMER?>AnPLE.TPIT;1 FigureS.O. The function DELFlLE To rename a file: (RENlEFILE (osK)oldftlnrn `(rSF)ner,r11n~) HOW TO USE FILES 83 1 SIMPLE COMMANDS FOR MANIPULATING FILES "LOAD" a file: Files that contain Interlisp-D expressions can be loaded into the environment. That means that the information on them is read, evaluated, and incorporated into the Interlisp-D environment. To load a file, type: (LUG `[DSff)filenm) When using these functions, always be sure to specify the full filename, including subfile directories if appropriate. 8.7 Connecting to a Directory Offen, each person or project has a subdirectory where their files are stored. If this is your situation, you will want any files you create to be put into this directory automatically. This means you should "connect" to the directory. CONK is the Interlisp-D form that connects you to a directory. For example, COilKin the following figure: - 1 l 11 29#(L'OtJN ``CDv~K1,.LIv"PFILES~\PP,IMER7IM\,!,I t'OS'Y96)cLIy'PFILCv;~PRIh1R.~lM> 30# Fqrnre 8.5. COflffeaing to the subdiredory "PRIMERs srnbsu~i'edory ,.lM" connects you to the subsubdirectory iM, in the subdirectory PRIMER, in the directory LlSPFlLES, on the device D5K. This information, the device and the directory names down to the subdirectory you want to be connected to, is called the "path" to that subdirectory. co:: expects the path to a directory as an argument. Once you are connected to a directory, the command DIR will assume that you want to see the files in that directory, or any of its subdirectories. Other commands that require a filename as an argument (e.g., SEE, above) will assume, if there is no path specified with the filename, that the file is in the connected directory. This will often save you typing. 8.8 File Version Numbers Whe.n stored, each file name is followed by a semicolon and a number. fffILE.TEOIY;1 The number ii the vertion number of the file. This is the system's way of protecting your files from being overwritten. Each time the file is written, a new file is created with a vettion number one 8.1 HOW T0 us: FILES FILE VERSION NUMBERS greater than the lost. This now fle will hove everything from your previous file, plus all of your changes. In most cases, you can exclude the version number when referencing the file. When the vertion is not specified, and there is more that one vertion of the file on that particular directory, the System generally uses your most recent version. An exception is the function DELFILE, which deletes the oldest version (the one with the lowest vertion number) if none is specified. HOW TO USE FILES as ----- Next Message ----- Date: 19 Dec 91 15:03 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.150359pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11664>; Thu, 19 Dec 1991 15:04:10 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 15:03:59 -0800 From: John Sybalsky -----RFC822 headers----> tO.THOSE WONDERFUL WINDOWS! A window is a designated area on the screen. Every rectangular box on the screen is a window. While Interlisp-D supplies many of the windows (such as the lnterlis~D executive window), you may also create your own. Among other things, you will type, draw pictures, and save portions of your screen with windows. 10.1 Windows provided by Interlisp-D Two important windows are available as soon as you enter the lnterlis~D environment. One is the lnterlis~D executive window, the main window where you will run your functions. It is the window that the caret is in when you turn on your machine, and load lnterlis~D. It is shown in Figure 10.1. Figure 10.1. Interlsp-D Executive Window The other window that is open when you enter Interlisp-D is the "Prompt Window". It is the long thin black window at the top of the screen. It displays system prompts, or prompts you have associated with your programs. (See Figure 10.2.) Figure 10.2. Prompt Window Other programs, such as the editors, also use windows. These windows appear when the program starts to run, and close (no longer appear on the screen) when the program is done running. THOSE WONDERFUL WINDOWS' 101 CREATING A WINDOW 10.2 Creating a window To create a new window, type: (CREATEil). The mouse cursor will change, and have a small square attached to it. (See Figure 10.3.) Figure 10.3. The mouse cursor asking you to sweep out a window There may be a prompt in the prompt window to create a window. Press and hold the leff mouse button. Move the mouse around, and notice that it sweeps out a rectangle. When the rectangle is the size that you'd like your window to be, release the leff mouse button. More specific information about the creation of windows, such as giving them titles and specifying their size and position on the xreen when they are created, is given in Section 27.1.2, Page 27.2. 10.3 The Right Button Default Window Menu Position the cursor inside the window you just created, and press and hold the right mouse button. A menu of commands should appear (do not release the right button!), like the one in figure 10.4. To execute one of the commands on this menu, choose the item. Making a choice from a menu is explained in Section 7.1, Page 7.2. clQ1,/ Pant `[oar Bury RoJisplay Hardsopy~ Movc `5hape shrink Figur 1O.& The Right Button Default Window Menu As an example, select "Move" from this menu. The mouse cursor will become a ghost window Oust an outline of a window, the same size as the one you are moving), with a square attached to one corner, like the one shown in Figure 10.5. ~l ~l F~ure 10.1 Th mous cunor !or moving & window Move the mous around. The ghost window will follow. Click the left mous button to plac tho window in a new location. 10.1 TH0Sff w0NKQFUL WlH00~l f THE RIGHT 8Uff0N DEFAULT MN00~ MFNU Choose "Shape", afid notice that you are prompted to sweep out another window. Your original window will have the shape of the window you sketch out. 10.4 An explanation of each menu item The meaning of each right button default window menu item is explained below: Close removes the window from the screen; Snap copies a portion of the screen into a new window; Paint allows drawing in a window; Clear cleart the window by erasing everything within the window boundaries; Bury puts the window beneath all other windows that overlap it; Redisplay redisplays the window contents; Hardcopy sends the contents of the window to a printer or to a flle; Move allows the wi ndow to be moved toanew spot on the screen; Shape repositions and/or reshapes the window; Shrink reduces the window to a small black rectangle callecl an icon. (See Figure 1O6.) Figum lO.L An example icon Expand changes an icon back to iB original window. Position the mouse cursor on the icon, depress the right button, and select Expand. Or, just button the icon with the middle mouse button. These right-button default window menu selections are available in most windows, including the lnterlis~D Executive window. When the right button has other functions in a window (as in an editor window), the right button default window menu should be accessible by pressing the Right button in the black border at the top of the window. 10.5 Scrollable Windows Some windows in Interlisp-D are "scrollable". This means that you can move the contents of the window up and down, or side to side, to see anything that doesn't fit in the window. Point the mouse curtor to the leff or bottom border of a window. If the window is scrollable, a "scroll bar" will appear. THOSE WONDERFlJL WINDOWS' 103 SCROLLABLE WINDOWS The mouse cursor will change to a double headed arrow. (See Figure 10.7.) . 1 , 1 Figuro 10.7. The scrolJ bar of a scrollable window. The mouse cursor changes o a double headed arrow. The xroll bar represents the full contents of the window. The example scroll bar is completely white because the window has nothing in it When a part of the scroll bar is shaded, the amount shaded represents the amount of the window's contents currently shown. If everything is showing, the scroll bar will be fully shaded. (See Figure 10.8.) The position of the shading is also important. It represents the relationshi'p of the section currently diplayed to the the full contents of the window. For example, if the shaded section is at the bottom of the scroll bar, you are looking at the end of the file. 1 . The amount of :>hadin~ in A::;:. the scroll bar represents the amount of the rile ;>hown in the window. Most of the file is visible. Because the shading is at the tap of the scroll bar, you know you are looking at the top of the file. Figur 10.1 Tho amount of shading in the scroll bar represents the amount of the file shown in the window. Most of the file is visible. Because the shading sat the top of the scroll bar. you know you are looking at the top of the file When the scroll bar is visible, you can control the section of the window's contents displayecl: To move the contents higher in the window (scroll the contents up in the window), press the leff button of the mouse, the mouse cursor changes to look like this: Fun 10.1. upward icrollinq cuttor. The contents of the window will scroll up, making the line thit the cursor is beside the topmost lin in the window. 10.4 THo$a ~HOERFUL~~w51 SCROLLASLE MN00~S To move the contonts lower in the window (scroll the contents down" in the window), press the right button of the mouse, ond the mouse cursor changes to look like this: Flgrnro 10.10. Oownwrd scrollinq curtor The contents of the window scroll down, moving the line that is the topmost line in the window to beside the curtor. To show a specific section of the window's contents, remember that the scroll bar represents the full contents of the window. Move the mouse curtor to the relative position of the section you want to see (e.g., to the top of the scroll bar if you want to see the top of the window's contents.). Press the middle button of the mouse. The mouse cursor will look like this: f'9ure 10.11. Proportional scrolling crnrtor. When you release the middle mouse button, the window's contents at that relative position will be displayed. 10.6 Other Window Functions 10.6.1 PROMPTPRlNT Prints an expression to the black prompt window. For example, type (P~PTPRIKT TNIS SILL BE PRIKTED I* THE PAT UIKOoS') The message will appear in the prompt window. (See Figure 10.12.) 1 . 1 Il 43 lpROMPTPRINT `THIS WILL BE PRINTED IN THE PROMPT WINDOW') Flurf 10.12. PROMPTPRlNTing THOSE WONDERFUL WINDOWS' 10.5 OTHER WINDOW FUNCTIONS 10.6.2 WHlCNW Returns as a value the name of the window that the mouse cursor IS in. (VHICHW) can be used as an argument to any function expecting a window, or to reclaim a window that has no name (that is not attached to some particular part of the program.). 10.6 THOil wONOERFUL~N00vn' ----- Next Message ----- Date: 19 Dec 91 15:18 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.151815pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11655>; Thu, 19 Dec 1991 15:18:21 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 15:18:15 -0800 From: John Sybalsky -----RFC822 headers----> tl. DlTUNG AND SAVING This chapter explains how to define functions, how to edit them, and how to save your work. 11.1 Defining Functions DEFINEQ can be used to define new functions. The syntax for it is: (HFIffEQ ( (j> New functions can be created with DEFINEQ by ryping directly into the lnterlis~D executive window. Once defined, a function is a part of the lnterlis~D environment. For example, the function EXANPLE-ADDER is defined in Figure 11.1. - HIL 46=(OEFINEQ (E.~AMPLE-rt"D&ER (~" B cJ (PRINT `THE SUM OF THE THREE NUMBERS Is ") (IPLUS n" B CJJJ (EXn~MPLE-~&DERj 47- F1ure 11.1. Defining the function EXAMPLEADDER Now that the function is defined, it can be called from the lnterlis~D executive window: . - NIL 49'. cEX~-MPLE-ffD&ER 3 4 `J; "THE SUM OF THE THREE NljMBERS 15 12 c~g Fq'rnre IIJ. After EXAMPLADDER is defined, it can he executed The function returns 12, after printing out the message. Functions can also be defined using the editor DEdit described above. To do this, simply type (DF furttiorvnamej EDITING AND SAVING 111 1 DEFINING FUNCTIONS You will be asked whether you would like to edit a Dummy definition. A dummy definition is a standard template for your function definition. Answer by typing Y for Yes, and you will be able to define the function in the editor. (See Figure 11.3. The use of the editor is explained in Section 11.3, Page 11.4.) h.'1,flF PJ~-HOT'E'['Ti Ho FH~., dean ;or oil NflT-E 1:-7, on oU Ui `;h ro ?dlr a `lu 60A "Fl;:l Figurn 11.1 Using DEdit to define a function II _ 2 _ Simple _ Editing _ in _ the _ Interlisp-D _ Executive Window First, type in an example function to edit: 51~(oEFIxEQ (Y~R-FIRST-fuKTIrn (A B) (if (GREATERP A B thn TNE FIR T IS GREATER els THE SECO*O IS 6REATE )))) To run the function, type (YOUR-FIR$T-FUflcTIoa 3 5). 52~(Y~R-FIRST-Fu~TI: 3 5) (TNE SEc~ Is GREATER) Now, let's alter this. Type: 53~FIZ 51 cr Notf that your original function is redisplayed, and ready to edit. (SeeFigure 11.4.) llJ EO1Y1~ AHO SAVING r, SIMPLE EDITING IN TNE INTERLISPD EXECUTIVE WIND0W NIL 53~FI~ 51 +(DEFINEQ [YOUR-FIRST-FUNCTION (A B) ( edited; "~1-Dec-GB 19;"8") (IF (GREaTERPA B) THEN (QUOTE (THE FiRST Is UREATERj) ELSE (QUOTE (THE SECOND IS u'RE~~TER] 1A f~ur11.& Using FIX to editafundion Move the tert cursor to the appropriate place in the function by positioning the mouse cursor and pressing the Jeff mouse button. Delete text by moving the caret to the beginning of the section to be deleted. Hold the right mouse button down and move the mouse cursor over the text. All of the blackened text between the caret and mouse cursor is deleted when you release the right mouse button. If you make a mistake deletions can be undone. On an 1108, press the OPEN key to. UNDO the deletion. On an 1108, press the UNDO key on the keypad to the Jeff of the keyboard. Now changeGREATERtoBIGGER: (1) Position the mouse cursor on the G of GREATER, and click the leff mouse button. The text curtor is now where the mouse cursor 15. (2) Next, press the right mouse button and hold it down. Notice that if you move the mouse cursor around, it will blacken the characters from the text cursor to the mouse cursor. Move the mouse so that the word "GREATER" is blackened. (3) Release the right mouse button and GREATER is deleted. (4) Without moving the cursor, type in BIGGER. (5) There are two ways to end the editing session and run the function. One is to type CONTROL-X. (Hold the CONTROL key down, and type "X".) Another is to move the text cursor to the end of the line and cr In both cases, the function has been edited! Trythe new version of the function bytyping: 58~(Y~-FZRST-F~Tzrn 8 9) (TN sEc~ Is BIKER) and get the new result, or you can type: 5~RE00 52cr (TNE SEc~ Is BIKER) EDITING AND SAVING 11.3 USING THE LIST STRUaURE EDITOR 11.3 Using The List Structure Editor If the function you want to edit is not readily available (i.e. the function is not in the Interlisp-D Executive window, and you can't remember the history list number, or you simply have a lot of editing), use the List Structure Editor, offen called DEdit. This editor is evoked with a call to OF: 81~(DF YWR-FIRST-f~TIa) Your function will be displayed in an edit window, as in Figure 11.5. If there is no edit window on the screen, you will be prompted to create a window. As before, hold the leff mouse button down, move the mouse until it forms a rectangle of an acceptable size and shape, then release the button. Your function definition will automatically appear in this edit window. !L~nb&A IA Bj (* OJtfJ' :1O:cw `~;`~`` .~.tr~r (IF 113'REATEPP A B'i EqV;r~ THEN iOUUTE "THE ::.p'.T f ~Ir,GER),l cl,,t' ELSE 1~UUTE THE .=E.u'N& j:. eluh'ER;J)) 4ep~:c /``tC.h . Un~io Find Rcorint cit. EOlfl/C T7~ Sr:ok E.. y E..t. Figur Il.L An Edit Window Many changes are easily done with the structure editor. Notice that by pressing the left mouse button, different expressions are underlined. Underline BIGGER as in Figure 11.5. Release the left mouse button. To add an expression that doesn't appear in the edit window, (i.e. it can't simply be underlined), just type it in. Doing this will create an edit buffer below the DEdit window. For example, type LARGER and hit cr (Remember to cr! You won't be able to do anything in the editor until you cr - this can fool you at first, so beware.) A new window opens up at the bottom for the new expression. (See Figure 11.6.) LARGER now has the bold line underneath it, while BIGGER has a dotted line. A 11.4 EDITING ~O ~VING USING THE LIST STRUCTURE EDITOR , LAMDOA VA B\ ~ dltd `3' Oc 00 l F;3Q') ArtOr VV (OREATERP A B) Befom ~ VQUOTE -THE FIRST Is 816OER)) cOIOtO (15 (QUOTE VTHE SEL'ONO IS BIW~Ry,\.i Ropl&ce witch ( ) y)out Unoo Find wap FQum Il.L Edit Window with Edit Buffer DEdit keeps track of items you have chosen by Using a stack. The underlines tell you the order of the items on the stack. The solid underline indicates the item on the top of the stack; the dotted underline indicates the second to the top. (liIGGER was pushed on first. When LARGER was pushed on, BIGGER became the second element in the "stack", and LARGER the first.) Many commands operate with two items on the stack. Some of them are listed below: Atter pops the stack, and adds this top item (in this example, LARGER) to the edit window affer the second item on the stack(in this example, BIGGER). The item that was at the top of the stack, LARGER, will now appear in both the original and the new position. Before pops the stack, and adds this top item (in this example, LARGER) to the edit window before the second item on the stack. (See Figure 11.7.) (LAKBDA VA 8' C' oJ'lfG `3,-Ooc~ ~F;l.O ,~rtOr (IF VGREATERp A 8J E~'inre ~ (QUOTE (THE FIRST IS ~`R ,8IUGEP); cOlGte ELI (QUOTE (THE SECOND IS 8I,b'E .j! ,1J F!Gplace itch r tJut Undo Find ,=-.i,1r P.O~rir,t Eda fiUre 11.7. The command Before is chosen; the word LARGER appean Iefore the word BIGGER Replace pops the stack, and substitutes this top item for the second item on the stack. Sat tch changes the position of the first and second items on the stack in the edit window. Find pops the stack, and searches this top expression for an occurance of the second item on the stack. If the item is found, it is underlined with a solid line, that is, pushed on the stack. To find the next occurance, simply choose "Find" again. If the expression is not found, the prompt window will blink, and a EDITING AND SAVING 115 1 USING ~E LIST STRUCTURE EDITOR spc111~ asfa1 If yri ant to &pc ~r coants) There are other editor commands which can be very UsefUl. To learn about them, read to the lntertis~D Reffrence Manual, Volume 2, Section 16, on DEDIT. it .4 _ File _ Functions and _ Variables - _ How to _ See Them _ and _ Save Them With lnterlis~D, all work is done inside the "Lisp Environment". There is no "Operating System" or "Command Level" other than the lnterlis~D Executive Window. All functions and data strUctures are defined and edited using normal Interlisp-D commands. This sertion describes tools in the Interlisp-D environment that will keep track of any changes that you make in the environment that you have not yet saved on files, such as defining new functions, changing the values of variables, or adding new variables. And it then has you save the changes in a file you specify. 11.5 File Variables Certain system-defined global variables are used by the file package to keep track of the environment as it stands. You can get system information by checking the values of these variables. Two important variables follow. FILELST evaluates to a list, all files that yoU have loaded into the lnteris~D environment. filenameC0liS (Each file loaded into the Lisp environment has associated with it a global variable, whose name is formed by appending "COMS" to the end of the filename.) This variable evaluates to a list of all the functions, variables, bitmaps, windows, and soon, that are stored on that particular file. For example, if you type: ~FILEC0*s the system will respond with something like: FKS YouR-FZRST-Fu*CTIil ) VARS)) 11.6 Saving Interlisp-D on Files The functions (FILES?) and (NAKEFILE `filename) are useful when it is time to save function, variables, windows, bitmaps, records and whatever else to files. EDITING AND SAVING 117 I USING THE LIST STRUCTURE EDITOR message that the item was not found will appear. (See Figure 11.8 for an example of an item, the atom THIRD, not appearing in the function, YOUR-FIRST-FUKCTION. 1 L.flFBo~P~~T\P _ B! (,`-.J'l-.J. _ .z' _ P..,n _ 1- THEN `c1.lcTE _ `THE _ FIPT _ ~I.'i'.EP'] ELSE 1tlJlJTE _ HE _ `/E/l)MlD TrtI,,,v Sr.i El ET. Figw 11.& The atom THIRD is not in the fundion being edited Saap changes places, on the stack, of the first and second items on the stack. The edit window does not change, except that the expression that had a solid underline now has a dotted underline, and vice versa. Delete works on only the top item of the stack. Delete removes the solid underlined expression from the edit window. Undo undoes the last editor command. Completing the example begun earlier, here's how to have the word LARGER that you typed into the edit buffer appear in place of the BIGGER that you selected from the DEdit window: select the SWITCH command. Notice that the two items are switched, and the stack is popped. Now select EXIT and to leave the editor, and your function will again be redefined. 11.3.1 Commenting Fundions Tert can be marked as a comment by nesting it in a set of parentheses with a star immediately after the left parenthesis. ( This ii th Von of c~rtt) Inside an editor window, the comment will be printed in a smaller font and may be moved to the far right of the code. Sometimes, however, centered comments are more appropriate. To center a comment, type ,, .... after the left parenthesis. This co.oortt 111 rtot b rnd to th ?r ri9ht of th co5o but 111 b crttrd) It is also possible to insert Iinebreaks within a comment. A dash should be placed in the comment whcrevr A carriag return is needed. Thii feotur allows several commnt1 to b placed insid one S.t of pirntheses. ( This cooo.t 111 h t~~ at. to 1ios. - 11.6 FIrING AND LAYING SAVING INTERLlSP-D ON FILES (FILES?) displays a list of variables that have values and are not already a part of any file, and then the functions that are not already part of any file. Type: (FILES?) the system will respond with something like: tb variables: ~.VARIlLE cURREKT.tuRTLE.. to be du;ed. th functions: RI6HT LEFT FOIAff liCK*Aa cLEAR-uREEil.. to be d~~. srit to s&y bere th abov go? If you type Y, the system will prompt with each item. There are three options: (1) To save the item, type the filename (unquoted) of the file where the item should be placed. (This can be a brand new file or an existing file.) (2) To skip the item, without removing it from consideration the next time (FILES?) is called, type cr This will allow you to postpone the decision about where to save the item. (3) If the item should not be saved at all, type J. NoilhQ re will appear afler the item. Part of an example interaction is shown in the following figure: HIL u31~(FILES,) Che variables: MY-'y'AR. To be di.imped. the functions: MY-SEcuNO-FUtllJTIJN, YJUP-FIPoT'FUNi)TIJN to be dumped. want to say where the .ibove 30 ? `ye' (variables) NY-VAR Nowhere (runctions) NY-SELrnNO-FUN&'TION File name: E;~AMPL~ F~11.9. Part of an interaction using the function FILES? (FILES?) assembles the items by adding them to the appropriate file's COMS variable. (See Section 11.5, Page 11.7.) (FILES?) does NOT write the file to secondary storage (disks or floppies). It only upclates the global variables discussed in SectionIt.S. (NAKEFILE `Tl lenae) actually writes the file to secondary storage. Files should only be writen when the time is set. If the time is not set, you will run into problems, such as not being able to copy your file. To check the time, typ (riTE) If the date is correct, yoU can safely use IRE FILE. If it is riot correct, set the time with the function SETTIKE. To use it, type (SETTIKE date), where dat isa string such as the one shown inFiguretl.10. it.a Eomlflll ANC SAVING I SAVING INTERUSP~ ON FILES NIL 97;k(SETTIME "10-Jul-86 15:08 2<8) "i6-Jul-86 15;08:22 EDT" 98+ Fqurn 11.10. Using the SETTIKE function to set the date and time Once the time is set correctly, use the function MAKEFILE. Type: (liffEFILE `P.FILE.~) and the system will create the file. The function returns the full name of the file created. (i.e. (DSK)MY.FlLE.NAME.; 1). Note: Files written to (DSK) are permanent files. They can be removed only by the user deleting them or by reformatting the disk. Other file manipulation functions can be found in Section 8.6, Page 8.3. EDITING AND SAVING 119 I ----- Next Message ----- Date: 19 Dec 91 15:20 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.152031pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11670>; Thu, 19 Dec 1991 15:20:42 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 15:20:31 -0800 From: John Sybalsky -----RFC822 headers----> t3. FLEXIBILITY AND FORGIVENESS: CLISP AND DWIM CLlSP, (Conversational Lisp), and DWlM, (Do What Mean), are two Interlisp utilities that make life easier. 13.1 CLlSP CLlSP allows the machine to understand and execute commands given in a non-standard way. For example, Figure 13.1 contains an example expressi on (4 + 5). NIL b'4-iJ + 5; 9 85' F9ure 13.1. cLlsP allows the use of infix notation Without CLlSP, you would need to type this using the notation (PLUS 4 5). CLlSP allows you to use expressions such as (4 + 5) for all arithmetic expressions. CLlSP also allows you to use more readable forms inrtead of standard Lisp control structures. Expressions like IF-THEN-ELSE statements can replace COND statements. For example, instead of: (CIO 1J6RE(APLTUESRPBA B (PLUS A 10)) 10 the following can be used: (if (A ~ B) then (A + 10) else (B + 10)) The system translates this CLlSP code into Interlisp-D code. Setting flags will allow you to either save the CLlSP code, or save the translation. One such flag is CLISPIFTRANFLG; if it is set to ffIL, all the IF statements will be replaced with the equivilent CORD statements. This means that when you DEdit the function, the IF will be removed and replaced with the CORD. Typically, flags such as this one are set in your INlT file. These flags are dixussed in the Intertlsp-D Reference Manual in Volume 2, Section 21. FLEXIBILITY AND FORGIVENESS. cLIsP AND DWIM 13 I I OWlM 13.2 DWlM DWlM tries to match unrecognized variable and function names to known ones. This allows Lisp to interpret minor typing errors or misspellings in a function, without causing a break. Line 87 of Figure 13.2 illustrates how the misspelled 0ANNANNA was replaced by 8ANANA before the expression was evaluated. NIL a7(8ETQ 8~N.HA `FRUITj FRUIT 38'8nNN,,~NNA =8,,'H,,NA FRUIT 39' Figure 13.2. Examples of CLlSP and DWlM features Sometimes DWlM may alter an expression you didn't want it to. This may occur if, for example,a hyphenated function name (eg. (NY-FUNCTION)) is misused. If the system doesn't recognize it, it may think you are trying to subtract "FUN~lON" from "MY". DWlM also takes the liberty of updating the function, so it will have to be fixed. However, this is as much a blessing as a curse, since it points out the misused expression! 13.2 F~1lUM AND ~ROVENES$: cub AND OWN I ----- End Forwarded Messages ----- Figure 13.2. Examples of CLlSP and DWlM features Sometimes DWlM may alter an expression you didn't want it to. This may occur if, for example,a hyphenated function name (eg. (NY-FUNCTION)) is misused. If the system doesn't recognize it, it may think you are trying to subtract "FUN~lON" from "MY". DWlM also takes the liberty of updating the function, so it will have to be fixed. However, this is as much a blessing as a curse, since it points out the misused expression! 13.2 F~1lUM AND ~ROVENES$: cub AND OWN I ----- End Forwarded Messages -----  -TIMESROMAN -VH(DEFAULTFONT 1 (GACHA 10) (GACHA 8) (TERMINAL 8) (POSTSCRIPT (GACHA 8))) -E(z \ No newline at end of file diff --git a/docs/primer/DRAFT2.TEDIT b/docs/primer/DRAFT2.TEDIT deleted file mode 100644 index f8837033..00000000 --- a/docs/primer/DRAFT2.TEDIT +++ /dev/null @@ -1,6 +0,0 @@ -Second Group Date: 19 Dec 91 18:11 PST (Thursday) Posted-Date: 19 Dec 91 18:19 PST From: John Sybalsky:PARC:Xerox Subject: more primer files. To: porter:mv:envos >>CoveringMessage<< ----- Begin Forwarded Messages ----- Date: 19 Dec 91 15:28 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.152817pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11662>; Thu, 19 Dec 1991 15:28:23 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 15:28:17 -0800 From: John Sybalsky -----RFC822 headers----> F- 14. BREAKPACliGE The Break Package is a part of Interlisp that makes debugging your programs much easier. 14.1 Break WindoNT A break is a function either called by the programmer or by the system when an error has occurred. A separate window opens for each break. This window works much like the Interlisp-D Executive Window, except for extra menus unique to a break window. Inside a break window, you can examine variables, look at the call stack at the time of the break, or call the editor. Each successive break opens a new window, where you can execute functions without disturbing the original system stack. These windows disappear when you resolve the break and return to a higher level. 14.2 Break Package Example This example illustrates the basic break package functions. A more complete explanation of the breaking functions, and the break package will follow. The correct definition of FAGTORIAL is: (DEFIKEQ (FMT0RIAL (xj then 1 (iff5 (ITIES x (f~ToRIAL (sue, xj To demonstrate the break package, we have edited in an error: DUffKY in the IF statement is an unbound atom, it lacks a value. (DFIKEQ (F~T0RIAL (xj then ~ (if~[~~ (ITIKES x (FACTORIAL ~suei xj The evaluated function (F~T0RI~ 4) should return 24, but the above function has an error. DUMMY is an unbound atom, an atom without an assigned value, so Lisp will "break". A break window appears (Figure 14.1), that has all the functionality of the typing Interlisp-D expressions into the lnterlis~D executive window (The top level), in addition to the break menu functions. Each consecutive break will move to another level "down". BREAK PACKAGE 141 BREAK PACKAGE EXAMPLE 51+(PP Fllu'T&RIAL) cFACTORlAL [LA'NBOR ! `.j "rOMnNT~ (if (EROP `~ i,,ien Dummy 6Jil (lTIflEc A !FR~TORIAL !.UB1 :~j; !FACTCPIALj 5?(FALTORIAL 4,1 DUMMY (in FAi',TORlALJ in =ERDP P1!t4flY only br'okon! Figuro I..l. Break window Move the mouse cursor into the break window and hold down the middle mouse button. The Break Menu will appear. Choose BT. Another menu, called the stack menu, will appear beside the break window. Choosing stack items from this menu will display another window. This window displays the function's local variable bindings, or values. (See Figure 14.2) This new window, titled FACTORlAL Frame, is an inspector window. (See inspector Chapter 32). Sr fau'TUR[AL EP.PoM5ET fiRE&1 UNBOUND ATOM LflQ DUMMY (in fAcTORIAL) in \(ZEROP x) DUMMY) cob FLiDRI~ (DUMMY broken) cob FkWRl~ L.OB F,c~RI~ L'4M0 Figun 14.3. Back Yraco of trio 5ystem Stack From the break window, you can call the editor for the function FACTORIAL by typing (OF F~15IL) Underline X. Choose EVAL from the zditor menu. The value of X at the time of thff break will appear in the edit buffer below tho editor window. Any list or atom can be evaluated in this way (See Figure 14.3.) 14.1 lRF~PACMA'GF BREAK PACKAGE EXAMPLE UNBOUND ATOM DUMMY (in FACTORIAL ~ (ITIKES x \fASTORIAL ~SUB1 X))))) Replace switch ( ) (DUMMY broken) ()cUt OF FAL'TORIAL) Undo Find Swop Reprint Edit EatCam Break E~a1 E.t Figure 14.3. Editing from the Break Window Replace the unbound atom DUffNY with 1 Exit the editor with the EXIT command on the editor menu. The function is fixed, and you can restart it from the last call on the stack (It does not have to be started again from the Top Level) To begin again from the last call on the stack, choose the last (top) FACTOR1AL call in the BT menu. Select REVERT from the middle button break window, or type it into the window. TThe break window will close, and a new one will appear with the message: FACTORlAL broken. To start execution with this last call to FACTORIAL, choose OK from the middle button break menu. The break window will disappear, and the correct answer, 24, will be returned to the top level. 14.3 _ Ways to _ Stop _ Execution _ from the _ Keyboard, called _ "Breaking _ Lisp" There are ways you can stop execution from the keyboard. They differ in terms of how much of the current operating state is saved: Control-G provides you with a menu of processes to Interrupt. Your process will usually be ` EXEC". Choose it to break your process. A break window will then appear. Control-B causes your function to break, saves the stack, then displays a break window with all the usual break functions. For information on other interrupt characcers, see the Interlisp Reference Manual, volume 111, page 30.1. 8REAKPAcKAG 14.3 I PROGRAMMING BREAKS AND DEBUGGlNG CODE 14.4 Programming Breaks and Debugging Code PrOgramming breaks are put into code to cause a break when that section of code is executed. This is very useful for debugging code. There are 2 basic ways to set prOgramming breaks: (BREAK functionna:e) This function call made at the tOp level will cause a break at the start of the execution of "functionname". This is helpful in checking the values of parameters given to the function. Setting a break in the editor Take the function that you want tO break into the editor. Underline the expression that should break before it is evaluated. Choose BREAK on the editor command menu. Exit the editor. The function will break at this spot when it is executed. Once the function is broken, an effective way tO use the break window for debugging is to put it into the editor window. (See Section 14.2, Page 14.2.) All the local bindings still exist, so you can use the editor's EVAL command to evaluate lists, variables, and expressions individually. Just underline the item in the usual way (move the mouse to the word or parenthesis and press the leff mouse button), then choose EVAL from the command menu. (See Section 14.2 for more detail.) Both kinds of programmed breaks can be undone using the (UNBREAK) function. Type (~KBRDF functionnm) Calling (UNBREAK) without specifying a function name will unbreak all broken functions. 14.5 Break Menu Move the mouse cursor into the break window. Hold the middle button down, and a new menu will pop up, like the one in Figure 14.4. OK BT BY! "a f~ure 14.& Th middle bUtton menu in the Break window Five of the selection& are particularly important when just starting to use lnterlis~D: 8T Sack Trace displays the stack in a menu beside the break window. Back Trace is a very powerful debugging t00l. Each function call is placed on tho stack and removed when the execution of that function is complete. Choosing an item on th stack will open another window displaying that item's local 1(. 8~xpAcl:AGE E~ BREAK MENU voriobles and their bindings. This is on inspector window thit offers all the power of the inspector. (For details, see the section on the Inspector, Chapter 32). ? Sefore you use this menu option, display the stack by choosing 8T from this menu, and choose a function from it. Now, choose 7: It will display the current values of the arguments to the function that has been chosen from the stack. ~ Move back to the previous break window, or if there is no other break window, back to the top level, the InterlispD Executive Window. REVERT Move the point of execution back to a specified function call before the error. The function to revert back to is, by default, the last function call before the break. If, however, a different function call is chosen on the BT menu, revert will go back to the start of this function and open a new break window. The items on the stack above the new starting place will no longer exist. This is used in the tutorial example. (See Section 14.2, Page 14.1.) OK Continue execution from the point of the break. This is useful if you have a simple error, i.e. an unbound variable or a nonnumeric argument to an arithmetic function. Reset the variable in the break window, then select OK. (See Section 14.2.) (Note: In addition to being available on the middle button menu of the break window, all of these functions can be typed directly into the window. Only ST behaves differently when typed. It types the stack into the trace window instead of opening a new window.) 14.6 Returning to Top Level Typing Control-D will immediately take you to the top level from any break window. The functions called before the break will stop, but any side effects of the function that occurred before the break remain. For example, if a function set a global variable before it broke, the variable will still be set afler typing Control-D. BREAK PACKAGE 14.5 1 ----- Next Message ----- Date: 19 Dec 91 15:51 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.155149pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11668>; Thu, 19 Dec 1991 15:51:54 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 15:51:49 -0800 From: John Sybalsky -----RFC822 headers----> 27. WINDOWS AND REGIONS 27.1 Windows Windows have two basic parts: an area Ofi the screen containing a collection of pixels, and a property list. The window properties determine how the window looks, the menus that can be accessed from it, what should happen when the mouse is inside the window and a mouse button is pressed, and soon. 27.1.1 CREATEW 5ome of the window's properties can be specified when a window is created with the function CREATEW. In particular, it is easy to specify the size and position of the window; its title; and the width of its borders. (CREATEW region title borderw'idth) Region is a record, named REGION, with the fields left, botto:. width, and height. A region describes a rectangular area on the screen, the window's dimensions and position. The fields left and botto refer to the position of the bottom leff corner of the region on the screen. Vi dth and height refer to the width and height of the region. The usable space inside the window will be smaller than the width and height, because some of the window's region is consumed by the title bar, and some is taken by the borders. Title is a string that will be placed in the title bar of the window. Bordervvidtfr is the width of the border around the exterior of the window, in number of pixels. For example, typing: (SETQ ~.WIN~ CREATEW (CREAT RE6IS loo 150 300 200) THIS Is ~ r"w ilIN~ ) produces a window with a default borderwidth. Note that you did not need to specify all the window's properties. (See Figure 27.1.) wiNDows AND REGIONS 27 WINDOWS ,.J[1.lGJ'J (flf,,Tfff i'CRE"TEPE,IrnN jvjw 5- `9;, "~~i "TriI;' I> My ij'lN `ff Ibl&U'M' ii (~[N&JwlM2.65554 FigUre 27.1. Creating a Window In fact, if (CREATEW) is called without specifying a region, you will be prompted to sweep out a region for the window. (See Section 10.2, Page 10.2.) 27.1.2 WlNDOWPROP The function to access or add to any property of a window's property list is WIliDOVPROP. (WIN~PR0P window property ) When you use WIKDOWPROP with only two arguments - window and property - it returns the value of the window's property. When you use wIKOOVPROP with all three arguments - window, property and value - it sets the value the window's property to the value you inserted for the third argument. For example, consider the window, NY WINDOW, created using (CREATEW). TITLE and REGION are both properties. Type (ilI*~PW :.uI~ `TITLE) and the value of MY.WlNDOW's TITLE property is returned, "THIS 15 MY OWN WINDOW". To change the title, use the WINDOWPROP function, and give it the window, the property title, and the new title of the window. (wIK~PW ~.uI~ `TITLE P FIRST ilIK~) automatically changes the title and automatically updates the window. Now the window looks like Figure 27.2. 27.1 w1N00WS AND REG~NS WINDOWS 7t'WINDOWfROP NV WINDOW TITLE) IS NV OWN WINDOW" s.(WINDOWPROP NY.WlNDOl4 TITLE `QY FIRST WINDOW") THIS IS M\' OWN WINDOW" 4'. FigUre 27.2. TITLE is a Window Property Altering the region of the window, NY. VINDOV, is also be done with vINDOWPROP, in the same way you changed the title. (Note: changing either of the first two numbers of a region changes the position of the window on the screen. Changing either of the last two numbers changes the dimensions of the window itself.) 27.1.3 Getting windows to do things Four basic window properties will be discussed here. They are CURSORINFN, CURSOROUTFN, CURSORffOVEDFN, and BUTTONEVENTFN. A function can be stored as the value of the CURSORlNFN property of a window. It is called when the mouse cursor is moved into that window. Look at the following example: (1) First, create a window called MY.WlNDOW. Type: (SETQ P.WINDQW (CREATEI (cREATERE6Ia 200 200 200 200) "THIS WIllDOW WILL IREMl)) This creates a window. (2) Now define the function SCREAMER. It will be stored on the property CURSOR1NFN. (Notice that this function has one argument, WlNDOWNAME. All functions called from the property CURSOR1NFN are passed the window it was called from. So the value of MY. WINDOW is bound to WlNDOWNAME. When it is called, SCREAMER simply rings bells. (DEFINQ (ScREMER (WIK~~E) RIilBELLS) PROlPTPRIlT TAT - IT WDRFSI") RIKBELLS))) (3) Now, alter that window's CURSORINFN property, so that the system calls the function SCREAMER at the appropriate time. Type: WlNDow5 AND REGIONS 273 WINDOWS (WIN~PRoP P.wINI;0II `cuR~RIaf (F~IIk:TIK IR~R)) (4) Affer this, when you move the mouse cursor into MY.WlNDOW, the CURSORINFK property's function is called, and it rings beJls tvvice. CURSORINFN is one of the many window properties that come with each window - just as REGION and TITLE did. Other properties include: CURSOROUTFN The function that is the value of this property is executed when the cursor is moved out of a window; CURSORMOVEDFN the function that is the value of this property is executed when the cursor is moved while it is inside the window; BUTTONEVENTFN the function that is the value of this property is executed when either the Ieff or middle mouse buttons are pressed (or released). Figure 27.3 shows MY.WlNDOW's properties. Notice that the CURSORINFK has the function SCREAMER stored in it. The properties were shown in this window using the function INSPECT. INSPECT is covered in Chapter 32. . . ` 1 GREEN NIL HI NOo'rtENTR'[FN O liE. TT'( PRObES PRfllESS NIL `,`181)ROER 4 NEWREL'I)NF4 NIL `NTITLE THIS `ffiINDOW `tILL .QCREAn!" MOlEfN NIL CLOSEFN NIL HORIZOCROLL'.yIND1)',t NIL "ER1L'ROLLNINoO'ff NIL c.u'ROLLFN NIL H)RI=J-'cRlLLREG NIL ":`ERTSCR)LLREU NIL USERDATA NIL E!'!TENT NIL REOH4PEFN NIL REPAINTFN NIL L'URSORttOvEDFN NIL CURSOROUTFN NIL CURSORINFN SCCE'ThER RIGHTBUTTONFN NIL BU1FONEVENTFN TOTOPU REG 12J0 "L)9 J~ `36! SavE (BITMAP~3,1jo52 NE~('t (WIflD1)'-'1j55,1'lj'..8 DSP ~5TRE>M\,~F,jjjj~4 Figur 27.3. Inspeaing MY.wlNDow for MouseRelated Window Properties You can define functions for the values of the properties CURSOROUTFK and CURSORMOVEDfN in much the same way as you did for CURSORINfN. The function that is the value of the property BUTTOHEVENTFN, however, cab be specialized to respond in different ways, depending on which mouse button is pressed. This is explained in the next section. 27.1.3.1 BUtrONVENTFN BUTTONEVENTFK is anothqr property of a window. Tho function that is stored as tfl valu of this property is called when tho mouso is insid tho window, and a mouso button is pressed. As an exampl of how to us iL type: 27A ~N00wS ANO REGIONS witurows (wI~PKP :.ilIK~ `euTTW"EKTtr (F~TI5 ScREAER)) When the mouse cursor is moved into the window, bells will ring because of the CURS0RlNFN, but it will also ring bells when either the Jeff or middle mouse button is pressed. Notice that the right mouse button functions .5 it usually does, with the window manipulation menu. If only the left button should evoke the function SCREAMER, then the function can be written to do just this, using the function MOUSESTATE, and a form that only NOUSESTATE understands, ONLY. For example: (DEFIKEQ (SCRElERZ WIK~) (if ESTATE (aLY LEFT)) tha (RIKBLLS)))) In addition to (ONLY LEFT), MOUSESTATE can also be passed (ONLY MIDDLE), (ONLY RIGHT) or combinations of these (e.g. (OR (ONLY LEFT) (ONLY MIDDLE))). You do not need to use ONLY with MOUSESTATE for every application. ONLY means that that button is pressed and no other. If you do write a function using (ONLY RIGHT), be sure that your function also checks position of the mouse cursor. Even if you want your function to be executed when the mouse cursor is inside the window and the right button is pressed, there is a convention that the function DOVINDOWCOM should be executed when the mouse cursor is in the title bar or the border of the window and the right mouse button is pressed. Please program your windows using this tradition! For more information, please see the Intertisp-D Reference Manual, Volume 3, Chapter 28, Pages 7 and 28. Please refer to the Intertisp Reference Manual, Volume 3, Chapter 28, for more detail and other important functions. 27.1.4 Looking at a window's prOperties INSPECT is a function that displays a list of the properties of a window, and their values. Figure 27.3 shows the INSPECT function run with MYWINDOV. Note the properties introduced in CREATEW: WBORDER is the window's border, REG is the region, and WTITLE is the window's title. 27.2 Regions A region is a record, with the fields LEFT, BOTTOM, WIDTH, AND HEIGHT. LEFT and BOflOM refer to where the bottom leff hand corner of the region is positioned on the screen. WIDTH and HEIGHT refer to the width and height of the region. CREATERE6ION creates an instance of a record of type REGION. Type: (SETO ~.RE6Ia (CREATERESIl 15 loo 200 450)) WINDOWS AND REGIONS 275 REGIONS to create a record of type REGION that denotes a rectangle 200 pixels high, and 450 pixels wide, whose bottom leff corner is at position (15, 100). This record instance can be passed to any function that requires a region as an argument, such as CREATEV, above. a,. WlN00WS ANO REGIONS ----- Next Message ----- Date: 19 Dec 91 15:59 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.155935pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11672>; Thu, 19 Dec 1991 15:59:45 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 15:59:35 -0800 From: John Sybalsky -----RFC822 headers----> 28. WHAT ARE MENUS? While Interlisp-D provides a number of menus of its own (see Section 7.1, Page 7.2), this section addresses the menus you wish to create. You will learn how to create a menu, display a menu, and define functions that make your menu useful. Menu's are instances of records (see Chapter 24). There are 27 fields that determine the composition of every menu. Because Interlisp-O provides default values for most of these descriptive fields, you need to familiarize yourself with only a few that we describe in this section. Two of these fields, the TITLE of your menu, and the ITEMS you wish it to contain, can be typed into the InterlispD Executive window as shown below: NIL 33'(.ETO MY. MEN (cRE"'TE ME/lb TiTLE ,.PLE~~SE CHCio8 ONE OF THE ITEMS" ITEMS (0,LlIT NE,T-l)UE;STION NE;~T-TOPIL SEE-TOPIC;5'JJJ ,rMENU!,#c4, ij':'3jH Figure 28.1. Creating a menu Note that creating a menu does not display it. MY.MENU is set to an instance of a menu record that specifies how the menu will look, but the menu is not displayed. 28.1 Displaying Menus Typing either the MENU or ADDNENU functions will display your menu on the screen. MENU implements pop-up menus, like the Background Menu or the Window Menu. ADDMEHU puts menus into a semi-permanent window on the screen, and lets you select items from it. (MENU MENU POSITION) pops-up a menu at a particular position on the screen. Type: (*EKU MY.ffI KIL) to position the menu at the end of the mouse cursor Note that the POSITION argument is NIL. In order to go on, you must either choose an item, or move outside the menu window and WHAT ARE MENUS' 281 DISPLAYING MENUS press a mouse button. When you do either, the menu will disappear. If you choose an item, then want to choose another, the menu must be redisplayed. (ADONENU menu window position) positions a permanent menu on the screen, or ;n an existing window. Type: (ADlEKU P.*EI) to display the menu as shown in Figure 28.2. This menu will remain active, (will stay on the screen) without stopping all the other processes. Because ADONEliU can display a menu without stopping all other processes, it is very popular in users programs. If window is specified, the menu is displayed in that window. If window is not specified, a window the correct size for the menu is created, and the menu is displayed in that window. If position is not specified, the menu appears at the current position of the mouse cursor. NE..TQUESIlCN 3EEToPIC> . . Figure 28.2. A Simple Menu, displayed with AooNriU. 28.2 Getting Menus to DO Stuff One way to make a menu do things is to specify more about the menu items. Instead of items simply being the strings or atoms that will appear in the menu, items can be lists, each list with three elements. (See Figure 28.3.) The first element of each list is what will appear in the menu; the second expression is what is evaluated, and the results of the evaluation returned, when the item is selected; and the third expression is the expression that should be printed in the Prompt window when a mouse button is held down while the mouse is pointing to that menu item. This third item should be thought of as help text for the user. If the third element of the list is NIL, the system responds with "Will select this item when you release the button". JGJ WHAT AR5 MENUS? GErn~ MENUS TO DO STUFF NIL 17+(SETQ Nv.MENU2 (SRATE MENU TITLE "PLEASE LHOOSE ONE OF TflE ITEMS" I~,EMS `(VQUIT (PRINT "STOPPEO" \ "LHOOSE THIS TO 5O~'',' (NE\T-QUESTIOH (PRINT "HERE IS TME NE.'\'T QLlSTIOH . u'HOOSE THIS TO ~E lSKED THE NE."T QUESTION"', iNE!~T-TOPIL (PRINT HERE IS THE NE'~T TOPIL . "C.HOOSE THIS TO KOv OH TO THE NE'\T SueJELT" `1 (SEE-TOPICS (PRINT "THE FOLLOYIN6 HA'\E NOT e.EEN LARNEO"', *CHOOSE THIS TO SEE THE TOPICS NOT YET LErtRNEO"l `ii ~~MENU,'#5~. `.5~5j 1qL(cl&MENL MY. MEtlU:' ,rNIN&El'~~~4', 175350 14 Firnre 28.3. Creating a menu that will do things, then displaying it with the funttion ADDNEHU Now when an item is selected from KY.KENU2, something will happen. When a mouse button is held down, the expression typed as the third element in the item's specification will be printed in the Prompt window. (See Figure 28.4.) NE7.T.'JUE'=TlE'r~J SEE-TOPIC' Fiqrnre 28.1. Mouse Button Held Down While Mouse Cursor SeIe~ NEXT-QUESTIoN When the mouse button is released (i.e. the item is selected) the expression that was typed as the second element of the item's specification will be run. (See Figure 28.5.) Y-'OUE'Tl"N `EETOPlr"' "HERE IS THE NEXT ilUETION. Figure 28.5. NEXT-QUESTION Selected WHAT ARE MENUS' 283 GEHlNG MENUS TO DO STUFF 28.2.1 _ The WHENHLDFN _ and WNENSELCTEDFN fields of a _ menu Another way to get a menu to do things is to define functions, and make them the values of the menu's WHENHELDFN and WHENSELECTEDFN fields. As the value of the WHENHELDFN field of a menu, the function you defined will be executed when you press and hold a mouse button inside the menu. As the value of the WHENSLCTEDFN field of a menu, the function you defined will be executed when you choose a menu item. This example has the same functionality as the previous example, where each menu item was entered as a list of three items. As an example, type in these two functions so that they can be executed when the menu is created and displayed: (DEFIKEQ LCTED (SELEcfQPiNTEENNUJSENHENHELO (ITEl.SLECTED a:. FROM BUTT:. PRESSED) QUIT (PROMPTPRIKT cHOOSE THIS TO sToP)) NEXT-QUESTION (PROMPTPRIKT CHOOSE THIS TO BE ASKED TNE NEXT QUESTION-)) NEXT-TOPIC PROMPTPRINT CHOOSE THIS TO MOO,E a TO THE NEXT SUBUIECT)) SEE-TOPICS PROMPTPRINT CHDOSE THIS TO SEE THE TOPICS NOT YET LARNED)) ERROR (PROM TPRIKT NO liTCH FOUND))))) (DEFINEQ WENSELECTED (ITEM.SELECTED MENU. FROM 8UTT:.PRESSED) QUIT (PRINT STOPPED)) NEXT-QU RINT "HERE IS THE NEXT QUESTION...)) NEXT-T HERE IS THE NEXT TOPIC. . - PICS PRINT THE FOLLONIK HAVE NOT 8EEN LEARNED. .. ERROR (PRONFTPRINT NO liTCH FOUND))))) Now, to create the menu, type: (SETQ MY.NE:3 (CREATE NE: TITLE PLEASE CHOOSE :E OF THE ITEMS ITEK `(QUIT NEXT-QUESTION NEXT-TOPIC SEE-TOPICS) NHENHELDFN (FUNCTIK MY.NENU3.NHENHELD) fflENSELECTEDFN (FUNCTION NY, .MENU3 .fflENSELECTED))) Type (ADDMENU MY.MENU3) to see your menu work. NOW, due to executing the WHNNELDFN function, holding down any mouse button while pointing to a menu item will display an explanation of the item in the prompt window. The screen will once again look like Figure 28.4 when the mouse button is held when the mouse cursor is pointing to the item NEXT-TOPIC. Now due to executing the WHENSELECTEDFN function, releasing the mouse button to select an item will cause the proper actions for that item to be taken. The screen will once again look like Figure 28.5 when the item NEXT-TOPIC is selected. The crucial thing to note is that the functions you defined for WHENHELDFN and WHENSELECTEDFN are automatically given the following arguments: (t) the item that was slected, ITEM. SELECTED; (2) the menu it was selected from, MENU. FROM; (3) and the mous button that was pressed BUTTON PRESSED. Hot: thes functions, *Y.NENU3.fflENflELO and ffY.KEKUJ.ilHEKSELCTEO, wre quoted using FUKCTIOK instead of QUOTE both for program radability and so that the 21.1 ~YAR1".NUs? GETTlMG MENUS TO 00 STUFF compiler con produce foster code when the program is compiled. It is good style to quote functions in Intertisp by using the function FUNCTION instead of QUOTE. 28.3 Looking at a menus fields INSPECT is a function that displays a list of the fields of a menu, and their values. The Figure 28.6 shows the various fields of NY .NENU3 when the function (INSPECT NY NENU) was called. Notice the values that were assigned by the examples, and all the defaults. \JN"PELT NY liENl./3l l1IHDU'wJ#'1, 54scj NENllPECICNB1:TTi=fl o Imrni';E (!VINDLlrt$#b1.l5lSjl t1)UlT HE~T-LlL'E'TI1=1N ``-Ti'iFl' ET MENUPOffo' ANUEAFF'ETFLL: NIL ffENUEQHT i:FclNTPc:::cf IpTclFt -a TITLE `PLEAL'E CHil.l `HE ,iF THE ITE ffEHlJoFF6ET A LECTEDFN fly flEflJ, h.rtEf:EL.FCTEl `1flE'flELDFH NV flEPlLl3 \rtEHHELJP ENl)NHELoFH l:LFF'RCHPT flENOFEEOe4l,'r.FLG NIL Figure 28.6. The Fields of MY.MENU3 WHAT ARE MENUS' 285 ----- Next Message ----- Date: 19 Dec 91 16:10 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.161052pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11680>; Thu, 19 Dec 1991 16:10:56 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 16:10:52 -0800 From: John Sybalsky -----RFC822 headers----> 29. lilTMAPS A bitmap is a retangular array of dots. The dots are called pixels (for picture elements). Each dot, or pixel, is represented by a single bit. When a pixel or bit is turned on (i.e. that bit set to 1), a black dot is inserted into a bitmap. If you have a bitmap of a floppy on your screen, (Figure Figure 29.1), then all of the bits in the area that make up the floppy are turned on, and the surrounding bits are turned off. FLOPPY (Ia b~JwP- ~`,5,,Bh (t-:)o Figure 29.1. Bitmap of a Floppy BITNAPCREATE creates a bitmap, even though it can't be seen. (BIfflPCRDTE width height) If the width and height are not supplied, the system will prompt you for them. EDZTBN edits the bitmap. The syntax of the function is: (EDITl bitmapname) Try the following to produce the results in Figure 29.4: l~SoETiQr:~rB!sTHituPbB~I~PcRDTE eo 40)) To draw In the bitmap, move the mouse into the gridded section of the bitmap editor, and press and hold the leff mouse button. Move the mouse around to turn on the bits represented by the spaces in the grid. Notice that each space in the grid represents one pixel on the bitmap To erase Move the mouse into the gridded section of the bitmap editor, and press and hold the center mouse button. Move the mouse around to turn off the bits represented by the spaces in the gridded section of the bitmap editor. To work on a different section Point with the mouse cursor to the picture of the actual bitmap (the upper left corner of the bitmap editor). Press and hold the BlTMAPS 291 BlTMAPS Jeff mouse button. A menu with the singJe item, ttove will appear. (See Figure 29.2.) Choose this item. . . Figure 29.2. Move the mou5e cursor to the Dtcture of the bitmap. Press and hold the Iek mouse button. and the Move menu will appear You will be asked to position a ghost window over the bitmap. This ghost window represents the portion of the bitmap that you are currently editing. Place it over the section of the bitmap that you wish to edit. (See Figure 29.3.) . . . . . . ... . .... I . 29.3. .. J=.. :. II.lI:.:;;. _ . . f1ure Affer you choose move. yoU will be asked to position a ghost window like this one. Position it by clicking the leff mouse button when the ghost window is over the part of the picture of the bitmap you would like to edit. To end the session 8ring the mouse cursor into the upper-right portion of the window (the grey area) and press the center button. Select OK from the menu to save your artwork. 29) .lY~ r'. alTMAps .:: 5''iSETQ ffy IllNAP (I[TNAPcPEATE OR GO)' j:y.IlfM&P ost\ ,A.BlTMAPl6',1.q;lO 58oi,EOIlBM my.IlTNAP\ - - . . -A fr.j: ` = "''~ = . ~. . . . F~ure 29.4. Editing a Bitmap BITBLT is the primitive function for moving bits (or pixels) from one bitmap to another. It extracts bits from the source bitmap, and combines them in appropriate ways with those of the destination bitmap. The syntax of the function is: (BITBLT sourcebitmap sourcelefl sourcebottom destinationbitmap destinationleft destinationbottom width height sourcetype operation texture clippIngregion) Here's how it's done - using MY.BlTMAP as the sourcebitmap and MY.WlNDOW as the destinationbitmap.' (BITBLT rn.BITll4P NIL NIL P.wIN~ NIL NIL KIL NIL `INPUT `REPuCE) Note that the destination bitmap can be, and usually is, a window. Actually, it is the bitmap of a window, but the system handles that detail for you. Because of the IlLs (meaning "use the default"), MY.BlTMAP will be BlTBLT'd into the lower right hand corner of MY.WlNDOW. (See Figure 29.5.) BlTMAPS 293 ~17MAP5 98'(BITBLT KY Strap NIL NIL my ,1(10p,, FL `IL NIL HIL Tipil' P.PLlfi (~=l', Figure 29.5. 9ITBLTng a Bitmap onto a Window Here is what each of the SlTBLT arguments to the function mean: sourcebitmap the bitmap to be moved into the destinationbitmap sourcelett a number, starting at O for the Jeff edge of the sourcebitmap, that tells SITBLT where to start moving pixels from the sourcebitmap. For example, if the leftmost 10 pixeis of sourcebitmap were not to be moved, sourceleft should de 10 The default value is O. sourcebottom a number, starting at O for the bottom edge of the sourcebitmap, that tells BIT6LT where to start moving p1'xels from the sourcebitmap. For example, if the bottom 10 rows of pixels of sourcebitmap were not to be moved, sourcebottom should be 10 The default value is O. destinationbitmap the bitmap that will receive the sourcebitmap. This is offen a window (actually the bitmap of a window, but Interlisp-b takes care of that for you). destinationleff a number, starting at O for the leff edge of the destinationbitmap, that tells BITBLT where to start placing pixels from the sourcebitmap. For example, to place the sourcebitmap 10 pixels in from the Jeff, destinationleft should be 10. The default value is 0. destinationbottom a number, starting at 0 for the bottom edge of the destinationbitmap, that tells BITBLT where to start placing pixels from the sourcebitmap. For example, to place the sourcebitmap 10 pixels up from the bottom, destinationbottom should be 10. The default value is 0. width how many pixels in each row of sourcebitmap should be moved. The samc amount of space is used in destinationbitmap to receive the sourcebitmap. If this argument is NIL, it defaults to the number of pixels from sourceleft to the end of the row of sourcebitmap. height how many rows of pixels of sourcebitmap should be moved. The same amount of space is used in destinationbitmap to receive thq sourtebitmap. If this argument is NIL, it defaults to the number of row; from sourcebottom to tho top of the sourcebitmap. sourcetyp rofors to on of thro ways to cofivrt th sourcebitmap for writing. For now, just us `INPUT. 29. o~ps ` ` ` ` ` ` ` ` ` ` ` ` ` `` ` `" ` ` ` ` ` ` ` ` ` ` ` ` ` OIlMAPS operation refers to how the sourtebitmap gets BlTBLT'd on to the destinationbitmap. `REPLACE will BLT the exact sourcebitmap. Other operations allow you to AND, OR or XOR the bits from the sourcebitmap onto the bits on the destinationbitmap. texture Just use NIL for now. clippingregion just use NIL for now. Por more information on these operations, see the Interlisp-D Reference Manual, Volume 3, Chapter 27, Page 14. Sourcebitmap, sourceleft, sourcebottom, destinationbitmap, destinationleft, destinationbottom, width and height are shown in Figure 29.6. Destination Bitmap Source Bitmap FLOPPY tlcblffkUP' 3/S/Bh height e./,o width Source leh. Source bottom. The "x y coordinates in terms of the source (OOforthewhoiesource). Destination Jeff, Dertination Bottom. The ,,x y" coordinates in terms of the destination bitmap. (00 to put the source bitmap in the Ieft bottom corner of the dertination bitmap). Figure 29.6. BITBLT'ed Bitmap of a Floppy BITMAPS 295 ----- Next Message ----- Date: 19 Dec 91 16:16 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.161653pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11679>; Thu, 19 Dec 1991 16:16:57 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 16:16:53 -0800 From: John Sybalsky -----RFC822 headers----> 30. DlSPLAYSTREAMS A displaystream is a generaJized "place to display". They determine exactly what is displayed where. One example of a displaystream is a window. Windows are the only displaystreams that will be used in this chapter. If you want to draw on a bitmap that is not a window, other than with BITBLT, or want to use other types of displaystreams, please refer to the Interlisp-D Reference Manual, Volume 3, Chapter 27. This chapter explains functions for drawing on displaystreams: DRAWLINE, DRAWTO, DRAVCIRCLE., and FILLCIRCLE. In addition, functions for locating and changIng your curreAt position in the displaystream are covered: DSPXPOSITIOH, DSPYPOSITION, and NOVETO. 30.t Drawing on a Displaystream Examples will show you how the functions for drawing on a display stream work. First, create a window. Windows are displaystreams, and the one you create will be used for the examples in this chapter. Type: (SETO EwPLE.wIN~ (CREATEI)) 30.1.1 DRAWLlNE DRAWL IRE draws a line in a displaystream. For example, type: (DliVLIKE 10 IS loo 150 S IlERT ExMPLEwIN~) The results should look like this: Figure 30.1. The line drawn onto the displayrtream, ExAMPLEwlNDoW DlSPLAYSTREAMS 30 DRAWING ON A DlSPLAYsTaE:M The syntax of DRAWL1NE is (Dli~IKE xl yl x2 y2 width opera tion stream ) The coordinates of the Jeff bottom corner of the displaystream areOO. xl and yl are the x and y coordinates of the beginning of the line; x2andy2 are the ending coordinates of the line; width isthe width of the line, in pixels operation is the way the line is to be drawn. INVERT causes the line to invert the bits that are already in the displaystream. Drawing a line the second time using INVERT erases the line. For other operations, see the Interlis~D Reference Manual, Volume 111, Page 27.15. stream is the displaystream. In this case, you used a window. 30.1.2 ORA~O DRAWTO draws a line that begins at your current position in the displaystream. For example, type: (Dli~O 120 135 5 `IrvERT E~LE.*IH~) The results should look like this: Figuro 30.2. Another line drawn onto the displaystream, ExAMPLEWlNDow The syntax of ORAWTO is (oliilT0 x y width operation stream i) The line begins at the current position in the displaystream. x is the x coordinate of the end of the line; y is they coordinate of the end of the line; width is the width of the line operation is the way the lino is to be drawn. INVERT causes the line to invert the bits that aro already in tho displaystream. Drawing a line the second time using INVERT erases the line. For other operations, see the lnteHi~O Reference Manual, Volume Ill, Page 27.15. stream is the displaystreom. In this case. you used a window. 30.2 llPLAYSTQCANT DRAW1NG ON A D15PLAr5~E~ 30.1.3 DRAWClRCLE DRAWCIRCLE draws a circle on a displaystream. To use it, type: (0li~I~LE 150 100 so `(~RTICAL 5) KIL E~LE .VI~) Now your window, EXAMPLE.WlNDOW, should look like this: Flur 30.3. The circle drawn onto the displaystream. EXAMPLE WINDOW The syntax of DRAWCIRCLE is (0li~IEL centerx centery radius brush dashing stream) centerx is the x coordinate of the center of the circle centery is they coordinate of the center of the circle radius is the radius of the circle in pixels brush is a list.- The first- item of the list is the shape of the brush. Some of your options include ROUND, SQUARE, and VERTICAL. The second item of that list is the width ofthe brush in pixels. dashing is a list of positive integers. The brush is "on" for the number of units indicated by the first element of the list, "off" for the number of units indicated by the second element of the list. The third element specifies how long it will be on again, and so forth. The sequence is repeated until the circle has been drawn. stream is the displaystream. In this case, you used a window. 30.1.3.1 FlLLClRCLE FILLCIRCLE draws a filled circle on a displaystream. To use it, type: (FILLCIRCLE 200 150 10 6liY~DE ExlPLE.wIli~) EXAMPLE.WlNDOW now looks like this: DlSPLAYSTREAMS 303 l DRAWING ON A DISPLAYSTREAM Figure JO.t A filled circle drawn onto the displaystream, EXAMPLE WINDOW The syntax of FILLCIRCLE i5 (FILLCIRCL centerx centery radius texture stream) centerx is the x coordinate of the center of the circle centery is theycoordinate of the center of the ci rcle radius is the radius of the circle in pixels texture is the shade that will be used to fill in the circle. Interlisp-D provides you with three shades, WHlTESHADE, BLACKSHADE, and GRAYSHADE. You can also create your own shades. For more information on how to do this, see the Interlisp-D Reference Manual, Volumelll, Page 27.7. stream is the displaystream. In this case, you used a window. There are many other functions for drawing on a displaystream. Please refer to the Intertisp-D Reference Manual, Volume 111, Chapter 27. Text can also be placed into displaystreams. To do this, use printing functions such as PRIffl and PRIN2, but supply the name of the displaystream as the "file" to print to. To place the ten in the proper position in the displaystream, see 5ection 30.2, Page 30.4. 30.2 _ Locating _ and _ Changing _ Your _ Position _ in _ a _ Displaystream There are functions provided to locate, and to change your current position in a displayitream. This can help you place text, and other images where you want them in a displaystream. This primer will only discuss three of these. There are others, and they can be found in the lnterlis~D Reference Manual, Volume Ill, Chapter 27. 30.4 0lSPLAY$TREA~ r. LOCATING AND CHANGING YOUR POSITION IN A DISPLAYSTREAM 30.2.1 DSPXPOSlTlON DSPXPOSITION is a functiOn that will either change the current x pOsition in a displaystream, or simply report it. To have the function report the current x position in EXAMPLE.WlNDOW, type: (OSP*PoSlTIoN NIL EXlPLE .ilINDON) DSPXPOSITION expects two arguments. The first is the new x position. If this argument is NIL, the current position is not changed, merely reported. The second argument is the displaystream. 30.2.2 DSPYPOSlTlON DSPYPOSITION is an analogous function, but It changes or reports the current y position in a displaystream. As with DSPXPOSlTlON, If the first argument Is a number, the current y position will be changed to that position. If it is NIL, the current position is simply reported. To have the function report the current y position in EXAMPLE.WlNDOW, type: (DSPYROSITIoN NIL ExlPLE.WIK-~) 30.2.3 MOVETO The function NOVETO always changes your position in the displaystream. It expects three arguments: (~-ET0 xystream) x is the new x position in the display stream y is the new y position in the display stream stream is the display stream. The examples so far have used a window. DISPLAYSTREAMS 30 5 ----- Next Message ----- Date: 19 Dec 91 16:30 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.163054pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11682>; Thu, 19 Dec 1991 16:30:58 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 16:30:54 -0800 From: John Sybalsky -----RFC822 headers----> 31. FONTS This chapter explains fonts and fontdescriptors, what they are and how to use them, so that you can use functions requiring fontdescriptors You have already been exposed to many fonts in Interlisp-D. For example, when you use the structure editor, DEdit, (See Section 11.3.), you noticed that the comments were printed in a smaller font than the code, and :hat CLlSP words (See Section 13.1, Page 13.1.) were printed in a darker font than the other words in the function. These are only -me of the fonts that are available in Interlisp-D. In addition to the fonts that appear on your screen, Interlisp-D uses fonts for printers that are different than the ones used for the screen. The fonts used to print to the screen are called DlSPLAYFONTS. The fonts used for prining are called INTERPRESSFONTS, or PRESSFONTS, depending on the type of printer. 31.1 What makes up a FONT? Fonts are described by family, weight, slope, width, and size. This section discusses each of these, and describes how they affect the font you see on the screen. Family is one way that fonts can differ. Here are some examples of how "family" affects the look of a font: CLASSIC This family makes the word "Able" look like this: Able MODERN This family makes the word "Able" look like this: Able TERMINAL This family makes the word "Able" look like this: Able Weight also determines the look of a font. Once again, "Able" will be used as an example, this time only with the Classic family. A font's weight can be: BOLD and look like this: Able MEDIUM or REGULAR and look like this: Able The slope of a font is italic or regular. Using the Classic family font again, in a regular weight, the slope affects the font like this: ITALIC looks like this: A file REGULAR looks like this: Able FONT5 311 1 WHAT MAKES UP A FONT? The width of a font is called its "expansion". It can be COMPRESSED, REGULAR, or EXPANDED. Together, the weight, slope, and expansion of a font specifies the font's "face". Specifically, the face of a font is a three element list: (weight slope expansion) To make it easier to type, when a function requires a font face as an argument, it can be abbreviated with a three character atom. The first specifies the weight, the second the slope, and the third character the expansion. For example, some common font faces are abbreviated: MRR This is the usual face, MEDIUM, REGULAR, REGULAR; MlR makes an italic font. It stands for: MEDIUM, ITALIC, REGULAR; BRR makes a bold font. The abbreviation means: BOLD, REGULAR, REGULAR; BIR means that the font should be both bold and italic. BIR stands for BOLD, ITALIC, REGULAR. The above examples are used so oflen, that there are also more mnemonic abbreviations for them. They can also be used to specify a font face for a function that requires a face as an argument. They are: STANDARD This is the usual face: MEDIUM, REGULAR, REGULAR. It was abbreviated above, MRR; ITALIC This was abbreviated above as MR, and specifies an italic font; BOLD of course, makes a bold font. It was abbreviated above, BRR; BOLDlTALIC means that the font should be both bold and italic: BOLD, ITALIC, REGULAR. It was abbreviated above, BlR. A font also has a size. It is a positive integer that specifies the height of the font in printers points. A point is, on an 1108 screen, about 1/72 of an inch. On the screen of an 1186, a point is 1/80 of an inch. The size of the font used in this chapter is 10. For comparison, here is an example of a TERMINAL, MRR, size 12 font: Able. 31.2 Fontdescriptors, and FONTCREATE For InterlispD to use a fort, it must have a fontdescriptor. A fontdescriptor is a data type in InterlispD that that holds all the information needed in order to use a particular font. When you print out a fontdescriptor, it looks like this: [fKTDEIRIPToRji,s~0 Fontdescriptors are created by the function F0NTCREATE. For example, (F~TCREATE `flEL~1lCA 12 `~o) J: 31.2 FOflff FONTDESCRlPTORS, AND F0NTCREAlE creates G fontdescriptor that, when used by other functions, prints in HELVETIEA BOLD size 12. Interlisp-D functions that work with fonts Gxpect a fontdescriptor produced with the FONTCREATE function. The syntax of FONTCREATE is: (F0KTCREATE family size face) Remember from the previous section, face is either a three element list, (weight slope expansion), a three character atom abbreviation, e.g. MRR, or one of the mnemonic abbreviations, e.g. STANDARD. If FONTCREATE is asked to create a fontdescriptor that aJready exists, the existing fontdescriptor is simply returned. 31.3 Display Fonts - Their files, and how to find them Display fonts require files that contain the bitmaps used to print each character on the screen. All of these files have the extension .DlSPLAYFONT. The file name itself describes the font style and size that uses its bitmaps. For example: ~ERK12.DISPUYFRT contains bitmaps for the font family MODERN in size 12 points. Initially, these files are on floppies. The files that are used most offen should be copied onto a directory of your hard disk or fileserver. Usually, this directory is called FONTS. Wherever you put your .DISPLAYFONT files, you should make this one of the values of the variable DISPLAYFONTDIRECTORIES. Its value is a list of directories to search for the bitmap files for display fonts. Usually, it contains the "FONT" directory where you copied the bitmap files, the device (FLOPPY), and the current connected directory The current connected directory is specified by the atom NIL. Here is an example value of DISPLAYFONTDIRECTORIES: . - 11 NIL r~':PI:='pL"'yFnNTDIP,ECTBP,IES i;!Io= ` . =PFIL -FnNT~." (D.~fr):!.LIT'.PFIL fFLnPF"')- NIL!i 9! Figure 31.1. A valuefor the atom DISFLAYFONTDIRECTORIES When looking for a .DiSPl.AYFONl file. `he system will check the F0NT directory on the hard disk. then the top level directory on the hard disk, then the floppy. then the current connected dir8rtory FONTS 313 INTERPRESS FONT5 - THEIR FILES, AND HOW TO FIND THEM 31.4 _ Interpress _ Fonts _ - _ Their files, _ and _ how _ to _ find _ them Interpress i5 the format that is used by Xerox laser printers. These printers normally have a resolution that is much higher than that of the screen: 300 points per inch. In order to format f,Ies appropriately for Output on such a printer, Interlisp must know the actual size for each character that is to be printed. This is done through the use of width files that contain font width information for fonts in Interpress format. Initially, these files (with extension .WD) are on floppies. The files should be copied onto a directory of your hard disk or fileserver. For Interpress fonts, you should make the location of these files one of the `values of the variable INTERPRESSFOliToIRFcTORIES. Its value is a list of directories to search for the font viidths files for Interpress fonts. Here is an example value of INTERPRE5SFONTD1RECT0R1ES: . 11 1'lIL i?IbdTEFPfiET=:FnN7PIP:EcTnRI~,~ .i=~~.~ j:~,~ Figure 31.2. A value for the atom INTERPREssFoNTDIREcToRIEs When looking for a font widths file for an Interpress font, Interlisp-D will cne~ the hard disk. 31.5 Functions for Using Fonts 31.5.1 F0NTPR0P Looking at Font Properties It is possible to see the properties of a fontdescriptor. This s done with the function FONTPROP. For the following examples, the fontdescriptor used will be the one returned by the function (DEFAULTFONT `DISPLAY). In other words, the fontdescriptor examined will be the default display font for the system. There are many properties of a font that might be useful for you. Some of these are: FAffILY To see the family of a font descriptor, type: (FKTPliP (DEFAllLTFoIT `DISPLAY) `f~ILY) SIZE As above, this is a positive integer that determines the height of the font in printer's points. As an example, the SIZE of the current default font is: 31 ~n FUNCTIONS FOR USING FONTS . 11 NIL Gi,(FnNTPROP (DEF~ULTFONT PI~~PLAY) `.,,:`IZE\ is, Figure 31.3. The value of (he font property SIZE of the default font ASCENT The value of this property is a positive integer, the maximum height of any character in the specified font from the baseline (bottom). The top of the tallest character in the font, then, will be at (BASELINE # ASCE[VT - l). For example, the ASCENT of the default font is: 1 11 NIL A 4' ,. I!FnNTPROP if OfF"' ULTFnNT PI~,~PL~","!' `~e-rENT:! q.- A,5~: Figure 31.& The value of the font property ASCENT of the default font DESCENT The DESCENT is an integer that specifies the maximum number of points that a character in the font descends below the baseline (e.g. letters such as "p" and "g" have tails that descend below the baseline.). The bottom of the lowest character in the font will be at (BASELINE - DESCENT). To see the DESCENT of the default font, type: (FOkTPROP (DEfAULTFKT `DISPUY) `DESr:KT) HEIGHT HE IGHT is equal to t'DESCENT-ASCENT). FACE The value of this property is a list of the form, (weight slope expansion). These are the weight, slope, and expansion described above. You can see each one separately, also. Use the property that you are interested in, VEIGHT, SLOPE, or EXPANSION, instead of FACE as the second argument to FONTPROP. For other font properties, see the Interlisp-D Reference Manual, VolumeIll, Pages 27.27 - 27.28. 31.5.2 5TRlNGWlDTH It is offen useful to see how much space is required to print an expression in a particular font. The function STRINGVIDTH does this. For example, type: (STRIKWIDTH "NV thera! (`L'NTcREAT `UCli 10 `STAKDARD)) The number returned IS how many leff to right pixels would be needed if the string were printed in this font. (Note that this F0NTS 31 S FUNCTIONS FOR USING FONTS doesn't ju5t work for pixels on the screen, but for all kinds of streams. For more information about streams, see Chapter 30.) Compare the number returned from the example call with the number returned when you change GACHA to TlMESROMAN. 31.5.3 DSPFONT - Changing the Font in One Window The function DSFF0NT changes the font in a single window. As an example of its use, first create a window to write in. Type: (SETQ ~.FoNT.WINnaN (CttEATE*)) in the Interlisp-D Executive window. Sweep out the window. To print something in the defau!t font, type: (PRINT `HELLO N'f'.FO*T.wIN~) in the Interlisp-D Executive window. Your window, MY. FONT.WlNDOW, will lOOk sOmething like this: HELL Figure 31.5. HELLO, printed with the default font in MY.FONT.WINOOW Now change the font in the window. Type: (DSPF0NT (FONTCREATE `HELVETICA 12 `SOLD) *T.FONT.WINDaN) in the Interlisp-D Executive window. The arguments to FONTCREATE can be chang~-'d to create any desired font. Now retype the PRINT statement, and your window will look somethinglikethis: - . HIL .q.'~;, PSPFnNT (FnNTrRE~TE `HEL";'ET1L~ 1:' BnLPt M't.FnNT.vINPnWj l:FnNTPE~1'RIpTnfl~#?.~,. 1-' 14 "4 3~~iPR[NT `HELLO MY.fnflr.l]INoniff) HELLO Flgur 31.L The font iiiMY FONT WINDow, changed Notice the font has been changedl J. 31.6 FONtt FUNfll0NS FOR USING F0Nff 31.5.4 _ Globally Changing _ Fonts _________________________ There is a library package to globally change the fonts in all the windows. To use it, first load BlG.DCOM. (See Section 8.6, Page 8.4 for how to load a file.) To change fonts in 311 windows using the package BlG.DCOM, type (KE*Fo*T ~ There are four keywords for size of fonts to specify. They are HUGE, BIG, STANDARD, and MEDIUM. For example: (*E*FKT `BIG) sets the fonts in ALL the windows to be a larger size. Note: this package changes the fonts everywhere, including the editor window and system merius It is particularly useful to change the size of the font for demos. 31.5.5 Personalizing Your Font Profile Interlisp-D keeps a list of default font specifications. This list is used to set the font in all windows where the font is not specifically set by the user (Section 31.5.3). The value of the atom FONTPROFILE is this list. (See Figure 31.7.) A FONTPROFILE is a list of font descriptions that certain system functions access when printing output. It contains specifications for big fonts (used when pretty printing a function to type the function name), small fonts (used for printing comments in the editor), and various other fonts. F0NTS 317 I FUNCTIONS FOR USING FONTS - . . . 43-FJtlTPRUF[LE l!' PF"ULTFClFlT i ,.` `,`cH4 LLT; ;`,`~LHk aj t'TEPMINk'L Sij `.`BlLPF'lNT :` (HLlETIl='n' Jo E,PP.;1 `lHL':'TIC" L=' BPP,i `llJPEPtl in' ~FF) `,`LITTLFC'NT 3 ;ttEL'?ErIC" ,3,' iHE - c 1,1p; i.'BIC-FCNT ~ llnof - hlIP"i `HE 1.=' BpP.i `.`HEL''ET .- it' epp:' `.`IrtoPEPrl - (J\EPFONT 6oLOFElNT (C.lMllENTFANT LITTLFi)r'T `.`L"M0P~"FL1flT 61 eFol~! T i.'.='r'3TEMFeNT',i `.`CLI~T'~PFUNT BC'LOF')1'lf i.' CH,,N'3'EF')HT i,'PPETT\'1?.Cit1F(ji~T Bl.lLC'FllltlT i.'FCPlTL DEf"'ULTFEitiT" ,`Fel'JT" 6cLDFclllT; t.'FCt'1T3 LITTLEFciflT; `.f1tlTJ BlCF(.'r'lT',i i.'FElNT~ S `,`HEL',"ETl;,,' 10 81P'. `lHEL'y'ETlc,, `3 61A) CfillDEPN a 81P:; t.'FilNTB 6 `HEL";'ET16~ 10 8RP',i `.`HEL'."ET1C~ L'~ BAA"' llPEPN 3 BAA] Fi)NT7 ? c"'i'.H~ 1:'' :e-"Ln~ 1:!' `.TERMItl,'L 1;''.,,!, 5a, Figure 31.7. The value of the atom FONTPROFlLE The list is in the form of an a5sociation list. The font class names, (e.g. DEFAULTFONT, Or SOLDFONT) are the keywords of the association list. When a number follows the keyword, it is the font number for that font class. The lists following the font class name or number are the font specifications, in a form that the function FONTCREATE can use. The first font specification list affer a keyword is the specification for printing to windows. The list, (GACHA 10), in the figure above is an example of the default specification for the printing to windows. The last two font specification lists are for Press and Interpress file printing, respectively. For more information, see the lnterlis~D Reference Manual, Volume 3, Chapter 27. Now, to change your default font settings, change the value of the variable FONTPROFIL. lnterlis~D has a list of profiles stored as the value of the atom FONTDEFS. Choose the profile to use, then install it as the default FONTPROFILE. Evaluate the atom FONTDEFS and notice that each profile list begins with a keyword. (5ee Figure 31.8.) This keyword corresponds to the size of the fonts included. BIG, SMALL, and STANDARD are some of :he keywords foT profiles on this list - SMALL and STANDARD appear in Figure 31.8. 31.8 F0Htt 1 FUNCTl0NS F0R USING F0NTS [[SMALL cFONTPRQFlLE (DEFALlLTFONT l (TERMINAL 8) tUaCHA 8) `TERmIHAL 8)) (8OLPFL~NT (Mi!OERtt 3 BRR) \HELY'FTIL" 6 BRR) ltl\flEfiH 8 BRfi)) 1 LITTLEFCNT ~` (hllCiERN 8 MIR) lHEL'v'ETIu'"' 8 MIR) iMCiPERN ,q, MIR)) (TIN\FONT a IhllOERN a) to,'F..H" ~) hll!nEr.H 6 iBIrFnNT j (;`,nPF~N 1P BFR) `!HE".'LETIcA lG BRF) hlrPEF;11 16 ~RP) iTE.\TFrNT r `.,6LM"~'.lC 13) `iTIhlE:'Pnn,,"N In) i.LL~.~:IC lot) !`TE\TBnLPFnNT tCL~~CIC 16 Bfifi.,' ~TIME.';RL1MAN 1P BfiR) tP:LAc.~,Ir 16 BRR] [cT~NPARP (FDNTPrnPiLE (PEF"ULTFnNT 1 Figure 31.8. Part of the value of the atom FONTDEFS To install a new profile from this list, follow the following example, but insert any keyword for BIG. To use the profile with the keyword BIG instead of the standard one, evaluate the following expressioh (FOMTSET `BIG)) Now the fonts are permanently replaced. (That is, until another profile is installed.) FONIS 319 1 r. FUNCTIoNS FOR USING F0NTS [[SMALL cFONTPROFlLE (OEFALlLTPONT i (TERMINAL 6) \*U'acHA 6) tTERmIHAL 6)) (SOLPFL~NT (M'1.OERN 6 BRR) tHELY'FTIL"' 6 BRR) Ihll!OER'H qL BRR)) i LITTLEFCNT ~" (MlcERN 6 MIR) lHEL'v'ETIu'"' 6 MIR) iMCiOERN ,q MIR)) (TIN\FONT a IhllOERN a) U,,F.,H" aj hll!nEr.N 6 iBIrFnNT J `;;1nPF~N 1P BFR) `!HE".'LETICA 16 BRF) hlrPEF;i1 16 ~fiP) !` i TE.\TFrNT r 6L"~.'lc 1'~) liTIhlE;:pnMN In) i.LL~.>:Ic In:) !`TE\TBnLPFnNT t CLA~C 1 16 Bfifi jTIME.';ROMAN 1P BfiR) \P:LAc.~.Ir 16 BRR] [<~T~NPARP (FlNTPRnPILE (PEF"ULTFnNT 1 Figure 31.8. Part of the value of the atom FONTDEFS To install a new profile from this list, follow the following example, but insert any keyword for BIG. To use the profile with the keyword BIG instead of the standard one, evaluate the following expressioh (FlTSET `BIG)) Now the fonts are permanently replaced. (That is, until another profile is installed.) FONTS 319 1 ----- Next Message ----- Date: 19 Dec 91 16:35 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.163540pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11681>; Thu, 19 Dec 1991 16:35:49 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 16:35:40 -0800 From: John Sybalsky -----RFC822 headers----> 12. YOUR INlT FILE Interlisp-D has a number of global variables that control the environment of your 1108 or 1186. Global variables make it easy to customize the environment to fit your needs. One way to do this is to develop an "INlT' file. This is a file that is loaded when you log on to your machine. You can use it to set variables, load files, define functions, and any other things that you want to do to make the Interlisp-D environment suit you. Your lnit fi'e could be callecl INlT, INlT.LlSP, INlT.USER, or whatever the convention is at your site. There is no default name preferred by the system, it just looks for the files listed in the variable USERGREETFILES, (see below). Check to see what the preference is at your site. Put this file in your directory. Your directory name should be the same as your login name. The INlT file is loaded by the function GREET. GREET is normally run when Interlisp-D is started. If this is not the case at your site, or you want to use the machine and Interlisp-D has already been started, you can run the function GREET yourself. If your user name was, for example, TURlNG, then you would type: (GREET `TURIK) This does a number of things, including undoing any previous greeting operation, loading the site init file, and loading your init file. Where GREET looks for your INlT file depends on the value of the variable USERGREETFiLES. The value of this variable is set when the system's SYSOUT file is made, so check its value at your site! For example, its value could be: - . - 11 NIL 3'USERGREETFlLE5 iiiFD5hl,(.LI5PFILES~ USER ;INIT.LISPJ t1rD5h','.LI5PFILE.>.~INIT.LI5PJ t',rFLoPPY',INIT.L15J i,rosh','LI5PFILES\ USER .`INIT.U5ERJ ((O.h L FILE.' .INlT.U.'ER'j i(D. . FIL SER INIT:, i(FLUPP';'j I F~ure12.1. ApcsstblevalueofUSERGREETFILES. In each place you see, "> USER >", the argument passed to GREET is substituted i:ito the path. This is your login name if you are just starting Interlisp-D. For example, the first value in the list would have the system check to see whether there was a file, [DSX]TURlNG>lNlT.LlSP. No error is generated if you do not hcve an INlT file, and none of the files in USERGREETFZLE$ are found. Y0UR NIT FILE 12 1 MAKING AN INlT FILE 12.1 Making an lnit File As described in Section 11.5, Page 11.7, each lnterlis~D program file has a global variable associated with it, whose name is formed by appending "COMS" to the end of the root filename. For any of the standard INlT file names, the variable INlTCOMS is used. To set up an init file, begin by editing this variable. First, type: (SETQ I*ITco*s `((VAnS))) Now, to edit the variable, type: (l z:sicn*s> A DEdit window wiil appear. This DEdit window is the same as the one called with the function OF, and described in Section 11.3, Page 11.4. This chapter will assume that you know how to use the structure editor, DEdit. The CONS variable is a list of lists. The first atom in each internal list specifies for the file package what types of items are in the list, and what it is to do with them. This section will deal with three types of lists: VARS, FILES, and P. Please read about others in the lnterlis~D Reference Manual, Volume ll, Chapter 17. The list that begins with "VAR5' allows you to set the values of variables. For example, one global variable is called DEditLinger. Its default value is T, and means that the Ddit window won't close affer you exit DEdit. If it is set to NIL, then the DEdit window will be closed when you exit DEdit. To set it to NIL in your INlT file, edit the VARS.list so that it looks like this: . . .1 1 1 ((`,4R.$' iOEdirLinger NlLii Her B~,are G~lete Replace `3yvitch ( ) (out Undo Find 5'rtap Rcprint Edit EditCam Break Eva Exit Figur 12J. Setting the variable DEdI tLi nge r in INITCONS. Notice that inside the vars list, there is yet another list. The firtt item in the list is the name of the variable. It is bound to the value of the second item. There are many other variables that you can set by adding them to the VARS list. Some of these variables are described in Chapter 43, and many others can be found in the lnterlis~D Reference Manual. If you want to automatically load files, that can be done in your init file also. For'exampe, if you always want to load tho Library file SPY. DCOM, you can load it by editing tho INlTC0MS variable to list the appropriate file in th list starting with FILES: 12.1 YOUR NIT flu MAKING AN INlT FILE (yARS iflEdlr.Llngr NIL') After ff1LE~ _ ~PY\) Betott Delete Replace Switch ()out Undo Find Swap Reprint Edit EddCom Breok Evol Exit FluFe 12.3. INITCOMS changed to load the file SPY.DCOM Other files can also be added by simply adding their names to this FILES list. Another list that can appear in a COMS list begins with "P". This list contains Interlisp-D expressions that are evaluated when the file is loaded. Do not put DEFINEQ expressions in this list. Define the function in the environment, and then save it on the file in the usual way (see Section 11.6, Page 11.7). One type of expression you might want to see here, however, is a F0NTCREATE function (see Section 31.2, Page 31.2). For example, of you want to use a Helvetica 12 BOLD font, and there is not a fontdescriptor for it normally in your environment, the appropriate call to FOffTCREATE should be in the `P" list. The INlTCOMS would look like this: . ((VARS (DditLingcr NIL)) After (FILES SPY) Betone (~ JFoHTcREaTE (QUOTE Delcte HEL\'ETIl',, Repace ~vyitch 1- ~juoTE _ SOL") _ .1)) (`out Undo Find Swap Reprint Edit EdiKom Break Eva Exit Figure 12.4. ltulTcOfl5editedtoincludeacalltofOffTCflEATE. The form will be evaluated when thelNlT file is loaded. To quit, exit from DEdit in the usual way. When you run the function NAKEFiLES (See Section 11.6, Page 11.7.), be sure that you are connected to the directory (see Section 8.7, Page 8.4) where the INlT file should appear. Now when GREET is run, your init file will be loaded. Y0UR INlT FILE 123 ----- Next Message ----- Date: 19 Dec 91 16:48 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.164812pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11686>; Thu, 19 Dec 1991 16:48:22 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 16:48:12 -0800 From: John Sybalsky -----RFC822 headers----> r 33. MASTERSCOPE Masterscope is a tool that allows you to quickly examine the structure of complex programs. As your programs enlarge, you may forget what variables are global, what functions call other functions, and so forth. Masterscope keeps track of this for you. Suppose that JVTO is the name of a file that contains many of the functions involved in a complex system and that LlNTRANS is the file containing the remaining functions. The first step is to ask Masterscope to analyze these files. These files must be loaded. All Masterscope queries and commands begin with a period followed by a space, as in AliLYZE FKS a Jvro The ANALYZE process takes a while, so the 5ystem prints a period on the screen for each function it has analyzed. (See Figure 33.1) 82&. ANALYZE FNS ON 3VTO . d.,ne D3~. aNALY?E FNS ON LIH1R'N~ . 1a,lA.l Figure 33.1. The Interlisp-D Executive Window affer anolyzing the files If you are not quite sure what functions were just analyzed, type the file's CONS variable (See Section 11.5, Page 11.7.) into the Interlisp-D Executive Window. The names of the functions stored on the file will be a part of the value of this variable. A variety of commands are now possible, all referring to individual functions within the analyzed files. Substantial variation in exact wording is permitted. Some commands are: SHoN PATHS FRDN ANY T0 ANY EDIT WERE ANY CALLS functionname EDIT WERE ANY USES variablename Wo CALLS WDN Wo CALLS functionname BY WoN IS functionname CALLED WD USES variablename AS FIELD Note that the function is being called to invoke each command. Refer to the /nterlisp-D Reference Manual for commands not listed here. Figure 33.2 shows the lnterlis~D Executive Window affer the commands wno CALLS GobbleDunp and vffo DOES JVLinScan CALL. MASTb'R'j~OPE 331 MASTEH,COPE NIL 7,.,'. 1,,.lillj O~LL;==: ,1)~8 iD.B~imp (,"c.h.~t,:r~i'TJ .J;/,j~J,J .J'.'t'r'Jet'TJ J;,'~~ 1Tij Gi>"ri'.'p~" ,,)bbl,,Ffu:h ,"jbb1~'Srririll I/dump Fiji `...,9j', "Ho clclE.. .J"i'L i `-. r, 1'"'LL (Liri.'ci-ri 1'.'Cfr.3b1A 3 -h1~J `9'A Figure 33.2. Sample Masterscope Output 33.t The SHOW DATA command and GRAPNER When the library package GRAPHER is loaded, (to load this package, type (FILESLOAD GRAPHER).) Masterscope's SHOWPATHS command is modified. The command will be changed to generate a tree structure 5howi ng how the program's functions interact instead of a tabular printout into the lnterlis~D Executive window. For example, typing: ~ PATHS FW Proce:sE. produced the display shown in Figure 33.3. .GtB.,31nT~, T L:.n;.lLl:'.Utn:P,.= ~"``-,Jt",,;r,.pj r~infr.:p it'~;r.!rPr:p r.>~>(Li;'7Uin~p..: ..~..JtL,;.l. Ofl'.JtLl;l. . `,r:L,st lET _ p-: ::J8:~inEnJ ,*.l.T.'r:. .Err.'.r Pfl!I Pr'ni.~n,.; :p~1y ~lnt~nlno Figur 33.3. SHOW PATHS Dsplay Example All the functions in the display are part of this analyzed file or a previously analyzed file. Boxed functions indicate that the function name has been duplicated in another place on the display. Selecting any function name on the display will pretty print the function in a window. (See Figure 33.4.) ij.J MAsTERscopa THE SHOW DATA COMMAND AND GRAPHER -~&lLir1wilhS hfi .~Tlo1nTwTr1no~ ~9i"~ 1n,fl~ _ ~i~or9~~~ ~~&tl1r?inith. "(s . to~~tLisi _ ~~otLirt ~~.~.~r,; ______ Pw:Llrt ~(LTT.' .` .d.~~~~; ~qLT~' f ..`PintError PTl.I Frint~nini .- upv ~inlWr,r. [LAnaPA ~propnaao'i (` cdttod: 16MAA3' L'6''d eCAn~'9SCorProp prcpneae (suR 1012C8L'k]) Figutt 33.4. Browser Printout Example. Selecting it again with the leff mOuse button will produce a dexription of the function's role in the overall system (See Figure 33.4) ~r.;l.1,'?U1n;f'.: t1BfginTW:l.riny~ ________ ,p'~~ 1"~:t,-'.Pr'~ . ~c.3v.Liiniih~t Proc&;:Eli<. _________ .. . Por;~r' ~:l=T7o. nf&r.r ~T=i Prir,t.~nir, PntWr,1fl4 GerryProp i,, - L-Qll:! inetAnC .rorPrtih 1nNl,~ lrireFiJ.,rning Din" `pe~b'c8cJ1nT;.,='tr1n0. i=~rML, 1r'"$T=~',Fr=Ce'EtlD u~' f.-cc TO cocl FlUrf 33.5. Browser Description Example. 33.2 Databasefns: Automatic Construction and Upkeep of a Masterscope Database DataBaseFns is a separate library package that allows you to automatically construct and maintain Masterscope databases of your files The package is contained in the DATABASEFNS.DCOM file. When DATABASEFNS.DCOM is loaded, a Masterscope database will be automatically maintained for every file whose.DATABASE MAST'RS~OPE 333 DATABASEFNS: _ AUTOMATIC CONSTRUCTION AND _ UPKEEP OF A MASTERSCOPE _ DATABASE property has the value YES. If this property's value is not set, you will be asked when you save the file "Do you want a Masterscope Database for this file?". Saying YES enables the DabaBaseFns to construct a Masterscope database of the file you are saving. Each time the function *AKEFILE is used on a file whose DATABASE property has a value YES, Masterscope will analyze your file and update its own database. Each file's masterscop database is kept in a separate file whose name has the form FILE. DATABASE. Whenever you load a file with a YES value for its DATABASE property, you will be asked whether you also want the database file loaded. 33.4 N~TERSCOPE 1 ----- Next Message ----- Date: 19 Dec 91 16:50 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.165058pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11688>; Thu, 19 Dec 1991 16:51:02 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 16:50:58 -0800 From: John Sybalsky -----RFC822 headers----> r 34.WHERE DOES ALL THE TIME GO? sPY SPY is an Interlisp-D library package that shows you where you spend your time when you run your system. It is easy to learn, and very useful when trying to make programs run faster. 34.1 Now to use Spy with the SPY Window The function SPY. BUTTON brings up a small window which you will be prompted to position. Using the mouse buttons in this window controls the action of the SPY program. When you are not using SPY, the window appears as in Figure 34.1. Figure 34.1. The SPY window when SPY 15 not being rnsed. Ts use SPY, click either the leh or middle mouse button with the mouse cursor in the SPY window. The window will appear as in Figure 34.2, and means that SPY is accumulating data about your program. Figure 34.2. The SPY wir.oow when SPY is being used To turn off SPY affer the program has run, again click a mouse button in the SPY window. The eye closes, and you are asked to position another window. This window contains SPY's results. An ex~nr'ple of result window is shown in Figure 34.3. WHERE D0ES ALL THE TIME G0' SPY 341 1 HOW TO USE SPY WITH THE SPY WINDOW - TIrE. l _ `3~~"H[P _ J~. _ [WIT. _ IN~&F.-1!~ 17 _ `..TIrtP. PplJl'.E,-'-'.. - a ~i~~~~pT~&- . REPE,,TE&L'.EV~rn EJ~rn 1 EF.UFE 7 _ ---RR.. h.JPillU~. _ fPlLE- -. 4 f, IPP,9R.h `F..n 4 Figure 34.3. The window produced afler running $PY This window i5 scrollable in two directions horizontally, and vertically. This is useful, since the whole tree does not fit in the Winoovv. If a part that you want to see is not shown, then you can scroll the window to show the part you want to see. 34.2 How to use SPY from the Lisp Top Level SPY can also be run while a specific function or system is being used. To do this, type the function WITH. SPY: (VITN.sPY form) The expression used for form should be the call to begin running the function or system that SPY is to watch. If you watch the SPY window, the eye will blink! To see your results, run the function SPY. TREE. To do this, type: (SPY.TREE) The results of the last running of SPY will be displayed. If you do this, and 5PY.TREE returns (no SPY saiples have been gathQ red), your function ran too fast for SPY to follow. 34.3 Interpreting SPY's Results Each node in the tree is a box that contains, first, the percentage of time spent running that particular function, and second, the function name. There are two modes that can be used to display this tree. The default mode is cumulative. In this mode, each percentage is the amount of time that function spent on top of the stack, plus the amount of time spent by the functions it calls. The second mode is individual. To chango the mode to individual, point to the title bar of the window, and press the middle `n.ouse button. Choose Individual from the menu that appears. In this mode, the percentage shown is the amount of time th3t the function spent on the top of the stack. 34.2 WHERE 00E5 ALL TN5 ylMff G0? spY 1 lNTERPREn~ SPY'S RESuLtt ----- Next Message ----- Date: 19 Dec 91 16:40 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.164041pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11685>; Thu, 19 Dec 1991 16:40:51 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 16:40:41 -0800 From: John Sybalsky -----RFC822 headers----> 32. THE INSPECTOR The Inspector is a window-oriented tool designed to examine data structures. Because Interlisp-D is such a powerful programming environment, many types of data structures would be difficult to see in any other way. 32.1 Calling the Inspector Take as an example an object defined through a sequence of pointers (i.e. a bitmap on the property list of a window on the property list of an atom inaprogram.) To inspect an object named NAME, type: (IKSPECT `~) If NAME has many possible interpretations, an option menu will appear. For example, in Interlisp-D, a litatom can refer to both an atom and a function. For example, if NAME was a record, had a function definition, and had properties on its property list, then the menu would appear as in Figure 32.1. PRG'PS FklS FIELD;=~ Figure 32.1. Option Window For Inspection of NAME If NAME were a list, then the option menu shown in Figure 32.2 would appear. The options include: calling the display editor on the list; calling the ~ editor (the "Typing Shortcuts",Chapter 6); seeing the list's elements in a display window. If you choose this option, each element in the list will appear in the right column of the Inspector window. The left column of the Inspector window will be made up of numbers. (See Figure 32.3.) inspecting the list as a record type (this last option would produce a menu of known record types). If you choose a record type, the items in the list will appear in the right column of the Inspector window. The left column of the Inspector window wili be made up of the field names of the record. P~rI~.lErtr Tr:rE'1ir. Inip~rr A~are'iJrd Figure 32.2. Option Window For Inspection of Lirt THE INSPECTOR 321 USING THE INSPECTOR 32.2 Using the Inspector If you choose to display your data structure in an edit window, simply edit the structure and exit in the normal manner when done. If you choose to display the data structure in an inspect window, then follow these instructions: To select an item, point the mouse cursor at it and press the left mouse button. Items in the right column of an Inspector window can themselves be inspected. To do this, choose the item, and press the center mouse button. Items in the right column of an Inspector window can be changed. To do this, choose the corresponding item in the left column, and press the center mouse button. You will be prompted for the new value, and the item will be changed. The sequence of steps is shown in Figure 32.3. . 1 INPEu'T-ME-TOOl 1ie-,PErT-hl-TQi32 a IN.u'FErT-11E-TQO3 The item in the lefl column is selected, and the middle mouse button pressed. Select the SET option from the menu that pops up. The ev..pre:1Un re3J will be E `/~LuQred. cHaflGE&-'.:~"LlJ4 1 ]N.=~Pfi=.T-rrtE-Tc~i 2 1H".~pEcT-ttE-TI:i12 a Il You will then be prompted for the new value. Type it in. 6 1 [flPEQT-ME-TOOi 2 [Y.~PECT-1'1E-TOfl2 a CH~Pl,'ED-'.;~LUE The item in the right column is updated to the value of what you typed in. Figure 32.3. The sequence of steps involved in changing a value in the right column of an Inspector window. 32.3 Inspector Example This example will use ideas discussed in 5ection 37.1. An example, ANlMALGItAPH, is created in that section. You do not need to know the details of how it was created, but the structure will be examined in this chapter. If you type (IKSPECT lI~.6liPN) and then choos th Inspect option from th menu, a display appars as shown in Figure 32.4. ANlMAL.G~PH is being J 33.J TkElNSPECT~ lff5PE~0R EXAMPLE inspected as a list. Note the numbers in the left column of the inspectorwindow. 1 i't'fI.~H ~ NIL NIL --j `BIRD .~ NIL NIL T .i, NIL 4 NIL 5 NIL 6 NIL ? NIL ,q NIL 9. NIL 1A. NIL 11 NIL 1~" NIL Figure 32.4. Inspector Window For ANIMAL GRAPH, inspected as a list. If you choose the "As A Record" option, and choose "GRAPH" from the menu that appears, the inspector window looks like Figure 32.5. Note the fieldnames in the leff column of the inspectorwindow. UP"PH.CH"NCEL"eELFfl NIL CR"PH. INVEP.TL~BELFN NIL CR"PH. IFlvEp.TBCiROERFN NIL CR"PH.FONTcH"NoEFN NIL bRaPH.&ELETELINKFN NIL CRaPH~D&LINkFN NIL URAPH.cLETENC~UEFN HIL bRAPH. .oo&NUGEFN NIL oRoPH.Mo$ENUoEFN NIL DIREcTEDfLG NIL o"IDE~FLo T C.RuPHNi:DE.~ (i.'fl:H & NIL NIL --! `BIPP & NIL GIL Figure 32.5. Inspector Window For ANlMAL.GRAPH, inspected as an instance of a "GRAPH" record. The remaining examples will use ANlMAL.GRAPH inspected as a list. When the first item in the Inspector window is chosen with the leff mouse button, the Inspector window looks like Figure 32.6. 1 ` _ 1 T 3 NIL 4 NIL 5 NIL r~ NIL NIL NIL 9 NIL 1H NIL 11 NIL 1- NIL Figure 32.6. Inspector Window For ANlMAL.GRAPH With First Element Selected When you use the middle mouse button to inspect the seiected list element, the display looks like Figure 32.7. THE INSPECTOR 32 j INSPECTOR EXAMPLE 1 1 T 3 NIL = 4 PIlL 5 NIL 1 iFIfl 1.19:' 44) PIlL NIL HIL --! `BIRD (.192 29) NIL PIlL NIL -- b' NIL 3 (CAT (.is ,J NIL NIL NIL PIlL j. (&UU i"1;39 7) PIlL PJIL NIL NIL ~ ((rh,,"trtffi,,"L GJU c~T) 199 14j fiL J.IlL 9 PIlL 6 ((,,"PIIMAL ; BIRD FI.Jh) .`..~ C9. IlL 19 PIlL 11 NIL 1'.' NIL Figuro 32.7. Inspertor Window For ANlMAL.GRAPH and For the First Element of ANIMALGRAPH How you can see that 5iX items make up the list, and you can further choose to inspect one of these items. Notice that this is also inspected as a list. As usual, it could also have been inspected as a record. Select item 5 - MAMMAL DOG CAT - with the leff mouse button. Press the middle mouse button. Choose "Inspect" to inspect your choice as a list. The Inspector now displays the values of the structure that makes up MAMMAL DOG CAT. (See Figure 32.8.) 1 (h1~~MMkL GJ, lIT) 2 ilvjy' lJ) NIL 4 NIL 5 NIL 6 45 7 is o i',Do': ClIT',i !) (c"'NlMlIL .~ BlRP FI."3Hj iR, (Fi=1NTCLn"',~r'j7R!i?e..764 ii hllIPtMlIL 12 NIL Figure 32.8. Inspector Window for Element S From Figure 32.7 That Begins ((MAMMAL DOG CAT). 32.A THE INSPECTOR ----- Next Message ----- Date: 19 Dec 91 16:54 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.165444pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11690>; Thu, 19 Dec 1991 16:54:53 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 16:54:44 -0800 From: John Sybalsky -----RFC822 headers----> . . . . . . . r 34.WMERE DOES ALL THE TiME GO? sPY SPY is an InterlispD library package that shows you where you spend your time when you run your system. It is easy to learn, and very useful when trying to make programs run faster. 34.1 How to use Spy with the SPY Window The function SPY. BUTTON brings up a small window which you will be prompted to position. Using the mouse buttons in this window controls the action of the SPY program. When you are not using SPY, the window appears as in Figure 34.1. Figure 34.1. The SPY window when SPY is not being used. Ts use SPY, click either the Iefl or middle mouse button with the mouse cursor in the SPY window. The window will appear as in Figure 34.2, and means that SPY is accumulating data about your program. sPY Figure 34.2. The SPY wirdow when SPY is being used To turn off SPY atter the program has run, again click a mouse button in the SPY window. The eye closes, and you are asked to position another window. This window contains SPY's results. An example of result window is shown in Figure 34.3. WHERE D0ES ALL THE TIME Go' SPY 341 l How TO USE SPY `KlTH THE SPY WINDOW rp.i)rE? ~L,:,,.*~. IrtP.rpji=.E;'';. . U TI~REhpYfi&. J!l!i .EV~fi)f. `:. 1 FEPEA~OL.EU~rn -`1 EJ~J .l ER.GURE 7 _ .BN..F i;f;i.iU~. _ Fpi'cf:11 .. j IPP,fl~.hJri.ii.iN 4 Fiqure 34.3. The window produced affer running SPY Tljis window i5 scrollable in two directions, hOrizontaily, and vertically. This is useful, since the whole tree does not fit in the wiroow. If a part that you want to see is not shown, then you can scroll the window to show the part you want to see. 34.2 How to use SPY from the Lisp Top Level SPY can also be run while a specific function or system is being used. To do this, type the function VITH SPY: (WITH.sPY form) The expression used for form should be the call to begin running the function or system that SPY is to watch. If you watch the SPY window, the eye will blink! To see your results, run the function SPY. TREE. To do this, type: (SPY.TREE) The results of the last running of SPY will be displayed. If you do this, and SPY.TREE returns (no SPY saiples have been gathered), your function ran too fast for SPY to follow. 34.3 Interpreting SPY's Results Each node in the tree is a box that contains, first, the percentage of time spent running that particular function, and second, the function name. There are two modes that can be used to display this tree. The default mode is cumulative. In this mode, each percentage is the amount of time that function spent on top of the stack, plus the amount of time spent by the functions it calls. The second mode is individual. To chango the mode to individual, point to the titlo bar of the window, and press the middle .~ouse button. Choose Individual from the menu that appears. In this mode, the percentage shown is the amount of time that the function spent on the top of the stack. 34.2 WHERE nQE$ ALL THE TIME G0? SPY 1 1NTERPREfl~ SPY'S RESULTS To look fit G iingle branch of the tree, point with the mouse curtor at one of the nodes of the tree, and press the right mouse hutton. From the menu that appeatt, choose the option SubTree. Another SPY window will appear, with just this branch of the tree in it. Another way to focus within the tree is to remove branches from tlie tree. To do this, point to the node at the top of the branch you would like to delete. Press the middle mouse button, and choose Delete from the menu that appears. There are also different amounts of "merging" of functions that can be done in the window. A function can be called by another function more than once. The amount of merging determines where the subfunction, and the functions that it calls, appear in the tree, and how offen. (For a detailed explanation of merging, see the Lisp Library Packages Manual.) WHERE DOES ALL THE TIME GO' sPY 343 1 ----- Next Message ----- Date: 19 Dec 91 16:59 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.165929pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11691>; Thu, 19 Dec 1991 16:59:33 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 16:59:29 -0800 From: John Sybalsky -----RFC822 headers----> tilL.. 36. FREE MENUS Free Menu is a library package that is even more flexible than the regular menu package. It allows you to create menus with different types of items in them, and will format them as you would like. Free menus are pai~icularly useful when you want a "fill in the form" type interaction with the user. Each menu item is described with a list of properties and values. The following example will give you an idea of the structure of the description list, and some of your options. The most commonly used properties, aiid each type of menu item will be described in Section 36.2 and Section 36.3. 36.1 An Example Free Menu Free menus can be created and formatted automatically! It is done with the function FN. FORNATNENU This function takes one argument, a description of the menu. The description is a list of lists; each internal list describes of one row of the free menu. A free menu row can have more than one item in it, so there are really lists of lists of lists! It really isn't hard, though, as you can see from the following example: (SETQ Ex~1e*anu (F*.FORliT*EMu `(( TYPE TITLE LABEL TitlesDonothing) TYPE 3STATE LABEL Ex~1e3State)) ( TYPE EDITSTART LABEL PressToStartEd;ting ITEMS (EDITE*)) (TYPE EDIT ID EDITEN LABEL )) (*IKDDMPRDPS TITLE Ex~1e Dris Nothing)))) The first row has 2 items in it; one is a TITLE, and the second is a 35TATE item. The second row also has 2 items. The second, the EDIT item, is invisible, because its label is an empty string. The caret will appear for editing, however, if the EDlTSTART item is chosen. Windowprops can appear as part of the description of the menu, because a menu is, affer all, just a special window. You can specify not only the title with WINDOWPROPS, but also the position of the free menu, using the "Ieff" and "bottom" properties, and !he width of the border in pixels, with the "border" property. Evaluating this expression will return a window. You can see the menu by using the function OPENW. The following example illustrates this: FREE MENUS 361 1 AN EXAMPLE FREE MENU 6i,'~T~ E;mD.1c1d~nij .;F(,7,fJp,[4,,$~]~fJ.J\J ,, . T' Gf TITLE LBEL T ir1~,flN~rr T .T"rE =-`T."TE L"bEL E:.Jm"1c5tJcs'!'. . `FE =,IT:..THF:T LEL =r~'=Tu'"r~t'tEditing lTEfl= cOlTEN' T"E `IT ID EDITEm L~8EL , "`..ililci=,..''=cipT=.. TITLE ` ;,.,1";c Din' 1'luthlnj.'? .TT9'i i)pf)liff molMertiJ'i f.hi1ltlDu',V'r#' j64 Figure 36.1. An example free menu The next example shows you what the menu looks like affer the EDlTSTART item, PressToStartEditing, has been chosen. T,r f~"=.Oi=i1'1,=irhin3 E':,mp1~,='.=r.,r~ P~'~='"'TJT..,rTEJ1r1r1.j A Figure 36.2. Free menu affer the EDlTSTART item has been chosen The following example shows the menu with the 3STATE item in its T state, with the item highlighted (In the previous bitmaps, it was in its neutral state.) . c l 1 1 .1-=':.OiJ-tljrhini=! ,:`T'='Ot..;rrE'liriiJ, FigUre 36.3. Free menu with the 35TATE .tem in its T state Finally, Figure 36.4 shows the 35TATE item in its NIL state, with a diagonal line through the item T1r le.".OcNorhing E..::r'~ _ 1 _ = _ `.`..,i.~ Rrn. ;``, T,St.arrEdir,iri, . . . . . Figure 36.& Free menu with the 3STATE item in its NIL state If you would like to specify the layout yourself, you can do that too. See the Lisp Library Packages Manual for more information. 36.2 Parts of a Free Menu Item There are 8 different types of items that you can use in a free menu. No matter what type, the menu item is easily described by a list of properties, and values. Somo of the properties you will use most often are: 36.2 FREE MENUS 1 PARTS OF A FREE MENU ITEM LABEL Required for every type of menu item. It is the atom, string, or bitmap that appears as a menu selection. TYPE One of eight types of menu items. Each of these are described below. MESSAGE The message that will appear in the prompt window if a mouse button is held down over the item. ID An item's unique identifier. An ID is needed for certain types of menu items. ITEMS Used to list a series of choices for an NCHOOSE item, and to list the ID's of the editable items for an EDITSTART item. SELECTEDFN The name of the function to be called if the item is chosen 36.3 Types of Free Menu Items Each type of menu item is described in the following list, including an example description list for each one. Momentary This is the familiar sort of menu item. When it is selected, the function stored with it is called. A description for the function that creates and formats the menu looks like this: (TYPE WEKTARY LABEL Blink-K-Rin9 *ES~6E Blinks the screen and rings bells sLEcTEDFK RIKBELLS) TOGGL This menu item has two states, T and NIL. The default state is NIL, but choosing the item toggles its state. The following is an example description list, without code for the SELECTEDFN function, for this type of item: (TYPE T~6LE LABEL hi~isab1e sELEcTEDFN changeIl*State) 3STATE This type of menu item has 3 states, NUIETRAL, T, AND NIL Neutral is the default state. T is shown by highlighting the item, and NIL is shown with diagonal lines. The following is an example description list, without code for the SELECTEDFN function, for this type of item: (TYPE 3STATE LABEL correctprograAllofflospelling sELEcTEDFli ToggleSpellingcorrection) TITLE This menu item appears on the menu as dummy text. It does nothing when chosen. An example of its description: (TYPE TITLE LABEL Choices:") NWAY A group of items, nnly one of which can be chosen at a time. The items in the NWAY group should all have an ID field, and the ID's should be the same. For exan1Fle, to set up a menu that would allow the user to chose betvveei Helvetica, Gacha, Modern, and Classic fonts, the descriptions might look like this (Once again, without the code for the SELECTEDFN): (TYPE lAY ID F~Tc~Ic' LABEL blvetica sELEcTEDFN changeFont) FREE MENUS 36) I TYPES OF FREE MENU ITEMS (TYPE NVAY ID FOQTCKICE LABEL Gacha SELECTEDF (TYPE lAY ID F05TliCriC0ha,~n8efont) LABEL Modern SELECTEDFli Chan2eFont) (TYPE KAY ID fONTCHOIC LABEL Classic SELECTEDFN Changefont) NCHOOSE This type of menu item is like NWAY except that the choices are given to the user in a submenu. The list to specify an NCHOOSE menu item that is analogous to the NWAY item above might look like this: (TYPE MC~SF LABEL FontChoices ITEMS Helvotica Gacha Modern Classic) SELECT DfK Changefont) EDlTSTART When this type of menu itein is chosen, it activates another type of item, an EDIT item. The EDIT item or items associated with an EDlTSTART item have their lD's listed on the EDlT5TART's ITEMS property. An example description list is: (TYPE EDITSTART LABEL Function to add? ITEMS (Fn)) EDIT This type of menu item can actually be edited by you. It is often associated with an EDlT5TART item (see above), but the caret that prompts for input will also appear if the item itself is chosen. An EDIT item follows the same editing conventions as editing in Interlisp-D Executive window: Add Characters by typing them at the caret. Move the caret by pointing the mouse at the new position, and clicking the leff button. Delete Characters from the caret to the mouse by pressing the right button of the mouse. Delete a character behind the caret by pressing the back space key. Stop editing by typing a carriage return, a Control-X, or by choosing another item from the menu. An example description list for this type of item is: (TYPE EDIT ID Fn LABEL ) 36.4 FREENEMus 1 ----- Next Message ----- Date: 19 Dec 91 17:05 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.170545pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11694>; Thu, 19 Dec 1991 17:05:54 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 17:05:45 -0800 From: John Sybalsky -----RFC822 headers----> 37. THEGRAPHER 37.1 Say it with Graphs Grapher is a collection of functions for creating and displaying graphs, networks of nodes and links. Grapher also allows you to associate program behavior with mouse selection of graph nodes. To load this package, type (FILESL~ GliPHER) Figure 37.1 shows a simple graph. i `iLk w.F."PH `N M'L.l;R"PH `NlM'L r;P"Pff' ,(.h,,lINGUY!:w',1513.y1 14' -FIH . NIM"L, BIRO Figure 37.1. A Simple Graph In Figure 37.1 there are six nodes (ANIMAL, MAMMAL, DOG, LAT, FISH, and BIRD) connected by five links. A GRAPH is a record containing several fields. Perhaps the most important field is GRAPHNODS - which is itszlf a list of GRAPHNODE records. Figure 37.2 illustrates these data structures The window on top contains the fields from the simple graph. The window on the bottoms an inspection of the node, DOG. THEGRAPHER 371 SAY lTWlTH GRAPHS i9'1, I ET `NI1'1,,L.CR~PH'.i Ilvl,l = `-#"=9,1j~'j','3 GPPH.cr"ilLEL,,'BELFN `IL 1'R"pH. Ili'!ERTLBELFN 1.lIL H. Ifl.ERTBDPDEPFN tilL H.FGtTi'.HNoEFPl 1lIL , rP'PH,t.lL/ElllDEFbl IL . OIRECTECFLi, (ilL rp..'Pflbll) ~ I.F = , tilL III `.B.IP.D NIL ff IL . NOOEBOPOER `ilL tiODEL,,'BEL loo , , `tODEFONT ~`FOIiT ` . .OtlffO&EO- It'lL - . t,iODE'.~,lOTH `.4, , IiUOEL6EL.'-H~OE lIL , NODELfiELBlTIrt,iP IIL , I,iUDEPUITlClI.l in NODE ID 300 Figure 37.2. Inspefling a Graph and a Node The GRAPHNODE data structure i~ described by its text (NODElD), what goes into it (FROMNODES), what leaves it (TONODES), and other fields that specify its looks. The basic model of graph building is to create a bunch of nodes, then layout the nodes into a graph, and finally display the resultant graph. This can be done in a number of ways. One is to use the function NODECREATE to create the nodes, LAYOUTGRAPH to lay out the nodes, and SHOWGRAPff to display the graph. The primer shows you two simpler ways, but please see the Library Packages Manual for more information about these other functions. The primer's first method is to use SHOWGRAPH to display a graph with no nodes or links, then interactively add them. The second is to use the function LAYOUT5EXPR, which does the appropriate NODECREATES and a LAYOUTGRAPH, with a list. The function SHQWGRAPH displays graphs and allows you to edit them. The syntax of SHOWGffAPH is (~liPH graph window lefibuttonfn middlebuttonfn topjustiffflg alloweditflg copybuttoneventfn) Obviously the graph structure is very complex. Here's the easiest way to create a graph. ~.6liPN III) lS5~liPN P.6liPH 5Y Sraph KIL NIL NIL T) Figur 37.3. My Graph 37.2 THEGRAPHER .J SAY IT WITH GRAPHS You will be prompted to create a small window as in Figure Figure 37.3. This graph has the title My Graph. Hold down the right mouse button in the wiridow. A menu of graph editing operations will appear as in Figure 37.4. D;Ier~ Link &=h~~n9e ib P.I ljbel g,nill~.r l&'bel l~.ro~.r Dir~..ct~.i1 SIdPg ~ BoidP.r `h;~d" `Tr"P Figure 37.4. A Menu of Graph Editing Operations Here's how to use this menu to: Add a Node Start by selecting Add Node. Grapher will prompt you for the name of the node (See Figure 37.5.) and then its position. Figure 37.5. Grapher prompts for the name of the node to add affer Add Node is chosen from the graph editing menu. Position the node by moving the mouse cursor to the desired location and clicking a mouse button. Figure 37.6 ,hows the graph with two nodes added using this menu. ~irr-ri~tle s~~'ondnod~ Figure 37.6. Two nodes added to MY GRAPH using the graph ed it.q.g menu AddaLink Select Add Link from the graph editing menu The Prompt window will prompt you to select the two nodes to be linked. (See Figure 37.7.) Do this, and the link will be added. o . first-node ,.ccond-node Figure 37.7. The Prompt window will prompt you to select the two nodes to link. THEGRAPHER 37.3 SAY IT WITH GRAPHS DeleteALink Select Delete Link from the graph editing menu. ThePrompt window will prompt you to select the two nodes that should no longer be linked. (See Figure 37.8.) Do this, and the iink will be deleted. r _ `rr-n>';1~ ;`~"or,'j-nod; FigUre 37.8. The Prompt window will prompt you to Seje~~ `.1 ryo nodes that shouid no longer be linked. Delete A Node Select Delete Node from the graph editing menu. The Prompt window will prompt you to select the node to be aeleted. (See Figure 37.9.) Do this, and the node will be deletea. firs. r-nod" ,L'0fl'S1-fl0d~ Figure 37.9. The prompt to delete a node Moving a Node Select "Delete Node" from the graph editng menu. Choose a node pointing to the it with the mouse cursor, and pressing and holding the leff mouse button. When you move the mouse cursor, the node will be dragged along. When the node is at the new position, release the mouse button to deposit the node. The commands in this menu are easy to learn. Experiment with them! 37.2 Making a Graph from a List Typically, a graph is used to display one of your program's data structures. Here is how that is done. LATOUTSEXPR takes a list and returns a GRAPH record. The syntax of the function is (UYWTSEXPR sexpr format ~xing font motberd penonald fam;lyd) For example: (u~T10Q AKIliL.TREE `(MIlL (l'~ ~ CAT) BIli FISH)) AaIliL.6liN 37.4 THEGRApHER MAKING A GRAPH FR0M A LIST b~YouTSE*PR AKIliL .TREE HoRIZ0NTALi~) (Eli N AHIliL.GliPN Nj Grpb NIL KIL a T) This is how Figure 37.1 was produced. 37.3 Incorporating Grapher into Your Program The Grapher is designed to be built into other programs. It can call functions when, for example, a mouse button is clicked on a node. The function SHOWGRAPff does this: (~liPH graph window leflbuttonfn middlebuttonfn topjusti~Rg alloweditflg copybuttoneventfn) For example, the third argument to SHOWGRAPH, leftbuttonfn, is a function that is called when the lefl mouse buttoii 15 pressed in the graph window. Try this: (DEFIKQ (~.LEfT.BUTT0N.FUNCTI0N (TNE.6liPHNooE THE.GliPH.wIN~) (INSPECT TNE.6liPNNooE))) (~liPH FlILY.61PN Inspoct&bla fiily (F~TIK N".LEFT.BUTTa.FuNCTIo*) liIL NIL T) In the example above, liT.LEFT.BUTTON. FUNCTION simply calls the inspector. Note that the function should be written assuming it will be passed a graphnode and the window that holds the graph. Try adding a function of your own. 37.4 More of Grapher Some other Library packages make use of the Grapher. (Note: Grapher needs to be loaded with the packages to use these functions.) NASTERSCOPE: The Browser package modifies the Masterscope command, . SHOW PATHS, so that its output is displayed as a graph (using Grapher) instead of simply printed. GRAPHZOOM: allows a graph to be redisplayed larger or smaller automatically. THEGRAPHER 375 ----- Next Message ----- Date: 19 Dec 91 17:11 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.171147pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11697>; Thu, 19 Dec 1991 17:11:55 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 17:11:47 -0800 From: John Sybalsky -----RFC822 headers----> 41. RESOURCE MANAGEMENT 41.1 Naming Variables and Records You will find times when one environment simultaneously hosts a number of different programs. Running a demo of several programs, or reloading the entire Interlisp-D environment from floppies when it contains several different programs, are two examples that could, if you aren't careful, provide a few problems. Here are a few tips on how to prevent problems: If you change the value of a system variable, ffENUHELDVAIT for example, or connect to a directory other than (DsK), write a function to reset the variable or directory to its original value. Run this function when you are finished working. This is especially important if you change any of the system menus. Don't redefine Interlisp-D functions or CLl5P words. Remember, if you reset an atom's value or function definition at the top level (in the Interlisp-D Executive Window), the message (Some.Crucial.Function. Or. Variable redefined), appears. If this is not what you wanted, type UNDO immediately! If, however, you reset the value or function definition of an atom inside your program, a warning message will not be printed. Make the atom names in your programs as unique as possible. To do this without filling your program with unreadable names that noone, including you, can remember, prefix your variable names with the initials of your program. Even then, check to see that they are not already being used with the function BOUNDP. For example, type: (~P B&ckgroundhnu) This atom is bound to the menu that appears when you press the leff mouse button when the mouse cursor is not in any window. BOUKDP returns T. BOUNDP returns NIL if its argument does not currently have a value. Make your function names as unique as possible. Once again, prefixing function names with the initials of your program can be helpful in making them unique, but even so, check to see that they are not already being used. GETD is the Interlisp-D function that returns the function definition of an atom, if it has one. If an atom has no function definition, GETO returns NIL. For example, type: (GEffl `CAR) RESOURCE MANAGEMENT 411 NAMING VARIABLES AND RECORDS A non-NIL value i~ returned. The atom CAR already has a function definition. Use complete record field names in record FETCHes and REPLACEs when your code is not compiled. A Complete record field name is a list Consisting of the record declaration name and the field name. Consider the following example: REC0RD N~ FIRST LAST)) SETQ Nyfflrn create Nl FIRST `John LAST `~ith)) FETCH (~ FIRST) OF Mylrn) Avoid reusing names that are field names of Interlisp-D System records. A few examples of system records follow. Do not reuse these names. RECORD RE6IOl (LEFT RoTTOl WIDTH NEIGHT)) RECORD POSITIK xC00RD RECORD Ili6E~ BITliYCP00RD))) When you select a record name and field names for a new record, check to see whether those names have already been used. Call the function RECLOOK, with your record name as an argument, in the lnterlis~D Executive Window. (See Figure 41.1.) If your record name is already a record, the record definition will be returned; otherwise the function will return NIL. - . 11 4..O:(fi.ECL)OY~ FB;'~ITiON) !`P\ECCPO PO~1TI)N [T\L~'.lp:E)F;,P "So'1P~D! (8Nfl (LlSTP O~TUM\ (NUl18P~P !`,C4l'~ D~TUfi1:)) (i\"('~'Th1\\j (NUMBER (CDR OurOIl] 5ik(P~ECLOUff N~,~P~~) NIL 5~'~E Figuv 41.1. RECLOOK returns tbe record definition If ts argument is already declared as a record, NIL otne~ise. Call the function FIELDLOOK with your new field name in the InterlispD Executive Window. (See Figure 41 2.) If your field name is already a field name in another record, the record definition will be returned; otherwise the function will return NIL. 412 RESOURCE MANAGEMENT 1 NAMING VARIABLES AND RECORDS , 1 ~.4'+(fIELOLOOft Y96COORD) ((RECORD pO'e.ITION (:~`COORO \COORD) [T'Y'PE" (~NP (LIvt~TP O4TUbl! (NUblBERP (CAR D,iTUhl\ I:.NUMBERP ("OR D~TUftt] (S\'~~.TEb1)\) 55~(FIELPLOPh .ip~;\ NIL 58- Figure 41.2. FIELDLOOK returns the record definition if ItS argument Is already the field ofarecord.NILothe~ise 41.2 Some Space and Time Considerations In order for your program to run at maximum speed, you must efficiently use the space available on the system. The following section points out areas that you may not know are wasting valuable space, and tips on how to prevent this waste. Often programs are written so that new data structures are created each time the program is run. This is wasteful. Write your programs so that they only create new variables and other data structures conditionally. If a structure has already been created, use it instead of creating a new one. Some time and space can be saved by changing your RECORD and TYPERECORD declarations to DATATYPE. DATATYPE is used the same way as the functions RECORD and TYPERECORD. (See Chapter 24.) In addition, the same FETCH and REPLACE commands can be used with the data structure DATATYPE creates. The difference is that the data structure DATATYPE creates cannot be treated as a list the way RECORDs and TYPEREC0RDs can. 41.2.1 Global Variables Once defined, global variables remain until Interlisp-D is reloaded. Avoid using global variables if at all possible! One specific problem arises when programs use the function 6ENSYff. In program development, many atoms are created that may no longer be useful. Hints: Use (DELDEF atomname `PKP) to delete property lists, and (DELDEF atomname `vARS) RESOURCE MANAGEMENT 413 ----- Next Message ----- Date: 19 Dec 91 17:15 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.171603pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11560>; Thu, 19 Dec 1991 17:16:06 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 17:16:03 -0800 From: John Sybalsky -----RFC822 headers----> SOME SPACE AND TIME CONSIDERATIONS to have the atom act like it is not defined. These not only remove the definition from memory, but also change the appropriate f 11 eCOffS that the deleted object was associated with so that the file package will not attempt to save the object (function, variable, record definition, and so forth) the next time the file is made. Just doing something like (SETQ (arg at~nm) `~IE) looks like it will have the same effect as the second DELDEF above, but the SETQ doesn't update the file package. If you are generating atom names with GENSYN, try to keep a list of the atom names that are no longer needed. Reuse these atom names, before generating new ones. There is a (fairly large) maximum to the number of atoms you can have, but things slow down considerably when you create lots of atoms. When possible, use a data structure such as a list or an array, instead of many individual atoms. 5uch a structure has only one pointer to it. Once this pointer is removed, the whole Structure will be garbage collected and space reclaimed. 41.2.2 Circular Lists If your program is creating circular lists, a lot of space may be wasted. (Note that many cross linked data structures end up having circularities.) Hints when using circular lists: Write a function to remove pointers that make lists circular when you are through with the circular list. If you are working with circular lists of windows, bind your main window to a unique global variable. Write window creation conditionally so that if the binding of that variable is already a window, use it, and only create a new window if that variable 15 unbound or NIL. Here is an example that illustrates the problem. When several auxilIary windows are built, pointers to these windows are usually kept on the main window's property list. Each auxilIary window also typically keeps a pointer to the main window on its property list If the top level function creates windows rather than reusing existing ones, there will be many lists of useless windows cluttering the work space. Or, if such a main window is closed and will not be used again, you will have to break the links by deleting the relevant properties from both the main window and all of the auxiliary windows first. This is usually done by putting a special CLOSEFli on the main window and all of its auxiliary windows. 41.2.3 When You Run Out Of Space Typically, if you generato a lot of structure! that won't get garbage collected, you will eventually run out of space. The important part ii being aNe to track down those structures and 4I.4 REsouRcE MANAGEMENT I SOME SPACE AND TIME CONSIDERATIONS the code that generates them in order tO become more space efficient. The Lisp Library Package GCHAX.DCOM can be used to track down pointers to data structures. The basic idea is that GCHAX will return the number of references to a particular data structure. A special function exists that allows you to get a little extra space 50 that you can try to save your work when you get toward the edge (usually noted by a message indicating that you should save your work and sysin a fresh Lisp). The GAINSPACE function allows you to delete non-essential data structures. To use it, type: (liIKSPACE) into the Interlisp-D Executive Window. Answer "N" to all questions except the followi ng. Delete edit history Delete history list. Delete values of old variables. Delete your MASTERSCOPE datadase Delete information for undoing your greeting. Save your work and reload Lisp as soon as possible. RESOURCE MANAGEMENT 41 S ----- Next Message ----- Date: 19 Dec 91 17:23 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.172334pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11625>; Thu, 19 Dec 1991 17:23:37 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 17:23:34 -0800 From: John Sybalsky -----RFC822 headers----> 42. SIMPLE INTERACTIONS WITH THE CURSOR, A BITMAP, AND A WINDOW The purpose of this chapter is to show you how to build a moderately tricky interactive interface with the various lnterlis~D display facilities. In particular how to move a large bitmap (larger than 16 x 16 pixels) around inside a window To do this, you will change the CURSORINFN and CURSOROUTFN properties of the window. If you would also like to then set the bitmap in place in the window, you must reset the BUTTOKEVENTFN. This chapter explains how to create the mobile bitmap. 42.1 An Example Function Using GETMOUSESTATE One function that you will use to "trace the cursor" (have a bitmap follow the cursor around in a window) is GETNOUSESTATE. This function finds the current state of the. mouse, and resets global system variables, such as LASTM0USEX andLASTMOUSEY. As an example of how this function works, create a window by typing (SETQ EzMPLE.wIN~ (CREATEI)) into the Interlisp-D Executive window, and sweeping out a window. Now, type in the function (DEFIKEQ (PRIKTC00RDS (V) P~TPRI*T ( ~TuouSEx ., . US~EY )) BLocK) 6E~SESTATE))) This function calls GETNOUSESTATE and then prints the new values of LASTNOUSEX and LASTMOUSET in the promptwindow. To use it, type (WIKraoPRoP EXlPLE .ilI*~ `CURSD~EDFK `PRIaTC00RDS) The window property CURSORffOVEDFN, used in this example, will evaluate the function PRINTCOORDS each time the cursor is moved when it is inside the window. The position coordinates of the mouse cursor will appear in the prompt window. (See Figure 42.1.) SIMPLE INTERACTIONS M'ITH THE cuRsoR. A BlTMAP, AND A WINDOW 42 f I AN EXAMPLE FUNcTION USING GETMOUSE5TATE Figure 42.1. The current position coordinates of the mouse cursor are shown in the prompt window 42.2 Advising GETMOUSESTATE For the bitmap to follow the moving mouse cursor, the function GETKOUSESTATE is advised. When you advise a function, you can add new commands to the function without knowing how it is actually implemented. The syntax for advise is (RISE fn when where what) fn is the name of the function to be augmented. when and where are optional arguments. when specifies whether the change should be made before, affer, or around the body of the function. The values expected are BEFORE, AFTER, or AROUND. what specifies the additional code. In the example, the additional code, what, moves the bitmap to the position of the mouse cursor. The function GETNOUSESTATE will be ADVISEd when the mouse moves into the window. This will cause the bitmap to follow the mouse cursor. ADVISE will be undone when the mouse leaves the window or when a mouse button is pushed. The AOVISEing will be done and undone by changing the CURSORINFK, CURSOROUTFN, and BUTTONEVENTFK forthewindow. 42.3 Changing the Cursor Ofif laot part of tho examplo, to give th impression that a bitmap is dragged around a window, th original cursor should disappear. Try typing: (CURSOR (CURSORCRRrt (6I~PCREAtt 1 l) 1 11 2.2 SINPU NVE~CYI0NS WITH Tn: CURSOR. A StTNAP. ANO A WIHIOOW CHANGING THE CURSOR into the lnterlis~D Executive Window. This causes the original cuttor to disappear. It reappears when you type (CURSOR T) When the cursor is invisible, and the bitmap moves as the cursor moves, the illusion is given that the bitmap is dragged around the window. 42.4 Functions for "Tracing the cursor" To actually have a bitmap trace (follow) the cursor, the environment must be set up so that when the cursor enters the tracing region the trace is turned on, and when the cursor leaves the tracing region the trace is turned off. The function Establish/Trace/Data will do this. Type it in as it appears (note: including the comments will help you remember what the function does later). (DEFIKEQ Establish/Trace/rata [LANR0 (nd tracebiteap cursor/rightoffse~ cursor/heighteffse~ GCGA6P) This functlri is colld to ostablish tha dti to trac the dsirod bitaap nd is the ind~ in hich the tracing is to take place, tracebitap" is the cursor/rightoffset and ~~~50~'~~~g~~0t~~~~~5~i~~1 b~~i~~t~g~~5 hich dete~ine the hotspot of the tracing biteap. As "cursor/heightof'set and cursor/rightoffset increase the cursor hotspot :ves up and to the right. If GCGAGP is non-NIL, GcGAC ill be disabled.) (PRoG NIL (if (0R NULL nd) (NULL tracebitaap)) then (PLAYTUN (LIST (CONS 1000 4000))) (if ~&~&pRET~RN)) then (GC6A6)) Create a blank cursor.) (SSEETTQQ ~8BrnUNNKKCTliURCS0ECRtiR(soBIRllNA(CPCURRsoEARTcEREl,eT~lo)jwxc~~2~j~ Set the CURSOR IN and 0UT FNS for nd to the Jolloeing:) (*INroNPRoP nd UTE CURSORINF (FU TIrn SETUP/Tlic (WINDoNPooP nd~~TE CURSoRoUTFENNJJ (FU TIoN UNTlic/CURSOR)) (O To all",' the bita,ap to be set den in the indw bY pressing a "`ouse button, include this line. 0ther',,'ise, it is not needed) (WINnoNPRop nd (UTE RUTToNEVENTFN) (FUNCTIoN PLACEIBITNAPIINIwINrGN)) Set up Global Variables for the tracing 9eratien) (SETQ TRAcElITNAp tracebiteap) TQ RIGNTTliCE'oFFSET(oR cursor/rightoffse~ 0) 5>sfE~TQ HEIGHTTRACEIoFFSET(0R cursor/hei htoffset )) TQ 0LQBIT~PPosITIoN(BIfflPCREATE llNArnIOTN tracebitap) (SETQ TliCCwfNDoN rndj)) BITNApHEI6hT tracebiteap))) SIMPLE INTERAcT'oNs WITH THE cuRsoR. A BJTMAP. AND A WINDOW 423 1 FUNCTIONS FOR "TRACING THE CURSOR' When the function Establish/Trace/Data is called, the functions SETUP/TRACE and UNTRACE/CURSOR will be installed as the values of the window's WlNDOWPROP$, and will be used to turn the trace on and off. Those functions should be typed in, then: (DEFINEQ SETUP/TRACE [ADA nd) (O This function is and's cuRSORIKFK. It siepiy resoti th last trace position and the current tracing region. It also raadvises fiETNouSESTATE to perforn the trace function after each call.) (if TRAcEBITNAP then SETQ LAST-lPACE-XPO5 -zOo SETQ LAST-TRACE-YPOS -zooo) SETQ vNDREGIa (WINOaNPROP and (ATE REGI0N))) WIN~flROP and (ATE TliCIK) T) :ake the cursor disappear) CURSOR BLANKTRACECURSOR) ANISE QUOTE GEThOUSESTATE) QUOTE AFTER) IL (QUOTE (TPACE/CURSOR])) (Dt~EQ(UaNTRACE/CURSOR Th1s function is nd's CURsOROUTFN. The function first checks if the cursor is currently being traced; if so, it replaces th tracing biiaap aith ahat is under it and then turns tracing off by unadvislng 6ETNOUSESTATE and setting th TliCIK ainda propertj of TRACEWINOoO TO NIL.) (if (VIN~PnOP TRACEWINOON(QUOTE TliCIK)) then (BITBLT 0LOBITNAPPOSITION o o (scREENBIllNAP) IPLUS CAR ffDRE6ION)LAST-lRACE-xPOS) (IPLUS 1CADR :DREGIOffo )usT-TlicE-YPos)) (WINOoePRoP lliCEMINOON(QUOTE TRACIK) NIL)) replace the original cursor shape) (CURSOR T) unadvise 6E~sESTATE) (U~"'ISE (QUOTE 6ETNOUSESTAlE])) The function SETUP/TRACE has a helper function that you must also type in. It is TRACE/CURSOR: (DEFINEQ (TliCE/CURSoR [LANRli NIL This functi: does th actual BITBLTln of th tracing blteap. This functla Is clled after a GE f TATE, abl tracing.) (PRoG ( xpos IDIFFERENCE LAsTNOUsEZ TRACEWINnoN RIGNTTRACE/OFF [ypoo IDIFFERENCE LAsTNOUsEY TRACE*INr~ NEIGnTTRACE/OfFSsEETiJ))) If there Is an rror In th function, ress th riKbt button to unodvls th function. This ill eep th ac in fr: locking up.) (If (LASTNOUSESTATE RIGiiT) (if ~t1h~~~ (NUNAPuISE (QUOTE 6ElS~5ESlATE))) Q xpoa LAST-TRACE-XP0s (KEO ,pea LAsl-TeACE-YPOSj) thn Restoro aht ~s undr the eld pooltla of th trc OilUp) (SITGLY OLliIllnApposITIG o o (IREE5IlliA~) 2A SIMPLE lNTE~CJ\OHS WITH THE CURSOR. A BtTMAP. AflO A WINDOW 1 F, FUNCTIONS FOR "TRACING THE CURSOR" IPLUS CAR il IPLUS CADR :DDRRESEGISIrn2LASTTRAC sv b&t 111 b undr th position of th nee trc biteap) (51 TILT SCREENBITNAP) [IPLUS (CAR aDREGIa) xpos) (IPLUS vNDREGIoa O O) BIfflLT the tracG blt:p onto th n position of th eouse.) (8ITBLT TRACEBITNAP O O ~5CREENBITNAP) (IPLUS (CAR ilDRE ION") (fPLUS (CADS ffORE6ION) ypos NIL NIL YE INPUT) (ONDTE P liT)) Savu the current position as the last trace position.) (SETQ LAST-TRACE-xPDS xpos (SETQ "LAST-TRACE-YPOS ypos The helper function for UHTRACE/CURSOR, called UNDO/TRACE/DATA, must also be added to the environment: (DEFINEQ (UNDo/TRACE/DATA [LISA NIL The purpose of this function is to turn tracing off and to free up the global variables used to trace the bitaap, so that thej can be garbage collected.) Check if the cursor is currently being traced. It so, turn it off.) UiTRACE/CURSoR) WINDoNPRDP TliCE*IN~(uTE CURSDRINFN) NIL) (WINDo*PRDP TRACEwINDDN(uTE CUR~R0UTFN) NIL) SETQ "TRACEBITsAP NIL) SETQ RIGNTTlicE/oFFsET NIL) SETQ HEIGHTTRACE/OFFSET NIL) SETQ OLDBITliPP0SITIDN NIL) SETQ TRACE*I~ NIL) Turn GCGAG on) (6C6A6 TJ)) Finally, if you inCluded the WlNDOWPROP to allow the user to place the bitmap in the window by pressing a mouse button, you must also type this function: (D[E~DEAQ, nd) UNADVISE (SETNDUSESTATE)) fBITBLT TliCEBITNAP O O SCREENBIlNAP) (IPLUS (CA 0N) xpo (IPLUS (CADR iDREGION) ypos) NIL NIL (UTE INPUT) (ATE PAINT] That's all the functions! SIMPLE INTERAcTioNs NITH THE cuRsoR, A BITMAP, AND A WIND0W 42 S p RUNNING THE FuNcTlGh5 42.5 Running the Functions To run the functions you just typed in, first set a variable to a window by typing something like (SETQ EXMPLE.wIN~ (CRATEI)) into the Jnterlisp-D Executive window, and sweeping out a new window. No'rv, set a variable to a bitmap, by typing, perhaps, (SETQ ExlPLE.BTn (DITl)) Type (Estab1isfl'Trsce'Oo~ EXlPLE.WIN~ EXlPLE.BTK)) When you move the cursor into the window, the cursor will drag the bitmap. (Note: If you want to be able to make menu selections while tracing the cursor, make sure that the hotspot of the cursor is set to the extreme right of the bitmap. Otherwise, the menu will be destroyed by the BITSLTs of the trace functions.) To stop tracing, either move the mouse cursor out of the window; press the right mouse button; call the function UNTRACE/CURS0R. u.6 SIMPLE lNTEPACT~NS WITH THE CURSOR. A SITMAP. AND A WlN00W ----- Next Message ----- Date: 19 Dec 91 17:30 PST From: sybalsky:PARC:Xerox To: sybalsky Message-ID: <<91Dec19.173105pst.43009@origami.parc.xerox.com>.?::> <----RFC822 headers----- Received: from origami.parc.xerox.com ([13.1.100.224]) by alpha.xerox.com with SMTP id <11702>; Thu, 19 Dec 1991 17:31:18 PST Received: by origami.parc.xerox.com id <43009>; Thu, 19 Dec 1991 17:31:05 -0800 From: John Sybalsky -----RFC822 headers----> r fi. OTMER RFERENCES THAT WILL 8E USEFUL TO YOU Here are some references to works that will be useful to you in addition to this primer. Some of these you have already been referred to, such as: The InterlispD Reference Manual The Library Packages Manual The User's Guide to SKETCH Thell86orllO8User'sGuide In addition, you can learn more about LISP with the books: Interlisp-D: The languago and its usage by Steven H. Kaisler. This book was published in 1986 by John Wiley and Sons, NY. Essential LISP by John Anderson, Albert Corbett, and Brian Reiser. This book was published in 1986 by Addison Wesley Publishing Company, Reading, MA. It was informed by research on how beginners learn LISP. The Little Lisper by Daniel P. Friedman and Matthias Felleisen. The second edition of this book was published in 1986 by SRA Associates, Chicago. This book is a deceptively simple introduction to recursive programming and the flexible data structures provided by LISP. LISP by Patrick Winston and Berthold Horn. The second edition of this book was published in 1985 by the Addison Wesley Publishing Company, Reading, MA. LISP: A Gentle Introduction to Syabolic Coaputation by David S. Touretzky. This book was published in 1984 by the Harper and Row Publishing Company, NY. Finally, there are three articles about the Interlisp Programming environment: Poaer Tools Tor PrograffaersbyBeauSheil. It appeared in Datamation in February, 1983, Pages 131 - 144. The Interlisp Prograffaing Environaent by Warren Teitelman and Larry Masinter. It appeared in April, 1981, in lEEE Computer, Volume 14:1, Pages 25 - 34. Prograaing In an Interactive Environaent the LISP Experience by Erik Sandewall. It appeared in March, 1978, in the ACM Computing Surveys, Volume 10:1, pages 35 - 71. Each of these articles was reprinted in the book Interactive Prog ral ng Envl ronaents by David R. Barstow, Howard E. 0THER REFERENCES THAT WILL BE USEFuL T0 You 441 I OTHER REFERENCES THAT WILL BE USEFUL TO YOU Shrobe, and Erik Sandewail. This book was published in 1984 by McGraw Hill, NY. The first article can be found on pages 19 - 30, the second on pages 83 - 96, and the third on pages 31 80. J:' ill OTHER REFERE~E5 THAT WILL 55 usEFuL TO You I ----- End Forwarded Messages ----- End of message -TIMESROMAN - -TIMESROMAN -VH(DEFAULTFONT 1 (GACHA 10) (GACHA 8) (TERMINAL 8) (POSTSCRIPT (GACHA 8))) -Omz \ No newline at end of file