JAL-1807 - Bob's last(?) before leaving Dundee -- adds fast file loading
[jalviewjs.git] / site / j2s / core / coreswingjs.js
1 (function(Clazz
2 ,Clazz_getClassName
3 ,Clazz_newLongArray
4 ,Clazz_doubleToByte
5 ,Clazz_doubleToInt
6 ,Clazz_doubleToLong
7 ,Clazz_declarePackage
8 ,Clazz_instanceOf
9 ,Clazz_load
10 ,Clazz_instantialize
11 ,Clazz_decorateAsClass
12 ,Clazz_floatToInt
13 ,Clazz_floatToLong
14 ,Clazz_makeConstructor
15 ,Clazz_defineEnumConstant
16 ,Clazz_exceptionOf
17 ,Clazz_newIntArray
18 ,Clazz_defineStatics
19 ,Clazz_newFloatArray
20 ,Clazz_declareType
21 ,Clazz_prepareFields
22 ,Clazz_superConstructor
23 ,Clazz_newByteArray
24 ,Clazz_declareInterface
25 ,Clazz_p0p
26 ,Clazz_pu$h
27 ,Clazz_newShortArray
28 ,Clazz_innerTypeInstance
29 ,Clazz_isClassDefined
30 ,Clazz_prepareCallback
31 ,Clazz_newArray
32 ,Clazz_castNullAs
33 ,Clazz_floatToShort
34 ,Clazz_superCall
35 ,Clazz_decorateAsType
36 ,Clazz_newBooleanArray
37 ,Clazz_newCharArray
38 ,Clazz_implementOf
39 ,Clazz_newDoubleArray
40 ,Clazz_overrideConstructor
41 ,Clazz_clone
42 ,Clazz_doubleToShort
43 ,Clazz_getInheritedLevel
44 ,Clazz_getParamsType
45 ,Clazz_isAF
46 ,Clazz_isAI
47 ,Clazz_isAS
48 ,Clazz_isASS
49 ,Clazz_isAP
50 ,Clazz_isAFloat
51 ,Clazz_isAII
52 ,Clazz_isAFF
53 ,Clazz_isAFFF
54 ,Clazz_tryToSearchAndExecute
55 ,Clazz_getStackTrace
56 ,Clazz_inheritArgs
57 ,Clazz_alert
58 ,Clazz_defineMethod
59 ,Clazz_overrideMethod
60 ,Clazz_declareAnonymous
61 ,Clazz_checkPrivateMethod
62 ,Clazz_cloneFinals
63 ){
64 var $t$;
65 //var c$;
66 // SwingJSJavaExt.js
67  
68
69 // This library will be wrapped by an additional anonymous function using ANT in 
70 // build_03_tojs.xml. This task will also modify variable names. References 
71 // to Clazz._ will not be changed, but other Clazz_xxx will be changed to 
72 // (local scope) Clazz_xxx, allowing them to be further compressed using
73 // Google Closure Compiler in that same ANT task.
74
75 // BH 7/24/2015 7:21:51 AM renamed from JSmolJavaExt.js
76 // BH 5/31/2015 5:53:04 PM Number.compareTo added
77 // BH 5/21/2015 5:46:30 PM Number("0xFFFFFFFF") is not -1
78 // BH 4/23/2015 9:08:59 AM xx.getComponentType() is nonfunctional. Array.newInstance now defines a wrapper for .getClass().getComponentType() that works  
79 // BH 4/12/2015 1:37:44 PM adding Math.rint = Math.round
80 // BH 1/16/2015 10:09:38 AM Chrome failure jqGrig due to new String("x").toString() not being a simple string
81 // BH 8/14/2014 6:49:22 PM Character class efficiencies
82 // BH 7/24/2014 9:02:18 AM most browsers do not support String.codePointAt()
83 // BH 7/11/2014 4:17:22 PM fix for Boolean.valueOf("false") not being false 
84 // BH 5/27/2014 6:29:59 AM ensure floats and doubles have decimal point in toString
85 // BH 4/1/2014 12:23:41 PM Encoding moved to Clazz._Encoding; 
86 // BH 4/1/2014 7:51:46 AM removing java.lang.B00lean
87 // BH 3/7/2014 9:17:10 AM removing Array.toString; moving that code here from j2sJmol.js
88 // BH 1/30/2014 9:04:25 AM adding Throwable.getStackTrace() as a STRING
89 // BH 12/4/2013 9:20:44 PM fix for reassigning Date.prototype.toString()
90 // BH 12/3/2013 11:43:10 AM bizarre Safari bug in reassigning Boolean (OK, I admit, we shouldn't have done that...) 
91 // BH 12/1/2013 6:50:16 AM evit Number.prototype.toString assignment removed!
92 // BH 11/30/2013 1:46:31 PM fixing Byte, Short, Long, Integer, Float, Double to reflect proper bounds and error conditions
93 // BH 11/29/2013 8:58:49 PM removing Boolean.toString(boolean)
94 // BH 11/4/2013 7:34:26 AM changing "var nativeClazz" to "var nativeClass" to avoid ANT replacement of "nativeClazz_" to "nativeClazz_"
95 // BH 10/19/2013 1:29:27 PM fixed String.$replace()
96 // BH 10/18/2013 6:09:23 PM fixed (Double|Float).valueOf(NaN).valueOf(), which should return NaN, not throw an error
97 // BH 10/12/2013 11:18:44 AM fixed bug in Double(String) and Float(String) that was returning typeof "string"
98 // BH 10/10/2013 2:40:20 PM  added Math.log10   
99 // BH 7/23/2013 7:24:01 AM fixing Number.shortValue() and Number.byteValue() for negative values
100 // BH 6/16/2013 1:31:30 PM adding /| in String.replace -- thank you David Koes
101 // BH 3/13/2013 12:49:23 PM setting Boolean.valueOf() "@" 
102 // BH 3/2/2013 10:46:45 PM removed Double.valueOf(String)
103 // BH 11/6/2012 8:26:33 PM added instanceof Int32Array in String.instantialize
104 // BH 10/13/2012 11:38:07 PM corrected Integer.parseInt to allow only +-0123456789; created Integer.parseIntRadix
105 // BH 11/1/2012 added Short
106 // BH 9/10/2012 6:27:21 AM added java.net.URL... classes
107 // BH 1/7/2013 7:40:06 AM added Clazz_dateToString
108
109 ;(function(Clazz) {
110
111 // moved here from package.js
112 // these classes will be created as objects prior to any others
113 // and are then available immediately
114
115         Clazz._Loader.registerPackages("java", [ "io", "lang", "lang.reflect", "util" ]);
116
117   var sJU = "java.util";
118
119   //var sJU = "JU";  
120         //Clazz._Loader.registerPackages (sJU, ["regex", "zip"]);
121         //var javautil = JU;
122
123   var javautil = java.util;
124
125         Clazz._Loader.ignore([
126                 "net.sf.j2s.ajax.HttpRequest",
127                 sJU + ".MapEntry.Type",
128                 //"java.net.UnknownServiceException",
129                 "java.lang.Runtime",
130                 "java.security.AccessController",
131                 "java.security.PrivilegedExceptionAction",
132                 "java.io.File",
133                 "java.io.FileInputStream",
134                 "java.io.FileWriter",
135                 "java.io.OutputStreamWriter",
136 //              sJU + ".Calendar", // bypassed in ModelCollection
137 //              "java.text.SimpleDateFormat", // not used
138 //              "java.text.DateFormat", // not used
139                 sJU + ".concurrent.Executors"
140         ])
141
142 Math.rint = Math.round;
143
144 Math.log10||(Math.log10=function(a){return Math.log(a)/2.302585092994046});
145
146 if(Clazz._supportsNativeObject){
147         // Number and Array are special -- do not override prototype.toString -- "length - 2" here
148         for(var i=0;i<Clazz._extendedObjectMethods.length - 2;i++){
149                 var p=Clazz._extendedObjectMethods[i];
150                 Array.prototype[p] = Clazz._O.prototype[p];
151                 Number.prototype[p] = Clazz._O.prototype[p];
152         }
153 }
154
155 java.lang.Number=Number;
156 Number.__CLASS_NAME__="Number";
157 Clazz_implementOf(Number,java.io.Serializable);
158 Number.equals=Clazz._innerFunctions.equals;
159 Number.getName=Clazz._innerFunctions.getName;
160 Number.prototype.compareTo = function(x) { var a = this.value, b = x.value; return (a < b ? -1 : a == b ? 0 : 1) };
161
162 Clazz_defineMethod(Number,"shortValue",
163 function(){
164 var x = Math.round(this)&0xffff;
165 return (this < 0 && x > 0 ? x - 0x10000 : x);
166 });
167
168 Clazz_defineMethod(Number,"byteValue",
169 function(){
170 var x = Math.round(this)&0xff;
171 return (this < 0 && x > 0 ? x - 0x100 : x);
172 });
173
174 Clazz_defineMethod(Number,"intValue",
175 function(){
176 return Math.round(this)&0xffffffff;
177 });
178
179 Clazz_defineMethod(Number,"longValue",
180 function(){
181 return Math.round(this);
182 });
183
184 Clazz_defineMethod(Number,"floatValue",
185 function(){
186 return this.valueOf();
187 });
188 Clazz_defineMethod(Number,"doubleValue",
189 function(){
190 return parseFloat(this.valueOf());
191 });
192
193 Clazz_overrideMethod(Number,"hashCode",
194 function(){
195 return this.valueOf();
196 });
197
198 java.lang.Integer=Integer=function(){
199 Clazz_instantialize(this,arguments);
200 };
201 Clazz_decorateAsType(Integer,"Integer",Number,Comparable,null,true);
202 Integer.prototype.valueOf=function(){return 0;};
203 Integer.toString=Integer.prototype.toString=function(){
204 if(arguments.length!=0){
205 return""+arguments[0];
206 } else if(this===Integer){
207 return"class java.lang.Integer";
208 }
209 return""+this.valueOf();
210 };
211
212 /*
213
214 Clazz_makeConstructor(Integer,
215 function(){
216 this.valueOf=function(){
217 return 0;
218 };
219 });
220 */
221
222
223 Clazz_overrideConstructor(Integer, function(v){
224  v == null && (v = 0);
225  if (typeof v != "number")
226         v = Integer.parseIntRadix(v, 10);
227  this.valueOf=function(){return v;};
228 }); //BH
229 /*
230 Clazz_makeConstructor(Integer,
231 function(s){
232 var value=Integer.parseInt(s,10);
233 this.valueOf=function(){
234 return value;
235 };
236 },"String");
237 */
238 Integer.MIN_VALUE=Integer.prototype.MIN_VALUE=-0x80000000;
239 Integer.MAX_VALUE=Integer.prototype.MAX_VALUE=0x7fffffff;
240 Integer.TYPE=Integer.prototype.TYPE=Integer;
241
242
243 Clazz_defineMethod(Integer,"bitCount",
244 function(i) {
245         i = i - ((i >>> 1) & 0x55555555);
246         i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);
247         i = (i + (i >>> 4)) & 0x0f0f0f0f;
248         i = i + (i >>> 8);
249         i = i + (i >>> 16);
250         return i & 0x3f;
251 },"Number");
252 Integer.bitCount=Integer.prototype.bitCount;
253
254 Clazz_defineMethod(Integer,"numberOfLeadingZeros",
255 function(i) {
256  if (i == 0) return 32;
257  var n = 1;
258  if (i >>> 16 == 0) { n += 16; i <<= 16; }
259  if (i >>> 24 == 0) { n +=  8; i <<=  8; }
260  if (i >>> 28 == 0) { n +=  4; i <<=  4; }
261  if (i >>> 30 == 0) { n +=  2; i <<=  2; }
262  n -= i >>> 31;
263  return n;
264 },"Number");
265 Integer.numberOfLeadingZeros=Integer.prototype.numberOfLeadingZeros;
266
267 Clazz_defineMethod(Integer,"numberOfTrailingZeros",
268 function(i) {
269         if (i == 0) return 32;
270         var n = 31;
271         var y = i <<16; if (y != 0) { n = n -16; i = y; }
272         y = i << 8; if (y != 0) { n = n - 8; i = y; }
273         y = i << 4; if (y != 0) { n = n - 4; i = y; }
274         y = i << 2; if (y != 0) { n = n - 2; i = y; }
275         return n - ((i << 1) >>> 31);
276 },"Number");
277 Integer.numberOfTrailingZeros=Integer.prototype.numberOfTrailingZeros;
278
279 Clazz_defineMethod(Integer,"parseIntRadix",
280 function(s,radix){
281 if(s==null){
282 throw new NumberFormatException("null");
283 }if(radix<2){
284 throw new NumberFormatException("radix "+radix+" less than Character.MIN_RADIX");
285 }if(radix>36){
286 throw new NumberFormatException("radix "+radix+" greater than Character.MAX_RADIX");
287 }
288 if (radix == 10) {
289         for (var i = s.length; --i >= 0;) {
290                 var c = s.charCodeAt(i);
291                 if (c >= 48 && c <= 57) continue;
292                 if (i > 0 || c != 43 && c != 45)
293                         throw new NumberFormatException("Not a Number : "+s);
294
295         }
296 }
297 var i=parseInt(s,radix);
298 if(isNaN(i)){
299 throw new NumberFormatException("Not a Number : "+s);
300 }
301 return i;
302 },"String, Number");
303 Integer.parseIntRadix=Integer.prototype.parseIntRadix;
304
305 Clazz_defineMethod(Integer,"parseInt",
306 function(s){
307 return Integer.parseIntRadix(s,10);
308 },"String");
309 Integer.parseInt=Integer.prototype.parseInt;
310
311 /*
312 Clazz_defineMethod(Integer,"$valueOf",
313 function(s){
314 return new Integer(Integer.parseIntRadix(s,10));
315 },"String");
316 */
317
318 Clazz_overrideMethod(Integer,"$valueOf",
319 function(s){
320 return new Integer(s);
321 });
322
323 /*
324 Clazz_defineMethod(Integer,"$valueOf",
325 function(s,r){
326 return new Integer(Integer.parseIntRadix(s,r));
327 },"String, Number");
328 */
329
330 Integer.$valueOf=Integer.prototype.$valueOf;
331
332
333 Clazz_overrideMethod(Integer,"equals",
334 function(s){
335 if(s==null||!Clazz_instanceOf(s,Integer)){
336 return false;
337 }
338 return s.valueOf()==this.valueOf();
339 },"Object");
340 Integer.toHexString=Integer.prototype.toHexString=function(d){
341 if(d.valueOf)d=d.valueOf();
342 if (d < 0) {
343 var b = d & 0xFFFFFF;
344 var c = ((d>>24)&0xFF);
345 return c._numberToString(16) + (b = "000000" + b._numberToString(16)).substring(b.length - 6);
346 }
347 return d._numberToString(16);};
348 Integer.toOctalString=Integer.prototype.toOctalString=function(d){if(d.valueOf)d=d.valueOf();return d._numberToString(8);};
349 Integer.toBinaryString=Integer.prototype.toBinaryString=function(d){if(d.valueOf)d=d.valueOf();return d._numberToString(2);};
350
351 Integer.decodeRaw=Clazz_defineMethod(Integer,"decodeRaw", function(n){
352 if (n.indexOf(".") >= 0)n = "";
353 var i = (n.startsWith("-") ? 1 : 0);
354 n = n.replace(/\#/, "0x").toLowerCase();
355 var radix=(n.startsWith("0x", i) ? 16 : n.startsWith("0", i) ? 8 : 10);
356 // The general problem with parseInt is that is not strict -- ParseInt("10whatever") == 10.
357 // Number is strict, but Number("055") does not work, though ParseInt("055", 8) does.
358 // need to make sure negative numbers are negative
359 n = Number(n) & 0xFFFFFFFF;
360 return (radix == 8 ? parseInt(n, 8) : n);
361 },"~S");
362
363 Integer.decode=Clazz_defineMethod(Integer,"decode", function(n){
364         n = Integer.decodeRaw(n);
365         if (isNaN(n) || n < Integer.MIN_VALUE|| n > Integer.MAX_VALUE)
366         throw new NumberFormatException("Invalid Integer");
367         return new Integer(n);
368 },"~S");
369
370 Clazz_overrideMethod(Integer,"hashCode",
371 function(){
372 return this.valueOf();
373 });
374
375 // Note that Long is problematic in JavaScript 
376
377 java.lang.Long=Long=function(){
378 Clazz_instantialize(this,arguments);
379 };
380 Clazz_decorateAsType(Long,"Long",Number,Comparable,null,true);
381 Long.prototype.valueOf=function(){return 0;};
382 Long.toString=Long.prototype.toString=function(){
383 if(arguments.length!=0){
384 return""+arguments[0];
385 }else if(this===Long){
386 return"class java.lang.Long";
387 }
388 return""+this.valueOf();
389 };
390
391 Clazz_overrideConstructor(Long, function(v){
392  v == null && (v = 0);
393  v = (typeof v == "number" ? Math.round(v) : Integer.parseIntRadix(v, 10));
394 this.valueOf=function(){return v;};
395 });
396
397 //Long.MIN_VALUE=Long.prototype.MIN_VALUE=-0x8000000000000000;
398 //Long.MAX_VALUE=Long.prototype.MAX_VALUE=0x7fffffffffffffff;
399 Long.TYPE=Long.prototype.TYPE=Long;
400
401 Clazz_defineMethod(Long,"parseLong",
402 function(s,radix){
403  return Integer.parseInt(s, radix || 10);
404 });
405
406 Long.parseLong=Long.prototype.parseLong;
407
408 Clazz_overrideMethod(Long,"$valueOf",
409 function(s){
410 return new Long(s);
411 });
412 /*
413 Clazz_defineMethod(Long,"$valueOf",
414 function(s){
415 return new Long(s);
416 },"Number");
417
418 Clazz_defineMethod(Long,"$valueOf",
419 function(s,r){
420 return new Long(Long.parseLong(s,r));
421 },"String, Number");
422 */
423 Long.$valueOf=Long.prototype.$valueOf;
424 Clazz_overrideMethod(Long,"equals",
425 function(s){
426 if(s==null||!Clazz_instanceOf(s,Long)){
427 return false;
428 }
429 return s.valueOf()==this.valueOf();
430 },"Object");
431 Long.toHexString=Long.prototype.toHexString=function(i){
432 return i.toString(16);
433 };
434 Long.toOctalString=Long.prototype.toOctalString=function(i){
435 return i.toString(8);
436 };
437 Long.toBinaryString=Long.prototype.toBinaryString=function(i){
438 return i.toString(2);
439 };
440
441
442 Long.decode=Clazz_defineMethod(Long,"decode",
443 function(n){
444         n = Integer.decodeRaw(n);
445         if (isNaN(n))
446                 throw new NumberFormatException("Invalid Long");
447         return new Long(n);
448 },"~S");
449
450 java.lang.Short = Short = function () {
451 Clazz_instantialize (this, arguments);
452 };
453 Clazz_decorateAsType (Short, "Short", Number, Comparable, null, true);
454 Short.prototype.valueOf = function () { return 0; };
455 Short.toString = Short.prototype.toString = function () {
456         if (arguments.length != 0) {
457                 return "" + arguments[0];
458         } else if (this === Short) {
459                 return "class java.lang.Short"; // Short.class.toString
460         }
461         return "" + this.valueOf ();
462 };
463
464 Clazz_overrideConstructor(Short,
465 function (v) {
466  v == null && (v = 0);
467  if (typeof v != "number")
468         v = Integer.parseIntRadix(v, 10);
469  v = v.shortValue();
470  this.valueOf = function () {return v;};
471 });
472
473
474 Short.MIN_VALUE = Short.prototype.MIN_VALUE = -32768;
475 Short.MAX_VALUE = Short.prototype.MAX_VALUE = 32767;
476 Short.TYPE = Short.prototype.TYPE = Short;
477
478 Clazz_defineMethod(Short, "parseShortRadix",
479 function (s, radix) {
480 return Integer.parseIntRadix(s, radix).shortValue();
481 }, "String, Number");
482 Short.parseShortRadix = Short.prototype.parseShortRadix;
483
484 Clazz_defineMethod(Short, "parseShort",
485 function (s) {
486 return Short.parseShortRadix (s, 10);
487 }, "String");
488
489 Short.parseShort = Short.prototype.parseShort;
490
491 /*
492 Clazz_defineMethod(Short, "$valueOf",
493 function (s) {
494 return new Short(Short.parseShort (s, 10));
495 }, "String");
496         */
497
498 Clazz_overrideMethod(Short, "$valueOf",
499 function (s) {
500 return new Short(s);
501 });
502
503 /*
504 Clazz_defineMethod(Short, "$valueOf",
505 function (s, r) {
506 return new Short(Short.parseShort (s, r));
507 }, "String, Number");
508         */
509
510 Short.$valueOf = Short.prototype.$valueOf;
511 Clazz_overrideMethod(Short, "equals",
512 function (s) {
513 if(s == null || !Clazz_instanceOf(s, Short) ){
514         return false;
515 }
516 return s.valueOf()  == this.valueOf();
517 }, "Object");
518 Short.toHexString = Short.prototype.toHexString = function (i) {
519         return i.toString (16);
520 };
521 Short.toOctalString = Short.prototype.toOctalString = function (i) {
522         return i.toString (8);
523 };
524 Short.toBinaryString = Short.prototype.toBinaryString = function (i) {
525         return i.toString (2);
526 };
527 Short.decode = Clazz_defineMethod(Short, "decode",
528 function(n){
529         n = Integer.decodeRaw(n);
530         if (isNaN(n) || n < -32768|| n > 32767)
531                 throw new NumberFormatException("Invalid Short");
532         return new Short(n);
533 }, "~S");
534
535 java.lang.Byte=Byte=function(){
536 Clazz_instantialize(this,arguments);
537 };
538 Clazz_decorateAsType(Byte,"Byte",Number,Comparable,null,true);
539 Byte.prototype.valueOf=function(){return 0;};
540 Byte.toString=Byte.prototype.toString=function(){
541 if(arguments.length!=0){
542 return""+arguments[0];
543 }else if(this===Byte){
544 return"class java.lang.Byte";
545 }
546 return""+this.valueOf();
547 };
548 Clazz_makeConstructor(Byte,
549 function(v){
550  if (typeof v != "number")
551          v = Integer.parseIntRadix(v, 10);
552  v = v.byteValue();
553 this.valueOf=function(){
554 return v;
555 };
556 });
557
558 Byte.serialVersionUID=Byte.prototype.serialVersionUID=-7183698231559129828;
559 Byte.MIN_VALUE=Byte.prototype.MIN_VALUE=-128;
560 Byte.MAX_VALUE=Byte.prototype.MAX_VALUE=127;
561 Byte.SIZE=Byte.prototype.SIZE=8;
562 Byte.TYPE=Byte.prototype.TYPE=Byte;
563
564 Clazz_defineMethod(Byte,"parseByteRadix",
565 function(s,radix){
566  return Integer.parseIntRadix(s, radix).byteValue();
567 },"String, Number");
568 Byte.parseByteRadix=Byte.prototype.parseByteRadix;
569
570 Clazz_defineMethod(Byte,"parseByte",
571 function(s){
572 return Byte.parseByte(s,10);
573 },"String");
574
575 Byte.parseByte=Byte.prototype.parseByte;
576
577 Clazz_overrideMethod(Byte, "$valueOf",
578 function (s) {
579 return new Byte(s);
580 });
581
582 Byte.$valueOf=Byte.prototype.$valueOf;
583 Clazz_overrideMethod(Byte,"equals",
584 function(s){
585 if(s==null||!Clazz_instanceOf(s,Byte)){
586 return false;
587 }
588 return s.valueOf()==this.valueOf();
589 },"Object");
590 Byte.toHexString=Byte.prototype.toHexString=function(i){
591 return i.toString(16);
592 };
593 Byte.toOctalString=Byte.prototype.toOctalString=function(i){
594 return i.toString(8);
595 };
596 Byte.toBinaryString=Byte.prototype.toBinaryString=function(i){
597 return i.toString(2);
598 };
599 Byte.decode=Clazz_defineMethod(Byte,"decode",
600 function(n){
601         n = Integer.decodeRaw(n);
602         if (isNaN(n) || n < -128|| n > 127)
603                 throw new NumberFormatException("Invalid Byte");
604 return new Byte(n);
605 },"~S");
606
607 Clazz._floatToString = function(f) {
608  var s = ""+f
609  if (s.indexOf(".") < 0 && s.indexOf("e") < 0)
610          s += ".0";
611  return s;
612 }
613
614 java.lang.Float=Float=function(){
615 Clazz_instantialize(this,arguments);
616 };
617 Clazz_decorateAsType(Float,"Float",Number,Comparable,null,true);
618 Float.prototype.valueOf=function(){return 0;};
619 Float.toString=Float.prototype.toString=function(){
620 if(arguments.length!=0){
621 return Clazz._floatToString(arguments[0]);
622 }else if(this===Float){
623 return"class java.lang.Float";
624 }
625 return Clazz._floatToString(this.valueOf());
626 };
627
628 Clazz_overrideConstructor(Float, function(v){
629  v == null && (v = 0);
630  if (typeof v != "number") 
631         v = Number(v);
632  this.valueOf=function(){return v;}
633 });
634
635 Float.serialVersionUID=Float.prototype.serialVersionUID=-2671257302660747028;
636 Float.MIN_VALUE=Float.prototype.MIN_VALUE=3.4028235e+38;
637 Float.MAX_VALUE=Float.prototype.MAX_VALUE=1.4e-45;
638 Float.NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY;
639 Float.POSITIVE_INFINITY=Number.POSITIVE_INFINITY;
640 Float.NaN=Number.NaN;
641 Float.TYPE=Float.prototype.TYPE=Float;
642
643 Clazz_defineMethod(Float,"parseFloat",
644 function(s){
645 if(s==null){
646 throw new NumberFormatException("null");
647 }
648 if (typeof s == "number")return s;  // important -- typeof NaN is "number" and is OK here
649 var floatVal=Number(s);
650 if(isNaN(floatVal)){
651 throw new NumberFormatException("Not a Number : "+s);
652 }
653 return floatVal;
654 },"String");
655 Float.parseFloat=Float.prototype.parseFloat;
656
657 Clazz_overrideMethod(Float,"$valueOf",
658 function(s){
659 return new Float(s);
660 });
661
662 Float.$valueOf=Float.prototype.$valueOf;
663
664 Clazz_defineMethod(Float,"isNaN",
665 function(num){
666 return isNaN(num);
667 },"Number");
668 Float.isNaN=Float.prototype.isNaN;
669 Clazz_defineMethod(Float,"isInfinite",
670 function(num){
671 return!isFinite(num);
672 },"Number");
673 Float.isInfinite=Float.prototype.isInfinite;
674
675 Clazz_overrideMethod(Float,"equals",
676 function(s){
677 if(s==null||!Clazz_instanceOf(s,Float)){
678 return false;
679 }
680 return s.valueOf()==this.valueOf();
681 },"Object");
682
683 java.lang.Double=Double=function(){
684 Clazz_instantialize(this,arguments);
685 };
686 Clazz_decorateAsType(Double,"Double",Number,Comparable,null,true);
687 Double.prototype.valueOf=function(){return 0;};
688 Double.toString=Double.prototype.toString=function(){
689 if(arguments.length!=0){
690 return Clazz._floatToString(arguments[0]);
691 }else if(this===Double){
692 return"class java.lang.Double";
693 }
694 return Clazz._floatToString(this.valueOf());
695 };
696
697 Clazz_overrideConstructor(Double, function(v){
698  v == null && (v = 0);
699  if (typeof v != "number") 
700         v = Double.parseDouble(v);
701  this.valueOf=function(){return v;};
702 }); // BH
703
704 Double.serialVersionUID=Double.prototype.serialVersionUID=-9172774392245257468;
705 Double.MIN_VALUE=Double.prototype.MIN_VALUE=4.9e-324;
706 Double.MAX_VALUE=Double.prototype.MAX_VALUE=1.7976931348623157e+308;
707 Double.NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY;
708 Double.POSITIVE_INFINITY=Number.POSITIVE_INFINITY;
709 Double.NaN=Number.NaN;
710 Double.TYPE=Double.prototype.TYPE=Double;
711
712 Clazz_defineMethod(Double,"isNaN",
713 function(num){
714 return isNaN(num);
715 },"Number");
716 Double.isNaN=Double.prototype.isNaN;
717 Clazz_defineMethod(Double,"isInfinite",
718 function(num){
719 return!isFinite(num);
720 },"Number");
721 Double.isInfinite=Double.prototype.isInfinite;
722
723 Clazz_defineMethod(Double,"parseDouble",
724 function(s){
725 if(s==null){
726 throw new NumberFormatException("null");
727 }
728 if (typeof s == "number")return s;  // important -- typeof NaN is "number" and is OK here
729 var doubleVal=Number(s);
730 if(isNaN(doubleVal)){
731 throw new NumberFormatException("Not a Number : "+s);
732 }
733 return doubleVal;
734 },"String");
735 Double.parseDouble=Double.prototype.parseDouble;
736
737 /*
738 Clazz_defineMethod(Double,"$valueOf",
739 function(s){
740 return new Double(this.parseDouble(s));
741 },"String");
742 */
743
744 Clazz_defineMethod(Double,"$valueOf",
745 function(v){
746 return new Double(v);
747 },"Number");
748
749 Double.$valueOf=Double.prototype.$valueOf;
750
751 Clazz_overrideMethod(Double,"equals",
752 function(s){
753 if(s==null||!Clazz_instanceOf(s,Double)){
754 return false;
755 }
756 return s.valueOf()==this.valueOf();
757 },"Object");
758
759
760 //java.lang.B00lean = Boolean; ?? BH why this?
761 Boolean = java.lang.Boolean = Boolean || function () {Clazz_instantialize (this, arguments);};
762 if (Clazz._supportsNativeObject) {
763         for (var i = 0; i < Clazz._extendedObjectMethods.length; i++) {
764                 var p = Clazz._extendedObjectMethods[i];
765                 Boolean.prototype[p] = Clazz._O.prototype[p];
766         }
767 }
768 Boolean.__CLASS_NAME__="Boolean";
769 Clazz_implementOf(Boolean,[java.io.Serializable,java.lang.Comparable]);
770 Boolean.equals=Clazz._innerFunctions.equals;
771 Boolean.getName=Clazz._innerFunctions.getName;
772 Boolean.serialVersionUID=Boolean.prototype.serialVersionUID=-3665804199014368530;
773
774 //Clazz_makeConstructor(Boolean,
775 //function(value){
776 //this.valueOf=function(){
777 //return value;
778 //};
779 //},"~B");
780
781 Clazz_overrideConstructor(Boolean,
782 function(s){
783         var b = ((typeof s == "string" ? Boolean.toBoolean(s) : s) ? true : false);
784         this.valueOf=function(){return b;};
785 },"~O");
786
787 Boolean.parseBoolean=Clazz_defineMethod(Boolean,"parseBoolean",
788 function(s){
789 return Boolean.toBoolean(s);
790 },"~S");
791 Clazz_defineMethod(Boolean,"booleanValue",
792 function(){
793 return this.valueOf();
794 });
795 Boolean.$valueOf=Clazz_overrideMethod(Boolean,"$valueOf",
796 function(b){
797 return((typeof b == "string"? "true".equalsIgnoreCase(b) : b)?Boolean.TRUE:Boolean.FALSE);
798 });
799
800 /*
801 Boolean.toString=Clazz_defineMethod(Boolean,"toString",
802 function(b){
803 return b?"true":"false";
804 },"~B");
805 */
806
807 Clazz_overrideMethod(Boolean,"toString",
808 function(){
809 return this.valueOf()?"true":"false";
810 });
811 Clazz_overrideMethod(Boolean,"hashCode",
812 function(){
813 return this.valueOf()?1231:1237;
814 });
815 Clazz_overrideMethod(Boolean,"equals",
816 function(obj){
817 if(Clazz_instanceOf(obj,Boolean)){
818 return this.booleanValue()==obj.booleanValue();
819 }return false;
820 },"~O");
821 Boolean.getBoolean=Clazz_defineMethod(Boolean,"getBoolean",
822 function(name){
823 var result=false;
824 try{
825 result=Boolean.toBoolean(System.getProperty(name));
826 }catch(e){
827 if(Clazz_instanceOf(e,IllegalArgumentException)){
828 }else if(Clazz_instanceOf(e,NullPointerException)){
829 }else{
830 throw e;
831 }
832 }
833 return result;
834 },"~S");
835 Clazz_overrideMethod(Boolean,"compareTo",
836 function(b){
837 return(b.value==this.value?0:(this.value?1:-1));
838 },"Boolean");
839 Boolean.toBoolean=Clazz_defineMethod(Boolean,"toBoolean",
840 ($fz=function(name){
841 return((name!=null)&&name.equalsIgnoreCase("true"));
842 },$fz.isPrivate=true,$fz),"~S");
843 Boolean.TRUE=Boolean.prototype.TRUE=new Boolean(true);
844 Boolean.FALSE=Boolean.prototype.FALSE=new Boolean(false);
845 Boolean.TYPE=Boolean.prototype.TYPE=Boolean;
846
847
848 Clazz._Encoding=new Object();
849
850 (function(Encoding) {
851
852 Encoding.UTF8="utf-8";
853 Encoding.UTF16="utf-16";
854 Encoding.ASCII="ascii";
855
856
857 Encoding.guessEncoding=function(str){
858 if(str.charCodeAt(0)==0xEF&&str.charCodeAt(1)==0xBB&&str.charCodeAt(2)==0xBF){
859 return Encoding.UTF8;
860 }else if(str.charCodeAt(0)==0xFF&&str.charCodeAt(1)==0xFE){
861 return Encoding.UTF16;
862 }else{
863 return Encoding.ASCII;
864 }
865 };
866
867 Encoding.readUTF8=function(str){
868 var encoding=this.guessEncoding(str);
869 var startIdx=0;
870 if(encoding==Encoding.UTF8){
871 startIdx=3;
872 }else if(encoding==Encoding.UTF16){
873 startIdx=2;
874 }
875 var arrs=new Array();
876 for(var i=startIdx;i<str.length;i++){
877 var charCode=str.charCodeAt(i);
878 if(charCode<0x80){
879 arrs[arrs.length]=str.charAt(i);
880 }else if(charCode>0xc0&&charCode<0xe0){
881 var c1=charCode&0x1f;
882 i++;
883 var c2=str.charCodeAt(i)&0x3f;
884 var c=(c1<<6)+c2;
885 arrs[arrs.length]=String.fromCharCode(c);
886 }else if(charCode>=0xe0){
887 var c1=charCode&0x0f;
888 i++;
889 var c2=str.charCodeAt(i)&0x3f;
890 i++;
891 var c3=str.charCodeAt(i)&0x3f;
892 var c=(c1<<12)+(c2<<6)+c3;
893 arrs[arrs.length]=String.fromCharCode(c);
894 }
895 }
896 return arrs.join('');
897 };
898
899 Encoding.convert2UTF8=function(str){
900 var encoding=this.guessEncoding(str);
901 var startIdx=0;
902 if(encoding==Encoding.UTF8){
903 return str;
904 }else if(encoding==Encoding.UTF16){
905 startIdx=2;
906 }
907
908 var offset=0;
909 var arrs=new Array(offset+str.length-startIdx);
910
911 for(var i=startIdx;i<str.length;i++){
912 var charCode=str.charCodeAt(i);
913 if(charCode<0x80){
914 arrs[offset+i-startIdx]=str.charAt(i);
915 }else if(charCode<=0x07ff){
916 var c1=0xc0+((charCode&0x07c0)>>6);
917 var c2=0x80+(charCode&0x003f);
918 arrs[offset+i-startIdx]=String.fromCharCode(c1)+String.fromCharCode(c2);
919 }else{
920 var c1=0xe0+((charCode&0xf000)>>12);
921 var c2=0x80+((charCode&0x0fc0)>>6);
922 var c3=0x80+(charCode&0x003f);
923 arrs[offset+i-startIdx]=String.fromCharCode(c1)+String.fromCharCode(c2)+String.fromCharCode(c3);
924 }
925 }
926 return arrs.join('');
927 };
928 Encoding.base64Chars=new Array(
929 'A','B','C','D','E','F','G','H',
930 'I','J','K','L','M','N','O','P',
931 'Q','R','S','T','U','V','W','X',
932 'Y','Z','a','b','c','d','e','f',
933 'g','h','i','j','k','l','m','n',
934 'o','p','q','r','s','t','u','v',
935 'w','x','y','z','0','1','2','3',
936 '4','5','6','7','8','9','+','/'
937 );
938 Encoding.encodeBase64=function(str){
939 if(str==null||str.length==0)return str;
940 var b64=Encoding.base64Chars;
941 var length=str.length;
942 var index=0;
943 var buf=[];
944 var c0,c1,c2;
945 while(index<length){
946 c0=str.charCodeAt(index++);
947 buf[buf.length]=b64[c0>>2];
948 if(index<length){
949 c1=str.charCodeAt(index++);
950 buf[buf.length]=b64[((c0<<4)&0x30)|(c1>>4)];
951 if(index<length){
952 c2=str.charCodeAt(index++);
953 buf[buf.length]=b64[((c1<<2)&0x3c)|(c2>>6)];
954 buf[buf.length]=b64[c2&0x3F];
955 }else{
956 buf[buf.length]=b64[((c1<<2)&0x3c)];
957 buf[buf.length]='=';
958 }
959 }else{
960 buf[buf.length]=b64[(c0<<4)&0x30];
961 buf[buf.length]='=';
962 buf[buf.length]='=';
963 }
964 }
965 return buf.join('');
966 };
967 Encoding.decodeBase64=function(str){
968 if(str==null||str.length==0)return str;
969 var b64=Encoding.base64Chars;
970 var xb64=Encoding.xBase64Chars;
971 if(Encoding.xBase64Chars==null){
972 xb64=new Object();
973 for(var i=0;i<b64.length;i++){
974 xb64[b64[i]]=i;
975 }
976 Encoding.xBase64Chars=xb64;
977 }
978 var length=str.length;
979 var index=0;
980 var buf=[];
981 var c0,c1,c2,c3;
982 var c=0;
983 while(index<length&&c++<60000){
984 c0=xb64[str.charAt(index++)];
985 c1=xb64[str.charAt(index++)];
986 c2=xb64[str.charAt(index++)];
987 c3=xb64[str.charAt(index++)];
988 buf[buf.length]=String.fromCharCode(((c0<<2)&0xff)|c1>>4);
989 if(c2!=null){
990 buf[buf.length]=String.fromCharCode(((c1<<4)&0xff)|c2>>2);
991 if(c3!=null){
992 buf[buf.length]=String.fromCharCode(((c2<<6)&0xff)|c3);
993 }
994 }
995 }
996 return buf.join('');
997 };
998
999 if(String.prototype.$replace==null){
1000 java.lang.String=String;
1001 if(Clazz._supportsNativeObject){
1002 for(var i=0;i<Clazz._extendedObjectMethods.length;i++){
1003 var p=Clazz._extendedObjectMethods[i];
1004 if("to$tring"==p||"toString"==p||"equals"==p||"hashCode"==p){
1005 continue;
1006 }
1007 String.prototype[p]=Clazz._O.prototype[p];
1008 }
1009 }
1010
1011 Clazz_implementOf(String,[java.io.Serializable,CharSequence,Comparable]);
1012
1013 String.getName=Clazz._innerFunctions.getName;
1014
1015 String.serialVersionUID=String.prototype.serialVersionUID=-6849794470754667710;
1016
1017
1018 ;(function(sp) {
1019
1020 sp.$replace=function(c1,c2){
1021         if (c1 == c2 || this.indexOf (c1) < 0) return "" + this;
1022         if (c1.length == 1) {
1023                 if ("\\$.*+|?^{}()[]".indexOf(c1) >= 0)         c1 = "\\" + c1;
1024         } else {    
1025                 c1=c1.replace(/([\\\$\.\*\+\|\?\^\{\}\(\)\[\]])/g,function($0,$1){return"\\"+$1;});
1026         }
1027         return this.replace(new RegExp(c1,"gm"),c2);
1028 };
1029 sp.$generateExpFunction=function(str){
1030 var arr=[];
1031 var orders=[];
1032 var idx=0;
1033 arr[0]="";
1034 var i=0;
1035 for(;i<str.length;i++){
1036 var ch=str.charAt(i);
1037 if(i!=str.length-1&&ch=='\\'){
1038 i++;
1039 var c=str.charAt(i);
1040 if(c=='\\'){
1041 arr[idx]+='\\';
1042 }
1043 arr[idx]+=c;
1044 }else if(i!=str.length-1&&ch=='$'){
1045 i++;
1046 orders[idx]=parseInt(str.charAt(i));
1047 idx++;
1048 arr[idx]="";
1049 }else if(ch=='\r'){
1050 arr[idx]+="\\r";
1051 }else if(ch=='\n'){
1052 arr[idx]+="\\n";
1053 }else if(ch=='\t'){
1054 arr[idx]+="\\t";
1055 }else if(ch=='\"'){
1056 arr[idx]+="\\\"";
1057 }else{
1058 arr[idx]+=ch;
1059 }
1060 }
1061 var funStr="f = function (";
1062 var max=Math.max.apply({},orders);
1063 for(i=0;i<=max;i++){
1064 funStr+="$"+i;
1065 if(i!=max){
1066 funStr+=", ";
1067 }
1068 }
1069 funStr+=") { return ";
1070 for(i=0;i<arr.length-1;i++){
1071 funStr+="\""+arr[i]+"\" + $"+orders[i]+" + ";
1072 }
1073 funStr+="\""+arr[i]+"\"; }";
1074 var f=null;
1075 eval(funStr)
1076 return f;
1077 };
1078
1079 sp.replaceAll=function(exp,str){
1080 var regExp=new RegExp(exp,"gm");
1081 return this.replace(regExp,this.$generateExpFunction(str));
1082 };
1083 sp.replaceFirst=function(exp,str){
1084 var regExp=new RegExp(exp,"m");
1085 return this.replace(regExp,this.$generateExpFunction(str));
1086 };
1087 sp.matches=function(exp){
1088 if(exp!=null){
1089 exp="^("+exp+")$";
1090 }
1091 var regExp=new RegExp(exp,"gm");
1092 var m=this.match(regExp);
1093 return m!=null&&m.length!=0;
1094 };
1095 sp.regionMatches=function(ignoreCase,toffset,
1096 other,ooffset,len){
1097
1098 if(typeof ignoreCase=="number"
1099 ||(ignoreCase!=true&&ignoreCase!=false)){
1100 len=ooffset;
1101 ooffset=other;
1102 other=toffset;
1103 toffset=ignoreCase;
1104 ignoreCase=false;
1105 }
1106 var to=toffset;
1107 var po=ooffset;
1108
1109 if((ooffset<0)||(toffset<0)||(toffset>this.length-len)||
1110 (ooffset>other.length-len)){
1111 return false;
1112 }
1113 var s1=this.substring(toffset,toffset+len);
1114 var s2=other.substring(ooffset,ooffset+len);
1115 if(ignoreCase){
1116 s1=s1.toLowerCase();
1117 s2=s2.toLowerCase();
1118 }
1119 return s1==s2;
1120 };
1121
1122
1123
1124 sp.$plit=function(regex,limit){
1125 if (!limit && regex == " ")
1126         return this.split(regex);
1127
1128 if(limit!=null&&limit>0){
1129 if(limit==1){
1130 return this;
1131 }
1132 var regExp=new RegExp("("+regex+")","gm");
1133 var count=1;
1134 var s=this.replace(regExp,function($0,$1){
1135 count++;
1136 if(count==limit){
1137 return"@@_@@";
1138 }else if(count>limit){
1139 return $0;
1140 }else{
1141 return $0;
1142 }
1143 });
1144 regExp=new RegExp(regex,"gm");
1145 var arr=this.split(regExp);
1146 if(arr.length>limit){
1147 arr[limit-1]=s.substring(s.indexOf("@@_@@")+5);
1148 arr.length=limit;
1149 }
1150 return arr;
1151 }else{
1152 var regExp=new RegExp(regex,"gm");
1153 return this.split(regExp);
1154 }
1155 };
1156 /*
1157 sp.trim=function(){
1158 var len=this.length;
1159 var st=0;
1160
1161 while((st<len)&&(this.charAt(st)<=' ')){
1162 st++;
1163 }
1164 while((st<len)&&(this.charAt(len-1)<=' ')){
1165 len--;
1166 }
1167 return((st>0)||(len<len))?this.substring(st,len):this;
1168 };
1169
1170
1171 */
1172
1173 if (!sp.trim)
1174 sp.trim=function(){
1175 return this.replace(/^\s+/g,'').replace(/\s+$/g,'');
1176 };
1177
1178 if (!sp.startsWith || !sp.endsWith) {
1179 var sn=function(s, prefix,toffset){
1180 var to=toffset;
1181 var po=0;
1182 var pc=prefix.length;
1183
1184 if((toffset<0)||(toffset>s.length-pc)){
1185 return false;
1186 }
1187 while(--pc>=0){
1188 if(s.charAt(to++)!=prefix.charAt(po++)){
1189 return false;
1190 }
1191 }
1192 return true;
1193 };
1194
1195 sp.startsWith=function(prefix){
1196 if(arguments.length==1){
1197 return sn(this,arguments[0],0);
1198 }else if(arguments.length==2){
1199 return sn(this,arguments[0],arguments[1]);
1200 }else{
1201 return false;
1202 }
1203 };
1204
1205 sp.endsWith=function(suffix){
1206 return sn(this, suffix,this.length-suffix.length);
1207 };
1208
1209 }
1210
1211 sp.equals=function(anObject){
1212 return this.valueOf()==anObject;
1213 };
1214
1215 sp.equalsIgnoreCase=function(anotherString){
1216 return(anotherString==null)?false:(this==anotherString
1217 ||this.toLowerCase()==anotherString.toLowerCase());
1218 };
1219
1220
1221 sp.hash=0;
1222
1223 sp.hashCode=function(){
1224 var h=this.hash;
1225 if(h==0){
1226 var off=0;
1227 var len=this.length;
1228 for(var i=0;i<len;i++){
1229 h=31*h+this.charCodeAt(off++);
1230 h&=0xffffffff;
1231 }
1232 this.hash=h;
1233 }
1234 return h;
1235 };
1236
1237 sp.getBytes=function(){
1238 if(arguments.length==4){
1239 return this.getChars(arguments[0],arguments[1],arguments[2],arguments[3]);
1240 }
1241 var s=this;
1242 if(arguments.length==1){
1243 var cs=arguments[0].toString().toLowerCase();
1244 var charset=[
1245 "utf-8","UTF8","us-ascii","iso-8859-1","8859_1","gb2312","gb18030","gbk"
1246 ];
1247 var existed=false;
1248 for(var i=0;i<charset.length;i++){
1249 if(charset[i]==cs){
1250 existed=true;
1251 break;
1252 }
1253 }
1254 if(!existed){
1255 throw new java.io.UnsupportedEncodingException();
1256 }
1257 if(cs=="utf-8"||cs=="utf8"){
1258 s=Encoding.convert2UTF8(this);
1259 }
1260 }
1261 var arrs=new Array(s.length);
1262 var c=0,ii=0;
1263 for(var i=0;i<s.length;i++){
1264 c=s.charCodeAt(i);
1265 if(c>255){
1266 arrs[ii]=0x1a;
1267 arrs[ii+1]=c&0xff;
1268 arrs[ii+2]=(c&0xff00)>>8;
1269 ii+=2;
1270 }else{
1271 arrs[ii]=c;
1272 }
1273 ii++;
1274 }
1275 return arrs;
1276 };
1277
1278 /*
1279 sp.compareTo=function(anotherString){
1280 if(anotherString==null){
1281 throw new java.lang.NullPointerException();
1282 }
1283 var len1=this.length;
1284 var len2=anotherString.length;
1285 var n=Math.min(len1,len2);
1286 var k=0;
1287 while(k<n){
1288 var c1=this.charCodeAt(k);
1289 var c2=anotherString.charCodeAt(k);
1290 if(c1!=c2){
1291 return c1-c2;
1292 }
1293 k++;
1294 }
1295 return len1-len2;
1296 };
1297
1298 */
1299
1300 sp.contains = function(a) {return this.indexOf(a) >= 0}  // bh added
1301 sp.compareTo = function(a){return this > a ? 1 : this < a ? -1 : 0} // bh added
1302
1303
1304
1305 sp.toCharArray=function(){
1306 var result=new Array(this.length);
1307 for(var i=0;i<this.length;i++){
1308 result[i]=this.charAt(i);
1309 }
1310 return result;
1311 };
1312 String.value0f=String.valueOf;
1313 String.valueOf=function(o){
1314 if(o=="undefined"){
1315 return String.value0f();
1316 }
1317 if(o instanceof Array){
1318 if(arguments.length==1){
1319 return o.join('');
1320 }else{
1321 var off=arguments[1];
1322 var len=arguments[2];
1323 var oo=new Array(len);
1324 for(var i=0;i<len;i++){
1325 oo[i]=o[off+i];
1326 }
1327 return oo.join('');
1328 }
1329 }
1330 return""+o;
1331 };
1332
1333 sp.subSequence=function(beginIndex,endIndex){
1334 return this.substring(beginIndex,endIndex);
1335 };
1336
1337 sp.compareToIgnoreCase=function(str){
1338 if(str==null){
1339 throw new NullPointerException();
1340 }
1341 var s1=this.toUpperCase();
1342 var s2=str.toUpperCase();
1343 if(s1==s2){
1344 return 0;
1345 }else{
1346 var s1=this.toLowerCase();
1347 var s2=str.toLowerCase();
1348 if(s1==s2){
1349 return 0;
1350 }else if(s1>s2){
1351 return 1;
1352 }else{
1353 return-1;
1354 }
1355 }
1356 };
1357
1358 sp.contentEquals=function(sb){
1359 if(this.length!=sb.length()){
1360 return false;
1361 }
1362 var v=sb.getValue();
1363 var i=0;
1364 var j=0;
1365 var n=this.length;
1366 while(n--!=0){
1367 if(this.charCodeAt(i++)!=v[j++]){
1368 return false;
1369 }
1370 }
1371 return true;
1372 };
1373
1374 sp.getChars=function(srcBegin,srcEnd,dst,dstBegin){
1375 if(srcBegin<0){
1376 throw new StringIndexOutOfBoundsException(srcBegin);
1377 }
1378 if(srcEnd>this.length){
1379 throw new StringIndexOutOfBoundsException(srcEnd);
1380 }
1381 if(srcBegin>srcEnd){
1382 throw new StringIndexOutOfBoundsException(srcEnd-srcBegin);
1383 }
1384 if(dst==null){
1385 throw new NullPointerException();
1386 }
1387 for(var i=0;i<srcEnd-srcBegin;i++){
1388 dst[dstBegin+i]=this.charAt(srcBegin+i);
1389 }
1390 };
1391 sp.$concat=sp.concat;
1392 sp.concat=function(s){
1393 if(s==null){
1394 throw new NullPointerException();
1395 }
1396 return this.$concat(s);
1397 };
1398
1399 sp.$lastIndexOf=sp.lastIndexOf;
1400 sp.lastIndexOf=function(s,last){
1401 if(last!=null&&last+this.length<=0){
1402 return-1;
1403 }
1404 if(last!=null){
1405 return this.$lastIndexOf(s,last);
1406 }else{
1407 return this.$lastIndexOf(s);
1408 }
1409 };
1410
1411 sp.intern=function(){
1412 return this.valueOf();
1413 };
1414 String.copyValueOf=sp.copyValueOf=function(){
1415 if(arguments.length==1){
1416 return String.instantialize(arguments[0]);
1417 }else{
1418 return String.instantialize(arguments[0],arguments[1],arguments[2]);
1419 }
1420 };
1421
1422 sp.codePointAt || (sp.codePointAt = sp.charCodeAt); // Firefox only
1423
1424
1425 })(String.prototype);
1426
1427 /*
1428
1429 String.indexOf=function(source,sourceOffset,sourceCount,
1430 target,targetOffset,targetCount,fromIndex){
1431 if(fromIndex>=sourceCount){
1432 return(targetCount==0?sourceCount:-1);
1433 }
1434 if(fromIndex<0){
1435 fromIndex=0;
1436 }
1437 if(targetCount==0){
1438 return fromIndex;
1439 }
1440
1441 var first=target[targetOffset];
1442 var i=sourceOffset+fromIndex;
1443 var max=sourceOffset+(sourceCount-targetCount);
1444
1445 startSearchForFirstChar:
1446 while(true){
1447
1448 while(i<=max&&source[i]!=first){
1449 i++;
1450 }
1451 if(i>max){
1452 return-1;
1453 }
1454
1455
1456 var j=i+1;
1457 var end=j+targetCount-1;
1458 var k=targetOffset+1;
1459 while(j<end){
1460 if(source[j++]!=target[k++]){
1461 i++;
1462
1463 continue startSearchForFirstChar;
1464 }
1465 }
1466 return i-sourceOffset;
1467 }
1468 };
1469
1470
1471
1472 String.instantialize=function(){
1473 if(arguments.length==0){
1474 return new String();
1475 }else if(arguments.length==1){
1476 var x=arguments[0];
1477 if(typeof x=="string"||x instanceof String){
1478 return new String(x);
1479 }else if(x instanceof Array){
1480 if(x.length>0&&typeof x[0]=="number"){
1481 var arr=new Array(x.length);
1482 for(var i=0;i<x.length;i++){
1483 arr[i]=String.fromCharCode(x[i]&0xff);
1484 }
1485 return Encoding.readUTF8(arr.join(''));
1486 }
1487 return x.join('');
1488 }else if(x.__CLASS_NAME__=="StringBuffer"
1489 ||x.__CLASS_NAME__=="java.lang.StringBuffer"){
1490 var value=x.shareValue();
1491 var length=x.length();
1492 var valueCopy=new Array(length);
1493 for(var i=0;i<length;i++){
1494 valueCopy[i]=value[i];
1495 }
1496 return valueCopy.join('')
1497
1498 }else{
1499 return""+x;
1500 }
1501 }else if(arguments.length==2){
1502 var x=arguments[0];
1503 var hibyte=arguments[1];
1504 if(typeof hibyte=="string"){
1505 return String.instantialize(x,0,x.length,hibyte);
1506 }else{
1507 return String.instantialize(x,hibyte,0,x.length);
1508 }
1509 }else if(arguments.length==3){
1510 var bytes=arguments[0];
1511 var offset=arguments[1];
1512 var length=arguments[2];
1513 if(arguments[2]instanceof Array){
1514 bytes=arguments[2];
1515 offset=arguments[0];
1516 length=arguments[1];
1517 }
1518 var arr=new Array(length);
1519 if(offset<0||length+offset>bytes.length){
1520 throw new IndexOutOfBoundsException();
1521 }
1522 if(length>0){
1523 var isChar=(bytes[offset].length!=null);
1524 if(isChar){
1525 for(var i=0;i<length;i++){
1526 arr[i]=bytes[offset+i];
1527 }
1528 }else{
1529 for(var i=0;i<length;i++){
1530 arr[i]=String.fromCharCode(bytes[offset+i]);
1531 }
1532 }
1533 }
1534 return arr.join('');
1535 }else if(arguments.length==4){
1536 var bytes=arguments[0];
1537 var y=arguments[3];
1538 if(typeof y=="string"||y instanceof String){
1539 var offset=arguments[1];
1540 var length=arguments[2];
1541 var arr=new Array(length);
1542 for(var i=0;i<length;i++){
1543 arr[i]=bytes[offset+i];
1544 if(typeof arr[i]=="number"){
1545 arr[i]=String.fromCharCode(arr[i]&0xff);
1546 }
1547 }
1548 var cs=y.toLowerCase();
1549 if(cs=="utf-8"||cs=="utf8"){
1550 return Encoding.readUTF8(arr.join(''));
1551 }else{
1552 return arr.join('');
1553 }
1554 }else{
1555 var count=arguments[3];
1556 var offset=arguments[2];
1557 var hibyte=arguments[1];
1558 var value=new Array(count);
1559 if(hibyte==0){
1560 for(var i=count;i-->0;){
1561 value[i]=String.fromCharCode(bytes[i+offset]&0xff);
1562 }
1563 }else{
1564 hibyte<<=8;
1565 for(var i=count;i-->0;){
1566 value[i]=String.fromCharCode(hibyte|(bytes[i+offset]&0xff));
1567 }
1568 }
1569 return value.join('');
1570 }
1571 }else{
1572 var s="";
1573 for(var i=0;i<arguments.length;i++){
1574 s+=arguments[i];
1575 }
1576 return s;
1577 }
1578 };
1579
1580
1581 */
1582
1583
1584 String.instantialize=function(){
1585 switch (arguments.length) {
1586 case 0:
1587         return new String();
1588 case 1:
1589         var x=arguments[0];
1590         if(typeof x=="string"||x instanceof String){
1591                 return new String(x);
1592         }
1593         if(x instanceof Array || x instanceof Int32Array){
1594                 if(x.length == 0)
1595                         return "";
1596                 if(typeof x[0]!="number")
1597                         return x.join('');
1598                 var arr=new Array(x.length);
1599                 for(var i=0;i<x.length;i++)
1600                         arr[i]=String.fromCharCode(x[i]&0xff);
1601                 return Encoding.readUTF8(arr.join(''));
1602         }
1603         if(x.__CLASS_NAME__=="StringBuffer"||x.__CLASS_NAME__=="java.lang.StringBuffer"){
1604                 var value=x.shareValue();
1605                 var length=x.length();
1606                 var valueCopy=new Array(length);
1607                 for(var i=0;i<length;i++){
1608                         valueCopy[i]=value[i];
1609                 }
1610                 return valueCopy.join('')
1611         }
1612         return""+x;
1613 case 2: 
1614         var x=arguments[0];
1615         var hibyte=arguments[1];
1616         if(typeof hibyte=="string"){
1617                 return String.instantialize(x,0,x.length,hibyte);
1618         }
1619         return String.instantialize(x,hibyte,0,x.length);
1620 case 3:
1621         var bytes=arguments[0];
1622         var offset=arguments[1];
1623         var length=arguments[2];
1624         if(arguments[2]instanceof Array){
1625                 bytes=arguments[2];
1626                 offset=arguments[0];
1627                 length=arguments[1];
1628         }
1629         var arr=new Array(length);
1630         if(offset<0||length+offset>bytes.length){
1631                 throw new IndexOutOfBoundsException();
1632         }
1633         if(length>0){
1634                 var isChar=(bytes[offset].length!=null);
1635                 if(isChar){
1636                         for(var i=0;i<length;i++){
1637                                 arr[i]=bytes[offset+i];
1638                         }
1639                 }else{
1640                         for(var i=0;i<length;i++){
1641                                 arr[i]=String.fromCharCode(bytes[offset+i]);
1642                         }
1643                 }
1644         }
1645         return arr.join('');
1646 case 4:
1647         var bytes=arguments[0];
1648         var y=arguments[3];
1649         if(typeof y=="string"||y instanceof String){
1650                 var offset=arguments[1];
1651                 var length=arguments[2];
1652                 var arr=new Array(length);
1653                 for(var i=0;i<length;i++){
1654                         arr[i]=bytes[offset+i];
1655                         if(typeof arr[i]=="number"){
1656                                 arr[i]=String.fromCharCode(arr[i]&0xff);
1657                         }
1658                 }
1659                 var cs=y.toLowerCase();
1660                 if(cs=="utf-8"||cs=="utf8"){
1661                         return Encoding.readUTF8(arr.join(''));
1662                 }
1663                 return arr.join('');
1664         }
1665         var count=arguments[3];
1666         var offset=arguments[2];
1667         var hibyte=arguments[1];
1668         var value=new Array(count);
1669         if(hibyte==0){
1670                 for(var i=count;i-->0;){
1671                         value[i]=String.fromCharCode(bytes[i+offset]&0xff);
1672                 }
1673         }else{
1674                 hibyte<<=8;
1675                 for(var i=count;i-->0;){
1676                         value[i]=String.fromCharCode(hibyte|(bytes[i+offset]&0xff));
1677                 }
1678         }
1679         return value.join('');
1680 default:
1681         var s="";
1682         for(var i=0;i<arguments.length;i++){
1683                 s+=arguments[i];
1684         }
1685         return s;
1686 }
1687 };
1688
1689 if(navigator.userAgent.toLowerCase().indexOf("chrome")!=-1){
1690         String.prototype.toString=function(){return this.valueOf();};
1691 }
1692
1693 }
1694
1695 })(Clazz._Encoding);
1696
1697
1698
1699 c$=Clazz_decorateAsClass(function(){
1700 this.value=0;
1701 Clazz_instantialize(this,arguments);
1702 },java.lang,"Character",null,[java.io.Serializable,Comparable]);
1703 Clazz_makeConstructor(c$,
1704 function(value){
1705 this.value=value;
1706 },"~N");
1707 Clazz_defineMethod(c$,"charValue",
1708 function(){
1709 return this.value;
1710 });
1711 Clazz_overrideMethod(c$,"hashCode",
1712 function(){
1713 return(this.value).charCodeAt(0);
1714 });
1715 Clazz_overrideMethod(c$,"equals",
1716 function(obj){
1717 if(Clazz_instanceOf(obj,Character)){
1718 return(this.value).charCodeAt(0)==((obj).charValue()).charCodeAt(0);
1719 }return false;
1720 },"~O");
1721 Clazz_overrideMethod(c$,"compareTo",
1722 function(c){
1723 return(this.value).charCodeAt(0)-(c.value).charCodeAt(0);
1724 },"Character");
1725 c$.toLowerCase=Clazz_defineMethod(c$,"toLowerCase",
1726 function(c){
1727 return(""+c).toLowerCase().charAt(0);
1728 },"~N");
1729 c$.toUpperCase=Clazz_defineMethod(c$,"toUpperCase",
1730 function(c){
1731 return(""+c).toUpperCase().charAt(0);
1732 },"~N");
1733 c$.isDigit=Clazz_defineMethod(c$,"isDigit",
1734 function(c){
1735 c = c.charCodeAt(0);
1736 return (48 <= c && c <= 57);
1737 },"~N");
1738 c$.isUpperCase=Clazz_defineMethod(c$,"isUpperCase",
1739 function(c){
1740 c = c.charCodeAt(0);
1741 return (65 <= c && c <= 90);
1742 },"~N");
1743 c$.isLowerCase=Clazz_defineMethod(c$,"isLowerCase",
1744 function(c){
1745 c = c.charCodeAt(0);
1746 return (97 <= c && c <= 122);
1747 },"~N");
1748 c$.isWhitespace=Clazz_defineMethod(c$,"isWhitespace",
1749 function(c){
1750 c = (c).charCodeAt(0);
1751 return (c >= 0x1c && c <= 0x20 || c >= 0x9 && c <= 0xd || c == 0x1680
1752         || c >= 0x2000 && c != 0x2007 && (c <= 0x200b || c == 0x2028 || c == 0x2029 || c == 0x3000));
1753 },"~N");
1754 c$.isLetter=Clazz_defineMethod(c$,"isLetter",
1755 function(c){
1756 c = c.charCodeAt(0);
1757 return (65 <= c && c <= 90 || 97 <= c && c <= 122);
1758 },"~N");
1759 c$.isLetterOrDigit=Clazz_defineMethod(c$,"isLetterOrDigit",
1760 function(c){
1761 c = c.charCodeAt(0);
1762 return (65 <= c && c <= 90 || 97 <= c && c <= 122 || 48 <= c && c <= 57);
1763 },"~N");
1764 c$.isSpaceChar=Clazz_defineMethod(c$,"isSpaceChar",
1765 function(c){
1766  var i = c.charCodeAt(0);
1767 if(i==0x20||i==0xa0||i==0x1680)return true;
1768 if(i<0x2000)return false;
1769 return i<=0x200b||i==0x2028||i==0x2029||i==0x202f||i==0x3000;
1770 },"~N");
1771 c$.digit=Clazz_defineMethod(c$,"digit",
1772 function(c,radix){
1773 var i = c.charCodeAt(0);
1774 if(radix >= 2 && radix <= 36){
1775         if(i < 128){
1776                 var result = -1;
1777                 if(48 <= i && i <= 57){
1778                 result = i - 48;
1779                 }else if(97 <= i && i <= 122){
1780                 result = i - 87;
1781                 }else if(65 <= i && i <= 90){
1782                 result=i-(55);
1783                 }
1784                 return (result < radix ? result : -1);
1785         }
1786 }
1787 return -1;
1788 },"~N,~N");
1789 Clazz_overrideMethod(c$,"toString",
1790 function(){
1791 var buf=[this.value];
1792 return String.valueOf(buf);
1793 });
1794 c$.toString=Clazz_overrideMethod(c$,"toString",
1795 function(c){
1796 {
1797 if(this===Character){
1798 return"class java.lang.Character";
1799 }
1800 }return String.valueOf(c);
1801 },"~N");
1802 Clazz_defineStatics(c$,
1803 "MIN_VALUE",'\u0000',
1804 "MAX_VALUE",'\uffff',
1805 "MIN_RADIX",2,
1806 "MAX_RADIX",36,
1807 "TYPE",null);
1808
1809 java.lang.Character.TYPE=java.lang.Character.prototype.TYPE=java.lang.Character;
1810
1811
1812
1813 Clazz._ArrayWrapper = function(a, type) {
1814  return {
1815    a: a,
1816    __CLASS_NAME__:"Array",
1817    superClazz: Array,
1818    getComponentType: function() {return type},
1819    instanceOf: function(o) { return  Clazz_instanceOf(type, o) },
1820    getName: function() { return this.__CLASS_NAME__ }
1821  };
1822 }
1823 c$=Clazz_declareType(java.lang.reflect,"Array");
1824 c$.newInstance=Clazz_defineMethod(c$,"newInstance",
1825 function(componentType,size){
1826 var a = Clazz_newArray(size);
1827  a.getClass = function() { return new Clazz._ArrayWrapper(this, componentType);};
1828 return a;
1829 },"Class,~N");
1830
1831 javautil.Date=Date;
1832 Date.TYPE="javautil.Date";
1833 Date.__CLASS_NAME__="Date";
1834 Clazz_implementOf(Date,[java.io.Serializable,java.lang.Comparable]);
1835
1836 Clazz_defineMethod(javautil.Date,"clone",
1837 function(){
1838 return new Date(this.getTime());
1839 });
1840
1841 Clazz_defineMethod(javautil.Date,"before",
1842 function(when){
1843 return this.getTime()<when.getTime();
1844 },"javautil.Date");
1845 Clazz_defineMethod(javautil.Date,"after",
1846 function(when){
1847 return this.getTime()>when.getTime();
1848 },"javautil.Date");
1849 Clazz_defineMethod(javautil.Date,"equals",
1850 function(obj){
1851 return Clazz_instanceOf(obj,javautil.Date)&&this.getTime()==(obj).getTime();
1852 },"Object");
1853 Clazz_defineMethod(javautil.Date,"compareTo",
1854 function(anotherDate){
1855 var thisTime=this.getTime();
1856 var anotherTime=anotherDate.getTime();
1857 return(thisTime<anotherTime?-1:(thisTime==anotherTime?0:1));
1858 },"javautil.Date");
1859 Clazz_defineMethod(javautil.Date,"compareTo",
1860 function(o){
1861 return this.compareTo(o);
1862 },"Object");
1863 Clazz_overrideMethod(javautil.Date,"hashCode",
1864 function(){
1865 var ht=this.getTime();
1866 return parseInt(ht)^parseInt((ht>>32));
1867 });
1868
1869 c$=Clazz_decorateAsClass(function(){
1870 this.source=null;
1871 Clazz_instantialize(this,arguments);
1872 },javautil,"EventObject",null,java.io.Serializable);
1873 Clazz_makeConstructor(c$,
1874 function(source){
1875 if(source!=null)this.source=source;
1876 else throw new IllegalArgumentException();
1877 },"~O");
1878 Clazz_defineMethod(c$,"getSource",
1879 function(){
1880 return this.source;
1881 });
1882 Clazz_overrideMethod(c$,"toString",
1883 function(){
1884 return this.getClass().getName()+"[source="+String.valueOf(this.source)+']';
1885 });
1886 Clazz_declareInterface(javautil,"EventListener");
1887
1888 c$=Clazz_decorateAsClass(function(){
1889 this.listener=null;
1890 Clazz_instantialize(this,arguments);
1891 },javautil,"EventListenerProxy",null,javautil.EventListener);
1892 Clazz_makeConstructor(c$,
1893 function(listener){
1894 this.listener=listener;
1895 },"javautil.EventListener");
1896 Clazz_defineMethod(c$,"getListener",
1897 function(){
1898 return this.listener;
1899 });
1900 Clazz_declareInterface(javautil,"Iterator");
1901
1902 Clazz_declareInterface(javautil,"ListIterator",javautil.Iterator);
1903 Clazz_declareInterface(javautil,"Enumeration");
1904 Clazz_declareInterface(javautil,"Collection",Iterable);
1905
1906 Clazz_declareInterface(javautil,"Set",javautil.Collection);
1907 Clazz_declareInterface(javautil,"Map");
1908 Clazz_declareInterface(javautil.Map,"Entry");
1909
1910 Clazz_declareInterface(javautil,"List",javautil.Collection);
1911
1912 Clazz_declareInterface(javautil,"Queue",javautil.Collection);
1913 Clazz_declareInterface(javautil,"RandomAccess");
1914 c$=Clazz_decorateAsClass(function(){
1915 this.detailMessage=null;
1916 this.cause=null;
1917 this.stackTrace=null;
1918 Clazz_instantialize(this,arguments);
1919 },java.lang,"Throwable",null,java.io.Serializable);
1920 Clazz_prepareFields(c$,function(){
1921 this.cause=this;
1922 //alert("e0 "+ arguments.callee.caller.caller.caller.caller.caller)
1923 });
1924 Clazz_makeConstructor(c$,
1925 function(){
1926 this.fillInStackTrace();
1927 });
1928 Clazz_makeConstructor(c$,
1929 function(message){
1930 this.fillInStackTrace();
1931 this.detailMessage=message;
1932 },"~S");
1933 Clazz_makeConstructor(c$,
1934 function(message,cause){
1935 this.fillInStackTrace();
1936 this.detailMessage=message;
1937 this.cause=cause;
1938 },"~S,Throwable");
1939 Clazz_makeConstructor(c$,
1940 function(cause){
1941 this.fillInStackTrace();
1942 this.detailMessage=(cause==null?null:cause.toString());
1943 this.cause=cause;
1944 },"Throwable");
1945 Clazz_defineMethod(c$,"getMessage",
1946 function(){
1947 return (this.message || this.detailMessage || this.toString());
1948 });
1949 Clazz_defineMethod(c$,"getLocalizedMessage",
1950 function(){
1951 return this.getMessage();
1952 });
1953 Clazz_defineMethod(c$,"getCause",
1954 function(){
1955 return(this.cause===this?null:this.cause);
1956 });
1957 Clazz_defineMethod(c$,"initCause",
1958 function(cause){
1959 if(this.cause!==this)throw new IllegalStateException("Can't overwrite cause");
1960 if(cause===this)throw new IllegalArgumentException("Self-causation not permitted");
1961 this.cause=cause;
1962 return this;
1963 },"Throwable");
1964 Clazz_overrideMethod(c$,"toString",
1965 function(){
1966 var s=this.getClass().getName();
1967 var message=this.message || this.detailMessage;
1968 return(message ? s+": "+message : s);
1969 });
1970 Clazz_defineMethod(c$,"printStackTrace",
1971 function(){
1972 System.err.println(this.getStackTrace ? this.getStackTrace() : this.message + " " + Clazz_getStackTrace());
1973 });
1974
1975 Clazz_defineMethod(c$,"getStackTrace",
1976 function(){
1977 var s = "" + this + "\n";
1978 for(var i=0;i<this.stackTrace.length;i++){
1979  var t=this.stackTrace[i];
1980         var x=t.methodName.indexOf("(");
1981         var n=t.methodName.substring(0,x).replace(/\s+/g,"");
1982         if(n!="construct"||t.nativeClazz==null
1983                  ||Clazz_getInheritedLevel(t.nativeClazz,Throwable)<0){
1984                                 s += t + "\n";
1985         }
1986 }
1987 return s;
1988 });
1989
1990
1991 Clazz_defineMethod(c$,"printStackTrace",
1992 function(s){
1993 this.printStackTrace();
1994 },"java.io.PrintStream");
1995 Clazz_defineMethod(c$,"printStackTrace",
1996 function(s){
1997 this.printStackTrace();
1998 },"java.io.PrintWriter");
1999 Clazz_defineMethod(c$,"fillInStackTrace",
2000 function(){
2001 this.stackTrace=new Array();
2002 var caller=arguments.callee.caller;
2003 var superCaller=null;
2004 var callerList=new Array();
2005 var index=Clazz._callingStackTraces.length-1;
2006 var noLooping=true;
2007 while(index>-1||caller!=null){
2008 var clazzName=null;
2009 var nativeClass=null;
2010 if(!noLooping||caller==Clazz_tryToSearchAndExecute||caller==Clazz_superCall||caller==null){
2011 if(index<0){
2012 break;
2013 }
2014 noLooping=true;
2015 superCaller=Clazz._callingStackTraces[index].caller;
2016 nativeClass=Clazz._callingStackTraces[index].owner;
2017 index--;
2018 }else{
2019 superCaller=caller;
2020 if(superCaller.claxxOwner!=null){
2021 nativeClass=superCaller.claxxOwner;
2022 }else if(superCaller.exClazz!=null){
2023 nativeClass=superCaller.exClazz;
2024 }
2025 }
2026 var st=new StackTraceElement(
2027 ((nativeClass!=null&&nativeClass.__CLASS_NAME__.length!=0)?
2028 nativeClass.__CLASS_NAME__:"anonymous"),
2029 ((superCaller.exName==null)?"anonymous":superCaller.exName)
2030 +" ("+Clazz_getParamsType(superCaller.arguments)+")",
2031 null,-1);
2032 st.nativeClazz=nativeClass;
2033 this.stackTrace[this.stackTrace.length]=st;
2034 for(var i=0;i<callerList.length;i++){
2035 if(callerList[i]==superCaller){
2036
2037 var st=new StackTraceElement("lost","missing",null,-3);
2038 st.nativeClazz=null;
2039 this.stackTrace[this.stackTrace.length]=st;
2040 noLooping=false;
2041
2042 }
2043 }
2044 if(superCaller!=null){
2045 callerList[callerList.length]=superCaller;
2046 }
2047 caller=superCaller.arguments.callee.caller;
2048 }
2049 Clazz._initializingException=false;
2050 return this;
2051 });
2052 Clazz_defineMethod(c$,"setStackTrace",
2053 function(stackTrace){
2054 var defensiveCopy=stackTrace.clone();
2055 for(var i=0;i<defensiveCopy.length;i++)if(defensiveCopy[i]==null)throw new NullPointerException("stackTrace["+i+"]");
2056
2057 this.stackTrace=defensiveCopy;
2058 },"~A");
2059
2060 c$=Clazz_decorateAsClass(function(){
2061 this.declaringClass=null;
2062 this.methodName=null;
2063 this.fileName=null;
2064 this.lineNumber=0;
2065 Clazz_instantialize(this,arguments);
2066 },java.lang,"StackTraceElement",null,java.io.Serializable);
2067 Clazz_makeConstructor(c$,
2068 function(cls,method,file,line){
2069 if(cls==null||method==null){
2070 throw new NullPointerException();
2071 }this.declaringClass=cls;
2072 this.methodName=method;
2073 this.fileName=file;
2074 this.lineNumber=line;
2075 },"~S,~S,~S,~N");
2076 Clazz_overrideMethod(c$,"equals",
2077 function(obj){
2078 if(!(Clazz_instanceOf(obj,StackTraceElement))){
2079 return false;
2080 }var castObj=obj;
2081 if((this.methodName==null)||(castObj.methodName==null)){
2082 return false;
2083 }if(!this.getMethodName().equals(castObj.getMethodName())){
2084 return false;
2085 }if(!this.getClassName().equals(castObj.getClassName())){
2086 return false;
2087 }var localFileName=this.getFileName();
2088 if(localFileName==null){
2089 if(castObj.getFileName()!=null){
2090 return false;
2091 }}else{
2092 if(!localFileName.equals(castObj.getFileName())){
2093 return false;
2094 }}if(this.getLineNumber()!=castObj.getLineNumber()){
2095 return false;
2096 }return true;
2097 },"~O");
2098 Clazz_defineMethod(c$,"getClassName",
2099 function(){
2100 return(this.declaringClass==null)?"<unknown class>":this.declaringClass;
2101 });
2102 Clazz_defineMethod(c$,"getFileName",
2103 function(){
2104 return this.fileName;
2105 });
2106 Clazz_defineMethod(c$,"getLineNumber",
2107 function(){
2108 return this.lineNumber;
2109 });
2110 Clazz_defineMethod(c$,"getMethodName",
2111 function(){
2112 return(this.methodName==null)?"<unknown method>":this.methodName;
2113 });
2114 Clazz_overrideMethod(c$,"hashCode",
2115 function(){
2116 if(this.methodName==null){
2117 return 0;
2118 }return this.methodName.hashCode()^this.declaringClass.hashCode();
2119 });
2120 Clazz_defineMethod(c$,"isNativeMethod",
2121 function(){
2122 return this.lineNumber==-2;
2123 });
2124 Clazz_overrideMethod(c$,"toString",
2125 function(){
2126 var buf=new StringBuilder(80);
2127 buf.append(this.getClassName());
2128 buf.append('.');
2129 buf.append(this.getMethodName());
2130 if(this.isNativeMethod()){
2131 buf.append("(Native Method)");
2132 }else{
2133 var fName=this.getFileName();
2134 if(fName==null){
2135 buf.append("(Unknown Source)");
2136 }else{
2137 var lineNum=this.getLineNumber();
2138 buf.append('(');
2139 buf.append(fName);
2140 if(lineNum>=0){
2141 buf.append(':');
2142 buf.append(lineNum);
2143 }buf.append(')');
2144 }}return buf.toString();
2145 });
2146 TypeError.prototype.getMessage || (TypeError.prototype.getMessage = function(){ return (this.message || this.toString()) + (this.getStackTrace ? this.getStackTrace() : Clazz_getStackTrace())});
2147 c$=Clazz_declareType(java.lang,"Error",Throwable);
2148
2149 c$=Clazz_declareType(java.lang,"LinkageError",Error);
2150
2151 c$=Clazz_declareType(java.lang,"IncompatibleClassChangeError",LinkageError);
2152
2153 c$=Clazz_declareType(java.lang,"AbstractMethodError",IncompatibleClassChangeError);
2154
2155 c$=Clazz_declareType(java.lang,"AssertionError",Error);
2156 Clazz_makeConstructor(c$,
2157 function(detailMessage){
2158 Clazz_superConstructor(this,AssertionError,[String.valueOf(detailMessage),(Clazz_instanceOf(detailMessage,Throwable)?detailMessage:null)]);
2159 },"~O");
2160 Clazz_makeConstructor(c$,
2161 function(detailMessage){
2162 this.construct("" + detailMessage);
2163 },"~B");
2164 Clazz_makeConstructor(c$,
2165 function(detailMessage){
2166 this.construct("" + detailMessage);
2167 },"~N");
2168
2169 c$=Clazz_declareType(java.lang,"ClassCircularityError",LinkageError);
2170
2171 c$=Clazz_declareType(java.lang,"ClassFormatError",LinkageError);
2172
2173 c$=Clazz_decorateAsClass(function(){
2174 this.exception=null;
2175 Clazz_instantialize(this,arguments);
2176 },java.lang,"ExceptionInInitializerError",LinkageError);
2177 Clazz_makeConstructor(c$,
2178 function(){
2179 Clazz_superConstructor(this,ExceptionInInitializerError);
2180 this.initCause(null);
2181 });
2182 Clazz_makeConstructor(c$,
2183 function(detailMessage){
2184 Clazz_superConstructor(this,ExceptionInInitializerError,[detailMessage]);
2185 this.initCause(null);
2186 },"~S");
2187 Clazz_makeConstructor(c$,
2188 function(exception){
2189 Clazz_superConstructor(this,ExceptionInInitializerError);
2190 this.exception=exception;
2191 this.initCause(exception);
2192 },"Throwable");
2193 Clazz_defineMethod(c$,"getException",
2194 function(){
2195 return this.exception;
2196 });
2197 Clazz_overrideMethod(c$,"getCause",
2198 function(){
2199 return this.exception;
2200 });
2201
2202 c$=Clazz_declareType(java.lang,"IllegalAccessError",IncompatibleClassChangeError);
2203
2204 c$=Clazz_declareType(java.lang,"InstantiationError",IncompatibleClassChangeError);
2205
2206 c$=Clazz_declareType(java.lang,"VirtualMachineError",Error);
2207
2208 c$=Clazz_declareType(java.lang,"InternalError",VirtualMachineError);
2209
2210 c$=Clazz_declareType(java.lang,"NoClassDefFoundError",LinkageError);
2211
2212 c$=Clazz_declareType(java.lang,"NoSuchFieldError",IncompatibleClassChangeError);
2213
2214 c$=Clazz_declareType(java.lang,"NoSuchMethodError",IncompatibleClassChangeError);
2215
2216 c$=Clazz_declareType(java.lang,"OutOfMemoryError",VirtualMachineError);
2217
2218 c$=Clazz_declareType(java.lang,"StackOverflowError",VirtualMachineError);
2219
2220 c$=Clazz_declareType(java.lang,"UnknownError",VirtualMachineError);
2221
2222 c$=Clazz_declareType(java.lang,"UnsatisfiedLinkError",LinkageError);
2223
2224 c$=Clazz_declareType(java.lang,"UnsupportedClassVersionError",ClassFormatError);
2225
2226 c$=Clazz_declareType(java.lang,"VerifyError",LinkageError);
2227
2228 c$=Clazz_declareType(java.lang,"ThreadDeath",Error);
2229 Clazz_makeConstructor(c$,
2230 function(){
2231 Clazz_superConstructor(this,ThreadDeath,[]);
2232 });
2233
2234 c$=Clazz_declareType(java.lang,"Exception",Throwable);
2235
2236 c$=Clazz_declareType(java.lang,"RuntimeException",Exception);
2237
2238 c$=Clazz_declareType(java.lang,"ArithmeticException",RuntimeException);
2239
2240 c$=Clazz_declareType(java.lang,"IndexOutOfBoundsException",RuntimeException);
2241
2242 c$=Clazz_declareType(java.lang,"ArrayIndexOutOfBoundsException",IndexOutOfBoundsException);
2243 Clazz_makeConstructor(c$,
2244 function(index){
2245 Clazz_superConstructor(this,ArrayIndexOutOfBoundsException,["Array index out of range: "+index]);
2246 },"~N");
2247
2248 c$=Clazz_declareType(java.lang,"ArrayStoreException",RuntimeException);
2249
2250 c$=Clazz_declareType(java.lang,"ClassCastException",RuntimeException);
2251
2252 c$=Clazz_decorateAsClass(function(){
2253 this.ex=null;
2254 Clazz_instantialize(this,arguments);
2255 },java.lang,"ClassNotFoundException",Exception);
2256 Clazz_makeConstructor(c$,
2257 function(){
2258 Clazz_superConstructor(this,ClassNotFoundException,[Clazz_castNullAs("Throwable")]);
2259 });
2260 Clazz_makeConstructor(c$,
2261 function(detailMessage){
2262 Clazz_superConstructor(this,ClassNotFoundException,[detailMessage,null]);
2263 },"~S");
2264 Clazz_makeConstructor(c$,
2265 function(detailMessage,exception){
2266 Clazz_superConstructor(this,ClassNotFoundException,[detailMessage]);
2267 this.ex=exception;
2268 },"~S,Throwable");
2269 Clazz_defineMethod(c$,"getException",
2270 function(){
2271 return this.ex;
2272 });
2273 Clazz_overrideMethod(c$,"getCause",
2274 function(){
2275 return this.ex;
2276 });
2277
2278 c$=Clazz_declareType(java.lang,"CloneNotSupportedException",Exception);
2279
2280 c$=Clazz_declareType(java.lang,"IllegalAccessException",Exception);
2281
2282 c$=Clazz_declareType(java.lang,"IllegalArgumentException",RuntimeException);
2283 Clazz_makeConstructor(c$,
2284 function(cause){
2285 Clazz_superConstructor(this,IllegalArgumentException,[(cause==null?null:cause.toString()),cause]);
2286 },"Throwable");
2287
2288 c$=Clazz_declareType(java.lang,"IllegalMonitorStateException",RuntimeException);
2289
2290 c$=Clazz_declareType(java.lang,"IllegalStateException",RuntimeException);
2291 Clazz_makeConstructor(c$,
2292 function(cause){
2293 Clazz_superConstructor(this,IllegalStateException,[(cause==null?null:cause.toString()),cause]);
2294 },"Throwable");
2295
2296 c$=Clazz_declareType(java.lang,"IllegalThreadStateException",IllegalArgumentException);
2297
2298 c$=Clazz_declareType(java.lang,"InstantiationException",Exception);
2299
2300 c$=Clazz_declareType(java.lang,"InterruptedException",Exception);
2301
2302 c$=Clazz_declareType(java.lang,"NegativeArraySizeException",RuntimeException);
2303
2304 c$=Clazz_declareType(java.lang,"NoSuchFieldException",Exception);
2305
2306 c$=Clazz_declareType(java.lang,"NoSuchMethodException",Exception);
2307
2308 c$=Clazz_declareType(java.lang,"NullPointerException",RuntimeException);
2309
2310 c$=Clazz_declareType(java.lang,"NumberFormatException",IllegalArgumentException);
2311
2312 c$=Clazz_declareType(java.lang,"SecurityException",RuntimeException);
2313 Clazz_makeConstructor(c$,
2314 function(cause){
2315 Clazz_superConstructor(this,SecurityException,[(cause==null?null:cause.toString()),cause]);
2316 },"Throwable");
2317
2318 c$=Clazz_declareType(java.lang,"StringIndexOutOfBoundsException",IndexOutOfBoundsException);
2319 Clazz_makeConstructor(c$,
2320 function(index){
2321 Clazz_superConstructor(this,StringIndexOutOfBoundsException,["String index out of range: "+index]);
2322 },"~N");
2323
2324 c$=Clazz_declareType(java.lang,"UnsupportedOperationException",RuntimeException);
2325 Clazz_makeConstructor(c$,
2326 function(){
2327 Clazz_superConstructor(this,UnsupportedOperationException,[]);
2328 });
2329 Clazz_makeConstructor(c$,
2330 function(cause){
2331 Clazz_superConstructor(this,UnsupportedOperationException,[(cause==null?null:cause.toString()),cause]);
2332 },"Throwable");
2333
2334 c$=Clazz_decorateAsClass(function(){
2335 this.target=null;
2336 Clazz_instantialize(this,arguments);
2337 },java.lang.reflect,"InvocationTargetException",Exception);
2338 Clazz_makeConstructor(c$,
2339 function(){
2340 Clazz_superConstructor(this,java.lang.reflect.InvocationTargetException,[Clazz_castNullAs("Throwable")]);
2341 });
2342 Clazz_makeConstructor(c$,
2343 function(exception){
2344 Clazz_superConstructor(this,java.lang.reflect.InvocationTargetException,[null,exception]);
2345 this.target=exception;
2346 },"Throwable");
2347 Clazz_makeConstructor(c$,
2348 function(exception,detailMessage){
2349 Clazz_superConstructor(this,java.lang.reflect.InvocationTargetException,[detailMessage,exception]);
2350 this.target=exception;
2351 },"Throwable,~S");
2352 Clazz_defineMethod(c$,"getTargetException",
2353 function(){
2354 return this.target;
2355 });
2356 Clazz_overrideMethod(c$,"getCause",
2357 function(){
2358 return this.target;
2359 });
2360
2361 c$=Clazz_decorateAsClass(function(){
2362 this.undeclaredThrowable=null;
2363 Clazz_instantialize(this,arguments);
2364 },java.lang.reflect,"UndeclaredThrowableException",RuntimeException);
2365 Clazz_makeConstructor(c$,
2366 function(exception){
2367 Clazz_superConstructor(this,java.lang.reflect.UndeclaredThrowableException);
2368 this.undeclaredThrowable=exception;
2369 this.initCause(exception);
2370 },"Throwable");
2371 Clazz_makeConstructor(c$,
2372 function(exception,detailMessage){
2373 Clazz_superConstructor(this,java.lang.reflect.UndeclaredThrowableException,[detailMessage]);
2374 this.undeclaredThrowable=exception;
2375 this.initCause(exception);
2376 },"Throwable,~S");
2377 Clazz_defineMethod(c$,"getUndeclaredThrowable",
2378 function(){
2379 return this.undeclaredThrowable;
2380 });
2381 Clazz_overrideMethod(c$,"getCause",
2382 function(){
2383 return this.undeclaredThrowable;
2384 });
2385
2386 c$=Clazz_declareType(java.io,"IOException",Exception);
2387
2388
2389 c$=Clazz_declareType(java.io,"CharConversionException",java.io.IOException);
2390
2391 c$=Clazz_declareType(java.io,"EOFException",java.io.IOException);
2392
2393 c$=Clazz_declareType(java.io,"FileNotFoundException",java.io.IOException);
2394
2395 c$=Clazz_decorateAsClass(function(){
2396 this.bytesTransferred=0;
2397 Clazz_instantialize(this,arguments);
2398 },java.io,"InterruptedIOException",java.io.IOException);
2399
2400 c$=Clazz_declareType(java.io,"ObjectStreamException",java.io.IOException);
2401
2402 c$=Clazz_decorateAsClass(function(){
2403 this.classname=null;
2404 Clazz_instantialize(this,arguments);
2405 },java.io,"InvalidClassException",java.io.ObjectStreamException);
2406 Clazz_makeConstructor(c$,
2407 function(className,detailMessage){
2408 Clazz_superConstructor(this,java.io.InvalidClassException,[detailMessage]);
2409 this.classname=className;
2410 },"~S,~S");
2411 Clazz_defineMethod(c$,"getMessage",
2412 function(){
2413 var msg=Clazz_superCall(this,java.io.InvalidClassException,"getMessage",[]);
2414 if(this.classname!=null){
2415 msg=this.classname+';' + ' '+msg;
2416 }return msg;
2417 });
2418
2419 c$=Clazz_declareType(java.io,"InvalidObjectException",java.io.ObjectStreamException);
2420
2421 c$=Clazz_declareType(java.io,"NotActiveException",java.io.ObjectStreamException);
2422
2423 c$=Clazz_declareType(java.io,"NotSerializableException",java.io.ObjectStreamException);
2424
2425 c$=Clazz_decorateAsClass(function(){
2426 this.eof=false;
2427 this.length=0;
2428 Clazz_instantialize(this,arguments);
2429 },java.io,"OptionalDataException",java.io.ObjectStreamException);
2430
2431 c$=Clazz_declareType(java.io,"StreamCorruptedException",java.io.ObjectStreamException);
2432
2433 c$=Clazz_declareType(java.io,"SyncFailedException",java.io.IOException);
2434
2435 c$=Clazz_declareType(java.io,"UnsupportedEncodingException",java.io.IOException);
2436
2437 c$=Clazz_declareType(java.io,"UTFDataFormatException",java.io.IOException);
2438
2439 c$=Clazz_decorateAsClass(function(){
2440 this.detail=null;
2441 Clazz_instantialize(this,arguments);
2442 },java.io,"WriteAbortedException",java.io.ObjectStreamException);
2443 Clazz_makeConstructor(c$,
2444 function(detailMessage,rootCause){
2445 Clazz_superConstructor(this,java.io.WriteAbortedException,[detailMessage]);
2446 this.detail=rootCause;
2447 this.initCause(rootCause);
2448 },"~S,Exception");
2449 Clazz_defineMethod(c$,"getMessage",
2450 function(){
2451 var msg=Clazz_superCall(this,java.io.WriteAbortedException,"getMessage",[]);
2452 return (this.detail ? msg + "; "+this.detail.toString() : msg);
2453 });
2454 Clazz_overrideMethod(c$,"getCause",
2455 function(){
2456 return this.detail;
2457 });
2458
2459 c$=Clazz_declareType(javautil,"ConcurrentModificationException",RuntimeException);
2460 Clazz_makeConstructor(c$,
2461 function(){
2462 Clazz_superConstructor(this,javautil.ConcurrentModificationException,[]);
2463 });
2464
2465 c$=Clazz_declareType(javautil,"EmptyStackException",RuntimeException);
2466
2467 c$=Clazz_decorateAsClass(function(){
2468 this.className=null;
2469 this.key=null;
2470 Clazz_instantialize(this,arguments);
2471 },javautil,"MissingResourceException",RuntimeException);
2472 Clazz_makeConstructor(c$,
2473 function(detailMessage,className,resourceName){
2474 Clazz_superConstructor(this,javautil.MissingResourceException,[detailMessage]);
2475 this.className=className;
2476 this.key=resourceName;
2477 },"~S,~S,~S");
2478 Clazz_defineMethod(c$,"getClassName",
2479 function(){
2480 return this.className;
2481 });
2482 Clazz_defineMethod(c$,"getKey",
2483 function(){
2484 return this.key;
2485 });
2486
2487 c$=Clazz_declareType(javautil,"NoSuchElementException",RuntimeException);
2488
2489 c$=Clazz_declareType(javautil,"TooManyListenersException",Exception);
2490
2491 c$=Clazz_declareType(java.lang,"Void");
2492 Clazz_defineStatics(c$,
2493 "TYPE",null);
2494 {
2495 java.lang.Void.TYPE=java.lang.Void;
2496 }Clazz_declareInterface(java.lang.reflect,"GenericDeclaration");
2497 Clazz_declareInterface(java.lang.reflect,"AnnotatedElement");
2498
2499 c$=Clazz_declareType(java.lang.reflect,"AccessibleObject",null,java.lang.reflect.AnnotatedElement);
2500 Clazz_makeConstructor(c$,
2501 function(){
2502 });
2503 Clazz_defineMethod(c$,"isAccessible",
2504 function(){
2505 return false;
2506 });
2507 c$.setAccessible=Clazz_defineMethod(c$,"setAccessible",
2508 function(objects,flag){
2509 return;
2510 },"~A,~B");
2511 Clazz_defineMethod(c$,"setAccessible",
2512 function(flag){
2513 return;
2514 },"~B");
2515 Clazz_overrideMethod(c$,"isAnnotationPresent",
2516 function(annotationType){
2517 return false;
2518 },"Class");
2519 Clazz_overrideMethod(c$,"getDeclaredAnnotations",
2520 function(){
2521 return new Array(0);
2522 });
2523 Clazz_overrideMethod(c$,"getAnnotations",
2524 function(){
2525 return new Array(0);
2526 });
2527 Clazz_overrideMethod(c$,"getAnnotation",
2528 function(annotationType){
2529 return null;
2530 },"Class");
2531 c$.marshallArguments=Clazz_defineMethod(c$,"marshallArguments",
2532 function(parameterTypes,args){
2533 return null;
2534 },"~A,~A");
2535 Clazz_defineMethod(c$,"invokeV",
2536 function(receiver,args){
2537 return;
2538 },"~O,~A");
2539 Clazz_defineMethod(c$,"invokeL",
2540 function(receiver,args){
2541 return null;
2542 },"~O,~A");
2543 Clazz_defineMethod(c$,"invokeI",
2544 function(receiver,args){
2545 return 0;
2546 },"~O,~A");
2547 Clazz_defineMethod(c$,"invokeJ",
2548 function(receiver,args){
2549 return 0;
2550 },"~O,~A");
2551 Clazz_defineMethod(c$,"invokeF",
2552 function(receiver,args){
2553 return 0.0;
2554 },"~O,~A");
2555 Clazz_defineMethod(c$,"invokeD",
2556 function(receiver,args){
2557 return 0.0;
2558 },"~O,~A");
2559 c$.emptyArgs=c$.prototype.emptyArgs=new Array(0);
2560 Clazz_declareInterface(java.lang.reflect,"InvocationHandler");
2561 c$=Clazz_declareInterface(java.lang.reflect,"Member");
2562 Clazz_defineStatics(c$,
2563 "PUBLIC",0,
2564 "DECLARED",1);
2565
2566 c$=Clazz_declareType(java.lang.reflect,"Modifier");
2567 Clazz_makeConstructor(c$,
2568 function(){
2569 });
2570 c$.isAbstract=Clazz_defineMethod(c$,"isAbstract",
2571 function(modifiers){
2572 return((modifiers&1024)!=0);
2573 },"~N");
2574 c$.isFinal=Clazz_defineMethod(c$,"isFinal",
2575 function(modifiers){
2576 return((modifiers&16)!=0);
2577 },"~N");
2578 c$.isInterface=Clazz_defineMethod(c$,"isInterface",
2579 function(modifiers){
2580 return((modifiers&512)!=0);
2581 },"~N");
2582 c$.isNative=Clazz_defineMethod(c$,"isNative",
2583 function(modifiers){
2584 return((modifiers&256)!=0);
2585 },"~N");
2586 c$.isPrivate=Clazz_defineMethod(c$,"isPrivate",
2587 function(modifiers){
2588 return((modifiers&2)!=0);
2589 },"~N");
2590 c$.isProtected=Clazz_defineMethod(c$,"isProtected",
2591 function(modifiers){
2592 return((modifiers&4)!=0);
2593 },"~N");
2594 c$.isPublic=Clazz_defineMethod(c$,"isPublic",
2595 function(modifiers){
2596 return((modifiers&1)!=0);
2597 },"~N");
2598 c$.isStatic=Clazz_defineMethod(c$,"isStatic",
2599 function(modifiers){
2600 return((modifiers&8)!=0);
2601 },"~N");
2602 c$.isStrict=Clazz_defineMethod(c$,"isStrict",
2603 function(modifiers){
2604 return((modifiers&2048)!=0);
2605 },"~N");
2606 c$.isSynchronized=Clazz_defineMethod(c$,"isSynchronized",
2607 function(modifiers){
2608 return((modifiers&32)!=0);
2609 },"~N");
2610 c$.isTransient=Clazz_defineMethod(c$,"isTransient",
2611 function(modifiers){
2612 return((modifiers&128)!=0);
2613 },"~N");
2614 c$.isVolatile=Clazz_defineMethod(c$,"isVolatile",
2615 function(modifiers){
2616 return((modifiers&64)!=0);
2617 },"~N");
2618 c$.toString=Clazz_defineMethod(c$,"toString",
2619 function(modifiers){
2620 var sb=new Array(0);
2621 if(java.lang.reflect.Modifier.isPublic(modifiers))sb[sb.length]="public";
2622 if(java.lang.reflect.Modifier.isProtected(modifiers))sb[sb.length]="protected";
2623 if(java.lang.reflect.Modifier.isPrivate(modifiers))sb[sb.length]="private";
2624 if(java.lang.reflect.Modifier.isAbstract(modifiers))sb[sb.length]="abstract";
2625 if(java.lang.reflect.Modifier.isStatic(modifiers))sb[sb.length]="static";
2626 if(java.lang.reflect.Modifier.isFinal(modifiers))sb[sb.length]="final";
2627 if(java.lang.reflect.Modifier.isTransient(modifiers))sb[sb.length]="transient";
2628 if(java.lang.reflect.Modifier.isVolatile(modifiers))sb[sb.length]="volatile";
2629 if(java.lang.reflect.Modifier.isSynchronized(modifiers))sb[sb.length]="synchronized";
2630 if(java.lang.reflect.Modifier.isNative(modifiers))sb[sb.length]="native";
2631 if(java.lang.reflect.Modifier.isStrict(modifiers))sb[sb.length]="strictfp";
2632 if(java.lang.reflect.Modifier.isInterface(modifiers))sb[sb.length]="interface";
2633 if(sb.length>0){
2634 return sb.join(" ");
2635 }return"";
2636 },"~N");
2637 Clazz_defineStatics(c$,
2638 "PUBLIC",0x1,
2639 "PRIVATE",0x2,
2640 "PROTECTED",0x4,
2641 "STATIC",0x8,
2642 "FINAL",0x10,
2643 "SYNCHRONIZED",0x20,
2644 "VOLATILE",0x40,
2645 "TRANSIENT",0x80,
2646 "NATIVE",0x100,
2647 "INTERFACE",0x200,
2648 "ABSTRACT",0x400,
2649 "STRICT",0x800,
2650 "BRIDGE",0x40,
2651 "VARARGS",0x80,
2652 "SYNTHETIC",0x1000,
2653 "ANNOTATION",0x2000,
2654 "ENUM",0x4000);
2655
2656 c$=Clazz_decorateAsClass(function(){
2657 this.clazz=null;
2658 this.parameterTypes=null;
2659 this.exceptionTypes=null;
2660 this.modifiers=0;
2661 Clazz_instantialize(this,arguments);
2662 },java.lang.reflect,"Constructor",java.lang.reflect.AccessibleObject,[java.lang.reflect.GenericDeclaration,java.lang.reflect.Member]);
2663 Clazz_makeConstructor(c$,
2664 function(declaringClass,parameterTypes,checkedExceptions,modifiers){
2665 Clazz_superConstructor(this,java.lang.reflect.Constructor,[]);
2666 this.clazz=declaringClass;
2667 this.parameterTypes=parameterTypes;
2668 this.exceptionTypes=checkedExceptions;
2669 this.modifiers=modifiers;
2670 },"Class,~A,~A,~N");
2671 Clazz_overrideMethod(c$,"getTypeParameters",
2672 function(){
2673 return null;
2674 });
2675 Clazz_defineMethod(c$,"toGenericString",
2676 function(){
2677 return null;
2678 });
2679 Clazz_defineMethod(c$,"getGenericParameterTypes",
2680 function(){
2681 return null;
2682 });
2683 Clazz_defineMethod(c$,"getGenericExceptionTypes",
2684 function(){
2685 return null;
2686 });
2687 Clazz_defineMethod(c$,"getParameterAnnotations",
2688 function(){
2689 return null;
2690 });
2691 Clazz_defineMethod(c$,"isVarArgs",
2692 function(){
2693 return false;
2694 });
2695 Clazz_overrideMethod(c$,"isSynthetic",
2696 function(){
2697 return false;
2698 });
2699 Clazz_overrideMethod(c$,"equals",
2700 function(object){
2701 if(object!=null&&Clazz_instanceOf(object,java.lang.reflect.Constructor)){
2702 var other=object;
2703 if(this.getDeclaringClass()===other.getDeclaringClass()){
2704 var params1=this.parameterTypes;
2705 var params2=other.parameterTypes;
2706 if(params1.length==params2.length){
2707 for(var i=0;i<params1.length;i++){
2708 if(params1[i]!==params2[i])return false;
2709 }
2710 return true;
2711 }}}return false;
2712 },"~O");
2713 Clazz_overrideMethod(c$,"getDeclaringClass",
2714 function(){
2715 return this.clazz;
2716 });
2717 Clazz_defineMethod(c$,"getExceptionTypes",
2718 function(){
2719 return this.exceptionTypes;
2720 });
2721 Clazz_overrideMethod(c$,"getModifiers",
2722 function(){
2723 return this.modifiers;
2724 });
2725 Clazz_overrideMethod(c$,"getName",
2726 function(){
2727 return this.getDeclaringClass().getName();
2728 });
2729 Clazz_defineMethod(c$,"getParameterTypes",
2730 function(){
2731 return this.parameterTypes;
2732 });
2733 Clazz_overrideMethod(c$,"hashCode",
2734 function(){
2735 return this.getDeclaringClass().getName().hashCode();
2736 });
2737 Clazz_defineMethod(c$,"newInstance",
2738 function(args){
2739 var instance=new this.clazz(Clazz_inheritArgs);
2740 Clazz_instantialize(instance,args);
2741 return instance;
2742 },"~A");
2743 Clazz_overrideMethod(c$,"toString",
2744 function(){
2745 return null;
2746 });
2747
2748 c$=Clazz_declareType(java.lang.reflect,"Field",java.lang.reflect.AccessibleObject,java.lang.reflect.Member);
2749 Clazz_overrideMethod(c$,"isSynthetic",
2750 function(){
2751 return false;
2752 });
2753 Clazz_defineMethod(c$,"toGenericString",
2754 function(){
2755 return null;
2756 });
2757 Clazz_defineMethod(c$,"isEnumConstant",
2758 function(){
2759 return false;
2760 });
2761 Clazz_defineMethod(c$,"getGenericType",
2762 function(){
2763 return null;
2764 });
2765 Clazz_overrideMethod(c$,"equals",
2766 function(object){
2767 return false;
2768 },"~O");
2769 Clazz_overrideMethod(c$,"getDeclaringClass",
2770 function(){
2771 return null;
2772 });
2773 Clazz_overrideMethod(c$,"getName",
2774 function(){
2775 return null;
2776 });
2777 Clazz_defineMethod(c$,"getType",
2778 function(){
2779 return null;
2780 });
2781 Clazz_overrideMethod(c$,"hashCode",
2782 function(){
2783 return 0;
2784 });
2785 Clazz_overrideMethod(c$,"toString",
2786 function(){
2787 return null;
2788 });
2789
2790 c$=Clazz_decorateAsClass(function(){
2791 this.clazz=null;
2792 this.name=null;
2793 this.returnType=null;
2794 this.parameterTypes=null;
2795 this.exceptionTypes=null;
2796 this.modifiers=0;
2797 Clazz_instantialize(this,arguments);
2798 },java.lang.reflect,"Method",java.lang.reflect.AccessibleObject,[java.lang.reflect.GenericDeclaration,java.lang.reflect.Member]);
2799 Clazz_makeConstructor(c$,
2800 function(declaringClass,name,parameterTypes,returnType,checkedExceptions,modifiers){
2801 Clazz_superConstructor(this,java.lang.reflect.Method,[]);
2802 this.clazz=declaringClass;
2803 this.name=name;
2804 this.parameterTypes=parameterTypes;
2805 this.returnType=returnType;
2806 this.exceptionTypes=checkedExceptions;
2807 this.modifiers=modifiers;
2808 },"Class,~S,~A,Class,~A,~N");
2809 Clazz_overrideMethod(c$,"getTypeParameters",
2810 function(){
2811 return null;
2812 });
2813 Clazz_defineMethod(c$,"toGenericString",
2814 function(){
2815 return null;
2816 });
2817 Clazz_defineMethod(c$,"getGenericParameterTypes",
2818 function(){
2819 return null;
2820 });
2821 Clazz_defineMethod(c$,"getGenericExceptionTypes",
2822 function(){
2823 return null;
2824 });
2825 Clazz_defineMethod(c$,"getGenericReturnType",
2826 function(){
2827 return null;
2828 });
2829 Clazz_defineMethod(c$,"getParameterAnnotations",
2830 function(){
2831 return null;
2832 });
2833 Clazz_defineMethod(c$,"isVarArgs",
2834 function(){
2835 return false;
2836 });
2837 Clazz_defineMethod(c$,"isBridge",
2838 function(){
2839 return false;
2840 });
2841 Clazz_overrideMethod(c$,"isSynthetic",
2842 function(){
2843 return false;
2844 });
2845 Clazz_defineMethod(c$,"getDefaultValue",
2846 function(){
2847 return null;
2848 });
2849 Clazz_overrideMethod(c$,"equals",
2850 function(object){
2851 if(object!=null&&Clazz_instanceOf(object,java.lang.reflect.Method)){
2852 var other=object;
2853 if((this.getDeclaringClass()===other.getDeclaringClass())&&(this.getName()===other.getName())){
2854 var params1=this.parameterTypes;
2855 var params2=other.parameterTypes;
2856 if(params1.length==params2.length){
2857 for(var i=0;i<params1.length;i++){
2858 if(params1[i]!==params2[i])return false;
2859 }
2860 return true;
2861 }}}return false;
2862 },"~O");
2863 Clazz_overrideMethod(c$,"getDeclaringClass",
2864 function(){
2865 return this.clazz;
2866 });
2867 Clazz_defineMethod(c$,"getExceptionTypes",
2868 function(){
2869 return this.exceptionTypes;
2870 });
2871 Clazz_overrideMethod(c$,"getModifiers",
2872 function(){
2873 return this.modifiers;
2874 });
2875 Clazz_overrideMethod(c$,"getName",
2876 function(){
2877 return this.name;
2878 });
2879 Clazz_defineMethod(c$,"getParameterTypes",
2880 function(){
2881 return this.parameterTypes; 
2882 });
2883 Clazz_defineMethod(c$,"getReturnType",
2884 function(){
2885 return this.returnType;
2886 });
2887 Clazz_overrideMethod(c$,"hashCode",
2888 function(){
2889 return this.getDeclaringClass().getName().hashCode()^this.getName().hashCode();
2890 });
2891 Clazz_defineMethod(c$,"invoke",
2892 function(receiver,args){
2893 var m=this.clazz.prototype[this.getName()];
2894 if(m==null){
2895 m=this.clazz[this.getName()];
2896 }
2897 if(m!=null){
2898 m.apply(receiver,args);
2899 }else{
2900
2901 }
2902 },"~O,~A");
2903 Clazz_overrideMethod(c$,"toString",
2904 function(){
2905 return null;
2906 });
2907
2908 })(Clazz);
2909 Clazz_declarePackage ("JU");
2910 c$ = Clazz_declareType (JU, "DebugJS");
2911 c$._ = Clazz_defineMethod (c$, "_", 
2912 function (msg) {
2913 {
2914 if (Clazz._debugging) {
2915 debugger;
2916 }
2917 }}, "~S");
2918 Clazz_declarePackage ("java.awt");
2919 Clazz_load (["java.awt.Stroke"], "java.awt.BasicStroke", ["java.lang.Float", "$.IllegalArgumentException", "java.util.Arrays"], function () {
2920 c$ = Clazz_decorateAsClass (function () {
2921 this.width = 0;
2922 this.join = 0;
2923 this.cap = 0;
2924 this.miterlimit = 0;
2925 this.dash = null;
2926 this.dash_phase = 0;
2927 Clazz_instantialize (this, arguments);
2928 }, java.awt, "BasicStroke", null, java.awt.Stroke);
2929 Clazz_makeConstructor (c$, 
2930 function (width, cap, join, miterlimit, dash, dash_phase) {
2931 if (width < 0.0) {
2932 throw  new IllegalArgumentException ("negative width");
2933 }if (cap != 0 && cap != 1 && cap != 2) {
2934 throw  new IllegalArgumentException ("illegal end cap value");
2935 }if (join == 0) {
2936 if (miterlimit < 1.0) {
2937 throw  new IllegalArgumentException ("miter limit < 1");
2938 }} else if (join != 1 && join != 2) {
2939 throw  new IllegalArgumentException ("illegal line join value");
2940 }if (dash != null) {
2941 if (dash_phase < 0.0) {
2942 throw  new IllegalArgumentException ("negative dash phase");
2943 }var allzero = true;
2944 for (var i = 0; i < dash.length; i++) {
2945 var d = dash[i];
2946 if (d > 0.0) {
2947 allzero = false;
2948 } else if (d < 0.0) {
2949 throw  new IllegalArgumentException ("negative dash length");
2950 }}
2951 if (allzero) {
2952 throw  new IllegalArgumentException ("dash lengths all zero");
2953 }}this.width = width;
2954 this.cap = cap;
2955 this.join = join;
2956 this.miterlimit = miterlimit;
2957 if (dash != null) {
2958 this.dash = dash.clone ();
2959 }this.dash_phase = dash_phase;
2960 }, "~N,~N,~N,~N,~A,~N");
2961 Clazz_makeConstructor (c$, 
2962 function (width, cap, join, miterlimit) {
2963 this.construct (width, cap, join, miterlimit, null, 0.0);
2964 }, "~N,~N,~N,~N");
2965 Clazz_makeConstructor (c$, 
2966 function (width, cap, join) {
2967 this.construct (width, cap, join, 10.0, null, 0.0);
2968 }, "~N,~N,~N");
2969 Clazz_makeConstructor (c$, 
2970 function (width) {
2971 this.construct (width, 2, 0, 10.0, null, 0.0);
2972 }, "~N");
2973 Clazz_makeConstructor (c$, 
2974 function () {
2975 this.construct (1.0, 2, 0, 10.0, null, 0.0);
2976 });
2977 Clazz_overrideMethod (c$, "createStrokedShape", 
2978 function (s) {
2979 return s;
2980 }, "java.awt.Shape");
2981 Clazz_defineMethod (c$, "getLineWidth", 
2982 function () {
2983 return this.width;
2984 });
2985 Clazz_defineMethod (c$, "getEndCap", 
2986 function () {
2987 return this.cap;
2988 });
2989 Clazz_defineMethod (c$, "getLineJoin", 
2990 function () {
2991 return this.join;
2992 });
2993 Clazz_defineMethod (c$, "getMiterLimit", 
2994 function () {
2995 return this.miterlimit;
2996 });
2997 Clazz_defineMethod (c$, "getDashArray", 
2998 function () {
2999 if (this.dash == null) {
3000 return null;
3001 }return this.dash.clone ();
3002 });
3003 Clazz_defineMethod (c$, "getDashPhase", 
3004 function () {
3005 return this.dash_phase;
3006 });
3007 Clazz_overrideMethod (c$, "hashCode", 
3008 function () {
3009 var hash = Float.floatToIntBits (this.width);
3010 hash = hash * 31 + this.join;
3011 hash = hash * 31 + this.cap;
3012 hash = hash * 31 + Float.floatToIntBits (this.miterlimit);
3013 if (this.dash != null) {
3014 hash = hash * 31 + Float.floatToIntBits (this.dash_phase);
3015 for (var i = 0; i < this.dash.length; i++) {
3016 hash = hash * 31 + Float.floatToIntBits (this.dash[i]);
3017 }
3018 }return hash;
3019 });
3020 Clazz_overrideMethod (c$, "equals", 
3021 function (obj) {
3022 if (!(Clazz_instanceOf (obj, java.awt.BasicStroke))) {
3023 return false;
3024 }var bs = obj;
3025 if (this.width != bs.width) {
3026 return false;
3027 }if (this.join != bs.join) {
3028 return false;
3029 }if (this.cap != bs.cap) {
3030 return false;
3031 }if (this.miterlimit != bs.miterlimit) {
3032 return false;
3033 }if (this.dash != null) {
3034 if (this.dash_phase != bs.dash_phase) {
3035 return false;
3036 }if (!java.util.Arrays.equals (this.dash, bs.dash)) {
3037 return false;
3038 }} else if (bs.dash != null) {
3039 return false;
3040 }return true;
3041 }, "~O");
3042 Clazz_defineStatics (c$,
3043 "JOIN_MITER", 0,
3044 "JOIN_ROUND", 1,
3045 "JOIN_BEVEL", 2,
3046 "CAP_BUTT", 0,
3047 "CAP_ROUND", 1,
3048 "CAP_SQUARE", 2);
3049 });
3050 Clazz_declarePackage ("java.awt");
3051 Clazz_declareInterface (java.awt, "Stroke");
3052 Clazz_declarePackage ("java.util");
3053 Clazz_load (["java.util.HashMap"], "java.util.Locale", ["java.lang.InternalError", "$.NullPointerException", "$.StringBuilder"], function () {
3054 c$ = Clazz_decorateAsClass (function () {
3055 this.language = null;
3056 this.country = null;
3057 this.variant = null;
3058 this.hashCodeValue = 0;
3059 Clazz_instantialize (this, arguments);
3060 }, java.util, "Locale", null, [Cloneable, java.io.Serializable]);
3061 Clazz_makeConstructor (c$, 
3062 function (language, country, variant) {
3063 this.language = language.intern ();
3064 this.country = country.intern ();
3065 this.variant = variant.intern ();
3066 }, "~S,~S,~S");
3067 Clazz_makeConstructor (c$, 
3068 function (language, country) {
3069 this.construct (language, country, "");
3070 }, "~S,~S");
3071 Clazz_makeConstructor (c$, 
3072 function (language) {
3073 this.construct (language, "", "");
3074 }, "~S");
3075 Clazz_makeConstructor (c$, 
3076  function (language, country, flag) {
3077 this.language = language;
3078 this.country = country;
3079 this.variant = "";
3080 }, "~S,~S,~B");
3081 c$.createSingleton = Clazz_defineMethod (c$, "createSingleton", 
3082  function (key, language, country) {
3083 var locale =  new java.util.Locale (language, country, false);
3084 java.util.Locale.cache.put (key, locale);
3085 return locale;
3086 }, "~S,~S,~S");
3087 c$.getInstance = Clazz_defineMethod (c$, "getInstance", 
3088 function (language, country, variant) {
3089 if (language == null || country == null || variant == null) {
3090 throw  new NullPointerException ();
3091 }var sb =  new StringBuilder ();
3092 sb.append (language).append ('_').append (country).append ('_').append (variant);
3093 var key = sb.toString ();
3094 var locale = java.util.Locale.cache.get (key);
3095 if (locale == null) {
3096 locale =  new java.util.Locale (language, country, variant);
3097 var l = java.util.Locale.cache.put (key, locale);
3098 if (l != null) {
3099 locale = l;
3100 }}return locale;
3101 }, "~S,~S,~S");
3102 c$.getDefault = Clazz_defineMethod (c$, "getDefault", 
3103 function () {
3104 if (java.util.Locale.defaultLocale == null) {
3105 var language;
3106 var country;
3107 var variant;
3108 language = "en";
3109 country = "";
3110 variant = "";
3111 java.util.Locale.defaultLocale = java.util.Locale.getInstance (language, country, variant);
3112 }return java.util.Locale.defaultLocale;
3113 });
3114 c$.setDefault = Clazz_defineMethod (c$, "setDefault", 
3115 function (newLocale) {
3116 if (newLocale == null) throw  new NullPointerException ("Can't set default locale to NULL");
3117 java.util.Locale.defaultLocale = newLocale;
3118 }, "java.util.Locale");
3119 Clazz_defineMethod (c$, "getLanguage", 
3120 function () {
3121 return this.language;
3122 });
3123 Clazz_defineMethod (c$, "getCountry", 
3124 function () {
3125 return this.country;
3126 });
3127 Clazz_defineMethod (c$, "getVariant", 
3128 function () {
3129 return this.variant;
3130 });
3131 Clazz_overrideMethod (c$, "toString", 
3132 function () {
3133 var l = this.language.length != 0;
3134 var c = this.country.length != 0;
3135 var v = this.variant.length != 0;
3136 var result =  new StringBuilder (this.language);
3137 if (c || (l && v)) {
3138 result.append ('_').append (this.country);
3139 }if (v && (l || c)) {
3140 result.append ('_').append (this.variant);
3141 }return result.toString ();
3142 });
3143 Clazz_defineMethod (c$, "getDisplayLanguage", 
3144 function () {
3145 return this.getDisplayLanguage (java.util.Locale.getDefault ());
3146 });
3147 Clazz_defineMethod (c$, "getDisplayLanguage", 
3148 function (inLocale) {
3149 return this.getDisplayString (this.language, inLocale, 0);
3150 }, "java.util.Locale");
3151 Clazz_defineMethod (c$, "getDisplayCountry", 
3152 function () {
3153 return this.getDisplayCountry (java.util.Locale.getDefault ());
3154 });
3155 Clazz_defineMethod (c$, "getDisplayCountry", 
3156 function (inLocale) {
3157 return this.getDisplayString (this.country, inLocale, 1);
3158 }, "java.util.Locale");
3159 Clazz_defineMethod (c$, "getDisplayString", 
3160  function (code, inLocale, type) {
3161 if (code.length == 0) {
3162 return "";
3163 }if (inLocale == null) {
3164 throw  new NullPointerException ();
3165 }return inLocale.toString ();
3166 }, "~S,java.util.Locale,~N");
3167 Clazz_defineMethod (c$, "getDisplayVariant", 
3168 function () {
3169 return this.getDisplayVariant (java.util.Locale.getDefault ());
3170 });
3171 Clazz_defineMethod (c$, "getDisplayVariant", 
3172 function (inLocale) {
3173 if (this.variant.length == 0) return "";
3174 return this.variant;
3175 }, "java.util.Locale");
3176 Clazz_defineMethod (c$, "getDisplayName", 
3177 function () {
3178 return this.getDisplayName (java.util.Locale.getDefault ());
3179 });
3180 Clazz_defineMethod (c$, "getDisplayName", 
3181 function (inLocale) {
3182 return inLocale.toString ();
3183 }, "java.util.Locale");
3184 Clazz_defineMethod (c$, "clone", 
3185 function () {
3186 try {
3187 var that = Clazz_superCall (this, java.util.Locale, "clone", []);
3188 return that;
3189 } catch (e) {
3190 if (Clazz_exceptionOf (e, CloneNotSupportedException)) {
3191 throw  new InternalError ();
3192 } else {
3193 throw e;
3194 }
3195 }
3196 });
3197 Clazz_overrideMethod (c$, "hashCode", 
3198 function () {
3199 var hc = this.hashCodeValue;
3200 if (hc == 0) {
3201 hc = (this.language.hashCode () << 8) ^ this.country.hashCode () ^ (this.variant.hashCode () << 4);
3202 this.hashCodeValue = hc;
3203 }return hc;
3204 });
3205 Clazz_overrideMethod (c$, "equals", 
3206 function (obj) {
3207 if (this === obj) return true;
3208 if (!(Clazz_instanceOf (obj, java.util.Locale))) return false;
3209 var other = obj;
3210 return this.language === other.language && this.country === other.country && this.variant === other.variant;
3211 }, "~O");
3212 c$.cache = c$.prototype.cache =  new java.util.HashMap (32);
3213 c$.ENGLISH = c$.prototype.ENGLISH = java.util.Locale.createSingleton ("en__", "en", "");
3214 c$.ROOT = c$.prototype.ROOT = java.util.Locale.createSingleton ("__", "", "");
3215 Clazz_defineStatics (c$,
3216 "DISPLAY_LANGUAGE", 0,
3217 "DISPLAY_COUNTRY", 1,
3218 "defaultLocale", null);
3219 });
3220 Clazz_declarePackage ("java.util");
3221 Clazz_load (["java.util.Arrays", "$.Collections", "$.HashMap"], "java.util.ResourceBundle", ["java.io.BufferedInputStream", "$.ByteArrayInputStream", "java.lang.ClassNotFoundException", "$.IllegalArgumentException", "$.InternalError", "$.InterruptedException", "$.NullPointerException", "$.StringBuilder", "$.Thread", "java.util.ArrayList", "$.HashSet", "java.util.Locale", "$.MissingResourceException", "swingjs.JSToolkit", "swingjs.api.Interface"], function () {
3222 c$ = Clazz_decorateAsClass (function () {
3223 this.parent = null;
3224 this.locale = null;
3225 this.expired = false;
3226 this.$keySet = null;
3227 Clazz_instantialize (this, arguments);
3228 }, java.util, "ResourceBundle");
3229 Clazz_makeConstructor (c$, 
3230 function () {
3231 });
3232 Clazz_defineMethod (c$, "getString", 
3233 function (key) {
3234 return this.getObject (key);
3235 }, "~S");
3236 Clazz_defineMethod (c$, "getStringArray", 
3237 function (key) {
3238 return this.getObject (key);
3239 }, "~S");
3240 Clazz_defineMethod (c$, "getObject", 
3241 function (key) {
3242 var obj = this.handleGetObject (key);
3243 if (obj == null) {
3244 if (this.parent != null) {
3245 obj = this.parent.getObject (key);
3246 }if (obj == null) throw  new java.util.MissingResourceException ("Can't find resource for bundle " + this.getClass ().getName () + ", key " + key, this.getClass ().getName (), key);
3247 }return obj;
3248 }, "~S");
3249 Clazz_defineMethod (c$, "getLocale", 
3250 function () {
3251 return this.locale;
3252 });
3253 Clazz_defineMethod (c$, "setParent", 
3254 function (parent) {
3255 this.parent = parent;
3256 }, "java.util.ResourceBundle");
3257 c$.getBundle = Clazz_defineMethod (c$, "getBundle", 
3258 function (baseName, targetLocale, loader, control) {
3259 var n = 4;
3260 {
3261 n = arguments.length;
3262 }switch (n) {
3263 case 2:
3264 if ((Clazz_instanceOf (targetLocale, java.util.ResourceBundle.Control))) {
3265 control = targetLocale;
3266 targetLocale = null;
3267 }break;
3268 case 3:
3269 if ((Clazz_instanceOf (loader, java.util.ResourceBundle.Control))) {
3270 control = loader;
3271 loader = null;
3272 }break;
3273 }
3274 if (targetLocale == null) targetLocale = java.util.Locale.getDefault ();
3275 if (control == null) control = java.util.ResourceBundle.Control.getControl (java.util.ResourceBundle.Control.FORMAT_PROPERTIES);
3276 return java.util.ResourceBundle.getBundleImpl (baseName, targetLocale, loader, control);
3277 }, "~S,~O,~O,java.util.ResourceBundle.Control");
3278 c$.getBundleImpl = Clazz_defineMethod (c$, "getBundleImpl", 
3279  function (baseName, locale, loader, control) {
3280 if (control == null) {
3281 throw  new NullPointerException ("ResourceBundle locale or control is null");
3282 }var cacheKey =  new java.util.ResourceBundle.CacheKey (baseName, locale, loader);
3283 var bundle = null;
3284 var bundleRef = java.util.ResourceBundle.cacheList.get (cacheKey);
3285 if (bundleRef != null) {
3286 bundle = bundleRef;
3287 bundleRef = null;
3288 }if (java.util.ResourceBundle.isValidBundle (bundle)) {
3289 return bundle;
3290 }var formats = control.getFormats (baseName);
3291 var baseBundle = null;
3292 for (var targetLocale = locale; targetLocale != null; targetLocale = control.getFallbackLocale (baseName, targetLocale)) {
3293 var candidateLocales = control.getCandidateLocales (baseName, targetLocale);
3294 bundle = java.util.ResourceBundle.findBundle (cacheKey, candidateLocales, formats, 0, control, baseBundle);
3295 if (java.util.ResourceBundle.isValidBundle (bundle)) {
3296 var isBaseBundle = java.util.Locale.ROOT.equals (bundle.locale);
3297 if (!isBaseBundle || bundle.locale.equals (locale) || (candidateLocales.size () == 1 && bundle.locale.equals (candidateLocales.get (0)))) {
3298 break;
3299 }if (isBaseBundle && baseBundle == null) {
3300 baseBundle = bundle;
3301 }}}
3302 if (bundle == null) {
3303 if (baseBundle == null) {
3304 java.util.ResourceBundle.throwMissingResourceException (baseName, locale, cacheKey.getCause ());
3305 }bundle = baseBundle;
3306 }return bundle;
3307 }, "~S,java.util.Locale,~O,java.util.ResourceBundle.Control");
3308 c$.findBundle = Clazz_defineMethod (c$, "findBundle", 
3309  function (cacheKey, candidateLocales, formats, index, control, baseBundle) {
3310 var targetLocale = candidateLocales.get (index);
3311 var parent = null;
3312 if (index != candidateLocales.size () - 1) {
3313 parent = java.util.ResourceBundle.findBundle (cacheKey, candidateLocales, formats, index + 1, control, baseBundle);
3314 } else if (baseBundle != null && java.util.Locale.ROOT.equals (targetLocale)) {
3315 return baseBundle;
3316 }var expiredBundle = false;
3317 cacheKey.setLocale (targetLocale);
3318 var bundle = java.util.ResourceBundle.findBundleInCache (cacheKey, control);
3319 if (java.util.ResourceBundle.isValidBundle (bundle)) {
3320 expiredBundle = bundle.expired;
3321 if (!expiredBundle) {
3322 if (bundle.parent === parent) {
3323 return bundle;
3324 }var bundleRef = java.util.ResourceBundle.cacheList.get (cacheKey);
3325 if (bundleRef != null && bundleRef === bundle) {
3326 java.util.ResourceBundle.cacheList.remove (cacheKey);
3327 }}}if (bundle !== java.util.ResourceBundle.NONEXISTENT_BUNDLE) {
3328 var constKey = cacheKey.clone ();
3329 try {
3330 try {
3331 bundle = java.util.ResourceBundle.loadBundle (cacheKey, formats, control, expiredBundle);
3332 if (bundle != null) {
3333 if (bundle.parent == null) {
3334 bundle.setParent (parent);
3335 }bundle.locale = targetLocale;
3336 bundle = java.util.ResourceBundle.putBundleInCache (cacheKey, bundle, control);
3337 return bundle;
3338 }java.util.ResourceBundle.putBundleInCache (cacheKey, java.util.ResourceBundle.NONEXISTENT_BUNDLE, control);
3339 } finally {
3340 }
3341 } finally {
3342 if (Clazz_instanceOf (constKey.getCause (), InterruptedException)) {
3343 Thread.currentThread ().interrupt ();
3344 }}
3345 }return parent;
3346 }, "java.util.ResourceBundle.CacheKey,java.util.List,java.util.List,~N,java.util.ResourceBundle.Control,java.util.ResourceBundle");
3347 c$.loadBundle = Clazz_defineMethod (c$, "loadBundle", 
3348  function (cacheKey, formats, control, reload) {
3349 var targetLocale = cacheKey.getLocale ();
3350 var bundle = null;
3351 var size = formats.size ();
3352 for (var i = 0; i < size; i++) {
3353 var format = formats.get (i);
3354 try {
3355 bundle = control.newBundle (cacheKey.getName (), targetLocale, format, null, reload);
3356 } catch (e$$) {
3357 if (Clazz_exceptionOf (e$$, LinkageError)) {
3358 var error = e$$;
3359 {
3360 cacheKey.setCause (error);
3361 }
3362 } else if (Clazz_exceptionOf (e$$, Exception)) {
3363 var cause = e$$;
3364 {
3365 cacheKey.setCause (cause);
3366 }
3367 } else {
3368 throw e$$;
3369 }
3370 }
3371 if (bundle != null) {
3372 cacheKey.setFormat (format);
3373 bundle.locale = targetLocale;
3374 bundle.expired = false;
3375 break;
3376 }}
3377 return bundle;
3378 }, "java.util.ResourceBundle.CacheKey,java.util.List,java.util.ResourceBundle.Control,~B");
3379 c$.isValidBundle = Clazz_defineMethod (c$, "isValidBundle", 
3380  function (bundle) {
3381 return bundle != null && bundle !== java.util.ResourceBundle.NONEXISTENT_BUNDLE;
3382 }, "java.util.ResourceBundle");
3383 c$.throwMissingResourceException = Clazz_defineMethod (c$, "throwMissingResourceException", 
3384  function (baseName, locale, cause) {
3385 if (Clazz_instanceOf (cause, java.util.MissingResourceException)) {
3386 cause = null;
3387 }throw  new java.util.MissingResourceException ("Can't find bundle for base name " + baseName + ", locale " + locale, baseName + "_" + locale, "", cause);
3388 }, "~S,java.util.Locale,Throwable");
3389 c$.findBundleInCache = Clazz_defineMethod (c$, "findBundleInCache", 
3390  function (cacheKey, control) {
3391 var bundleRef = java.util.ResourceBundle.cacheList.get (cacheKey);
3392 if (bundleRef == null) {
3393 return null;
3394 }var bundle = bundleRef;
3395 return bundle;
3396 }, "java.util.ResourceBundle.CacheKey,java.util.ResourceBundle.Control");
3397 c$.putBundleInCache = Clazz_defineMethod (c$, "putBundleInCache", 
3398  function (cacheKey, bundle, control) {
3399 var key = cacheKey.clone ();
3400 java.util.ResourceBundle.cacheList.put (key, bundle);
3401 return bundle;
3402 }, "java.util.ResourceBundle.CacheKey,java.util.ResourceBundle,java.util.ResourceBundle.Control");
3403 c$.clearCache = Clazz_defineMethod (c$, "clearCache", 
3404 function () {
3405 java.util.ResourceBundle.cacheList.clear ();
3406 });
3407 Clazz_defineMethod (c$, "containsKey", 
3408 function (key) {
3409 if (key == null) {
3410 throw  new NullPointerException ();
3411 }for (var rb = this; rb != null; rb = rb.parent) {
3412 if (rb.handleKeySet ().contains (key)) {
3413 return true;
3414 }}
3415 return false;
3416 }, "~S");
3417 Clazz_defineMethod (c$, "keySet", 
3418 function () {
3419 var keys =  new java.util.HashSet ();
3420 for (var rb = this; rb != null; rb = rb.parent) {
3421 keys.addAll (rb.handleKeySet ());
3422 }
3423 return keys;
3424 });
3425 Clazz_defineMethod (c$, "handleKeySet", 
3426 function () {
3427 if (this.$keySet == null) {
3428 {
3429 if (this.$keySet == null) {
3430 var keys =  new java.util.HashSet ();
3431 var enumKeys = this.getKeys ();
3432 while (enumKeys.hasMoreElements ()) {
3433 var key = enumKeys.nextElement ();
3434 if (this.handleGetObject (key) != null) {
3435 keys.add (key);
3436 }}
3437 this.$keySet = keys;
3438 }}}return this.$keySet;
3439 });
3440 c$.$ResourceBundle$1$ = function () {
3441 Clazz_pu$h(self.c$);
3442 c$ = Clazz_declareAnonymous (java.util, "ResourceBundle$1", java.util.ResourceBundle);
3443 Clazz_defineMethod (c$, "getKeys", 
3444 function () {
3445 return null;
3446 });
3447 Clazz_defineMethod (c$, "handleGetObject", 
3448 function (key) {
3449 return null;
3450 }, "~S");
3451 Clazz_overrideMethod (c$, "toString", 
3452 function () {
3453 return "NONEXISTENT_BUNDLE";
3454 });
3455 c$ = Clazz_p0p ();
3456 };
3457 Clazz_pu$h(self.c$);
3458 c$ = Clazz_decorateAsClass (function () {
3459 this.name = null;
3460 this.locale = null;
3461 this.format = null;
3462 this.cause = null;
3463 this.hashCodeCache = 0;
3464 Clazz_instantialize (this, arguments);
3465 }, java.util.ResourceBundle, "CacheKey", null, Cloneable);
3466 Clazz_makeConstructor (c$, 
3467 function (a, b, c) {
3468 this.name = a;
3469 this.locale = b;
3470 if (this.name != null) this.calculateHashCode ();
3471 }, "~S,java.util.Locale,~O");
3472 Clazz_defineMethod (c$, "getName", 
3473 function () {
3474 return this.name;
3475 });
3476 Clazz_defineMethod (c$, "getLocale", 
3477 function () {
3478 return this.locale;
3479 });
3480 Clazz_defineMethod (c$, "setLocale", 
3481 function (a) {
3482 if (!this.locale.equals (a)) {
3483 this.locale = a;
3484 this.calculateHashCode ();
3485 }return this;
3486 }, "java.util.Locale");
3487 Clazz_overrideMethod (c$, "equals", 
3488 function (a) {
3489 if (this === a) {
3490 return true;
3491 }try {
3492 var b = a;
3493 if (this.hashCodeCache != b.hashCodeCache) {
3494 return false;
3495 }if (!this.name.equals (b.name)) {
3496 return false;
3497 }if (!this.locale.equals (b.locale)) {
3498 return false;
3499 }return true;
3500 } catch (e$$) {
3501 if (Clazz_exceptionOf (e$$, NullPointerException)) {
3502 var e = e$$;
3503 {
3504 }
3505 } else if (Clazz_exceptionOf (e$$, ClassCastException)) {
3506 var e = e$$;
3507 {
3508 }
3509 } else {
3510 throw e$$;
3511 }
3512 }
3513 return false;
3514 }, "~O");
3515 Clazz_overrideMethod (c$, "hashCode", 
3516 function () {
3517 return this.hashCodeCache;
3518 });
3519 Clazz_defineMethod (c$, "calculateHashCode", 
3520  function () {
3521 this.hashCodeCache = this.name.hashCode () << 3;
3522 this.hashCodeCache ^= this.locale.hashCode ();
3523 });
3524 Clazz_defineMethod (c$, "clone", 
3525 function () {
3526 try {
3527 var a = Clazz_superCall (this, java.util.ResourceBundle.CacheKey, "clone", []);
3528 a.cause = null;
3529 return a;
3530 } catch (e) {
3531 if (Clazz_exceptionOf (e, CloneNotSupportedException)) {
3532 throw  new InternalError ();
3533 } else {
3534 throw e;
3535 }
3536 }
3537 });
3538 Clazz_defineMethod (c$, "setFormat", 
3539 function (a) {
3540 this.format = a;
3541 }, "~S");
3542 Clazz_defineMethod (c$, "setCause", 
3543  function (a) {
3544 if (this.cause == null) {
3545 this.cause = a;
3546 } else {
3547 if (Clazz_instanceOf (this.cause, ClassNotFoundException)) {
3548 this.cause = a;
3549 }}}, "Throwable");
3550 Clazz_defineMethod (c$, "getCause", 
3551  function () {
3552 return this.cause;
3553 });
3554 Clazz_overrideMethod (c$, "toString", 
3555 function () {
3556 var a = this.locale.toString ();
3557 if (a.length == 0) {
3558 if (this.locale.getVariant ().length != 0) {
3559 a = "__" + this.locale.getVariant ();
3560 } else {
3561 a = "\"\"";
3562 }}return "CacheKey[" + this.name + ", lc=" + a + "(format=" + this.format + ")]";
3563 });
3564 c$ = Clazz_p0p ();
3565 Clazz_pu$h(self.c$);
3566 c$ = Clazz_declareType (java.util.ResourceBundle, "Control");
3567 Clazz_makeConstructor (c$, 
3568 function () {
3569 });
3570 c$.getControl = Clazz_defineMethod (c$, "getControl", 
3571 function (a) {
3572 if (a.equals (java.util.ResourceBundle.Control.FORMAT_PROPERTIES)) {
3573 return java.util.ResourceBundle.SingleFormatControl.PROPERTIES_ONLY;
3574 }if (a.equals (java.util.ResourceBundle.Control.FORMAT_CLASS)) {
3575 return java.util.ResourceBundle.SingleFormatControl.CLASS_ONLY;
3576 }if (a.equals (java.util.ResourceBundle.Control.FORMAT_DEFAULT)) {
3577 return java.util.ResourceBundle.Control.INSTANCE;
3578 }throw  new IllegalArgumentException ();
3579 }, "java.util.List");
3580 c$.getNoFallbackControl = Clazz_defineMethod (c$, "getNoFallbackControl", 
3581 function (a) {
3582 if (a.equals (java.util.ResourceBundle.Control.FORMAT_DEFAULT)) {
3583 return java.util.ResourceBundle.NoFallbackControl.NO_FALLBACK;
3584 }if (a.equals (java.util.ResourceBundle.Control.FORMAT_PROPERTIES)) {
3585 return java.util.ResourceBundle.NoFallbackControl.PROPERTIES_ONLY_NO_FALLBACK;
3586 }if (a.equals (java.util.ResourceBundle.Control.FORMAT_CLASS)) {
3587 return java.util.ResourceBundle.NoFallbackControl.CLASS_ONLY_NO_FALLBACK;
3588 }throw  new IllegalArgumentException ();
3589 }, "java.util.List");
3590 Clazz_defineMethod (c$, "getFormats", 
3591 function (a) {
3592 if (a == null) {
3593 throw  new NullPointerException ();
3594 }return java.util.ResourceBundle.Control.FORMAT_DEFAULT;
3595 }, "~S");
3596 Clazz_defineMethod (c$, "getCandidateLocales", 
3597 function (a, b) {
3598 if (a == null) {
3599 throw  new NullPointerException ();
3600 }var c = b.getLanguage ();
3601 var d = b.getCountry ();
3602 var e = b.getVariant ();
3603 var f =  new java.util.ArrayList (4);
3604 if (e.length > 0) {
3605 f.add (b);
3606 }if (d.length > 0) {
3607 f.add ((f.size () == 0) ? b : java.util.Locale.getInstance (c, d, ""));
3608 }if (c.length > 0) {
3609 f.add ((f.size () == 0) ? b : java.util.Locale.getInstance (c, "", ""));
3610 }f.add (java.util.Locale.ROOT);
3611 return f;
3612 }, "~S,java.util.Locale");
3613 Clazz_defineMethod (c$, "getFallbackLocale", 
3614 function (a, b) {
3615 if (a == null) {
3616 throw  new NullPointerException ();
3617 }var c = java.util.Locale.getDefault ();
3618 return b.equals (c) ? null : c;
3619 }, "~S,java.util.Locale");
3620 Clazz_defineMethod (c$, "newBundle", 
3621 function (a, b, c, d, e) {
3622 var f = this.toBundleName (a, b);
3623 var g = null;
3624 if (c.equals ("java.class")) {
3625 g = swingjs.api.Interface.getInstance (f, false);
3626 } else if (c.equals ("java.properties")) {
3627 var h = this.toResourceName0 (f, "properties");
3628 if (h == null) {
3629 return null;
3630 }var i = swingjs.JSToolkit.getJavaResource (h, false);
3631 var j = null;
3632 j = (i == null ? null :  new java.io.BufferedInputStream ( new java.io.ByteArrayInputStream (i.getBytes ())));
3633 if (j != null) {
3634 try {
3635 g = this.newPropertyBundle (j);
3636 } finally {
3637 j.close ();
3638 }
3639 }} else {
3640 throw  new IllegalArgumentException ("unknown format: " + c);
3641 }return g;
3642 }, "~S,java.util.Locale,~S,~O,~B");
3643 Clazz_defineMethod (c$, "newPropertyBundle", 
3644  function (a) {
3645 return (swingjs.api.Interface.getInstance ("java.util.PropertyResourceBundle", false)).setStream (a);
3646 }, "java.io.InputStream");
3647 Clazz_defineMethod (c$, "getTimeToLive", 
3648 function (a, b) {
3649 if (a == null || b == null) {
3650 throw  new NullPointerException ();
3651 }return -2;
3652 }, "~S,java.util.Locale");
3653 Clazz_defineMethod (c$, "toBundleName", 
3654 function (a, b) {
3655 if (b === java.util.Locale.ROOT) {
3656 return a;
3657 }var c = b.getLanguage ();
3658 var d = b.getCountry ();
3659 var e = b.getVariant ();
3660 if (c === "" && d === "" && e === "") {
3661 return a;
3662 }var f =  new StringBuilder (a);
3663 f.append ('_');
3664 if (e !== "") {
3665 f.append (c).append ('_').append (d).append ('_').append (e);
3666 } else if (d !== "") {
3667 f.append (c).append ('_').append (d);
3668 } else {
3669 f.append (c);
3670 }return f.toString ();
3671 }, "~S,java.util.Locale");
3672 Clazz_defineMethod (c$, "toResourceName", 
3673 function (a, b) {
3674 var c =  new StringBuilder (a.length + 1 + b.length);
3675 c.append (a.$replace ('.', '/')).append ('.').append (b);
3676 return c.toString ();
3677 }, "~S,~S");
3678 Clazz_defineMethod (c$, "toResourceName0", 
3679  function (a, b) {
3680 if (a.contains ("://")) {
3681 return null;
3682 } else {
3683 return this.toResourceName (a, b);
3684 }}, "~S,~S");
3685 c$.FORMAT_DEFAULT = c$.prototype.FORMAT_DEFAULT = java.util.Collections.unmodifiableList (java.util.Arrays.asList (["java.class", "java.properties"]));
3686 c$.FORMAT_CLASS = c$.prototype.FORMAT_CLASS = java.util.Collections.unmodifiableList (java.util.Arrays.asList (["java.class"]));
3687 c$.FORMAT_PROPERTIES = c$.prototype.FORMAT_PROPERTIES = java.util.Collections.unmodifiableList (java.util.Arrays.asList (["java.properties"]));
3688 Clazz_defineStatics (c$,
3689 "TTL_DONT_CACHE", -1,
3690 "TTL_NO_EXPIRATION_CONTROL", -2);
3691 c$.INSTANCE = c$.prototype.INSTANCE =  new java.util.ResourceBundle.Control ();
3692 c$ = Clazz_p0p ();
3693 Clazz_pu$h(self.c$);
3694 c$ = Clazz_decorateAsClass (function () {
3695 this.formats = null;
3696 Clazz_instantialize (this, arguments);
3697 }, java.util.ResourceBundle, "SingleFormatControl", java.util.ResourceBundle.Control);
3698 Clazz_makeConstructor (c$, 
3699 function (a) {
3700 Clazz_superConstructor (this, java.util.ResourceBundle.SingleFormatControl, []);
3701 this.formats = a;
3702 }, "java.util.List");
3703 Clazz_overrideMethod (c$, "getFormats", 
3704 function (a) {
3705 if (a == null) {
3706 throw  new NullPointerException ();
3707 }return this.formats;
3708 }, "~S");
3709 c$.PROPERTIES_ONLY = c$.prototype.PROPERTIES_ONLY =  new java.util.ResourceBundle.SingleFormatControl (java.util.ResourceBundle.Control.FORMAT_PROPERTIES);
3710 c$.CLASS_ONLY = c$.prototype.CLASS_ONLY =  new java.util.ResourceBundle.SingleFormatControl (java.util.ResourceBundle.Control.FORMAT_CLASS);
3711 c$ = Clazz_p0p ();
3712 Clazz_pu$h(self.c$);
3713 c$ = Clazz_declareType (java.util.ResourceBundle, "NoFallbackControl", java.util.ResourceBundle.SingleFormatControl);
3714 Clazz_overrideMethod (c$, "getFallbackLocale", 
3715 function (a, b) {
3716 if (a == null || b == null) {
3717 throw  new NullPointerException ();
3718 }return null;
3719 }, "~S,java.util.Locale");
3720 c$.NO_FALLBACK = c$.prototype.NO_FALLBACK =  new java.util.ResourceBundle.NoFallbackControl (java.util.ResourceBundle.Control.FORMAT_DEFAULT);
3721 c$.PROPERTIES_ONLY_NO_FALLBACK = c$.prototype.PROPERTIES_ONLY_NO_FALLBACK =  new java.util.ResourceBundle.NoFallbackControl (java.util.ResourceBundle.Control.FORMAT_PROPERTIES);
3722 c$.CLASS_ONLY_NO_FALLBACK = c$.prototype.CLASS_ONLY_NO_FALLBACK =  new java.util.ResourceBundle.NoFallbackControl (java.util.ResourceBundle.Control.FORMAT_CLASS);
3723 c$ = Clazz_p0p ();
3724 Clazz_defineStatics (c$,
3725 "INITIAL_CACHE_SIZE", 32);
3726 c$.NONEXISTENT_BUNDLE = c$.prototype.NONEXISTENT_BUNDLE = ((Clazz_isClassDefined ("java.util.ResourceBundle$1") ? 0 : java.util.ResourceBundle.$ResourceBundle$1$ ()), Clazz_innerTypeInstance (java.util.ResourceBundle$1, this, null));
3727 c$.cacheList = c$.prototype.cacheList =  new java.util.HashMap (32);
3728 });
3729 Clazz_declarePackage ("JU");
3730 Clazz_load (["javajs.api.GenericLineReader"], "JU.Rdr", ["java.io.BufferedInputStream", "$.BufferedReader", "$.ByteArrayInputStream", "$.InputStreamReader", "$.StringReader", "JU.AU", "$.Base64", "$.Encoding", "$.SB"], function () {
3731 c$ = Clazz_decorateAsClass (function () {
3732 this.reader = null;
3733 Clazz_instantialize (this, arguments);
3734 }, JU, "Rdr", null, javajs.api.GenericLineReader);
3735 Clazz_makeConstructor (c$, 
3736 function (reader) {
3737 this.reader = reader;
3738 }, "java.io.BufferedReader");
3739 Clazz_overrideMethod (c$, "readNextLine", 
3740 function () {
3741 return this.reader.readLine ();
3742 });
3743 c$.readCifData = Clazz_defineMethod (c$, "readCifData", 
3744 function (parser, br) {
3745 return parser.set (null, br).getAllCifData ();
3746 }, "javajs.api.GenericCifDataParser,java.io.BufferedReader");
3747 c$.fixUTF = Clazz_defineMethod (c$, "fixUTF", 
3748 function (bytes) {
3749 var encoding = JU.Rdr.getUTFEncoding (bytes);
3750 if (encoding !== JU.Encoding.NONE) try {
3751 var s =  String.instantialize (bytes, encoding.name ().$replace ('_', '-'));
3752 switch (encoding) {
3753 case JU.Encoding.UTF8:
3754 case JU.Encoding.UTF_16BE:
3755 case JU.Encoding.UTF_16LE:
3756 s = s.substring (1);
3757 break;
3758 default:
3759 break;
3760 }
3761 return s;
3762 } catch (e) {
3763 if (Clazz_exceptionOf (e, java.io.UnsupportedEncodingException)) {
3764 System.out.println (e);
3765 } else {
3766 throw e;
3767 }
3768 }
3769 return  String.instantialize (bytes);
3770 }, "~A");
3771 c$.getUTFEncoding = Clazz_defineMethod (c$, "getUTFEncoding", 
3772  function (bytes) {
3773 if (bytes.length >= 3 && bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) return JU.Encoding.UTF8;
3774 if (bytes.length >= 4 && bytes[0] == 0 && bytes[1] == 0 && bytes[2] == 0xFE && bytes[3] == 0xFF) return JU.Encoding.UTF_32BE;
3775 if (bytes.length >= 4 && bytes[0] == 0xFF && bytes[1] == 0xFE && bytes[2] == 0 && bytes[3] == 0) return JU.Encoding.UTF_32LE;
3776 if (bytes.length >= 2 && bytes[0] == 0xFF && bytes[1] == 0xFE) return JU.Encoding.UTF_16LE;
3777 if (bytes.length >= 2 && bytes[0] == 0xFE && bytes[1] == 0xFF) return JU.Encoding.UTF_16BE;
3778 return JU.Encoding.NONE;
3779 }, "~A");
3780 c$.getUTFEncodingForStream = Clazz_defineMethod (c$, "getUTFEncodingForStream", 
3781  function (is) {
3782 {
3783 is.resetStream();
3784 }var abMagic =  Clazz_newByteArray (4, 0);
3785 abMagic[3] = 1;
3786 try {
3787 is.mark (5);
3788 } catch (e) {
3789 if (Clazz_exceptionOf (e, Exception)) {
3790 return JU.Encoding.NONE;
3791 } else {
3792 throw e;
3793 }
3794 }
3795 is.read (abMagic, 0, 4);
3796 is.reset ();
3797 return JU.Rdr.getUTFEncoding (abMagic);
3798 }, "java.io.BufferedInputStream");
3799 c$.isBase64 = Clazz_defineMethod (c$, "isBase64", 
3800 function (sb) {
3801 return (sb.indexOf (";base64,") == 0);
3802 }, "JU.SB");
3803 c$.isCompoundDocumentS = Clazz_defineMethod (c$, "isCompoundDocumentS", 
3804 function (is) {
3805 return JU.Rdr.isCompoundDocumentB (JU.Rdr.getMagic (is, 8));
3806 }, "java.io.InputStream");
3807 c$.isCompoundDocumentB = Clazz_defineMethod (c$, "isCompoundDocumentB", 
3808 function (bytes) {
3809 return (bytes.length >= 8 && bytes[0] == 0xD0 && bytes[1] == 0xCF && bytes[2] == 0x11 && bytes[3] == 0xE0 && bytes[4] == 0xA1 && bytes[5] == 0xB1 && bytes[6] == 0x1A && bytes[7] == 0xE1);
3810 }, "~A");
3811 c$.isGzipS = Clazz_defineMethod (c$, "isGzipS", 
3812 function (is) {
3813 return JU.Rdr.isGzipB (JU.Rdr.getMagic (is, 2));
3814 }, "java.io.InputStream");
3815 c$.isGzipB = Clazz_defineMethod (c$, "isGzipB", 
3816 function (bytes) {
3817 return (bytes != null && bytes.length >= 2 && bytes[0] == 0x1F && bytes[1] == 0x8B);
3818 }, "~A");
3819 c$.isPickleS = Clazz_defineMethod (c$, "isPickleS", 
3820 function (is) {
3821 return JU.Rdr.isPickleB (JU.Rdr.getMagic (is, 2));
3822 }, "java.io.InputStream");
3823 c$.isPickleB = Clazz_defineMethod (c$, "isPickleB", 
3824 function (bytes) {
3825 return (bytes != null && bytes.length >= 2 && bytes[0] == 0x7D && bytes[1] == 0x71);
3826 }, "~A");
3827 c$.isPngZipStream = Clazz_defineMethod (c$, "isPngZipStream", 
3828 function (is) {
3829 return JU.Rdr.isPngZipB (JU.Rdr.getMagic (is, 55));
3830 }, "java.io.InputStream");
3831 c$.isPngZipB = Clazz_defineMethod (c$, "isPngZipB", 
3832 function (bytes) {
3833 return (bytes[50] == 0 && bytes[51] == 0x50 && bytes[52] == 0x4E && bytes[53] == 0x47 && bytes[54] == 0x4A);
3834 }, "~A");
3835 c$.isZipS = Clazz_defineMethod (c$, "isZipS", 
3836 function (is) {
3837 return JU.Rdr.isZipB (JU.Rdr.getMagic (is, 4));
3838 }, "java.io.InputStream");
3839 c$.isZipB = Clazz_defineMethod (c$, "isZipB", 
3840 function (bytes) {
3841 return (bytes.length >= 4 && bytes[0] == 0x50 && bytes[1] == 0x4B && bytes[2] == 0x03 && bytes[3] == 0x04);
3842 }, "~A");
3843 c$.getMagic = Clazz_defineMethod (c$, "getMagic", 
3844  function (is, n) {
3845 var abMagic =  Clazz_newByteArray (n, 0);
3846 {
3847 is.resetStream();
3848 }try {
3849 is.mark (n + 1);
3850 is.read (abMagic, 0, n);
3851 } catch (e) {
3852 if (Clazz_exceptionOf (e, java.io.IOException)) {
3853 } else {
3854 throw e;
3855 }
3856 }
3857 try {
3858 is.reset ();
3859 } catch (e) {
3860 if (Clazz_exceptionOf (e, java.io.IOException)) {
3861 } else {
3862 throw e;
3863 }
3864 }
3865 return abMagic;
3866 }, "java.io.InputStream,~N");
3867 c$.getBIS = Clazz_defineMethod (c$, "getBIS", 
3868 function (bytes) {
3869 return  new java.io.BufferedInputStream ( new java.io.ByteArrayInputStream (bytes));
3870 }, "~A");
3871 c$.getBR = Clazz_defineMethod (c$, "getBR", 
3872 function (string) {
3873 return  new java.io.BufferedReader ( new java.io.StringReader (string));
3874 }, "~S");
3875 c$.getUnzippedInputStream = Clazz_defineMethod (c$, "getUnzippedInputStream", 
3876 function (jzt, bis) {
3877 while (JU.Rdr.isGzipS (bis)) bis =  new java.io.BufferedInputStream (JU.Rdr.newGZIPInputStream (jzt, bis));
3878
3879 return bis;
3880 }, "javajs.api.GenericZipTools,java.io.BufferedInputStream");
3881 c$.getBytesFromSB = Clazz_defineMethod (c$, "getBytesFromSB", 
3882 function (sb) {
3883 return (JU.Rdr.isBase64 (sb) ? JU.Base64.decodeBase64 (sb.substring (8)) : sb.toBytes (0, -1));
3884 }, "JU.SB");
3885 c$.getStreamAsBytes = Clazz_defineMethod (c$, "getStreamAsBytes", 
3886 function (bis, out) {
3887 var buf =  Clazz_newByteArray (1024, 0);
3888 var bytes = (out == null ?  Clazz_newByteArray (4096, 0) : null);
3889 var len = 0;
3890 var totalLen = 0;
3891 while ((len = bis.read (buf, 0, 1024)) > 0) {
3892 totalLen += len;
3893 if (out == null) {
3894 if (totalLen >= bytes.length) bytes = JU.AU.ensureLengthByte (bytes, totalLen * 2);
3895 System.arraycopy (buf, 0, bytes, totalLen - len, len);
3896 } else {
3897 out.write (buf, 0, len);
3898 }}
3899 bis.close ();
3900 if (out == null) {
3901 return JU.AU.arrayCopyByte (bytes, totalLen);
3902 }return totalLen + " bytes";
3903 }, "java.io.BufferedInputStream,JU.OC");
3904 c$.getBufferedReader = Clazz_defineMethod (c$, "getBufferedReader", 
3905 function (bis, charSet) {
3906 if (JU.Rdr.getUTFEncodingForStream (bis) === JU.Encoding.NONE) return  new java.io.BufferedReader ( new java.io.InputStreamReader (bis, (charSet == null ? "UTF-8" : charSet)));
3907 var bytes = JU.Rdr.getLimitedStreamBytes (bis, -1);
3908 bis.close ();
3909 return JU.Rdr.getBR (charSet == null ? JU.Rdr.fixUTF (bytes) :  String.instantialize (bytes, charSet));
3910 }, "java.io.BufferedInputStream,~S");
3911 c$.getLimitedStreamBytes = Clazz_defineMethod (c$, "getLimitedStreamBytes", 
3912 function (is, n) {
3913 var buflen = (n > 0 && n < 1024 ? n : 1024);
3914 var buf =  Clazz_newByteArray (buflen, 0);
3915 var bytes =  Clazz_newByteArray (n < 0 ? 4096 : n, 0);
3916 var len = 0;
3917 var totalLen = 0;
3918 if (n < 0) n = 2147483647;
3919 while (totalLen < n && (len = is.read (buf, 0, buflen)) > 0) {
3920 totalLen += len;
3921 if (totalLen > bytes.length) bytes = JU.AU.ensureLengthByte (bytes, totalLen * 2);
3922 System.arraycopy (buf, 0, bytes, totalLen - len, len);
3923 if (n != 2147483647 && totalLen + buflen > bytes.length) buflen = bytes.length - totalLen;
3924 }
3925 if (totalLen == bytes.length) return bytes;
3926 buf =  Clazz_newByteArray (totalLen, 0);
3927 System.arraycopy (bytes, 0, buf, 0, totalLen);
3928 return buf;
3929 }, "java.io.InputStream,~N");
3930 c$.StreamToUTF8String = Clazz_defineMethod (c$, "StreamToUTF8String", 
3931 function (bis) {
3932 var data =  new Array (1);
3933 try {
3934 JU.Rdr.readAllAsString (JU.Rdr.getBufferedReader (bis, "UTF-8"), -1, true, data, 0);
3935 } catch (e) {
3936 if (Clazz_exceptionOf (e, java.io.IOException)) {