Notice: |

  Apache Brooklyn
  Copyright 2014-2020 The Apache Software Foundation

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


Bundled dependencies:

  # This source code distribution includes the following bundled third-party components.
  # Referenced licenses can be found in the accompanying LICENSE file.

  font-awesome-fonts: 
    Project:      Font Awesome (fonts)
    Version:      4.5.0
    Available at: http://fontawesome.io/
    Inclusive of: font-awesome/fonts/* cluster.svg
    License name: SIL OFL 1.1
    Notice:       Copyright (c) Dave Gandy (2016)
  
  github.com/kubernetes/client-go/util/jsonpath: 
    Project:      Go client for Kubernetes
    Available at: github.com/kubernetes/client-go
    License name: Apache License, version 2.0
  
  github.com/urfave/cli: 
    Project:      github.com/urfave/cli
    Available at: https://github.com/urfave/cli
    License name: MIT License
    Notice:       Copyright (c) 2016 Jeremy Saenz & Contributors
  
  golang.org/x/crypto/ssh: 
    Project:      golang.org/x/crypto/ssh
    Available at: https://godoc.org/golang.org/x/crypto/ssh
    License name: BSD 3-Clause (New BSD) License
    Notice:       Copyright (c) 2009 The Go Authors. All rights reserved.
  
  misc:logo_icons: 
    Project:      Various logos for third-party projects
    Inclusive of: various *.png and other image files containing logos
    Notice: |
      This software includes logos for third-party components as icons
      where those components are blueprinted or otherwise referenced.
      These logo files are used under fair use and all copyright and trademark rights
      remain with the owner(s) of the respective components.
  
  noun-project-icons: 
    Project:      The Noun Project (icons)
    Available at: https://thenounproject.com/
    Inclusive of: service-restarter.png, autoscaler.png, and others
    License name: Creative Commons Public License, Attribution 3.0
    Notice:       Includes icons by Evan Shuster, Sarah Joy, Jack Zwanenburg
  
  tango-project-icons: 
    Project:      Tango Project Icons
    Available at: https://commons.wikimedia.org/wiki/File:Network-server.svg
    License name: Public Domain
    Notice:       Released into the public domain by the people from the Tango! project (The Tango! Desktop Project), via Wikimedia Commons
  
  typeahead.js: 
    Project:      Typeahead JS
    Version:      0.10.5
    Available at: https://github.com/twitter/typeahead.js
    Developed by: Twitter, Inc (http://twitter.com)
    License name: MIT License
    Notice:       Copyright (c) Twitter, Inc. and other contributors (2013-2014)
  
  underscore.js:1.7.0: 
    Project:      Underscore JS
    Version:      1.7.0
    Available at: http://underscorejs.org
    Developed by: DocumentCloud Inc. (http://www.documentcloud.org/)
    Inclusive of: underscore*.{js,map}
    License name: MIT License
    Notice:       Copyright (c) Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors (2009-2014)
  
