The Crail project code was originally created, designed, developed (under an
IBM copyright dated 2015-2017) and donated by the IBM Corporation (http://www.ibm.com/)
to the Apache Software Foundation (ASF).
