[net.sources.games] Source to the "Forum" letter generator

megabyte@chinet.UUCP (Dr. Megabyte) (07/31/86)

Ok,
  After 10 plus requests for this, and as my own personal protest of
Ed Meese and Co., here it is. 

   The opinions expressed herein are my own and do not reflect those of 
anyone else or any organization

"And when they ask me, 'What are you looking at?'
 I always tell them, nothing much"
--------------------------------------------------------------------------
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
#	makefile
#	ret.c
#	ret.1
#	words.h
# This archive created: Tue Jul 15 21:52:55 1986
export PATH; PATH=/bin:/usr/bin:$PATH
echo shar: "extracting 'makefile'" '(64 characters)'
if test -f 'makefile'
then
	echo shar: "will not over-write existing file 'makefile'"
else
cat << \SHAR_EOF > 'makefile'
letter: ret.o words.h
	cc -s -O ret.o -o letter
	/bin/rm ret.o

SHAR_EOF
fi
echo shar: "extracting 'ret.c'" '(12283 characters)'
if test -f 'ret.c'
then
	echo shar: "will not over-write existing file 'ret.c'"
else
cat << \SHAR_EOF > 'ret.c'
#include "words.h"

main()
{

	long time();
	int rnd(), n, which, howmany;
	char p(), *name;

	srand(time(0));

	name = one(names);
	which=rnd(2);
	if (which == 0)
		printf("Dear Penthouse:\n\n");
	if (which == 1)
		printf("Dear Sirs:\n\n");

	which=rnd(6);
	if (which == 0)
	{
		printf("\tLet me tell you just how %s\n",one(adj));
		printf("life can be!\n");
	};
	if (which == 1)
	{
		printf("\tI've read a lot of forum letters, and\n");
		printf("not believed a word of them, until I had\n");
		printf("the most %s experience of my life%c\n",one(adj),p());
	};
	if (which == 2)
	{
		printf("\tWhat a %s day%c\n",one(adj),p());
	};
	if (which == 3)
	{
		printf("I know you're not going to believe this,\n");
		printf("but this really happened%c\n",p());
	};
	if (which == 4)
	{
		printf("I'm a %s, %s guy,\n",one(adj),one(madj));
		printf("and I'm going with the most %s girl you have ever seen%c\n",one(fadj),p());
	}
	if (which == 5)
	{
		printf("%s and I have been meaning to write for a long time.\n",name);
	}

	which=rnd(4);
	if (which == 0)
	{
		printf("One day, I was outside,\n");
		printf("spring cleaning my %s %s%c\n",one(adj),one(noun),p());
	};
	if (which == 1)
	{
		printf("Just yesterday, I was out in my\n");
		printf("back yard, %s %sing my %s %s%c\n",one(adv),one(pen),one(fadj),one(noun),p());
	};
	if (which == 2)
	{
		printf("As I remember, I was so wasted, I was trying\n");
		printf("to see if you could get off on %s %sing%c\n",one(noun),one(stim),p());
	};
	if (which == 3)
	{printf("One Saturday night, after I had just returned from a grueling game of squash,\n");
	printf("I was ready to jump into the shower when %s,\n",name);
	printf("our %s stuck-up neighbor,\n",one(adj));
	printf("came in wantint to talk to me about our physics homework.\n");
	}

	which=rnd(3);
	if (which == 0)
	{
		printf("Then, a car stopped in front of my house,\n");
		printf("and this %s %s jumped out,\n",one(fadj),one(girl));
		printf("walked right up to me and %sed me\n",one(stim));
		printf("right on the %s%c\n",one(tongue),p());
	};
	if (which == 1)
	{
		printf("Then, this %s\n",one(fadj));
		printf("%s walked up, and asked me my name!\n",one(girl));
	};
	if (which == 2)
	{
		printf("I glanced up, and there stood\n");
		printf("a %s beautiful %s %s\n",one(adv),one(fadj),one(girl));
		printf("wearing a %s %s%c\n",one(adj),one(clo),p());
	};

	which=rnd(2);
	if (which == 0)
	{
		printf("This seemed a bit odd, but I, being a\n");
		printf("pretty %s %s, thought it was just %s\n",one(madj),one(boy),one(adj));
		printf("enough to be %s.\n",one(adj));
	};
	if (which == 1)
	{
		printf("I was a bit surprised, of course, but I\n");
		printf("didn't mind a bit.\n");
	};

	which=rnd(4);
	if (which == 0)
	{
		printf("After the usual %sing about the\n",one(talk));
		printf("weather, and the %s on television, I\n",one(noun));
		printf("asked her in to see my house.\n");
	};
	if (which == 1)
	{
		printf("We %sed for a while, then\n",one(talk));
		printf("I invited her inside.\n");
	};
	if (which == 2)
	{
		printf("As neither of us was in a hurry,\n");
		printf("she and I wandered inside, away from\n");
		printf("prying eyes.\n");
	};
	if (which == 3)
	{
		printf("Since we were such a %s pair, we\n",one(adj));
		printf("decided to vanish into the %s depths of\n",one(adj));
		printf("the dark house.\n");
	};

	which = rnd(3);
	if (which == 0)
	{
		printf("When we got in the\n");
		printf("door, she turned into a different person!\n");
	};
	if (which == 1)
	{
		printf("Once inside, out of sight, she\n");
		printf("%sed that she was a rather forward\n",one(talk));
		printf("sort of girl, and hoped I didn't object!\n");
	};
	if (which == 2)
	{
		printf("\"%s\" she %sed, indicating that\n",one(exc),one(talk));
		printf("she was both horny and %s.\n",one(fadj));
	};

	which=rnd(2);
	if (which==0)
	{
		printf("I could tell that we both were %s\n",one(adj));
		printf("enough to get %s, and she %sed that\n",one(reac),one(talk));
	};
	if (which==1)
	{
		printf("She %sed how much she was attracted to my\n",one(talk));
		printf("%s body (I am a %s %s), and\n",one(madj),one(madj),one(boy));
	};

	which = rnd(3);
	if (which == 0)
	{
		printf("her boyfriend, the %s %s, hadn't\n",one(fadj),one(boy));
		printf("%sed her, or even %sed her %s\n",one(pen),one(stim),one(tits));
		printf("in %d days.\n",rnd(43)+2);
	};
	if (which == 1)
	{
		printf("she usually %sed with her %s,\n",one(pen),one(rel));
		printf("but her whole family had gone away to\n");
		printf("see her %s %s, the %s.\n",one(adj),one(rel),one(girl));
	};
	if (which == 2)
	{
		printf("she hadn't seen her %s boyfriend since\n",one(fadj));
		printf("he started %sing with her %s.\n",one(pen),one(rel));
	};

	which = rnd(2);
	if (which == 0)
	{
		printf("The way she kept letting me see flashes\n");
		printf("of her %s, I began to suspect that she was\n",one(hers));
		printf("ready for %s %s %sing.\n",one(some),one(adj),one(pen));
	};
	if (which == 1)
	{
		printf("She then began %sing my %s %s %s\n",one(stim),one(madj),one(part),one(adv));
		printf("under my %s, and I began to get the\n",one(clo));
		printf("idea that she was horny (%d years of\n",rnd(5)+5);
		printf("college hasn't exactly made me dumb!).\n");
	};

	which = rnd(2);
	if (which == 0)
	{
		printf("Of course, I %sed her %s %s.\n",one(stim),one(tits),one(adv));
	};
	if (which == 1)
	{
		printf("I returned the favor, of course, and\n");
		printf("began %sing her %s %s.\n",one(stim),one(fadj),one(tits));
	};

	which=rnd(2);
	if (which == 0)
	{
		printf("She looked into\n");
		printf("my %s eyes, and suddenly placed her %s\n",one(madj),one(part));
		printf("against my %s!\n",one(his));
	};
	if (which == 1)
	{
		printf("\"%s!\" I said suddenly,\n",one(exc));
		printf("as she had just slipped her %s\n",one(fadj));
		printf("hand down my %s and grabbed my %s!\n",one(clo),one(his));
	};

	which=rnd(2);
	if (which == 0)
		printf("I understood instantly!\n");
	if (which == 1)
		printf("I knew what she had on her %s mind.\n",one(fadj));

	which=rnd(2);
	if (which == 0)
	{
		printf("She %sed that she was %s (I agreed\n",one(talk),one(adj));
		printf("with her), and I %sed that I was\n",one(talk));
		printf("too (%s so!).\n",one(adv));
	};
	if (which == 1)
	{
		printf("We raced %s up to my room, where she %sed\n",one(adv),one(talk));
		printf("that she loved my %s %s collection.\n",one(adj),one(noun));
	};

	which = rnd(2);
	if (which == 0)
	{
		printf("After a little %s %sing, we\n",one(adj),one(stim));
		printf("put Brian Eno's album, \"The way you\n");
		printf("%s my %s's %s\" on the\n",one(stim),one(rel),one(noun));
		printf("stereo (at the wrong speed!).\n");
	};
	if (which == 1)
	{
		printf("Then she climbed onto my %s and got down to\n",one(noun));
		printf("business.\n");
	};

	if (rnd(3)<2)
	{
		printf("She smiled as I removed\n");
		printf("her %s %s %s.\n",one(fadj),one(clo),one(adv));
	};

	if (rnd(2) == 0)
	{
		printf("I %sed her %s %s\n",one(stim),one(fadj),one(tits));
		printf("with my whole face!\n");
	};
	if (rnd(3) == 0)
	{
		printf("I %sed her %s %s until\n",one(stim),one(fadj),one(tits));
		printf("she %s %s!\n",one(reac),one(adv));
	};

	which = rnd(2);
	if (which == 0)
	{
		printf("She %s peeled off my remaining clothes\n",one(adv));
		printf("so that she could %s my %s with her %s!\n",one(stim),one(his),one(tongue));
	};
	if (which == 1)
	{
		printf("She then undid\n");
		printf("my %s %s, revealing a %s %s at attention.\n",one(clo),one(adv),one(madj),one(his));
	};

	which = rnd(2);
	if (which == 0)
	{
		printf("She %sed it with her %s %s, making it\n",one(stim),one(fadj),one(tongue));
		printf("even more %s than it normally is.\n",one(madj));
	};
	if (which == 1)
	{
		printf("She %sed it all over with her %s\n",one(stim),one(fadj));
		printf("%s, until it was %s to her liking.\n",one(tits),one(madj));
	};

	which=rnd(3);
	if (which == 0)
		printf("Then we undressed.\n");
	if (which == 1)
		printf("We then ripped each others' clothes off.\n");
	if (which == 2)
	{
		printf("I tore her clothes off so I could get\n");
		printf("at her %s %s.\n",one(fadj),one(hers));
	};

	if (rnd(3)<1)
		printf("She was %s!\n",one(fadj));

	if (rnd(4)<1)
		printf("I couldn't keep my eyes (or hands) off her!\n");

	if (rnd(2)<1)
	{
		printf("I was so excited, that after only\n");
		printf("%d minutes of %sing her %s %s, I\n",rnd(100),one(stim),one(fadj),one(tits));
		printf("jumped on her and %sed her for all I was worth!\n",one(pen));
	};

	if (rnd(3)<1)
	{
		printf("\"%s!\" she %sed,\n",one(exc),one(talk));
		printf("as I %sed my %s %s\n",one(pen),one(madj),one(his));
		printf("into her %s, %s %s.\n",one(fadj),one(fadj),one(hers));
	};

	/*   read of "add.c" here      locate by token ;;; */


	if (rnd(5) == 0) {
		printf("The %s %s as the I %s lowered\n",one(noun),one(reac),one(adv));
		printf("my %s %s toward her naked %s body.\n",one(madj),one(his),one(fadj));
	};

	if (rnd(3) == 0) {
		printf("She %s %s me %s as I %sed her %s with\n",one(adv),one(stop),one(vain),one(pen),one(hers));
		printf("my %s, %s %s!\n",one(adj),one(madj),one(his));
	};

	if (rnd(5) == 0) {
		printf("After I had\n%sed my %s %s\n",one(pen),one(madj),one(his));
		printf("inside her %s %s, I heard her %sing that\n",one(fadj),one(hers),one(talk));
		printf("I was a \"%s %s %s with a %s %s %s.\"\n",one(adj),one(adj),one(boy),one(madj),one(madj),one(his));
	};

	if (rnd(6) == 0)
		printf("She then %s %s %sed me on our %s %s %s!\n",one(adv),one(adv),one(pen),one(adj),one(adj),one(noun));

	if (rnd(5) == 0) {
		printf("\"I wish I could have been %sed,\" she %sed, as the two of\n",one(pen),one(talk));
		printf("us used the %s %s, with the %s looking on.\n",one(adj),one(noun),one(noun));
	};

	if (rnd(3) == 0) {
		printf("\"You're %sing me!\" she %sed, lying down on my %s %s\n",one(pen),one(talk),one(adj),one(noun));
		printf("as I %s massaged her %s %s %s with my %s %s.\n",one(adv),one(fadj),one(fadj),one(tits),one(madj),one(tongue));
	};

	if (rnd(6) == 0) {
		printf("\"%s!\" %sed my friend, the %s %s as I\n",one(exc),one(talk),one(fadj),one(girl));
		printf("%sed her %s %s\n",one(stim),one(fadj),one(tits));
		printf("and %sed my %s %s into her %s %s.\n",one(pen),one(madj),one(his),one(fadj),one(hers));
	};

	if (rnd(4) == 0) {
		printf("\"That reminds me of my %s's %s %s %s!\"\n",one(rel),one(adj),one(adj),one(noun));
		printf("she %sed as she %s %sed my %s %s\n",one(talk),one(adv),one(stim),one(madj),one(his));
		printf("with her %s %s %s.\n",one(adv),one(fadj),one(tongue));
	};

	if (rnd(3) == 0) {
		printf("I %sed her and %sed her %s with my %s\n",one(pen),one(stim),one(tits),one(madj));
		printf("%s until she %sed for me to start %sing her %s instead!\n",one(tongue),one(talk),one(stim),one(hers));
	};

	if (rnd(6) == 0) {
		printf("Her %s gay %s shook his %s %s %s at\n",one(fadj),one(boy),one(fadj),one(fadj),one(his));
		printf("her %s body and called her a %s, %s %s (?).\n",one(madj),one(madj),one(madj),one(girl));
	};

	which = rnd(3);
	if (which == 0)
	{
		printf("After we were through, though, she just\n");
		printf("dressed, %sed my %s a last\n",one(stim),one(his));
		printf("time, and left.\n");
	};
	if (which == 1)
	{
		printf("After that, we fell asleep, and when\n");
		printf("I awoke, she was gone.\n");
	};
	if (which == 2)
	{
		printf("I was so zonked by it, I just crashed.\n");
		printf("When I came to, I found a note:\n\n");
		printf("Dear %s %s:\n\n",one(madj),one(boy));
		printf("\tIt was %s.  I loved the way you\n",one(adj));
		printf("%sed me, but I am not as %s as you.\n",one(pen),one(madj));
		printf("You're really %s in my book!\n\n",one(adj));
		printf("\t\t\tLust,\n\n");
		printf("\t\t\t\tyour %s %s\n\n",one(fadj),one(girl));
	};

	which=rnd(3);
	if (which == 0)
		printf("I never saw her again, but if I do, I won't mind!\n\n");
	if (which == 1)
	{
		printf("We never met again, but some lucky guy\n");
		printf("may have the %s experience I had!\n\n",one(adj));
	};
	if (which == 2)
	{
		printf("I've %sed a lot of %ss since\n",one(pen),one(girl));
		printf("then, but none of them have been as\n");
		printf("%s as she was.\n\n",one(fadj));
	};

}

int
rnd(range)
int range;
{
	int rand();

	return range == 0 ? 0 : (rand()>>6)%range;
}

char
p()
{
	if (rnd(5)<1)
		return '!';
	else
		return '.';
}
SHAR_EOF
fi
echo shar: "extracting 'ret.1'" '(1112 characters)'
if test -f 'ret.1'
then
	echo shar: "will not over-write existing file 'ret.1'"
else
cat << \SHAR_EOF > 'ret.1'
.TH LETTER 6
.SH NAME
letter \- pornographic letter generating program
.SH SYNOPSIS
.I /usr/games/letter
.SH DESCRIPTION
.I Letter
is a mindless program which generates dirty letters. (purportedly to the
editor of Penthouse magazine) It works by meandering through a story
outline, filling in slots with words from compiled-in lists.
The result is written to the standard output.
.SH CAVEAT
This program should not be run by anyone who is easily offended.
.SH AUTHOR
You wouldn't admit to having written this program, so I don't see why you
expect someone else to.
.SH FILES
.SH "SEE ALSO"
rogue(6) \- for some good
.I clean
fun.
.SH DIAGNOSTICS
none
.SH BUGS
Output should be run through
.I fmt.
.sp
The nature of the story doesn't vary much, and the choice of words is
rather limited, so it gets boring real quickly.
.sp
Makes grammatical errors, which are sometimes amusing.
.sp
Has no knowledge of human anatomy, so it glibly describes acts which are
physically impossible (or at least very, very improbable).
.sp
Output should be rot13'd.
.sp
You should be ashamed of yourself for running this program. ;-)
SHAR_EOF
fi
echo shar: "extracting 'words.h'" '(9370 characters)'
if test -f 'words.h'
then
	echo shar: "will not over-write existing file 'words.h'"
else
cat << \SHAR_EOF > 'words.h'
#include <stdio.h>

#define one(type) type[rnd(n/**/type)]

static char *exc[] = {
	"You're making me come",
	"Ooooh baby",
	"Hot cookies",
	"Let me wrap my tongue around it",
	"Brown gobbets up I throw",
	"Gesellschaft fur Schwerionenforschung",
	"Sweet Jesus",
	"Gag me with a spoon",
	"Not that",
	"I never dreamed it would be like this",
	"Faster",
	"I'm CCCUUUMMMIIINNNGGG!!",
	"If I do, you won't respect me",
	"At last",
	"Land o' Goshen",
	"Golly",
	"Oh, my",
	"Gee whiz",
	"Wow",
	"Whoopee",
	"Yum",
	"Aaaaahhhh",
	"Aaaargh",
	"Is that all???",
	"Hot dog",
	"Nee",
	"Take me",
	"Harder",
	"More",
	"Holy Shit",
	"OhMyGod",
	"@#$%&*(%",
	"What a huge one",
	"That's the biggest one I ever saw",
	"Oh, what a beauty",
	"My God, you're killing me",
	"Oh, boy",
	"Is it in yet?",
	};

#define nexc (sizeof exc / sizeof (char *))

static char *adv[] = {
	"playfully",
	"enthusiastically",
	"deliciously",
	"deliriously",
	"madly",
	"in an odd way",
	"with ecstacy",
	"solemnly",
	"passionately",
	"silently",
	"backwards",
	"carefully",
	"loudly",
	"sexily",
	"sleepily",
	"quickly",
	"slowly",
	"voluptuously",
	"sloppily",
	"horribly",
	"with tremendous passion",
	"casually",
	"steadily",
	"nervously",
	"frantically",
	"at a frenzied pace",
	"luxuriously",
	"with her beautifully wet lips",
	"with trembling hands",
	"finally",
	"with surprising ease",
	"languorously",
	"self-indulgently",
	"rhythmically",
	"gently",
	"wetly"
	};

#define nadv (sizeof adv / sizeof (char *))

static char *adj[] = {
	"slow, noisy, and harmless",
	"cute",
	"feathery",
	"furry",
	"fuzzy",
	"bushy",
	"warm",
	"dead",
	"lifeless",
	"dried up",
	"broken",
	"electric",
	"Lilliputian",
	"bare",
	"slavering",
	"juicy",
	"heaving",
	"succulent",
	"lust-crazed",
	"satanic",
	"spurting",
	"long",
	"short",
	"slippery",
	"slick",
	"sloppy",
	"big",
	"small",
	"wet",
	"sexy",
	"smooth",
	"huge",
	"quivering",
	"throbbing",
	"pulsating",
	"stout",
	"massive",
	"humming",
	"little",
	"single",
	"bouncing",
	"youthful",
	"firm",
	"protuberant",
	"now-naked",
	"globular",
	"hot",
	"fleshy",
	"beautiful",
	"torrid",
	"erect",
	"hovering"
	};

#define nadj (sizeof adj / sizeof (char *))

static char *fadj[] = {
	"globular",
	"puckered",
	"willing",
	"threaded",
	"cute",
	"feminine",
	"pretty",
	"bare",
	"pink",
	"juicy",
	"succulent",
	"straining",
	"crinkled",
	"big",
	"soft",
	"quivering",
	"wet",
	"smooth",
	"tight",
	"naked",
	"ready",
	"pulsating",
	"sluttish",
	"aromatic",
	"perfumed",
	"shaved",
	"dripping",
	"sopping",
	"soaked",
	"seething",
	"molten",
	"moist",
	"hot",
	"waiting",
	"round",
	"inviting",
	"ample",
	"irresistible",
	"shapely",
	"luscious",
	"delicious",
	"red",
	"pixieish",
	"large",
	"magnificent",
	"creamy white",
	"parted",
	"neatly trimmed",
	"glistening",
	"exposed",
	"girlish"
	};

#define nfadj (sizeof fadj / sizeof (char *))

static char *madj[] = {
	"eight-inch",
	"wonderful",
	"steely",
	"threaded",
	"masculine",
	"swollen",
	"barbed",
	"rigid",
	"insatiable",
	"dribbling",
	"vile",
	"bursting",
	"glistening",
	"prodigious",
	"purple",
	"rampaging",
	"warty",
	"foaming",
	"hairy",
	"gorged",
	"prosthetic",
	"spurting",
	"long",
	"big",
	"sexy",
	"manly",
	"macho",
	"muscular",
	"rock-hard",
	"huge",
	"pulsating",
	"dripping",
	"throbbing",
	"bent",
	"aroused",
	"enormous",
	"erect",
	"stiff",
	"muscular",
	"lovely",
	"tremendous",
	"straining",
	"warm",
	"giant",
	"languid",
	"extraordinary",
	"turgid"
	};

#define nmadj (sizeof madj / sizeof (char *))

static char *talk[] = {
	"quipp",
	"cackl",
	"confess",
	"hiss",
	"bellow",
	"yelp",
	"croak",
	"pant",
	"grunt",
	"laugh",
	"warbl",
	"sigh",
	"ejaculat",
	"whisper",
	"wheez",
	"squeal",
	"whimper",
	"stammer",
	"gasp",
	"yelp",
	"begg",
	"plead",
	"promis",
	"yell",
	"scream",
	"shriek",
	"breath",
	"yipp",
	"moan",
	"giggl",
	"murmur",
	"purr",
	"babbl"
	};

#define ntalk (sizeof talk / sizeof (char *))

static char *his[] = {
	"fuck-stick",
	"scepter",
	"schlong",
	"majesty",
	"plunger",
	"piston",
	"tool",
	"manhood",
	"kidney prodder",
	"intruder",
	"dick",
	"rod",
	"cock",
	"prick",
	"meat",
	"penis",
	"joystick",
	"stickshift",
	"column",
	"shaft",
	"love organ",
	"pecker",
	"glans",
	"pet",
	"member"
	};

#define nhis (sizeof his / sizeof (char *))

static char *hers[] = {
	"orifice",
	"mouth",
	"love hole",
	"nostril",
	"belly button",
	"box",
	"cavern",
	"quim",
	"cunt",
	"slit",
	"bearded clam",
	"jam jar",
	"tunnel",
	"vagina",
	"pussy",
	"snatch",
	"twat",
	"hole",
	"cunny",
	"asshole"
	};

#define nhers (sizeof hers / sizeof (char *))

static char *tits[] = {
	"gazongas",
	"groodies",
	"goodies",
	"hooters",
	"knobs",
	"charms",
	"mountains",
	"twin peaks",
	"nubs",
	"buds",
	"globes",
	"buns",
	"radomes",
	"knockers",
	"love clappers",
	"mounds",
	"warp drive engines",
	"teats",
	"titties",
	"boobs",
	"protuberances",
	"breasts",
	"melons",
	"mouth",
	"tits",
	"mammaries",
	"ear"
	};

#define ntits (sizeof tits / sizeof (char *))

static char *pen[] = {
	"shov",
	"stuff",
	"pok",
	"pump",
	"irrigat",
	"squish",
	"plung",
	"squeez",
	"cramm",
	"wriggl",
	"drill",
	"jamm",
	"ramm",
	"inject",
	"penetrat",
	"slipp",
	"forc",
	"eas",
	"fuck",
	"pound",
	"slamm",
	"twist"
	};

#define npen (sizeof pen / sizeof (char *))

static char *noun[] = {
	"peanut butter",
	"napalm",
	"butterscotch pudding",
	"terminal",
	"glasses",
	"dynamite",
	"vacuum cleaner",
	"eggbeater",
	"frog",
	"flower garden",
	"Spam",
	"bed",
	"candle",
	"rubber sheets",
	"whipped cream",
	"soap",
	"sheets",
	"satin sheets",
	"wet sheets",
	"tabletop",
	"chair",
	"Wesson oil",
	"knee",
	"Girl Scout",
	"waterbed",
	"computer",
	"Brownie Scout",
	"rocking bed",
	"Bluebird",
	"vibrator",
	"vibrating bed",
	"fire"
	};

#define nnoun (sizeof noun / sizeof (char *))

static char *reac[] = {
	"gasped",
	"heaved",
	"trembled",
	"exploded",
	"shook",
	"quivered",
	"withdrew",
	"shrank away",
	"choked",
	"gagged",
	"blushed"
	};

#define nreac (sizeof reac / sizeof (char *))

static char *stop[] = {
	"played with",
	"shit on",
	"squealed at",
	"struggled with",
	"fought with",
	"cried on",
	"kicked",
	"distracted",
	"thrashed",
	"cussed at",
	"acquiesced to",
	"surrendered to",
	"pleaded with",
	"begged",
	"pounded"
	};

#define nstop (sizeof stop / sizeof (char *))

static char *boy[] = {
	"Man of La Mancha",
	"corpse",
	"hunchback",
	"friar",
	"archduke",
	"robot",
	"midget",
	"hired hand",
	"great Dane",
	"lecherous lickspittle",
	"faggot butler",
	"paraplegic pothead",
	"dirty old man",
	"egg-sucking chicken flicker",
	"rabid donkey",
	"electric eel",
	"guy",
	"man",
	"baby seal",
	"high school student",
	"doctor",
	"grown man",
	"football player",
	"boy"
	};

#define nboy (sizeof boy / sizeof (char *))

static char *girl[] = {
	"triple-breasted whore of Eroticon Six",
	"wanton hussy",
	"kitchen slut",
	"unfortunate woman",
	"female impersonator",
	"45-year-old virgin",
	"bull-dyke leather freak",
	"defrocked nun",
	"militant feminist",
	"Catholic high school girl",
	"babysitter",
	"attractive green alien",
	"Olympic gold medal winner",
	"campus whore",
	"english teacher",
	"grandmother of fifty",
	"nine-year-old nymphomaniac",
	"girl",
	"wench",
	"duchess",
	"woman",
	"baby"
	};

#define ngirl (sizeof girl / sizeof (char *))

static char *stim[] = {
	"nibbl",
	"suck",
	"grabb",
	"pinch",
	"buzz",
	"attack",
	"kiss",
	"defil",
	"nuzzl",
	"diddl",
	"fondl",
	"mouth",
	"tweak",
	"devour",
	"rubb",
	"smear",
	"tongu",
	"strok",
	"flick",
	"tickl"
	};

#define nstim (sizeof stim / sizeof (char *))

static char *rel[] = {
	"sister",
	"brother",
	"mother",
	"father",
	"cousin",
	"aunt",
	"uncle",
	"niece",
	"nephew",
	"grandfather",
	"grandmother",
	"grandma",
	"grandpa",
	"daughter",
	"son",
	"friend",
	"arch-enemy",
	"next door neighbor",
	"pet parakeet",
	"dog"
	};

#define nrel (sizeof rel / sizeof (char *))

static char *vain[] = {
	"idiotically",
	"ironically",
	"for no good reason",
	"to no avail",
	"uselessly",
	"pointlessly",
	"in vain",
	"for no reason"
	};

#define nvain (sizeof vain / sizeof (char *))

static char *some[] = {
	"some",
	"a little",
	"a bit of"
	};

#define nsome (sizeof some / sizeof (char *))

static char *tongue[] = {
	"tongue",
	"yahzick",
	"lick stick",
	"eyes",
	"nose",
	"finger",
	"mouth",
	"lips",
	"foot"
	};

#define ntongue (sizeof tongue / sizeof (char *))

static char *clo[] = {
	"shirt",
	"blouse",
	"pants",
	"skirt",
	"sock",
	"underwear",
	"underoos",
	"bra",
	"panties",
	"garter belt",
	"dress",
	"bikini",
	"shoe",
	"shorts",
	"tights"
	};

#define nclo (sizeof clo / sizeof (char *))

static char *part[] = {
	"arm",
	"leg",
	"hand",
	"foot",
	"face",
	"ear",
	"nose",
	"eye",
	"mouth",
	"neck",
	"torso",
	"thorax",
	"chest",
	"abdomen",
	"thigh",
	"shin",
	"toe",
	"finger",
	"knee",
	"hip",
	"wrist",
	"elbow",
	"forearm",
	"scalp",
	"hair",
	"earlobe",
	"throat",
	"stomach",
	"tummy",
	"belly",
	"thumb",
	"heel",
	"instep",
	"underarm",
	"navel",
	"crotch",
	"palm"
	};

#define npart (sizeof part / sizeof (char *))

static char *names[] = {
	"Lois",
	"Loryn",
	"Linda",
	"Kathy",
	"Becky",
	"Kate",
	"Barbara",
	"Sue",
	"Lisa",
	"Gloria",
	"Laura",
	"Judy",
	"Donna",
	"Beth",
	"Darla",
	"Janet",
	"Michelle",
	"Anita",
	"Debbie",
	"Rachel",
	"Eileen",
	"Cindy",
	"Lynne",
	"June",
	"Julia",
	"Jeannie"
	};

#define nnames (sizeof names / sizeof (char *))
SHAR_EOF
fi
exit 0
#	End of shell archive