<?php
/*******************************************************************************
 * Copyright(c) 2015 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://eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Nathan Gervais (Eclipse Foundation) - Initial implementation
 *    Eric Poirier (Eclipse Foundation)
 *******************************************************************************/
?>
<h1>Community Poll Vote</h1>
<h2>Help decide the name for the 2013 Eclipse Simultaneous Release!</h2>

<p>
  There will be an Eclipse Simultaneous Release on the fourth Wednesday
  of June, 2013. But what to call it? Please vote, only once, for your
  favorite name for that 2013 release. Remember, the simultaneous
  release name is an informal <i>marketing name</i>. It should be
  recognizable, pronounceable, relatively distinct and not obvious to
  confuse with other software or trademarks. Be sure to consider how it
  sounds in context, such as...
</p>

<p>
  <i>"Hey, go download the <b>Eclipse xyz Release</b> and see all the
    cool stuff in there!"
  </i>
</p>

<p>
  The following names were arrived at with input from the community (see
  <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=365965">bug
    365965</a>) and discussions inside the Eclipse Planning Council.
</p>

<p>
  The results of the poll are now available, and pending approval from
  the EMO, the 2013 name will be <b>Kepler</b>.
</p>

<div style="padding: 5px; margin-left: 5%; margin-right: 5%;">
  <p>
    Kari: 13 %<br /> Kratos: 14 %<br /> <b>Kepler: 48 %</b><br /> Ketu:
    6 %<br /> Koronis: 8 %<br /> Kuiper: 10 %<br /> Total votes: 213
  </p>
</div>

<p>Thanks for your vote and your help with Eclipse!</p>

<p>
  <b>Note: The Planning Council reserves the right to make the final
    decision, in case some popularly voted item is later found to be
    unsuitable for some reason.</b>
<p>
<p>Current time: 29/09/15 : 14:12 (EDT)</p>