Apache Tuweni
Copyright 2019 The Apache Software Foundation

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

In addition, this product includes software developed by
Copyright 2018-2019 ConsenSys, Inc.

This product includes code (eth-reference-tests/src/test/resources/eth2.0-tests) from Ethereum 2.0 reference tests: https://github.com/ethereum/eth2.0-tests
License: Creative Commons Legal Code (https://creativecommons.org/publicdomain/zero/1.0/)

This product includes code (eth-reference-tests/src/test/resources/tests) from Ethereum reference tests: https://github.com/ethereum/tests
License: MIT License (https://opensource.org/licenses/MIT)
