                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

========================================================================
Apache-2.0 licenses
========================================================================

The following components are provided under the Apache-2.0 License. See project link for details.
The text of each license is also included at licenses/license-[project].txt.


    cloud.google.com/go v0.54.0 Apache-2.0
    cloud.google.com/go/bigquery v1.4.0 Apache-2.0
    cloud.google.com/go/datastore v1.1.0 Apache-2.0
    cloud.google.com/go/firestore v1.1.0 Apache-2.0
    cloud.google.com/go/pubsub v1.2.0 Apache-2.0
    cloud.google.com/go/storage v1.6.0 Apache-2.0
    github.com/Azure/go-autorest v14.2.0+incompatible Apache-2.0
    github.com/Azure/go-autorest/autorest v0.11.18 Apache-2.0
    github.com/Azure/go-autorest/autorest/adal v0.9.13 Apache-2.0
    github.com/Azure/go-autorest/autorest/date v0.3.0 Apache-2.0
    github.com/Azure/go-autorest/autorest/mocks v0.4.1 Apache-2.0
    github.com/Azure/go-autorest/logger v0.2.1 Apache-2.0
    github.com/Azure/go-autorest/tracing v0.6.0 Apache-2.0
    github.com/Masterminds/goutils v1.1.0 Apache-2.0
    github.com/NYTimes/gziphandler v1.1.1 Apache-2.0
    github.com/OneOfOne/xxhash v1.2.2 Apache-2.0
    github.com/apache/skywalking-swck/operator v0.0.0-20220815142653-ed08076b7433 Apache-2.0
    github.com/census-instrumentation/opencensus-proto v0.2.1 Apache-2.0
    github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403 Apache-2.0
    github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed Apache-2.0
    github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5 Apache-2.0
    github.com/cockroachdb/errors v1.2.4 Apache-2.0
    github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f Apache-2.0
    github.com/coreos/etcd v3.3.13+incompatible Apache-2.0
    github.com/coreos/go-oidc v2.1.0+incompatible Apache-2.0
    github.com/coreos/go-semver v0.3.0 Apache-2.0
    github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e Apache-2.0
    github.com/coreos/go-systemd/v22 v22.3.2 Apache-2.0
    github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f Apache-2.0
    github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0 Apache-2.0
    github.com/envoyproxy/protoc-gen-validate v0.1.0 Apache-2.0
    github.com/gdamore/encoding v1.0.0 Apache-2.0
    github.com/gdamore/tcell v1.3.0 Apache-2.0
    github.com/go-logr/logr v0.4.0 Apache-2.0
    github.com/go-logr/zapr v0.4.0 Apache-2.0
    github.com/go-openapi/jsonpointer v0.19.5 Apache-2.0
    github.com/go-openapi/jsonreference v0.19.5 Apache-2.0
    github.com/go-openapi/swag v0.19.14 Apache-2.0
    github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b Apache-2.0
    github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da Apache-2.0
    github.com/golang/mock v1.4.1 Apache-2.0
    github.com/google/btree v1.0.1 Apache-2.0
    github.com/google/gofuzz v1.1.0 Apache-2.0
    github.com/google/martian v2.1.0+incompatible Apache-2.0
    github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3 Apache-2.0
    github.com/google/renameio v0.1.0 Apache-2.0
    github.com/googleapis/gnostic v0.5.5 Apache-2.0
    github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 Apache-2.0
    github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 Apache-2.0
    github.com/inconshreveable/mousetrap v1.0.0 Apache-2.0
    github.com/jonboulle/clockwork v0.2.2 Apache-2.0
    github.com/kylelemons/godebug v1.1.0 Apache-2.0
    github.com/machinebox/graphql v0.2.2 Apache-2.0
    github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 Apache-2.0
    github.com/moby/spdystream v0.2.0 Apache-2.0
    github.com/moby/term v0.0.0-20210610120745-9d4ed1856297 Apache-2.0
    github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd Apache-2.0
    github.com/modern-go/reflect2 v1.0.1 Apache-2.0
    github.com/mum4k/termdash v0.12.1 Apache-2.0
    github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f Apache-2.0
    github.com/oklog/ulid v1.3.1 Apache-2.0
    github.com/opentracing/opentracing-go v1.1.0 Apache-2.0
    github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021 Apache-2.0
    github.com/prometheus/client_golang v1.11.1 Apache-2.0
    github.com/prometheus/client_model v0.2.0 Apache-2.0
    github.com/prometheus/common v0.26.0 Apache-2.0
    github.com/prometheus/procfs v0.6.0 Apache-2.0
    github.com/prometheus/tsdb v0.7.1 Apache-2.0
    github.com/soheilhy/cmux v0.1.5 Apache-2.0
    github.com/spf13/afero v1.2.2 Apache-2.0
    github.com/spf13/cobra v1.1.3 Apache-2.0
    go.etcd.io/etcd/api/v3 v3.5.0 Apache-2.0
    go.etcd.io/etcd/client/pkg/v3 v3.5.0 Apache-2.0
    go.etcd.io/etcd/client/v2 v2.305.0 Apache-2.0
    go.etcd.io/etcd/client/v3 v3.5.0 Apache-2.0
    go.etcd.io/etcd/pkg/v3 v3.5.0 Apache-2.0
    go.etcd.io/etcd/raft/v3 v3.5.0 Apache-2.0
    go.etcd.io/etcd/server/v3 v3.5.0 Apache-2.0
    go.opencensus.io v0.22.3 Apache-2.0
    go.opentelemetry.io/contrib v0.20.0 Apache-2.0
    go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0 Apache-2.0
    go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0 Apache-2.0
    go.opentelemetry.io/otel v0.20.0 Apache-2.0
    go.opentelemetry.io/otel/exporters/otlp v0.20.0 Apache-2.0
    go.opentelemetry.io/otel/metric v0.20.0 Apache-2.0
    go.opentelemetry.io/otel/oteltest v0.20.0 Apache-2.0
    go.opentelemetry.io/otel/sdk v0.20.0 Apache-2.0
    go.opentelemetry.io/otel/sdk/export/metric v0.20.0 Apache-2.0
    go.opentelemetry.io/otel/sdk/metric v0.20.0 Apache-2.0
    go.opentelemetry.io/otel/trace v0.20.0 Apache-2.0
    go.opentelemetry.io/proto/otlp v0.7.0 Apache-2.0
    gomodules.xyz/jsonpatch/v2 v2.2.0 Apache-2.0
    google.golang.org/appengine v1.6.7 Apache-2.0
    google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84 Apache-2.0
    google.golang.org/grpc v1.40.0 Apache-2.0
    gopkg.in/ini.v1 v1.51.0 Apache-2.0
    gopkg.in/square/go-jose.v2 v2.2.2 Apache-2.0
    gopkg.in/yaml.v2 v2.4.0 Apache-2.0
    gotest.tools/v3 v3.0.3 Apache-2.0
    k8s.io/api v0.22.1 Apache-2.0
    k8s.io/apiextensions-apiserver v0.22.1 Apache-2.0
    k8s.io/apimachinery v0.22.1 Apache-2.0
    k8s.io/apiserver v0.22.1 Apache-2.0
    k8s.io/client-go v0.22.1 Apache-2.0
    k8s.io/code-generator v0.22.1 Apache-2.0
    k8s.io/component-base v0.22.1 Apache-2.0
    k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027 Apache-2.0
    k8s.io/klog/v2 v2.9.0 Apache-2.0
    k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e Apache-2.0
    k8s.io/utils v0.0.0-20210802155522-efc7438f0176 Apache-2.0
    sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22 Apache-2.0
    sigs.k8s.io/controller-runtime v0.10.0 Apache-2.0
    sigs.k8s.io/structured-merge-diff/v4 v4.1.2 Apache-2.0
    skywalking.apache.org/repo/goapi v0.0.0-20220714130828-0d56d1f4c592 Apache-2.0

========================================================================
BSD-2-Clause licenses
========================================================================

The following components are provided under the BSD-2-Clause License. See project link for details.
The text of each license is also included at licenses/license-[project].txt.


    github.com/godbus/dbus/v5 v5.0.4 BSD-2-Clause
    github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 BSD-2-Clause
    github.com/gorilla/websocket v1.4.2 BSD-2-Clause
    github.com/magiconair/properties v1.8.1 BSD-2-Clause
    github.com/pkg/errors v0.9.1 BSD-2-Clause
    github.com/russross/blackfriday/v2 v2.1.0 BSD-2-Clause
    gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f BSD-2-Clause

========================================================================
BSD-3-Clause licenses
========================================================================

The following components are provided under the BSD-3-Clause License. See project link for details.
The text of each license is also included at licenses/license-[project].txt.


    dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 BSD-3-Clause
    github.com/DATA-DOG/go-sqlmock v1.3.3 BSD-3-Clause
    github.com/PuerkitoBio/purell v1.1.1 BSD-3-Clause
    github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 BSD-3-Clause
    github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 BSD-3-Clause
    github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 BSD-3-Clause
    github.com/evanphx/json-patch v4.11.0+incompatible BSD-3-Clause
    github.com/fsnotify/fsnotify v1.4.9 BSD-3-Clause
    github.com/getsentry/raven-go v0.2.0 BSD-3-Clause
    github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 BSD-3-Clause
    github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 BSD-3-Clause
    github.com/gogo/protobuf v1.3.2 BSD-3-Clause
    github.com/golang/protobuf v1.5.2 BSD-3-Clause
    github.com/google/go-cmp v0.5.6 BSD-3-Clause
    github.com/google/uuid v1.3.0 BSD-3-Clause
    github.com/googleapis/gax-go/v2 v2.0.5 BSD-3-Clause
    github.com/grpc-ecosystem/grpc-gateway v1.16.0 BSD-3-Clause
    github.com/hashicorp/go-msgpack v0.5.3 BSD-3-Clause
    github.com/hashicorp/go.net v0.0.1 BSD-3-Clause
    github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6 BSD-3-Clause
    github.com/imdario/mergo v0.3.12 BSD-3-Clause
    github.com/jessevdk/go-flags v1.4.0 BSD-3-Clause
    github.com/julienschmidt/httprouter v1.3.0 BSD-3-Clause
    github.com/miekg/dns v1.0.14 BSD-3-Clause
    github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 BSD-3-Clause
    github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f BSD-3-Clause
    github.com/pmezard/go-difflib v1.0.0 BSD-3-Clause
    github.com/rogpeppe/fastuuid v1.2.0 BSD-3-Clause
    github.com/rogpeppe/go-internal v1.3.0 BSD-3-Clause
    github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 BSD-3-Clause
    github.com/spf13/pflag v1.0.5 BSD-3-Clause
    golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 BSD-3-Clause
    golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6 BSD-3-Clause
    golang.org/x/image v0.0.0-20190802002840-cff245a6509b BSD-3-Clause
    golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 BSD-3-Clause
    golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 BSD-3-Clause
    golang.org/x/mod v0.4.2 BSD-3-Clause
    golang.org/x/net v0.0.0-20220909164309-bea034e7d591 BSD-3-Clause
    golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d BSD-3-Clause
    golang.org/x/sync v0.0.0-20210220032951-036812b2e83c BSD-3-Clause
    golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 BSD-3-Clause
    golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 BSD-3-Clause
    golang.org/x/text v0.3.7 BSD-3-Clause
    golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac BSD-3-Clause
    golang.org/x/tools v0.1.3 BSD-3-Clause
    golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 BSD-3-Clause
    google.golang.org/api v0.20.0 BSD-3-Clause
    google.golang.org/protobuf v1.28.0 BSD-3-Clause
    gopkg.in/errgo.v2 v2.1.0 BSD-3-Clause
    gopkg.in/fsnotify.v1 v1.4.7 BSD-3-Clause
    gopkg.in/inf.v0 v0.9.1 BSD-3-Clause
    gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 BSD-3-Clause
    rsc.io/binaryregexp v0.2.0 BSD-3-Clause
    rsc.io/quote/v3 v3.1.0 BSD-3-Clause
    rsc.io/sampler v1.3.0 BSD-3-Clause
    software.sslmate.com/src/go-pkcs12 v0.0.0-20210415151418-c5206de65a78 BSD-3-Clause

========================================================================
BSD-3-Clause and GooglePatentClause licenses
========================================================================

The following components are provided under the BSD-3-Clause and GooglePatentClause License. See project link for details.
The text of each license is also included at licenses/license-[project].txt.


    github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 BSD-3-Clause and GooglePatentClause

========================================================================
CC0-1.0 licenses
========================================================================

The following components are provided under the CC0-1.0 License. See project link for details.
The text of each license is also included at licenses/license-[project].txt.


    github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c CC0-1.0

========================================================================
ISC licenses
========================================================================

The following components are provided under the ISC License. See project link for details.
The text of each license is also included at licenses/license-[project].txt.


    github.com/davecgh/go-spew v1.1.1 ISC

========================================================================
MIT licenses
========================================================================

The following components are provided under the MIT License. See project link for details.
The text of each license is also included at licenses/license-[project].txt.


    github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 MIT
    github.com/BurntSushi/toml v0.3.1 MIT
    github.com/Masterminds/semver/v3 v3.1.0 MIT
    github.com/Masterminds/sprig/v3 v3.1.0 MIT
    github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d MIT
    github.com/antihax/optional v1.0.0 MIT
    github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e MIT
    github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da MIT
    github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310 MIT
    github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a MIT
    github.com/benbjohnson/clock v1.1.0 MIT
    github.com/beorn7/perks v1.0.1 MIT
    github.com/bgentry/speakeasy v0.1.0 MIT
    github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c MIT
    github.com/blang/semver v3.5.1+incompatible MIT
    github.com/cespare/xxhash v1.1.0 MIT
    github.com/cespare/xxhash/v2 v2.1.1 MIT
    github.com/chzyer/logex v1.1.10 MIT
    github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e MIT
    github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 MIT
    github.com/client9/misspell v0.3.4 MIT
    github.com/coreos/bbolt v1.3.2 MIT
    github.com/cpuguy83/go-md2man/v2 v2.0.0 MIT
    github.com/creack/pty v1.1.11 MIT
    github.com/dgrijalva/jwt-go v3.2.0+incompatible MIT
    github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954 MIT
    github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 MIT
    github.com/dustin/go-humanize v1.0.0 MIT
    github.com/emicklei/go-restful v2.9.5+incompatible MIT
    github.com/fatih/color v1.7.0 MIT
    github.com/felixge/httpsnoop v1.0.1 MIT
    github.com/form3tech-oss/jwt-go v3.2.3+incompatible MIT
    github.com/gizak/termui/v3 v3.1.0 MIT
    github.com/go-kit/kit v0.9.0 MIT
    github.com/go-kit/log v0.1.0 MIT
    github.com/go-logfmt/logfmt v0.5.0 MIT
    github.com/go-stack/stack v1.8.0 MIT
    github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 MIT
    github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 MIT
    github.com/hashicorp/go-syslog v1.0.0 MIT
    github.com/hashicorp/mdns v1.0.0 MIT
    github.com/hpcloud/tail v1.0.0 MIT
    github.com/huandu/xstrings v1.3.1 MIT
    github.com/josharian/intern v1.0.0 MIT
    github.com/jpillora/backoff v1.0.0 MIT
    github.com/json-iterator/go v1.1.11 MIT
    github.com/jstemmer/go-junit-report v0.9.1 MIT
    github.com/jtolds/gls v4.20.0+incompatible MIT
    github.com/kisielk/errcheck v1.5.0 MIT
    github.com/kisielk/gotool v1.0.0 MIT
    github.com/konsorten/go-windows-terminal-sequences v1.0.3 MIT
    github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 MIT
    github.com/kr/pretty v0.2.0 MIT
    github.com/kr/pty v1.1.1 MIT
    github.com/kr/text v0.2.0 MIT
    github.com/lucasb-eyer/go-colorful v1.0.2 MIT
    github.com/mailru/easyjson v0.7.6 MIT
    github.com/matryer/is v1.4.0 MIT
    github.com/mattn/go-colorable v0.0.9 MIT
    github.com/mattn/go-isatty v0.0.3 MIT
    github.com/mattn/go-runewidth v0.0.9 MIT
    github.com/mitchellh/copystructure v1.0.0 MIT
    github.com/mitchellh/go-homedir v1.1.0 MIT
    github.com/mitchellh/go-testing-interface v1.0.0 MIT
    github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7 MIT
    github.com/mitchellh/iochan v1.0.0 MIT
    github.com/mitchellh/mapstructure v1.4.0 MIT
    github.com/mitchellh/reflectwalk v1.0.0 MIT
    github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e MIT
    github.com/nsf/termbox-go v0.0.0-20200204031403-4d2b513ad8be MIT
    github.com/nxadm/tail v1.4.8 MIT
    github.com/olekukonko/tablewriter v0.0.2 MIT
    github.com/onsi/ginkgo v1.16.4 MIT
    github.com/onsi/gomega v1.15.0 MIT
    github.com/pelletier/go-toml v1.2.0 MIT
    github.com/peterbourgon/diskv v2.0.1+incompatible MIT
    github.com/posener/complete v1.1.1 MIT
    github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f MIT
    github.com/shurcooL/sanitized_anchor_name v1.0.0 MIT
    github.com/sirupsen/logrus v1.8.1 MIT
    github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d MIT
    github.com/smartystreets/goconvey v1.6.4 MIT
    github.com/spf13/cast v1.3.1 MIT
    github.com/spf13/jwalterweatherman v1.0.0 MIT
    github.com/spf13/viper v1.7.0 MIT
    github.com/stoewer/go-strcase v1.2.0 MIT
    github.com/stretchr/objx v0.1.1 MIT
    github.com/stretchr/testify v1.7.0 MIT
    github.com/subosito/gotenv v1.2.0 MIT
    github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802 MIT
    github.com/urfave/cli/v2 v2.3.0 MIT
    github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 MIT
    github.com/yuin/goldmark v1.3.5 MIT
    go.etcd.io/bbolt v1.3.6 MIT
    go.uber.org/atomic v1.7.0 MIT
    go.uber.org/goleak v1.1.10 MIT
    go.uber.org/multierr v1.6.0 MIT
    go.uber.org/zap v1.19.0 MIT
    gopkg.in/alecthomas/kingpin.v2 v2.2.6 MIT
    gopkg.in/natefinch/lumberjack.v2 v2.0.0 MIT
    gopkg.in/resty.v1 v1.12.0 MIT
    honnef.co/go/tools v0.0.1-2020.1.3 MIT

========================================================================
MIT and Apache-2.0 licenses
========================================================================

The following components are provided under the MIT and Apache-2.0 License. See project link for details.
The text of each license is also included at licenses/license-[project].txt.


    gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b MIT and Apache-2.0

========================================================================
MIT and BSD-3-Clause licenses
========================================================================

The following components are provided under the MIT and BSD-3-Clause License. See project link for details.
The text of each license is also included at licenses/license-[project].txt.


    github.com/ghodss/yaml v1.0.0 MIT and BSD-3-Clause
    github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 MIT and BSD-3-Clause
    sigs.k8s.io/yaml v1.2.0 MIT and BSD-3-Clause

========================================================================
MPL-2.0 licenses
========================================================================

The following components are provided under the MPL-2.0 License. See project link for details.
The text of each license is also included at licenses/license-[project].txt.


    github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054 MPL-2.0
    github.com/hashicorp/consul/api v1.1.0 MPL-2.0
    github.com/hashicorp/consul/sdk v0.1.1 MPL-2.0
    github.com/hashicorp/errwrap v1.0.0 MPL-2.0
    github.com/hashicorp/go-cleanhttp v0.5.1 MPL-2.0
    github.com/hashicorp/go-immutable-radix v1.0.0 MPL-2.0
    github.com/hashicorp/go-multierror v1.0.0 MPL-2.0
    github.com/hashicorp/go-rootcerts v1.0.0 MPL-2.0
    github.com/hashicorp/go-sockaddr v1.0.0 MPL-2.0
    github.com/hashicorp/go-uuid v1.0.1 MPL-2.0
    github.com/hashicorp/golang-lru v0.5.1 MPL-2.0
    github.com/hashicorp/hcl v1.0.0 MPL-2.0
    github.com/hashicorp/logutils v1.0.0 MPL-2.0
    github.com/hashicorp/memberlist v0.1.3 MPL-2.0
    github.com/hashicorp/serf v0.8.2 MPL-2.0
    github.com/mitchellh/cli v1.0.0 MPL-2.0
    github.com/mitchellh/gox v0.4.0 MPL-2.0

