                                 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.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "{}"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright {yyyy} {name of copyright owner}

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

=======================================================================
Apache SkyWalking Satellite Subcomponents:

Apache SkyWalking Satellite project contains subcomponents with separate copyright
notices and license terms. Your use of the source code for the these
subcomponents is subject to the terms and conditions of the following
licenses.

========================================================================
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.110.0 Apache-2.0
    cloud.google.com/go/accessapproval v1.6.0 Apache-2.0
    cloud.google.com/go/accesscontextmanager v1.6.0 Apache-2.0
    cloud.google.com/go/aiplatform v1.35.0 Apache-2.0
    cloud.google.com/go/analytics v0.18.0 Apache-2.0
    cloud.google.com/go/apigateway v1.5.0 Apache-2.0
    cloud.google.com/go/apigeeconnect v1.5.0 Apache-2.0
    cloud.google.com/go/apigeeregistry v0.5.0 Apache-2.0
    cloud.google.com/go/apikeys v0.5.0 Apache-2.0
    cloud.google.com/go/appengine v1.6.0 Apache-2.0
    cloud.google.com/go/area120 v0.7.1 Apache-2.0
    cloud.google.com/go/artifactregistry v1.11.2 Apache-2.0
    cloud.google.com/go/asset v1.11.1 Apache-2.0
    cloud.google.com/go/assuredworkloads v1.10.0 Apache-2.0
    cloud.google.com/go/automl v1.12.0 Apache-2.0
    cloud.google.com/go/baremetalsolution v0.5.0 Apache-2.0
    cloud.google.com/go/batch v0.7.0 Apache-2.0
    cloud.google.com/go/beyondcorp v0.4.0 Apache-2.0
    cloud.google.com/go/bigquery v1.48.0 Apache-2.0
    cloud.google.com/go/billing v1.12.0 Apache-2.0
    cloud.google.com/go/binaryauthorization v1.5.0 Apache-2.0
    cloud.google.com/go/certificatemanager v1.6.0 Apache-2.0
    cloud.google.com/go/channel v1.11.0 Apache-2.0
    cloud.google.com/go/cloudbuild v1.7.0 Apache-2.0
    cloud.google.com/go/clouddms v1.5.0 Apache-2.0
    cloud.google.com/go/cloudtasks v1.9.0 Apache-2.0
    cloud.google.com/go/compute v1.18.0 Apache-2.0
    cloud.google.com/go/compute/metadata v0.2.3 Apache-2.0
    cloud.google.com/go/contactcenterinsights v1.6.0 Apache-2.0
    cloud.google.com/go/container v1.13.1 Apache-2.0
    cloud.google.com/go/containeranalysis v0.7.0 Apache-2.0
    cloud.google.com/go/datacatalog v1.12.0 Apache-2.0
    cloud.google.com/go/dataflow v0.8.0 Apache-2.0
    cloud.google.com/go/dataform v0.6.0 Apache-2.0
    cloud.google.com/go/datafusion v1.6.0 Apache-2.0
    cloud.google.com/go/datalabeling v0.7.0 Apache-2.0
    cloud.google.com/go/dataplex v1.5.2 Apache-2.0
    cloud.google.com/go/dataproc v1.12.0 Apache-2.0
    cloud.google.com/go/dataqna v0.7.0 Apache-2.0
    cloud.google.com/go/datastore v1.10.0 Apache-2.0
    cloud.google.com/go/datastream v1.6.0 Apache-2.0
    cloud.google.com/go/deploy v1.6.0 Apache-2.0
    cloud.google.com/go/dialogflow v1.31.0 Apache-2.0
    cloud.google.com/go/dlp v1.9.0 Apache-2.0
    cloud.google.com/go/documentai v1.16.0 Apache-2.0
    cloud.google.com/go/domains v0.8.0 Apache-2.0
    cloud.google.com/go/edgecontainer v0.3.0 Apache-2.0
    cloud.google.com/go/errorreporting v0.3.0 Apache-2.0
    cloud.google.com/go/essentialcontacts v1.5.0 Apache-2.0
    cloud.google.com/go/eventarc v1.10.0 Apache-2.0
    cloud.google.com/go/filestore v1.5.0 Apache-2.0
    cloud.google.com/go/firestore v1.9.0 Apache-2.0
    cloud.google.com/go/functions v1.10.0 Apache-2.0
    cloud.google.com/go/gaming v1.9.0 Apache-2.0
    cloud.google.com/go/gkebackup v0.4.0 Apache-2.0
    cloud.google.com/go/gkeconnect v0.7.0 Apache-2.0
    cloud.google.com/go/gkehub v0.11.0 Apache-2.0
    cloud.google.com/go/gkemulticloud v0.5.0 Apache-2.0
    cloud.google.com/go/gsuiteaddons v1.5.0 Apache-2.0
    cloud.google.com/go/iam v0.12.0 Apache-2.0
    cloud.google.com/go/iap v1.6.0 Apache-2.0
    cloud.google.com/go/ids v1.3.0 Apache-2.0
    cloud.google.com/go/iot v1.5.0 Apache-2.0
    cloud.google.com/go/kms v1.9.0 Apache-2.0
    cloud.google.com/go/language v1.9.0 Apache-2.0
    cloud.google.com/go/lifesciences v0.8.0 Apache-2.0
    cloud.google.com/go/logging v1.7.0 Apache-2.0
    cloud.google.com/go/longrunning v0.4.1 Apache-2.0
    cloud.google.com/go/managedidentities v1.5.0 Apache-2.0
    cloud.google.com/go/maps v0.6.0 Apache-2.0
    cloud.google.com/go/mediatranslation v0.7.0 Apache-2.0
    cloud.google.com/go/memcache v1.9.0 Apache-2.0
    cloud.google.com/go/metastore v1.10.0 Apache-2.0
    cloud.google.com/go/monitoring v1.12.0 Apache-2.0
    cloud.google.com/go/networkconnectivity v1.10.0 Apache-2.0
    cloud.google.com/go/networkmanagement v1.6.0 Apache-2.0
    cloud.google.com/go/networksecurity v0.7.0 Apache-2.0
    cloud.google.com/go/notebooks v1.7.0 Apache-2.0
    cloud.google.com/go/optimization v1.3.1 Apache-2.0
    cloud.google.com/go/orchestration v1.6.0 Apache-2.0
    cloud.google.com/go/orgpolicy v1.10.0 Apache-2.0
    cloud.google.com/go/osconfig v1.11.0 Apache-2.0
    cloud.google.com/go/oslogin v1.9.0 Apache-2.0
    cloud.google.com/go/phishingprotection v0.7.0 Apache-2.0
    cloud.google.com/go/policytroubleshooter v1.5.0 Apache-2.0
    cloud.google.com/go/privatecatalog v0.7.0 Apache-2.0
    cloud.google.com/go/pubsub v1.28.0 Apache-2.0
    cloud.google.com/go/pubsublite v1.6.0 Apache-2.0
    cloud.google.com/go/recaptchaenterprise/v2 v2.6.0 Apache-2.0
    cloud.google.com/go/recommendationengine v0.7.0 Apache-2.0
    cloud.google.com/go/recommender v1.9.0 Apache-2.0
    cloud.google.com/go/redis v1.11.0 Apache-2.0
    cloud.google.com/go/resourcemanager v1.5.0 Apache-2.0
    cloud.google.com/go/resourcesettings v1.5.0 Apache-2.0
    cloud.google.com/go/retail v1.12.0 Apache-2.0
    cloud.google.com/go/run v0.8.0 Apache-2.0
    cloud.google.com/go/scheduler v1.8.0 Apache-2.0
    cloud.google.com/go/secretmanager v1.10.0 Apache-2.0
    cloud.google.com/go/security v1.12.0 Apache-2.0
    cloud.google.com/go/securitycenter v1.18.1 Apache-2.0
    cloud.google.com/go/servicecontrol v1.11.0 Apache-2.0
    cloud.google.com/go/servicedirectory v1.8.0 Apache-2.0
    cloud.google.com/go/servicemanagement v1.6.0 Apache-2.0
    cloud.google.com/go/serviceusage v1.5.0 Apache-2.0
    cloud.google.com/go/shell v1.6.0 Apache-2.0
    cloud.google.com/go/spanner v1.44.0 Apache-2.0
    cloud.google.com/go/speech v1.14.1 Apache-2.0
    cloud.google.com/go/storage v1.14.0 Apache-2.0
    cloud.google.com/go/storagetransfer v1.7.0 Apache-2.0
    cloud.google.com/go/talent v1.5.0 Apache-2.0
    cloud.google.com/go/texttospeech v1.6.0 Apache-2.0
    cloud.google.com/go/tpu v1.5.0 Apache-2.0
    cloud.google.com/go/trace v1.8.0 Apache-2.0
    cloud.google.com/go/translate v1.6.0 Apache-2.0
    cloud.google.com/go/video v1.13.0 Apache-2.0
    cloud.google.com/go/videointelligence v1.10.0 Apache-2.0
    cloud.google.com/go/vision/v2 v2.6.0 Apache-2.0
    cloud.google.com/go/vmmigration v1.5.0 Apache-2.0
    cloud.google.com/go/vmwareengine v0.2.2 Apache-2.0
    cloud.google.com/go/vpcaccess v1.6.0 Apache-2.0
    cloud.google.com/go/webrisk v1.8.0 Apache-2.0
    cloud.google.com/go/websecurityscanner v1.5.0 Apache-2.0
    cloud.google.com/go/workflows v1.10.0 Apache-2.0
    github.com/Azure/go-autorest v14.2.0+incompatible Apache-2.0
    github.com/Azure/go-autorest/autorest v0.11.28 Apache-2.0
    github.com/Azure/go-autorest/autorest/adal v0.9.22 Apache-2.0
    github.com/Azure/go-autorest/autorest/date v0.3.0 Apache-2.0
    github.com/Azure/go-autorest/autorest/to v0.4.0 Apache-2.0
    github.com/Azure/go-autorest/autorest/validation v0.3.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/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46 Apache-2.0
    github.com/OneOfOne/xxhash v1.2.2 Apache-2.0
    github.com/aws/aws-sdk-go v1.44.217 Apache-2.0
    github.com/census-instrumentation/opencensus-proto v0.4.1 Apache-2.0
    github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe Apache-2.0
    github.com/cncf/xds/go v0.0.0-20230112175826-46e39c7b9b43 Apache-2.0
    github.com/coreos/etcd v3.3.13+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.5.0 Apache-2.0
    github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f Apache-2.0
    github.com/docker/distribution v2.8.1+incompatible Apache-2.0
    github.com/docker/docker v23.0.1+incompatible Apache-2.0
    github.com/docker/go-connections v0.4.0 Apache-2.0
    github.com/docker/go-units v0.5.0 Apache-2.0
    github.com/envoyproxy/go-control-plane v0.11.0 Apache-2.0
    github.com/envoyproxy/protoc-gen-validate v0.9.1 Apache-2.0
    github.com/go-logr/logr v1.2.3 Apache-2.0
    github.com/go-logr/stdr v1.2.2 Apache-2.0
    github.com/go-openapi/analysis v0.21.4 Apache-2.0
    github.com/go-openapi/errors v0.20.3 Apache-2.0
    github.com/go-openapi/jsonpointer v0.19.6 Apache-2.0
    github.com/go-openapi/jsonreference v0.20.2 Apache-2.0
    github.com/go-openapi/loads v0.21.2 Apache-2.0
    github.com/go-openapi/spec v0.20.8 Apache-2.0
    github.com/go-openapi/strfmt v0.21.3 Apache-2.0
    github.com/go-openapi/swag v0.22.3 Apache-2.0
    github.com/go-openapi/validate v0.22.1 Apache-2.0
    github.com/golang/glog v1.0.0 Apache-2.0
    github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da Apache-2.0
    github.com/golang/mock v1.4.4 Apache-2.0
    github.com/google/btree v1.0.1 Apache-2.0
    github.com/google/gnostic v0.6.9 Apache-2.0
    github.com/google/gofuzz v1.2.0 Apache-2.0
    github.com/google/martian v2.1.0+incompatible Apache-2.0
    github.com/google/martian/v3 v3.1.0 Apache-2.0
    github.com/google/pprof v0.0.0-20230228050547-1710fef4ab10 Apache-2.0
    github.com/google/renameio v0.1.0 Apache-2.0
    github.com/googleapis/enterprise-certificate-proxy v0.2.3 Apache-2.0
    github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8 Apache-2.0
    github.com/gophercloud/gophercloud v1.2.0 Apache-2.0
    github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 Apache-2.0
    github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 Apache-2.0
    github.com/ionos-cloud/sdk-go/v6 v6.1.4 Apache-2.0
    github.com/jmespath/go-jmespath v0.4.0 Apache-2.0
    github.com/jonboulle/clockwork v0.1.0 Apache-2.0
    github.com/matttproud/golang_protobuf_extensions v1.0.4 Apache-2.0
    github.com/moby/spdystream v0.2.0 Apache-2.0
    github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 Apache-2.0
    github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd Apache-2.0
    github.com/modern-go/reflect2 v1.0.2 Apache-2.0
    github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f Apache-2.0
    github.com/oklog/run v1.1.0 Apache-2.0
    github.com/oklog/ulid v1.3.1 Apache-2.0
    github.com/opencontainers/go-digest v1.0.0 Apache-2.0
    github.com/opencontainers/image-spec v1.0.2 Apache-2.0
    github.com/prometheus/alertmanager v0.25.0 Apache-2.0
    github.com/prometheus/client_golang v1.14.0 Apache-2.0
    github.com/prometheus/client_model v0.3.0 Apache-2.0
    github.com/prometheus/common v0.42.0 Apache-2.0
    github.com/prometheus/common/assets v0.2.0 Apache-2.0
    github.com/prometheus/common/sigv4 v0.1.0 Apache-2.0
    github.com/prometheus/exporter-toolkit v0.9.1 Apache-2.0
    github.com/prometheus/procfs v0.9.0 Apache-2.0
    github.com/prometheus/prometheus v0.43.0 Apache-2.0
    github.com/prometheus/tsdb v0.7.1 Apache-2.0
    github.com/scaleway/scaleway-sdk-go v1.0.0-beta.14 Apache-2.0
    github.com/soheilhy/cmux v0.1.4 Apache-2.0
    github.com/spf13/afero v1.9.2 Apache-2.0
    github.com/tklauser/numcpus v0.3.0 Apache-2.0
    github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c Apache-2.0
    github.com/xdg/stringprep v1.0.0 Apache-2.0
    github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f Apache-2.0
    github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 Apache-2.0
    github.com/xeipuuv/gojsonschema v1.2.0 Apache-2.0
    go.mongodb.org/mongo-driver v1.11.2 Apache-2.0
    go.opencensus.io v0.24.0 Apache-2.0
    go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.40.0 Apache-2.0
    go.opentelemetry.io/otel v1.14.0 Apache-2.0
    go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 Apache-2.0
    go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 Apache-2.0
    go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 Apache-2.0
    go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.14.0 Apache-2.0
    go.opentelemetry.io/otel/metric v0.37.0 Apache-2.0
    go.opentelemetry.io/otel/sdk v1.14.0 Apache-2.0
    go.opentelemetry.io/otel/trace v1.14.0 Apache-2.0
    go.opentelemetry.io/proto/otlp v0.19.0 Apache-2.0
    google.golang.org/appengine v1.6.7 Apache-2.0
    google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 Apache-2.0
    google.golang.org/grpc v1.53.0 Apache-2.0
    gopkg.in/ini.v1 v1.67.0 Apache-2.0
    gopkg.in/jcmturner/aescts.v1 v1.0.1 Apache-2.0
    gopkg.in/jcmturner/dnsutils.v1 v1.0.1 Apache-2.0
    gopkg.in/jcmturner/goidentity.v3 v3.0.0 Apache-2.0
    gopkg.in/jcmturner/gokrb5.v7 v7.5.0 Apache-2.0
    gopkg.in/jcmturner/rpc.v1 v1.1.0 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.26.2 Apache-2.0
    k8s.io/apimachinery v0.26.2 Apache-2.0
    k8s.io/client-go v0.26.2 Apache-2.0
    k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c Apache-2.0
    k8s.io/klog v1.0.0 Apache-2.0
    k8s.io/klog/v2 v2.90.1 Apache-2.0
    k8s.io/kube-openapi v0.0.0-20230303024457-afdc3dddf62d Apache-2.0
    k8s.io/utils v0.0.0-20230308161112-d77c459e9343 Apache-2.0
    sigs.k8s.io/structured-merge-diff/v4 v4.2.3 Apache-2.0
    skywalking.apache.org/repo/goapi v0.0.0-20221115073815-1d2a7c96c0b1 Apache-2.0

========================================================================
Apache-2.0 and BSD-3-Clause licenses
========================================================================

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

    sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd Apache-2.0 and BSD-3-Clause

========================================================================
Apache-2.0 and GPL-3.0 licenses
========================================================================

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

    github.com/hashicorp/cronexpr v1.1.1 Apache-2.0 and GPL-3.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/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 BSD-2-Clause
    github.com/gorilla/websocket v1.5.0 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/pkg/sftp v1.13.1 BSD-2-Clause
    github.com/russross/blackfriday/v2 v2.0.1 BSD-2-Clause
    gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c BSD-2-Clause

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

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

    github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 BSD-2-Clause-Views

========================================================================
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/alecthomas/template v0.0.0-20190718012654-fb15b899a751 BSD-3-Clause
    github.com/edsrzf/mmap-go v1.1.0 BSD-3-Clause
    github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 BSD-3-Clause
    github.com/evanphx/json-patch v4.12.0+incompatible BSD-3-Clause
    github.com/fortytw2/leaktest v1.3.0 BSD-3-Clause
    github.com/fsnotify/fsnotify v1.6.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/go-zookeeper/zk v1.0.3 BSD-3-Clause
    github.com/golang/protobuf v1.5.3 BSD-3-Clause
    github.com/golang/snappy v0.0.4 BSD-3-Clause
    github.com/google/go-cmp v0.5.9 BSD-3-Clause
    github.com/google/go-querystring v1.1.0 BSD-3-Clause
    github.com/google/uuid v1.3.0 BSD-3-Clause
    github.com/googleapis/gax-go/v2 v2.7.0 BSD-3-Clause
    github.com/grafana/regexp v0.0.0-20221122212121-6b5c0a4cb7fd BSD-3-Clause
    github.com/grpc-ecosystem/grpc-gateway v1.16.0 BSD-3-Clause
    github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 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-20200824232613-28f6c0f3b639 BSD-3-Clause
    github.com/imdario/mergo v0.3.13 BSD-3-Clause
    github.com/jcmturner/gofork v1.0.0 BSD-3-Clause
    github.com/julienschmidt/httprouter v1.3.0 BSD-3-Clause
    github.com/kr/fs v0.1.0 BSD-3-Clause
    github.com/miekg/dns v1.1.51 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/ovh/go-ovh v1.3.0 BSD-3-Clause
    github.com/pierrec/lz4 v2.5.2+incompatible 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.9.0 BSD-3-Clause
    github.com/shirou/gopsutil v3.21.11+incompatible 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
    github.com/tklauser/go-sysconf v0.3.9 BSD-3-Clause
    github.com/xhit/go-str2duration/v2 v2.1.0 BSD-3-Clause
    golang.org/x/crypto v0.7.0 BSD-3-Clause
    golang.org/x/exp v0.0.0-20230307190834-24139beb5833 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.9.0 BSD-3-Clause
    golang.org/x/net v0.8.0 BSD-3-Clause
    golang.org/x/oauth2 v0.6.0 BSD-3-Clause
    golang.org/x/sync v0.1.0 BSD-3-Clause
    golang.org/x/sys v0.6.0 BSD-3-Clause
    golang.org/x/term v0.6.0 BSD-3-Clause
    golang.org/x/text v0.8.0 BSD-3-Clause
    golang.org/x/time v0.3.0 BSD-3-Clause
    golang.org/x/tools v0.7.0 BSD-3-Clause
    golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 BSD-3-Clause
    google.golang.org/api v0.111.0 BSD-3-Clause
    google.golang.org/protobuf v1.29.0 BSD-3-Clause
    gopkg.in/errgo.v2 v2.1.0 BSD-3-Clause
    gopkg.in/inf.v0 v0.9.1 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
    github.com/gogo/protobuf v1.3.2

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

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

    github.com/klauspost/compress v1.14.2 BSD-3-Clause and Apache-2.0 and MIT

========================================================================
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/azure-sdk-for-go v65.0.0+incompatible MIT
    github.com/BurntSushi/toml v0.3.1 MIT
    github.com/Microsoft/go-winio v0.6.0 MIT
    github.com/Shopify/sarama v1.27.2 MIT
    github.com/Shopify/toxiproxy v2.1.4+incompatible MIT
    github.com/alecthomas/kingpin/v2 v2.3.2 MIT
    github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 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.4.1 MIT
    github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310 MIT
    github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 MIT
    github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 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/buger/jsonparser v1.1.1 MIT
    github.com/cenkalti/backoff/v4 v4.2.0 MIT
    github.com/cespare/xxhash v1.1.0 MIT
    github.com/cespare/xxhash/v2 v2.2.0 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.9 MIT
    github.com/dennwc/varint v1.0.0 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/eapache/go-resiliency v1.2.0 MIT
    github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 MIT
    github.com/eapache/queue v1.1.0 MIT
    github.com/emicklei/go-restful/v3 v3.10.1 MIT
    github.com/enriquebris/goconcurrentqueue v0.6.0 MIT
    github.com/fatih/color v1.14.1 MIT
    github.com/felixge/httpsnoop v1.0.3 MIT
    github.com/flowstack/go-jsonschema v0.1.1 MIT
    github.com/frankban/quicktest v1.11.3 MIT
    github.com/go-kit/kit v0.12.0 MIT
    github.com/go-kit/log v0.2.1 MIT
    github.com/go-logfmt/logfmt v0.6.0 MIT
    github.com/go-ole/go-ole v1.2.6 MIT
    github.com/go-resty/resty/v2 v2.7.0 MIT
    github.com/go-stack/stack v1.8.0 MIT
    github.com/golang-jwt/jwt/v4 v4.5.0 MIT
    github.com/grandecola/mmap v0.6.0 MIT
    github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 MIT
    github.com/hashicorp/go-hclog v1.4.0 MIT
    github.com/hashicorp/go-syslog v1.0.0 MIT
    github.com/hashicorp/mdns v1.0.0 MIT
    github.com/hetznercloud/hcloud-go v1.41.0 MIT
    github.com/josharian/intern v1.0.0 MIT
    github.com/jpillora/backoff v1.0.0 MIT
    github.com/json-iterator/go v1.1.12 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/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b MIT
    github.com/konsorten/go-windows-terminal-sequences v1.0.1 MIT
    github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 MIT
    github.com/kr/pretty v0.3.0 MIT
    github.com/kr/pty v1.1.1 MIT
    github.com/kr/text v0.2.0 MIT
    github.com/linode/linodego v1.14.1 MIT
    github.com/mailru/easyjson v0.7.7 MIT
    github.com/mattn/go-colorable v0.1.13 MIT
    github.com/mattn/go-isatty v0.0.17 MIT
    github.com/mitchellh/go-homedir v1.1.0 MIT
    github.com/mitchellh/go-testing-interface v1.0.0 MIT
    github.com/mitchellh/iochan v1.0.0 MIT
    github.com/mitchellh/mapstructure v1.5.0 MIT
    github.com/morikuni/aec v1.0.0 MIT
    github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e MIT
    github.com/onsi/ginkgo/v2 v2.4.0 MIT
    github.com/onsi/gomega v1.23.0 MIT
    github.com/pelletier/go-toml v1.8.1 MIT
    github.com/peterbourgon/diskv v2.0.1+incompatible MIT
    github.com/posener/complete v1.1.1 MIT
    github.com/prashantv/gostub v1.1.0 MIT
    github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f MIT
    github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 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.0 MIT
    github.com/spf13/jwalterweatherman v1.0.0 MIT
    github.com/spf13/viper v1.7.1 MIT
    github.com/stoewer/go-strcase v1.2.0 MIT
    github.com/stretchr/objx v0.5.0 MIT
    github.com/stretchr/testify v1.8.2 MIT
    github.com/subosito/gotenv v1.2.0 MIT
    github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 MIT
    github.com/urfave/cli/v2 v2.3.0 MIT
    github.com/vultr/govultr/v2 v2.17.2 MIT
    github.com/xhit/go-str2duration v1.2.0 MIT
    github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 MIT
    github.com/yuin/goldmark v1.3.5 MIT
    github.com/yusufpapurcu/wmi v1.2.2 MIT
    go.etcd.io/bbolt v1.3.2 MIT
    go.uber.org/atomic v1.10.0 MIT
    go.uber.org/automaxprocs v1.5.1 MIT
    go.uber.org/goleak v1.2.1 MIT
    go.uber.org/multierr v1.1.0 MIT
    go.uber.org/zap v1.10.0 MIT
    gopkg.in/alecthomas/kingpin.v2 v2.2.6 MIT
    gopkg.in/resty.v1 v1.12.0 MIT
    honnef.co/go/tools v0.0.1-2020.1.4 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.1 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/digitalocean/godo v1.97.0 MIT and BSD-3-Clause
    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.3.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/hashicorp/consul/api v1.20.0 MPL-2.0
    github.com/hashicorp/consul/sdk v0.1.1 MPL-2.0
    github.com/hashicorp/errwrap v1.1.0 MPL-2.0
    github.com/hashicorp/go-cleanhttp v0.5.2 MPL-2.0
    github.com/hashicorp/go-immutable-radix v1.3.1 MPL-2.0
    github.com/hashicorp/go-multierror v1.1.1 MPL-2.0
    github.com/hashicorp/go-retryablehttp v0.7.2 MPL-2.0
    github.com/hashicorp/go-rootcerts v1.0.2 MPL-2.0
    github.com/hashicorp/go-sockaddr v1.0.0 MPL-2.0
    github.com/hashicorp/go-uuid v1.0.2 MPL-2.0
    github.com/hashicorp/golang-lru v0.6.0 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/nomad/api v0.0.0-20230308192510-48e7d70fcd4b MPL-2.0
    github.com/hashicorp/serf v0.10.1 MPL-2.0
    github.com/mitchellh/cli v1.0.0 MPL-2.0
    github.com/mitchellh/gox v0.4.0 MPL-2.0
