This is the take-home final exam, it counts for 15% of your grade. Please mail it to xiaoge@cs.nyu.edu by May 6, 1999 before 5:00PM. No late submissions will be accepted. Problem number 1: (You can use the shell(C, korn, Bourne), awk, sed, PERL and/or other utilities listed in chapter 7) Write a system for distributing software electronically with the following features: A. There is a database with an account for each potential recipient. each entry should contain a variable amount of information about a user: username, user first name and last name, email address, telephone number, street address, city, state, zip. for example: an entry can contain the following: You are free to use any character to separate different fields. I am using a double colon here (:) lahmani:Danielle Lahmani:lahmani@cs.nyu.edu:(212)998-3081:252 Mercer Street:NY:NY:10012 write utilities to add, delete, change, and retrieve entries in the database. The database should not have two entries with the same username. and a utility that supports retrieving specific fields from the database based on a username: example: dbget lahmani email lahmani@cs.nyu.edu B. include a program to archive files so that they can be restored or moved to a new location. The program should create a file that contains the contents of files in the specified directories and its subdirectories. the file should be in the format of a shell script so that when the script is run, it recreates the directory hierarchy. $archive test.d > archived.sh where test.d is a directory. The shell script generated should be able to be mailed to another user and when run will recreate the directory structure. Assume that you provide only relative pathnames to facilitate testing in a different directory under your home directory. C. include a program that will generate a form letter to send to a list recipients explaining the contents of the shipment and instructions for unbundling it and will include the script file generated in section B. The form letter and the contained script file will be mailed to each recipient. The form letter should be tailored to each user's name where the recipient name is a username taken from the database constructed in A. $ship -f archived.sh username+ $ship -f archived.sh lahmani will produce the following which is mailed to user lahmani@cs.nyu.edu: Danielle Lahmani 252 Mercer Street New York, N.Y. 10012 Dear Danielle Lahmani, Enclosed please find an archived file. Here are the instructions for unbundling it.... and here is the archive: .... Please include sample executions of your system for each section described above. Problem number 2: Modify the circular pipes problem listed in homework number 5, exercise number 2 using a client/server paradigm, using sockets in a UNIX domain. The client will read the string from standard input and send it to the server. The server will then reverse the string and put it in upper case and will send it back to the client. The client will write the received string to standard output. Please provide a makefile and a sample run with your program. `v