rs@uunet.UU.NET (Rich Salz) (06/19/87)
Submitted by: Robert W. Baldwin <BALDWIN@XX.LCS.MIT.EDU>
Mod.sources: Volume 10, Issue 6
Archive-name: cbw/Part06
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of archive 6 (of 11)."
# Contents: foo.perm lpair.c test1.perm
# Wrapped by rs@uunet on Wed Jun 17 18:17:20 1987
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f foo.perm -a "${1}" != "-c" ; then
echo shar: Will not over-write existing file \"foo.perm\"
else
echo shar: Extracting \"foo.perm\" \(16800 characters\)
sed "s/^X//" >foo.perm <<'END_OF_foo.perm'
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X 96 -1 124 223 97 19 -1 13 43 44
X -1 38 231 7 -1 207 179 134 133 5
X -1 -1 48 160 152 93 162 -1 191 -1
X 65 103 183 -1 -1 -1 243 242 11 180
X 87 173 154 8 9 99 112 58 22 108
X199 95 77 66 -1 62 128 190 47 79
X215 109 55 -1 73 30 53 178 214 82
X201 138 206 64 240 -1 228 52 140 59
X197 -1 69 203 -1 111 137 40 -1 -1
X -1 195 212 25 -1 51 0 4 251 45
X -1 122 148 31 227 234 167 202 49 61
X219 85 46 246 -1 -1 -1 254 211 249
X144 -1 101 218 2 150 186 -1 56 -1
X -1 247 164 18 17 -1 -1 86 71 -1
X 78 -1 -1 222 120 216 226 158 102 189
X125 225 24 -1 42 159 221 188 147 155
X 23 210 26 -1 132 232 184 106 -1 -1
X -1 196 253 41 204 -1 -1 235 67 16
X 39 192 -1 32 166 -1 126 -1 157 149
X 57 28 181 -1 241 91 171 80 -1 50
X -1 70 107 83 174 -1 72 15 -1 233
X161 118 92 244 68 60 145 -1 123 110
X237 156 143 3 -1 151 146 104 76 239
X -1 12 165 209 105 177 -1 220 -1 229
X 74 194 37 36 213 -1 113 131 -1 119
X -1 98 -1 172 117 -1
X 20 122 118 119 -1 229 158 -1 223 -1
X215 -1 197 249 82 126 237 23 87 93
X 0 -1 252 17 -1 -1 -1 225 -1 163
X 52 171 -1 155 214 -1 84 -1 216 85
X 45 152 -1 181 -1 40 241 235 142 210
X -1 69 30 83 99 134 212 253 70 144
X -1 -1 234 -1 132 250 173 114 95 51
X 58 -1 73 72 175 168 211 -1 92 169
X176 166 14 53 36 39 -1 18 148 117
X129 255 78 19 110 68 151 154 101 54
X244 98 242 147 227 204 128 203 188 254
X 94 217 170 251 67 231 -1 89 2 3
X206 146 1 183 -1 209 15 150 106 90
X184 159 64 141 55 238 195 -1 162 205
X245 133 48 -1 59 165 121 103 88 -1
X127 96 41 -1 97 33 -1 -1 6 131
X187 194 138 29 167 145 81 164 75 79
X112 31 178 66 -1 74 80 -1 172 -1
X -1 43 224 123 130 236 -1 160 108 246
X192 230 190 222 161 136 -1 12 200 213
X198 239 248 107 105 139 120 -1 247 125
X 49 76 56 199 34 10 38 111 233 -1
X -1 -1 193 8 182 27 -1 104 240 5
X191 115 -1 218 62 47 185 16 135 201
X228 46 102 -1 100 140 189 208 202 13
X 65 113 22 57 109 91
X 90 49 26 132 156 140 212 129 -1 122
X198 -1 97 148 38 79 25 154 80 -1
X214 216 248 184 161 16 2 107 66 168
X 33 -1 195 30 -1 -1 65 -1 14 84
X222 -1 123 53 136 47 69 45 -1 1
X125 -1 134 43 -1 102 145 126 238 194
X 78 232 138 246 224 36 28 225 -1 46
X130 215 120 188 119 105 231 209 60 15
X 18 87 185 176 39 160 182 81 -1 158
X 0 151 235 192 183 200 118 12 174 -1
X106 -1 55 -1 -1 75 100 27 249 187
X163 242 -1 230 254 205 179 190 96 74
X 72 -1 9 42 241 50 57 228 142 7
X 70 206 3 149 52 227 44 220 62 245
X 5 221 128 186 244 56 204 -1 13 133
X -1 91 197 165 17 -1 4 180 89 -1
X 85 24 193 110 199 153 -1 -1 29 255
X177 247 226 -1 98 252 83 170 237 116
X157 191 86 94 23 82 143 109 73 219
X117 181 93 162 59 32 -1 152 10 164
X 95 -1 250 239 146 115 131 -1 217 77
X234 -1 6 251 20 71 21 208 -1 189
X137 141 40 253 64 67 172 135 127 240
X113 76 61 -1 210 92 -1 178 58 203
X229 124 111 -1 144 139 63 171 22 108
X202 213 175 223 114 169
X 60 -1 26 79 203 204 122 -1 15 97
X -1 238 133 33 159 8 165 145 27 191
X192 69 250 -1 -1 183 2 18 50 65
X218 57 143 13 -1 -1 -1 93 116 213
X -1 199 -1 171 109 74 -1 177 56 -1
X 28 -1 -1 196 -1 227 48 31 80 221
X 0 248 202 103 233 29 140 -1 170 21
X216 164 137 190 45 189 -1 193 188 3
X 58 160 155 181 176 -1 186 104 111 225
X198 125 -1 37 -1 -1 252 9 231 223
X169 -1 255 63 87 154 -1 -1 152 44
X201 88 -1 -1 179 118 38 -1 115 161
X247 123 6 121 187 91 -1 240 241 239
X197 207 -1 12 -1 185 138 72 136 -1
X 66 -1 234 32 150 17 254 -1 -1 226
X144 -1 108 -1 105 82 228 172 173 14
X 81 119 -1 -1 71 16 208 246 242 100
X 68 43 157 158 -1 -1 84 47 229 114
X -1 83 -1 25 230 135 86 124 78 75
X 73 19 20 77 245 -1 53 130 90 41
X210 110 62 4 5 244 211 131 166 219
X200 206 220 39 -1 -1 70 -1 30 209
X212 59 -1 99 232 89 149 55 156 178
X184 98 224 64 142 236 235 -1 11 129
X127 128 168 249 205 194 167 120 61 243
X 22 -1 96 -1 146 102
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
END_OF_foo.perm
if test 16800 -ne `wc -c <foo.perm`; then
echo shar: \"foo.perm\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f lpair.c -a "${1}" != "-c" ; then
echo shar: Will not over-write existing file \"lpair.c\"
else
echo shar: Extracting \"lpair.c\" \(14095 characters\)
sed "s/^X//" >lpair.c <<'END_OF_lpair.c'
X/*
X * Letter pair and equivalence class guessing.
X *
X * Bob Baldwin, May 1985.
X */
X
X#include <stdio.h>
X#include <math.h>
X#include "window.h"
X#include "terminal.h"
X#include "layout.h"
X#include "specs.h"
X#include "cipher.h"
X
X
X#define DEBUG FALSE
X#define AUTOREPEAT 1 /* Number of times to repeat guess loop. */
X
X#define LPBLABEL1 "Bigram guess, level %6.3f, prob %6.3f -- Wait"
X#define LPBLABEL2 "Bigram guess, level %6.3f, prob %6.3f -- Done"
X#define LPBHELP "F3 enters guess, ^G undoes it."
X
X
Xextern char mcbuf[];
Xextern ecinfo gecinfo;
Xextern ec_init();
Xextern lpbdraw(), lpbfirst(), lpbenter(), lpbundo();
X
X/* Gloabal State. */
Xkeyer lpbktab[] = {
X {CACCEPT, lpbenter},
X {CUNDO, lpbundo},
X {CGO_UP, jogup},
X {CGO_DOWN, jogdown},
X {CGO_LEFT, jogleft},
X {CGO_RIGHT, jogright},
X {0, NULL},
X};
X
X/* Routine invoked by user to put up the letter pair equivalence class
X * guessing window.
X * The window is drawn empty, and then filled in with the guess.
X * Return NULL if command completes ok.
X */
Xchar *lpbguess(str)
Xchar *str; /* Command line */
X{
X ecinfo *ecbi;
X int i;
X gwindow *ecb;
X float lp_accept_level, lp_prob_cutoff;
X
X ecb = &gbstore;
X ecbi = &gecinfo;
X lp_init(mcbuf, refperm(dbsgetblk(&dbstore)), ecbi);
X
X if ((i = sscanf(str, "%*[^:]: %f %*[^:]: %f",
X &lp_accept_level, &lp_prob_cutoff)) != 2) {
X return("Could not parameters.");
X }
X
X gbsswitch(ecb, ((char *) ecbi), lpbktab, lpbfirst, wl_noop, lpbdraw);
X
X sprintf(statmsg, LPBLABEL1, lp_accept_level, lp_prob_cutoff);
X gblset(&gblabel, statmsg);
X gbsclear(ecb);
X fflush(stdout);
X
X lp_autoguess(ecbi, lp_accept_level);
X decode(ecbi->ciphertext, ecbi->plaintext, ecbi->perm);
X
X sprintf(statmsg, LPBLABEL2, lp_accept_level, lp_prob_cutoff);
X gblset(&gblabel, statmsg);
X lpbdraw(ecb);
X
X return(NULL);
X}
X
X
X/* (re) Draw the window.
X */
Xlpbdraw(ecb)
Xgwindow *ecb;
X{
X int i;
X int row, col;
X ecinfo *ecbi;
X
X ecbi = ((ecinfo *) ecb->wprivate);
X row = 1;
X col = 1;
X
X for (i = 0 ; i < BLOCKSIZE ; i++) {
X if (i%LINELEN == 0) {
X wl_setcur(ecb, gbspos2row(i), gbspos2col(i));
X }
X plnchars(1, char2sym(ecbi->plaintext[i]));
X }
X
X for (i = gbspos2row(BLOCKSIZE) ; i <= GBHEIGHT ; i++) {
X wl_setcur(ecb, i, 1);
X plnchars(LINELEN, ' ');
X }
X
X for (i = 1 ; i <= GBHEIGHT ; i++) {
X wl_setcur(ecb, i, LINELEN+1);
X plnchars(ecb->wwidth - LINELEN, ' ');
X }
X
X wl_setcur(ecb, row, col);
X}
X
X
X/* First time cursor enters window.
X */
Xlpbfirst(ecb, row, col)
Xgwindow *ecb;
Xint row, col;
X{
X usrhelp(&user, LPBHELP);
X wl_setcur(ecb, row, col);
X}
X
X
X/* Enter the guess into the decryption block.
X */
Xlpbenter(ecb)
Xgwindow *ecb;
X{
X ecinfo *ecbi;
X
X ecbi = ((ecinfo *) ecb->wprivate);
X dbsmerge(&dbstore, ecbi->perm);
X wl_rcursor(ecb);
X}
X
X
X/* Undo the last guess.
X */
Xlpbundo(ecb)
Xgwindow *ecb;
X{
X ecinfo *ecbi;
X
X ecbi = ((ecinfo *) ecb->wprivate);
X dbsundo(&dbstore);
X wl_rcursor(ecb);
X}
X
X
X
X/* Guess at a block using letter pair statistics.
X * The parameter accept_level is the minimum ratio (of estmated prob
X * that the guess is right over estimate prob that some other guess
X * is right) needed to accept a guess.
X * The parameter prob_cutoff is the minimum probability (density) that
X * the guess is right. This parameter comes into play when there is one
X * guess which looks much better than the rest (i.e., has a high ratio),
X * but in fact all the guesses look pretty bad, so the program should
X * avoid picking one.
X * Modfies eci.
X */
Xlp_autoguess(eci, accept_level, prob_cutoff)
Xreg ecinfo *eci;
X float accept_level;
X float prob_cutoff;
X{
X int i;
Xreg int c;
X int ntried;
Xreg int classpos;
X int *permp;
X int repeat;
X
Xfor(repeat = 0 ; repeat < AUTOREPEAT ; repeat++) {
X ntried = 0;
X for (ntried = 0 ; ntried < BLOCKSIZE ; ntried++) {
X classpos = lp_best_pos(eci, 2);
X if (classpos == NONE)
X break;
X c = lp_best_char(eci, classpos,
X accept_level - ((repeat == 0) ? 0.0 : 0.0),
X prob_cutoff);
X if (c != NONE) {
X lp_accept(eci, classpos, c);
X }
X }
X#if (AUTOREPEAT > 1)
X for (i = 0 ; i < eci->nclasses ; i++) {
X eci->classlist[i].changed = TRUE;
X }
X#endif
X }
X}
X
X
X/* Score a guess using letter pair statistics.
X * Bigger scores are better scores. They range from 0 to 1.
X * A score of zero means the choice is not possible.
X * The result is the probability density that the guess is correct.
X * Actually, the resulting score is the product of the prob densities
X * of the first and second order statistics.
X */
Xfloat lp_cscore(gsi)
Xreg gsinfo *gsi;
X{
X extern float score2_scale, score1_scale;
X float score1, score2;
Xreg float sdev1, sdev2; /* Standard Deviation for 1st and 2nd stats. */
X int ccount;
X
X for (ccount = 0 ; gsi->cpos[ccount] != NONE ; ccount++);
X
X sdev1 = gsi_1score(gsi);
X if (sdev1 < 0.0) return(0.0);
X score1 = fexp(sdev1);
X score1 = (score1 * isqrt[ccount]) / score1_scale;
X
X sdev2 = gsi_2score(gsi);
X if (sdev2 < 0.0) return(0.0);
X score2 = fexp(sdev2);
X score2 = (score2 * isqrt[ccount]) / score2_scale;
X
X return(score1 * score2);
X}
X
X
X/* Select best plaintext value for a ciphertext equiv class.
X * The class is identified by the position in the block of one
X * of the characters in the class. The plaintext value for
X * an entire class can be specified by the plaintext value of
X * one of its members. This routine returns the best plaintext
X * value for the ciphertext character at position firstpos.
X * If there is not a clear best value, NONE is returned.
X */
Xint lp_best_char(eci, firstpos, alevel, min_prob)
Xreg ecinfo *eci;
Xint firstpos;
Xfloat alevel; /* Level to accept a guess ~= prob(right)/prob(wrong) */
Xfloat min_prob;
X{
X#if DEBUG
X int pvec[BLOCKSIZE+1];
X char str[BLOCKSIZE+1];
X#endif
X float total_score, score;
X float best_score;
X int best_char;
Xreg int c;
X int x,y;
X int class;
X float count;
Xreg gsinfo *gsi;
X gsinfo tmpgsi;
X int gssbuf[BLOCKSIZE+1];
X
X gsi = &tmpgsi;
X gsi_init(gsi, eci->plaintext, gssbuf);
X
X total_score = 0.0;
X best_score = 0.0;
X count = 0.0;
X best_char = NONE;
X
X for (c = 0 ; c <= MAXCHAR ; c++) {
X gsi_clear(gsi);
X if (gsi_class_guess(gsi, eci, firstpos, c) == 0)
X continue;
X score = lp_cscore(gsi);
X if (score > 0.0) {
X count += 1.0;
X total_score += score;
X }
X if (score > best_score) {
X best_score = score;
X best_char = c;
X }
X }
X
X#if DEBUG
X printf("Total score is %7.4f", total_score);
X printf(". Count is %4.0f.\n", count);
X#endif
X if (total_score == 0.0 || count == 0.0 || best_char == NONE) {
X#if DEBUG
X printf("NO GUESSES\n");
X#endif
X return(NONE);
X }
X#if DEBUG
X printf("Best score is %7.4f", best_score);
X printf(", which is %7.4f fraction of total", best_score/total_score);
X printf(".\n");
X
X class = eci->posclass[firstpos];
X printf("Class reliability is %d.",
X (2 * eci->classlist[class].npairs) + eci->classlist[class].nchars);
X printf(" ");
X
X decode_class(eci, firstpos, best_char, pvec);
X pvec2str(str, pvec);
X printf("The best chars are '%s'\n", str);
X#endif
X
X if ((best_score > alevel * (total_score - best_score))
X && (best_score > min_prob)) {
X return(best_char);
X }
X else {
X return(NONE);
X }
X}
X
X
X/* Accept a guess.
X * Updates the eci plaintext to reflect the characters deduced from
X * assuming that the plaintext character at position pos is pchar.
X * It updates the npairs count and used flag in the class info list.
X * The changed flag is set for positions pos-1 and pos+1 (if they exist).
X * The used flag is set for the class(es) that now have an accepted value.
X */
Xlp_accept(eci, firstpos, firstpchar)
Xreg ecinfo *eci;
Xint firstpos;
Xint firstpchar;
X{
X int firstflag; /* For macro for_pos_in_class. */
X int otherpos;
Xreg int pos;
X int x,y;
X int pchar;
X int delta;
X clinfo *firstclassp, *otherclassp;
Xreg clinfo *classp;
X
X firstpos = firstpos & MODMASK;
X firstpchar = firstpchar & CHARMASK;
X x = eci->scipher[firstpos];
X y = MODMASK & (firstpchar + firstpos);
X
X eci->perm[x] = y;
X eci->perm[y] = x;
X
X firstclassp = &(eci->classlist[eci->posclass[firstpos]]);
X firstclassp->used = TRUE;
X
X otherpos = eci->permmap[y];
X if (otherpos == NONE) {
X otherclassp = NULL;
X }
X else {
X otherclassp = &(eci->classlist[eci->posclass[otherpos]]);
X otherclassp->used = TRUE;
X }
X
X
X delta = y - x;
X for_pos_in_class(pos, firstpos) {
X pchar = MODMASK & (eci->scipher[pos] + delta - pos);
X eci->plaintext[pos] = pchar;
X if ((pos - 1) >= 0) {
X classp = &(eci->classlist[eci->posclass[pos - 1]]);
X if (classp != firstclassp) {
X classp->changed = TRUE;
X classp->npairs++;
X }
X }
X if ((pos + 1) < BLOCKSIZE) {
X classp = &(eci->classlist[eci->posclass[pos + 1]]);
X if (classp != firstclassp) {
X classp->changed = TRUE;
X classp->npairs++;
X }
X }
X }
X
X if (otherpos != NONE) {
X delta = x - y;
X for_pos_in_class(pos, otherpos) {
X pchar = MODMASK & (eci->scipher[pos] + delta - pos);
X eci->plaintext[pos] = pchar;
X if ((pos - 1) >= 0) {
X classp = &(eci->classlist[eci->posclass[pos - 1]]);
X if (classp != otherclassp) {
X classp->changed = TRUE;
X classp->npairs++;
X }
X }
X if ((pos + 1) < BLOCKSIZE) {
X classp = &(eci->classlist[eci->posclass[pos + 1]]);
X if (classp != otherclassp) {
X classp->changed = TRUE;
X classp->npairs++;
X }
X }
X }
X }
X}
X
X
X
X/* Pick the best position to do guessing.
X * Use the class info list to select the unused class that will yield
X * the most reliable guesses.
X * The changed flag is cleared to make sure that a class is not considered
X * again unless the reliability of its guesses has changed.
X * At first, all the changed flags should be set.
X * The changed flag for the selected class is cleared.
X * Returns a position or NONE.
X */
Xint lp_best_pos(eci, min_reliability)
Xreg ecinfo *eci;
Xint min_reliability;
X{
X int score;
X int best_score, best_pos;
Xreg clinfo *classp;
Xreg clinfo *endclassp;
X
X best_score = 0;
X best_pos = NONE;
X endclassp = &(eci->classlist[eci->nclasses]);
X for (classp = &(eci->classlist[0]) ; classp < endclassp ; classp++) {
X if ((classp->used) || (!(classp->changed)))
X continue;
X score = (2 * (classp->npairs)) + classp->nchars;
X if (score > best_score) {
X best_score = score;
X best_pos = classp->firstpos;
X }
X }
X if (best_score < min_reliability)
X return(NONE);
X
X if (best_pos != NONE) {
X eci->classlist[eci->posclass[best_pos]].changed = FALSE;
X }
X return(best_pos);
X}
X
X
X/* Fill in equiv class info from given ciphertext block
X * and permutation.
X */
Xlp_init(cipher, perm, eci)
Xchar cipher[];
Xint perm[];
Xreg ecinfo *eci;
X{
X int firstflag; /* Used by for_pos_in_class */
X int i,j;
X int firstpos, char_count, pair_count;
Xreg int pos;
Xreg clinfo *class;
X
X ec_init(cipher, perm, eci);
X
X for (i = 0 ; i < BLOCKSIZE ; i++) {
X eci->posclass[i] = NONE;
X }
X
X eci->nclasses = 0;
X for (i = 0 ; i < BLOCKSIZE ; i++) {
X if ((firstpos = eci->permmap[i]) == NONE)
X continue;
X char_count = 0;
X pair_count = 0;
X for_pos_in_class(pos, firstpos) {
X eci->posclass[pos] = eci->nclasses;
X char_count++;
X }
X for_pos_in_class(pos, firstpos) {
X if ((pos + 1) < BLOCKSIZE) {
X if (eci->posclass[pos + 1] == eci->nclasses) {
X pair_count++;
X }
X else if (eci->perm[eci->scipher[pos + 1]] != NONE) {
X pair_count++;
X }
X }
X if ((pos - 1) >= 0) {
X if (eci->posclass[pos - 1] == eci->nclasses) {
X /* Don't double count it. */
X }
X else if (eci->perm[eci->scipher[pos - 1]] != NONE) {
X pair_count++;
X }
X }
X }
X class = &(eci->classlist[eci->nclasses]);
X class->nchars = char_count;
X class->npairs = pair_count;
X class->firstpos = firstpos;
X class->changed = TRUE;
X if (eci->perm[i] != NONE)
X class->used = TRUE;
X else
X class->used = FALSE;
X
X eci->nclasses++;
X }
X}
X
X
X/* Initialize a guess info structure.
X * Also clears the guess buffer.
X */
Xgsi_init(gsi, pbuf, gssbuf)
Xreg gsinfo *gsi;
X int *pbuf; /* Accepted characters. */
Xreg int *gssbuf; /* Buffer for new guesses. */
X{
Xreg int i;
X
X gsi->cknown = pbuf;
X gsi->cpos[0] = NONE;
X gsi->cguessed = gssbuf;
X for (i = 0 ; i < BLOCKSIZE ; i++)
X *gssbuf++ = NONE;
X}
X
X
X/* Clear out a guess from a gsi.
X */
Xgsi_clear(gsi)
Xreg gsinfo *gsi;
X{
Xreg int *ip;
X
X for (ip = &(gsi->cpos[0]) ; *ip != NONE ; ip++) {
X gsi->cguessed[*ip] = NONE;
X }
X gsi->cpos[0] = NONE;
X}
X
X
X/* Add to a gsi with the characters deduced from assuming that
X * the character at firstpos is c.
X * If that asumption conflicts with eci->perm, then nothing is added.
X * Returns the number of characters added.
X */
Xint gsi_class_guess(gsi, eci, firstpos, c)
Xreg gsinfo *gsi;
Xreg ecinfo *eci;
X int firstpos;
X int c;
X{
X int firstflag; /* For macro for_pos_in_class. */
X int otherpos;
Xreg int pos;
X int x,y;
X int pchar;
X int delta;
X int *cposp;
X int nchars;
X
X for (cposp = &(gsi->cpos[0]) ; *cposp != NONE ; cposp++);
X nchars = 0;
X
X firstpos = firstpos & MODMASK;
X c = c & CHARMASK;
X x = eci->scipher[firstpos];
X y = MODMASK & (c + firstpos);
X
X if (perm_conflict(eci->perm, x, y))
X return(nchars);
X
X delta = y - x;
X for_pos_in_class(pos, firstpos) {
X pchar = MODMASK & (eci->scipher[pos] + delta - pos);
X if ((pchar & CHARMASK) != pchar) {
X *cposp = NONE;
X return(0);
X }
X gsi->cguessed[pos] = pchar;
X *cposp++ = pos;
X nchars++;
X }
X
X otherpos = eci->permmap[y];
X if (otherpos != NONE) {
X delta = x - y;
X for_pos_in_class(pos, otherpos) {
X pchar = MODMASK & (eci->scipher[pos] + delta - pos);
X if ((pchar & CHARMASK) != pchar) {
X *cposp = NONE;
X return(0);
X }
X gsi->cguessed[pos] = pchar;
X *cposp++ = pos;
X nchars++;
X }
X }
X *cposp = NONE;
X return(nchars);
X}
X
X
X/* Dump class table onto a stream.
X */
Xlp_dclasses(out, eci)
XFILE *out;
Xecinfo *eci;
X{
X int i;
X
X fprintf(out, "\nThere are %d classes.\n", eci->nclasses);
X for (i = 0 ; i < eci->nclasses ; i++) {
X fprintf(out, "Singles: %d, pairs: %d, First member: %d",
X eci->classlist[i].nchars, eci->classlist[i].npairs,
X eci->classlist[i].firstpos);
X fprintf(out, ", flags:");
X if (!(eci->classlist[i].used))
X fprintf(out, " not");
X fprintf(out, " used");
X fprintf(out, " and");
X if (!(eci->classlist[i].changed))
X fprintf(out, " not");
X fprintf(out, " changed");
X fprintf(out, "\n");
X }
X}
X
X
END_OF_lpair.c
if test 14095 -ne `wc -c <lpair.c`; then
echo shar: \"lpair.c\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f test1.perm -a "${1}" != "-c" ; then
echo shar: Will not over-write existing file \"test1.perm\"
else
echo shar: Extracting \"test1.perm\" \(16800 characters\)
sed "s/^X//" >test1.perm <<'END_OF_test1.perm'
X -1 -1 116 150 159 64 -1 -1 200 232
X -1 -1 63 -1 -1 95 -1 254 -1 8
X -1 -1 123 117 243 210 179 -1 119 17
X -1 46 -1 203 -1 12 -1 -1 -1 71
X -1 -1 204 -1 -1 -1 -1 -1 -1 -1
X 74 -1 202 -1 11 81 67 -1 141 213
X 66 94 -1 217 29 154 3 -1 -1 -1
X -1 -1 -1 93 -1 -1 -1 -1 173 -1
X -1 -1 -1 196 4 -1 -1 -1 70 -1
X -1 252 41 43 -1 -1 48 61 -1 38
X 20 -1 166 208 -1 -1 -1 -1 5 -1
X -1 130 -1 -1 207 -1 227 190 -1 125
X -1 -1 -1 -1 -1 -1 51 120 -1 13
X139 -1 127 246 248 18 -1 -1 136 167
X -1 113 -1 -1 244 114 -1 198 201 189
X144 22 140 -1 109 83 131 180 -1 -1
X -1 50 250 -1 37 -1 -1 242 23 214
X -1 112 -1 -1 -1 233 -1 161 188 104
X -1 103 -1 -1 89 80 -1 -1 19 85
X192 147 -1 65 199 -1 247 245 -1 60
X -1 102 -1 88 224 -1 -1 45 -1 -1
X -1 -1 -1 215 230 -1 -1 -1 -1 -1
X -1 251 -1 14 -1 -1 -1 87 -1 73
X158 -1 110 168 -1 152 197 108 133 148
X -1 -1 184 240 100 -1 111 170 183 -1
X 42 10 218 82 -1 -1
X 96 114 124 223 97 19 -1 13 43 -1
X -1 38 231 7 200 207 179 134 133 5
X100 -1 48 160 152 93 162 168 191 127
X -1 103 183 -1 252 193 243 242 11 180
X 87 173 154 8 -1 -1 112 -1 22 -1
X199 95 -1 66 163 62 128 190 -1 79
X215 109 55 245 73 -1 53 178 214 82
X201 138 206 64 240 182 228 -1 -1 59
X197 248 69 203 175 111 -1 40 -1 139
X -1 195 -1 25 217 51 0 4 251 -1
X 20 -1 148 31 227 234 167 202 -1 61
X219 85 46 246 1 135 142 254 211 -1
X144 -1 -1 218 2 150 186 29 56 169
X185 247 164 18 17 115 250 -1 71 89
X -1 205 116 222 120 -1 226 158 102 189
X125 -1 24 -1 42 159 221 188 147 155
X 23 210 26 54 132 -1 184 106 27 129
X -1 196 253 41 204 84 238 235 67 16
X 39 192 75 32 166 130 126 224 157 149
X 57 28 181 35 241 91 171 80 208 50
X 14 70 107 83 174 141 72 15 198 233
X161 118 -1 244 68 60 -1 94 123 110
X237 156 143 3 187 -1 146 104 76 239
X -1 12 -1 209 105 177 -1 220 176 229
X 74 194 37 36 213 63 113 131 81 -1
X136 98 34 172 117 -1
X -1 122 -1 119 71 229 -1 28 223 -1
X215 -1 197 -1 82 126 237 23 87 93
X -1 -1 252 17 -1 177 137 -1 7 -1
X -1 171 -1 155 -1 -1 -1 60 -1 -1
X -1 152 -1 -1 -1 -1 241 -1 142 -1
X243 69 -1 -1 99 134 -1 -1 -1 144
X 37 63 -1 61 -1 250 173 114 -1 51
X -1 4 73 72 -1 168 211 -1 92 169
X176 166 14 -1 -1 -1 -1 18 148 117
X129 -1 78 19 110 -1 151 154 101 54
X244 98 242 147 227 -1 -1 -1 188 254
X 94 217 170 251 67 231 179 89 -1 3
X -1 -1 1 183 -1 209 15 150 -1 90
X184 159 -1 141 55 238 -1 26 162 -1
X245 133 48 -1 59 -1 -1 103 88 -1
X127 96 41 186 97 33 -1 219 -1 131
X187 194 138 -1 167 -1 81 164 75 79
X112 31 178 66 -1 -1 80 25 172 116
X -1 -1 -1 123 130 236 153 160 108 246
X192 -1 190 -1 161 -1 -1 12 200 213
X198 239 248 -1 -1 -1 -1 -1 247 125
X -1 76 -1 199 -1 10 -1 111 233 157
X -1 -1 -1 8 -1 -1 -1 104 240 5
X -1 115 -1 218 -1 -1 185 16 135 201
X228 46 102 50 100 140 189 208 202 -1
X 65 113 22 -1 109 -1
X 90 49 26 132 156 140 212 -1 147 -1
X198 54 97 148 38 79 25 154 80 -1
X214 -1 248 184 161 16 2 107 66 168
X 33 112 195 30 166 236 65 155 14 84
X222 -1 123 53 136 -1 69 -1 218 1
X125 243 134 43 11 102 145 126 238 194
X 78 232 138 246 224 36 28 -1 150 46
X130 215 120 188 119 105 231 209 60 15
X 18 87 -1 176 39 160 -1 81 159 158
X 0 151 235 192 183 200 -1 12 174 101
X -1 99 55 196 207 75 -1 27 -1 187
X163 242 31 230 254 205 179 190 -1 74
X 72 233 -1 42 241 50 57 228 142 -1
X 70 -1 3 149 52 227 44 220 62 245
X 5 221 128 186 244 56 -1 8 13 133
X 68 91 197 165 17 37 4 -1 89 88
X 85 24 193 110 199 153 34 201 29 255
X -1 247 226 -1 98 252 83 -1 237 116
X -1 191 -1 94 23 -1 143 109 73 219
X117 181 93 162 59 32 103 152 10 164
X 95 167 250 239 -1 115 -1 104 217 77
X -1 -1 6 251 20 71 -1 208 48 189
X137 141 40 253 64 -1 172 135 127 -1
X113 76 61 121 -1 92 35 178 58 203
X -1 124 111 51 144 139 63 171 22 -1
X202 213 175 223 114 169
X 60 -1 26 -1 203 204 122 -1 15 97
X -1 -1 133 -1 159 8 -1 145 27 191
X192 -1 250 117 -1 183 2 18 50 65
X218 -1 143 -1 -1 -1 -1 93 -1 -1
X -1 199 -1 171 -1 74 -1 -1 -1 -1
X 28 -1 162 -1 -1 227 -1 -1 -1 221
X 0 248 -1 103 233 29 140 95 170 -1
X -1 -1 137 190 45 -1 -1 -1 -1 -1
X -1 -1 -1 181 -1 94 -1 104 111 -1
X198 -1 -1 37 85 67 252 9 231 223
X169 -1 -1 63 87 -1 -1 -1 152 -1
X201 88 180 -1 179 118 -1 23 115 161
X247 -1 6 -1 187 -1 -1 240 241 239
X197 207 -1 12 151 185 -1 72 -1 148
X 66 214 -1 32 150 17 254 251 139 -1
X144 134 108 -1 -1 -1 -1 172 173 14
X -1 119 52 -1 -1 -1 208 246 242 100
X 68 43 157 158 -1 -1 -1 -1 229 114
X112 83 -1 25 230 135 -1 124 -1 -1
X 73 19 20 -1 -1 -1 -1 130 90 41
X210 110 -1 4 5 244 211 131 166 219
X200 206 220 -1 141 -1 -1 -1 30 209
X212 59 -1 99 232 -1 -1 55 -1 178
X184 98 224 64 -1 236 235 -1 -1 129
X127 128 168 249 205 -1 167 120 61 243
X 22 147 96 -1 146 -1
X -1 -1 -1 150 223 175 -1 -1 25 204
X -1 122 181 198 -1 56 -1 -1 202 67
X -1 -1 49 168 -1 8 145 -1 177 -1
X 32 211 30 84 57 238 -1 83 217 -1
X160 -1 108 89 -1 -1 228 225 -1 22
X207 176 -1 -1 -1 -1 15 34 169 219
X152 189 107 -1 193 123 95 19 -1 -1
X -1 253 -1 164 -1 -1 -1 -1 230 -1
X -1 -1 209 37 33 -1 205 213 -1 43
X220 -1 194 -1 -1 66 -1 134 -1 -1
X190 -1 103 102 -1 -1 -1 62 42 240
X116 236 115 -1 156 112 110 229 -1 -1
X131 149 11 65 -1 -1 140 196 -1 -1
X239 120 243 139 97 -1 154 174 -1 133
X126 -1 -1 -1 -1 26 182 -1 232 121
X 3 162 60 -1 136 192 114 171 -1 185
X 40 -1 151 -1 73 -1 -1 233 23 58
X197 157 -1 -1 137 5 51 28 -1 227
X -1 12 146 -1 -1 159 255 -1 -1 61
X100 221 155 64 92 -1 127 170 13 -1
X244 210 18 246 9 86 208 50 206 82
X201 31 249 87 242 -1 -1 38 -1 59
X 90 191 -1 4 -1 47 -1 179 46 117
X 78 -1 148 167 -1 237 111 235 35 130
X109 -1 214 132 200 -1 203 -1 -1 212
X -1 -1 -1 71 -1 186
X120 146 232 66 217 81 113 -1 144 239
X 44 49 230 -1 166 60 151 218 34 -1
X 80 128 193 249 -1 148 116 210 183 165
X 94 -1 109 133 18 192 163 73 252 158
X 61 -1 195 46 10 102 43 90 131 11
X122 -1 135 172 -1 207 188 58 57 227
X 15 40 77 99 143 138 3 231 226 136
X221 -1 -1 37 253 104 -1 62 254 185
X 20 5 -1 132 173 189 124 91 150 255
X 47 87 212 184 30 -1 -1 149 187 63
X178 -1 45 228 75 180 177 141 125 32
X121 -1 -1 6 161 -1 26 244 224 137
X 0 110 50 157 86 108 -1 156 21 147
X238 48 83 33 240 52 69 119 65 175
X -1 107 160 64 8 176 1 129 25 97
X 88 16 225 -1 243 164 127 123 39 -1
X142 114 -1 36 155 29 14 169 233 167
X211 -1 53 84 -1 139 145 106 100 204
X105 201 223 28 93 79 203 98 56 85
X -1 251 35 22 205 42 -1 219 213 235
X -1 181 222 186 179 194 -1 55 246 215
X 27 170 92 198 -1 209 -1 4 17 197
X -1 70 202 182 118 152 68 59 103 245
X 12 67 2 168 -1 199 247 250 130 9
X134 248 -1 154 117 229 208 236 241 23
X237 191 38 74 78 89
X -1 165 187 203 8 -1 -1 168 4 124
X131 36 86 -1 -1 83 54 -1 -1 150
X221 56 172 144 65 218 42 33 109 252
X 58 93 160 27 115 214 11 -1 40 117
X 38 -1 26 126 228 94 247 152 235 232
X -1 181 87 -1 16 108 21 138 30 147
X 66 222 250 84 174 24 60 199 116 90
X170 245 239 242 213 118 -1 224 209 -1
X -1 151 98 15 63 193 12 52 -1 -1
X 69 99 169 31 45 217 156 104 82 91
X185 -1 223 133 97 143 127 -1 55 28
X114 -1 134 141 110 34 68 39 75 237
X -1 179 -1 157 9 130 43 106 167 246
X125 10 176 103 112 255 251 142 57 200
X155 113 137 105 23 177 173 59 192 189
X 19 81 47 161 -1 140 96 123 -1 -1
X 32 153 220 -1 -1 1 190 128 7 92
X 70 186 22 146 64 233 132 145 231 121
X254 51 -1 216 210 100 171 2 -1 149
X166 198 148 85 206 -1 208 249 191 67
X139 207 -1 3 241 -1 194 201 196 78
X184 -1 244 74 35 238 183 95 25 230
X162 20 61 102 77 -1 236 -1 44 -1
X219 178 49 175 -1 48 226 119 215 72
X -1 204 73 -1 212 71 129 46 -1 197
X 62 136 29 -1 180 135
X -1 78 -1 188 184 32 151 236 130 16
X 57 -1 209 240 213 63 9 157 123 84
X147 -1 172 219 224 242 49 53 220 -1
X146 196 5 66 231 254 179 -1 210 197
X227 74 112 -1 160 204 69 193 158 26
X 59 -1 65 27 77 142 194 10 141 50
X199 207 -1 15 91 52 33 155 191 46
X -1 -1 252 -1 41 202 144 54 1 -1
X100 189 140 103 19 89 234 97 247 85
X -1 64 -1 225 162 153 206 87 120 104
X 80 248 117 83 99 124 134 177 135 118
X -1 119 42 164 148 139 183 102 109 111
X 98 241 208 18 105 175 192 -1 176 -1
X 8 235 205 198 106 108 -1 182 221 115
X 82 58 55 253 76 232 30 20 114 -1
X168 6 -1 95 -1 67 251 17 48 222
X 44 -1 94 171 113 174 -1 229 150 -1
X -1 163 22 201 165 125 128 107 -1 36
X195 238 137 116 4 203 -1 250 3 81
X239 68 126 47 56 180 31 39 133 60
X211 173 75 185 45 132 96 61 122 12
X 38 200 -1 14 -1 218 255 244 215 23
X 28 138 159 246 24 93 -1 40 -1 167
X -1 34 145 -1 86 131 7 -1 181 190
X 13 121 25 -1 217 249 223 88 101 245
X187 156 72 143 35 216
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
X -1 -1 -1 -1 -1 -1
END_OF_test1.perm
if test 16800 -ne `wc -c <test1.perm`; then
echo shar: \"test1.perm\" unpacked with wrong size!
fi
# end of overwriting check
fi
echo shar: End of archive 6 \(of 11\).
cp /dev/null ark6isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 11 archives.
rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0