<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>Eclipse Contributor Agreement</title>
  </head>
  <body lang="EN-US">
    <div id="text1">
      <h1>Eclipse Contributor Agreement</h1>

      <p>Version 3.0.0&nbsp;&nbsp;&nbsp;October 22, 2018</p>

      <p id="reference">
        <strong>This is a reference copy of the terms of the Eclipse Contributor Agreement. To actually complete 
        and submit an ECA, please go to the <a href="https://accounts.eclipse.org/user/eca">ECA form</a>.</strong>
      </p>

      <p>Thank you for your interest in one or more projects managed by the Eclipse Foundation, Inc.
      (&quot;Eclipse Foundation&quot;). In order for You (as defined below) to make intellectual property 
      Contributions (as defined below) now or in the future to Eclipse Foundation projects, 
      You must agree to this Eclipse Contributor Agreement (&quot;ECA&quot;). 
      If You have any questions about this agreement, licensing, or anything related to 
      intellectual property at the Eclipse Foundation, please send an email to 
      <a href="mailto:license@eclipse.org">license@eclipse.org</a>.</p>

      <p>Please read this ECA carefully before accepting its terms. By accepting the ECA, You are agreeing to 
      be bound by its terms. If You want to accept this ECA, complete the form completely, print a copy for 
      Your records, and when ready, press the &ldquo;Accept&rdquo; button at the end of this form.</p>

      <p>As used in this ECA: (i) &ldquo;You&quot; (or &quot;Your&quot;) shall mean the entity that
      is making this Agreement with the Eclipse Foundation; (ii)&quot;Contribution&quot; shall mean
      any original work of authorship, including any modifications or additions to an existing work,
      that is submitted by You to the Eclipse Foundation for inclusion in, or documentation of, any of
      the Eclipse Foundation projects; and (iii) &ldquo;Submit&rdquo; (or &ldquo;Submitted&rdquo;) means
      any form of communication sent to the Eclipse Foundation (e.g. the content You post on electronic
      mailing lists, forums, content management systems, source code control systems, code review systems,
      issue tracking systems, etc. that are used by the Eclipse Foundation).</p>

      <p>This agreement applies to all Contributions You Submit.</p>

      <p>This ECA, and the license(s) associated with the particular Eclipse Foundation projects You 
      are contributing to, provides a license to Your Contributions to the Eclipse Foundation and 
      downstream consumers, but You still own Your Contributions, and except for the licenses provided 
      for in this ECA, You reserve all right, title and interest in Your Contributions. 
      In addition to the above, You grant a non- exclusive, worldwide, perpetual, royalty-free 
      license of all necessary rights under Your copyright in and to Your Contributions (the &ldquo;Specification 
      Grant&rdquo;): (a) for the Eclipse Foundation (and its contributors solely as a part of foundation projects) 
      to create, reproduce, prepare derivative works of, publicly display, publicly perform, distribute and 
      sublicense specifications subject to the terms of the then-current Eclipse Foundation Specification 
      License, based on or derived from the Specification Content (as defined below) and (b) for recipients of 
      such specifications to create, reproduce, and distribute implementations thereof based on the portion of 
      Your Contributions or material derived from them in the specifications, subject to the terms of 
      the then-current Eclipse Foundation Specification License.</p>

      <p>&ldquo;Specification Content&rdquo; is the collection of interface definitions for the Application 
      or User interfaces (&ldquo;Interfaces&rdquo;) provided by the work to which Your Contribution was made,
      descriptions of the structure and semantic behavior of those Interfaces, and data formats and protocols
      associated with those Interfaces, all of which as are reasonably necessary to enable the development of 
      independent implementations of those Interfaces. For the sake of clarity, Specification Content does 
      not include implementation detail of how the Eclipse project code or Your Contribution implements the 
      Interfaces in the Specification and the Specification Grant provide above would not cover such additional 
      material.</p>

      <p>The Eclipse Foundation requires that each Contribution You Submit now or in the future to comply with 
      the following commitments documented in the Developer Certificate of Origin (DCO). To confirm that 
      You have read and agreed to each, please click on the box beside each one.</p>
    </div>
    <div id="text2">
      <h2>Developer Certificate of Origin</h2>
      <p>Version 1.1</p>
      <p>
        Copyright (C) 2004, 2006 The Linux Foundation and its contributors.<br/> 
        660 York Street, Suite 102,<br/> 
        San Francisco, CA 94110 USA<br/> 
      </p>
      <p>
        Everyone is permitted to copy and distribute verbatim copies of this license document, 
        but changing it is not allowed.
      </p>
      <h3>Developer's Certificate of Origin 1.1</h3>
      <p>By making a contribution to this project, I certify that: </p>
    </div>
    <ol style="list-style-type: lower-alpha;">
      <li id="question1">
        The contribution was created in whole or in part by me and I have the right to submit
        it under the open source license indicated in the file or
      </li>
      <li id="question2">
        The contribution is based upon previous work that, to the best of my knowledge, is
        covered under an appropriate open source license and I have the right under that
        license to submit that work with modifications, whether created in whole or in part by
        me, under the same open source license (unless I am permitted to submit under a
        different license), as indicated in the file or 
      </li>
      <li id="question3">
        The contribution was provided directly to me by some other person who certified (a),
        (b) or (c) and I have not modified it.
      </li>
      <li id="question4">
        I understand and agree that this project and the contribution are public and that a
        record of the contribution (including all personal information I submit with it, including
        my signoff) is maintained indefinitely and may be redistributed consistent with this
        project or the open source license(s) involved.
      </li>
    </ol>
    <div id="text3">
      <p>
        You will promptly notify the Eclipse Foundation if You become aware of any facts or circumstances
        that would make these commitments inaccurate in any way. To do so, please send an email to 
        <a href="mailto:license@eclipse.org">license@eclipse.org</a>
      </p>
      <p>
        The Eclipse Foundation takes intellectual property very seriously, so we are going to ask 
        You to re&shy;-confirm this ECA every three years.
      </p>
    </div>
    <div id="text4">
      <p>
        You represent that the information provided below is accurate.
      </p>
    </div>
  </body>
</html>