JAL-1807 includes ?j2sdebug flag and DebugJS._(msg)
[jalviewjs.git] / site / js / SwingJSJavaExt.js
diff --git a/site/js/SwingJSJavaExt.js b/site/js/SwingJSJavaExt.js
new file mode 100644 (file)
index 0000000..dc1937b
--- /dev/null
@@ -0,0 +1,2843 @@
+// SwingJSJavaExt.js\r
\r
+\r
+// This library will be wrapped by an additional anonymous function using ANT in \r
+// build_03_tojs.xml. This task will also modify variable names. References \r
+// to Clazz._ will not be changed, but other Clazz.xxx will be changed to \r
+// (local scope) Clazz_xxx, allowing them to be further compressed using\r
+// Google Closure Compiler in that same ANT task.\r
+\r
+// BH 7/24/2015 7:21:51 AM renamed from JSmolJavaExt.js\r
+// BH 5/31/2015 5:53:04 PM Number.compareTo added\r
+// BH 5/21/2015 5:46:30 PM Number("0xFFFFFFFF") is not -1\r
+// BH 4/23/2015 9:08:59 AM xx.getComponentType() is nonfunctional. Array.newInstance now defines a wrapper for .getClass().getComponentType() that works  \r
+// BH 4/12/2015 1:37:44 PM adding Math.rint = Math.round\r
+// BH 1/16/2015 10:09:38 AM Chrome failure jqGrig due to new String("x").toString() not being a simple string\r
+// BH 8/14/2014 6:49:22 PM Character class efficiencies\r
+// BH 7/24/2014 9:02:18 AM most browsers do not support String.codePointAt()\r
+// BH 7/11/2014 4:17:22 PM fix for Boolean.valueOf("false") not being false \r
+// BH 5/27/2014 6:29:59 AM ensure floats and doubles have decimal point in toString\r
+// BH 4/1/2014 12:23:41 PM Encoding moved to Clazz._Encoding; \r
+// BH 4/1/2014 7:51:46 AM removing java.lang.B00lean\r
+// BH 3/7/2014 9:17:10 AM removing Array.toString; moving that code here from j2sJmol.js\r
+// BH 1/30/2014 9:04:25 AM adding Throwable.getStackTrace() as a STRING\r
+// BH 12/4/2013 9:20:44 PM fix for reassigning Date.prototype.toString()\r
+// BH 12/3/2013 11:43:10 AM bizarre Safari bug in reassigning Boolean (OK, I admit, we shouldn't have done that...) \r
+// BH 12/1/2013 6:50:16 AM evit Number.prototype.toString assignment removed!\r
+// BH 11/30/2013 1:46:31 PM fixing Byte, Short, Long, Integer, Float, Double to reflect proper bounds and error conditions\r
+// BH 11/29/2013 8:58:49 PM removing Boolean.toString(boolean)\r
+// BH 11/4/2013 7:34:26 AM changing "var nativeClazz" to "var nativeClass" to avoid ANT replacement of "nativeClazz." to "nativeClazz_"\r
+// BH 10/19/2013 1:29:27 PM fixed String.$replace()\r
+// BH 10/18/2013 6:09:23 PM fixed (Double|Float).valueOf(NaN).valueOf(), which should return NaN, not throw an error\r
+// BH 10/12/2013 11:18:44 AM fixed bug in Double(String) and Float(String) that was returning typeof "string"\r
+// BH 10/10/2013 2:40:20 PM  added Math.log10   \r
+// BH 7/23/2013 7:24:01 AM fixing Number.shortValue() and Number.byteValue() for negative values\r
+// BH 6/16/2013 1:31:30 PM adding /| in String.replace -- thank you David Koes\r
+// BH 3/13/2013 12:49:23 PM setting Boolean.valueOf() "@" \r
+// BH 3/2/2013 10:46:45 PM removed Double.valueOf(String)\r
+// BH 11/6/2012 8:26:33 PM added instanceof Int32Array in String.instantialize\r
+// BH 10/13/2012 11:38:07 PM corrected Integer.parseInt to allow only +-0123456789; created Integer.parseIntRadix\r
+// BH 11/1/2012 added Short\r
+// BH 9/10/2012 6:27:21 AM added java.net.URL... classes\r
+// BH 1/7/2013 7:40:06 AM added Clazz.dateToString\r
+\r
+;(function(Clazz) {\r
+\r
+// moved here from package.js\r
+// these classes will be created as objects prior to any others\r
+// and are then available immediately\r
+\r
+       Clazz._Loader.registerPackages("java", [ "io", "lang", "lang.reflect", "util" ]);\r
+\r
+  var sJU = "java.util";\r
+\r
+  //var sJU = "JU";  \r
+       //Clazz._Loader.registerPackages (sJU, ["regex", "zip"]);\r
+       //var javautil = JU;\r
+\r
+  var javautil = java.util;\r
+\r
+       Clazz._Loader.ignore([\r
+               "net.sf.j2s.ajax.HttpRequest",\r
+               sJU + ".MapEntry.Type",\r
+               //"java.net.UnknownServiceException",\r
+               "java.lang.Runtime",\r
+               "java.security.AccessController",\r
+               "java.security.PrivilegedExceptionAction",\r
+               "java.io.File",\r
+               "java.io.FileInputStream",\r
+               "java.io.FileWriter",\r
+               "java.io.OutputStreamWriter",\r
+//             sJU + ".Calendar", // bypassed in ModelCollection\r
+//             "java.text.SimpleDateFormat", // not used\r
+//             "java.text.DateFormat", // not used\r
+               sJU + ".concurrent.Executors"\r
+       ])\r
+\r
+Math.rint = Math.round;\r
+\r
+Math.log10||(Math.log10=function(a){return Math.log(a)/2.302585092994046});\r
+\r
+if(Clazz._supportsNativeObject){\r
+       // Number and Array are special -- do not override prototype.toString -- "length - 2" here\r
+       for(var i=0;i<Clazz._extendedObjectMethods.length - 2;i++){\r
+               var p=Clazz._extendedObjectMethods[i];\r
+               Array.prototype[p] = Clazz._O.prototype[p];\r
+               Number.prototype[p] = Clazz._O.prototype[p];\r
+       }\r
+}\r
+\r
+java.lang.Number=Number;\r
+Number.__CLASS_NAME__="Number";\r
+Clazz.implementOf(Number,java.io.Serializable);\r
+Number.equals=Clazz._innerFunctions.equals;\r
+Number.getName=Clazz._innerFunctions.getName;\r
+Number.prototype.compareTo = function(x) { var a = this.value, b = x.value; return (a < b ? -1 : a == b ? 0 : 1) };\r
+\r
+Clazz.defineMethod(Number,"shortValue",\r
+function(){\r
+var x = Math.round(this)&0xffff;\r
+return (this < 0 && x > 0 ? x - 0x10000 : x);\r
+});\r
+\r
+Clazz.defineMethod(Number,"byteValue",\r
+function(){\r
+var x = Math.round(this)&0xff;\r
+return (this < 0 && x > 0 ? x - 0x100 : x);\r
+});\r
+\r
+Clazz.defineMethod(Number,"intValue",\r
+function(){\r
+return Math.round(this)&0xffffffff;\r
+});\r
+\r
+Clazz.defineMethod(Number,"longValue",\r
+function(){\r
+return Math.round(this);\r
+});\r
+\r
+Clazz.defineMethod(Number,"floatValue",\r
+function(){\r
+return this.valueOf();\r
+});\r
+Clazz.defineMethod(Number,"doubleValue",\r
+function(){\r
+return parseFloat(this.valueOf());\r
+});\r
+\r
+Clazz.overrideMethod(Number,"hashCode",\r
+function(){\r
+return this.valueOf();\r
+});\r
+\r
+java.lang.Integer=Integer=function(){\r
+Clazz.instantialize(this,arguments);\r
+};\r
+Clazz.decorateAsType(Integer,"Integer",Number,Comparable,null,true);\r
+Integer.prototype.valueOf=function(){return 0;};\r
+Integer.toString=Integer.prototype.toString=function(){\r
+if(arguments.length!=0){\r
+return""+arguments[0];\r
+} else if(this===Integer){\r
+return"class java.lang.Integer";\r
+}\r
+return""+this.valueOf();\r
+};\r
+\r
+/*\r
+\r
+Clazz.makeConstructor(Integer,\r
+function(){\r
+this.valueOf=function(){\r
+return 0;\r
+};\r
+});\r
+*/\r
+\r
+\r
+Clazz.overrideConstructor(Integer, function(v){\r
+ v == null && (v = 0);\r
+ if (typeof v != "number")\r
+       v = Integer.parseIntRadix(v, 10);\r
+ this.valueOf=function(){return v;};\r
+}); //BH\r
+/*\r
+Clazz.makeConstructor(Integer,\r
+function(s){\r
+var value=Integer.parseInt(s,10);\r
+this.valueOf=function(){\r
+return value;\r
+};\r
+},"String");\r
+*/\r
+Integer.MIN_VALUE=Integer.prototype.MIN_VALUE=-0x80000000;\r
+Integer.MAX_VALUE=Integer.prototype.MAX_VALUE=0x7fffffff;\r
+Integer.TYPE=Integer.prototype.TYPE=Integer;\r
+\r
+\r
+Clazz.defineMethod(Integer,"bitCount",\r
+function(i) {\r
+       i = i - ((i >>> 1) & 0x55555555);\r
+       i = (i & 0x33333333) + ((i >>> 2) & 0x33333333);\r
+       i = (i + (i >>> 4)) & 0x0f0f0f0f;\r
+       i = i + (i >>> 8);\r
+       i = i + (i >>> 16);\r
+       return i & 0x3f;\r
+},"Number");\r
+Integer.bitCount=Integer.prototype.bitCount;\r
+\r
+Clazz.defineMethod(Integer,"numberOfLeadingZeros",\r
+function(i) {\r
+ if (i == 0) return 32;\r
+ var n = 1;\r
+ if (i >>> 16 == 0) { n += 16; i <<= 16; }\r
+ if (i >>> 24 == 0) { n +=  8; i <<=  8; }\r
+ if (i >>> 28 == 0) { n +=  4; i <<=  4; }\r
+ if (i >>> 30 == 0) { n +=  2; i <<=  2; }\r
+ n -= i >>> 31;\r
+ return n;\r
+},"Number");\r
+Integer.numberOfLeadingZeros=Integer.prototype.numberOfLeadingZeros;\r
+\r
+Clazz.defineMethod(Integer,"numberOfTrailingZeros",\r
+function(i) {\r
+       if (i == 0) return 32;\r
+       var n = 31;\r
+       var y = i <<16; if (y != 0) { n = n -16; i = y; }\r
+       y = i << 8; if (y != 0) { n = n - 8; i = y; }\r
+       y = i << 4; if (y != 0) { n = n - 4; i = y; }\r
+       y = i << 2; if (y != 0) { n = n - 2; i = y; }\r
+       return n - ((i << 1) >>> 31);\r
+},"Number");\r
+Integer.numberOfTrailingZeros=Integer.prototype.numberOfTrailingZeros;\r
+\r
+Clazz.defineMethod(Integer,"parseIntRadix",\r
+function(s,radix){\r
+if(s==null){\r
+throw new NumberFormatException("null");\r
+}if(radix<2){\r
+throw new NumberFormatException("radix "+radix+" less than Character.MIN_RADIX");\r
+}if(radix>36){\r
+throw new NumberFormatException("radix "+radix+" greater than Character.MAX_RADIX");\r
+}\r
+if (radix == 10) {\r
+       for (var i = s.length; --i >= 0;) {\r
+               var c = s.charCodeAt(i);\r
+               if (c >= 48 && c <= 57) continue;\r
+               if (i > 0 || c != 43 && c != 45)\r
+                       throw new NumberFormatException("Not a Number : "+s);\r
+\r
+       }\r
+}\r
+var i=parseInt(s,radix);\r
+if(isNaN(i)){\r
+throw new NumberFormatException("Not a Number : "+s);\r
+}\r
+return i;\r
+},"String, Number");\r
+Integer.parseIntRadix=Integer.prototype.parseIntRadix;\r
+\r
+Clazz.defineMethod(Integer,"parseInt",\r
+function(s){\r
+return Integer.parseIntRadix(s,10);\r
+},"String");\r
+Integer.parseInt=Integer.prototype.parseInt;\r
+\r
+/*\r
+Clazz.defineMethod(Integer,"$valueOf",\r
+function(s){\r
+return new Integer(Integer.parseIntRadix(s,10));\r
+},"String");\r
+*/\r
+\r
+Clazz.overrideMethod(Integer,"$valueOf",\r
+function(s){\r
+return new Integer(s);\r
+});\r
+\r
+/*\r
+Clazz.defineMethod(Integer,"$valueOf",\r
+function(s,r){\r
+return new Integer(Integer.parseIntRadix(s,r));\r
+},"String, Number");\r
+*/\r
+\r
+Integer.$valueOf=Integer.prototype.$valueOf;\r
+\r
+\r
+Clazz.overrideMethod(Integer,"equals",\r
+function(s){\r
+if(s==null||!Clazz.instanceOf(s,Integer)){\r
+return false;\r
+}\r
+return s.valueOf()==this.valueOf();\r
+},"Object");\r
+Integer.toHexString=Integer.prototype.toHexString=function(d){\r
+if(d.valueOf)d=d.valueOf();\r
+if (d < 0) {\r
+var b = d & 0xFFFFFF;\r
+var c = ((d>>24)&0xFF);\r
+return c._numberToString(16) + (b = "000000" + b._numberToString(16)).substring(b.length - 6);\r
+}\r
+return d._numberToString(16);};\r
+Integer.toOctalString=Integer.prototype.toOctalString=function(d){if(d.valueOf)d=d.valueOf();return d._numberToString(8);};\r
+Integer.toBinaryString=Integer.prototype.toBinaryString=function(d){if(d.valueOf)d=d.valueOf();return d._numberToString(2);};\r
+\r
+Integer.decodeRaw=Clazz.defineMethod(Integer,"decodeRaw", function(n){\r
+if (n.indexOf(".") >= 0)n = "";\r
+var i = (n.startsWith("-") ? 1 : 0);\r
+n = n.replace(/\#/, "0x").toLowerCase();\r
+var radix=(n.startsWith("0x", i) ? 16 : n.startsWith("0", i) ? 8 : 10);\r
+// The general problem with parseInt is that is not strict -- ParseInt("10whatever") == 10.\r
+// Number is strict, but Number("055") does not work, though ParseInt("055", 8) does.\r
+// need to make sure negative numbers are negative\r
+n = Number(n) & 0xFFFFFFFF;\r
+return (radix == 8 ? parseInt(n, 8) : n);\r
+},"~S");\r
+\r
+Integer.decode=Clazz.defineMethod(Integer,"decode", function(n){\r
+       n = Integer.decodeRaw(n);\r
+       if (isNaN(n) || n < Integer.MIN_VALUE|| n > Integer.MAX_VALUE)\r
+       throw new NumberFormatException("Invalid Integer");\r
+       return new Integer(n);\r
+},"~S");\r
+\r
+Clazz.overrideMethod(Integer,"hashCode",\r
+function(){\r
+return this.valueOf();\r
+});\r
+\r
+// Note that Long is problematic in JavaScript \r
+\r
+java.lang.Long=Long=function(){\r
+Clazz.instantialize(this,arguments);\r
+};\r
+Clazz.decorateAsType(Long,"Long",Number,Comparable,null,true);\r
+Long.prototype.valueOf=function(){return 0;};\r
+Long.toString=Long.prototype.toString=function(){\r
+if(arguments.length!=0){\r
+return""+arguments[0];\r
+}else if(this===Long){\r
+return"class java.lang.Long";\r
+}\r
+return""+this.valueOf();\r
+};\r
+\r
+Clazz.overrideConstructor(Long, function(v){\r
+ v == null && (v = 0);\r
+ v = (typeof v == "number" ? Math.round(v) : Integer.parseIntRadix(v, 10));\r
+this.valueOf=function(){return v;};\r
+});\r
+\r
+//Long.MIN_VALUE=Long.prototype.MIN_VALUE=-0x8000000000000000;\r
+//Long.MAX_VALUE=Long.prototype.MAX_VALUE=0x7fffffffffffffff;\r
+Long.TYPE=Long.prototype.TYPE=Long;\r
+\r
+Clazz.defineMethod(Long,"parseLong",\r
+function(s,radix){\r
+ return Integer.parseInt(s, radix || 10);\r
+});\r
+\r
+Long.parseLong=Long.prototype.parseLong;\r
+\r
+Clazz.overrideMethod(Long,"$valueOf",\r
+function(s){\r
+return new Long(s);\r
+});\r
+/*\r
+Clazz.defineMethod(Long,"$valueOf",\r
+function(s){\r
+return new Long(s);\r
+},"Number");\r
+\r
+Clazz.defineMethod(Long,"$valueOf",\r
+function(s,r){\r
+return new Long(Long.parseLong(s,r));\r
+},"String, Number");\r
+*/\r
+Long.$valueOf=Long.prototype.$valueOf;\r
+Clazz.overrideMethod(Long,"equals",\r
+function(s){\r
+if(s==null||!Clazz.instanceOf(s,Long)){\r
+return false;\r
+}\r
+return s.valueOf()==this.valueOf();\r
+},"Object");\r
+Long.toHexString=Long.prototype.toHexString=function(i){\r
+return i.toString(16);\r
+};\r
+Long.toOctalString=Long.prototype.toOctalString=function(i){\r
+return i.toString(8);\r
+};\r
+Long.toBinaryString=Long.prototype.toBinaryString=function(i){\r
+return i.toString(2);\r
+};\r
+\r
+\r
+Long.decode=Clazz.defineMethod(Long,"decode",\r
+function(n){\r
+       n = Integer.decodeRaw(n);\r
+       if (isNaN(n))\r
+               throw new NumberFormatException("Invalid Long");\r
+       return new Long(n);\r
+},"~S");\r
+\r
+java.lang.Short = Short = function () {\r
+Clazz.instantialize (this, arguments);\r
+};\r
+Clazz.decorateAsType (Short, "Short", Number, Comparable, null, true);\r
+Short.prototype.valueOf = function () { return 0; };\r
+Short.toString = Short.prototype.toString = function () {\r
+       if (arguments.length != 0) {\r
+               return "" + arguments[0];\r
+       } else if (this === Short) {\r
+               return "class java.lang.Short"; // Short.class.toString\r
+       }\r
+       return "" + this.valueOf ();\r
+};\r
+\r
+Clazz.overrideConstructor(Short,\r
+function (v) {\r
+ v == null && (v = 0);\r
+ if (typeof v != "number")\r
+       v = Integer.parseIntRadix(v, 10);\r
+ v = v.shortValue();\r
+ this.valueOf = function () {return v;};\r
+});\r
+\r
+\r
+Short.MIN_VALUE = Short.prototype.MIN_VALUE = -32768;\r
+Short.MAX_VALUE = Short.prototype.MAX_VALUE = 32767;\r
+Short.TYPE = Short.prototype.TYPE = Short;\r
+\r
+Clazz.defineMethod(Short, "parseShortRadix",\r
+function (s, radix) {\r
+return Integer.parseIntRadix(s, radix).shortValue();\r
+}, "String, Number");\r
+Short.parseShortRadix = Short.prototype.parseShortRadix;\r
+\r
+Clazz.defineMethod(Short, "parseShort",\r
+function (s) {\r
+return Short.parseShortRadix (s, 10);\r
+}, "String");\r
+\r
+Short.parseShort = Short.prototype.parseShort;\r
+\r
+/*\r
+Clazz.defineMethod(Short, "$valueOf",\r
+function (s) {\r
+return new Short(Short.parseShort (s, 10));\r
+}, "String");\r
+       */\r
+\r
+Clazz.overrideMethod(Short, "$valueOf",\r
+function (s) {\r
+return new Short(s);\r
+});\r
+\r
+/*\r
+Clazz.defineMethod(Short, "$valueOf",\r
+function (s, r) {\r
+return new Short(Short.parseShort (s, r));\r
+}, "String, Number");\r
+       */\r
+\r
+Short.$valueOf = Short.prototype.$valueOf;\r
+Clazz.overrideMethod(Short, "equals",\r
+function (s) {\r
+if(s == null || !Clazz.instanceOf(s, Short) ){\r
+       return false;\r
+}\r
+return s.valueOf()  == this.valueOf();\r
+}, "Object");\r
+Short.toHexString = Short.prototype.toHexString = function (i) {\r
+       return i.toString (16);\r
+};\r
+Short.toOctalString = Short.prototype.toOctalString = function (i) {\r
+       return i.toString (8);\r
+};\r
+Short.toBinaryString = Short.prototype.toBinaryString = function (i) {\r
+       return i.toString (2);\r
+};\r
+Short.decode = Clazz.defineMethod(Short, "decode",\r
+function(n){\r
+       n = Integer.decodeRaw(n);\r
+       if (isNaN(n) || n < -32768|| n > 32767)\r
+               throw new NumberFormatException("Invalid Short");\r
+       return new Short(n);\r
+}, "~S");\r
+\r
+java.lang.Byte=Byte=function(){\r
+Clazz.instantialize(this,arguments);\r
+};\r
+Clazz.decorateAsType(Byte,"Byte",Number,Comparable,null,true);\r
+Byte.prototype.valueOf=function(){return 0;};\r
+Byte.toString=Byte.prototype.toString=function(){\r
+if(arguments.length!=0){\r
+return""+arguments[0];\r
+}else if(this===Byte){\r
+return"class java.lang.Byte";\r
+}\r
+return""+this.valueOf();\r
+};\r
+Clazz.makeConstructor(Byte,\r
+function(v){\r
+ if (typeof v != "number")\r
+        v = Integer.parseIntRadix(v, 10);\r
+ v = v.byteValue();\r
+this.valueOf=function(){\r
+return v;\r
+};\r
+});\r
+\r
+Byte.serialVersionUID=Byte.prototype.serialVersionUID=-7183698231559129828;\r
+Byte.MIN_VALUE=Byte.prototype.MIN_VALUE=-128;\r
+Byte.MAX_VALUE=Byte.prototype.MAX_VALUE=127;\r
+Byte.SIZE=Byte.prototype.SIZE=8;\r
+Byte.TYPE=Byte.prototype.TYPE=Byte;\r
+\r
+Clazz.defineMethod(Byte,"parseByteRadix",\r
+function(s,radix){\r
+ return Integer.parseIntRadix(s, radix).byteValue();\r
+},"String, Number");\r
+Byte.parseByteRadix=Byte.prototype.parseByteRadix;\r
+\r
+Clazz.defineMethod(Byte,"parseByte",\r
+function(s){\r
+return Byte.parseByte(s,10);\r
+},"String");\r
+\r
+Byte.parseByte=Byte.prototype.parseByte;\r
+\r
+Clazz.overrideMethod(Byte, "$valueOf",\r
+function (s) {\r
+return new Byte(s);\r
+});\r
+\r
+Byte.$valueOf=Byte.prototype.$valueOf;\r
+Clazz.overrideMethod(Byte,"equals",\r
+function(s){\r
+if(s==null||!Clazz.instanceOf(s,Byte)){\r
+return false;\r
+}\r
+return s.valueOf()==this.valueOf();\r
+},"Object");\r
+Byte.toHexString=Byte.prototype.toHexString=function(i){\r
+return i.toString(16);\r
+};\r
+Byte.toOctalString=Byte.prototype.toOctalString=function(i){\r
+return i.toString(8);\r
+};\r
+Byte.toBinaryString=Byte.prototype.toBinaryString=function(i){\r
+return i.toString(2);\r
+};\r
+Byte.decode=Clazz.defineMethod(Byte,"decode",\r
+function(n){\r
+       n = Integer.decodeRaw(n);\r
+       if (isNaN(n) || n < -128|| n > 127)\r
+               throw new NumberFormatException("Invalid Byte");\r
+return new Byte(n);\r
+},"~S");\r
+\r
+Clazz._floatToString = function(f) {\r
+ var s = ""+f\r
+ if (s.indexOf(".") < 0 && s.indexOf("e") < 0)\r
+        s += ".0";\r
+ return s;\r
+}\r
+\r
+java.lang.Float=Float=function(){\r
+Clazz.instantialize(this,arguments);\r
+};\r
+Clazz.decorateAsType(Float,"Float",Number,Comparable,null,true);\r
+Float.prototype.valueOf=function(){return 0;};\r
+Float.toString=Float.prototype.toString=function(){\r
+if(arguments.length!=0){\r
+return Clazz._floatToString(arguments[0]);\r
+}else if(this===Float){\r
+return"class java.lang.Float";\r
+}\r
+return Clazz._floatToString(this.valueOf());\r
+};\r
+\r
+Clazz.overrideConstructor(Float, function(v){\r
+ v == null && (v = 0);\r
+ if (typeof v != "number") \r
+       v = Number(v);\r
+ this.valueOf=function(){return v;}\r
+});\r
+\r
+Float.serialVersionUID=Float.prototype.serialVersionUID=-2671257302660747028;\r
+Float.MIN_VALUE=Float.prototype.MIN_VALUE=3.4028235e+38;\r
+Float.MAX_VALUE=Float.prototype.MAX_VALUE=1.4e-45;\r
+Float.NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY;\r
+Float.POSITIVE_INFINITY=Number.POSITIVE_INFINITY;\r
+Float.NaN=Number.NaN;\r
+Float.TYPE=Float.prototype.TYPE=Float;\r
+\r
+Clazz.defineMethod(Float,"parseFloat",\r
+function(s){\r
+if(s==null){\r
+throw new NumberFormatException("null");\r
+}\r
+if (typeof s == "number")return s;  // important -- typeof NaN is "number" and is OK here\r
+var floatVal=Number(s);\r
+if(isNaN(floatVal)){\r
+throw new NumberFormatException("Not a Number : "+s);\r
+}\r
+return floatVal;\r
+},"String");\r
+Float.parseFloat=Float.prototype.parseFloat;\r
+\r
+Clazz.overrideMethod(Float,"$valueOf",\r
+function(s){\r
+return new Float(s);\r
+});\r
+\r
+Float.$valueOf=Float.prototype.$valueOf;\r
+\r
+Clazz.defineMethod(Float,"isNaN",\r
+function(num){\r
+return isNaN(num);\r
+},"Number");\r
+Float.isNaN=Float.prototype.isNaN;\r
+Clazz.defineMethod(Float,"isInfinite",\r
+function(num){\r
+return!isFinite(num);\r
+},"Number");\r
+Float.isInfinite=Float.prototype.isInfinite;\r
+\r
+Clazz.overrideMethod(Float,"equals",\r
+function(s){\r
+if(s==null||!Clazz.instanceOf(s,Float)){\r
+return false;\r
+}\r
+return s.valueOf()==this.valueOf();\r
+},"Object");\r
+\r
+java.lang.Double=Double=function(){\r
+Clazz.instantialize(this,arguments);\r
+};\r
+Clazz.decorateAsType(Double,"Double",Number,Comparable,null,true);\r
+Double.prototype.valueOf=function(){return 0;};\r
+Double.toString=Double.prototype.toString=function(){\r
+if(arguments.length!=0){\r
+return Clazz._floatToString(arguments[0]);\r
+}else if(this===Double){\r
+return"class java.lang.Double";\r
+}\r
+return Clazz._floatToString(this.valueOf());\r
+};\r
+\r
+Clazz.overrideConstructor(Double, function(v){\r
+ v == null && (v = 0);\r
+ if (typeof v != "number") \r
+       v = Double.parseDouble(v);\r
+ this.valueOf=function(){return v;};\r
+}); // BH\r
+\r
+Double.serialVersionUID=Double.prototype.serialVersionUID=-9172774392245257468;\r
+Double.MIN_VALUE=Double.prototype.MIN_VALUE=4.9e-324;\r
+Double.MAX_VALUE=Double.prototype.MAX_VALUE=1.7976931348623157e+308;\r
+Double.NEGATIVE_INFINITY=Number.NEGATIVE_INFINITY;\r
+Double.POSITIVE_INFINITY=Number.POSITIVE_INFINITY;\r
+Double.NaN=Number.NaN;\r
+Double.TYPE=Double.prototype.TYPE=Double;\r
+\r
+Clazz.defineMethod(Double,"isNaN",\r
+function(num){\r
+return isNaN(num);\r
+},"Number");\r
+Double.isNaN=Double.prototype.isNaN;\r
+Clazz.defineMethod(Double,"isInfinite",\r
+function(num){\r
+return!isFinite(num);\r
+},"Number");\r
+Double.isInfinite=Double.prototype.isInfinite;\r
+\r
+Clazz.defineMethod(Double,"parseDouble",\r
+function(s){\r
+if(s==null){\r
+throw new NumberFormatException("null");\r
+}\r
+if (typeof s == "number")return s;  // important -- typeof NaN is "number" and is OK here\r
+var doubleVal=Number(s);\r
+if(isNaN(doubleVal)){\r
+throw new NumberFormatException("Not a Number : "+s);\r
+}\r
+return doubleVal;\r
+},"String");\r
+Double.parseDouble=Double.prototype.parseDouble;\r
+\r
+/*\r
+Clazz.defineMethod(Double,"$valueOf",\r
+function(s){\r
+return new Double(this.parseDouble(s));\r
+},"String");\r
+*/\r
+\r
+Clazz.defineMethod(Double,"$valueOf",\r
+function(v){\r
+return new Double(v);\r
+},"Number");\r
+\r
+Double.$valueOf=Double.prototype.$valueOf;\r
+\r
+Clazz.overrideMethod(Double,"equals",\r
+function(s){\r
+if(s==null||!Clazz.instanceOf(s,Double)){\r
+return false;\r
+}\r
+return s.valueOf()==this.valueOf();\r
+},"Object");\r
+\r
+\r
+//java.lang.B00lean = Boolean; ?? BH why this?\r
+Boolean = java.lang.Boolean = Boolean || function () {Clazz.instantialize (this, arguments);};\r
+if (Clazz._supportsNativeObject) {\r
+       for (var i = 0; i < Clazz._extendedObjectMethods.length; i++) {\r
+               var p = Clazz._extendedObjectMethods[i];\r
+               Boolean.prototype[p] = Clazz._O.prototype[p];\r
+       }\r
+}\r
+Boolean.__CLASS_NAME__="Boolean";\r
+Clazz.implementOf(Boolean,[java.io.Serializable,java.lang.Comparable]);\r
+Boolean.equals=Clazz._innerFunctions.equals;\r
+Boolean.getName=Clazz._innerFunctions.getName;\r
+Boolean.serialVersionUID=Boolean.prototype.serialVersionUID=-3665804199014368530;\r
+\r
+//Clazz.makeConstructor(Boolean,\r
+//function(value){\r
+//this.valueOf=function(){\r
+//return value;\r
+//};\r
+//},"~B");\r
+\r
+Clazz.overrideConstructor(Boolean,\r
+function(s){\r
+       var b = ((typeof s == "string" ? Boolean.toBoolean(s) : s) ? true : false);\r
+       this.valueOf=function(){return b;};\r
+},"~O");\r
+\r
+Boolean.parseBoolean=Clazz.defineMethod(Boolean,"parseBoolean",\r
+function(s){\r
+return Boolean.toBoolean(s);\r
+},"~S");\r
+Clazz.defineMethod(Boolean,"booleanValue",\r
+function(){\r
+return this.valueOf();\r
+});\r
+Boolean.$valueOf=Clazz.overrideMethod(Boolean,"$valueOf",\r
+function(b){\r
+return((typeof b == "string"? "true".equalsIgnoreCase(b) : b)?Boolean.TRUE:Boolean.FALSE);\r
+});\r
+\r
+/*\r
+Boolean.toString=Clazz.defineMethod(Boolean,"toString",\r
+function(b){\r
+return b?"true":"false";\r
+},"~B");\r
+*/\r
+\r
+Clazz.overrideMethod(Boolean,"toString",\r
+function(){\r
+return this.valueOf()?"true":"false";\r
+});\r
+Clazz.overrideMethod(Boolean,"hashCode",\r
+function(){\r
+return this.valueOf()?1231:1237;\r
+});\r
+Clazz.overrideMethod(Boolean,"equals",\r
+function(obj){\r
+if(Clazz.instanceOf(obj,Boolean)){\r
+return this.booleanValue()==obj.booleanValue();\r
+}return false;\r
+},"~O");\r
+Boolean.getBoolean=Clazz.defineMethod(Boolean,"getBoolean",\r
+function(name){\r
+var result=false;\r
+try{\r
+result=Boolean.toBoolean(System.getProperty(name));\r
+}catch(e){\r
+if(Clazz.instanceOf(e,IllegalArgumentException)){\r
+}else if(Clazz.instanceOf(e,NullPointerException)){\r
+}else{\r
+throw e;\r
+}\r
+}\r
+return result;\r
+},"~S");\r
+Clazz.overrideMethod(Boolean,"compareTo",\r
+function(b){\r
+return(b.value==this.value?0:(this.value?1:-1));\r
+},"Boolean");\r
+Boolean.toBoolean=Clazz.defineMethod(Boolean,"toBoolean",\r
+($fz=function(name){\r
+return((name!=null)&&name.equalsIgnoreCase("true"));\r
+},$fz.isPrivate=true,$fz),"~S");\r
+Boolean.TRUE=Boolean.prototype.TRUE=new Boolean(true);\r
+Boolean.FALSE=Boolean.prototype.FALSE=new Boolean(false);\r
+Boolean.TYPE=Boolean.prototype.TYPE=Boolean;\r
+\r
+\r
+Clazz._Encoding=new Object();\r
+\r
+(function(Encoding) {\r
+\r
+Encoding.UTF8="utf-8";\r
+Encoding.UTF16="utf-16";\r
+Encoding.ASCII="ascii";\r
+\r
+\r
+Encoding.guessEncoding=function(str){\r
+if(str.charCodeAt(0)==0xEF&&str.charCodeAt(1)==0xBB&&str.charCodeAt(2)==0xBF){\r
+return Encoding.UTF8;\r
+}else if(str.charCodeAt(0)==0xFF&&str.charCodeAt(1)==0xFE){\r
+return Encoding.UTF16;\r
+}else{\r
+return Encoding.ASCII;\r
+}\r
+};\r
+\r
+Encoding.readUTF8=function(str){\r
+var encoding=this.guessEncoding(str);\r
+var startIdx=0;\r
+if(encoding==Encoding.UTF8){\r
+startIdx=3;\r
+}else if(encoding==Encoding.UTF16){\r
+startIdx=2;\r
+}\r
+var arrs=new Array();\r
+for(var i=startIdx;i<str.length;i++){\r
+var charCode=str.charCodeAt(i);\r
+if(charCode<0x80){\r
+arrs[arrs.length]=str.charAt(i);\r
+}else if(charCode>0xc0&&charCode<0xe0){\r
+var c1=charCode&0x1f;\r
+i++;\r
+var c2=str.charCodeAt(i)&0x3f;\r
+var c=(c1<<6)+c2;\r
+arrs[arrs.length]=String.fromCharCode(c);\r
+}else if(charCode>=0xe0){\r
+var c1=charCode&0x0f;\r
+i++;\r
+var c2=str.charCodeAt(i)&0x3f;\r
+i++;\r
+var c3=str.charCodeAt(i)&0x3f;\r
+var c=(c1<<12)+(c2<<6)+c3;\r
+arrs[arrs.length]=String.fromCharCode(c);\r
+}\r
+}\r
+return arrs.join('');\r
+};\r
+\r
+Encoding.convert2UTF8=function(str){\r
+var encoding=this.guessEncoding(str);\r
+var startIdx=0;\r
+if(encoding==Encoding.UTF8){\r
+return str;\r
+}else if(encoding==Encoding.UTF16){\r
+startIdx=2;\r
+}\r
+\r
+var offset=0;\r
+var arrs=new Array(offset+str.length-startIdx);\r
+\r
+for(var i=startIdx;i<str.length;i++){\r
+var charCode=str.charCodeAt(i);\r
+if(charCode<0x80){\r
+arrs[offset+i-startIdx]=str.charAt(i);\r
+}else if(charCode<=0x07ff){\r
+var c1=0xc0+((charCode&0x07c0)>>6);\r
+var c2=0x80+(charCode&0x003f);\r
+arrs[offset+i-startIdx]=String.fromCharCode(c1)+String.fromCharCode(c2);\r
+}else{\r
+var c1=0xe0+((charCode&0xf000)>>12);\r
+var c2=0x80+((charCode&0x0fc0)>>6);\r
+var c3=0x80+(charCode&0x003f);\r
+arrs[offset+i-startIdx]=String.fromCharCode(c1)+String.fromCharCode(c2)+String.fromCharCode(c3);\r
+}\r
+}\r
+return arrs.join('');\r
+};\r
+Encoding.base64Chars=new Array(\r
+'A','B','C','D','E','F','G','H',\r
+'I','J','K','L','M','N','O','P',\r
+'Q','R','S','T','U','V','W','X',\r
+'Y','Z','a','b','c','d','e','f',\r
+'g','h','i','j','k','l','m','n',\r
+'o','p','q','r','s','t','u','v',\r
+'w','x','y','z','0','1','2','3',\r
+'4','5','6','7','8','9','+','/'\r
+);\r
+Encoding.encodeBase64=function(str){\r
+if(str==null||str.length==0)return str;\r
+var b64=Encoding.base64Chars;\r
+var length=str.length;\r
+var index=0;\r
+var buf=[];\r
+var c0,c1,c2;\r
+while(index<length){\r
+c0=str.charCodeAt(index++);\r
+buf[buf.length]=b64[c0>>2];\r
+if(index<length){\r
+c1=str.charCodeAt(index++);\r
+buf[buf.length]=b64[((c0<<4)&0x30)|(c1>>4)];\r
+if(index<length){\r
+c2=str.charCodeAt(index++);\r
+buf[buf.length]=b64[((c1<<2)&0x3c)|(c2>>6)];\r
+buf[buf.length]=b64[c2&0x3F];\r
+}else{\r
+buf[buf.length]=b64[((c1<<2)&0x3c)];\r
+buf[buf.length]='=';\r
+}\r
+}else{\r
+buf[buf.length]=b64[(c0<<4)&0x30];\r
+buf[buf.length]='=';\r
+buf[buf.length]='=';\r
+}\r
+}\r
+return buf.join('');\r
+};\r
+Encoding.decodeBase64=function(str){\r
+if(str==null||str.length==0)return str;\r
+var b64=Encoding.base64Chars;\r
+var xb64=Encoding.xBase64Chars;\r
+if(Encoding.xBase64Chars==null){\r
+xb64=new Object();\r
+for(var i=0;i<b64.length;i++){\r
+xb64[b64[i]]=i;\r
+}\r
+Encoding.xBase64Chars=xb64;\r
+}\r
+var length=str.length;\r
+var index=0;\r
+var buf=[];\r
+var c0,c1,c2,c3;\r
+var c=0;\r
+while(index<length&&c++<60000){\r
+c0=xb64[str.charAt(index++)];\r
+c1=xb64[str.charAt(index++)];\r
+c2=xb64[str.charAt(index++)];\r
+c3=xb64[str.charAt(index++)];\r
+buf[buf.length]=String.fromCharCode(((c0<<2)&0xff)|c1>>4);\r
+if(c2!=null){\r
+buf[buf.length]=String.fromCharCode(((c1<<4)&0xff)|c2>>2);\r
+if(c3!=null){\r
+buf[buf.length]=String.fromCharCode(((c2<<6)&0xff)|c3);\r
+}\r
+}\r
+}\r
+return buf.join('');\r
+};\r
+\r
+if(String.prototype.$replace==null){\r
+java.lang.String=String;\r
+if(Clazz._supportsNativeObject){\r
+for(var i=0;i<Clazz._extendedObjectMethods.length;i++){\r
+var p=Clazz._extendedObjectMethods[i];\r
+if("to$tring"==p||"toString"==p||"equals"==p||"hashCode"==p){\r
+continue;\r
+}\r
+String.prototype[p]=Clazz._O.prototype[p];\r
+}\r
+}\r
+\r
+Clazz.implementOf(String,[java.io.Serializable,CharSequence,Comparable]);\r
+\r
+String.getName=Clazz._innerFunctions.getName;\r
+\r
+String.serialVersionUID=String.prototype.serialVersionUID=-6849794470754667710;\r
+\r
+\r
+;(function(sp) {\r
+\r
+sp.$replace=function(c1,c2){\r
+       if (c1 == c2 || this.indexOf (c1) < 0) return "" + this;\r
+       if (c1.length == 1) {\r
+               if ("\\$.*+|?^{}()[]".indexOf(c1) >= 0)         c1 = "\\" + c1;\r
+       } else {    \r
+               c1=c1.replace(/([\\\$\.\*\+\|\?\^\{\}\(\)\[\]])/g,function($0,$1){return"\\"+$1;});\r
+       }\r
+       return this.replace(new RegExp(c1,"gm"),c2);\r
+};\r
+sp.$generateExpFunction=function(str){\r
+var arr=[];\r
+var orders=[];\r
+var idx=0;\r
+arr[0]="";\r
+var i=0;\r
+for(;i<str.length;i++){\r
+var ch=str.charAt(i);\r
+if(i!=str.length-1&&ch=='\\'){\r
+i++;\r
+var c=str.charAt(i);\r
+if(c=='\\'){\r
+arr[idx]+='\\';\r
+}\r
+arr[idx]+=c;\r
+}else if(i!=str.length-1&&ch=='$'){\r
+i++;\r
+orders[idx]=parseInt(str.charAt(i));\r
+idx++;\r
+arr[idx]="";\r
+}else if(ch=='\r'){\r
+arr[idx]+="\\r";\r
+}else if(ch=='\n'){\r
+arr[idx]+="\\n";\r
+}else if(ch=='\t'){\r
+arr[idx]+="\\t";\r
+}else if(ch=='\"'){\r
+arr[idx]+="\\\"";\r
+}else{\r
+arr[idx]+=ch;\r
+}\r
+}\r
+var funStr="f = function (";\r
+var max=Math.max.apply({},orders);\r
+for(i=0;i<=max;i++){\r
+funStr+="$"+i;\r
+if(i!=max){\r
+funStr+=", ";\r
+}\r
+}\r
+funStr+=") { return ";\r
+for(i=0;i<arr.length-1;i++){\r
+funStr+="\""+arr[i]+"\" + $"+orders[i]+" + ";\r
+}\r
+funStr+="\""+arr[i]+"\"; }";\r
+var f=null;\r
+eval(funStr)\r
+return f;\r
+};\r
+\r
+sp.replaceAll=function(exp,str){\r
+var regExp=new RegExp(exp,"gm");\r
+return this.replace(regExp,this.$generateExpFunction(str));\r
+};\r
+sp.replaceFirst=function(exp,str){\r
+var regExp=new RegExp(exp,"m");\r
+return this.replace(regExp,this.$generateExpFunction(str));\r
+};\r
+sp.matches=function(exp){\r
+if(exp!=null){\r
+exp="^("+exp+")$";\r
+}\r
+var regExp=new RegExp(exp,"gm");\r
+var m=this.match(regExp);\r
+return m!=null&&m.length!=0;\r
+};\r
+sp.regionMatches=function(ignoreCase,toffset,\r
+other,ooffset,len){\r
+\r
+if(typeof ignoreCase=="number"\r
+||(ignoreCase!=true&&ignoreCase!=false)){\r
+len=ooffset;\r
+ooffset=other;\r
+other=toffset;\r
+toffset=ignoreCase;\r
+ignoreCase=false;\r
+}\r
+var to=toffset;\r
+var po=ooffset;\r
+\r
+if((ooffset<0)||(toffset<0)||(toffset>this.length-len)||\r
+(ooffset>other.length-len)){\r
+return false;\r
+}\r
+var s1=this.substring(toffset,toffset+len);\r
+var s2=other.substring(ooffset,ooffset+len);\r
+if(ignoreCase){\r
+s1=s1.toLowerCase();\r
+s2=s2.toLowerCase();\r
+}\r
+return s1==s2;\r
+};\r
+\r
+\r
+\r
+sp.$plit=function(regex,limit){\r
+if (!limit && regex == " ")\r
+       return this.split(regex);\r
+\r
+if(limit!=null&&limit>0){\r
+if(limit==1){\r
+return this;\r
+}\r
+var regExp=new RegExp("("+regex+")","gm");\r
+var count=1;\r
+var s=this.replace(regExp,function($0,$1){\r
+count++;\r
+if(count==limit){\r
+return"@@_@@";\r
+}else if(count>limit){\r
+return $0;\r
+}else{\r
+return $0;\r
+}\r
+});\r
+regExp=new RegExp(regex,"gm");\r
+var arr=this.split(regExp);\r
+if(arr.length>limit){\r
+arr[limit-1]=s.substring(s.indexOf("@@_@@")+5);\r
+arr.length=limit;\r
+}\r
+return arr;\r
+}else{\r
+var regExp=new RegExp(regex,"gm");\r
+return this.split(regExp);\r
+}\r
+};\r
+/*\r
+sp.trim=function(){\r
+var len=this.length;\r
+var st=0;\r
+\r
+while((st<len)&&(this.charAt(st)<=' ')){\r
+st++;\r
+}\r
+while((st<len)&&(this.charAt(len-1)<=' ')){\r
+len--;\r
+}\r
+return((st>0)||(len<len))?this.substring(st,len):this;\r
+};\r
+\r
+\r
+*/\r
+\r
+if (!sp.trim)\r
+sp.trim=function(){\r
+return this.replace(/^\s+/g,'').replace(/\s+$/g,'');\r
+};\r
+\r
+if (!sp.startsWith || !sp.endsWith) {\r
+var sn=function(s, prefix,toffset){\r
+var to=toffset;\r
+var po=0;\r
+var pc=prefix.length;\r
+\r
+if((toffset<0)||(toffset>s.length-pc)){\r
+return false;\r
+}\r
+while(--pc>=0){\r
+if(s.charAt(to++)!=prefix.charAt(po++)){\r
+return false;\r
+}\r
+}\r
+return true;\r
+};\r
+\r
+sp.startsWith=function(prefix){\r
+if(arguments.length==1){\r
+return sn(this,arguments[0],0);\r
+}else if(arguments.length==2){\r
+return sn(this,arguments[0],arguments[1]);\r
+}else{\r
+return false;\r
+}\r
+};\r
+\r
+sp.endsWith=function(suffix){\r
+return sn(this, suffix,this.length-suffix.length);\r
+};\r
+\r
+}\r
+\r
+sp.equals=function(anObject){\r
+return this.valueOf()==anObject;\r
+};\r
+\r
+sp.equalsIgnoreCase=function(anotherString){\r
+return(anotherString==null)?false:(this==anotherString\r
+||this.toLowerCase()==anotherString.toLowerCase());\r
+};\r
+\r
+\r
+sp.hash=0;\r
+\r
+sp.hashCode=function(){\r
+var h=this.hash;\r
+if(h==0){\r
+var off=0;\r
+var len=this.length;\r
+for(var i=0;i<len;i++){\r
+h=31*h+this.charCodeAt(off++);\r
+h&=0xffffffff;\r
+}\r
+this.hash=h;\r
+}\r
+return h;\r
+};\r
+\r
+sp.getBytes=function(){\r
+if(arguments.length==4){\r
+return this.getChars(arguments[0],arguments[1],arguments[2],arguments[3]);\r
+}\r
+var s=this;\r
+if(arguments.length==1){\r
+var cs=arguments[0].toString().toLowerCase();\r
+var charset=[\r
+"utf-8","UTF8","us-ascii","iso-8859-1","8859_1","gb2312","gb18030","gbk"\r
+];\r
+var existed=false;\r
+for(var i=0;i<charset.length;i++){\r
+if(charset[i]==cs){\r
+existed=true;\r
+break;\r
+}\r
+}\r
+if(!existed){\r
+throw new java.io.UnsupportedEncodingException();\r
+}\r
+if(cs=="utf-8"||cs=="utf8"){\r
+s=Encoding.convert2UTF8(this);\r
+}\r
+}\r
+var arrs=new Array(s.length);\r
+var c=0,ii=0;\r
+for(var i=0;i<s.length;i++){\r
+c=s.charCodeAt(i);\r
+if(c>255){\r
+arrs[ii]=0x1a;\r
+arrs[ii+1]=c&0xff;\r
+arrs[ii+2]=(c&0xff00)>>8;\r
+ii+=2;\r
+}else{\r
+arrs[ii]=c;\r
+}\r
+ii++;\r
+}\r
+return arrs;\r
+};\r
+\r
+/*\r
+sp.compareTo=function(anotherString){\r
+if(anotherString==null){\r
+throw new java.lang.NullPointerException();\r
+}\r
+var len1=this.length;\r
+var len2=anotherString.length;\r
+var n=Math.min(len1,len2);\r
+var k=0;\r
+while(k<n){\r
+var c1=this.charCodeAt(k);\r
+var c2=anotherString.charCodeAt(k);\r
+if(c1!=c2){\r
+return c1-c2;\r
+}\r
+k++;\r
+}\r
+return len1-len2;\r
+};\r
+\r
+*/\r
+\r
+sp.contains = function(a) {return this.indexOf(a) >= 0}  // bh added\r
+sp.compareTo = function(a){return this > a ? 1 : this < a ? -1 : 0} // bh added\r
+\r
+\r
+\r
+sp.toCharArray=function(){\r
+var result=new Array(this.length);\r
+for(var i=0;i<this.length;i++){\r
+result[i]=this.charAt(i);\r
+}\r
+return result;\r
+};\r
+String.value0f=String.valueOf;\r
+String.valueOf=function(o){\r
+if(o=="undefined"){\r
+return String.value0f();\r
+}\r
+if(o instanceof Array){\r
+if(arguments.length==1){\r
+return o.join('');\r
+}else{\r
+var off=arguments[1];\r
+var len=arguments[2];\r
+var oo=new Array(len);\r
+for(var i=0;i<len;i++){\r
+oo[i]=o[off+i];\r
+}\r
+return oo.join('');\r
+}\r
+}\r
+return""+o;\r
+};\r
+\r
+sp.subSequence=function(beginIndex,endIndex){\r
+return this.substring(beginIndex,endIndex);\r
+};\r
+\r
+sp.compareToIgnoreCase=function(str){\r
+if(str==null){\r
+throw new NullPointerException();\r
+}\r
+var s1=this.toUpperCase();\r
+var s2=str.toUpperCase();\r
+if(s1==s2){\r
+return 0;\r
+}else{\r
+var s1=this.toLowerCase();\r
+var s2=str.toLowerCase();\r
+if(s1==s2){\r
+return 0;\r
+}else if(s1>s2){\r
+return 1;\r
+}else{\r
+return-1;\r
+}\r
+}\r
+};\r
+\r
+sp.contentEquals=function(sb){\r
+if(this.length!=sb.length()){\r
+return false;\r
+}\r
+var v=sb.getValue();\r
+var i=0;\r
+var j=0;\r
+var n=this.length;\r
+while(n--!=0){\r
+if(this.charCodeAt(i++)!=v[j++]){\r
+return false;\r
+}\r
+}\r
+return true;\r
+};\r
+\r
+sp.getChars=function(srcBegin,srcEnd,dst,dstBegin){\r
+if(srcBegin<0){\r
+throw new StringIndexOutOfBoundsException(srcBegin);\r
+}\r
+if(srcEnd>this.length){\r
+throw new StringIndexOutOfBoundsException(srcEnd);\r
+}\r
+if(srcBegin>srcEnd){\r
+throw new StringIndexOutOfBoundsException(srcEnd-srcBegin);\r
+}\r
+if(dst==null){\r
+throw new NullPointerException();\r
+}\r
+for(var i=0;i<srcEnd-srcBegin;i++){\r
+dst[dstBegin+i]=this.charAt(srcBegin+i);\r
+}\r
+};\r
+sp.$concat=sp.concat;\r
+sp.concat=function(s){\r
+if(s==null){\r
+throw new NullPointerException();\r
+}\r
+return this.$concat(s);\r
+};\r
+\r
+sp.$lastIndexOf=sp.lastIndexOf;\r
+sp.lastIndexOf=function(s,last){\r
+if(last!=null&&last+this.length<=0){\r
+return-1;\r
+}\r
+if(last!=null){\r
+return this.$lastIndexOf(s,last);\r
+}else{\r
+return this.$lastIndexOf(s);\r
+}\r
+};\r
+\r
+sp.intern=function(){\r
+return this.valueOf();\r
+};\r
+String.copyValueOf=sp.copyValueOf=function(){\r
+if(arguments.length==1){\r
+return String.instantialize(arguments[0]);\r
+}else{\r
+return String.instantialize(arguments[0],arguments[1],arguments[2]);\r
+}\r
+};\r
+\r
+sp.codePointAt || (sp.codePointAt = sp.charCodeAt); // Firefox only\r
+\r
+\r
+})(String.prototype);\r
+\r
+/*\r
+\r
+String.indexOf=function(source,sourceOffset,sourceCount,\r
+target,targetOffset,targetCount,fromIndex){\r
+if(fromIndex>=sourceCount){\r
+return(targetCount==0?sourceCount:-1);\r
+}\r
+if(fromIndex<0){\r
+fromIndex=0;\r
+}\r
+if(targetCount==0){\r
+return fromIndex;\r
+}\r
+\r
+var first=target[targetOffset];\r
+var i=sourceOffset+fromIndex;\r
+var max=sourceOffset+(sourceCount-targetCount);\r
+\r
+startSearchForFirstChar:\r
+while(true){\r
+\r
+while(i<=max&&source[i]!=first){\r
+i++;\r
+}\r
+if(i>max){\r
+return-1;\r
+}\r
+\r
+\r
+var j=i+1;\r
+var end=j+targetCount-1;\r
+var k=targetOffset+1;\r
+while(j<end){\r
+if(source[j++]!=target[k++]){\r
+i++;\r
+\r
+continue startSearchForFirstChar;\r
+}\r
+}\r
+return i-sourceOffset;\r
+}\r
+};\r
+\r
+\r
+\r
+String.instantialize=function(){\r
+if(arguments.length==0){\r
+return new String();\r
+}else if(arguments.length==1){\r
+var x=arguments[0];\r
+if(typeof x=="string"||x instanceof String){\r
+return new String(x);\r
+}else if(x instanceof Array){\r
+if(x.length>0&&typeof x[0]=="number"){\r
+var arr=new Array(x.length);\r
+for(var i=0;i<x.length;i++){\r
+arr[i]=String.fromCharCode(x[i]&0xff);\r
+}\r
+return Encoding.readUTF8(arr.join(''));\r
+}\r
+return x.join('');\r
+}else if(x.__CLASS_NAME__=="StringBuffer"\r
+||x.__CLASS_NAME__=="java.lang.StringBuffer"){\r
+var value=x.shareValue();\r
+var length=x.length();\r
+var valueCopy=new Array(length);\r
+for(var i=0;i<length;i++){\r
+valueCopy[i]=value[i];\r
+}\r
+return valueCopy.join('')\r
+\r
+}else{\r
+return""+x;\r
+}\r
+}else if(arguments.length==2){\r
+var x=arguments[0];\r
+var hibyte=arguments[1];\r
+if(typeof hibyte=="string"){\r
+return String.instantialize(x,0,x.length,hibyte);\r
+}else{\r
+return String.instantialize(x,hibyte,0,x.length);\r
+}\r
+}else if(arguments.length==3){\r
+var bytes=arguments[0];\r
+var offset=arguments[1];\r
+var length=arguments[2];\r
+if(arguments[2]instanceof Array){\r
+bytes=arguments[2];\r
+offset=arguments[0];\r
+length=arguments[1];\r
+}\r
+var arr=new Array(length);\r
+if(offset<0||length+offset>bytes.length){\r
+throw new IndexOutOfBoundsException();\r
+}\r
+if(length>0){\r
+var isChar=(bytes[offset].length!=null);\r
+if(isChar){\r
+for(var i=0;i<length;i++){\r
+arr[i]=bytes[offset+i];\r
+}\r
+}else{\r
+for(var i=0;i<length;i++){\r
+arr[i]=String.fromCharCode(bytes[offset+i]);\r
+}\r
+}\r
+}\r
+return arr.join('');\r
+}else if(arguments.length==4){\r
+var bytes=arguments[0];\r
+var y=arguments[3];\r
+if(typeof y=="string"||y instanceof String){\r
+var offset=arguments[1];\r
+var length=arguments[2];\r
+var arr=new Array(length);\r
+for(var i=0;i<length;i++){\r
+arr[i]=bytes[offset+i];\r
+if(typeof arr[i]=="number"){\r
+arr[i]=String.fromCharCode(arr[i]&0xff);\r
+}\r
+}\r
+var cs=y.toLowerCase();\r
+if(cs=="utf-8"||cs=="utf8"){\r
+return Encoding.readUTF8(arr.join(''));\r
+}else{\r
+return arr.join('');\r
+}\r
+}else{\r
+var count=arguments[3];\r
+var offset=arguments[2];\r
+var hibyte=arguments[1];\r
+var value=new Array(count);\r
+if(hibyte==0){\r
+for(var i=count;i-->0;){\r
+value[i]=String.fromCharCode(bytes[i+offset]&0xff);\r
+}\r
+}else{\r
+hibyte<<=8;\r
+for(var i=count;i-->0;){\r
+value[i]=String.fromCharCode(hibyte|(bytes[i+offset]&0xff));\r
+}\r
+}\r
+return value.join('');\r
+}\r
+}else{\r
+var s="";\r
+for(var i=0;i<arguments.length;i++){\r
+s+=arguments[i];\r
+}\r
+return s;\r
+}\r
+};\r
+\r
+\r
+*/\r
+\r
+\r
+String.instantialize=function(){\r
+switch (arguments.length) {\r
+case 0:\r
+       return new String();\r
+case 1:\r
+       var x=arguments[0];\r
+       if(typeof x=="string"||x instanceof String){\r
+               return new String(x);\r
+       }\r
+       if(x instanceof Array || x instanceof Int32Array){\r
+               if(x.length == 0)\r
+                       return "";\r
+               if(typeof x[0]!="number")\r
+                       return x.join('');\r
+               var arr=new Array(x.length);\r
+               for(var i=0;i<x.length;i++)\r
+                       arr[i]=String.fromCharCode(x[i]&0xff);\r
+               return Encoding.readUTF8(arr.join(''));\r
+       }\r
+       if(x.__CLASS_NAME__=="StringBuffer"||x.__CLASS_NAME__=="java.lang.StringBuffer"){\r
+               var value=x.shareValue();\r
+               var length=x.length();\r
+               var valueCopy=new Array(length);\r
+               for(var i=0;i<length;i++){\r
+                       valueCopy[i]=value[i];\r
+               }\r
+               return valueCopy.join('')\r
+       }\r
+       return""+x;\r
+case 2:        \r
+       var x=arguments[0];\r
+       var hibyte=arguments[1];\r
+       if(typeof hibyte=="string"){\r
+               return String.instantialize(x,0,x.length,hibyte);\r
+       }\r
+       return String.instantialize(x,hibyte,0,x.length);\r
+case 3:\r
+       var bytes=arguments[0];\r
+       var offset=arguments[1];\r
+       var length=arguments[2];\r
+       if(arguments[2]instanceof Array){\r
+               bytes=arguments[2];\r
+               offset=arguments[0];\r
+               length=arguments[1];\r
+       }\r
+       var arr=new Array(length);\r
+       if(offset<0||length+offset>bytes.length){\r
+               throw new IndexOutOfBoundsException();\r
+       }\r
+       if(length>0){\r
+               var isChar=(bytes[offset].length!=null);\r
+               if(isChar){\r
+                       for(var i=0;i<length;i++){\r
+                               arr[i]=bytes[offset+i];\r
+                       }\r
+               }else{\r
+                       for(var i=0;i<length;i++){\r
+                               arr[i]=String.fromCharCode(bytes[offset+i]);\r
+                       }\r
+               }\r
+       }\r
+       return arr.join('');\r
+case 4:\r
+       var bytes=arguments[0];\r
+       var y=arguments[3];\r
+       if(typeof y=="string"||y instanceof String){\r
+               var offset=arguments[1];\r
+               var length=arguments[2];\r
+               var arr=new Array(length);\r
+               for(var i=0;i<length;i++){\r
+                       arr[i]=bytes[offset+i];\r
+                       if(typeof arr[i]=="number"){\r
+                               arr[i]=String.fromCharCode(arr[i]&0xff);\r
+                       }\r
+               }\r
+               var cs=y.toLowerCase();\r
+               if(cs=="utf-8"||cs=="utf8"){\r
+                       return Encoding.readUTF8(arr.join(''));\r
+               }\r
+               return arr.join('');\r
+       }\r
+       var count=arguments[3];\r
+       var offset=arguments[2];\r
+       var hibyte=arguments[1];\r
+       var value=new Array(count);\r
+       if(hibyte==0){\r
+               for(var i=count;i-->0;){\r
+                       value[i]=String.fromCharCode(bytes[i+offset]&0xff);\r
+               }\r
+       }else{\r
+               hibyte<<=8;\r
+               for(var i=count;i-->0;){\r
+                       value[i]=String.fromCharCode(hibyte|(bytes[i+offset]&0xff));\r
+               }\r
+       }\r
+       return value.join('');\r
+default:\r
+       var s="";\r
+       for(var i=0;i<arguments.length;i++){\r
+               s+=arguments[i];\r
+       }\r
+       return s;\r
+}\r
+};\r
+\r
+if(navigator.userAgent.toLowerCase().indexOf("chrome")!=-1){\r
+       String.prototype.toString=function(){return this.valueOf();};\r
+}\r
+\r
+}\r
+\r
+})(Clazz._Encoding);\r
+\r
+\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.value=0;\r
+Clazz.instantialize(this,arguments);\r
+},java.lang,"Character",null,[java.io.Serializable,Comparable]);\r
+Clazz.makeConstructor(c$,\r
+function(value){\r
+this.value=value;\r
+},"~N");\r
+Clazz.defineMethod(c$,"charValue",\r
+function(){\r
+return this.value;\r
+});\r
+Clazz.overrideMethod(c$,"hashCode",\r
+function(){\r
+return(this.value).charCodeAt(0);\r
+});\r
+Clazz.overrideMethod(c$,"equals",\r
+function(obj){\r
+if(Clazz.instanceOf(obj,Character)){\r
+return(this.value).charCodeAt(0)==((obj).charValue()).charCodeAt(0);\r
+}return false;\r
+},"~O");\r
+Clazz.overrideMethod(c$,"compareTo",\r
+function(c){\r
+return(this.value).charCodeAt(0)-(c.value).charCodeAt(0);\r
+},"Character");\r
+c$.toLowerCase=Clazz.defineMethod(c$,"toLowerCase",\r
+function(c){\r
+return(""+c).toLowerCase().charAt(0);\r
+},"~N");\r
+c$.toUpperCase=Clazz.defineMethod(c$,"toUpperCase",\r
+function(c){\r
+return(""+c).toUpperCase().charAt(0);\r
+},"~N");\r
+c$.isDigit=Clazz.defineMethod(c$,"isDigit",\r
+function(c){\r
+c = c.charCodeAt(0);\r
+return (48 <= c && c <= 57);\r
+},"~N");\r
+c$.isUpperCase=Clazz.defineMethod(c$,"isUpperCase",\r
+function(c){\r
+c = c.charCodeAt(0);\r
+return (65 <= c && c <= 90);\r
+},"~N");\r
+c$.isLowerCase=Clazz.defineMethod(c$,"isLowerCase",\r
+function(c){\r
+c = c.charCodeAt(0);\r
+return (97 <= c && c <= 122);\r
+},"~N");\r
+c$.isWhitespace=Clazz.defineMethod(c$,"isWhitespace",\r
+function(c){\r
+c = (c).charCodeAt(0);\r
+return (c >= 0x1c && c <= 0x20 || c >= 0x9 && c <= 0xd || c == 0x1680\r
+       || c >= 0x2000 && c != 0x2007 && (c <= 0x200b || c == 0x2028 || c == 0x2029 || c == 0x3000));\r
+},"~N");\r
+c$.isLetter=Clazz.defineMethod(c$,"isLetter",\r
+function(c){\r
+c = c.charCodeAt(0);\r
+return (65 <= c && c <= 90 || 97 <= c && c <= 122);\r
+},"~N");\r
+c$.isLetterOrDigit=Clazz.defineMethod(c$,"isLetterOrDigit",\r
+function(c){\r
+c = c.charCodeAt(0);\r
+return (65 <= c && c <= 90 || 97 <= c && c <= 122 || 48 <= c && c <= 57);\r
+},"~N");\r
+c$.isSpaceChar=Clazz.defineMethod(c$,"isSpaceChar",\r
+function(c){\r
+ var i = c.charCodeAt(0);\r
+if(i==0x20||i==0xa0||i==0x1680)return true;\r
+if(i<0x2000)return false;\r
+return i<=0x200b||i==0x2028||i==0x2029||i==0x202f||i==0x3000;\r
+},"~N");\r
+c$.digit=Clazz.defineMethod(c$,"digit",\r
+function(c,radix){\r
+var i = c.charCodeAt(0);\r
+if(radix >= 2 && radix <= 36){\r
+       if(i < 128){\r
+               var result = -1;\r
+               if(48 <= i && i <= 57){\r
+               result = i - 48;\r
+               }else if(97 <= i && i <= 122){\r
+               result = i - 87;\r
+               }else if(65 <= i && i <= 90){\r
+               result=i-(55);\r
+               }\r
+               return (result < radix ? result : -1);\r
+       }\r
+}\r
+return -1;\r
+},"~N,~N");\r
+Clazz.overrideMethod(c$,"toString",\r
+function(){\r
+var buf=[this.value];\r
+return String.valueOf(buf);\r
+});\r
+c$.toString=Clazz.overrideMethod(c$,"toString",\r
+function(c){\r
+{\r
+if(this===Character){\r
+return"class java.lang.Character";\r
+}\r
+}return String.valueOf(c);\r
+},"~N");\r
+Clazz.defineStatics(c$,\r
+"MIN_VALUE",'\u0000',\r
+"MAX_VALUE",'\uffff',\r
+"MIN_RADIX",2,\r
+"MAX_RADIX",36,\r
+"TYPE",null);\r
+\r
+java.lang.Character.TYPE=java.lang.Character.prototype.TYPE=java.lang.Character;\r
+\r
+\r
+\r
+Clazz._ArrayWrapper = function(a, type) {\r
+ return {\r
+   a: a,\r
+   __CLASS_NAME__:"Array",\r
+   superClazz: Array,\r
+   getComponentType: function() {return type},\r
+   instanceOf: function(o) { return  Clazz.instanceOf(type, o) },\r
+   getName: function() { return this.__CLASS_NAME__ }\r
+ };\r
+}\r
+c$=Clazz_declareType(java.lang.reflect,"Array");\r
+c$.newInstance=Clazz_defineMethod(c$,"newInstance",\r
+function(componentType,size){\r
+var a = Clazz_newArray(size);\r
+ a.getClass = function() { return new Clazz._ArrayWrapper(this, componentType);};\r
+return a;\r
+},"Class,~N");\r
+\r
+javautil.Date=Date;\r
+Date.TYPE="javautil.Date";\r
+Date.__CLASS_NAME__="Date";\r
+Clazz.implementOf(Date,[java.io.Serializable,java.lang.Comparable]);\r
+\r
+Clazz.defineMethod(javautil.Date,"clone",\r
+function(){\r
+return new Date(this.getTime());\r
+});\r
+\r
+Clazz.defineMethod(javautil.Date,"before",\r
+function(when){\r
+return this.getTime()<when.getTime();\r
+},"javautil.Date");\r
+Clazz.defineMethod(javautil.Date,"after",\r
+function(when){\r
+return this.getTime()>when.getTime();\r
+},"javautil.Date");\r
+Clazz.defineMethod(javautil.Date,"equals",\r
+function(obj){\r
+return Clazz.instanceOf(obj,javautil.Date)&&this.getTime()==(obj).getTime();\r
+},"Object");\r
+Clazz.defineMethod(javautil.Date,"compareTo",\r
+function(anotherDate){\r
+var thisTime=this.getTime();\r
+var anotherTime=anotherDate.getTime();\r
+return(thisTime<anotherTime?-1:(thisTime==anotherTime?0:1));\r
+},"javautil.Date");\r
+Clazz.defineMethod(javautil.Date,"compareTo",\r
+function(o){\r
+return this.compareTo(o);\r
+},"Object");\r
+Clazz.overrideMethod(javautil.Date,"hashCode",\r
+function(){\r
+var ht=this.getTime();\r
+return parseInt(ht)^parseInt((ht>>32));\r
+});\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.source=null;\r
+Clazz.instantialize(this,arguments);\r
+},javautil,"EventObject",null,java.io.Serializable);\r
+Clazz.makeConstructor(c$,\r
+function(source){\r
+if(source!=null)this.source=source;\r
+else throw new IllegalArgumentException();\r
+},"~O");\r
+Clazz.defineMethod(c$,"getSource",\r
+function(){\r
+return this.source;\r
+});\r
+Clazz.overrideMethod(c$,"toString",\r
+function(){\r
+return this.getClass().getName()+"[source="+String.valueOf(this.source)+']';\r
+});\r
+Clazz.declareInterface(javautil,"EventListener");\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.listener=null;\r
+Clazz.instantialize(this,arguments);\r
+},javautil,"EventListenerProxy",null,javautil.EventListener);\r
+Clazz.makeConstructor(c$,\r
+function(listener){\r
+this.listener=listener;\r
+},"javautil.EventListener");\r
+Clazz.defineMethod(c$,"getListener",\r
+function(){\r
+return this.listener;\r
+});\r
+Clazz.declareInterface(javautil,"Iterator");\r
+\r
+Clazz.declareInterface(javautil,"ListIterator",javautil.Iterator);\r
+Clazz.declareInterface(javautil,"Enumeration");\r
+Clazz.declareInterface(javautil,"Collection",Iterable);\r
+\r
+Clazz.declareInterface(javautil,"Set",javautil.Collection);\r
+Clazz.declareInterface(javautil,"Map");\r
+Clazz.declareInterface(javautil.Map,"Entry");\r
+\r
+Clazz.declareInterface(javautil,"List",javautil.Collection);\r
+\r
+Clazz.declareInterface(javautil,"Queue",javautil.Collection);\r
+Clazz.declareInterface(javautil,"RandomAccess");\r
+c$=Clazz.decorateAsClass(function(){\r
+this.detailMessage=null;\r
+this.cause=null;\r
+this.stackTrace=null;\r
+Clazz.instantialize(this,arguments);\r
+},java.lang,"Throwable",null,java.io.Serializable);\r
+Clazz.prepareFields(c$,function(){\r
+this.cause=this;\r
+//alert("e0 "+ arguments.callee.caller.caller.caller.caller.caller)\r
+});\r
+Clazz.makeConstructor(c$,\r
+function(){\r
+this.fillInStackTrace();\r
+});\r
+Clazz.makeConstructor(c$,\r
+function(message){\r
+this.fillInStackTrace();\r
+this.detailMessage=message;\r
+},"~S");\r
+Clazz.makeConstructor(c$,\r
+function(message,cause){\r
+this.fillInStackTrace();\r
+this.detailMessage=message;\r
+this.cause=cause;\r
+},"~S,Throwable");\r
+Clazz.makeConstructor(c$,\r
+function(cause){\r
+this.fillInStackTrace();\r
+this.detailMessage=(cause==null?null:cause.toString());\r
+this.cause=cause;\r
+},"Throwable");\r
+Clazz.defineMethod(c$,"getMessage",\r
+function(){\r
+return (this.message || this.detailMessage || this.toString());\r
+});\r
+Clazz.defineMethod(c$,"getLocalizedMessage",\r
+function(){\r
+return this.getMessage();\r
+});\r
+Clazz.defineMethod(c$,"getCause",\r
+function(){\r
+return(this.cause===this?null:this.cause);\r
+});\r
+Clazz.defineMethod(c$,"initCause",\r
+function(cause){\r
+if(this.cause!==this)throw new IllegalStateException("Can't overwrite cause");\r
+if(cause===this)throw new IllegalArgumentException("Self-causation not permitted");\r
+this.cause=cause;\r
+return this;\r
+},"Throwable");\r
+Clazz.overrideMethod(c$,"toString",\r
+function(){\r
+var s=this.getClass().getName();\r
+var message=this.message || this.detailMessage;\r
+return(message ? s+": "+message : s);\r
+});\r
+Clazz.defineMethod(c$,"printStackTrace",\r
+function(){\r
+System.err.println(this.getStackTrace ? this.getStackTrace() : this.message + " " + Clazz.getStackTrace());\r
+});\r
+\r
+Clazz.defineMethod(c$,"getStackTrace",\r
+function(){\r
+var s = "" + this + "\n";\r
+for(var i=0;i<this.stackTrace.length;i++){\r
+ var t=this.stackTrace[i];\r
+       var x=t.methodName.indexOf("(");\r
+       var n=t.methodName.substring(0,x).replace(/\s+/g,"");\r
+       if(n!="construct"||t.nativeClazz==null\r
+                ||Clazz.getInheritedLevel(t.nativeClazz,Throwable)<0){\r
+                               s += t + "\n";\r
+       }\r
+}\r
+return s;\r
+});\r
+\r
+\r
+Clazz.defineMethod(c$,"printStackTrace",\r
+function(s){\r
+this.printStackTrace();\r
+},"java.io.PrintStream");\r
+Clazz.defineMethod(c$,"printStackTrace",\r
+function(s){\r
+this.printStackTrace();\r
+},"java.io.PrintWriter");\r
+Clazz.defineMethod(c$,"fillInStackTrace",\r
+function(){\r
+this.stackTrace=new Array();\r
+var caller=arguments.callee.caller;\r
+var superCaller=null;\r
+var callerList=new Array();\r
+var index=Clazz._callingStackTraces.length-1;\r
+var noLooping=true;\r
+while(index>-1||caller!=null){\r
+var clazzName=null;\r
+var nativeClass=null;\r
+if(!noLooping||caller==Clazz.tryToSearchAndExecute||caller==Clazz.superCall||caller==null){\r
+if(index<0){\r
+break;\r
+}\r
+noLooping=true;\r
+superCaller=Clazz._callingStackTraces[index].caller;\r
+nativeClass=Clazz._callingStackTraces[index].owner;\r
+index--;\r
+}else{\r
+superCaller=caller;\r
+if(superCaller.claxxOwner!=null){\r
+nativeClass=superCaller.claxxOwner;\r
+}else if(superCaller.exClazz!=null){\r
+nativeClass=superCaller.exClazz;\r
+}\r
+}\r
+var st=new StackTraceElement(\r
+((nativeClass!=null&&nativeClass.__CLASS_NAME__.length!=0)?\r
+nativeClass.__CLASS_NAME__:"anonymous"),\r
+((superCaller.exName==null)?"anonymous":superCaller.exName)\r
++" ("+Clazz.getParamsType(superCaller.arguments)+")",\r
+null,-1);\r
+st.nativeClazz=nativeClass;\r
+this.stackTrace[this.stackTrace.length]=st;\r
+for(var i=0;i<callerList.length;i++){\r
+if(callerList[i]==superCaller){\r
+\r
+var st=new StackTraceElement("lost","missing",null,-3);\r
+st.nativeClazz=null;\r
+this.stackTrace[this.stackTrace.length]=st;\r
+noLooping=false;\r
+\r
+}\r
+}\r
+if(superCaller!=null){\r
+callerList[callerList.length]=superCaller;\r
+}\r
+caller=superCaller.arguments.callee.caller;\r
+}\r
+Clazz._initializingException=false;\r
+return this;\r
+});\r
+Clazz.defineMethod(c$,"setStackTrace",\r
+function(stackTrace){\r
+var defensiveCopy=stackTrace.clone();\r
+for(var i=0;i<defensiveCopy.length;i++)if(defensiveCopy[i]==null)throw new NullPointerException("stackTrace["+i+"]");\r
+\r
+this.stackTrace=defensiveCopy;\r
+},"~A");\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.declaringClass=null;\r
+this.methodName=null;\r
+this.fileName=null;\r
+this.lineNumber=0;\r
+Clazz.instantialize(this,arguments);\r
+},java.lang,"StackTraceElement",null,java.io.Serializable);\r
+Clazz.makeConstructor(c$,\r
+function(cls,method,file,line){\r
+if(cls==null||method==null){\r
+throw new NullPointerException();\r
+}this.declaringClass=cls;\r
+this.methodName=method;\r
+this.fileName=file;\r
+this.lineNumber=line;\r
+},"~S,~S,~S,~N");\r
+Clazz.overrideMethod(c$,"equals",\r
+function(obj){\r
+if(!(Clazz.instanceOf(obj,StackTraceElement))){\r
+return false;\r
+}var castObj=obj;\r
+if((this.methodName==null)||(castObj.methodName==null)){\r
+return false;\r
+}if(!this.getMethodName().equals(castObj.getMethodName())){\r
+return false;\r
+}if(!this.getClassName().equals(castObj.getClassName())){\r
+return false;\r
+}var localFileName=this.getFileName();\r
+if(localFileName==null){\r
+if(castObj.getFileName()!=null){\r
+return false;\r
+}}else{\r
+if(!localFileName.equals(castObj.getFileName())){\r
+return false;\r
+}}if(this.getLineNumber()!=castObj.getLineNumber()){\r
+return false;\r
+}return true;\r
+},"~O");\r
+Clazz.defineMethod(c$,"getClassName",\r
+function(){\r
+return(this.declaringClass==null)?"<unknown class>":this.declaringClass;\r
+});\r
+Clazz.defineMethod(c$,"getFileName",\r
+function(){\r
+return this.fileName;\r
+});\r
+Clazz.defineMethod(c$,"getLineNumber",\r
+function(){\r
+return this.lineNumber;\r
+});\r
+Clazz.defineMethod(c$,"getMethodName",\r
+function(){\r
+return(this.methodName==null)?"<unknown method>":this.methodName;\r
+});\r
+Clazz.overrideMethod(c$,"hashCode",\r
+function(){\r
+if(this.methodName==null){\r
+return 0;\r
+}return this.methodName.hashCode()^this.declaringClass.hashCode();\r
+});\r
+Clazz.defineMethod(c$,"isNativeMethod",\r
+function(){\r
+return this.lineNumber==-2;\r
+});\r
+Clazz.overrideMethod(c$,"toString",\r
+function(){\r
+var buf=new StringBuilder(80);\r
+buf.append(this.getClassName());\r
+buf.append('.');\r
+buf.append(this.getMethodName());\r
+if(this.isNativeMethod()){\r
+buf.append("(Native Method)");\r
+}else{\r
+var fName=this.getFileName();\r
+if(fName==null){\r
+buf.append("(Unknown Source)");\r
+}else{\r
+var lineNum=this.getLineNumber();\r
+buf.append('(');\r
+buf.append(fName);\r
+if(lineNum>=0){\r
+buf.append(':');\r
+buf.append(lineNum);\r
+}buf.append(')');\r
+}}return buf.toString();\r
+});\r
+TypeError.prototype.getMessage || (TypeError.prototype.getMessage = function(){ return (this.message || this.toString()) + (this.getStackTrace ? this.getStackTrace() : Clazz.getStackTrace())});\r
+c$=Clazz.declareType(java.lang,"Error",Throwable);\r
+\r
+c$=Clazz.declareType(java.lang,"LinkageError",Error);\r
+\r
+c$=Clazz.declareType(java.lang,"IncompatibleClassChangeError",LinkageError);\r
+\r
+c$=Clazz.declareType(java.lang,"AbstractMethodError",IncompatibleClassChangeError);\r
+\r
+c$=Clazz.declareType(java.lang,"AssertionError",Error);\r
+Clazz.makeConstructor(c$,\r
+function(detailMessage){\r
+Clazz.superConstructor(this,AssertionError,[String.valueOf(detailMessage),(Clazz.instanceOf(detailMessage,Throwable)?detailMessage:null)]);\r
+},"~O");\r
+Clazz.makeConstructor(c$,\r
+function(detailMessage){\r
+this.construct("" + detailMessage);\r
+},"~B");\r
+Clazz.makeConstructor(c$,\r
+function(detailMessage){\r
+this.construct("" + detailMessage);\r
+},"~N");\r
+\r
+c$=Clazz.declareType(java.lang,"ClassCircularityError",LinkageError);\r
+\r
+c$=Clazz.declareType(java.lang,"ClassFormatError",LinkageError);\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.exception=null;\r
+Clazz.instantialize(this,arguments);\r
+},java.lang,"ExceptionInInitializerError",LinkageError);\r
+Clazz.makeConstructor(c$,\r
+function(){\r
+Clazz.superConstructor(this,ExceptionInInitializerError);\r
+this.initCause(null);\r
+});\r
+Clazz.makeConstructor(c$,\r
+function(detailMessage){\r
+Clazz.superConstructor(this,ExceptionInInitializerError,[detailMessage]);\r
+this.initCause(null);\r
+},"~S");\r
+Clazz.makeConstructor(c$,\r
+function(exception){\r
+Clazz.superConstructor(this,ExceptionInInitializerError);\r
+this.exception=exception;\r
+this.initCause(exception);\r
+},"Throwable");\r
+Clazz.defineMethod(c$,"getException",\r
+function(){\r
+return this.exception;\r
+});\r
+Clazz.overrideMethod(c$,"getCause",\r
+function(){\r
+return this.exception;\r
+});\r
+\r
+c$=Clazz.declareType(java.lang,"IllegalAccessError",IncompatibleClassChangeError);\r
+\r
+c$=Clazz.declareType(java.lang,"InstantiationError",IncompatibleClassChangeError);\r
+\r
+c$=Clazz.declareType(java.lang,"VirtualMachineError",Error);\r
+\r
+c$=Clazz.declareType(java.lang,"InternalError",VirtualMachineError);\r
+\r
+c$=Clazz.declareType(java.lang,"NoClassDefFoundError",LinkageError);\r
+\r
+c$=Clazz.declareType(java.lang,"NoSuchFieldError",IncompatibleClassChangeError);\r
+\r
+c$=Clazz.declareType(java.lang,"NoSuchMethodError",IncompatibleClassChangeError);\r
+\r
+c$=Clazz.declareType(java.lang,"OutOfMemoryError",VirtualMachineError);\r
+\r
+c$=Clazz.declareType(java.lang,"StackOverflowError",VirtualMachineError);\r
+\r
+c$=Clazz.declareType(java.lang,"UnknownError",VirtualMachineError);\r
+\r
+c$=Clazz.declareType(java.lang,"UnsatisfiedLinkError",LinkageError);\r
+\r
+c$=Clazz.declareType(java.lang,"UnsupportedClassVersionError",ClassFormatError);\r
+\r
+c$=Clazz.declareType(java.lang,"VerifyError",LinkageError);\r
+\r
+c$=Clazz.declareType(java.lang,"ThreadDeath",Error);\r
+Clazz.makeConstructor(c$,\r
+function(){\r
+Clazz.superConstructor(this,ThreadDeath,[]);\r
+});\r
+\r
+c$=Clazz.declareType(java.lang,"Exception",Throwable);\r
+\r
+c$=Clazz.declareType(java.lang,"RuntimeException",Exception);\r
+\r
+c$=Clazz.declareType(java.lang,"ArithmeticException",RuntimeException);\r
+\r
+c$=Clazz.declareType(java.lang,"IndexOutOfBoundsException",RuntimeException);\r
+\r
+c$=Clazz.declareType(java.lang,"ArrayIndexOutOfBoundsException",IndexOutOfBoundsException);\r
+Clazz.makeConstructor(c$,\r
+function(index){\r
+Clazz.superConstructor(this,ArrayIndexOutOfBoundsException,["Array index out of range: "+index]);\r
+},"~N");\r
+\r
+c$=Clazz.declareType(java.lang,"ArrayStoreException",RuntimeException);\r
+\r
+c$=Clazz.declareType(java.lang,"ClassCastException",RuntimeException);\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.ex=null;\r
+Clazz.instantialize(this,arguments);\r
+},java.lang,"ClassNotFoundException",Exception);\r
+Clazz.makeConstructor(c$,\r
+function(){\r
+Clazz.superConstructor(this,ClassNotFoundException,[Clazz.castNullAs("Throwable")]);\r
+});\r
+Clazz.makeConstructor(c$,\r
+function(detailMessage){\r
+Clazz.superConstructor(this,ClassNotFoundException,[detailMessage,null]);\r
+},"~S");\r
+Clazz.makeConstructor(c$,\r
+function(detailMessage,exception){\r
+Clazz.superConstructor(this,ClassNotFoundException,[detailMessage]);\r
+this.ex=exception;\r
+},"~S,Throwable");\r
+Clazz.defineMethod(c$,"getException",\r
+function(){\r
+return this.ex;\r
+});\r
+Clazz.overrideMethod(c$,"getCause",\r
+function(){\r
+return this.ex;\r
+});\r
+\r
+c$=Clazz.declareType(java.lang,"CloneNotSupportedException",Exception);\r
+\r
+c$=Clazz.declareType(java.lang,"IllegalAccessException",Exception);\r
+\r
+c$=Clazz.declareType(java.lang,"IllegalArgumentException",RuntimeException);\r
+Clazz.makeConstructor(c$,\r
+function(cause){\r
+Clazz.superConstructor(this,IllegalArgumentException,[(cause==null?null:cause.toString()),cause]);\r
+},"Throwable");\r
+\r
+c$=Clazz.declareType(java.lang,"IllegalMonitorStateException",RuntimeException);\r
+\r
+c$=Clazz.declareType(java.lang,"IllegalStateException",RuntimeException);\r
+Clazz.makeConstructor(c$,\r
+function(cause){\r
+Clazz.superConstructor(this,IllegalStateException,[(cause==null?null:cause.toString()),cause]);\r
+},"Throwable");\r
+\r
+c$=Clazz.declareType(java.lang,"IllegalThreadStateException",IllegalArgumentException);\r
+\r
+c$=Clazz.declareType(java.lang,"InstantiationException",Exception);\r
+\r
+c$=Clazz.declareType(java.lang,"InterruptedException",Exception);\r
+\r
+c$=Clazz.declareType(java.lang,"NegativeArraySizeException",RuntimeException);\r
+\r
+c$=Clazz.declareType(java.lang,"NoSuchFieldException",Exception);\r
+\r
+c$=Clazz.declareType(java.lang,"NoSuchMethodException",Exception);\r
+\r
+c$=Clazz.declareType(java.lang,"NullPointerException",RuntimeException);\r
+\r
+c$=Clazz.declareType(java.lang,"NumberFormatException",IllegalArgumentException);\r
+\r
+c$=Clazz.declareType(java.lang,"SecurityException",RuntimeException);\r
+Clazz.makeConstructor(c$,\r
+function(cause){\r
+Clazz.superConstructor(this,SecurityException,[(cause==null?null:cause.toString()),cause]);\r
+},"Throwable");\r
+\r
+c$=Clazz.declareType(java.lang,"StringIndexOutOfBoundsException",IndexOutOfBoundsException);\r
+Clazz.makeConstructor(c$,\r
+function(index){\r
+Clazz.superConstructor(this,StringIndexOutOfBoundsException,["String index out of range: "+index]);\r
+},"~N");\r
+\r
+c$=Clazz.declareType(java.lang,"UnsupportedOperationException",RuntimeException);\r
+Clazz.makeConstructor(c$,\r
+function(){\r
+Clazz.superConstructor(this,UnsupportedOperationException,[]);\r
+});\r
+Clazz.makeConstructor(c$,\r
+function(cause){\r
+Clazz.superConstructor(this,UnsupportedOperationException,[(cause==null?null:cause.toString()),cause]);\r
+},"Throwable");\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.target=null;\r
+Clazz.instantialize(this,arguments);\r
+},java.lang.reflect,"InvocationTargetException",Exception);\r
+Clazz.makeConstructor(c$,\r
+function(){\r
+Clazz.superConstructor(this,java.lang.reflect.InvocationTargetException,[Clazz.castNullAs("Throwable")]);\r
+});\r
+Clazz.makeConstructor(c$,\r
+function(exception){\r
+Clazz.superConstructor(this,java.lang.reflect.InvocationTargetException,[null,exception]);\r
+this.target=exception;\r
+},"Throwable");\r
+Clazz.makeConstructor(c$,\r
+function(exception,detailMessage){\r
+Clazz.superConstructor(this,java.lang.reflect.InvocationTargetException,[detailMessage,exception]);\r
+this.target=exception;\r
+},"Throwable,~S");\r
+Clazz.defineMethod(c$,"getTargetException",\r
+function(){\r
+return this.target;\r
+});\r
+Clazz.overrideMethod(c$,"getCause",\r
+function(){\r
+return this.target;\r
+});\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.undeclaredThrowable=null;\r
+Clazz.instantialize(this,arguments);\r
+},java.lang.reflect,"UndeclaredThrowableException",RuntimeException);\r
+Clazz.makeConstructor(c$,\r
+function(exception){\r
+Clazz.superConstructor(this,java.lang.reflect.UndeclaredThrowableException);\r
+this.undeclaredThrowable=exception;\r
+this.initCause(exception);\r
+},"Throwable");\r
+Clazz.makeConstructor(c$,\r
+function(exception,detailMessage){\r
+Clazz.superConstructor(this,java.lang.reflect.UndeclaredThrowableException,[detailMessage]);\r
+this.undeclaredThrowable=exception;\r
+this.initCause(exception);\r
+},"Throwable,~S");\r
+Clazz.defineMethod(c$,"getUndeclaredThrowable",\r
+function(){\r
+return this.undeclaredThrowable;\r
+});\r
+Clazz.overrideMethod(c$,"getCause",\r
+function(){\r
+return this.undeclaredThrowable;\r
+});\r
+\r
+c$=Clazz.declareType(java.io,"IOException",Exception);\r
+\r
+\r
+c$=Clazz.declareType(java.io,"CharConversionException",java.io.IOException);\r
+\r
+c$=Clazz.declareType(java.io,"EOFException",java.io.IOException);\r
+\r
+c$=Clazz.declareType(java.io,"FileNotFoundException",java.io.IOException);\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.bytesTransferred=0;\r
+Clazz.instantialize(this,arguments);\r
+},java.io,"InterruptedIOException",java.io.IOException);\r
+\r
+c$=Clazz.declareType(java.io,"ObjectStreamException",java.io.IOException);\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.classname=null;\r
+Clazz.instantialize(this,arguments);\r
+},java.io,"InvalidClassException",java.io.ObjectStreamException);\r
+Clazz.makeConstructor(c$,\r
+function(className,detailMessage){\r
+Clazz.superConstructor(this,java.io.InvalidClassException,[detailMessage]);\r
+this.classname=className;\r
+},"~S,~S");\r
+Clazz.defineMethod(c$,"getMessage",\r
+function(){\r
+var msg=Clazz.superCall(this,java.io.InvalidClassException,"getMessage",[]);\r
+if(this.classname!=null){\r
+msg=this.classname+';' + ' '+msg;\r
+}return msg;\r
+});\r
+\r
+c$=Clazz.declareType(java.io,"InvalidObjectException",java.io.ObjectStreamException);\r
+\r
+c$=Clazz.declareType(java.io,"NotActiveException",java.io.ObjectStreamException);\r
+\r
+c$=Clazz.declareType(java.io,"NotSerializableException",java.io.ObjectStreamException);\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.eof=false;\r
+this.length=0;\r
+Clazz.instantialize(this,arguments);\r
+},java.io,"OptionalDataException",java.io.ObjectStreamException);\r
+\r
+c$=Clazz.declareType(java.io,"StreamCorruptedException",java.io.ObjectStreamException);\r
+\r
+c$=Clazz.declareType(java.io,"SyncFailedException",java.io.IOException);\r
+\r
+c$=Clazz.declareType(java.io,"UnsupportedEncodingException",java.io.IOException);\r
+\r
+c$=Clazz.declareType(java.io,"UTFDataFormatException",java.io.IOException);\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.detail=null;\r
+Clazz.instantialize(this,arguments);\r
+},java.io,"WriteAbortedException",java.io.ObjectStreamException);\r
+Clazz.makeConstructor(c$,\r
+function(detailMessage,rootCause){\r
+Clazz.superConstructor(this,java.io.WriteAbortedException,[detailMessage]);\r
+this.detail=rootCause;\r
+this.initCause(rootCause);\r
+},"~S,Exception");\r
+Clazz.defineMethod(c$,"getMessage",\r
+function(){\r
+var msg=Clazz.superCall(this,java.io.WriteAbortedException,"getMessage",[]);\r
+return (this.detail ? msg + "; "+this.detail.toString() : msg);\r
+});\r
+Clazz.overrideMethod(c$,"getCause",\r
+function(){\r
+return this.detail;\r
+});\r
+\r
+c$=Clazz.declareType(javautil,"ConcurrentModificationException",RuntimeException);\r
+Clazz.makeConstructor(c$,\r
+function(){\r
+Clazz.superConstructor(this,javautil.ConcurrentModificationException,[]);\r
+});\r
+\r
+c$=Clazz.declareType(javautil,"EmptyStackException",RuntimeException);\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.className=null;\r
+this.key=null;\r
+Clazz.instantialize(this,arguments);\r
+},javautil,"MissingResourceException",RuntimeException);\r
+Clazz.makeConstructor(c$,\r
+function(detailMessage,className,resourceName){\r
+Clazz.superConstructor(this,javautil.MissingResourceException,[detailMessage]);\r
+this.className=className;\r
+this.key=resourceName;\r
+},"~S,~S,~S");\r
+Clazz.defineMethod(c$,"getClassName",\r
+function(){\r
+return this.className;\r
+});\r
+Clazz.defineMethod(c$,"getKey",\r
+function(){\r
+return this.key;\r
+});\r
+\r
+c$=Clazz.declareType(javautil,"NoSuchElementException",RuntimeException);\r
+\r
+c$=Clazz.declareType(javautil,"TooManyListenersException",Exception);\r
+\r
+c$=Clazz.declareType(java.lang,"Void");\r
+Clazz.defineStatics(c$,\r
+"TYPE",null);\r
+{\r
+java.lang.Void.TYPE=java.lang.Void;\r
+}Clazz.declareInterface(java.lang.reflect,"GenericDeclaration");\r
+Clazz.declareInterface(java.lang.reflect,"AnnotatedElement");\r
+\r
+c$=Clazz.declareType(java.lang.reflect,"AccessibleObject",null,java.lang.reflect.AnnotatedElement);\r
+Clazz.makeConstructor(c$,\r
+function(){\r
+});\r
+Clazz.defineMethod(c$,"isAccessible",\r
+function(){\r
+return false;\r
+});\r
+c$.setAccessible=Clazz.defineMethod(c$,"setAccessible",\r
+function(objects,flag){\r
+return;\r
+},"~A,~B");\r
+Clazz.defineMethod(c$,"setAccessible",\r
+function(flag){\r
+return;\r
+},"~B");\r
+Clazz.overrideMethod(c$,"isAnnotationPresent",\r
+function(annotationType){\r
+return false;\r
+},"Class");\r
+Clazz.overrideMethod(c$,"getDeclaredAnnotations",\r
+function(){\r
+return new Array(0);\r
+});\r
+Clazz.overrideMethod(c$,"getAnnotations",\r
+function(){\r
+return new Array(0);\r
+});\r
+Clazz.overrideMethod(c$,"getAnnotation",\r
+function(annotationType){\r
+return null;\r
+},"Class");\r
+c$.marshallArguments=Clazz.defineMethod(c$,"marshallArguments",\r
+function(parameterTypes,args){\r
+return null;\r
+},"~A,~A");\r
+Clazz.defineMethod(c$,"invokeV",\r
+function(receiver,args){\r
+return;\r
+},"~O,~A");\r
+Clazz.defineMethod(c$,"invokeL",\r
+function(receiver,args){\r
+return null;\r
+},"~O,~A");\r
+Clazz.defineMethod(c$,"invokeI",\r
+function(receiver,args){\r
+return 0;\r
+},"~O,~A");\r
+Clazz.defineMethod(c$,"invokeJ",\r
+function(receiver,args){\r
+return 0;\r
+},"~O,~A");\r
+Clazz.defineMethod(c$,"invokeF",\r
+function(receiver,args){\r
+return 0.0;\r
+},"~O,~A");\r
+Clazz.defineMethod(c$,"invokeD",\r
+function(receiver,args){\r
+return 0.0;\r
+},"~O,~A");\r
+c$.emptyArgs=c$.prototype.emptyArgs=new Array(0);\r
+Clazz.declareInterface(java.lang.reflect,"InvocationHandler");\r
+c$=Clazz.declareInterface(java.lang.reflect,"Member");\r
+Clazz.defineStatics(c$,\r
+"PUBLIC",0,\r
+"DECLARED",1);\r
+\r
+c$=Clazz.declareType(java.lang.reflect,"Modifier");\r
+Clazz.makeConstructor(c$,\r
+function(){\r
+});\r
+c$.isAbstract=Clazz.defineMethod(c$,"isAbstract",\r
+function(modifiers){\r
+return((modifiers&1024)!=0);\r
+},"~N");\r
+c$.isFinal=Clazz.defineMethod(c$,"isFinal",\r
+function(modifiers){\r
+return((modifiers&16)!=0);\r
+},"~N");\r
+c$.isInterface=Clazz.defineMethod(c$,"isInterface",\r
+function(modifiers){\r
+return((modifiers&512)!=0);\r
+},"~N");\r
+c$.isNative=Clazz.defineMethod(c$,"isNative",\r
+function(modifiers){\r
+return((modifiers&256)!=0);\r
+},"~N");\r
+c$.isPrivate=Clazz.defineMethod(c$,"isPrivate",\r
+function(modifiers){\r
+return((modifiers&2)!=0);\r
+},"~N");\r
+c$.isProtected=Clazz.defineMethod(c$,"isProtected",\r
+function(modifiers){\r
+return((modifiers&4)!=0);\r
+},"~N");\r
+c$.isPublic=Clazz.defineMethod(c$,"isPublic",\r
+function(modifiers){\r
+return((modifiers&1)!=0);\r
+},"~N");\r
+c$.isStatic=Clazz.defineMethod(c$,"isStatic",\r
+function(modifiers){\r
+return((modifiers&8)!=0);\r
+},"~N");\r
+c$.isStrict=Clazz.defineMethod(c$,"isStrict",\r
+function(modifiers){\r
+return((modifiers&2048)!=0);\r
+},"~N");\r
+c$.isSynchronized=Clazz.defineMethod(c$,"isSynchronized",\r
+function(modifiers){\r
+return((modifiers&32)!=0);\r
+},"~N");\r
+c$.isTransient=Clazz.defineMethod(c$,"isTransient",\r
+function(modifiers){\r
+return((modifiers&128)!=0);\r
+},"~N");\r
+c$.isVolatile=Clazz.defineMethod(c$,"isVolatile",\r
+function(modifiers){\r
+return((modifiers&64)!=0);\r
+},"~N");\r
+c$.toString=Clazz.defineMethod(c$,"toString",\r
+function(modifiers){\r
+var sb=new Array(0);\r
+if(java.lang.reflect.Modifier.isPublic(modifiers))sb[sb.length]="public";\r
+if(java.lang.reflect.Modifier.isProtected(modifiers))sb[sb.length]="protected";\r
+if(java.lang.reflect.Modifier.isPrivate(modifiers))sb[sb.length]="private";\r
+if(java.lang.reflect.Modifier.isAbstract(modifiers))sb[sb.length]="abstract";\r
+if(java.lang.reflect.Modifier.isStatic(modifiers))sb[sb.length]="static";\r
+if(java.lang.reflect.Modifier.isFinal(modifiers))sb[sb.length]="final";\r
+if(java.lang.reflect.Modifier.isTransient(modifiers))sb[sb.length]="transient";\r
+if(java.lang.reflect.Modifier.isVolatile(modifiers))sb[sb.length]="volatile";\r
+if(java.lang.reflect.Modifier.isSynchronized(modifiers))sb[sb.length]="synchronized";\r
+if(java.lang.reflect.Modifier.isNative(modifiers))sb[sb.length]="native";\r
+if(java.lang.reflect.Modifier.isStrict(modifiers))sb[sb.length]="strictfp";\r
+if(java.lang.reflect.Modifier.isInterface(modifiers))sb[sb.length]="interface";\r
+if(sb.length>0){\r
+return sb.join(" ");\r
+}return"";\r
+},"~N");\r
+Clazz.defineStatics(c$,\r
+"PUBLIC",0x1,\r
+"PRIVATE",0x2,\r
+"PROTECTED",0x4,\r
+"STATIC",0x8,\r
+"FINAL",0x10,\r
+"SYNCHRONIZED",0x20,\r
+"VOLATILE",0x40,\r
+"TRANSIENT",0x80,\r
+"NATIVE",0x100,\r
+"INTERFACE",0x200,\r
+"ABSTRACT",0x400,\r
+"STRICT",0x800,\r
+"BRIDGE",0x40,\r
+"VARARGS",0x80,\r
+"SYNTHETIC",0x1000,\r
+"ANNOTATION",0x2000,\r
+"ENUM",0x4000);\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.clazz=null;\r
+this.parameterTypes=null;\r
+this.exceptionTypes=null;\r
+this.modifiers=0;\r
+Clazz.instantialize(this,arguments);\r
+},java.lang.reflect,"Constructor",java.lang.reflect.AccessibleObject,[java.lang.reflect.GenericDeclaration,java.lang.reflect.Member]);\r
+Clazz.makeConstructor(c$,\r
+function(declaringClass,parameterTypes,checkedExceptions,modifiers){\r
+Clazz.superConstructor(this,java.lang.reflect.Constructor,[]);\r
+this.clazz=declaringClass;\r
+this.parameterTypes=parameterTypes;\r
+this.exceptionTypes=checkedExceptions;\r
+this.modifiers=modifiers;\r
+},"Class,~A,~A,~N");\r
+Clazz.overrideMethod(c$,"getTypeParameters",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"toGenericString",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"getGenericParameterTypes",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"getGenericExceptionTypes",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"getParameterAnnotations",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"isVarArgs",\r
+function(){\r
+return false;\r
+});\r
+Clazz.overrideMethod(c$,"isSynthetic",\r
+function(){\r
+return false;\r
+});\r
+Clazz.overrideMethod(c$,"equals",\r
+function(object){\r
+if(object!=null&&Clazz.instanceOf(object,java.lang.reflect.Constructor)){\r
+var other=object;\r
+if(this.getDeclaringClass()===other.getDeclaringClass()){\r
+var params1=this.parameterTypes;\r
+var params2=other.parameterTypes;\r
+if(params1.length==params2.length){\r
+for(var i=0;i<params1.length;i++){\r
+if(params1[i]!==params2[i])return false;\r
+}\r
+return true;\r
+}}}return false;\r
+},"~O");\r
+Clazz.overrideMethod(c$,"getDeclaringClass",\r
+function(){\r
+return this.clazz;\r
+});\r
+Clazz.defineMethod(c$,"getExceptionTypes",\r
+function(){\r
+return this.exceptionTypes;\r
+});\r
+Clazz.overrideMethod(c$,"getModifiers",\r
+function(){\r
+return this.modifiers;\r
+});\r
+Clazz.overrideMethod(c$,"getName",\r
+function(){\r
+return this.getDeclaringClass().getName();\r
+});\r
+Clazz.defineMethod(c$,"getParameterTypes",\r
+function(){\r
+return this.parameterTypes;\r
+});\r
+Clazz.overrideMethod(c$,"hashCode",\r
+function(){\r
+return this.getDeclaringClass().getName().hashCode();\r
+});\r
+Clazz.defineMethod(c$,"newInstance",\r
+function(args){\r
+var instance=new this.clazz(Clazz.inheritArgs);\r
+Clazz.instantialize(instance,args);\r
+return instance;\r
+},"~A");\r
+Clazz.overrideMethod(c$,"toString",\r
+function(){\r
+return null;\r
+});\r
+\r
+c$=Clazz.declareType(java.lang.reflect,"Field",java.lang.reflect.AccessibleObject,java.lang.reflect.Member);\r
+Clazz.overrideMethod(c$,"isSynthetic",\r
+function(){\r
+return false;\r
+});\r
+Clazz.defineMethod(c$,"toGenericString",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"isEnumConstant",\r
+function(){\r
+return false;\r
+});\r
+Clazz.defineMethod(c$,"getGenericType",\r
+function(){\r
+return null;\r
+});\r
+Clazz.overrideMethod(c$,"equals",\r
+function(object){\r
+return false;\r
+},"~O");\r
+Clazz.overrideMethod(c$,"getDeclaringClass",\r
+function(){\r
+return null;\r
+});\r
+Clazz.overrideMethod(c$,"getName",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"getType",\r
+function(){\r
+return null;\r
+});\r
+Clazz.overrideMethod(c$,"hashCode",\r
+function(){\r
+return 0;\r
+});\r
+Clazz.overrideMethod(c$,"toString",\r
+function(){\r
+return null;\r
+});\r
+\r
+c$=Clazz.decorateAsClass(function(){\r
+this.clazz=null;\r
+this.name=null;\r
+this.returnType=null;\r
+this.parameterTypes=null;\r
+this.exceptionTypes=null;\r
+this.modifiers=0;\r
+Clazz.instantialize(this,arguments);\r
+},java.lang.reflect,"Method",java.lang.reflect.AccessibleObject,[java.lang.reflect.GenericDeclaration,java.lang.reflect.Member]);\r
+Clazz.makeConstructor(c$,\r
+function(declaringClass,name,parameterTypes,returnType,checkedExceptions,modifiers){\r
+Clazz.superConstructor(this,java.lang.reflect.Method,[]);\r
+this.clazz=declaringClass;\r
+this.name=name;\r
+this.parameterTypes=parameterTypes;\r
+this.returnType=returnType;\r
+this.exceptionTypes=checkedExceptions;\r
+this.modifiers=modifiers;\r
+},"Class,~S,~A,Class,~A,~N");\r
+Clazz.overrideMethod(c$,"getTypeParameters",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"toGenericString",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"getGenericParameterTypes",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"getGenericExceptionTypes",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"getGenericReturnType",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"getParameterAnnotations",\r
+function(){\r
+return null;\r
+});\r
+Clazz.defineMethod(c$,"isVarArgs",\r
+function(){\r
+return false;\r
+});\r
+Clazz.defineMethod(c$,"isBridge",\r
+function(){\r
+return false;\r
+});\r
+Clazz.overrideMethod(c$,"isSynthetic",\r
+function(){\r
+return false;\r
+});\r
+Clazz.defineMethod(c$,"getDefaultValue",\r
+function(){\r
+return null;\r
+});\r
+Clazz.overrideMethod(c$,"equals",\r
+function(object){\r
+if(object!=null&&Clazz.instanceOf(object,java.lang.reflect.Method)){\r
+var other=object;\r
+if((this.getDeclaringClass()===other.getDeclaringClass())&&(this.getName()===other.getName())){\r
+var params1=this.parameterTypes;\r
+var params2=other.parameterTypes;\r
+if(params1.length==params2.length){\r
+for(var i=0;i<params1.length;i++){\r
+if(params1[i]!==params2[i])return false;\r
+}\r
+return true;\r
+}}}return false;\r
+},"~O");\r
+Clazz.overrideMethod(c$,"getDeclaringClass",\r
+function(){\r
+return this.clazz;\r
+});\r
+Clazz.defineMethod(c$,"getExceptionTypes",\r
+function(){\r
+return this.exceptionTypes;\r
+});\r
+Clazz.overrideMethod(c$,"getModifiers",\r
+function(){\r
+return this.modifiers;\r
+});\r
+Clazz.overrideMethod(c$,"getName",\r
+function(){\r
+return this.name;\r
+});\r
+Clazz.defineMethod(c$,"getParameterTypes",\r
+function(){\r
+return this.parameterTypes; \r
+});\r
+Clazz.defineMethod(c$,"getReturnType",\r
+function(){\r
+return this.returnType;\r
+});\r
+Clazz.overrideMethod(c$,"hashCode",\r
+function(){\r
+return this.getDeclaringClass().getName().hashCode()^this.getName().hashCode();\r
+});\r
+Clazz.defineMethod(c$,"invoke",\r
+function(receiver,args){\r
+var m=this.clazz.prototype[this.getName()];\r
+if(m==null){\r
+m=this.clazz[this.getName()];\r
+}\r
+if(m!=null){\r
+m.apply(receiver,args);\r
+}else{\r
+\r
+}\r
+},"~O,~A");\r
+Clazz.overrideMethod(c$,"toString",\r
+function(){\r
+return null;\r
+});\r
+\r
+})(Clazz);\r