<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:p="urn:schemas-microsoft-com:office:powerpoint"
xmlns:oa="urn:schemas-microsoft-com:office:activation"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=PowerPoint.Slide>
<meta name=Generator content="Microsoft PowerPoint 10">
<link rel=File-List href="UML2_1_1_ReleaseReview_files/filelist.xml">
<link rel=Preview href="UML2_1_1_ReleaseReview_files/preview.wmf">
<link rel=Edit-Time-Data href="UML2_1_1_ReleaseReview_files/editdata.mso">
<title>Eclipse Foundation</title>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Author>Sharon Wolfe</o:Author>
  <o:Template>eclipse temple</o:Template>
  <o:LastAuthor>khussey</o:LastAuthor>
  <o:Revision>27</o:Revision>
  <o:TotalTime>1526</o:TotalTime>
  <o:Created>2004-11-09T19:58:12Z</o:Created>
  <o:LastSaved>2005-06-17T15:14:59Z</o:LastSaved>
  <o:Words>1772</o:Words>
  <o:PresentationFormat>On-screen Show</o:PresentationFormat>
  <o:Company>Eclipse Foundation Inc.</o:Company>
  <o:Bytes>281038</o:Bytes>
  <o:Paragraphs>181</o:Paragraphs>
  <o:Slides>19</o:Slides>
  <o:Notes>12</o:Notes>
  <o:Version>10.6735</o:Version>
 </o:DocumentProperties>
 <o:OfficeDocumentSettings>
  <o:ShowReviewingToolbar/>
  <o:PixelsPerInch>80</o:PixelsPerInch>
 </o:OfficeDocumentSettings>
</xml><![endif]-->
<link rel=Presentation-XML href="UML2_1_1_ReleaseReview_files/pres.xml">
<meta name=Description content="6/17/2005: UML2 1.1 Release Review">
<meta http-equiv=expires content=0>
<![if !ppt]><script>
<!--
	var ver = 0, appVer = navigator.appVersion, msie = appVer.indexOf( "MSIE " )
	var msieWin31 = (appVer.indexOf( "Windows 3.1" ) >= 0), isMac = (appVer.indexOf("Macintosh") >= 0)
	if( msie >= 0 )
		ver = parseFloat( appVer.substring( msie+5, appVer.indexOf ( ";", msie ) ) )
	else
		ver = parseInt( appVer )
	browserSupported=0
	if( !isMac && ver >= 4 && msie >= 0 ) {
		browserSupported=1
		window.location.replace( 'UML2_1_1_ReleaseReview_files/frame.html'+document.location.hash )
	}
//-->
</script>
<![endif]>
</head>

<body>
<script><!--

if( browserSupported )
	document.writeln('<div style="visibility:hidden">');

//--></script><font face=Arial size=2><b>

<p>This presentation contains content that your browser may not be able to show
properly. This presentation was optimized for more recent versions of Microsoft
Internet Explorer.</p>

<p>If you would like to proceed anyway, click <a
href="UML2_1_1_ReleaseReview_files/frame.html">here</a>.</p>

</b></font><script><!--

if( browserSupported )
	document.writeln('</div>');

//--></script>
</body>

</html>
