<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../..//default_style.css" type="text/css">
<link rel="stylesheet" href="../..//webtools/wtp.css" type="text/css">
<title>
			Eclipse Web Tool Platform Project Team -&nbsp;
		Contributor&nbsp;-&nbsp;Jason&nbsp;Sholl</title>
</head>
<body>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<tbody>
<tr>
<td width="60%" align="left"><font class="indextop">jason&nbsp;sholl&nbsp;@ eclipse wtp</font>
<br>
<font class="indexsub">
			Eclipse Web Tool Platform Project Team -&nbsp;
		Contributor&nbsp;-&nbsp;Jason&nbsp;Sholl</font></td><td width="40%"><img width="207" hspace="50" height="129" align="middle" src="../..//webtools/images/wtplogosmall.jpg"></td>
</tr>
</tbody>
</table>
<table width="100%" cellspacing="5" cellpadding="2" border="0">
<col width="16">
<col width="*">
<tbody>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top"><img height="271" width="199" src="photos/large/jason-sholl.png"></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><b>Affiliation:&nbsp;</b><a target="_top" href="http://www.ibm.com">IBM</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><b>E-mail:&nbsp;</b><script language="JavaScript">var protocol = "mailto";
							function contact() { window.open(protocol +
							":" + user + "@" + server, "_self"); }
						</script><a href="javascript:contact()">jsholl&nbsp;at&nbsp;us&nbsp;dot&nbsp;ibm&nbsp;dot&nbsp;com</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><b>Home page:&nbsp;</b>n/a</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top"><script language="JavaScript">var user = "jsholl";var server = "us.ibm.com";
					
var bugzilla = "https://bugs.eclipse.org/bugs/buglist.cgi?classification=WebTools";

function bugsIReported() { 
	var query_string = "&emailreporter1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" +
	server, "_top"); 
}

function bugsIOwn() { 
	var query_string = "&emailassigned_to1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}

function bugsINeedToConfirm() { 
	var query_string = "&bug_status=UNCONFIRMED&emailassigned_to1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}

function bugsINeedToResolve() { 
	var query_string = "&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}

function bugsINeedToVerify() { 
	var query_string = "&bug_status=RESOLVED&emailreporter1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}

function bugsINeedToClose() { 
	var query_string = "&bug_status=VERIFIED&emailassigned_to1=1=1&emailtype1=substring&email1=";
	window.open(bugzilla + query_string + user + "@" + server, "_top"); 
}
					
				</script></td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Bugs</font></b></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsIReported()">Bugs I Reported</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsINeedToVerify()">
					Bugs I Need to Verify
				</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsIOwn()">Bugs I Own</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsINeedToConfirm()">
					Bugs I Need to Confirm
				</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsINeedToResolve()">
					Bugs I Need to Resolve
				</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="javascript:bugsINeedToClose()">
					Bugs I Need to Close
				</a></td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Contribution</font></b></td>
</tr>
<tr>
<td valign="top" bgcolor="#0080c0" align="left" colspan="2"><b><font face="Arial,Helvetica" color="#ffffff">Biography</font></b></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="contributors.html#Jason-Sholl">Contributor Activity</a></td>
</tr>
<tr>
<td valign="top" align="right"><img width="16" height="16" border="0" src="../..//images/Adarrow.gif"></td><td><a href="index.html#Jason-Sholl">Contributor Index</a></td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<br>
</td>
</tr>
<tr>
<td valign="top" align="right">&nbsp;</td><td valign="top">
<p>
            Please see our
			<a target="_top" href="http://eclipse.org/legal/privacy.html">privacy policy</a>
            and website
			<a target="_top" href="http://eclipse.org/legal/termsofuse.html">terms of use</a>. 
			For problems with the eclipse.org site, please contact the
            <a href="mailto:webmaster@eclipse.org">webmaster</a>
            or read the
			<a target="_top" href="http://eclipse.org/webmaster/index.html">webmaster FAQ</a>
            for answers to common questions!
        </p>
</td>
</tr>
</tbody>
</table>
</body>
</html>
