# Notices for Eclipse BaSyx Website

This content is produced and maintained by the Eclipse BaSyx project.

* Project home: https://projects.eclipse.org/projects/iot.BaSyx

## Trademarks

Eclipse BaSyx is a trademark of the Eclipse Foundation.

## Copyright

* Copyright 2019 by The Eclipse Foundation. All rights reserved.

* Some images on this site are licensed from BigStock Photos by the Eclipse Foundation. https://www.bigstockphoto.com/
