/*******************************************************************************
 * Copyright (c) 2009 Eclipse Foundation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Wayne Beaton (Eclipse Foundation)- initial API and implementation
 *******************************************************************************/

In this package, you will find several files. From a proposal author 
point of view, the only file you really need to concern yourself with is
the proposal.html file. There are comments in that file that will help
you pull the required pieces together.

If you have the phoenix environment set up on your workstation, you can
see how the proposal will look "live". However, you should be able to
work successfully with just the HTML document. Please keep the formatting
simple, as we will use style sheets to format the public version.

Thank you for taking the time to author an Eclipse Project proposal.
	
Direct any questions about this template to emo@eclipse.org