diff --git a/self-extractors/broadcom/LICENSE b/self-extractors/broadcom/LICENSE
index 259cf32..f633ddc 100644
--- a/self-extractors/broadcom/LICENSE
+++ b/self-extractors/broadcom/LICENSE
@@ -37,16 +37,17 @@
 
       a.  Subject to the terms of this Agreement, Licensor hereby grants to
           You, free of charge, a non-exclusive, non-sublicensable,
-          non-transferable, limited license, during the term of this
-          Agreement, to download, install and use the Software internally in
-          machine-readable (i.e., object code) form and the Documentation for
-          non-commercial use on an Authorized Android Enabled Device and
-          non-commercial redistribution of the Authorized Android Enabled
-          Device Software (the "Limited Purpose"). You may grant your end
-          users the right to use the Software for the Limited Purpose. The
-          license to the Software granted to You hereunder is solely for the
-          Limited Purpose set forth in this section, and the Software shall
-          not be used for any other purpose.
+          non-transferable, limited license, during the term of
+          this Agreement, to download, install and use the Software
+          internally in machine-readable (i.e., object code) form and the
+          Documentation for non-commercial use on an Authorized Android
+          Enabled Device and non-commercial redistribution of the Authorized
+          Android Enabled Device Software (the "Limited Purpose"). You may
+          grant your end users the right to use the Software for
+          the Limited Purpose.
+          The license to the Software granted to You hereunder is solely for
+          the Limited Purpose set forth in this section, and the Software
+          shall not be used for any other purpose.
 
    3.  Restrictions
 
@@ -57,7 +58,7 @@
           the delivery of the Software to You does not convey to You any
           intellectual property rights in the Software, including, but not
           limited to any rights under any patent, trademark, copyright, or
-          trade secret.  Neither the delivery of the Software to You nor any
+          trade secret. Neither the delivery of the Software to You nor any
           terms set forth herein shall be construed to grant to You, either
           expressly, by implication or by way of estoppel, any license under
           any patents or other intellectual property rights covering or
@@ -141,15 +142,16 @@
           DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
           EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
           THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
-          IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY TO YOU FOR
-          ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF ACTIONS (WHETHER
-          IN CONTRACT, TORT, INCLUDING NEGLIGENCE, INDEMNIFICATION OR
-          OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS (US$100). THE
-          LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE DEEMED TO APPLY TO
-          THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW. THE PARTIES HAVE
-          FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK AND FIND IT
-          REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS PARAGRAPH
-          ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE PARTIES.
+          IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+          TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+          ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+          INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+          (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+          DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+          THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+          AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+          PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+          PARTIES.
 
    6.  No Warranty
 
diff --git a/self-extractors/imgtec/LICENSE b/self-extractors/imgtec/LICENSE
index 2d2b246..aa6c479 100644
--- a/self-extractors/imgtec/LICENSE
+++ b/self-extractors/imgtec/LICENSE
@@ -37,16 +37,17 @@
 
       a.  Subject to the terms of this Agreement, Licensor hereby grants to
           You, free of charge, a non-exclusive, non-sublicensable,
-          non-transferable, limited license, during the term of this
-          Agreement, to download, install and use the Software internally in
-          machine-readable (i.e., object code) form and the Documentation for
-          non-commercial use on an Authorized Android Enabled Device and
-          non-commercial redistribution of the Authorized Android Enabled
-          Device Software (the "Limited Purpose"). You may grant your end
-          users the right to use the Software for the Limited Purpose. The
-          license to the Software granted to You hereunder is solely for the
-          Limited Purpose set forth in this section, and the Software shall
-          not be used for any other purpose.
+          non-transferable, limited license, during the term of
+          this Agreement, to download, install and use the Software
+          internally in machine-readable (i.e., object code) form and the
+          Documentation for non-commercial use on an Authorized Android
+          Enabled Device and non-commercial redistribution of the Authorized
+          Android Enabled Device Software (the "Limited Purpose"). You may
+          grant your end users the right to use the Software for
+          the Limited Purpose.
+          The license to the Software granted to You hereunder is solely for
+          the Limited Purpose set forth in this section, and the Software
+          shall not be used for any other purpose.
 
    3.  Restrictions
 
@@ -57,7 +58,7 @@
           the delivery of the Software to You does not convey to You any
           intellectual property rights in the Software, including, but not
           limited to any rights under any patent, trademark, copyright, or
-          trade secret.  Neither the delivery of the Software to You nor any
+          trade secret. Neither the delivery of the Software to You nor any
           terms set forth herein shall be construed to grant to You, either
           expressly, by implication or by way of estoppel, any license under
           any patents or other intellectual property rights covering or
@@ -141,15 +142,16 @@
           DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
           EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
           THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
-          IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY TO YOU FOR
-          ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF ACTIONS (WHETHER
-          IN CONTRACT, TORT, INCLUDING NEGLIGENCE, INDEMNIFICATION OR
-          OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS (US$100). THE
-          LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE DEEMED TO APPLY TO
-          THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW. THE PARTIES HAVE
-          FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK AND FIND IT
-          REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS PARAGRAPH
-          ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE PARTIES.
+          IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+          TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+          ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+          INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+          (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+          DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+          THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+          AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+          PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+          PARTIES.
 
    6.  No Warranty
 
diff --git a/self-extractors/invensense/LICENSE b/self-extractors/invensense/LICENSE
index e208dc4..e697fb0 100644
--- a/self-extractors/invensense/LICENSE
+++ b/self-extractors/invensense/LICENSE
@@ -37,16 +37,17 @@
 
       a.  Subject to the terms of this Agreement, Licensor hereby grants to
           You, free of charge, a non-exclusive, non-sublicensable,
-          non-transferable, limited license, during the term of this
-          Agreement, to download, install and use the Software internally in
-          machine-readable (i.e., object code) form and the Documentation for
-          non-commercial use on an Authorized Android Enabled Device and
-          non-commercial redistribution of the Authorized Android Enabled
-          Device Software (the "Limited Purpose"). You may grant your end
-          users the right to use the Software for the Limited Purpose. The
-          license to the Software granted to You hereunder is solely for the
-          Limited Purpose set forth in this section, and the Software shall
-          not be used for any other purpose.
+          non-transferable, limited license, during the term of
+          this Agreement, to download, install and use the Software
+          internally in machine-readable (i.e., object code) form and the
+          Documentation for non-commercial use on an Authorized Android
+          Enabled Device and non-commercial redistribution of the Authorized
+          Android Enabled Device Software (the "Limited Purpose"). You may
+          grant your end users the right to use the Software for
+          the Limited Purpose.
+          The license to the Software granted to You hereunder is solely for
+          the Limited Purpose set forth in this section, and the Software
+          shall not be used for any other purpose.
 
    3.  Restrictions
 
@@ -57,7 +58,7 @@
           the delivery of the Software to You does not convey to You any
           intellectual property rights in the Software, including, but not
           limited to any rights under any patent, trademark, copyright, or
-          trade secret.  Neither the delivery of the Software to You nor any
+          trade secret. Neither the delivery of the Software to You nor any
           terms set forth herein shall be construed to grant to You, either
           expressly, by implication or by way of estoppel, any license under
           any patents or other intellectual property rights covering or
@@ -141,15 +142,16 @@
           DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
           EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
           THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
-          IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY TO YOU FOR
-          ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF ACTIONS (WHETHER
-          IN CONTRACT, TORT, INCLUDING NEGLIGENCE, INDEMNIFICATION OR
-          OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS (US$100). THE
-          LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE DEEMED TO APPLY TO
-          THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW. THE PARTIES HAVE
-          FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK AND FIND IT
-          REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS PARAGRAPH
-          ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE PARTIES.
+          IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+          TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+          ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+          INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+          (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+          DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+          THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+          AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+          PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+          PARTIES.
 
    6.  No Warranty
 
diff --git a/self-extractors/nxp/LICENSE b/self-extractors/nxp/LICENSE
index ae318a7..8a31337 100644
--- a/self-extractors/nxp/LICENSE
+++ b/self-extractors/nxp/LICENSE
@@ -37,16 +37,17 @@
 
       a.  Subject to the terms of this Agreement, Licensor hereby grants to
           You, free of charge, a non-exclusive, non-sublicensable,
-          non-transferable, limited license, during the term of this
-          Agreement, to download, install and use the Software internally in
-          machine-readable (i.e., object code) form and the Documentation for
-          non-commercial use on an Authorized Android Enabled Device and
-          non-commercial redistribution of the Authorized Android Enabled
-          Device Software (the "Limited Purpose"). You may grant your end
-          users the right to use the Software for the Limited Purpose. The
-          license to the Software granted to You hereunder is solely for the
-          Limited Purpose set forth in this section, and the Software shall
-          not be used for any other purpose.
+          non-transferable, limited license, during the term of
+          this Agreement, to download, install and use the Software
+          internally in machine-readable (i.e., object code) form and the
+          Documentation for non-commercial use on an Authorized Android
+          Enabled Device and non-commercial redistribution of the Authorized
+          Android Enabled Device Software (the "Limited Purpose"). You may
+          grant your end users the right to use the Software for
+          the Limited Purpose.
+          The license to the Software granted to You hereunder is solely for
+          the Limited Purpose set forth in this section, and the Software
+          shall not be used for any other purpose.
 
    3.  Restrictions
 
@@ -57,7 +58,7 @@
           the delivery of the Software to You does not convey to You any
           intellectual property rights in the Software, including, but not
           limited to any rights under any patent, trademark, copyright, or
-          trade secret.  Neither the delivery of the Software to You nor any
+          trade secret. Neither the delivery of the Software to You nor any
           terms set forth herein shall be construed to grant to You, either
           expressly, by implication or by way of estoppel, any license under
           any patents or other intellectual property rights covering or
@@ -141,15 +142,16 @@
           DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
           EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
           THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
-          IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY TO YOU FOR
-          ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF ACTIONS (WHETHER
-          IN CONTRACT, TORT, INCLUDING NEGLIGENCE, INDEMNIFICATION OR
-          OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS (US$100). THE
-          LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE DEEMED TO APPLY TO
-          THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW. THE PARTIES HAVE
-          FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK AND FIND IT
-          REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS PARAGRAPH
-          ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE PARTIES.
+          IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+          TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+          ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+          INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+          (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+          DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+          THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+          AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+          PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+          PARTIES.
 
    6.  No Warranty
 
diff --git a/self-extractors/samsung/LICENSE b/self-extractors/samsung/LICENSE
index 5cbc9dd..6a20492 100644
--- a/self-extractors/samsung/LICENSE
+++ b/self-extractors/samsung/LICENSE
@@ -37,16 +37,17 @@
 
       a.  Subject to the terms of this Agreement, Licensor hereby grants to
           You, free of charge, a non-exclusive, non-sublicensable,
-          non-transferable, limited license, during the term of this
-          Agreement, to download, install and use the Software internally in
-          machine-readable (i.e., object code) form and the Documentation for
-          non-commercial use on an Authorized Android Enabled Device and
-          non-commercial redistribution of the Authorized Android Enabled
-          Device Software (the "Limited Purpose"). You may grant your end
-          users the right to use the Software for the Limited Purpose. The
-          license to the Software granted to You hereunder is solely for the
-          Limited Purpose set forth in this section, and the Software shall
-          not be used for any other purpose.
+          non-transferable, limited license, during the term of
+          this Agreement, to download, install and use the Software
+          internally in machine-readable (i.e., object code) form and the
+          Documentation for non-commercial use on an Authorized Android
+          Enabled Device and non-commercial redistribution of the Authorized
+          Android Enabled Device Software (the "Limited Purpose"). You may
+          grant your end users the right to use the Software for
+          the Limited Purpose.
+          The license to the Software granted to You hereunder is solely for
+          the Limited Purpose set forth in this section, and the Software
+          shall not be used for any other purpose.
 
    3.  Restrictions
 
@@ -57,7 +58,7 @@
           the delivery of the Software to You does not convey to You any
           intellectual property rights in the Software, including, but not
           limited to any rights under any patent, trademark, copyright, or
-          trade secret.  Neither the delivery of the Software to You nor any
+          trade secret. Neither the delivery of the Software to You nor any
           terms set forth herein shall be construed to grant to You, either
           expressly, by implication or by way of estoppel, any license under
           any patents or other intellectual property rights covering or
@@ -148,15 +149,16 @@
           DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
           EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
           THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
-          IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY TO YOU FOR
-          ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF ACTIONS (WHETHER
-          IN CONTRACT, TORT, INCLUDING NEGLIGENCE, INDEMNIFICATION OR
-          OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS (US$100). THE
-          LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE DEEMED TO APPLY TO
-          THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW. THE PARTIES HAVE
-          FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK AND FIND IT
-          REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS PARAGRAPH
-          ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE PARTIES.
+          IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+          TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+          ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+          INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+          (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+          DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+          THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+          AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+          PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+          PARTIES.
 
    7.  No Warranty
 
diff --git a/self-extractors/widevine/LICENSE b/self-extractors/widevine/LICENSE
index 13f4c15..164dae2 100644
--- a/self-extractors/widevine/LICENSE
+++ b/self-extractors/widevine/LICENSE
@@ -37,16 +37,17 @@
 
       a.  Subject to the terms of this Agreement, Licensor hereby grants to
           You, free of charge, a non-exclusive, non-sublicensable,
-          non-transferable, limited license, during the term of this
-          Agreement, to download, install and use the Software internally in
-          machine-readable (i.e., object code) form and the Documentation for
-          non-commercial use on an Authorized Android Enabled Device and
-          non-commercial redistribution of the Authorized Android Enabled
-          Device Software (the "Limited Purpose"). You may grant your end
-          users the right to use the Software for the Limited Purpose. The
-          license to the Software granted to You hereunder is solely for the
-          Limited Purpose set forth in this section, and the Software shall
-          not be used for any other purpose.
+          non-transferable, limited license, during the term of
+          this Agreement, to download, install and use the Software
+          internally in machine-readable (i.e., object code) form and the
+          Documentation for non-commercial use on an Authorized Android
+          Enabled Device and non-commercial redistribution of the Authorized
+          Android Enabled Device Software (the "Limited Purpose"). You may
+          grant your end users the right to use the Software for
+          the Limited Purpose.
+          The license to the Software granted to You hereunder is solely for
+          the Limited Purpose set forth in this section, and the Software
+          shall not be used for any other purpose.
 
    3.  Restrictions
 
@@ -57,7 +58,7 @@
           the delivery of the Software to You does not convey to You any
           intellectual property rights in the Software, including, but not
           limited to any rights under any patent, trademark, copyright, or
-          trade secret.  Neither the delivery of the Software to You nor any
+          trade secret. Neither the delivery of the Software to You nor any
           terms set forth herein shall be construed to grant to You, either
           expressly, by implication or by way of estoppel, any license under
           any patents or other intellectual property rights covering or
@@ -141,15 +142,16 @@
           DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR
           EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO
           THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY OR MAY BE LIMITED.
-          IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY TO YOU FOR
-          ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF ACTIONS (WHETHER
-          IN CONTRACT, TORT, INCLUDING NEGLIGENCE, INDEMNIFICATION OR
-          OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS (US$100). THE
-          LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE DEEMED TO APPLY TO
-          THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW. THE PARTIES HAVE
-          FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK AND FIND IT
-          REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS PARAGRAPH
-          ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE PARTIES.
+          IN NO EVENT SHALL LICENSOR'S TOTAL AGGREGATE LIABILITY
+          TO YOU FOR ANY AND ALL DAMAGES, LOSSES, CLAIMS AND CAUSES OF
+          ACTIONS (WHETHER IN CONTRACT, TORT, INCLUDING NEGLIGENCE,
+          INDEMNIFICATION OR OTHERWISE) EXCEED ONE HUNDRED U.S. DOLLARS
+          (US$100). THE LIMITATIONS SET FORTH IN THIS PARAGRAPH SHALL BE
+          DEEMED TO APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW.
+          THE PARTIES HAVE FULLY CONSIDERED THE FOREGOING ALLOCATION OF RISK
+          AND FIND IT REASONABLE, AND THAT THE FOREGOING LIMITATIONS IN THIS
+          PARAGRAPH ARE AN ESSENTIAL BASIS OF THE BARGAIN BETWEEN THE
+          PARTIES.
 
    6.  No Warranty
 
