=========================================================================
==  NOTICE file corresponding to the section 4 d of                    ==
==  the Apache License, Version 2.0,                                   ==
==  in this case for the Apache Qpid distribution.                     ==
=========================================================================

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

Please read the LICENSE.txt file present in the root directory of this
distribution.


Aside from contributions to the Apache Qpid project, this software also 
includes (binary only):

	- None at this time

             

