function eval() {
    [native code]
}
function parseInt() {
    [native code]
}
function parseFloat() {
    [native code]
}
function isNaN() {
    [native code]
}
function isFinite() {
    [native code]
}
function decodeURI() {
    [native code]
}
function encodeURI() {
    [native code]
}
function decodeURIComponent() {
    [native code]
}
function encodeURIComponent() {
    [native code]
}
function Object() {
    [native code]
}
function Function() {
    [native code]
}
function Array() {
    [native code]
}
function String() {
    [native code]
}
function Boolean() {
    [native code]
}
function Number() {
    [native code]
}
function Date() {
    [native code]
}
function RegExp() {
    [native code]
}
function Error() {
    [native code]
}
function EvalError() {
    [native code]
}
function RangeError() {
    [native code]
}
function ReferenceError() {
    [native code]
}
function SyntaxError() {
    [native code]
}
function TypeError() {
    [native code]
}
function URIError() {
    [native code]
}
function toString() {
    [native code]
}
function toLocaleString() {
    [native code]
}
function valueOf() {
    [native code]
}
function hasOwnProperty() {
    [native code]
}
function isPrototypeOf() {
    [native code]
}
function propertyIsEnumerable() {
    [native code]
}
function Function() {
    [native code]
}
function toString() {
    [native code]
}
function apply() {
    [native code]
}
function call() {
    [native code]
}
function Array() {
    [native code]
}
function toString() {
    [native code]
}
function toLocaleString() {
    [native code]
}
function concat() {
    [native code]
}
function join() {
    [native code]
}
function pop() {
    [native code]
}
function push() {
    [native code]
}
function reverse() {
    [native code]
}
function shift() {
    [native code]
}
function slice() {
    [native code]
}
function sort() {
    [native code]
}
function splice() {
    [native code]
}
function unshift() {
    [native code]
}
function String() {
    [native code]
}
function toString() {
    [native code]
}
function valueOf() {
    [native code]
}
function charAt() {
    [native code]
}
function charCodeAt() {
    [native code]
}
function concat() {
    [native code]
}
function indexOf() {
    [native code]
}
function lastIndexOf() {
    [native code]
}
function localeCompare() {
    [native code]
}
function match() {
    [native code]
}
function replace() {
    [native code]
}
function search() {
    [native code]
}
function slice() {
    [native code]
}
function split() {
    [native code]
}
function substring() {
    [native code]
}
function toLowerCase() {
    [native code]
}
function toLocaleLowerCase() {
    [native code]
}
function toUpperCase() {
    [native code]
}
function toLocaleUpperCase() {
    [native code]
}
function anchor() {
    [native code]
}
function big() {
    [native code]
}
function blink() {
    [native code]
}
function bold() {
    [native code]
}
function fixed() {
    [native code]
}
function fontcolor() {
    [native code]
}
function fontsize() {
    [native code]
}
function italics() {
    [native code]
}
function link() {
    [native code]
}
function small() {
    [native code]
}
function strike() {
    [native code]
}
function sub() {
    [native code]
}
function sup() {
    [native code]
}
function substr() {
    [native code]
}
function fromCharCode() {
    [native code]
}
function Boolean() {
    [native code]
}
function toString() {
    [native code]
}
function valueOf() {
    [native code]
}
function Number() {
    [native code]
}
function toString() {
    [native code]
}
function toLocaleString() {
    [native code]
}
function valueOf() {
    [native code]
}
function toFixed() {
    [native code]
}
function toExponential() {
    [native code]
}
function toPrecision() {
    [native code]
}
function abs() {
    [native code]
}
function acos() {
    [native code]
}
function asin() {
    [native code]
}
function atan() {
    [native code]
}
function atan2() {
    [native code]
}
function ceil() {
    [native code]
}
function cos() {
    [native code]
}
function exp() {
    [native code]
}
function floor() {
    [native code]
}
function log() {
    [native code]
}
function max() {
    [native code]
}
function min() {
    [native code]
}
function pow() {
    [native code]
}
function random() {
    [native code]
}
function round() {
    [native code]
}
function sin() {
    [native code]
}
function sqrt() {
    [native code]
}
function tan() {
    [native code]
}
function Date() {
    [native code]
}
function toString() {
    [native code]
}
function toDateString() {
    [native code]
}
function toTimeString() {
    [native code]
}
function toLocaleString() {
    [native code]
}
function toLocaleDateString() {
    [native code]
}
function valueOf() {
    [native code]
}
function getTime() {
    [native code]
}
function getFullYear() {
    [native code]
}
function getUTCFullYear() {
    [native code]
}
function getMonth() {
    [native code]
}
function getUTCMonth() {
    [native code]
}
function getDate() {
    [native code]
}
function getUTCDate() {
    [native code]
}
function getDay() {
    [native code]
}
function getUTCDay() {
    [native code]
}
function getHours() {
    [native code]
}
function getUTCHours() {
    [native code]
}
function getMinutes() {
    [native code]
}
function getUTCMinutes() {
    [native code]
}
function getSeconds() {
    [native code]
}
function getUTCSeconds() {
    [native code]
}
function getMilliseconds() {
    [native code]
}
function getUTCMilliseconds() {
    [native code]
}
function getTimezoneOffset() {
    [native code]
}
function setTime() {
    [native code]
}
function setMilliseconds() {
    [native code]
}
function setUTCMilliseconds() {
    [native code]
}
function setSeconds() {
    [native code]
}
function setUTCSeconds() {
    [native code]
}
function setMinutes() {
    [native code]
}
function setUTCMinutes() {
    [native code]
}
function setHours() {
    [native code]
}
function setUTCHours() {
    [native code]
}
function setDate() {
    [native code]
}
function setUTCDate() {
    [native code]
}
function setMonth() {
    [native code]
}
function setUTCMonth() {
    [native code]
}
function setFullYear() {
    [native code]
}
function setUTCFullYear() {
    [native code]
}
function toUTCString() {
    [native code]
}
function toUTCString() {
    [native code]
}
function toLocaleTimeString() {
    [native code]
}
function toUTCString() {
    [native code]
}
function setYear() {
    [native code]
}
function getYear() {
    [native code]
}
function parse() {
    [native code]
}
function UTC() {
    [native code]
}
function RegExp() {
    [native code]
}
function exec() {
    [native code]
}
function test() {
    [native code]
}
function toString() {
    [native code]
}
function Error() {
    [native code]
}
Error

function toString() {
    [native code]
}
