rep.jquery 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. data/.gitignore +25 -0
  2. data/LICENSE +20 -0
  3. data/README +1 -0
  4. data/Rakefile +19 -0
  5. data/TODO +0 -0
  6. data/VERSION +1 -0
  7. data/lib/jquery.rb +1 -0
  8. data/public/images/jquery.tablesorter.blue/asc.gif +0 -0
  9. data/public/images/jquery.tablesorter.blue/bg.gif +0 -0
  10. data/public/images/jquery.tablesorter.blue/desc.gif +0 -0
  11. data/public/images/jquery.tablesorter.blue/style.css +39 -0
  12. data/public/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  13. data/public/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  14. data/public/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  15. data/public/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  16. data/public/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  17. data/public/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  18. data/public/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  19. data/public/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  20. data/public/images/ui-icons_222222_256x240.png +0 -0
  21. data/public/images/ui-icons_2e83ff_256x240.png +0 -0
  22. data/public/images/ui-icons_454545_256x240.png +0 -0
  23. data/public/images/ui-icons_888888_256x240.png +0 -0
  24. data/public/images/ui-icons_cd0a0a_256x240.png +0 -0
  25. data/public/javascripts/jquery/autogrow.js +134 -0
  26. data/public/javascripts/jquery/easing.js +207 -0
  27. data/public/javascripts/jquery/form.js +639 -0
  28. data/public/javascripts/jquery/jeditable.autogrow.js +41 -0
  29. data/public/javascripts/jquery/jeditable.js +545 -0
  30. data/public/javascripts/jquery/metadata.js +150 -0
  31. data/public/javascripts/jquery/scrollTo.js +217 -0
  32. data/public/javascripts/jquery/suggest.js +314 -0
  33. data/public/javascripts/jquery/tablesorter.patched.js +866 -0
  34. data/public/javascripts/jquery/template.js +93 -0
  35. data/public/javascripts/jquery/tooltip.js +296 -0
  36. data/public/javascripts/jquery/ui.all.js +300 -0
  37. data/public/javascripts/jquery.js +4376 -0
  38. data/public/stylesheets/jquery-ui.css +404 -0
  39. data/public/stylesheets/jquery.suggest.css +29 -0
  40. data/rep.jquery.gemspec +81 -0
  41. metadata +119 -0
data/.gitignore ADDED
@@ -0,0 +1,25 @@
1
+ .DS_Store
2
+ log/*
3
+ tmp/*
4
+ TAGS
5
+ *~
6
+ .#*
7
+ schema/schema.rb
8
+ schema/*_structure.sql
9
+ schema/*.sqlite3
10
+ schema/*.sqlite
11
+ schema/*.db
12
+ *.sqlite
13
+ *.sqlite3
14
+ *.db
15
+ src/*
16
+ .hgignore
17
+ .hg/*
18
+ .svn/*
19
+ *.gem
20
+ gems/gems/*
21
+ gems/specifications/*
22
+ gems/dirs/*
23
+ gems/environment.rb
24
+ *.gem
25
+ merb_profile_results
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2009 John Resig, http://jquery.com/
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README ADDED
@@ -0,0 +1 @@
1
+ This is a Repertoire Assets bundle for John Resig's JQuery library.
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ begin
2
+ require 'jeweler'
3
+ Jeweler::Tasks.new do |s|
4
+ s.name = "rep.jquery"
5
+ s.summary = "Hyperstudio bundle containing 3rd-party jQuery tools"
6
+ s.description = "Hyperstudio bundle containing 3rd-party jQuery tools"
7
+ s.email = "yorkc@mit.edu"
8
+ s.homepage = "http://github.com/repertoire/rep.jquery"
9
+ s.authors = ["Christopher York"]
10
+ s.add_dependency('repertoire-assets', '>=0.1.0')
11
+ end
12
+ Jeweler::RubyforgeTasks.new do |rubyforge|
13
+ rubyforge.doc_task = "yardoc"
14
+ end
15
+
16
+ Jeweler::GemcutterTasks.new
17
+ rescue LoadError
18
+ puts "Jeweler not available. Install it with: sudo gem install jeweler"
19
+ end
data/TODO ADDED
File without changes
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.3.2
data/lib/jquery.rb ADDED
@@ -0,0 +1 @@
1
+ # This is a placeholder file to ensure rubygems includes /lib.
@@ -0,0 +1,39 @@
1
+ /* tables */
2
+ table.tablesorter {
3
+ font-family:arial;
4
+ background-color: #CDCDCD;
5
+ margin:10px 0pt 15px;
6
+ font-size: 8pt;
7
+ width: 100%;
8
+ text-align: left;
9
+ }
10
+ table.tablesorter thead tr th, table.tablesorter tfoot tr th {
11
+ background-color: #e6EEEE;
12
+ border: 1px solid #FFF;
13
+ font-size: 8pt;
14
+ padding: 4px;
15
+ }
16
+ table.tablesorter thead tr .header {
17
+ background-image: url(bg.gif);
18
+ background-repeat: no-repeat;
19
+ background-position: center right;
20
+ cursor: pointer;
21
+ }
22
+ table.tablesorter tbody td {
23
+ color: #3D3D3D;
24
+ padding: 4px;
25
+ background-color: #FFF;
26
+ vertical-align: top;
27
+ }
28
+ table.tablesorter tbody tr.odd td {
29
+ background-color:#F0F0F6;
30
+ }
31
+ table.tablesorter thead tr .headerSortUp {
32
+ background-image: url(asc.gif);
33
+ }
34
+ table.tablesorter thead tr .headerSortDown {
35
+ background-image: url(desc.gif);
36
+ }
37
+ table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
38
+ background-color: #8dbdd8;
39
+ }
@@ -0,0 +1,134 @@
1
+ //= require "../jquery"
2
+
3
+ /*
4
+ * Auto Expanding Text Area (1.2.2)
5
+ * by Chrys Bader (www.chrysbader.com)
6
+ * chrysb@gmail.com
7
+ *
8
+ * Special thanks to:
9
+ * Jake Chapa - jake@hybridstudio.com
10
+ * John Resig - jeresig@gmail.com
11
+ *
12
+ * Copyright (c) 2008 Chrys Bader (www.chrysbader.com)
13
+ * Licensed under the GPL (GPL-LICENSE.txt) license.
14
+ *
15
+ *
16
+ * NOTE: This script requires jQuery to work. Download jQuery at www.jquery.com
17
+ *
18
+ */
19
+
20
+ (function(jQuery) {
21
+
22
+ var self = null;
23
+
24
+ jQuery.fn.autogrow = function(o)
25
+ {
26
+ return this.each(function() {
27
+ new jQuery.autogrow(this, o);
28
+ });
29
+ };
30
+
31
+
32
+ /**
33
+ * The autogrow object.
34
+ *
35
+ * @constructor
36
+ * @name jQuery.autogrow
37
+ * @param Object e The textarea to create the autogrow for.
38
+ * @param Hash o A set of key/value pairs to set as configuration properties.
39
+ * @cat Plugins/autogrow
40
+ */
41
+
42
+ jQuery.autogrow = function (e, o)
43
+ {
44
+ this.options = o || {};
45
+ this.dummy = null;
46
+ this.interval = null;
47
+ this.line_height = this.options.lineHeight || parseInt(jQuery(e).css('line-height'));
48
+ this.min_height = this.options.minHeight || parseInt(jQuery(e).css('min-height'));
49
+ this.max_height = this.options.maxHeight || parseInt(jQuery(e).css('max-height'));;
50
+ this.textarea = jQuery(e);
51
+
52
+ if(this.line_height == NaN)
53
+ this.line_height = 0;
54
+
55
+ // Only one textarea activated at a time, the one being used
56
+ this.init();
57
+ };
58
+
59
+ jQuery.autogrow.fn = jQuery.autogrow.prototype = {
60
+ autogrow: '1.2.2'
61
+ };
62
+
63
+ jQuery.autogrow.fn.extend = jQuery.autogrow.extend = jQuery.extend;
64
+
65
+ jQuery.autogrow.fn.extend({
66
+
67
+ init: function() {
68
+ var self = this;
69
+ this.textarea.css({overflow: 'hidden', display: 'block'});
70
+ this.textarea.bind('focus', function() { self.startExpand() } ).bind('blur', function() { self.stopExpand() });
71
+ this.checkExpand();
72
+ },
73
+
74
+ startExpand: function() {
75
+ var self = this;
76
+ this.interval = window.setInterval(function() {self.checkExpand()}, 400);
77
+ },
78
+
79
+ stopExpand: function() {
80
+ clearInterval(this.interval);
81
+ },
82
+
83
+ checkExpand: function() {
84
+
85
+ if (this.dummy == null)
86
+ {
87
+ this.dummy = jQuery('<div></div>');
88
+ this.dummy.css({
89
+ 'font-size' : this.textarea.css('font-size'),
90
+ 'font-family': this.textarea.css('font-family'),
91
+ 'width' : this.textarea.css('width'),
92
+ 'padding' : this.textarea.css('padding'),
93
+ 'line-height': this.line_height + 'px',
94
+ 'overflow-x' : 'hidden',
95
+ 'position' : 'absolute',
96
+ 'top' : 0,
97
+ 'left' : -9999
98
+ }).appendTo('body');
99
+ }
100
+
101
+ // Strip HTML tags
102
+ var html = this.textarea.val().replace(/(<|>)/g, '');
103
+
104
+ // IE is different, as per usual
105
+ if ($.browser.msie)
106
+ {
107
+ html = html.replace(/\n/g, '<BR>new');
108
+ }
109
+ else
110
+ {
111
+ html = html.replace(/\n/g, '<br>new');
112
+ }
113
+
114
+ if (this.dummy.html() != html)
115
+ {
116
+ this.dummy.html(html);
117
+
118
+ if (this.max_height > 0 && (this.dummy.height() + this.line_height > this.max_height))
119
+ {
120
+ this.textarea.css('overflow-y', 'auto');
121
+ }
122
+ else
123
+ {
124
+ this.textarea.css('overflow-y', 'hidden');
125
+ if (this.textarea.height() < this.dummy.height() + this.line_height || (this.dummy.height() < this.textarea.height()))
126
+ {
127
+ this.textarea.animate({height: (this.dummy.height() + this.line_height) + 'px'}, 100);
128
+ }
129
+ }
130
+ }
131
+ }
132
+
133
+ });
134
+ })(jQuery);
@@ -0,0 +1,207 @@
1
+ //= require "../jquery"
2
+
3
+ /*
4
+ * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
5
+ *
6
+ * Uses the built in easing capabilities added In jQuery 1.1
7
+ * to offer multiple easing options
8
+ *
9
+ * TERMS OF USE - jQuery Easing
10
+ *
11
+ * Open source under the BSD License.
12
+ *
13
+ * Copyright © 2008 George McGinley Smith
14
+ * All rights reserved.
15
+ *
16
+ * Redistribution and use in source and binary forms, with or without modification,
17
+ * are permitted provided that the following conditions are met:
18
+ *
19
+ * Redistributions of source code must retain the above copyright notice, this list of
20
+ * conditions and the following disclaimer.
21
+ * Redistributions in binary form must reproduce the above copyright notice, this list
22
+ * of conditions and the following disclaimer in the documentation and/or other materials
23
+ * provided with the distribution.
24
+ *
25
+ * Neither the name of the author nor the names of contributors may be used to endorse
26
+ * or promote products derived from this software without specific prior written permission.
27
+ *
28
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
29
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
30
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
31
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
32
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
33
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
34
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
36
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
37
+ *
38
+ */
39
+
40
+ // t: current time, b: begInnIng value, c: change In value, d: duration
41
+ jQuery.easing['jswing'] = jQuery.easing['swing'];
42
+
43
+ jQuery.extend( jQuery.easing,
44
+ {
45
+ def: 'easeOutQuad',
46
+ swing: function (x, t, b, c, d) {
47
+ //alert(jQuery.easing.default);
48
+ return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
49
+ },
50
+ easeInQuad: function (x, t, b, c, d) {
51
+ return c*(t/=d)*t + b;
52
+ },
53
+ easeOutQuad: function (x, t, b, c, d) {
54
+ return -c *(t/=d)*(t-2) + b;
55
+ },
56
+ easeInOutQuad: function (x, t, b, c, d) {
57
+ if ((t/=d/2) < 1) return c/2*t*t + b;
58
+ return -c/2 * ((--t)*(t-2) - 1) + b;
59
+ },
60
+ easeInCubic: function (x, t, b, c, d) {
61
+ return c*(t/=d)*t*t + b;
62
+ },
63
+ easeOutCubic: function (x, t, b, c, d) {
64
+ return c*((t=t/d-1)*t*t + 1) + b;
65
+ },
66
+ easeInOutCubic: function (x, t, b, c, d) {
67
+ if ((t/=d/2) < 1) return c/2*t*t*t + b;
68
+ return c/2*((t-=2)*t*t + 2) + b;
69
+ },
70
+ easeInQuart: function (x, t, b, c, d) {
71
+ return c*(t/=d)*t*t*t + b;
72
+ },
73
+ easeOutQuart: function (x, t, b, c, d) {
74
+ return -c * ((t=t/d-1)*t*t*t - 1) + b;
75
+ },
76
+ easeInOutQuart: function (x, t, b, c, d) {
77
+ if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
78
+ return -c/2 * ((t-=2)*t*t*t - 2) + b;
79
+ },
80
+ easeInQuint: function (x, t, b, c, d) {
81
+ return c*(t/=d)*t*t*t*t + b;
82
+ },
83
+ easeOutQuint: function (x, t, b, c, d) {
84
+ return c*((t=t/d-1)*t*t*t*t + 1) + b;
85
+ },
86
+ easeInOutQuint: function (x, t, b, c, d) {
87
+ if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
88
+ return c/2*((t-=2)*t*t*t*t + 2) + b;
89
+ },
90
+ easeInSine: function (x, t, b, c, d) {
91
+ return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
92
+ },
93
+ easeOutSine: function (x, t, b, c, d) {
94
+ return c * Math.sin(t/d * (Math.PI/2)) + b;
95
+ },
96
+ easeInOutSine: function (x, t, b, c, d) {
97
+ return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
98
+ },
99
+ easeInExpo: function (x, t, b, c, d) {
100
+ return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
101
+ },
102
+ easeOutExpo: function (x, t, b, c, d) {
103
+ return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
104
+ },
105
+ easeInOutExpo: function (x, t, b, c, d) {
106
+ if (t==0) return b;
107
+ if (t==d) return b+c;
108
+ if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
109
+ return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
110
+ },
111
+ easeInCirc: function (x, t, b, c, d) {
112
+ return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
113
+ },
114
+ easeOutCirc: function (x, t, b, c, d) {
115
+ return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
116
+ },
117
+ easeInOutCirc: function (x, t, b, c, d) {
118
+ if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
119
+ return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
120
+ },
121
+ easeInElastic: function (x, t, b, c, d) {
122
+ var s=1.70158;var p=0;var a=c;
123
+ if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
124
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
125
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
126
+ return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
127
+ },
128
+ easeOutElastic: function (x, t, b, c, d) {
129
+ var s=1.70158;var p=0;var a=c;
130
+ if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
131
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
132
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
133
+ return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
134
+ },
135
+ easeInOutElastic: function (x, t, b, c, d) {
136
+ var s=1.70158;var p=0;var a=c;
137
+ if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
138
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
139
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
140
+ if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
141
+ return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
142
+ },
143
+ easeInBack: function (x, t, b, c, d, s) {
144
+ if (s == undefined) s = 1.70158;
145
+ return c*(t/=d)*t*((s+1)*t - s) + b;
146
+ },
147
+ easeOutBack: function (x, t, b, c, d, s) {
148
+ if (s == undefined) s = 1.70158;
149
+ return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
150
+ },
151
+ easeInOutBack: function (x, t, b, c, d, s) {
152
+ if (s == undefined) s = 1.70158;
153
+ if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
154
+ return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
155
+ },
156
+ easeInBounce: function (x, t, b, c, d) {
157
+ return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
158
+ },
159
+ easeOutBounce: function (x, t, b, c, d) {
160
+ if ((t/=d) < (1/2.75)) {
161
+ return c*(7.5625*t*t) + b;
162
+ } else if (t < (2/2.75)) {
163
+ return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
164
+ } else if (t < (2.5/2.75)) {
165
+ return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
166
+ } else {
167
+ return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
168
+ }
169
+ },
170
+ easeInOutBounce: function (x, t, b, c, d) {
171
+ if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
172
+ return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
173
+ }
174
+ });
175
+
176
+ /*
177
+ *
178
+ * TERMS OF USE - EASING EQUATIONS
179
+ *
180
+ * Open source under the BSD License.
181
+ *
182
+ * Copyright © 2001 Robert Penner
183
+ * All rights reserved.
184
+ *
185
+ * Redistribution and use in source and binary forms, with or without modification,
186
+ * are permitted provided that the following conditions are met:
187
+ *
188
+ * Redistributions of source code must retain the above copyright notice, this list of
189
+ * conditions and the following disclaimer.
190
+ * Redistributions in binary form must reproduce the above copyright notice, this list
191
+ * of conditions and the following disclaimer in the documentation and/or other materials
192
+ * provided with the distribution.
193
+ *
194
+ * Neither the name of the author nor the names of contributors may be used to endorse
195
+ * or promote products derived from this software without specific prior written permission.
196
+ *
197
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
198
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
199
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
200
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
201
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
202
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
203
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
204
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
205
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
206
+ *
207
+ */