Apache Groovy
Copyright 2003-2017 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This product includes/uses ANTLR2 (http://www.antlr2.org/)
developed by Terence Parr 1989-2006

This product includes/uses ANTLR4 (https://github.com/antlr/antlr4)
Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.

This product bundles the JUnit jar (junit.org)
which is available under the terms of the Eclipse Public License v1.0

This product embeds the OpenBeans jar within its grooid jar artifacts
OpenBeans includes/uses files from Apache Harmony and the following notice applies
Copyright 2006, 2010 The Apache Software Foundation.
Portions of Apache Harmony were originally developed by Intel Corporation and are
licensed to the Apache Software Foundation under the "Software Grant and Corporate
Contribution License Agreement" and for which the following copyright notices apply
    (C) Copyright 2005 Intel Corporation
    (C) Copyright 2005-2006 Intel Corporation
    (C) Copyright 2006 Intel Corporation

This product bundles icons from the famfamfam.com silk icons set
http://www.famfamfam.com/lab/icons/silk/
Licensed under the Creative Commons Attribution Licence v2.5
http://creativecommons.org/licenses/by/2.5/

This convenience zip embeds Groovy's src and doc zips.
See also src/NOTICE and doc/NOTICE files for additional notice information.