view on FreshPorts

Why this port's declared license doesn't verbatim-match SPDX's canonical text for it. The highlighted line (if any) is where the authoritative template comparison first broke down.

APACHE20 no match (?%)

Unable to find the text ' 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 sof

Port's license text

========================================================================
MOD_AUTH_CAS 1.3 README
========================================================================
Apache CAS Authentication Module for the JASIG/Apereo CAS Server.

========================================================================
LICENSE
========================================================================
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

 https://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.

========================================================================
INTRODUCTION
========================================================================
The purpose of this module is to allow an Apache web server to interact
with an authentication server that conforms to the CAS version 1 or 2
protocol or SAML protocol as used by the JASIG/Apereo CAS Server.
At the time of this writing, the CAS protocol specification is here:

https://apereo.github.io/cas/development/protocol/CAS-Protocol-Specification.html

========================================================================
Getting Started
========================================================================

--------------------------------------------------------------------
Linux Distribution Packaging
--------------------------------------------------------------------
mod_auth_cas is available in most major Linux distributions, including
Debian, Ubuntu, Fedora, and is available from EPEL for CentOS and RHEL.


--------------------------------------------------------------------
Building from Source
--------------------------------------------------------------------

The following development libraries and utilities must be installed:
* OpenSSL - 0.9.8c or higher
* Apache Portable Runtime - 1.5.0 or higher
* Apache Portable Runtime Utilities - 1.3.0 or higher
* Apache Web Server - 2.4 or higher
* libcurl - 7.18.2 or higher
* libpcre2 - 10 or higher

Download the distribution via git or tarball.  Because git does not
preserve timestamps, autoconf may determine it is necessary to bootstrap
the project.  If building from source, please start with:

	autoreconf -ivf

Build is performed with the standard Autoconf incantation:

	./configure && make && sudo make install

Edit your Apache configuration to load the mod_auth_cas module:

	LoadModule auth_cas_module /path/to/mod_auth_cas.so

Set a few required parameters in your Apache configuration:

	CASCookiePath /var/cache/apache2/mod_auth_cas/
	CASLoginURL https://login.example.org/cas/login
	CASValidateURL https://login.example.org/cas/serviceValidate

Protect a "Location" or "Directory" block in your Apache
configuration:

	<Location /secured>
		AuthType CAS
		Require valid-user
	</Location>

If attribute-based authorization is also desired, specify cas-attribute
name:value in your Require rule (please note: both attribute name and value are
case-sensitive):

	CASCookiePath /var/cache/apache2/mod_auth_cas/
	CASLoginURL https://login.example.org/cas/login
	CASValidateURL https://login.example.org/cas/samlValidate
	CASValidateSAML On

	<Location /secured>
		AuthType CAS
		Require cas-attribute edupersonaffiliation:staff
	</Location>

Both the CAS 2.0 and SAML 1.1 protocols support including additional attributes
in the CAS validation response, which may also be added as HTTP headers (see
CASAttributePrefix and CASAttributeDelimiter). This example uses the SAML
protocol and requires that the 'edupersonaffiliation' attribute is set to
'staff'.


========================================================================
NEW FEATURES AND FUNCTIONS IN THIS RELEASE
========================================================================
* CASCookieSameSite, specify the SameSite parameter.
* CASCookieSecure, specify the optional 'Secure' attribute for cookies.
* Use apr_pescape_urlencoded() to URL-encode.
* Fix escaping for small chars in urlEncode().
* Add a random RequestID to the SAML payload.
* Bump required APR versions.
* Require Apache 2.4.
https://github.com/apereo/mod_auth_cas/milestone/7?closed=1

========================================================================
KNOWN ISSUES
========================================================================
* Autoconf does not work well on code freshly checked out of git.  Autoconf
 artifacts must be rebuilt using `autoreconf -ivf` .

========================================================================
KNOWN LIMITATIONS
========================================================================
These limitations are known to exists in this release of the software:

* CAS Proxy Validation is not implemented in this version.

* CAS Ticket Validation can only be performed over an SSL connection.
  The CAS protocol does not explicitly require this, but to not do so
  leaves this system open to a man-in-the-middle attack.

* CAS single sign out is currently not functional and disabled.  It
  is only safe to use in the case where all requests are GET and not
  POST (the module inadvertently 'eats' some content of the POST
  request while determining if it should process it as a SAML logout
  request).

* Reports of slow performance on some systems (particularly
  virtual machines) have been reported.  This is related to the
  entropy that is gathered when creating a session cookie for
  the end user.  To combat this, there are 3 solutions.  The
  first is to upgrade the version of the Apache Portable Runtime
  on your system to >= 1.3.0.  In that version, entropy is gathered
  from a nonblocking source.  The second method would be to install
  a package such as rng-tools and feed random data from /dev/urandom
  to /dev/random("-r /dev/urandom").  The  last way is to reduce
  the size of the CASCookieEntropy setting, reducing the demand on
  the pool.

* Win32 support has been dropped (but not removed) due to lack of
  development resources, and seemingly minimal community usage.
  You are welcome to try it, but YMMV for success.



========================================================================
Configuration
========================================================================
First, you must tell Apache to load the module.  In your httpd.conf,
add:

LoadModule auth_cas_module /path/to/mod_auth_cas.so

Then, in the location(s) you want to protect, use the following
directive:

AuthType CAS

Be sure to set authorization parameters in the locations you
are protecting(e.g. 'require valid-user', 'require group foo')

The following are valid configuration options and their default:

Valid Server/VirtualHost Directives
-----------------------------------
Directive: 	CASVersion
Default:	2
Description:	The version of the CAS protocol to adhere to (1 or 2).
		This affects whether Gateway mode is available and how
		the CAS validation response is parsed.

Directive: 	CASDebug
Default:	Off
Description:	Enable or disable debugging mode for troubleshooting.  Please
		note that LogLevel must be set to Debug for the VirtualHost in
		order for these logs to be visible.

Directive:	CASValidateDepth
Default:	9
Description:	This directive will set the maximum depth for chained certificate
		validation.  The default (according to OpenSSL documentation) is 9.

Directive: 	CASCertificatePath
Default:	/etc/ssl/certs/
Description:	The path to the X509 certificate of the Certificate Authority for
		the server in CASLoginURL and CASValidateURL.  This may be either
		a file, or a directory containing the certificate files linked to
		by their hashed names.

Directive: 	CASLoginURL
Default:	NULL
Description:	The URL to redirect users to when they attempt to access a CAS
		protected resource and do not have an existing session.  The
		'service', 'renew', and 'gateway' parameters will be appended to
		this by mod_auth_cas if necessary.  Include 'http[s]://...'

Directive: 	CASValidateURL
Default:	NULL
Description:	The URL to use when validating a ticket presented by a client in
		the HTTP query string (ticket=...).  Must include 'https://' and
		must be an HTTPS URL.

Directive: 	CASProxyValidateURL
Default:	NULL
Description:	The URL to use when performing a proxy validation.  This is currently
		an unimplemented feature, so setting this will have no effect.

Directive: 	CASRootProxiedAs
Default:	NULL
Description:	This URL represents the URL that end users may see in the event that
		access to this Apache server is proxied.  This will override the
		automatic generation of service URLs and construct them using this
		prefix.  As an example: If the site being protected is http://example.com/
		and the Apache instance of this server is http://internal.example.com:8080,
		setting CASRootProxiedAs to http://example.com would result in proper
		service parameter generation.

Directive: 	CASCookiePath
Default:	/dev/null
Description:	When users first authenticate to mod_auth_cas with a valid service ticket,
		a local session is established.  Information about this session (the
		username, time of creation, last activity time, the resource initially
		requested, and whether or not the credentials were renewed) is stored
		in this directory.  This location should be writable by the web server ONLY.
		Any user that can write to this location can falsify authentication information
		by creating a fake data file.
		NOTE : Some distributions purge the contents of /tmp/ on a reboot, including
		user created directories.  This will prevent mod_auth_cas from storing
		cookie information until that directory is created.  To avoid this, try
		using a different location, such as /var/cache/apache2/mod_auth_cas/

Directive: 	CASCookieEntropy
Default:	32
Description:	When creating a local session, this many random bytes are used to
		create a unique session identifier.  Using large values for this
		field may result in delays when generating session IDs if not
		enough entropy is available.

Directive: 	CASTimeout
Default:	7200 (2 hours)
Description:	This is the hard limit, in seconds, for a mod_auth_cas session (whether
		it is idle or not).  When a session has reached this age and a new
		request is made, the user is redirected to the CASLoginURL to
		obtain a new service ticket.  When this new ticket is validated,
		they will be assigned a new mod_auth_cas session.  Set this value to '0'
		in order to allow a non-idle session to not expire.

Directive: 	CASIdleTimeout
Default:	3600 (1 hour)
Description:	This is a limit, in seconds, of how long a mod_auth_cas session can be idle.
		When a request comes in, if it has been inactive for CASIdleTimeout
		seconds, the user is redirected to the CASLoginURL to obtain a new
		service ticket.

Directive: 	CASCacheCleanInterval
Default:	1800 (30 minutes)
Description:	This is the minimum amount of time that must pass inbetween cache
		cleanings.  When a new ticket is issued, or when an expired session
		is presented, the time of the last cache clean is compared against
		this value.  If CASCacheCleanInterval seconds have passed since the
		last cleaning, then all files in CASCookiePath are examined and if
		they have expired, they are removed.  This is merely to prevent the
		file system from becoming excessively cluttered.

Directive:	CASCookieDomain
Default:	NULL
Description:	Specify the value for the 'Domain=' parameter in the Set-Cookie header.

Directive:	CASCookieSameSite
Default:	NULL
Description:	Specify the value for the 'SameSite=' parameter in the Set-Cookie header.
		Allowed values are 'None', 'Lax', and 'Strict'.

Directive:	CASCookieHttpOnly
Default:	On
Description:	Set the optional 'HttpOnly' flag for cookies issues by mod_auth_cas.
		Set the HttpOnly flag as described in in RFC 6265.  This flag prevents the
		mod_auth_cas cookies from being accessed by client side Javascript.

Directive:	CASCookieSecure
Default:	Auto
Description:	Set the optional 'Secure' attribute for cookies issued by mod_auth_cas.
		Set the Secure attribute as described in in RFC 6265. This flag prevents the
		mod_auth_cas cookies from being sent over an unencrypted HTTP connection.
		By default, mod_auth_cas sets the 'Secure' attribute depending on information about
		the connection (the 'Auto' option). The options 'On' and 'Off' can be used to override
		the automatic behaviour.

Directive:	CASAuthoritative
Default:	Off
Description:	This directive determines whether an optional authorization directive
		(see 'Require cas-attribute') is authoritative and thus binding or
		if other authorization modules will also be applied.
		'On' means authoritative, 'Off' means not authoritative.
		NOTE: This directive is unavailable with Apache 2.4. See the RequireAny,
		RequireNone, and RequireAll directives instead.

Directive:	CASValidateSAML
Default:	Off
Description:	If enabled, the response from the CAS Server will be parsed for SAML
		attributes which will be associated with the user.  Requires setting
		CASValidateURL appropriately; typical URLs are of the form
		https://login.example.org/cas/samlValidate.

Directive:	CASAttributePrefix
Default:	CAS_ (Apache < 2.4)
		CAS- (Apache 2.4)
Description:	The prefix to use when adding CAS or SAML attributes to the HTTP headers,
		which will be named <CASAttributePrefix><attr_name>.  CASAuthNHeader
		must be set for this directive to be used.
		NOTE: In Apache 2.4 and newer, headers containing "invalid" characters
		(including underscores) are silently dropped, so you must set this to
		a "valid" name containing only alphabetic characters and hyphens.

Directive:	CASAttributeDelimiter
Default:	,
Description:	mod_auth_cas will set the value of the attribute header (as described
		in CASAttributePrefix) to <attrvalue><CASAttributeDelimiter><attrvalue>
		in the case of multiple attribute values.

Directive:	CASPreserveTicket
Default:	Off
Description:	This directive leaves CAS ticket parameters intact when a valid
		session cookie exists. This helps prevent infinite redirect loops when
		CAS protection is being used at multiple levels.

Directive:	CASGatewayCookieDomain
Default:	NULL
Description:	Specify the value for the 'Domain=' parameter in the Set-Cookie header
		when setting the CASGatewayCookie.

Valid Directory/.htaccess Directives
------------------------------------
Directive:	CASScope
Default:	Off
Description:	Use this directive with an argument as a relative path (e.g. /application/) to specify
		the scope for which a mod_auth_cas cookie is valid.  This is beneficial to prevent
		additional round trips to the CAS server.  Assume someone authenticates to /application/subdir/
		and then browses to /application/ - without CASScope set, each request would result in
		a round trip to the CAS server and a new cookie being created (one for each directory).
		CASScope would set one cookie, which will be presented on access to both directories.
		Note that if someone accessed /application/ and then /application/subdir/ this would not
		be an issue, but that order of access can not be guaranteed.  To disable this feature,
		the special argument 'Off' will return to per-directory cookie paths for this directory
		and subdirectories.

Directive: 	CASRenew
Default:	Off
Description:	Use this directive with an argument as a relative path (e.g. /application/secure/
		for http://www.example.com/application/secure/*) to force a user to renew their
		credentials when accessing that directory.  The argument MUST be a relative path.
		To disable this requirement, the special argument 'Off' will disable this requirement
		for this directory and subdirectories.

Directive: 	CASGateway
Default:	Off
Description:	Use this directive with an argument as a relative path (e.g. /application/insecure/
		for http://www.example.com/application/insecure/*) to allow anonymous access to that directory.
		The argument MUST be a relative path. To disable this feature, the special argument 'Off'
		will reinstate the requirement for authentication.

Directive: 	CASCookie
Default:	MOD_AUTH_CAS
Description:	The name of the cookie used to store the session ID over HTTP connections.
		It should be changed if it will interfere with the application protected
		by mod_auth_cas.

Directive: 	CASSecureCookie
Default:	MOD_AUTH_CAS_S
Description:	The name of the cookie used to store the session ID over HTTPS connections.
		It should be changed if it will interfere with the application protected
		by mod_auth_cas.

Directive: 	CASGatewayCookie
Default:	MOD_AUTH_CAS_G
Description:	The name of the cookie used to store whether or not the user has attempted
		to access this resource before.  It should be changed if it will interfere
		with the application protected by mod_auth_cas.

Directive:	CASAuthNHeader
Default:	None
Description:	If enabled, this will store the user returned by CAS in the specified
		HTTP header accessible to your web applications, and any additional
		attributes received in headers named according to CASAttributePrefix.
		This is in addition to the REMOTE_USER environment variable, which is
		always set to the CAS user.

Directive:	CASSSOEnabled
Default:	Off
Description:	If enabled, this activates support for Single Sign Out within the CAS
		protocol.  Please note that this feature is currently experimental and
		may mangle POST data.

Directive:	CASScrubRequestHeaders
Default:	Off
Description:	mod_auth_cas will strip request inbound request headers that may have
		special meaning, such as those set with the CASAttributePrefix or the
		CASAuthNHeader value.

Directive:	Require cas-attribute <attribute>:<value>
Default:	NULL
Description:	Use this directive to authorize based on CAS or SAML attributes
		returned via the session validation call. Multiple directives
		are OR-ed. If directive is present with no attributes defined,
		the request is declined. If value has spaces, wrap the pair in quotes.
		See also CASAuthoritative.

Directive:	Require cas-attribute <attribute>~<value>
Default:	NULL
Description:	Use this form of the directive to authorize based on CAS or SAML
		attributes returned via the session validation call. Multiple
		directives are OR-ed. If directive is present with no attributes
		defined, the request is declined. The value is interpreted as a
		Perl-Compatible Regular Expression (PCRE) using case-sensitive
		matching. See also CASAuthoritative.

========================================================================
CONTACT INFORMATION AND WEBSITE
========================================================================
We welcome your feedback, suggestions and contributions. Contact us
via email if you have questions, feedback, code submissions,
and bug reports.  To reach the development team, send an e-mail to:

cas-user [at] apereo [dot] org

Google Group link:

https://groups.google.com/a/apereo.org/forum/#!forum/cas-user

========================================================================

SPDX canonical text (Apache-2.0)

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.