home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 January
/
usenetsourcesnewsgroupsinfomagicjanuary1994.iso
/
sources
/
games
/
volume8
/
skewlife
/
part01
next >
Wrap
Internet Message Format
|
1990-02-23
|
61KB
Path: uunet!zephyr.ens.tek.com!tekred!saab!billr
From: billr@saab.CNA.TEK.COM (Bill Randle)
Newsgroups: comp.sources.games
Subject: v08i087: skewlife - life program based on skewed 2x2 squares, Part01/01
Message-ID: <5191@tekred.CNA.TEK.COM>
Date: 20 Feb 90 18:51:15 GMT
Sender: news@tekred.CNA.TEK.COM
Lines: 4928
Approved: billr@saab.CNA.TEK.COM
Submitted-by: dietz@cs.rochester.edu
Posting-number: Volume 8, Issue 87
Archive-name: skewlife/Part01
[Compiles and runs OK on my Sun. You may have to modify the makefile
if your compile doesn't grok -On options (replace with just -O). Note
that the results.c file produced by "makeresults" is big (>700K), so it
takes awhile to compile. See header of skewlife.c for instructions. -br]
#! /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 1 (of 1)."
# Contents: acorn breeder.life get_pattern.c makefile makeresults.c
# puffer results.h rpent skewlife.c wabbit
# Wrapped by billr@saab on Tue Feb 20 10:46:27 1990
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'acorn' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'acorn'\"
else
echo shar: Extracting \"'acorn'\" \(24 characters\)
sed "s/^X//" >'acorn' <<'END_OF_FILE'
X.o.....
X...o...
Xoo..ooo
END_OF_FILE
if test 24 -ne `wc -c <'acorn'`; then
echo shar: \"'acorn'\" unpacked with wrong size!
fi
# end of 'acorn'
fi
if test -f 'breeder.life' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'breeder.life'\"
else
echo shar: Extracting \"'breeder.life'\" \(33644 characters\)
sed "s/^X//" >'breeder.life' <<'END_OF_FILE'
X1033 318
X783 86
X784 86
X758 115
X733 407
X770 107
X1109 302
X856 315
X846 120
X1090 200
X1114 260
X798 105
X798 99
X834 355
X774 373
X1090 178
X1110 221
X1114 282
X862 305
X1110 243
X862 299
X834 375
X897 174
X897 162
X1078 304
X1078 305
X1078 306
X1018 306
X1018 307
X1018 308
X870 367
X870 368
X870 369
X862 312
X862 313
X862 314
X862 290
X862 291
X862 292
X1018 323
X1018 324
X1078 324
X1078 325
X1078 326
X870 363
X870 361
X870 362
X798 90
X798 91
X798 92
X798 112
X798 113
X798 114
X839 290
X840 290
X1028 239
X1029 239
X1078 203
X741 411
X1066 170
X838 318
X1114 302
X774 82
X702 391
X702 392
X702 393
X703 392
X702 407
X702 408
X702 409
X703 408
X762 391
X762 389
X762 390
X763 390
X762 411
X762 409
X762 410
X763 410
X870 355
X870 353
X870 354
X871 354
X1114 319
X1114 317
X1114 318
X1115 318
X1114 311
X1114 312
X1114 313
X1115 312
X946 159
X946 157
X946 158
X947 158
X870 375
X870 376
X870 377
X871 376
X1090 288
X1090 289
X1090 290
X1091 289
X1086 213
X1086 214
X1087 214
X946 179
X946 177
X946 178
X947 178
X886 159
X886 160
X886 161
X887 160
X742 390
X374 258
X784 404
X785 403
X785 404
X784 396
X785 396
X785 397
X901 179
X903 179
X1029 282
X957 258
X1005 274
X1053 290
X1077 298
X1074 187
X858 151
X615 227
X616 227
X663 211
X664 211
X711 195
X712 195
X759 179
X760 179
X807 163
X808 163
X831 155
X832 155
X982 159
X798 399
X798 401
X799 402
X798 404
X799 403
X799 404
X798 396
X799 396
X799 397
X799 398
X838 321
X839 319
X839 320
X839 321
X982 163
X982 166
X983 164
X983 165
X983 166
X982 170
X983 170
X982 173
X983 171
X983 172
X1114 305
X1115 303
X1115 304
X1115 305
X1114 328
X1115 327
X1114 325
X1115 325
X1115 326
X774 85
X775 83
X775 84
X775 85
X758 403
X758 404
X758 396
X758 397
X966 175
X784 107
X784 105
X784 106
X785 104
X784 99
X785 100
X784 97
X784 98
X709 115
X958 258
X1006 274
X1054 290
X1078 298
X850 316
X851 315
X851 316
X1098 218
X982 177
X982 178
X983 178
X815 282
X816 282
X767 266
X768 266
X866 143
X798 410
X799 410
X798 412
X798 413
X799 411
X799 412
X800 411
X798 387
X798 388
X798 390
X799 388
X799 389
X799 390
X800 389
X982 156
X982 158
X983 156
X983 157
X983 158
X984 157
X846 384
X847 383
X847 384
X848 383
X770 129
X771 129
X771 130
X772 130
X830 127
X830 129
X830 130
X831 127
X831 128
X831 129
X832 128
X830 146
X739 390
X740 390
X741 389
X970 183
X971 183
X1066 171
X1066 172
X1067 171
X1040 323
X833 348
X833 349
X833 350
X809 340
X809 341
X809 342
X785 332
X785 333
X785 334
X761 324
X761 325
X761 326
X737 316
X737 317
X737 318
X713 308
X713 309
X713 310
X665 292
X665 293
X665 294
X617 276
X617 277
X617 278
X711 115
X1102 257
X1102 258
X1103 258
X866 151
X867 151
X1074 283
X1075 283
X1090 334
X1091 331
X1091 334
X1092 332
X1092 333
X1092 334
X866 139
X867 139
X867 142
X868 140
X868 141
X868 142
X866 133
X867 134
X868 134
X866 137
X867 137
X868 135
X868 136
X768 385
X768 386
X769 385
X900 158
X901 157
X901 158
X903 157
X904 158
X787 386
X788 386
X709 89
X709 90
X1074 259
X1074 260
X1074 261
X1075 259
X1075 260
X1075 262
X1076 260
X1076 261
X1076 262
X1077 261
X744 377
X744 378
X745 377
X720 369
X720 370
X721 369
X504 297
X504 298
X505 297
X456 281
X456 282
X457 281
X408 265
X408 266
X409 265
X600 329
X600 330
X601 329
X552 313
X552 314
X553 313
X648 345
X648 346
X649 345
X696 361
X696 362
X697 361
X1028 283
X1029 283
X956 259
X957 259
X1004 275
X1005 275
X1052 291
X1053 291
X1076 299
X1077 299
X858 379
X859 379
X786 117
X787 115
X787 116
X775 419
X776 419
X1111 266
X1112 266
X758 89
X760 90
X866 125
X866 126
X867 125
X867 126
X868 126
X866 127
X867 128
X868 127
X868 128
X869 127
X866 149
X866 150
X867 148
X867 150
X868 148
X868 149
X868 150
X869 149
X1070 220
X1070 221
X1070 222
X1071 220
X1071 221
X1072 221
X1072 222
X1073 222
X990 181
X990 182
X991 180
X991 182
X992 180
X992 181
X992 182
X993 181
X1074 281
X1074 282
X1075 280
X1075 282
X1076 280
X1076 281
X1076 282
X1077 281
X1050 179
X1050 180
X1050 181
X1051 180
X1051 181
X1052 179
X1052 180
X1053 179
X1070 242
X1071 241
X1072 241
X1072 242
X1073 242
X958 148
X958 149
X958 150
X959 148
X959 149
X960 149
X960 150
X961 150
X1050 197
X1050 198
X1051 197
X1051 198
X1052 198
X770 386
X1033 261
X1034 261
X1034 262
X1035 262
X1068 251
X1068 253
X1069 254
X746 378
X722 370
X506 298
X458 282
X410 266
X602 330
X554 314
X650 346
X698 362
X858 309
X859 308
X860 307
X1106 223
X1107 223
X1108 223
X794 108
X794 110
X795 107
X795 108
X795 110
X796 107
X762 297
X764 296
X765 295
X762 293
X763 293
X764 293
X765 293
X765 294
X758 111
X759 111
X760 111
X760 114
X761 111
X761 112
X761 113
X1086 192
X1086 194
X1087 194
X1088 193
X1089 191
X1089 192
X1089 193
X698 113
X700 112
X701 111
X698 109
X699 109
X700 109
X701 109
X701 110
X698 95
X699 95
X700 95
X701 95
X698 91
X700 92
X701 93
X701 94
X1107 227
X1107 228
X1107 230
X1108 227
X1108 230
X1109 228
X1109 229
X1109 230
X1110 270
X1111 270
X1112 269
X1113 267
X1113 268
X1113 269
X1111 276
X1112 276
X1113 275
X1110 272
X1111 272
X1112 273
X1113 273
X1113 274
X1107 234
X1108 234
X1109 234
X1107 236
X1107 237
X1108 237
X1109 235
X1109 236
X1086 188
X1086 190
X1087 188
X1087 190
X1088 188
X1088 190
X1089 187
X1086 184
X1086 186
X1087 184
X1088 185
X1089 185
X1089 186
X822 291
X823 291
X824 291
X824 294
X825 291
X825 292
X825 293
X822 313
X823 313
X824 313
X825 311
X825 312
X825 313
X758 93
X759 93
X760 93
X761 91
X761 92
X761 93
X863 211
X863 212
X864 212
X865 212
X815 227
X815 228
X816 228
X817 228
X767 243
X767 244
X768 244
X769 244
X911 195
X911 196
X912 196
X913 196
X935 187
X935 188
X936 188
X937 188
X970 153
X970 154
X971 153
X971 154
X972 154
X1102 301
X1103 301
X1104 301
X1104 302
X858 316
X859 316
X861 315
X1075 308
X1077 307
X830 373
X830 374
X831 373
X831 374
X832 373
X832 374
X833 374
X830 375
X831 375
X832 376
X833 375
X833 376
X858 295
X859 296
X859 298
X860 297
X860 298
X861 298
X858 299
X858 300
X859 299
X860 300
X861 299
X861 300
X1106 241
X1106 242
X1107 241
X1107 242
X1108 241
X1108 242
X1109 242
X1106 243
X1107 243
X1108 244
X1109 243
X1109 244
X858 304
X858 305
X859 305
X859 306
X860 304
X860 306
X861 304
X861 305
X861 306
X1112 283
X1113 283
X1110 280
X1110 281
X1110 282
X1111 280
X1111 281
X1111 282
X1112 280
X1112 281
X1113 281
X1113 282
X1106 221
X1106 222
X1107 221
X1107 222
X1108 220
X1108 222
X1109 220
X1109 221
X1109 222
X1088 179
X1089 179
X1086 176
X1086 177
X1086 178
X1087 176
X1087 177
X1087 178
X1088 176
X1088 177
X1089 177
X1089 178
X770 371
X770 372
X770 373
X771 371
X771 372
X771 373
X772 371
X772 372
X772 374
X773 372
X773 373
X773 374
X832 354
X833 354
X830 355
X830 356
X830 357
X831 355
X831 356
X831 357
X832 356
X832 357
X833 355
X833 356
X794 96
X795 96
X795 97
X795 98
X796 97
X797 98
X794 99
X794 101
X795 99
X795 101
X796 100
X796 101
X797 99
X797 100
X794 103
X794 105
X795 103
X795 105
X795 106
X796 103
X796 104
X797 104
X797 105
X797 106
X1110 260
X1110 261
X1110 262
X1111 260
X1111 261
X1111 262
X1112 259
X1112 261
X1112 262
X1113 259
X1113 260
X1113 261
X1086 200
X1086 201
X1086 202
X1087 200
X1087 201
X1087 202
X1088 199
X1088 201
X1088 202
X1089 199
X1089 200
X1089 201
X842 120
X842 121
X843 120
X843 121
X843 122
X844 119
X844 121
X844 122
X845 119
X845 120
X845 121
X367 242
X368 241
X369 240
X369 242
X370 239
X370 240
X370 242
X371 240
X371 242
X372 241
X373 242
X1052 204
X1052 205
X1052 206
X1053 206
X1050 199
X1051 200
X1052 199
X1052 200
X1053 199
X835 143
X836 143
X768 387
X767 115
X767 116
X768 116
X768 117
X769 115
X774 416
X774 417
X774 418
X775 416
X775 417
X776 417
X776 418
X777 418
X1094 247
X1095 247
X1096 247
X1097 247
X711 89
X711 90
X1028 212
X1028 213
X1028 214
X1029 214
X743 123
X743 124
X744 124
X744 125
X745 123
X1004 220
X1004 221
X1004 222
X1005 222
X719 131
X719 132
X720 132
X720 133
X721 131
X503 203
X503 204
X504 204
X504 205
X505 203
X455 219
X455 220
X456 220
X456 221
X457 219
X407 235
X407 236
X408 236
X408 237
X409 235
X551 187
X551 188
X552 188
X552 189
X553 187
X599 171
X599 172
X600 172
X600 173
X601 171
X647 155
X647 156
X648 156
X648 157
X649 155
X956 236
X956 237
X956 238
X957 238
X695 139
X695 140
X696 140
X696 141
X697 139
X1051 178
X1052 178
X744 379
X720 371
X504 299
X456 283
X600 331
X552 315
X648 347
X696 363
X883 158
X884 158
X885 158
X1088 291
X1089 291
X1111 310
X1112 310
X1113 310
X699 406
X700 406
X701 406
X794 114
X795 114
X796 114
X797 111
X797 114
X794 90
X795 90
X796 90
X797 90
X794 94
X795 94
X797 93
X866 364
X866 366
X867 364
X867 366
X868 364
X868 366
X869 364
X869 366
X866 361
X866 362
X867 360
X867 362
X868 360
X869 361
X1074 326
X1075 326
X1076 326
X1077 323
X1077 326
X1014 324
X1015 324
X1016 324
X1017 324
X858 288
X859 288
X861 289
X858 292
X859 292
X860 292
X861 292
X858 312
X859 312
X860 312
X861 312
X866 368
X866 369
X867 368
X867 370
X868 370
X869 369
X1014 306
X1015 306
X1016 306
X1017 306
X1015 310
X1017 309
X1074 304
X1075 304
X1076 304
X1077 304
X742 409
X742 410
X1081 310
X1082 310
X782 312
X782 313
X783 311
X778 311
X779 311
X780 312
X781 312
X781 313
X1077 203
X1065 170
X771 82
X1111 301
X1112 301
X835 318
X882 159
X882 160
X883 159
X883 160
X884 159
X884 160
X885 159
X885 161
X942 179
X943 179
X943 180
X944 179
X944 180
X945 179
X945 180
X942 178
X943 178
X944 178
X945 177
X1083 213
X1083 214
X1084 212
X1084 213
X1084 214
X1085 212
X1085 213
X1087 289
X1087 290
X1088 289
X1088 290
X1089 288
X1089 290
X866 376
X866 377
X866 378
X867 376
X867 377
X867 378
X868 376
X868 377
X868 378
X869 375
X869 377
X869 378
X942 157
X942 158
X943 156
X943 157
X943 158
X944 156
X944 157
X944 158
X945 156
X945 157
X1110 314
X1111 312
X1111 314
X1112 314
X1113 311
X1113 314
X1111 320
X1112 320
X1113 319
X1113 320
X1110 316
X1111 316
X1111 318
X1112 316
X1113 316
X869 355
X866 352
X866 353
X866 354
X867 352
X867 353
X867 354
X868 352
X868 353
X868 354
X869 352
X869 353
X761 411
X758 409
X758 410
X759 408
X759 409
X759 410
X760 408
X760 409
X760 410
X761 408
X761 409
X758 391
X759 391
X759 392
X760 391
X760 392
X761 391
X761 392
X758 390
X759 390
X760 390
X761 389
X698 407
X698 408
X699 407
X699 408
X700 407
X700 408
X701 407
X701 409
X698 392
X698 393
X699 392
X699 393
X699 394
X700 392
X700 393
X700 394
X701 391
X701 393
X701 394
X371 264
X371 265
X372 263
X372 266
X373 264
X373 265
X795 358
X796 358
X797 358
X1073 182
X1067 249
X1068 248
X1014 182
X1015 182
X1016 182
X834 348
X835 349
X864 210
X816 226
X768 242
X912 194
X936 186
X854 151
X855 151
X856 152
X857 151
X857 152
X810 340
X811 341
X786 332
X787 333
X762 324
X763 325
X738 316
X739 317
X714 308
X715 309
X666 292
X667 293
X618 276
X619 277
X570 260
X571 261
X828 146
X829 146
X979 159
X979 162
X980 159
X980 162
X981 159
X795 394
X796 394
X797 394
X771 84
X772 85
X773 85
X1111 329
X1112 329
X1110 325
X1111 325
X1112 325
X1113 325
X1110 305
X1111 305
X1112 305
X1113 305
X978 170
X979 170
X981 170
X978 172
X978 173
X979 174
X980 174
X978 163
X978 164
X978 166
X979 166
X981 166
X835 320
X836 321
X837 321
X794 395
X795 397
X796 397
X796 399
X796 401
X797 399
X797 401
X794 405
X795 403
X795 406
X796 403
X796 406
X797 406
X799 363
X799 364
X799 366
X800 364
X800 366
X801 364
X801 366
X846 316
X847 316
X848 316
X849 316
X1094 217
X1094 218
X1095 217
X1095 218
X1096 217
X1096 218
X1097 217
X1097 218
X978 178
X979 177
X979 178
X980 177
X980 178
X981 177
X981 178
X865 143
X827 147
X827 148
X828 147
X828 148
X829 147
X829 148
X827 128
X827 129
X828 128
X828 129
X828 130
X829 128
X829 129
X829 130
X767 131
X768 131
X768 132
X769 131
X769 132
X767 130
X768 130
X769 130
X844 383
X845 383
X978 157
X978 158
X979 157
X979 158
X980 157
X980 158
X981 157
X981 158
X794 388
X794 389
X795 387
X795 388
X795 389
X796 387
X796 388
X796 389
X797 387
X797 388
X797 389
X794 411
X794 412
X795 411
X795 412
X795 413
X796 411
X796 412
X796 413
X797 411
X797 412
X797 413
X1071 223
X1072 223
X831 153
X831 154
X833 154
X830 147
X830 149
X831 147
X831 148
X831 149
X832 148
X968 183
X969 183
X769 403
X769 397
X852 371
X853 371
X1063 171
X1063 172
X1064 171
X1064 172
X1064 173
X1065 172
X1065 173
X852 359
X853 359
X853 360
X853 361
X853 369
X853 370
X807 161
X807 162
X809 162
X759 177
X759 178
X761 178
X711 193
X711 194
X713 194
X663 209
X663 210
X665 210
X615 225
X615 226
X617 226
X567 241
X567 242
X569 242
X797 139
X797 140
X797 136
X797 137
X1098 256
X1098 257
X1098 258
X1099 256
X1099 257
X1099 258
X1100 256
X1100 257
X1100 258
X1101 256
X1101 257
X1070 251
X1070 252
X1073 283
X989 183
X864 151
X865 151
X864 134
X865 133
X863 135
X863 136
X863 137
X864 135
X864 137
X865 135
X865 137
X863 139
X863 140
X863 141
X864 139
X864 141
X864 142
X865 139
X865 141
X1088 331
X1088 333
X1089 334
X767 88
X767 89
X769 87
X769 88
X769 89
X1018 187
X1018 188
X1018 190
X1019 188
X1019 190
X1020 188
X1020 190
X374 248
X374 250
X375 248
X375 249
X708 111
X709 113
X709 114
X1030 282
X1032 279
X1033 281
X742 391
X1096 309
X1097 308
X1097 309
X1097 310
X1097 311
X1096 321
X1097 319
X1097 320
X1097 321
X1097 322
X1071 195
X1072 195
X1073 196
X766 267
X767 267
X768 268
X814 283
X815 283
X816 284
X1014 188
X1014 190
X783 118
X784 118
X756 90
X1106 264
X1106 265
X1107 263
X1107 266
X1108 266
X1109 265
X1109 266
X722 394
X1048 198
X1049 197
X1049 198
X1048 199
X1049 199
X957 149
X957 150
X1068 243
X1069 243
X1069 244
X1068 242
X1069 242
X1048 179
X1048 180
X1049 179
X1049 180
X1049 181
X1072 281
X1072 282
X1073 281
X1073 282
X988 181
X988 182
X989 181
X989 182
X1068 221
X1068 222
X1069 220
X1069 221
X1069 222
X863 149
X863 150
X864 149
X864 150
X865 149
X865 150
X863 126
X864 125
X864 126
X865 125
X865 126
X863 127
X864 127
X865 127
X369 259
X369 260
X1054 205
X1030 213
X1006 221
X958 237
X793 107
X1103 225
X1103 226
X1104 224
X1105 223
X1105 225
X1105 226
X854 307
X854 308
X854 309
X854 310
X855 307
X855 308
X855 309
X855 310
X856 307
X856 308
X857 307
X756 92
X757 93
X820 312
X821 313
X820 292
X820 294
X821 291
X1084 187
X1084 188
X1084 190
X1085 188
X1085 190
X1084 186
X1085 185
X1085 186
X1102 231
X1102 233
X1102 234
X1103 238
X1105 238
X1106 277
X1106 278
X1107 276
X1108 276
X1109 276
X1109 277
X1109 273
X1109 269
X1102 230
X697 95
X696 92
X696 94
X696 112
X696 110
X697 109
X1084 191
X1084 192
X1085 192
X1085 193
X756 112
X756 114
X757 111
X760 294
X761 293
X1034 279
X1034 280
X1034 281
X1035 280
X735 402
X736 402
X737 399
X737 401
X1088 240
X1089 241
X967 154
X968 153
X968 154
X969 153
X969 154
X1098 302
X1099 301
X1100 301
X1101 301
X1073 307
X1084 200
X1084 201
X1085 200
X1085 201
X1085 202
X1108 260
X1108 261
X1109 260
X1109 261
X1109 262
X792 104
X792 105
X792 106
X793 106
X792 98
X793 97
X793 98
X792 99
X792 100
X829 355
X829 356
X769 372
X769 373
X1084 177
X1084 178
X1085 176
X1085 177
X1085 178
X1104 221
X1104 222
X1105 221
X1105 222
X1107 279
X1108 281
X1108 282
X1109 280
X1109 281
X1109 282
X854 306
X855 306
X857 304
X857 306
X1103 239
X1104 240
X1104 242
X1105 239
X1105 241
X1105 242
X1104 243
X1105 243
X854 295
X854 296
X854 297
X854 298
X855 295
X855 296
X855 297
X855 298
X856 296
X856 297
X857 297
X857 298
X857 300
X829 374
X829 375
X374 260
X375 259
X375 260
X370 260
X372 260
X708 93
X709 91
X709 94
X773 417
X773 418
X778 293
X778 294
X779 293
X780 292
X781 291
X781 292
X1031 239
X1031 240
X1032 241
X1033 241
X1073 305
X1013 307
X1013 309
X862 367
X862 369
X865 367
X865 368
X856 313
X857 312
X856 289
X854 294
X855 294
X856 291
X857 292
X1013 321
X1013 323
X1073 323
X1073 325
X862 363
X865 363
X865 364
X865 366
X862 361
X865 362
X793 90
X792 91
X792 93
X792 111
X792 113
X793 114
X1035 231
X1035 233
X1035 234
X1036 231
X1036 233
X1036 234
X754 407
X865 353
X865 354
X1109 319
X1106 318
X1108 317
X1109 316
X1109 318
X1106 312
X1108 313
X1109 311
X1109 312
X1109 314
X865 376
X865 377
X1075 266
X1076 266
X738 409
X739 407
X739 408
X739 410
X740 407
X740 410
X741 408
X1078 300
X1087 226
X1088 224
X1089 223
X1087 238
X1089 236
X1089 228
X1054 292
X1006 276
X958 260
X1030 284
X852 151
X853 151
X974 159
X976 160
X792 403
X793 403
X793 404
X793 405
X792 397
X793 395
X793 396
X793 397
X974 164
X975 165
X977 165
X974 172
X975 171
X977 171
X1109 304
X1109 328
X1109 326
X711 111
X711 112
X711 113
X711 114
X712 112
X712 113
X845 315
X1093 218
X974 177
X976 176
X858 144
X943 162
X944 162
X945 159
X820 310
X1097 257
X1097 258
X782 291
X782 292
X782 294
X783 293
X858 140
X858 141
X859 140
X860 140
X860 142
X858 132
X860 134
X858 135
X858 136
X859 136
X860 136
X727 394
X728 394
X822 307
X822 309
X823 307
X824 310
X781 115
X781 117
X1105 264
X858 125
X982 180
X983 179
X983 180
X984 179
X726 395
X727 395
X727 396
X728 396
X729 395
X729 397
X726 405
X727 404
X727 405
X727 406
X728 404
X728 406
X729 403
X729 405
X1072 260
X1072 261
X1073 259
X1073 260
X1073 261
X903 175
X904 175
X904 177
X904 178
X1034 274
X1037 272
X1037 273
X1034 268
X1035 267
X1037 269
X1037 270
X852 309
X853 307
X853 310
X786 108
X787 108
X788 107
X788 108
X1078 195
X1079 195
X1078 193
X1078 194
X1079 191
X1079 192
X1080 191
X1081 191
X1081 193
X1099 230
X1100 229
X1102 269
X1103 269
X1105 278
X1102 273
X1103 273
X1099 231
X1099 233
X1099 234
X1100 235
X1079 187
X1080 187
X1081 187
X1078 183
X1078 184
X1078 185
X1079 183
X1079 186
X1081 185
X803 363
X804 363
X805 364
X805 366
X1022 187
X1023 187
X1024 188
X1024 190
X1025 187
X837 363
X793 371
X852 295
X853 297
X853 298
X1098 244
X1098 245
X1098 246
X1099 245
X853 306
X1102 283
X1102 284
X1102 285
X1103 284
X1098 219
X1098 220
X1099 219
X1078 175
X1078 176
X1078 177
X1079 176
X786 96
X787 96
X788 96
X788 97
X786 101
X788 100
X788 101
X786 103
X788 103
X788 104
X1102 259
X1078 201
X1078 202
X1079 202
X784 300
X784 301
X785 300
X785 301
X769 415
X898 175
X898 176
X899 176
X899 177
X900 175
X900 176
X900 177
X900 178
X901 177
X901 178
X1034 240
X859 371
X860 371
X1102 308
X1103 309
X1104 309
X786 114
X787 114
X786 87
X786 90
X787 88
X787 89
X787 90
X860 363
X861 363
X858 361
X859 359
X859 360
X859 361
X860 359
X860 362
X850 288
X851 288
X851 289
X851 290
X850 291
X853 293
X853 294
X850 313
X851 314
X853 311
X858 369
X859 369
X859 370
X860 367
X860 368
X861 367
X1010 188
X1010 190
X1012 195
X905 167
X905 169
X905 170
X1037 310
X858 376
X858 377
X859 377
X859 378
X860 378
X1102 312
X1103 311
X1104 311
X1104 312
X1104 313
X1105 313
X1105 314
X1102 322
X1103 319
X1103 321
X1104 319
X1104 321
X1102 318
X1104 317
X1104 318
X1105 316
X1105 317
X858 351
X858 353
X858 354
X859 351
X859 352
X859 353
X860 352
X753 407
X1011 184
X1012 183
X1013 185
X1013 186
X1011 194
X1013 192
X1013 193
X710 94
X711 91
X711 92
X711 93
X712 91
X712 92
X960 178
X902 165
X903 165
X904 164
X904 165
X905 163
X905 165
X905 166
X973 160
X788 393
X788 394
X789 394
X1102 329
X1103 329
X1104 327
X1104 328
X1104 329
X1103 326
X1103 304
X1104 303
X786 395
X786 396
X786 397
X786 398
X788 398
X789 395
X786 402
X788 399
X788 401
X788 402
X786 403
X786 404
X786 405
X788 406
X789 405
X789 406
X733 393
X733 394
X1086 215
X973 176
X854 145
X854 146
X855 143
X855 144
X855 145
X857 143
X857 144
X819 130
X970 155
X971 156
X972 155
X972 156
X973 155
X786 387
X786 388
X786 389
X787 388
X787 389
X788 387
X788 388
X789 387
X788 407
X786 411
X786 412
X786 413
X787 411
X787 412
X787 414
X788 412
X788 413
X788 414
X789 413
X906 167
X906 169
X906 170
X792 135
X793 135
X793 137
X790 133
X791 132
X792 134
X793 131
X790 143
X791 144
X793 145
X792 141
X792 142
X793 139
X793 141
X752 394
X753 393
X854 131
X855 131
X855 132
X855 133
X855 134
X856 134
X857 132
X857 133
X857 134
X854 135
X854 141
X855 142
X856 142
X857 142
X1073 234
X724 257
X724 258
X725 256
X725 259
X846 381
X846 382
X847 382
X1028 225
X1029 225
X1098 266
X1099 266
X1040 181
X1040 182
X978 179
X979 179
X980 179
X981 179
X854 149
X854 150
X855 149
X855 150
X856 149
X856 150
X857 150
X854 125
X854 126
X855 125
X855 126
X856 124
X856 126
X857 124
X857 125
X857 126
X854 127
X854 130
X855 127
X856 127
X806 363
X754 393
X755 394
X1070 243
X1070 244
X1071 243
X1071 244
X1072 243
X1074 196
X1074 198
X1075 196
X1075 197
X1076 195
X1076 196
X1074 184
X1075 186
X1076 183
X1076 184
X1076 185
X1077 185
X1095 231
X1095 233
X1095 234
X1097 234
X1094 236
X1094 237
X1096 237
X1097 235
X1097 236
X1098 276
X1099 275
X1099 276
X1098 272
X1099 274
X1100 274
X1098 270
X1099 267
X1099 268
X1100 268
X1094 227
X1094 228
X1095 230
X1096 227
X1097 228
X1097 229
X1097 230
X1074 191
X1074 194
X1075 192
X1076 193
X1076 194
X1077 193
X795 372
X796 371
X796 372
X797 371
X797 372
X795 364
X795 366
X752 107
X752 108
X752 109
X753 107
X753 108
X753 109
X756 107
X959 151
X960 151
X1074 200
X1074 201
X1074 202
X1075 200
X1075 201
X1075 202
X1076 200
X1076 201
X1076 202
X1077 200
X1077 201
X1101 259
X821 357
X821 358
X1074 180
X1074 182
X1075 181
X1075 182
X1076 182
X1074 176
X1074 177
X1074 178
X1075 176
X1075 177
X1075 178
X1076 176
X1076 177
X1076 178
X1077 175
X1077 177
X1077 178
X1094 219
X1095 219
X1096 219
X1097 220
X1098 284
X1098 285
X1098 286
X1099 284
X1099 285
X1099 286
X1100 284
X1100 285
X1100 286
X1101 283
X1101 285
X1101 286
X846 303
X847 304
X847 306
X848 305
X1094 245
X1094 246
X1095 245
X1095 246
X1096 245
X1096 246
X1097 244
X1097 246
X847 298
X846 301
X847 300
X848 299
X1098 307
X1098 308
X1099 308
X1101 307
X1101 308
X1101 309
X1101 310
X854 372
X855 372
X855 374
X856 372
X856 373
X857 371
X857 372
X854 368
X855 367
X855 370
X856 368
X857 369
X857 370
X847 312
X848 312
X846 288
X847 288
X848 288
X849 288
X847 292
X848 292
X855 363
X854 362
X855 360
X856 362
X857 359
X857 360
X857 361
X782 90
X783 90
X784 90
X785 90
X782 114
X783 114
X784 114
X785 114
X794 368
X794 369
X795 368
X796 370
X794 361
X794 362
X795 362
X796 359
X796 360
X797 359
X821 298
X821 299
X821 305
X821 306
X854 358
X855 356
X855 358
X856 357
X856 358
X857 358
X854 352
X854 353
X855 352
X855 353
X855 354
X856 352
X856 353
X856 354
X857 352
X857 353
X857 354
X1098 322
X1099 319
X1099 322
X1101 319
X1101 320
X1101 321
X1101 322
X1098 318
X1099 317
X1099 318
X1100 318
X1101 318
X1098 312
X1099 311
X1099 312
X1099 313
X1100 312
X1101 311
X1101 312
X854 377
X854 378
X855 376
X855 377
X855 378
X856 376
X856 377
X856 378
X857 376
X857 377
X857 378
X1038 317
X1038 318
X1039 317
X1039 318
X1038 319
X1039 320
X1039 322
X1040 320
X1041 322
X1039 308
X1039 310
X1040 307
X1040 310
X1041 308
X1038 311
X1038 312
X1038 313
X1039 312
X1039 313
X1014 196
X1015 195
X1015 196
X1016 195
X1016 196
X915 247
X916 247
X966 161
X966 162
X966 166
X967 166
X968 165
X968 166
X969 165
X966 167
X966 169
X966 170
X967 167
X967 169
X967 170
X968 170
X966 174
X968 171
X969 171
X1098 304
X1099 305
X1101 305
X1098 328
X1099 329
X1100 329
X1101 329
X1098 323
X1098 326
X1099 325
X1101 323
X1101 325
X768 105
X769 104
X769 106
X768 99
X769 100
X769 98
X1085 215
X726 256
X727 257
X727 258
X850 144
X851 143
X851 144
X852 145
X853 143
X853 145
X783 412
X783 413
X784 411
X784 412
X784 413
X785 411
X785 412
X785 413
X783 387
X783 388
X784 387
X784 388
X784 389
X785 387
X785 388
X785 389
X967 155
X968 155
X969 155
X822 135
X823 135
X823 133
X823 134
X823 143
X822 141
X823 141
X823 142
X1042 234
X1043 234
X794 143
X794 144
X794 145
X795 144
X795 145
X796 143
X851 142
X852 141
X853 140
X850 132
X851 132
X851 133
X851 134
X852 131
X853 131
X853 133
X852 135
X853 136
X1031 224
X1031 225
X1032 223
X1033 223
X1033 226
X844 382
X845 381
X845 382
X1094 263
X1096 266
X1097 265
X1097 266
X852 125
X852 126
X853 125
X853 126
X853 127
X853 129
X852 150
X853 147
X853 149
X853 150
X1040 196
X1040 197
X821 372
X821 373
X1031 264
X1031 265
X1031 266
X1032 263
X1032 264
X1033 264
X1033 266
X1032 267
X1033 268
X1033 274
X1031 276
X1031 277
X1031 278
X1032 275
X1032 278
X1033 276
X1033 278
X842 307
X843 308
X844 308
X844 309
X845 308
X1091 223
X1091 224
X1093 225
X1072 193
X1072 194
X1073 192
X1090 229
X1091 229
X1092 227
X1092 228
X1094 268
X1095 269
X1096 270
X1097 268
X1097 269
X1096 276
X1097 276
X1097 277
X1094 274
X1095 273
X1096 272
X1097 273
X1097 274
X1092 231
X1092 233
X1093 231
X1093 233
X1090 235
X1091 235
X1092 236
X1092 237
X1071 183
X1072 183
X1072 184
X1072 185
X1073 186
X1030 236
X1032 236
X1032 237
X1033 237
X1033 238
X1030 228
X1032 227
X1032 228
X1033 227
X842 297
X843 296
X843 298
X844 295
X844 296
X845 296
X842 301
X843 299
X843 301
X844 301
X845 301
X1090 242
X1091 240
X1091 241
X1091 242
X1093 239
X1093 245
X1093 246
X842 303
X843 303
X843 305
X843 306
X844 303
X845 303
X1097 284
X1097 285
X1094 279
X1094 282
X1095 280
X1090 222
X1091 222
X1093 219
X1073 176
X1073 177
X778 99
X778 100
X779 99
X779 100
X778 104
X778 105
X779 104
X779 105
X1094 260
X1095 262
X1073 201
X1073 202
X819 145
X819 146
X914 245
X914 246
X915 244
X916 244
X917 245
X917 246
X781 87
X781 89
X845 289
X845 291
X845 313
X1065 310
X1066 310
X1068 310
X898 160
X898 161
X898 162
X899 159
X899 160
X900 159
X900 160
X900 161
X900 162
X901 159
X901 162
X1034 224
X1034 226
X898 163
X899 164
X901 165
X898 173
X898 174
X899 172
X900 174
X901 171
X901 174
X962 162
X963 162
X964 161
X964 162
X965 161
X965 162
X962 167
X962 169
X963 167
X963 169
X964 167
X964 169
X965 167
X965 169
X962 173
X962 174
X963 171
X963 173
X963 174
X964 172
X964 174
X965 174
X962 163
X963 163
X963 165
X964 164
X779 397
X779 398
X780 397
X780 398
X779 402
X780 402
X779 403
X780 403
X780 299
X781 299
X778 296
X778 298
X779 296
X779 297
X779 298
X780 298
X781 297
X778 308
X778 310
X779 307
X779 308
X781 307
X778 306
X779 306
X780 305
X780 306
X781 305
X964 175
X965 175
X1042 309
X751 402
X752 399
X752 401
X753 402
X750 404
X751 404
X752 406
X750 396
X751 396
X751 398
X753 398
X836 361
X836 362
X837 360
X836 368
X836 369
X837 367
X837 370
X1080 311
X1080 312
X1081 313
X1080 318
X1081 317
X1080 319
X1081 320
X726 259
X970 181
X970 182
X971 180
X971 182
X972 180
X972 181
X972 182
X973 181
X1034 263
X1034 265
X1034 266
X1035 266
X840 307
X841 307
X1066 187
X1066 186
X1091 273
X1091 274
X1092 272
X1092 274
X1093 272
X1093 273
X1093 274
X1091 268
X1091 269
X1092 268
X1092 270
X1093 268
X1093 269
X1093 270
X1066 191
X1066 192
X1056 187
X709 110
X1092 260
X1092 261
X1093 260
X1092 281
X1092 282
X1093 282
X838 304
X838 305
X839 303
X839 306
X840 303
X841 303
X841 305
X839 298
X840 297
X841 297
X838 299
X838 300
X839 301
X840 301
X841 299
X841 301
X846 367
X846 368
X847 367
X847 368
X838 313
X839 313
X839 314
X840 312
X840 314
X838 291
X839 291
X840 292
X846 363
X847 363
X846 362
X847 362
X902 162
X903 161
X904 159
X904 161
X904 162
X1090 317
X1090 318
X1091 317
X1091 318
X1090 312
X1090 313
X1091 312
X1091 313
X1072 235
X1072 236
X1073 237
X1072 228
X1072 229
X1073 227
X1073 230
X959 165
X959 166
X960 164
X960 165
X961 163
X959 170
X960 167
X960 169
X961 167
X961 169
X959 171
X960 171
X960 172
X961 173
X782 307
X782 308
X782 310
X783 307
X783 308
X959 156
X959 157
X960 156
X960 158
X961 156
X844 140
X844 141
X845 140
X845 141
X844 135
X844 136
X845 135
X845 136
X967 181
X967 182
X968 181
X968 182
X969 181
X969 182
X1065 191
X1065 192
X1082 229
X1082 230
X1083 229
X1083 230
X1082 234
X1083 234
X1082 235
X1083 235
X1065 187
X1065 186
X819 363
X820 364
X820 366
X821 363
X770 97
X771 98
X771 106
X710 110
X734 408
X735 407
X735 408
X736 408
X737 408
X770 396
X770 397
X771 395
X771 396
X771 397
X770 403
X770 404
X771 403
X771 404
X771 405
X770 414
X771 414
X734 392
X735 392
X735 393
X735 394
X736 392
X737 392
X1055 234
X1056 234
X738 391
X739 392
X739 393
X740 393
X741 392
X1058 185
X1084 273
X1084 274
X1085 273
X1085 274
X1084 268
X1084 269
X1085 268
X1085 269
X1058 193
X790 363
X791 364
X791 366
X831 304
X831 305
X832 304
X832 305
X831 299
X831 300
X832 299
X832 300
X838 368
X838 370
X839 369
X838 360
X838 362
X839 361
X804 298
X805 298
X803 299
X804 300
X805 300
X803 305
X804 304
X804 306
X805 304
X805 306
X1082 320
X1083 319
X1082 318
X1082 312
X1083 311
X952 165
X952 166
X953 165
X953 166
X952 170
X953 170
X952 171
X953 171
X750 104
X750 105
X750 106
X751 104
X752 104
X752 105
X752 106
X753 106
X750 99
X750 100
X751 100
X752 99
X752 100
X750 98
X752 95
X752 96
X752 97
X752 98
X753 95
X753 96
X753 97
X753 98
X834 141
X834 142
X835 140
X836 141
X837 142
X834 134
X835 133
X836 133
X837 134
X834 135
X835 136
X836 135
X959 179
X959 180
X960 180
X961 180
X1055 192
X1055 193
X1056 191
X1056 194
X1057 192
X1057 194
X1074 227
X1074 229
X1075 228
X1074 235
X1074 237
X1075 236
X1055 185
X1055 186
X1056 184
X1057 184
X1057 186
X762 99
X762 100
X763 99
X763 100
X762 104
X762 105
X763 104
X763 105
X763 397
X763 398
X764 397
X764 398
X763 402
X764 402
X763 403
X764 403
X819 362
X820 361
X821 361
X819 367
X819 368
X820 369
X821 367
X821 369
X734 397
X735 395
X735 396
X735 398
X736 395
X736 396
X736 397
X736 398
X737 396
X734 403
X735 404
X735 405
X735 406
X736 403
X736 404
X736 405
X737 404
X1063 312
X1063 313
X1064 311
X1064 314
X1065 311
X1065 313
X1063 317
X1063 318
X1064 316
X1065 317
X1064 319
X1065 319
X1065 320
X1050 187
X1050 186
X1074 275
X1075 276
X1076 276
X1077 275
X1074 274
X1075 273
X1076 274
X1074 267
X1074 268
X1075 269
X1076 268
X1077 267
X1050 191
X1050 192
X1038 187
X1039 188
X1039 190
X1040 187
X822 304
X823 305
X824 306
X822 295
X822 297
X823 297
X824 298
X822 300
X823 299
X817 135
X817 136
X830 367
X830 368
X831 367
X831 368
X830 363
X831 363
X830 362
X831 362
X817 140
X817 141
X1075 322
X1074 317
X1074 318
X1075 317
X1075 318
X1074 312
X1074 313
X1075 312
X1075 313
X1054 235
X1055 236
X1056 236
X1057 235
X1054 229
X1055 228
X1055 230
X1056 228
X1056 230
X1057 229
X942 164
X942 165
X943 163
X943 166
X944 163
X944 165
X945 164
X943 170
X942 171
X942 172
X943 173
X943 174
X944 171
X944 173
X944 174
X945 172
X828 140
X828 141
X829 140
X829 141
X828 135
X828 136
X829 135
X829 136
X1049 191
X1049 192
X1066 229
X1066 230
X1067 229
X1067 230
X1066 234
X1067 234
X1066 235
X1067 235
X1049 187
X1049 186
X993 187
X756 97
X757 98
X756 100
X757 99
X756 104
X757 105
X757 106
X1070 311
X1070 319
X1056 274
X1057 273
X755 395
X757 396
X757 397
X755 405
X755 406
X757 403
X757 404
X1056 268
X1057 267
X1057 269
X692 257
X692 258
X693 256
X693 259
X1042 185
X1043 186
X1044 184
X1044 185
X1044 186
X1062 234
X1062 235
X1068 273
X1068 274
X1069 273
X1069 274
X1068 268
X1068 269
X1069 268
X1069 269
X1062 229
X1062 230
X1042 193
X1043 192
X1044 192
X1044 193
X1044 194
X925 170
X994 187
X774 363
X775 363
X815 304
X815 305
X816 304
X816 305
X815 299
X815 300
X816 299
X816 300
X738 402
X739 402
X738 403
X738 404
X739 403
X738 396
X738 397
X738 398
X739 397
X739 398
X730 404
X731 404
X732 404
X732 405
X733 403
X733 405
X733 406
X730 396
X731 396
X732 395
X732 396
X733 395
X733 397
X722 406
X723 405
X724 403
X724 404
X720 404
X721 403
X721 405
X722 402
X724 402
X725 402
X722 398
X723 395
X724 396
X724 397
X724 398
X725 398
X721 402
X720 396
X721 395
X721 397
X721 398
X707 403
X708 403
X707 402
X708 402
X707 397
X707 398
X708 397
X708 398
X565 259
X566 259
X569 260
X569 261
X569 262
X884 268
X884 269
X885 268
X885 269
X884 273
X884 274
X885 273
X885 274
X564 257
X564 258
X565 256
X566 256
X567 257
X567 258
X914 235
X915 235
X914 234
X915 234
X916 273
X916 274
X917 273
X917 274
X916 268
X916 269
X917 268
X917 269
X882 235
X883 235
X882 234
X883 234
X722 245
X722 246
X723 244
X724 244
X725 245
X725 246
X723 247
X724 247
X532 257
X532 258
X533 256
X533 258
X534 256
X534 257
X690 245
X690 246
X691 244
X692 244
X693 245
X693 246
X691 247
X692 247
X502 256
X502 257
X500 257
X500 258
X501 256
X501 258
X850 235
X851 235
X850 234
X851 234
X852 268
X852 269
X853 268
X853 269
X852 273
X852 274
X853 273
X853 274
X658 245
X658 246
X659 244
X660 244
X661 245
X661 246
X659 247
X660 247
X470 256
X470 257
X468 257
X468 258
X469 256
X469 258
X818 235
X819 235
X818 234
X819 234
X820 268
X820 269
X821 268
X821 269
X820 273
X820 274
X821 273
X821 274
X626 245
X626 246
X627 244
X628 244
X629 245
X629 246
X627 247
X628 247
X438 256
X438 257
X436 257
X436 258
X437 256
X437 258
X786 235
X787 235
X786 234
X787 234
X788 268
X788 269
X789 268
X789 269
X791 275
X792 275
X789 273
X789 274
X594 245
X594 246
X595 244
X596 244
X597 245
X597 246
X595 247
X596 247
X406 256
X406 257
X404 257
X404 258
X405 256
X405 258
X754 235
X755 235
X754 234
X755 234
X756 268
X756 269
X757 268
X757 269
X567 243
X568 243
X562 245
X562 246
X563 244
X564 244
X565 245
X565 246
X563 247
X564 247
X370 258
X371 257
X372 257
X373 257
X722 235
X723 235
X722 234
X723 234
X724 268
X724 269
X725 268
X725 269
X530 245
X530 246
X531 245
X532 246
X531 247
X532 247
X596 268
X596 269
X597 268
X597 269
X626 235
X627 235
X626 234
X627 234
X628 268
X628 269
X629 268
X629 269
X434 245
X434 246
X435 245
X436 246
X435 247
X436 247
X594 235
X595 235
X594 234
X595 234
X402 245
X402 246
X403 245
X404 246
X403 247
X404 247
X562 235
X563 235
X562 234
X563 234
X564 268
X564 269
X565 268
X565 269
X368 243
X369 243
X370 243
X371 243
X372 243
X373 248
X498 235
X499 235
X498 234
X499 234
X530 235
X531 235
X530 234
X531 234
X532 268
X532 269
X533 268
X533 269
X372 268
X372 269
X373 268
X373 269
X408 267
X404 268
X404 269
X405 268
X405 269
X370 235
X371 235
X370 234
X371 234
X436 268
X436 269
X437 268
X437 269
X402 235
X403 235
X402 234
X403 234
X468 268
X468 269
X469 268
X469 269
X434 235
X435 235
X434 234
X435 234
X500 268
X500 269
X501 268
X501 269
X466 235
X467 235
X466 234
X467 234
X467 247
X468 247
X466 245
X466 246
X467 245
X468 246
X658 235
X659 235
X658 234
X659 234
X499 247
X500 247
X498 245
X498 246
X499 245
X500 246
X692 268
X692 269
X693 268
X693 269
X690 235
X691 235
X690 234
X691 234
X660 268
X660 269
X661 268
X661 269
X755 247
X756 247
X754 245
X754 246
X755 244
X756 244
X757 245
X757 246
X816 171
X817 171
X816 170
X817 170
X948 273
X948 274
X949 273
X949 274
X948 268
X948 269
X949 268
X949 269
X930 191
X930 192
X929 191
X929 192
X946 235
X947 235
X708 140
X708 141
X709 140
X709 141
X710 363
X711 363
X710 362
X711 362
X598 259
X597 259
X598 256
X599 257
X599 258
X596 257
X596 258
X597 256
X787 247
X788 247
X786 245
X786 246
X787 244
X788 244
X789 245
X789 246
X848 171
X849 171
X848 170
X849 170
X727 304
X727 305
X728 304
X728 305
X980 273
X980 274
X981 273
X981 274
X980 268
X980 269
X981 268
X981 269
X962 191
X962 192
X961 191
X961 192
X978 235
X979 235
X740 140
X740 141
X741 140
X741 141
X742 362
X743 362
X742 363
X743 363
X630 259
X629 259
X630 256
X631 257
X631 258
X628 257
X628 258
X629 256
X946 234
X947 234
X819 247
X820 247
X818 245
X818 246
X819 244
X820 244
X821 245
X821 246
X1010 235
X1011 235
X1018 312
X1018 313
X1019 312
X1019 313
X1018 317
X1018 318
X1019 317
X1019 318
X774 362
X775 362
X759 304
X759 305
X760 304
X760 305
X990 183
X991 183
X993 186
X1033 312
X1028 237
X1009 187
X1009 185
X1009 186
X880 170
X881 170
X662 259
X661 259
X902 171
X902 174
X903 171
X904 171
X904 172
X904 174
X905 171
X905 173
X906 166
X1034 312
X1034 313
X1035 311
X1035 312
X1035 313
X1037 311
X1035 319
X1037 319
X1037 320
X790 361
X790 362
X792 360
X793 359
X662 256
X663 257
X663 258
X660 257
X660 258
X661 256
X1012 268
X1012 269
X1013 268
X1013 269
X1012 273
X1012 274
X1013 273
X1013 274
X782 306
X783 306
X784 303
X784 304
X785 303
X785 304
X782 296
X782 297
X782 298
X783 296
X783 297
X783 298
X978 234
X979 234
X1034 276
X1034 277
X1035 275
X1035 276
X1038 272
X1038 273
X1038 269
X1038 270
X851 247
X852 247
X850 245
X850 246
X851 244
X852 244
X853 245
X853 246
X722 99
X722 100
X723 99
X723 100
X722 104
X722 105
X723 104
X723 105
X1028 227
X760 296
X1018 191
X1014 192
X1015 194
X1017 194
X1035 230
X1036 230
X1034 238
X1014 186
X1015 183
X1015 184
X1016 183
X1017 184
X772 135
X772 136
X773 135
X773 136
X772 140
X772 141
X773 140
X773 141
X880 171
X881 171
X794 131
X794 132
X794 133
X795 131
X795 132
X796 133
X912 171
X913 171
X912 170
X913 170
X912 165
X912 166
X913 165
X913 166
X1034 317
X1034 318
X1035 317
X1035 318
X1043 313
X1043 314
X1044 314
X1042 321
X1043 316
X1043 317
X1044 316
X798 360
X798 370
X799 367
X1044 273
X1044 274
X1045 273
X1045 274
X1044 268
X1044 269
X1045 268
X1045 269
X774 367
X774 368
X775 367
X775 368
X1047 318
X1048 316
X1048 317
X1048 318
X1049 316
X1049 317
X1047 312
X1048 312
X1048 313
X1048 314
X1049 313
X1049 314
X770 131
X770 132
X771 131
X804 361
X803 367
X804 367
X804 369
X1023 185
X1025 185
X994 186
X993 191
X993 192
X994 191
X994 192
X1022 191
X1023 191
X1023 193
X1025 191
X1025 193
X802 134
X804 134
X1050 312
X1050 313
X1051 312
X806 361
X807 362
X1018 322
X734 105
X735 104
X735 106
X736 104
X736 106
X737 105
X734 99
X735 100
X736 100
X737 99
X806 367
X806 369
X807 368
X1026 186
X735 98
X736 98
X1026 192
X791 299
X791 300
X792 299
X792 300
X791 304
X791 305
X792 304
X792 305
X924 165
X925 164
X925 166
X924 171
X925 172
X1057 275
X777 295
X777 296
X777 297
X788 135
X788 136
X789 137
X788 140
X788 141
X788 142
X789 139
X1042 235
X1043 235
X926 170
X926 164
X926 166
X927 165
X926 172
X927 171
X694 256
X695 257
X695 258
X694 259
X806 305
X806 299
X1058 275
X1058 273
X1059 274
X1058 267
X1058 269
X1059 268
X882 245
X882 246
X883 244
X884 244
X885 245
X885 246
X802 136
X803 137
X804 136
X805 135
X798 139
X799 139
X801 140
X798 137
X799 137
X801 136
X802 140
X802 142
X803 139
X804 140
X804 142
X805 141
X883 247
X884 247
X936 165
X936 166
X937 165
X937 166
X936 171
X937 171
X936 170
X937 170
X1042 229
X1042 230
X1043 229
X1043 230
X788 134
X1009 191
X1009 192
X1009 193
X790 367
X790 368
X790 369
X792 370
X1066 319
X1066 320
X1067 319
X1068 320
X1069 319
X1068 318
X1069 318
X1066 311
X1067 311
X1068 312
X1069 311
X1069 312
X822 368
X822 369
X823 369
X824 368
X825 368
X825 369
X825 370
X822 361
X822 362
X823 361
X824 362
X825 360
X825 361
X825 362
X749 98
X746 99
X746 100
X747 99
X747 100
X746 104
X746 105
X747 104
X747 105
X749 106
X1038 191
X1038 192
X1039 193
X1040 191
X1040 193
X1041 192
X1041 193
X1038 186
X1039 185
X1040 185
X1041 185
X1041 186
X777 307
X777 308
X777 309
X1010 234
X1011 234
X1010 229
X1010 230
X1011 229
X1011 230
X1015 320
X1017 321
X1050 317
X1050 318
X1051 318
X818 139
X818 142
X819 140
X819 142
X820 141
X820 142
X821 142
X818 134
X819 131
X819 134
X820 134
X821 134
X818 137
X819 136
X820 135
END_OF_FILE
if test 33644 -ne `wc -c <'breeder.life'`; then
echo shar: \"'breeder.life'\" unpacked with wrong size!
fi
# end of 'breeder.life'
fi
if test -f 'get_pattern.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'get_pattern.c'\"
else
echo shar: Extracting \"'get_pattern.c'\" \(673 characters\)
sed "s/^X//" >'get_pattern.c' <<'END_OF_FILE'
X#
X#include <stdio.h>
X
Xvoid get_pattern(pp, buf, pplen, buflen)
Xchar **pp, *buf;
Xint pplen, buflen;
X{
X int rows, spaceleft;
X char *row;
X
X rows = 0;
X spaceleft = buflen;
X row = buf;
X
X while (spaceleft > 0 && rows < pplen-1) {
X /* Read a line from the standard input */
X pp[rows++] = row;
X while(spaceleft > 0) {
X int i;
X i = getchar();
X if (i == EOF) {
X *row = '\0';
X if (row == pp[rows-1]) rows--;
X pp[rows] = (char *) NULL;
X return;
X }
X spaceleft--;
X if ((*row = (char) i) == '\n') {
X *row++ = '\0';
X break;
X }
X row++;
X }
X }
X fprintf(stderr, "Input pattern overflow: too many rows or characters\n");
X exit(1);
X}
END_OF_FILE
if test 673 -ne `wc -c <'get_pattern.c'`; then
echo shar: \"'get_pattern.c'\" unpacked with wrong size!
fi
# end of 'get_pattern.c'
fi
if test -f 'makefile' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'makefile'\"
else
echo shar: Extracting \"'makefile'\" \(1207 characters\)
sed "s/^X//" >'makefile' <<'END_OF_FILE'
Xskewlife: skewlife.o get_pattern.o results.o
X cc skewlife.o get_pattern.o results.o -o skewlife
X
Xbigskewlife: bigskewlife.o get_pattern.o results.o
X cc bigskewlife.o get_pattern.o results.o -o bigskewlife
X
Xskewlife.o: results.h skewlife.c
X cc -DN1=1024 -DN2=1025 -O4 -c skewlife.c
X
Xbigskewlife.o: results.h
X cc -DN1=2048 -DN2=2049 -O4 -c skewlife.c -o bigskewlife.o
X
Xresults.o: results.h results.c
X cc -c results.c
X
Xresults.c: makeresults
X makeresults > results.c
X
Xmakeresults: makeresults.c
X cc -O2 makeresults.c -o makeresults
X
Xlint: skewlife.c get_pattern.c results.h
X lint skewlife.c get_pattern.c
X
Xpr: skewlife.c get_pattern.c results.h
X lpr -p skewlife.c get_pattern.c results.h
X
Xtest1: skewlife
X skewlife -g 1103 -p 1103 < rpent
X
Xtest2: skewlife
X skewlife -g 10000 -p 1000 < wabbit
X
Xtest3: bigskewlife
X bigskewlife -g 1000 -p 100 < puffer
X
Xtest4: bigskewlife
X bigskewlife -g 10000 -p 1000 < acorn
X
Xtest5: bigskewlife
X bigskewlife -g 1000 -p 100 -c < breeder.life
X
Xarchive: skewlife.c results.h get_pattern.c makeresults.c rpent makefile
Xarchive: wabbit puffer acorn breeder.life
X shar skewlife.c results.h get_pattern.c makeresults.c \
X rpent wabbit puffer acorn breeder.life makefile > archive
X
X
END_OF_FILE
if test 1207 -ne `wc -c <'makefile'`; then
echo shar: \"'makefile'\" unpacked with wrong size!
fi
# end of 'makefile'
fi
if test -f 'makeresults.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'makeresults.c'\"
else
echo shar: Extracting \"'makeresults.c'\" \(1870 characters\)
sed "s/^X//" >'makeresults.c' <<'END_OF_FILE'
X#
X
X/*
X * makeresults.c
X *
X * Program to generate 4x4 life table
X *
X */
X
X#define N16 65536
X
X/* Table containing four bit words that are the inner 2x2
X blocks obtained by evolving a 4x4 block for one generation.
X The cells in the 2x2 block and in the 4x4 block are
X numbered similarly, in row major order. */
X
Xint result[N16];
X
X/* Fill the result table */
X
X#define b(k) (01<<(k))
X#define B(x,k) (((x) & b(k)) != 0)
X#define bi(k) B(i,k)
X#define setbit(x,k) (x |= b(k))
X#define bitsum(i1,i2,i3,i4,i5,i6,i7,i8)\
X bi(i1)+bi(i2)+bi(i3)+bi(i4)+bi(i5)+bi(i6)+bi(i7)+bi(i8)
X
Xint trans[2][9] = { { 0, 0, 0, 1, 0, 0, 0, 0, 0 },
X { 0, 0, 1, 1, 0, 0, 0, 0, 0 } };
X
Xvoid result_fill()
X{
X int i;
X for (i=0; i<N16; i++) {
X int mask = 0, n = 0;
X /* For each of four inner bits, find number of
X neighbors and compute transition function */
X n = bitsum(0,1,2,4,6,8,9,10);
X if (trans[bi(5)][n]) setbit(mask,5);
X n = bitsum(1,2,3,5,7,9,10,11);
X if (trans[bi(6)][n]) setbit(mask,6);
X n = bitsum(4,5,6,8,10,12,13,14);
X if (trans[bi(9)][n]) setbit(mask,9);
X n = bitsum(5,6,7,9,11,13,14,15);
X if (trans[bi(10)][n]) setbit(mask,10);
X
X result[i] = mask;
X }
X}
X
X/* Main program: output C source for table containing
X quantities to update */
X
Xmain()
X{
X int i;
X int center = b(5) | b(6) | b(9) | b(10);
X
X result_fill();
X printf("unsigned short int gen_table[%d] = {\n", N16);
X for (i=0; i<N16; i++) {
X int g = result[i] ^ i;
X printf ("%5d", g & center);
X if (i == N16-1) printf(" };\n\n");
X else printf(",%c",(i%8==7? '\n' : ' '));
X }
X printf("short int delta_n_live[%d] = {\n", N16);
X for (i=0; i<N16; i++) {
X int g = result[i];
X printf ("%2d", B(g,5)+B(g,6)+B(g,9)+B(g,10)-
X B(i,5)-B(i,6)-B(i,9)-B(i,10));
X if (i == N16-1) printf(" };\n");
X else printf(",%c", (i%16==15 ? '\n' : ' '));
X }
X}
END_OF_FILE
if test 1870 -ne `wc -c <'makeresults.c'`; then
echo shar: \"'makeresults.c'\" unpacked with wrong size!
fi
# end of 'makeresults.c'
fi
if test -f 'puffer' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'puffer'\"
else
echo shar: Extracting \"'puffer'\" \(73 characters\)
sed "s/^X//" >'puffer' <<'END_OF_FILE'
X...o
X....o
Xo...o
X.oooo
X.
X.
X.
Xo
X.oo
X..o
X..o
X.o
X.
X.
Xo..o
X....o
Xo...o
X.oooo
END_OF_FILE
if test 73 -ne `wc -c <'puffer'`; then
echo shar: \"'puffer'\" unpacked with wrong size!
fi
# end of 'puffer'
fi
if test -f 'results.h' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'results.h'\"
else
echo shar: Extracting \"'results.h'\" \(68 characters\)
sed "s/^X//" >'results.h' <<'END_OF_FILE'
Xunsigned short int gen_table[65536];
Xshort int delta_n_live[65536];
END_OF_FILE
if test 68 -ne `wc -c <'results.h'`; then
echo shar: \"'results.h'\" unpacked with wrong size!
fi
# end of 'results.h'
fi
if test -f 'rpent' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'rpent'\"
else
echo shar: Extracting \"'rpent'\" \(10 characters\)
sed "s/^X//" >'rpent' <<'END_OF_FILE'
X oo
Xoo
X o
END_OF_FILE
if test 10 -ne `wc -c <'rpent'`; then
echo shar: \"'rpent'\" unpacked with wrong size!
fi
# end of 'rpent'
fi
if test -f 'skewlife.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'skewlife.c'\"
else
echo shar: Extracting \"'skewlife.c'\" \(13630 characters\)
sed "s/^X//" >'skewlife.c' <<'END_OF_FILE'
X#
X#include <stdio.h>
X#include <sys/types.h>
X#include <sys/times.h>
X#include "results.h"
X
X/*
X * Life program based on skewed 2x2 squares.
X * Paul F. Dietz, 1/12/90
X *
X * Usage: skewlife [-g <gen>] [-p <period>] [-v] [-c]
X *
X * Flags mean:
X * -g <gen> Run for <gen> generations (default 1000)
X * -p <period> Print report every <period> generations (default
X * 100).
X * -v When a report is printed, also print
X * a picture of the universe. This option
X * works only if the symbol LIVETRACK is
X * #define'd at compile time.
X * -c Read coordinates of cells rather than
X * a picture of the configuration. Compatible
X * with xlife format.
X *
X * The input pattern should be sent to the standard input as
X * a series of lines. The characters space and period represent
X * empty cells; other characters are live cells.
X *
X * This program represents an N1 x N2 array of cells (N1 even,
X * N2 odd) with "skewed wraparound". If the cells are numbered
X * [0..N1-1][0..N2-1], then the right neighbor of cell (i,N1-1) is
X * (i+2,0).
X *
X * The cells are actually represented by breaking the array into
X * 2x2 blocks. The blocks are (0..1,0..1),(0..1,2..3),...(0..1,N1-3..N1-2),
X * (0..1,N1-2..0), etc. The blocks are numbered from 0 to (N1*N2+2)/4 - 1.
X *
X * Each block has six adjacent blocks: two above, two on the sides,
X * and two below. If N3 = (N2-1)/2, then the numbers of the neighbors
X * of block i are i-N3-1, i-N3, i-1, i+1, i+N3 and i+N3+1.
X *
X * The program will actually store for each block a 16 bit word containing
X * the contents of the block and the 12 surrounding cells. The RESULT
X * of a 4x4 superblock is the value of the interior 2x2 block after one
X * generation of life. This is computed by table lookup. The array
X * result contains a bit string that is the bitwise difference between
X * the 4x4 superblock and the superblock obtained by replacing the
X * the inner 2x2 block with RESULT.
X *
X * When a superblock is updated, we must update the neighboring superblocks
X * whose boundary cells may have changed. The algorithm then marks
X * these superblocks (if they are different) and
X * will force them to be examined on the next generation.
X *
X * Certain blocks are boundary blocks. They are always forced to be
X * zero, and never change.
X *
X * Bits in a superblock are numbered:
X *
X * 0 1 2 3
X * 4 5 6 7
X * 8 9 10 11
X * 12 13 14 15
X *
X * If the symbol LIVETRACK is defined at compile time, additionl
X * code will be added that keeps track of which blocks contain live
X * cells. This slows the algorithm by ~10%.
X *
X * TO DO:
X *
X * Include code for graphic display (X?).
X */
X
X#define min(a,b) ((a) < (b) ? (a) : (b))
X#define max(a,b) ((a) > (b) ? (a) : (b))
X
X/* Constants
X
X N1 Number of rows; must be an even number.
X N2 Number of columns; must be an odd number.
X N3 The number of complete 2x2 blocks that can fit in N2 columns.
X N4 The total number of blocks (including a final partial
X block).
X */
X/*
XThis are defined by -D arguments to cc in the makefile
X#define N1 1024
X#define N2 1025
X*/
X#define N3 ((N2-1)/2)
X#define N4 (N1*N2+2)/4
X
X#define b(i) (01<<(i))
X
X/* Bit representation of neighbor set. In border blocks,
X the neighbor bit is always on. */
X
Xunsigned long int neighborarray[N4/32+1];
X
X#define IsNeighbor(c) (neighborarray[(c)>>5] & b((c)&0x1f))
X#define SetNeighbor(c) (neighborarray[(c)>>5] |= b((c)&0x1f))
X#define ClearNeighbor(c) (neighborarray[(c)>>5] &= ~b((c)&0x1f))
X#define AddNbr(k) if (!IsNeighbor(k)) { neighbors[n_neighbors++] = k; \
X SetNeighbor(k); }
X
X/* Superblock array */
X
Xunsigned short int sblocks[N4];
X
X/* Bit masks for extracting information from sblocks */
X
X#define TOP (b(5)|b(6))
X#define BOTTOM (b(9)|b(10))
X#define LEFT (b(5)|b(9))
X#define RIGHT (b(6)|b(10))
X#define CENTER (TOP|BOTTOM)
X
X/* Macros for accessing blocks */
X
X#define GetBit(block,i,j) ((block >> (5+(j)+4*(i))) & 01)
X#define SetBit(block,i,j) (block |= b(5+(j)+4*(i)))
X#define ClearBit(block,i,j) (block &= ~b(5+(j)+4*(i)))
X
X/* Compute the block associated with a cell */
X
X#define CellsBlock(i,j) ((((i)/2)*N2+(j))/2)
X
X/* Macros to access cells */
X
X#define GetCell(i,j) GetBit(sblocks[CellsBlock(i,j)],(i)%2,((j)+(i)/2)%2)
X#define SetCell(i,j) SetBit(sblocks[CellsBlock(i,j)],(i)%2,((j)+(i)/2)%2)
X#define ClearCell(i,j) ClearBit(sblocks[CellsBlock(i,j)],(i)%2,((j)+(i)/2)%2)
X
X#define CMAX N4/32
X
Xunsigned int gen; /* Number of generations that have passed */
Xunsigned int n_changed; /* Number of blocks that changed on the
X last pass. */
Xunsigned int changed[CMAX]; /* Indices of the blocks that changed. */
Xunsigned short int deltas[CMAX]; /* Changes in the central 2x2 block
X (bits 5,6, 9 and 10). */
Xunsigned int n_neighbors; /* Number of neighbors of these blocks. */
Xunsigned int neighbors[CMAX*7]; /* Neighbors of changed blocks */
X
X#ifdef LIVETRACK
X/* Addresses to live blocks */
Xunsigned int liveblocks[N4];
X/* Position in live block list of live blocks */
Xunsigned int invliveblocks[N4];
X/* Number of live blocks */
Xunsigned int n_live_blocks;
X#endif
X
Xunsigned int n_live; /* Number of live cells */
X
X/* Error routine if there are too many changed blocks. */
Xvoid life_overflow()
X{
X fprintf(stderr, "Overflow: too many blocks changed\n");
X exit(1);
X}
X
X/* Compute row, column of a cell in a block.
X Arguments are:
X k is index of block
X i,j (which are either 0 or 1) give the row, column of
X the cell in the central 2x2 subblock (0 is above 1).
X rp, cp Call-by-reference pointers for returning the absolute
X row, column of the cell.
X
X It should be the case that CellsBlock(*rp,*cp) == k.
X */
X
Xvoid rowcol(k,i,j,rp,cp)
Xunsigned int k,i,j,*rp,*cp;
X{
X *rp = 4*(k/N2)+i;
X *cp = 2*(k%N2)+j;
X if (*cp >= N2) {
X *cp -= N2;
X *rp += 2;
X }
X#ifdef DEBUG
X if (CellsBlock(*rp,*cp) != k) {
X printf("Error in rowcol: k=%d, i=%d, j=%d, *rp=%d, *cp=%d, CellsBlock==%d\n",
X k,i,j,*rp,*cp,CellsBlock(*rp,*cp));
X abort();
X }
X#endif DEBUG
X}
X
X/* Print the pattern to standard output */
X
X#ifdef LIVETRACK
X
Xvoid print_pattern()
X{
X unsigned int minr,maxr,minc,maxc, row,col,i;
X
X /* Find min, max rows and cols. */
X minr = N1; minc = N2;
X maxr= 0; maxc = 0;
X for (i=0; i<n_live_blocks; i++) {
X int block = liveblocks[i];
X int r,c;
X for (r=0; r<2; r++)
X for (c=0; c<2; c++)
X if (GetBit(sblocks[block],r,c)) {
X rowcol(block,r,c,&row,&col);
X if (CellsBlock(row,col) != block) {
X printf("Error: row = %d, col = %d, Cellsblock(%d,%d) = %d, block=%d\n",
X row, col, row, col,CellsBlock(row,col), block);
X abort();
X }
X minr = min(minr,row);
X maxr = max(maxr,row);
X minc = min(minc,col);
X maxc = max(maxc,col);
X }
X }
X /* Print patterm in the bounds */
X for (i=minr; i<=maxr; i++) {
X int j;
X for (j=minc; j<=maxc; j++)
X putchar(".o"[GetCell(i,j)]);
X putchar('\n');
X }
X}
X#endif
X
X/* Procedure to evolve the configuration for one generation.
X The guts of the algorithm. */
X
Xvoid evolve()
X{
X unsigned int i;
X
X /* First, find neighbors of changed blocks, and update their
X superblocks. */
X n_neighbors = 0;
X for (i=0; i<n_changed; i++) {
X unsigned int c = changed[i];
X unsigned short int d = deltas[i];
X unsigned int k;
X
X /* Add self to neighbor list */
X AddNbr(c);
X
X /* Do updates of six neighbors */
X if (d & TOP) {
X k = c-N3-1;
X sblocks[k] ^= (d & TOP) << 9;
X AddNbr(k);
X k++;
X sblocks[k] ^= (d & TOP) << 7;
X AddNbr(k);
X }
X if (d & LEFT) {
X k = c-1;
X sblocks[k] ^= (d & LEFT) << 2;
X AddNbr(k);
X }
X if (d & RIGHT) {
X k = c+1;
X sblocks[k] ^= (d & RIGHT) >> 2;
X AddNbr(k);
X }
X if (d & BOTTOM) {
X k = c+N3;
X sblocks[k] ^= (d & BOTTOM) >> 7;
X AddNbr(k);
X k++;
X sblocks[k] ^= (d & BOTTOM) >> 9;
X AddNbr(k);
X }
X }
X
X /* Now scan neighbors, looking for non-border cells
X that have changed. Update them and store if changed. */
X
X n_changed = 0;
X for (i=0; i<n_neighbors; i++) {
X unsigned int c = neighbors[i];
X unsigned short int s, d;
X
X ClearNeighbor(c);
X /* Find result */
X s = sblocks[c];
X d = gen_table[s];
X if (d) {
X n_live += delta_n_live[s];
X sblocks[c] ^= d;
X /*
X * Insert code here to change display bitmap.
X */
X if (n_changed >= CMAX) life_overflow();
X changed[n_changed] = c;
X deltas[n_changed++] = d;
X#ifdef LIVETRACK
X if (!(sblocks[c] & CENTER)) { /* Block died; remove it from
X list of live blocks */
X int l = invliveblocks[c];
X n_live_blocks--;
X liveblocks[l] = liveblocks[n_live_blocks];
X invliveblocks[liveblocks[l]] = l;
X } else if ((s & CENTER) == 0) { /* Block became live; add it
X to list */
X liveblocks[n_live_blocks] = c;
X invliveblocks[c] = n_live_blocks++;
X }
X#endif LIVETRACK
X }
X }
X gen++;
X}
X
X#define MAXINPUTCELLS 10000
Xunsigned int xin[MAXINPUTCELLS], yin[MAXINPUTCELLS];
Xunsigned int n_input_cells;
X
Xvoid add_cell(x,y)
Xunsigned int x,y;
X{
X if (n_input_cells >= MAXINPUTCELLS) {
X fprintf(stderr, "Too many input cells: %d maximum\n", MAXINPUTCELLS);
X exit(2);
X }
X xin[n_input_cells] = x;
X yin[n_input_cells++] = y;
X}
X
X/* Translate an input pattern into coordinates */
X
Xvoid translate_pattern(pp)
Xchar **pp;
X{
X unsigned int i, j;
X
X n_input_cells = 0;
X for (i=0; pp[i] != (char *) NULL; i++)
X for (j=0; pp[i][j]; j++)
X if (pp[i][j] != ' ' && pp[i][j] != '.') add_cell(i,j);
X}
X
X/* Alternate input routine: read cell coords from standard input.
X There are two coords x y on each line. */
X
Xvoid get_coords()
X{
X unsigned int x,y;
X while (scanf("%d %d\n",&x,&y) != EOF) add_cell(x,y);
X}
X
X
X/* Put cells, specified by coordinates in arrays xin[], yin[]
X into the universe. Center the collection on N1/2, N2/2.
X
X Also set up border bits.
X */
X
Xvoid put_cells()
X{
X int i;
X int minr, maxr, minc, maxc, deltar, deltac, r,c;
X /* Set up border cells */
X
X for (i=0; i<N2; i++) {
X SetNeighbor(CellsBlock(0,i));
X SetNeighbor(CellsBlock(N1-1,i));
X }
X for (i=0; i<N1; i++) SetNeighbor(CellsBlock(i,0));
X
X /* Place input cells */
X
X n_changed = n_live = n_neighbors = 0;
X#ifdef LIVETRACK
X n_live_blocks = 0;
X#endif
X
X if (n_input_cells == 0) return;
X
X /* Find offsets to center the input */
X
X minr = maxr = xin[0];
X minc = maxc = yin[0];
X for (i=1; i<n_input_cells; i++) {
X minr = min(minr,xin[i]);
X maxr = max(maxr,xin[i]);
X minc = min(minc,yin[i]);
X maxc = max(maxc,yin[i]);
X }
X
X r = maxr-minr+1;
X c = maxc-minc+1;
X if (r > N1-4) {
X fprintf(stderr, "Too many rows: %d (only %d allowed)\n", r, N1-4);
X exit(3);
X }
X if (c > N2-4) {
X fprintf(stderr, "Too many columns: %d (only %d allowed)\n", c, N2-4);
X exit(4);
X }
X
X deltar = (N1 - r)/2 - minr;
X deltac = (N2 - c)/2 - minc;
X
X for (i=0; i < n_input_cells; i++) {
X unsigned int ri, cj, k;
X ri = xin[i] + deltar;
X cj = yin[i] + deltac;
X k = CellsBlock(ri,cj);
X n_live++;
X if (sblocks[k] & CENTER) SetCell(ri,cj);
X else {
X SetCell(ri,cj);
X if (n_changed == CMAX) life_overflow();
X changed[n_changed++] = k;
X#ifdef LIVETRACK
X liveblocks[n_live_blocks] = k;
X invliveblocks[k] = n_live_blocks++;
X#endif
X }
X }
X for (i=0; i<n_changed; i++)
X deltas[i] = sblocks[changed[i]];
X}
X
Xchar *progname;
X
Xusage()
X{
X fprintf(stderr, "Usage: %s [-g <gens>] [-p <period>] [-v] [-c]\n", progname);
X fprintf(stderr, "Direct the input pattern to the standard input.\n");
X exit(1);
X}
X
X#define INPUTR 200
X#define INPUTC 200
X
X#define HZ 60
X
X/* Main routine */
X
Xvoid main(argc,argv)
Xint argc;
Xchar **argv;
X{
X struct tms start_time, stop_time;
X unsigned int total_changes,
X lastgen = 1000,
X report_interval = 100,
X next_report;
X#ifdef LIVETRACK
X int verbosep = 0;
X#endif
X int xlifep = 0;
X char *pat[INPUTR+1], rows[INPUTR*(INPUTC+1)];
X void get_pattern();
X
X progname = argv[0];
X argv++; argc--;
X while (argc) {
X if (argv[0][0] != '-') usage();
X switch (argv[0][1]) {
X case 'g':
X argv++; argc--;
X if (argc==0) usage();
X lastgen = atoi(argv[0]);
X if (lastgen <= 0) usage();
X break;
X case 'p':
X argv++; argc--;
X if (argc==0) usage();
X report_interval = atoi(argv[0]);
X if (report_interval < 1) usage();
X break;
X case 'v':
X#ifdef LIVETRACK
X verbosep = 1;
X#endif
X break;
X case 'c':
X xlifep = 1;
X break;
X default:
X usage();
X }
X argv++; argc--;
X }
X
X /* Read input */
X
X if (!xlifep) {
X get_pattern(pat,rows,INPUTR+1,INPUTR*(INPUTC+1));
X translate_pattern(pat);
X } else get_coords();
X put_cells();
X
X total_changes = n_changed;
X next_report = 0;
X gen = 0;
X
X /* Start simulation */
X
X times(&start_time);
X
X while (gen<lastgen) {
X if (gen >= next_report) {
X next_report = gen + report_interval;
X printf("g=%d, live cells=%d, block changes=%d\n",
X gen, n_live, n_changed);
X#ifdef LIVETRACK
X if (verbosep) print_pattern();
X#endif
X }
X evolve();
X total_changes += n_changed;
X }
X
X times(&stop_time);
X
X printf("Stopped at g=%d, live=%d, total block changes=%d\n", gen, n_live,
X total_changes);
X#ifdef LIVETRACK
X printf("Live blocks = %d\n", n_live_blocks);
X if (verbosep) print_pattern();
X#endif
X printf("Total user time: %9.3f seconds\n",
X (double)(stop_time.tms_utime-start_time.tms_utime)/HZ);
X exit(0);
X}
END_OF_FILE
if test 13630 -ne `wc -c <'skewlife.c'`; then
echo shar: \"'skewlife.c'\" unpacked with wrong size!
fi
# end of 'skewlife.c'
fi
if test -f 'wabbit' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'wabbit'\"
else
echo shar: Extracting \"'wabbit'\" \(36 characters\)
sed "s/^X//" >'wabbit' <<'END_OF_FILE'
Xo.....o.
X..o...o.
X..o..o.o
X.o.o....
END_OF_FILE
if test 36 -ne `wc -c <'wabbit'`; then
echo shar: \"'wabbit'\" unpacked with wrong size!
fi
# end of 'wabbit'
fi
echo shar: End of archive 1 \(of 1\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have the archive.
rm -f ark[1-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0