Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
141 commits
Select commit Hold shift + click to select a range
99c4977
Create CODE_OF_CONDUCT.md
harjotgill Apr 15, 2024
ba83448
Create LICENSE
harjotgill Apr 15, 2024
613ee5b
update readme file (#3)
harjotgill Apr 16, 2024
84fa326
update readme file
harjotgill Apr 16, 2024
b406eb2
update readme file
harjotgill Apr 16, 2024
93d03f7
ignore snapshots dir
harjotgill Apr 16, 2024
ecbc361
update test scripts
harjotgill Apr 16, 2024
b46c4a5
Pull request for 10 rules ESS-ENN (#5)
ESS-ENN Sep 13, 2024
acaf82b
Update ast-grep CLI & add Java cookie management rules
ESS-ENN Sep 17, 2024
4469961
More Rules
ESS-ENN Oct 5, 2024
861d3af
New Rules #2 (#9)
ESS-ENN Oct 8, 2024
46adf34
Rules - Express-jwt-hardcoded-secret in Js/Ts (#11)
ESS-ENN Oct 14, 2024
7fdcff7
Rules - node-rsa-weak-key in Js/Ts (#12)
ESS-ENN Oct 14, 2024
3c05cf1
One java and one rust rule (#13)
ESS-ENN Oct 14, 2024
733925a
Two Java rules (#14)
ESS-ENN Oct 14, 2024
de8d0d2
Two Go rules 10Oct2024 (#15)
ESS-ENN Oct 14, 2024
abb8329
Two Java rules 10Oct2024 (#16)
ESS-ENN Oct 14, 2024
d559d8d
Rules - dont-call-system c/cpp (#17)
ESS-ENN Oct 14, 2024
0e8745b
Rules - One go and one java rule - 11Oct2024 (#18)
ESS-ENN Oct 14, 2024
55f13af
avoid_app_run_with_bad_host-python (#38)
ESS-ENN Oct 21, 2024
a30dbee
Two java rules (#37)
ESS-ENN Oct 21, 2024
b557be1
Two Rust rules (#36)
ESS-ENN Oct 21, 2024
6de8b31
Two Rust rules (#35)
ESS-ENN Oct 21, 2024
2e9c47a
Rules - One C rule and one Ruby rule (#34)
ESS-ENN Oct 21, 2024
6addd15
Two python rules (#33)
ESS-ENN Oct 21, 2024
2095347
Rules: null-function-library-c/cpp (#19)
ESS-ENN Oct 21, 2024
83f7755
Rules - One php and one java rule (#20)
ESS-ENN Oct 21, 2024
b0a1a75
insecure-cipher-algorithm-rc4-python (#21)
ESS-ENN Oct 21, 2024
caeec71
Rules - insecure-hash-c/cpp (#22)
ESS-ENN Oct 21, 2024
1243715
Rules - file-access-before-action-c/cpp (#23)
ESS-ENN Oct 21, 2024
58ed498
Rules - file-stat-before-action c/cpp (#27)
ESS-ENN Oct 21, 2024
6e64fdd
Two openai go rules (#28)
ESS-ENN Oct 21, 2024
af6114f
Two openai go rules (#29)
ESS-ENN Oct 21, 2024
0fcecb7
insecure-binaryformatter-deserialization-csharp (#30)
ESS-ENN Oct 21, 2024
a992440
Two python rules 16Oct2024 (#31)
ESS-ENN Oct 21, 2024
92ac6ea
Rules- std-vector-invalidation - c/cpp (#32)
ESS-ENN Oct 21, 2024
8f8d6b8
Add Swift webview security rules and test cases for JS window handling
ESS-ENN Oct 29, 2024
fc6bdd1
Add security rules for socket binding and Flask debug mode detection
ESS-ENN Oct 29, 2024
25f494c
Add YAML Configs for Swift Webview Security Rules and Test Cases
ESS-ENN Oct 29, 2024
f37f76b
Add security rules for Java and Swift applications for cookie and sec…
ESS-ENN Oct 29, 2024
7bb6d85
Modified rule - python-couchbase-empty-password-python (#50)
ESS-ENN Nov 7, 2024
a6e3a99
Add dynamic JSON badge to README for CodeRabbit reviews (#53)
hasit Nov 21, 2024
77e11ee
Update README to rename dynamic JSON badge for CodeRabbit reviews (#54)
hasit Nov 21, 2024
35cdc2e
update cr badge link (#55)
hasit Nov 21, 2024
0968fde
Update CodeRabbit Reviews badge in README for improved stats display
hasit Nov 21, 2024
194ba33
Update README.md
hasit Nov 21, 2024
6337e9f
Update README.md
hasit Nov 22, 2024
39b1e92
Update README.md
hasit Nov 22, 2024
e454b3f
Update @ast-grep/cli dependency version in package.json to ^0.30.1 (#57)
ESS-ENN Nov 30, 2024
8f3b74c
Removing missing-httponly-java rule (#59)
ESS-ENN Dec 2, 2024
208951b
Removing empty password rules (#60)
ESS-ENN Dec 3, 2024
965fc6e
Removing all rules except those tested on live pipeline (#61)
ESS-ENN Dec 3, 2024
7efa888
Keeping only tested rules version 2 (#64)
ESS-ENN Dec 4, 2024
b33929c
Add Security Rules for Flask, Cassandra, and Couchbase in YAML Config…
ESS-ENN Dec 11, 2024
1d5f5b5
Add security rules for cookie settings and XML processing in YAML con…
ESS-ENN Dec 11, 2024
4460735
Upgrage ast-grep cli (#107)
ganeshpatro321 Dec 11, 2024
eba2ab9
Upgrage ast-grep cli (#108)
ganeshpatro321 Dec 11, 2024
d391fa9
cookie-missing-samesite-java (#68)
ESS-ENN Dec 12, 2024
2d24609
Add security rules for cookie handling in Java applications (#67)
ESS-ENN Dec 12, 2024
13660fd
Add security rules for Flask applications and corresponding tests (#69)
ESS-ENN Dec 13, 2024
5f5bb55
Add security rules for deprecated mktemp and empty password in Python…
ESS-ENN Dec 16, 2024
82e2b53
Add security rules for ARC4, hard-coded secrets, and passwords in Pyt…
ESS-ENN Dec 16, 2024
bd11015
Removed missing-secure-java (#122)
ESS-ENN Dec 16, 2024
4bfcf6c
remove missing-secure-java (#124)
ESS-ENN Dec 16, 2024
ab61ac8
Removed missing-secure-java (#121)
ESS-ENN Dec 16, 2024
3779c0a
Add Security Rules for Vulnerability Detection in JavaScript and Java…
ESS-ENN Dec 17, 2024
e482876
Add security rules for detecting hard-coded secrets in JavaScript app…
ESS-ENN Dec 17, 2024
7ff7b5b
Add Security Rules for Database Connections and SSL Configurations in…
ESS-ENN Dec 19, 2024
3a393db
Add security rules for JWT verification and RSA key length validation…
ESS-ENN Dec 19, 2024
585499b
Add security rules for RSA encryption and sensitive data management i…
ESS-ENN Dec 26, 2024
87745a8
Add security rules for weak encryption practices in Java and Kotlin (…
ESS-ENN Dec 26, 2024
d7b5627
Add security rules for detecting hard-coded secrets in TypeScript app…
ESS-ENN Jan 7, 2025
97cec08
Add security rules for encryption practices in Kotlin and TypeScript …
ESS-ENN Jan 8, 2025
97899dd
Remove TypeScript rule for detecting hardcoded JWT secrets in Express…
ESS-ENN Jan 8, 2025
ec64feb
Add Security Rules for Detecting RC2 and RC4 Cryptographic Algorithms…
ESS-ENN Jan 9, 2025
243da62
Add static analysis rules for C++ and Rust security checks (#128)
ESS-ENN Jan 13, 2025
eb899a0
Add security static analysis rules for C, Java, and Swift (#129)
ESS-ENN Jan 16, 2025
5ba2ee0
Add security rules for C++ and Go to prevent use-after-free and inter…
ESS-ENN Jan 16, 2025
4aec0d5
Add Security Rule for Detecting Small Cryptographic Key Sizes (#131)
ESS-ENN Jan 20, 2025
9d817d9
Add static analysis rules for NULL pointer dereference detection (#132)
ESS-ENN Jan 20, 2025
e889ef2
Add security rules for detecting plaintext HTTP links and unencrypted…
ESS-ENN Jan 20, 2025
fc22c5c
Add security rules for format string and JWT secret detection (#134)
ESS-ENN Jan 20, 2025
96917cb
Add security rules for C# cookie flags and Java MD5 usage (#135)
ESS-ENN Jan 23, 2025
6d8eb4f
Add security rules for pg8000 database connection authentication (#136)
ESS-ENN Jan 29, 2025
454952c
Add security rules for detecting Redis connection vulnerabilities (#137)
ESS-ENN Jan 29, 2025
2f79eec
Add security rules for detecting empty passwords and hard-coded secre…
ESS-ENN Jan 29, 2025
0924376
Add Peewee MySQL security rules for empty passwords and hardcoded cre…
ESS-ENN Jan 29, 2025
acd2b48
Add Peewee ORM security rules for empty passwords and hard-coded secr…
ESS-ENN Jan 29, 2025
0745c9c
Add security rules for detecting hard-coded secrets in Java and Pytho…
ESS-ENN Jan 29, 2025
7e65147
Add security rules for detecting hardcoded tokens and empty passwords…
ESS-ENN Jan 29, 2025
adc8c4a
Add security rules for detecting empty passwords in database connecti…
ESS-ENN Jan 30, 2025
1b71ba2
Add Security Rules for Database Connection Vulnerabilities in Ruby (#…
ESS-ENN Jan 30, 2025
1c469ee
Add security rules for detecting password vulnerabilities in Python (…
ESS-ENN Jan 30, 2025
ba28373
Add Ruby Cassandra security rules for empty and hardcoded passwords (…
ESS-ENN Feb 5, 2025
5955416
Add C# BinaryFormatter and Ruby force_ssl security rules with tests (…
ESS-ENN Feb 5, 2025
6c02009
Add security rules and YAML configs for detecting hard-coded secrets …
ESS-ENN Feb 6, 2025
003adb8
Add security rules and tests for deprecated crypto algorithms (#150)
ESS-ENN Feb 6, 2025
b655dc4
Add security rules for system() usage in C/C++ and JWT expiry in C# (…
ESS-ENN Feb 7, 2025
8111747
Add Go security rules: session/CSRF keys, insecure gRPC, weak RSA (#153)
ESS-ENN Feb 19, 2025
8c2b8d8
Add Go TLS rules: min version, SSLv3, cipher suite checks (#154)
ESS-ENN Feb 19, 2025
eb0d7c8
Add MongoDB rules and tests for empty password and hardcoded secrets …
ESS-ENN Feb 19, 2025
1ee65a1
Add Ruby security rules for RSA key size, AWS SDK and Faraday secrets…
ESS-ENN Feb 19, 2025
b1ed0d5
Add Java security rules to detect ECB mode and MD5 hashing (#160)
ESS-ENN Feb 19, 2025
4e9c098
Add YAML rules for insecure C/C++ hash detection and XML parsing audi…
ESS-ENN Mar 3, 2025
d61dbc0
Add YAML rules and tests for detecting hard-coded secrets in C# (#161)
ESS-ENN Mar 3, 2025
b30a32d
Add security rules for empty and hard-coded OpenAI secrets (#164)
ESS-ENN Mar 4, 2025
7e89dfe
Add YAML security rules and tests for tormysql empty/hardcoded creds …
ESS-ENN Mar 4, 2025
65f3877
Add mysql2 security rules for empty passwords and hard-coded secrets …
ESS-ENN Mar 4, 2025
49daa48
Add YAML security rules for DocumentBuilderFactory external entities …
ESS-ENN Mar 4, 2025
4845837
Add Swift rules and tests for hard-coded encryption secrets (#167)
ESS-ENN Mar 7, 2025
cd6f3c0
Add YAML configs and tests for hard-coded secrets and empty passwords…
ESS-ENN Mar 7, 2025
8ab0db7
Add YAML security rules and tests for insecure secret usage (#169)
ESS-ENN Mar 7, 2025
b321e69
Add YAML security rules for static AES-CBC IV and debug logging in PH…
ESS-ENN Mar 7, 2025
0745592
Remove LDAP3 and Express JWT Security Rules and Test Snapshots (#171)
ESS-ENN Mar 10, 2025
e67eb44
Add new Rust security rules for sqlx and reqwest credential detection…
ESS-ENN Mar 12, 2025
83eed01
Add security rules for SHA-1, AES-ECB, and Blowfish in Java (#173)
ESS-ENN Mar 12, 2025
ef7de1e
Add Java rules for detecting hardcoded secrets in System.setProperty …
ESS-ENN Mar 12, 2025
78e1733
Add security rules to detect hard-coded credentials in Java (#174)
ESS-ENN Mar 12, 2025
1ea88d9
@coderabbitai (#176)
ESS-ENN Mar 20, 2025
d731822
Remove obsolete C rule; add C++ static check for UAF and vector issue…
ESS-ENN Mar 21, 2025
a7f10b8
Add YAML rules to detect hard-coded connection passwords in Java (#178)
ESS-ENN Mar 24, 2025
94c883f
Add YAML security rules and tests for ldap3 and MariaDB (#179)
ESS-ENN Mar 24, 2025
f2cd9ef
Add YAML AST-based security rules and tests for Python MySQL/Neo4j (#…
ESS-ENN Mar 24, 2025
f045379
Add Python MySQL client security analysis rules and tests (#181)
ESS-ENN Mar 26, 2025
1ccaa1d
Add YAML rules and tests for insecure JWT usage detection (#182)
ESS-ENN Mar 26, 2025
9b2c159
Add C++ security rules for NUL terminators and string_view safety (#183)
ESS-ENN Mar 26, 2025
999bfc0
Add Java security rules for missing HttpOnly and Secure cookie flags …
ESS-ENN Mar 26, 2025
e4f3656
Add YAML security rules and tests for hard-coded secret detection (#185)
ESS-ENN Mar 26, 2025
7be2de2
Add YAML-based AST security rules and tests for C#, Java, Ruby (#186)
ESS-ENN Mar 26, 2025
312d915
Update YAML rule for $APP.UseDeveloperExceptionPage and snapshot file
ESS-ENN Mar 27, 2025
b8890c3
Add Swift UIWebView nil baseURL detection rule and update snapshots (…
ESS-ENN Mar 28, 2025
10d6d0e
Add Swift YAML rules for HKDF, PKCS5, Scrypt; update test configs (#188)
ESS-ENN Mar 28, 2025
51098a1
Remove YAML files for HKDF, PKCS5, Scrypt, and webview rules and test…
ESS-ENN Mar 31, 2025
ebe83f9
Add AST rules for detecting world-writable file creation in C/C++ (#191)
ESS-ENN Mar 31, 2025
14976fe
Add Security Rules for TOCTOU Race Conditions in C/C++ File Operation…
ESS-ENN Mar 31, 2025
fc29396
Add C# Security Rule for Detecting Insecure ECB Encryption Mode (#194)
ESS-ENN Mar 31, 2025
20037f8
Add C# JWT rules: enforce token verification and no hardcoded secrets…
ESS-ENN Mar 31, 2025
12c43e1
Add static analysis rules for detecting TOCTOU race conditions in C/C…
ESS-ENN Mar 31, 2025
9b83c66
Remove Nested nthChild and if_statement Conditions and Rule Comments …
ESS-ENN Mar 31, 2025
e5ce052
Add 5 TypeScript security rules with tests
gatsby003 Jul 24, 2025
8e9c647
fix
gatsby003 Jul 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
128 changes: 128 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
contact@coderabbit.ai.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
3 changes: 3 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Contributing

We welcome contributions to this repo! Please fork and make a pull request.
201 changes: 201 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
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.
Loading