Apache Ivy (TM)
Copyright 2007-2019,2022-2023 The Apache Software Foundation

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

Portions of Ivy were originally developed at
Jayasoft SARL (http://www.jayasoft.fr/)
and are licensed to the Apache Software Foundation under the
"Software Grant License Agreement"

SSH and SFTP support is provided by the JCraft JSch package, 
which is open source software, available under
the terms of a BSD style license.  
The original software and related information is available
at http://www.jcraft.com/jsch/.

The Scp class is based on the SCPClient from the ganymed ssh
library. Which has been distributed under the BSD style license
included in the LICENSE file.
