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