changeset 0:fbb6f4f89f76

info3_1week
author Syusaku Morita <e105716@ie.u-ryukyu.ac.jp>
date Fri, 27 Apr 2012 13:13:49 +0900
parents
children 6b217e0f301c
files .DS_Store fps/.DS_Store fps/fps.html fps/resources/J3DI.js fps/resources/J3DI.js~ fps/resources/J3DIMath.js fps/resources/jkl-parsexml.js fps/resources/keyboard.js fps/resources/makePanel.js fps/resources/makePanel.js~ fps/resources/mouse.js fps/resources/mouse.js~ fps/resources/parse.js fps/resources/parse.js~ fps/xml/Musi.xml fps/xml/cube.xml fps/xml/earth.xml fps/xml/object.xml fps/xml/object.xml~
diffstat 19 files changed, 31104 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
Binary file .DS_Store has changed
Binary file fps/.DS_Store has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/fps.html	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,223 @@
+<html>
+  <head>
+    <title>WebGL fps</title> 
+    <script src="resources/J3DI.js"> </script>    
+    <script src="resources/J3DIMath.js"> </script>
+    <script src="resources/parse.js"> </script>
+    <script src="resources/makePanel.js"> </script>
+    <script src="resources/jkl-parsexml.js"> </script>    
+    <script src="resources/keyboard.js"> </script>    
+    <script src="resources/mouse.js"> </script>    
+  </head>
+
+  <script id="vshader" type="x-shader/x-vertex">
+    uniform mat4 u_modelViewProjMatrix;
+    uniform mat4 u_normalMatrix;
+    uniform vec3 lightDir;
+
+    attribute vec3 vNormal;
+    attribute vec4 vTexCoord;
+    attribute vec4 vPosition;
+    
+    varying float v_Dot;
+    varying vec2 v_texCoord;
+    
+    void main()
+    {
+    gl_Position = u_modelViewProjMatrix * vPosition;
+    v_texCoord = vTexCoord.st;
+    vec4 transNormal = u_normalMatrix * vec4(vNormal,1);
+    v_Dot = max(dot(transNormal.xyz, lightDir), 0.0);
+    }
+  </script>
+
+  <script id="fshader" type="x-shader/x-fragment">
+    #ifdef GL_ES
+    precision mediump float;
+    #endif
+    
+    uniform sampler2D sampler2d;
+
+    varying float v_Dot;
+    varying vec2 v_texCoord;
+    
+    void main()
+    {
+    vec4 color = texture2D(sampler2d,v_texCoord);
+    color += vec4(0.1,0.1,0.1,1);
+//    if(color.a == 1.0)color=vec4(1,0,0,1);
+//    else color=vec4(0,1,1,1);
+    gl_FragColor = vec4(color.xyz * v_Dot, color.a);
+//    gl_FragColor = vec4(color.xyz * v_Dot, 0.5);
+    }
+  </script> 
+		
+
+  <script>
+    //画面(canvas)の大きさ
+    var w = 1024;
+    var h = 640;
+    
+    //var mvMatrix = mat4.create();
+
+    
+    function init()
+    {
+    gl = initWebGL("game", "vshader", "fshader", 
+    [ "vNormal", "vTexCoord", "vPosition"],
+    [ 0, 0, 0, 1 ], 10000);
+    
+    gl.uniform3f(gl.getUniformLocation(gl.program, "lightDir"), 1, 1, 1);
+    gl.uniform1i(gl.getUniformLocation(gl.program, "sampler2d"), 0);
+    
+    gl.enable(gl.TEXTURE_2D);
+    
+    modelMap = new XMLModelMap(gl);
+    modelMap.load("./xml/Cube.xml");
+    object = modelMap["Cube"];
+
+    return gl;
+    }
+    
+    function XMLModelMap(gl) {
+    	this.gl = gl;
+    }
+
+    XMLModelMap.prototype.load = function(file) {
+    var data = parseObj(file);
+    if(!data) return;
+    for(var name in data) {
+    this[name] = makeXmlObj(gl,data[name]);
+    this[name].texture = loadImageTexture(this.gl, data[name].image);
+    }
+    }
+
+    xPos = 0;
+    yPos = 0;
+    zPos = 0;
+
+	xEye = 0;
+    yEye = 0;
+    zEye = 0;
+
+    speedX = 0;
+	speedZ = 0;
+	
+	rotateX = 0;
+	rotateY = 0;
+
+
+    function reshape(ctx, ortho)
+    {
+    var canvas = document.getElementById('game');
+
+    width = canvas.width;
+    height = canvas.height;
+    
+    ctx.viewport(0, 0, width, height);
+    
+    var t = width/height;
+    
+    ctx.perspectiveMatrix = new J3DIMatrix4();
+    ctx.perspectiveMatrix.frustum(-0.5, 0.5, -0.5 / t, 0.5 / t, 1, 100000);
+
+    }
+
+
+    FILPCOUNT = 0;
+    function loop(ctx, ortho)
+    {
+    ctx.clear(ctx.COLOR_BUFFER_BIT | ctx.DEPTH_BUFFER_BIT);
+
+	ctx.perspectiveMatrix.lookat([-xEye,-yEye,-zEye], [0,0,-10], [0,1,0]);
+	ctx.perspectiveMatrix.translate(-xPos,-yPos,-zPos);
+
+	PutSpriteV(ctx, X, Y, Z, 1, matrix, object);
+
+	move();	
+    ctx.flush();
+
+    FILPCOUNT++;
+    framerate.snapshot();
+    }
+
+	function move(){
+		if(speedX != 0) xPos += speedX;
+		if(speedZ != 0) zPos -= speedZ;
+		if(rotateX != 0) xEye += rotateX;
+		if(rotateY != 0) yEye -= rotateY;
+	}
+
+    function opening(ctx, ortho)
+    {
+    reshape(ctx, ortho);
+    ctx.clear(ctx.COLOR_BUFFER_BIT | ctx.DEPTH_BUFFER_BIT);
+
+    ctx.flush();
+
+    var f = function() { loop(ctx, ortho); };
+    setInterval(f, 10);
+
+    }
+
+
+    // display size
+    var W = 1024;
+    var H = 640;
+
+    function start() 
+    {
+    var ortho = {left:0, right:200, bottom:140, top:0}
+    matrix = new J3DIMatrix4(); // global variable
+    X = 0; 
+    Y = 0;
+    Z = -10;
+
+//    var c = document.getElementById("game");
+//    c.width = W;
+//    c.height = H;
+
+    var ctx = init();
+
+    o = function() {opening(ctx, ortho);};
+    setTimeout(o, 10);
+    framerate = new Framerate("framerate");
+    }
+
+
+    function loadFile(objectname)
+    {
+    var filename = "./xml/"+objectname+".xml";
+    modelMap.load(filename);
+//    console.log(filename);
+    object = modelMap[objectname];
+    }
+
+function objToString(obj,map,indent){
+    indent=indent?indent+"\t":"";if(!map)map={};
+    if(map[obj])return;
+map[obj]=true;
+    if(typeof obj=="string"||typeof obj=="number"||typeof obj=="boolena")return indent+obj;
+    if(typeof obj=="array"){
+
+	for(var i=0,s="";i < obj.length;i++ )s+=objToString(obj[i],map,indent)+",";
+	return indent+"["+s+"]";
+    }
+    var s="";for(var i in obj)s+=indent+"\t"+i+":"+objToString(obj[i],map)+"\n";return indent+"{"+s+"}";
+}
+
+  </script>
+
+  <body onload="start()" onkeydown="keyboardDown()" onkeypress="keyboardPress()" onkeyup="keyboardUp()" onmousedown="mouseDown();" onmouseup="mouseUp();" style='overflow:hidden; '>
+    <canvas id="game" width=1024 height=640 >
+    </canvas>
+    <form onsubmit="loadFile(document.getElementById('filename').value);return false;">
+      <input type="text" id="filename" value="Cube">
+    </form>
+    <div id="framerate"></div>
+    <div id="console"></div>
+
+
+  </body>
+
+</html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/resources/J3DI.js	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,583 @@
+/*
+ * Copyright (C) 2009 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+//
+// initWebGL
+//
+// Initialize the Canvas element with the passed name as a WebGL object and return the
+// WebGLRenderingContext.
+//
+// Load shaders with the passed names and create a program with them. Return this program
+// in the 'program' property of the returned context.
+//
+// For each string in the passed attribs array, bind an attrib with that name at that index.
+// Once the attribs are bound, link the program and then use it.
+//
+// Set the clear color to the passed array (4 values) and set the clear depth to the passed value.
+// Enable depth testing and blending with a blend func of (SRC_ALPHA, ONE_MINUS_SRC_ALPHA)
+//
+// A console function is added to the context: console(string). This can be replaced
+// by the caller. By default, it maps to the window.console() function on WebKit and to
+// an empty function on other browsers.
+//
+function initWebGL(canvasName, vshader, fshader, attribs, clearColor, clearDepth)
+{
+    var canvas = document.getElementById(canvasName);
+    var gl = canvas.getContext("experimental-webgl");
+    if (!gl) {
+        alert("No WebGL context found");
+        return null;
+    }
+
+    // Add a console
+    gl.console = ("console" in window) ? window.console : { log: function() { } };
+
+    // create our shaders
+    var vertexShader = loadShader(gl, vshader);
+    var fragmentShader = loadShader(gl, fshader);
+
+    if (!vertexShader || !fragmentShader)
+        return null;
+
+    // Create the program object
+    gl.program = gl.createProgram();
+
+    if (!gl.program)
+        return null;
+
+    // Attach our two shaders to the program
+    gl.attachShader (gl.program, vertexShader);
+    gl.attachShader (gl.program, fragmentShader);
+
+    // Bind attributes
+    for (var i = 0; i < attribs.length; ++i)
+        gl.bindAttribLocation (gl.program, i, attribs[i]);
+
+    // Link the program
+    gl.linkProgram(gl.program);
+
+    // Check the link status
+    var linked = gl.getProgramParameter(gl.program, gl.LINK_STATUS);
+    if (!linked) {
+        // something went wrong with the link
+        var error = gl.getProgramInfoLog (gl.program);
+        gl.console.log("Error in program linking:"+error);
+
+        gl.deleteProgram(gl.program);
+        gl.deleteProgram(fragmentShader);
+        gl.deleteProgram(vertexShader);
+
+        return null;
+    }
+
+    gl.useProgram(gl.program);
+
+    gl.clearColor(clearColor[0], clearColor[1], clearColor[2], clearColor[3]);
+    gl.clearDepth(clearDepth);
+
+    gl.enable(gl.DEPTH_TEST);
+    gl.enable(gl.BLEND);
+    gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
+
+    return gl;
+}
+
+//
+// loadShader
+//
+// 'shaderId' is the id of a <script> element containing the shader source string.
+// Load this shader and return the WebGLShader object corresponding to it.
+//
+function loadShader(ctx, shaderId)
+{
+    var shaderScript = document.getElementById(shaderId);
+    if (!shaderScript) {
+        ctx.console.log("*** Error: shader script '"+shaderId+"' not found");
+        return null;
+    }
+
+    if (shaderScript.type == "x-shader/x-vertex")
+        var shaderType = ctx.VERTEX_SHADER;
+    else if (shaderScript.type == "x-shader/x-fragment")
+        var shaderType = ctx.FRAGMENT_SHADER;
+    else {
+        ctx.console.log("*** Error: shader script '"+shaderId+"' of undefined type '"+shaderScript.type+"'");
+        return null;
+    }
+
+    // Create the shader object
+    var shader = ctx.createShader(shaderType);
+    if (shader == null) {
+        ctx.console.log("*** Error: unable to create shader '"+shaderId+"'");
+        return null;
+    }
+
+    // Load the shader source
+    ctx.shaderSource(shader, shaderScript.text);
+
+    // Compile the shader
+    ctx.compileShader(shader);
+
+    // Check the compile status
+    var compiled = ctx.getShaderParameter(shader, ctx.COMPILE_STATUS);
+    if (!compiled) {
+        // Something went wrong during compilation; get the error
+        var error = ctx.getShaderInfoLog(shader);
+        ctx.console.log("*** Error compiling shader '"+shaderId+"':"+error);
+        ctx.deleteShader(shader);
+        return null;
+    }
+
+    return shader;
+}
+
+//
+// makeBox
+//
+// Create a box with vertices, normals and texCoords. Create VBOs for each as well as the index array.
+// Return an object with the following properties:
+//
+//  normalObject        WebGLBuffer object for normals
+//  texCoordObject      WebGLBuffer object for texCoords
+//  vertexObject        WebGLBuffer object for vertices
+//  indexObject         WebGLBuffer object for indices
+//  numIndices          The number of indices in the indexObject
+//
+function makeBox(ctx)
+{
+    // box
+    //    v6----- v5
+    //   /|      /|
+    //  v1------v0|
+    //  | |     | |
+    //  | |v7---|-|v4
+    //  |/      |/
+    //  v2------v3
+    //
+    // vertex coords array
+    var vertices = new Float32Array(
+        [  1, 1, 1,  -1, 1, 1,  -1,-1, 1,   1,-1, 1,    // v0-v1-v2-v3 front
+           1, 1, 1,   1,-1, 1,   1,-1,-1,   1, 1,-1,    // v0-v3-v4-v5 right
+           1, 1, 1,   1, 1,-1,  -1, 1,-1,  -1, 1, 1,    // v0-v5-v6-v1 top
+          -1, 1, 1,  -1, 1,-1,  -1,-1,-1,  -1,-1, 1,    // v1-v6-v7-v2 left
+          -1,-1,-1,   1,-1,-1,   1,-1, 1,  -1,-1, 1,    // v7-v4-v3-v2 bottom
+           1,-1,-1,  -1,-1,-1,  -1, 1,-1,   1, 1,-1 ]   // v4-v7-v6-v5 back
+    );
+
+    // normal array
+    var normals = new Float32Array(
+        [  0, 0, 1,   0, 0, 1,   0, 0, 1,   0, 0, 1,     // v0-v1-v2-v3 front
+           1, 0, 0,   1, 0, 0,   1, 0, 0,   1, 0, 0,     // v0-v3-v4-v5 right
+           0, 1, 0,   0, 1, 0,   0, 1, 0,   0, 1, 0,     // v0-v5-v6-v1 top
+          -1, 0, 0,  -1, 0, 0,  -1, 0, 0,  -1, 0, 0,     // v1-v6-v7-v2 left
+           0,-1, 0,   0,-1, 0,   0,-1, 0,   0,-1, 0,     // v7-v4-v3-v2 bottom
+           0, 0,-1,   0, 0,-1,   0, 0,-1,   0, 0,-1 ]    // v4-v7-v6-v5 back
+       );
+
+
+    // texCoord array
+    var texCoords = new Float32Array(
+        [  1, 1,   0, 1,   0, 0,   1, 0,    // v0-v1-v2-v3 front
+           0, 1,   0, 0,   1, 0,   1, 1,    // v0-v3-v4-v5 right
+           1, 0,   1, 1,   0, 1,   0, 0,    // v0-v5-v6-v1 top
+           1, 1,   0, 1,   0, 0,   1, 0,    // v1-v6-v7-v2 left
+           0, 0,   1, 0,   1, 1,   0, 1,    // v7-v4-v3-v2 bottom
+           0, 0,   1, 0,   1, 1,   0, 1 ]   // v4-v7-v6-v5 back
+       );
+
+    // index array
+    var indices = new Uint8Array(
+        [  0, 1, 2,   0, 2, 3,    // front
+           4, 5, 6,   4, 6, 7,    // right
+           8, 9,10,   8,10,11,    // top
+          12,13,14,  12,14,15,    // left
+          16,17,18,  16,18,19,    // bottom
+          20,21,22,  20,22,23 ]   // back
+      );
+
+    var retval = { };
+
+    retval.normalObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.normalObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, normals, ctx.STATIC_DRAW);
+
+    retval.texCoordObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.texCoordObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, texCoords, ctx.STATIC_DRAW);
+
+    retval.vertexObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.vertexObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, vertices, ctx.STATIC_DRAW);
+
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, null);
+
+    retval.indexObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, retval.indexObject);
+    ctx.bufferData(ctx.ELEMENT_ARRAY_BUFFER, indices, ctx.STATIC_DRAW);
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, null);
+
+    retval.numIndices = indices.length;
+
+    return retval;
+}
+
+//
+// makeSphere
+//
+// Create a sphere with the passed number of latitude and longitude bands and the passed radius.
+// Sphere has vertices, normals and texCoords. Create VBOs for each as well as the index array.
+// Return an object with the following properties:
+//
+//  normalObject        WebGLBuffer object for normals
+//  texCoordObject      WebGLBuffer object for texCoords
+//  vertexObject        WebGLBuffer object for vertices
+//  indexObject         WebGLBuffer object for indices
+//  numIndices          The number of indices in the indexObject
+//
+function makeSphere(ctx, radius, lats, longs)
+{
+    var geometryData = [ ];
+    var normalData = [ ];
+    var texCoordData = [ ];
+    var indexData = [ ];
+
+    for (var latNumber = 0; latNumber <= lats; ++latNumber) {
+        for (var longNumber = 0; longNumber <= longs; ++longNumber) {
+            var theta = latNumber * Math.PI / lats;
+            var phi = longNumber * 2 * Math.PI / longs;
+            var sinTheta = Math.sin(theta);
+            var sinPhi = Math.sin(phi);
+            var cosTheta = Math.cos(theta);
+            var cosPhi = Math.cos(phi);
+
+            var x = cosPhi * sinTheta;
+            var y = cosTheta;
+            var z = sinPhi * sinTheta;
+            var u = 1-(longNumber/longs);
+            var v = latNumber/lats;
+
+            normalData.push(x);
+            normalData.push(y);
+            normalData.push(z);
+            texCoordData.push(u);
+            texCoordData.push(v);
+            geometryData.push(radius * x);
+            geometryData.push(radius * y);
+            geometryData.push(radius * z);
+        }
+    }
+
+    for (var latNumber = 0; latNumber < lats; ++latNumber) {
+        for (var longNumber = 0; longNumber < longs; ++longNumber) {
+            var first = (latNumber * (longs+1)) + longNumber;
+            var second = first + longs + 1;
+            indexData.push(first);
+            indexData.push(second);
+            indexData.push(first+1);
+
+            indexData.push(second);
+            indexData.push(second+1);
+            indexData.push(first+1);
+        }
+    }
+
+    var retval = { };
+
+    retval.normalObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.normalObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(normalData), ctx.STATIC_DRAW);
+
+    retval.texCoordObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.texCoordObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(texCoordData), ctx.STATIC_DRAW);
+
+    retval.vertexObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.vertexObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(geometryData), ctx.STATIC_DRAW);
+
+    retval.numIndices = indexData.length;
+    retval.indexObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, retval.indexObject);
+    ctx.bufferData(ctx.ELEMENT_ARRAY_BUFFER, new Uint16Array(indexData), ctx.STREAM_DRAW);
+
+    return retval;
+}
+
+//
+// loadObj
+//
+// Load a .obj file from the passed URL. Return an object with a 'loaded' property set to false.
+// When the object load is complete, the 'loaded' property becomes true and the following
+// properties are set:
+//
+//  normalObject        WebGLBuffer object for normals
+//  texCoordObject      WebGLBuffer object for texCoords
+//  vertexObject        WebGLBuffer object for vertices
+//  indexObject         WebGLBuffer object for indices
+//  numIndices          The number of indices in the indexObject
+//
+function loadObj(ctx, url)
+{
+    var obj = { loaded : false };
+    obj.ctx = ctx;
+    var req = new XMLHttpRequest();
+    req.obj = obj;
+    req.onreadystatechange = function () { processLoadObj(req) };
+    req.open("GET", url, true);
+    req.send(null);
+    return obj;
+}
+
+function processLoadObj(req)
+{
+    req.obj.ctx.console.log("req="+req)
+    // only if req shows "complete"
+    if (req.readyState == 4) {
+        doLoadObj(req.obj, req.responseText);
+    }
+}
+
+function doLoadObj(obj, text)
+{
+    vertexArray = [ ];
+    normalArray = [ ];
+    textureArray = [ ];
+    indexArray = [ ];
+
+    var vertex = [ ];
+    var normal = [ ];
+    var texture = [ ];
+    var facemap = { };
+    var index = 0;
+
+    // This is a map which associates a range of indices with a name
+    // The name comes from the 'g' tag (of the form "g NAME"). Indices
+    // are part of one group until another 'g' tag is seen. If any indices
+    // come before a 'g' tag, it is given the group name "_unnamed"
+    // 'group' is an object whose property names are the group name and
+    // whose value is a 2 element array with [<first index>, <num indices>]
+    var groups = { };
+    var currentGroup = [-1, 0];
+    groups["_unnamed"] = currentGroup;
+
+    var lines = text.split("\n");
+    for (var lineIndex in lines) {
+        var line = lines[lineIndex].replace(/[ \t]+/g, " ").replace(/\s\s*$/, "");
+
+        // ignore comments
+        if (line[0] == "#")
+            continue;
+
+        var array = line.split(" ");
+        if (array[0] == "g") {
+            // new group
+            currentGroup = [indexArray.length, 0];
+            groups[array[1]] = currentGroup;
+        }
+        else if (array[0] == "v") {
+            // vertex
+            vertex.push(parseFloat(array[1]));
+            vertex.push(parseFloat(array[2]));
+            vertex.push(parseFloat(array[3]));
+        }
+        else if (array[0] == "vt") {
+            // normal
+            texture.push(parseFloat(array[1]));
+            texture.push(parseFloat(array[2]));
+        }
+        else if (array[0] == "vn") {
+            // normal
+            normal.push(parseFloat(array[1]));
+            normal.push(parseFloat(array[2]));
+            normal.push(parseFloat(array[3]));
+        }
+        else if (array[0] == "f") {
+            // face
+            if (array.length != 4) {
+                obj.ctx.console.log("*** Error: face '"+line+"' not handled");
+                continue;
+            }
+
+            for (var i = 1; i < 4; ++i) {
+                if (!(array[i] in facemap)) {
+                    // add a new entry to the map and arrays
+                    var f = array[i].split("/");
+                    var vtx, nor, tex;
+
+                    if (f.length == 1) {
+                        vtx = parseInt(f[0]) - 1;
+                        nor = vtx;
+                        tex = vtx;
+                    }
+                    else if (f.length = 3) {
+                        vtx = parseInt(f[0]) - 1;
+                        tex = parseInt(f[1]) - 1;
+                        nor = parseInt(f[2]) - 1;
+                    }
+                    else {
+                        obj.ctx.console.log("*** Error: did not understand face '"+array[i]+"'");
+                        return null;
+                    }
+
+                    // do the vertices
+                    var x = 0;
+                    var y = 0;
+                    var z = 0;
+                    if (vtx * 3 + 2 < vertex.length) {
+                        x = vertex[vtx*3];
+                        y = vertex[vtx*3+1];
+                        z = vertex[vtx*3+2];
+                    }
+                    vertexArray.push(x);
+                    vertexArray.push(y);
+                    vertexArray.push(z);
+
+                    // do the textures
+                    x = 0;
+                    y = 0;
+                    if (tex * 2 + 1 < texture.length) {
+                        x = texture[tex*2];
+                        y = texture[tex*2+1];
+                    }
+                    textureArray.push(x);
+                    textureArray.push(y);
+
+                    // do the normals
+                    x = 0;
+                    y = 0;
+                    z = 1;
+                    if (nor * 3 + 2 < normal.length) {
+                        x = normal[nor*3];
+                        y = normal[nor*3+1];
+                        z = normal[nor*3+2];
+                    }
+                    normalArray.push(x);
+                    normalArray.push(y);
+                    normalArray.push(z);
+
+                    facemap[array[i]] = index++;
+                }
+
+                indexArray.push(facemap[array[i]]);
+                currentGroup[1]++;
+            }
+        }
+    }
+
+    // set the VBOs
+    obj.normalObject = obj.ctx.createBuffer();
+    obj.ctx.bindBuffer(obj.ctx.ARRAY_BUFFER, obj.normalObject);
+    obj.ctx.bufferData(obj.ctx.ARRAY_BUFFER, new Float32Array(normalArray), obj.ctx.STATIC_DRAW);
+
+    obj.texCoordObject = obj.ctx.createBuffer();
+    obj.ctx.bindBuffer(obj.ctx.ARRAY_BUFFER, obj.texCoordObject);
+    obj.ctx.bufferData(obj.ctx.ARRAY_BUFFER, new Float32Array(textureArray), obj.ctx.STATIC_DRAW);
+
+    obj.vertexObject = obj.ctx.createBuffer();
+    obj.ctx.bindBuffer(obj.ctx.ARRAY_BUFFER, obj.vertexObject);
+    obj.ctx.bufferData(obj.ctx.ARRAY_BUFFER, new Float32Array(vertexArray), obj.ctx.STATIC_DRAW);
+
+    obj.numIndices = indexArray.length;
+    obj.indexObject = obj.ctx.createBuffer();
+    obj.ctx.bindBuffer(obj.ctx.ELEMENT_ARRAY_BUFFER, obj.indexObject);
+    obj.ctx.bufferData(obj.ctx.ELEMENT_ARRAY_BUFFER, new Uint16Array(indexArray), obj.ctx.STREAM_DRAW);
+
+    obj.groups = groups;
+
+    obj.loaded = true;
+}
+
+//
+// loadImageTexture
+//
+// Load the image at the passed url, place it in a new WebGLTexture object and return the WebGLTexture.
+//
+function loadImageTexture(ctx, url)
+{
+    var texture = ctx.createTexture();
+    texture.image = new Image();
+    texture.image.onload = function() { doLoadImageTexture(ctx, texture.image, texture) }
+    texture.image.src = url;
+    return texture;
+}
+
+function doLoadImageTexture(ctx, image, texture)
+{
+    ctx.bindTexture(ctx.TEXTURE_2D, texture);
+    ctx.texImage2D(
+        ctx.TEXTURE_2D, 0, ctx.RGBA, ctx.RGBA, ctx.UNSIGNED_BYTE, image);
+    ctx.texParameteri(ctx.TEXTURE_2D, ctx.TEXTURE_MAG_FILTER, ctx.LINEAR);
+    ctx.texParameteri(ctx.TEXTURE_2D, ctx.TEXTURE_MIN_FILTER, ctx.LINEAR);
+    ctx.texParameteri(ctx.TEXTURE_2D, ctx.TEXTURE_WRAP_S, ctx.CLAMP_TO_EDGE);
+    ctx.texParameteri(ctx.TEXTURE_2D, ctx.TEXTURE_WRAP_T, ctx.CLAMP_TO_EDGE);
+    //ctx.generateMipmap(ctx.TEXTURE_2D)
+    ctx.bindTexture(ctx.TEXTURE_2D, null);
+}
+
+//
+// Framerate object
+//
+// This object keeps track of framerate and displays it as the innerHTML text of the
+// HTML element with the passed id. Once created you call snapshot at the end
+// of every rendering cycle. Every 500ms the framerate is updated in the HTML element.
+//
+Framerate = function(id)
+{
+    this.numFramerates = 10;
+    this.framerateUpdateInterval = 500;
+    this.id = id;
+
+    this.renderTime = -1;
+    this.framerates = [ ];
+    self = this;
+    var fr = function() { self.updateFramerate() }
+    setInterval(fr, this.framerateUpdateInterval);
+}
+
+Framerate.prototype.updateFramerate = function()
+{
+    var tot = 0;
+    for (var i = 0; i < this.framerates.length; ++i)
+        tot += this.framerates[i];
+
+    var framerate = tot / this.framerates.length;
+    framerate = Math.round(framerate);
+    document.getElementById(this.id).innerHTML = "Framerate:"+framerate+"fps";
+}
+
+Framerate.prototype.snapshot = function()
+{
+    if (this.renderTime < 0)
+        this.renderTime = new Date().getTime();
+    else {
+        var newTime = new Date().getTime();
+        var t = newTime - this.renderTime;
+        var framerate = 1000/t;
+        this.framerates.push(framerate);
+        while (this.framerates.length > this.numFramerates)
+            this.framerates.shift();
+        this.renderTime = newTime;
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/resources/J3DI.js~	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,583 @@
+/*
+ * Copyright (C) 2009 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+//
+// initWebGL
+//
+// Initialize the Canvas element with the passed name as a WebGL object and return the
+// WebGLRenderingContext.
+//
+// Load shaders with the passed names and create a program with them. Return this program
+// in the 'program' property of the returned context.
+//
+// For each string in the passed attribs array, bind an attrib with that name at that index.
+// Once the attribs are bound, link the program and then use it.
+//
+// Set the clear color to the passed array (4 values) and set the clear depth to the passed value.
+// Enable depth testing and blending with a blend func of (SRC_ALPHA, ONE_MINUS_SRC_ALPHA)
+//
+// A console function is added to the context: console(string). This can be replaced
+// by the caller. By default, it maps to the window.console() function on WebKit and to
+// an empty function on other browsers.
+//
+function initWebGL(canvasName, vshader, fshader, attribs, clearColor, clearDepth)
+{
+    var canvas = document.getElementById(canvasName);
+    var gl = canvas.getContext("experimental-webgl");
+    if (!gl) {
+        alert("No WebGL context found");
+        return null;
+    }
+
+    // Add a console
+    gl.console = ("console" in window) ? window.console : { log: function() { } };
+
+    // create our shaders
+    var vertexShader = loadShader(gl, vshader);
+    var fragmentShader = loadShader(gl, fshader);
+
+    if (!vertexShader || !fragmentShader)
+        return null;
+
+    // Create the program object
+    gl.program = gl.createProgram();
+
+    if (!gl.program)
+        return null;
+
+    // Attach our two shaders to the program
+    gl.attachShader (gl.program, vertexShader);
+    gl.attachShader (gl.program, fragmentShader);
+
+    // Bind attributes
+    for (var i = 0; i < attribs.length; ++i)
+        gl.bindAttribLocation (gl.program, i, attribs[i]);
+
+    // Link the program
+    gl.linkProgram(gl.program);
+
+    // Check the link status
+    var linked = gl.getProgramParameter(gl.program, gl.LINK_STATUS);
+    if (!linked) {
+        // something went wrong with the link
+        var error = gl.getProgramInfoLog (gl.program);
+        gl.console.log("Error in program linking:"+error);
+
+        gl.deleteProgram(gl.program);
+        gl.deleteProgram(fragmentShader);
+        gl.deleteProgram(vertexShader);
+
+        return null;
+    }
+
+    gl.useProgram(gl.program);
+
+    gl.clearColor(clearColor[0], clearColor[1], clearColor[2], clearColor[3]);
+    gl.clearDepth(clearDepth);
+
+    //    gl.enable(gl.DEPTH_TEST);
+    gl.enable(gl.BLEND);
+    gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
+
+    return gl;
+}
+
+//
+// loadShader
+//
+// 'shaderId' is the id of a <script> element containing the shader source string.
+// Load this shader and return the WebGLShader object corresponding to it.
+//
+function loadShader(ctx, shaderId)
+{
+    var shaderScript = document.getElementById(shaderId);
+    if (!shaderScript) {
+        ctx.console.log("*** Error: shader script '"+shaderId+"' not found");
+        return null;
+    }
+
+    if (shaderScript.type == "x-shader/x-vertex")
+        var shaderType = ctx.VERTEX_SHADER;
+    else if (shaderScript.type == "x-shader/x-fragment")
+        var shaderType = ctx.FRAGMENT_SHADER;
+    else {
+        ctx.console.log("*** Error: shader script '"+shaderId+"' of undefined type '"+shaderScript.type+"'");
+        return null;
+    }
+
+    // Create the shader object
+    var shader = ctx.createShader(shaderType);
+    if (shader == null) {
+        ctx.console.log("*** Error: unable to create shader '"+shaderId+"'");
+        return null;
+    }
+
+    // Load the shader source
+    ctx.shaderSource(shader, shaderScript.text);
+
+    // Compile the shader
+    ctx.compileShader(shader);
+
+    // Check the compile status
+    var compiled = ctx.getShaderParameter(shader, ctx.COMPILE_STATUS);
+    if (!compiled) {
+        // Something went wrong during compilation; get the error
+        var error = ctx.getShaderInfoLog(shader);
+        ctx.console.log("*** Error compiling shader '"+shaderId+"':"+error);
+        ctx.deleteShader(shader);
+        return null;
+    }
+
+    return shader;
+}
+
+//
+// makeBox
+//
+// Create a box with vertices, normals and texCoords. Create VBOs for each as well as the index array.
+// Return an object with the following properties:
+//
+//  normalObject        WebGLBuffer object for normals
+//  texCoordObject      WebGLBuffer object for texCoords
+//  vertexObject        WebGLBuffer object for vertices
+//  indexObject         WebGLBuffer object for indices
+//  numIndices          The number of indices in the indexObject
+//
+function makeBox(ctx)
+{
+    // box
+    //    v6----- v5
+    //   /|      /|
+    //  v1------v0|
+    //  | |     | |
+    //  | |v7---|-|v4
+    //  |/      |/
+    //  v2------v3
+    //
+    // vertex coords array
+    var vertices = new Float32Array(
+        [  1, 1, 1,  -1, 1, 1,  -1,-1, 1,   1,-1, 1,    // v0-v1-v2-v3 front
+           1, 1, 1,   1,-1, 1,   1,-1,-1,   1, 1,-1,    // v0-v3-v4-v5 right
+           1, 1, 1,   1, 1,-1,  -1, 1,-1,  -1, 1, 1,    // v0-v5-v6-v1 top
+          -1, 1, 1,  -1, 1,-1,  -1,-1,-1,  -1,-1, 1,    // v1-v6-v7-v2 left
+          -1,-1,-1,   1,-1,-1,   1,-1, 1,  -1,-1, 1,    // v7-v4-v3-v2 bottom
+           1,-1,-1,  -1,-1,-1,  -1, 1,-1,   1, 1,-1 ]   // v4-v7-v6-v5 back
+    );
+
+    // normal array
+    var normals = new Float32Array(
+        [  0, 0, 1,   0, 0, 1,   0, 0, 1,   0, 0, 1,     // v0-v1-v2-v3 front
+           1, 0, 0,   1, 0, 0,   1, 0, 0,   1, 0, 0,     // v0-v3-v4-v5 right
+           0, 1, 0,   0, 1, 0,   0, 1, 0,   0, 1, 0,     // v0-v5-v6-v1 top
+          -1, 0, 0,  -1, 0, 0,  -1, 0, 0,  -1, 0, 0,     // v1-v6-v7-v2 left
+           0,-1, 0,   0,-1, 0,   0,-1, 0,   0,-1, 0,     // v7-v4-v3-v2 bottom
+           0, 0,-1,   0, 0,-1,   0, 0,-1,   0, 0,-1 ]    // v4-v7-v6-v5 back
+       );
+
+
+    // texCoord array
+    var texCoords = new Float32Array(
+        [  1, 1,   0, 1,   0, 0,   1, 0,    // v0-v1-v2-v3 front
+           0, 1,   0, 0,   1, 0,   1, 1,    // v0-v3-v4-v5 right
+           1, 0,   1, 1,   0, 1,   0, 0,    // v0-v5-v6-v1 top
+           1, 1,   0, 1,   0, 0,   1, 0,    // v1-v6-v7-v2 left
+           0, 0,   1, 0,   1, 1,   0, 1,    // v7-v4-v3-v2 bottom
+           0, 0,   1, 0,   1, 1,   0, 1 ]   // v4-v7-v6-v5 back
+       );
+
+    // index array
+    var indices = new Uint8Array(
+        [  0, 1, 2,   0, 2, 3,    // front
+           4, 5, 6,   4, 6, 7,    // right
+           8, 9,10,   8,10,11,    // top
+          12,13,14,  12,14,15,    // left
+          16,17,18,  16,18,19,    // bottom
+          20,21,22,  20,22,23 ]   // back
+      );
+
+    var retval = { };
+
+    retval.normalObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.normalObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, normals, ctx.STATIC_DRAW);
+
+    retval.texCoordObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.texCoordObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, texCoords, ctx.STATIC_DRAW);
+
+    retval.vertexObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.vertexObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, vertices, ctx.STATIC_DRAW);
+
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, null);
+
+    retval.indexObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, retval.indexObject);
+    ctx.bufferData(ctx.ELEMENT_ARRAY_BUFFER, indices, ctx.STATIC_DRAW);
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, null);
+
+    retval.numIndices = indices.length;
+
+    return retval;
+}
+
+//
+// makeSphere
+//
+// Create a sphere with the passed number of latitude and longitude bands and the passed radius.
+// Sphere has vertices, normals and texCoords. Create VBOs for each as well as the index array.
+// Return an object with the following properties:
+//
+//  normalObject        WebGLBuffer object for normals
+//  texCoordObject      WebGLBuffer object for texCoords
+//  vertexObject        WebGLBuffer object for vertices
+//  indexObject         WebGLBuffer object for indices
+//  numIndices          The number of indices in the indexObject
+//
+function makeSphere(ctx, radius, lats, longs)
+{
+    var geometryData = [ ];
+    var normalData = [ ];
+    var texCoordData = [ ];
+    var indexData = [ ];
+
+    for (var latNumber = 0; latNumber <= lats; ++latNumber) {
+        for (var longNumber = 0; longNumber <= longs; ++longNumber) {
+            var theta = latNumber * Math.PI / lats;
+            var phi = longNumber * 2 * Math.PI / longs;
+            var sinTheta = Math.sin(theta);
+            var sinPhi = Math.sin(phi);
+            var cosTheta = Math.cos(theta);
+            var cosPhi = Math.cos(phi);
+
+            var x = cosPhi * sinTheta;
+            var y = cosTheta;
+            var z = sinPhi * sinTheta;
+            var u = 1-(longNumber/longs);
+            var v = latNumber/lats;
+
+            normalData.push(x);
+            normalData.push(y);
+            normalData.push(z);
+            texCoordData.push(u);
+            texCoordData.push(v);
+            geometryData.push(radius * x);
+            geometryData.push(radius * y);
+            geometryData.push(radius * z);
+        }
+    }
+
+    for (var latNumber = 0; latNumber < lats; ++latNumber) {
+        for (var longNumber = 0; longNumber < longs; ++longNumber) {
+            var first = (latNumber * (longs+1)) + longNumber;
+            var second = first + longs + 1;
+            indexData.push(first);
+            indexData.push(second);
+            indexData.push(first+1);
+
+            indexData.push(second);
+            indexData.push(second+1);
+            indexData.push(first+1);
+        }
+    }
+
+    var retval = { };
+
+    retval.normalObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.normalObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(normalData), ctx.STATIC_DRAW);
+
+    retval.texCoordObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.texCoordObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(texCoordData), ctx.STATIC_DRAW);
+
+    retval.vertexObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.vertexObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(geometryData), ctx.STATIC_DRAW);
+
+    retval.numIndices = indexData.length;
+    retval.indexObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, retval.indexObject);
+    ctx.bufferData(ctx.ELEMENT_ARRAY_BUFFER, new Uint16Array(indexData), ctx.STREAM_DRAW);
+
+    return retval;
+}
+
+//
+// loadObj
+//
+// Load a .obj file from the passed URL. Return an object with a 'loaded' property set to false.
+// When the object load is complete, the 'loaded' property becomes true and the following
+// properties are set:
+//
+//  normalObject        WebGLBuffer object for normals
+//  texCoordObject      WebGLBuffer object for texCoords
+//  vertexObject        WebGLBuffer object for vertices
+//  indexObject         WebGLBuffer object for indices
+//  numIndices          The number of indices in the indexObject
+//
+function loadObj(ctx, url)
+{
+    var obj = { loaded : false };
+    obj.ctx = ctx;
+    var req = new XMLHttpRequest();
+    req.obj = obj;
+    req.onreadystatechange = function () { processLoadObj(req) };
+    req.open("GET", url, true);
+    req.send(null);
+    return obj;
+}
+
+function processLoadObj(req)
+{
+    req.obj.ctx.console.log("req="+req)
+    // only if req shows "complete"
+    if (req.readyState == 4) {
+        doLoadObj(req.obj, req.responseText);
+    }
+}
+
+function doLoadObj(obj, text)
+{
+    vertexArray = [ ];
+    normalArray = [ ];
+    textureArray = [ ];
+    indexArray = [ ];
+
+    var vertex = [ ];
+    var normal = [ ];
+    var texture = [ ];
+    var facemap = { };
+    var index = 0;
+
+    // This is a map which associates a range of indices with a name
+    // The name comes from the 'g' tag (of the form "g NAME"). Indices
+    // are part of one group until another 'g' tag is seen. If any indices
+    // come before a 'g' tag, it is given the group name "_unnamed"
+    // 'group' is an object whose property names are the group name and
+    // whose value is a 2 element array with [<first index>, <num indices>]
+    var groups = { };
+    var currentGroup = [-1, 0];
+    groups["_unnamed"] = currentGroup;
+
+    var lines = text.split("\n");
+    for (var lineIndex in lines) {
+        var line = lines[lineIndex].replace(/[ \t]+/g, " ").replace(/\s\s*$/, "");
+
+        // ignore comments
+        if (line[0] == "#")
+            continue;
+
+        var array = line.split(" ");
+        if (array[0] == "g") {
+            // new group
+            currentGroup = [indexArray.length, 0];
+            groups[array[1]] = currentGroup;
+        }
+        else if (array[0] == "v") {
+            // vertex
+            vertex.push(parseFloat(array[1]));
+            vertex.push(parseFloat(array[2]));
+            vertex.push(parseFloat(array[3]));
+        }
+        else if (array[0] == "vt") {
+            // normal
+            texture.push(parseFloat(array[1]));
+            texture.push(parseFloat(array[2]));
+        }
+        else if (array[0] == "vn") {
+            // normal
+            normal.push(parseFloat(array[1]));
+            normal.push(parseFloat(array[2]));
+            normal.push(parseFloat(array[3]));
+        }
+        else if (array[0] == "f") {
+            // face
+            if (array.length != 4) {
+                obj.ctx.console.log("*** Error: face '"+line+"' not handled");
+                continue;
+            }
+
+            for (var i = 1; i < 4; ++i) {
+                if (!(array[i] in facemap)) {
+                    // add a new entry to the map and arrays
+                    var f = array[i].split("/");
+                    var vtx, nor, tex;
+
+                    if (f.length == 1) {
+                        vtx = parseInt(f[0]) - 1;
+                        nor = vtx;
+                        tex = vtx;
+                    }
+                    else if (f.length = 3) {
+                        vtx = parseInt(f[0]) - 1;
+                        tex = parseInt(f[1]) - 1;
+                        nor = parseInt(f[2]) - 1;
+                    }
+                    else {
+                        obj.ctx.console.log("*** Error: did not understand face '"+array[i]+"'");
+                        return null;
+                    }
+
+                    // do the vertices
+                    var x = 0;
+                    var y = 0;
+                    var z = 0;
+                    if (vtx * 3 + 2 < vertex.length) {
+                        x = vertex[vtx*3];
+                        y = vertex[vtx*3+1];
+                        z = vertex[vtx*3+2];
+                    }
+                    vertexArray.push(x);
+                    vertexArray.push(y);
+                    vertexArray.push(z);
+
+                    // do the textures
+                    x = 0;
+                    y = 0;
+                    if (tex * 2 + 1 < texture.length) {
+                        x = texture[tex*2];
+                        y = texture[tex*2+1];
+                    }
+                    textureArray.push(x);
+                    textureArray.push(y);
+
+                    // do the normals
+                    x = 0;
+                    y = 0;
+                    z = 1;
+                    if (nor * 3 + 2 < normal.length) {
+                        x = normal[nor*3];
+                        y = normal[nor*3+1];
+                        z = normal[nor*3+2];
+                    }
+                    normalArray.push(x);
+                    normalArray.push(y);
+                    normalArray.push(z);
+
+                    facemap[array[i]] = index++;
+                }
+
+                indexArray.push(facemap[array[i]]);
+                currentGroup[1]++;
+            }
+        }
+    }
+
+    // set the VBOs
+    obj.normalObject = obj.ctx.createBuffer();
+    obj.ctx.bindBuffer(obj.ctx.ARRAY_BUFFER, obj.normalObject);
+    obj.ctx.bufferData(obj.ctx.ARRAY_BUFFER, new Float32Array(normalArray), obj.ctx.STATIC_DRAW);
+
+    obj.texCoordObject = obj.ctx.createBuffer();
+    obj.ctx.bindBuffer(obj.ctx.ARRAY_BUFFER, obj.texCoordObject);
+    obj.ctx.bufferData(obj.ctx.ARRAY_BUFFER, new Float32Array(textureArray), obj.ctx.STATIC_DRAW);
+
+    obj.vertexObject = obj.ctx.createBuffer();
+    obj.ctx.bindBuffer(obj.ctx.ARRAY_BUFFER, obj.vertexObject);
+    obj.ctx.bufferData(obj.ctx.ARRAY_BUFFER, new Float32Array(vertexArray), obj.ctx.STATIC_DRAW);
+
+    obj.numIndices = indexArray.length;
+    obj.indexObject = obj.ctx.createBuffer();
+    obj.ctx.bindBuffer(obj.ctx.ELEMENT_ARRAY_BUFFER, obj.indexObject);
+    obj.ctx.bufferData(obj.ctx.ELEMENT_ARRAY_BUFFER, new Uint16Array(indexArray), obj.ctx.STREAM_DRAW);
+
+    obj.groups = groups;
+
+    obj.loaded = true;
+}
+
+//
+// loadImageTexture
+//
+// Load the image at the passed url, place it in a new WebGLTexture object and return the WebGLTexture.
+//
+function loadImageTexture(ctx, url)
+{
+    var texture = ctx.createTexture();
+    texture.image = new Image();
+    texture.image.onload = function() { doLoadImageTexture(ctx, texture.image, texture) }
+    texture.image.src = url;
+    return texture;
+}
+
+function doLoadImageTexture(ctx, image, texture)
+{
+    ctx.bindTexture(ctx.TEXTURE_2D, texture);
+    ctx.texImage2D(
+        ctx.TEXTURE_2D, 0, ctx.RGBA, ctx.RGBA, ctx.UNSIGNED_BYTE, image);
+    ctx.texParameteri(ctx.TEXTURE_2D, ctx.TEXTURE_MAG_FILTER, ctx.LINEAR);
+    ctx.texParameteri(ctx.TEXTURE_2D, ctx.TEXTURE_MIN_FILTER, ctx.LINEAR);
+    ctx.texParameteri(ctx.TEXTURE_2D, ctx.TEXTURE_WRAP_S, ctx.CLAMP_TO_EDGE);
+    ctx.texParameteri(ctx.TEXTURE_2D, ctx.TEXTURE_WRAP_T, ctx.CLAMP_TO_EDGE);
+    //ctx.generateMipmap(ctx.TEXTURE_2D)
+    ctx.bindTexture(ctx.TEXTURE_2D, null);
+}
+
+//
+// Framerate object
+//
+// This object keeps track of framerate and displays it as the innerHTML text of the
+// HTML element with the passed id. Once created you call snapshot at the end
+// of every rendering cycle. Every 500ms the framerate is updated in the HTML element.
+//
+Framerate = function(id)
+{
+    this.numFramerates = 10;
+    this.framerateUpdateInterval = 500;
+    this.id = id;
+
+    this.renderTime = -1;
+    this.framerates = [ ];
+    self = this;
+    var fr = function() { self.updateFramerate() }
+    setInterval(fr, this.framerateUpdateInterval);
+}
+
+Framerate.prototype.updateFramerate = function()
+{
+    var tot = 0;
+    for (var i = 0; i < this.framerates.length; ++i)
+        tot += this.framerates[i];
+
+    var framerate = tot / this.framerates.length;
+    framerate = Math.round(framerate);
+    document.getElementById(this.id).innerHTML = "Framerate:"+framerate+"fps";
+}
+
+Framerate.prototype.snapshot = function()
+{
+    if (this.renderTime < 0)
+        this.renderTime = new Date().getTime();
+    else {
+        var newTime = new Date().getTime();
+        var t = newTime - this.renderTime;
+        var framerate = 1000/t;
+        this.framerates.push(framerate);
+        while (this.framerates.length > this.numFramerates)
+            this.framerates.shift();
+        this.renderTime = newTime;
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/resources/J3DIMath.js	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,1065 @@
+/*
+ * Copyright (C) 2009 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+ // J3DI (Jedi) - A support library for WebGL.
+
+/*
+    J3DI Math Classes. Currently includes:
+
+        J3DIMatrix4 - A 4x4 Matrix
+*/
+
+/*
+    J3DIMatrix4 class
+
+    This class implements a 4x4 matrix. It has functions which duplicate the
+    functionality of the OpenGL matrix stack and glut functions. On browsers
+    that support it, CSSMatrix is used to accelerate operations.
+
+    IDL:
+
+    [
+        Constructor(in J3DIMatrix4 matrix),                 // copy passed matrix into new J3DIMatrix4
+        Constructor(in sequence<float> array)               // create new J3DIMatrix4 with 16 floats (row major)
+        Constructor()                                       // create new J3DIMatrix4 with identity matrix
+    ]
+    interface J3DIMatrix4 {
+        void load(in J3DIMatrix4 matrix);                   // copy the values from the passed matrix
+        void load(in sequence<float> array);                // copy 16 floats into the matrix
+        sequence<float> getAsArray();                       // return the matrix as an array of 16 floats
+        Float32Array getAsFloat32Array();             // return the matrix as a Float32Array with 16 values
+        void setUniform(in WebGLRenderingContext ctx,       // Send the matrix to the passed uniform location in the passed context
+                        in WebGLUniformLocation loc,
+                        in boolean transpose);
+        void makeIdentity();                                // replace the matrix with identity
+        void transpose();                                   // replace the matrix with its transpose
+        void invert();                                      // replace the matrix with its inverse
+
+        void translate(in float x, in float y, in float z); // multiply the matrix by passed translation values on the right
+        void translate(in J3DVector3 v);                    // multiply the matrix by passed translation values on the right
+        void scale(in float x, in float y, in float z);     // multiply the matrix by passed scale values on the right
+        void scale(in J3DVector3 v);                        // multiply the matrix by passed scale values on the right
+        void rotate(in float angle,                         // multiply the matrix by passed rotation values on the right
+                    in float x, in float y, in float z);    // (angle is in degrees)
+        void rotate(in float angle, in J3DVector3 v);       // multiply the matrix by passed rotation values on the right
+                                                            // (angle is in degrees)
+        void multiply(in CanvasMatrix matrix);              // multiply the matrix by the passed matrix on the right
+        void divide(in float divisor);                      // divide the matrix by the passed divisor
+        void ortho(in float left, in float right,           // multiply the matrix by the passed ortho values on the right
+                   in float bottom, in float top,
+                   in float near, in float far);
+        void frustum(in float left, in float right,         // multiply the matrix by the passed frustum values on the right
+                     in float bottom, in float top,
+                     in float near, in float far);
+        void perspective(in float fovy, in float aspect,    // multiply the matrix by the passed perspective values on the right
+                         in float zNear, in float zFar);
+        void lookat(in J3DVector3 eye,                      // multiply the matrix by the passed lookat
+                in J3DVector3 center,  in J3DVector3 up);   // values on the right
+         bool decompose(in J3DVector3 translate,            // decompose the matrix into the passed vector
+                        in J3DVector3 rotate,
+                        in J3DVector3 scale,
+                        in J3DVector3 skew,
+                        in sequence<float> perspective);
+    }
+
+    [
+        Constructor(in J3DVector3 vector),                  // copy passed vector into new J3DVector3
+        Constructor(in sequence<float> array)               // create new J3DVector3 with 3 floats from array
+        Constructor(in float x, in float y, in float z)     // create new J3DVector3 with 3 floats
+        Constructor()                                       // create new J3DVector3 with (0,0,0)
+    ]
+    interface J3DVector3 {
+        void load(in J3DVector3 vector);                    // copy the values from the passed vector
+        void load(in sequence<float> array);                // copy 3 floats into the vector from array
+        void load(in float x, in float y, in float z);      // copy 3 floats into the vector
+        sequence<float> getAsArray();                       // return the vector as an array of 3 floats
+        Float32Array getAsFloat32Array();             // return the matrix as a Float32Array with 16 values
+        void multMatrix(in J3DIMatrix4 matrix);             // multiply the vector by the passed matrix (on the right)
+        float vectorLength();                               // return the length of the vector
+        float dot();                                        // return the dot product of the vector
+        void cross(in J3DVector3 v);                        // replace the vector with vector x v
+        void divide(in float divisor);                      // divide the vector by the passed divisor
+    }
+*/
+
+J3DIHasCSSMatrix = false;
+J3DIHasCSSMatrixCopy = false;
+/*
+if ("WebKitCSSMatrix" in window && ("media" in window && window.media.matchMedium("(-webkit-transform-3d)")) ||
+                                   ("styleMedia" in window && window.styleMedia.matchMedium("(-webkit-transform-3d)"))) {
+    J3DIHasCSSMatrix = true;
+    if ("copy" in WebKitCSSMatrix.prototype)
+        J3DIHasCSSMatrixCopy = true;
+}
+*/
+
+//  console.log("J3DIHasCSSMatrix="+J3DIHasCSSMatrix);
+//  console.log("J3DIHasCSSMatrixCopy="+J3DIHasCSSMatrixCopy);
+
+//
+// J3DIMatrix4
+//
+J3DIMatrix4 = function(m)
+{
+    if (J3DIHasCSSMatrix)
+        this.$matrix = new WebKitCSSMatrix;
+    else
+        this.$matrix = new Object;
+
+    if (typeof m == 'object') {
+        if ("length" in m && m.length >= 16) {
+            this.load(m);
+            return;
+        }
+        else if (m instanceof J3DIMatrix4) {
+            this.load(m);
+            return;
+        }
+    }
+    this.makeIdentity();
+}
+
+J3DIMatrix4.prototype.load = function()
+{
+    if (arguments.length == 1 && typeof arguments[0] == 'object') {
+        var matrix;
+
+        if (arguments[0] instanceof J3DIMatrix4) {
+            matrix = arguments[0].$matrix;
+
+            this.$matrix.m11 = matrix.m11;
+            this.$matrix.m12 = matrix.m12;
+            this.$matrix.m13 = matrix.m13;
+            this.$matrix.m14 = matrix.m14;
+
+            this.$matrix.m21 = matrix.m21;
+            this.$matrix.m22 = matrix.m22;
+            this.$matrix.m23 = matrix.m23;
+            this.$matrix.m24 = matrix.m24;
+
+            this.$matrix.m31 = matrix.m31;
+            this.$matrix.m32 = matrix.m32;
+            this.$matrix.m33 = matrix.m33;
+            this.$matrix.m34 = matrix.m34;
+
+            this.$matrix.m41 = matrix.m41;
+            this.$matrix.m42 = matrix.m42;
+            this.$matrix.m43 = matrix.m43;
+            this.$matrix.m44 = matrix.m44;
+            return;
+        }
+        else
+            matrix = arguments[0];
+
+        if ("length" in matrix && matrix.length >= 16) {
+            this.$matrix.m11 = matrix[0];
+            this.$matrix.m12 = matrix[1];
+            this.$matrix.m13 = matrix[2];
+            this.$matrix.m14 = matrix[3];
+
+            this.$matrix.m21 = matrix[4];
+            this.$matrix.m22 = matrix[5];
+            this.$matrix.m23 = matrix[6];
+            this.$matrix.m24 = matrix[7];
+
+            this.$matrix.m31 = matrix[8];
+            this.$matrix.m32 = matrix[9];
+            this.$matrix.m33 = matrix[10];
+            this.$matrix.m34 = matrix[11];
+
+            this.$matrix.m41 = matrix[12];
+            this.$matrix.m42 = matrix[13];
+            this.$matrix.m43 = matrix[14];
+            this.$matrix.m44 = matrix[15];
+            return;
+        }
+    }
+
+    this.makeIdentity();
+}
+
+J3DIMatrix4.prototype.getAsArray = function()
+{
+    return [
+        this.$matrix.m11, this.$matrix.m12, this.$matrix.m13, this.$matrix.m14,
+        this.$matrix.m21, this.$matrix.m22, this.$matrix.m23, this.$matrix.m24,
+        this.$matrix.m31, this.$matrix.m32, this.$matrix.m33, this.$matrix.m34,
+        this.$matrix.m41, this.$matrix.m42, this.$matrix.m43, this.$matrix.m44
+    ];
+}
+
+J3DIMatrix4.prototype.getAsFloat32Array = function()
+{
+    if (J3DIHasCSSMatrixCopy) {
+        var array = new Float32Array(16);
+        this.$matrix.copy(array);
+        return array;
+    }
+    return new Float32Array(this.getAsArray());
+}
+
+J3DIMatrix4.prototype.setUniform = function(ctx, loc, transpose)
+{
+    if (J3DIMatrix4.setUniformArray == undefined) {
+        J3DIMatrix4.setUniformWebGLArray = new Float32Array(16);
+        J3DIMatrix4.setUniformArray = new Array(16);
+    }
+
+    if (J3DIHasCSSMatrixCopy)
+        this.$matrix.copy(J3DIMatrix4.setUniformWebGLArray);
+    else {
+        J3DIMatrix4.setUniformArray[0] = this.$matrix.m11;
+        J3DIMatrix4.setUniformArray[1] = this.$matrix.m12;
+        J3DIMatrix4.setUniformArray[2] = this.$matrix.m13;
+        J3DIMatrix4.setUniformArray[3] = this.$matrix.m14;
+        J3DIMatrix4.setUniformArray[4] = this.$matrix.m21;
+        J3DIMatrix4.setUniformArray[5] = this.$matrix.m22;
+        J3DIMatrix4.setUniformArray[6] = this.$matrix.m23;
+        J3DIMatrix4.setUniformArray[7] = this.$matrix.m24;
+        J3DIMatrix4.setUniformArray[8] = this.$matrix.m31;
+        J3DIMatrix4.setUniformArray[9] = this.$matrix.m32;
+        J3DIMatrix4.setUniformArray[10] = this.$matrix.m33;
+        J3DIMatrix4.setUniformArray[11] = this.$matrix.m34;
+        J3DIMatrix4.setUniformArray[12] = this.$matrix.m41;
+        J3DIMatrix4.setUniformArray[13] = this.$matrix.m42;
+        J3DIMatrix4.setUniformArray[14] = this.$matrix.m43;
+        J3DIMatrix4.setUniformArray[15] = this.$matrix.m44;
+
+        J3DIMatrix4.setUniformWebGLArray.set(J3DIMatrix4.setUniformArray);
+    }
+
+    ctx.uniformMatrix4fv(loc, transpose, J3DIMatrix4.setUniformWebGLArray);
+}
+
+J3DIMatrix4.prototype.makeIdentity = function()
+{
+    this.$matrix.m11 = 1;
+    this.$matrix.m12 = 0;
+    this.$matrix.m13 = 0;
+    this.$matrix.m14 = 0;
+
+    this.$matrix.m21 = 0;
+    this.$matrix.m22 = 1;
+    this.$matrix.m23 = 0;
+    this.$matrix.m24 = 0;
+
+    this.$matrix.m31 = 0;
+    this.$matrix.m32 = 0;
+    this.$matrix.m33 = 1;
+    this.$matrix.m34 = 0;
+
+    this.$matrix.m41 = 0;
+    this.$matrix.m42 = 0;
+    this.$matrix.m43 = 0;
+    this.$matrix.m44 = 1;
+}
+
+J3DIMatrix4.prototype.transpose = function()
+{
+    var tmp = this.$matrix.m12;
+    this.$matrix.m12 = this.$matrix.m21;
+    this.$matrix.m21 = tmp;
+
+    tmp = this.$matrix.m13;
+    this.$matrix.m13 = this.$matrix.m31;
+    this.$matrix.m31 = tmp;
+
+    tmp = this.$matrix.m14;
+    this.$matrix.m14 = this.$matrix.m41;
+    this.$matrix.m41 = tmp;
+
+    tmp = this.$matrix.m23;
+    this.$matrix.m23 = this.$matrix.m32;
+    this.$matrix.m32 = tmp;
+
+    tmp = this.$matrix.m24;
+    this.$matrix.m24 = this.$matrix.m42;
+    this.$matrix.m42 = tmp;
+
+    tmp = this.$matrix.m34;
+    this.$matrix.m34 = this.$matrix.m43;
+    this.$matrix.m43 = tmp;
+}
+
+J3DIMatrix4.prototype.invert = function()
+{
+    if (J3DIHasCSSMatrix) {
+        this.$matrix = this.$matrix.inverse();
+        return;
+    }
+
+    // Calculate the 4x4 determinant
+    // If the determinant is zero,
+    // then the inverse matrix is not unique.
+    var det = this._determinant4x4();
+
+    if (Math.abs(det) < 1e-8)
+        return null;
+
+    this._makeAdjoint();
+
+    // Scale the adjoint matrix to get the inverse
+    this.$matrix.m11 /= det;
+    this.$matrix.m12 /= det;
+    this.$matrix.m13 /= det;
+    this.$matrix.m14 /= det;
+
+    this.$matrix.m21 /= det;
+    this.$matrix.m22 /= det;
+    this.$matrix.m23 /= det;
+    this.$matrix.m24 /= det;
+
+    this.$matrix.m31 /= det;
+    this.$matrix.m32 /= det;
+    this.$matrix.m33 /= det;
+    this.$matrix.m34 /= det;
+
+    this.$matrix.m41 /= det;
+    this.$matrix.m42 /= det;
+    this.$matrix.m43 /= det;
+    this.$matrix.m44 /= det;
+}
+
+J3DIMatrix4.prototype.translate = function(x,y,z)
+{
+    if (typeof x == 'object' && "length" in x) {
+        var t = x;
+        x = t[0];
+        y = t[1];
+        z = t[2];
+    }
+    else {
+        if (x == undefined)
+            x = 0;
+        if (y == undefined)
+            y = 0;
+        if (z == undefined)
+            z = 0;
+    }
+
+    if (J3DIHasCSSMatrix) {
+        this.$matrix = this.$matrix.translate(x, y, z);
+        return;
+    }
+
+    var matrix = new J3DIMatrix4();
+    matrix.$matrix.m41 = x;
+    matrix.$matrix.m42 = y;
+    matrix.$matrix.m43 = z;
+
+    this.multiply(matrix);
+}
+
+J3DIMatrix4.prototype.scale = function(x,y,z)
+{
+    if (typeof x == 'object' && "length" in x) {
+        var t = x;
+        x = t[0];
+        y = t[1];
+        z = t[2];
+    }
+    else {
+        if (x == undefined)
+            x = 1;
+        if (z == undefined) {
+            if (y == undefined) {
+                y = x;
+                z = x;
+            }
+            else
+                z = 1;
+        }
+        else if (y == undefined)
+            y = x;
+    }
+
+    if (J3DIHasCSSMatrix) {
+        this.$matrix = this.$matrix.scale(x, y, z);
+        return;
+    }
+
+    var matrix = new J3DIMatrix4();
+    matrix.$matrix.m11 = x;
+    matrix.$matrix.m22 = y;
+    matrix.$matrix.m33 = z;
+
+    this.multiply(matrix);
+}
+
+J3DIMatrix4.prototype.rotate = function(angle,x,y,z)
+{
+    // Forms are (angle, x,y,z), (angle,vector), (angleX, angleY, angleZ), (angle)
+    if (typeof x == 'object' && "length" in x) {
+        var t = x;
+        x = t[0];
+        y = t[1];
+        z = t[2];
+    }
+    else {
+        if (arguments.length == 1) {
+            x = 0;
+            y = 0;
+            z = 1;
+        }
+        else if (arguments.length == 3) {
+            this.rotate(angle, 1,0,0); // about X axis
+            this.rotate(x, 0,1,0); // about Y axis
+            this.rotate(y, 0,0,1); // about Z axis
+            return;
+        }
+    }
+
+    if (J3DIHasCSSMatrix) {
+        this.$matrix = this.$matrix.rotateAxisAngle(x, y, z, angle);
+        return;
+    }
+
+    // angles are in degrees. Switch to radians
+    angle = angle / 180 * Math.PI;
+
+    angle /= 2;
+    var sinA = Math.sin(angle);
+    var cosA = Math.cos(angle);
+    var sinA2 = sinA * sinA;
+
+    // normalize
+    var len = Math.sqrt(x * x + y * y + z * z);
+    if (len == 0) {
+        // bad vector, just use something reasonable
+        x = 0;
+        y = 0;
+        z = 1;
+    } else if (len != 1) {
+        x /= len;
+        y /= len;
+        z /= len;
+    }
+
+    var mat = new J3DIMatrix4();
+
+    // optimize case where axis is along major axis
+    if (x == 1 && y == 0 && z == 0) {
+        mat.$matrix.m11 = 1;
+        mat.$matrix.m12 = 0;
+        mat.$matrix.m13 = 0;
+        mat.$matrix.m21 = 0;
+        mat.$matrix.m22 = 1 - 2 * sinA2;
+        mat.$matrix.m23 = 2 * sinA * cosA;
+        mat.$matrix.m31 = 0;
+        mat.$matrix.m32 = -2 * sinA * cosA;
+        mat.$matrix.m33 = 1 - 2 * sinA2;
+        mat.$matrix.m14 = mat.$matrix.m24 = mat.$matrix.m34 = 0;
+        mat.$matrix.m41 = mat.$matrix.m42 = mat.$matrix.m43 = 0;
+        mat.$matrix.m44 = 1;
+    } else if (x == 0 && y == 1 && z == 0) {
+        mat.$matrix.m11 = 1 - 2 * sinA2;
+        mat.$matrix.m12 = 0;
+        mat.$matrix.m13 = -2 * sinA * cosA;
+        mat.$matrix.m21 = 0;
+        mat.$matrix.m22 = 1;
+        mat.$matrix.m23 = 0;
+        mat.$matrix.m31 = 2 * sinA * cosA;
+        mat.$matrix.m32 = 0;
+        mat.$matrix.m33 = 1 - 2 * sinA2;
+        mat.$matrix.m14 = mat.$matrix.m24 = mat.$matrix.m34 = 0;
+        mat.$matrix.m41 = mat.$matrix.m42 = mat.$matrix.m43 = 0;
+        mat.$matrix.m44 = 1;
+    } else if (x == 0 && y == 0 && z == 1) {
+        mat.$matrix.m11 = 1 - 2 * sinA2;
+        mat.$matrix.m12 = 2 * sinA * cosA;
+        mat.$matrix.m13 = 0;
+        mat.$matrix.m21 = -2 * sinA * cosA;
+        mat.$matrix.m22 = 1 - 2 * sinA2;
+        mat.$matrix.m23 = 0;
+        mat.$matrix.m31 = 0;
+        mat.$matrix.m32 = 0;
+        mat.$matrix.m33 = 1;
+        mat.$matrix.m14 = mat.$matrix.m24 = mat.$matrix.m34 = 0;
+        mat.$matrix.m41 = mat.$matrix.m42 = mat.$matrix.m43 = 0;
+        mat.$matrix.m44 = 1;
+    } else {
+        var x2 = x*x;
+        var y2 = y*y;
+        var z2 = z*z;
+
+        mat.$matrix.m11 = 1 - 2 * (y2 + z2) * sinA2;
+        mat.$matrix.m12 = 2 * (x * y * sinA2 + z * sinA * cosA);
+        mat.$matrix.m13 = 2 * (x * z * sinA2 - y * sinA * cosA);
+        mat.$matrix.m21 = 2 * (y * x * sinA2 - z * sinA * cosA);
+        mat.$matrix.m22 = 1 - 2 * (z2 + x2) * sinA2;
+        mat.$matrix.m23 = 2 * (y * z * sinA2 + x * sinA * cosA);
+        mat.$matrix.m31 = 2 * (z * x * sinA2 + y * sinA * cosA);
+        mat.$matrix.m32 = 2 * (z * y * sinA2 - x * sinA * cosA);
+        mat.$matrix.m33 = 1 - 2 * (x2 + y2) * sinA2;
+        mat.$matrix.m14 = mat.$matrix.m24 = mat.$matrix.m34 = 0;
+        mat.$matrix.m41 = mat.$matrix.m42 = mat.$matrix.m43 = 0;
+        mat.$matrix.m44 = 1;
+    }
+    this.multiply(mat);
+}
+
+J3DIMatrix4.prototype.multiply = function(mat)
+{
+    if (J3DIHasCSSMatrix) {
+        this.$matrix = this.$matrix.multiply(mat.$matrix);
+        return;
+    }
+
+    var m11 = (mat.$matrix.m11 * this.$matrix.m11 + mat.$matrix.m12 * this.$matrix.m21
+               + mat.$matrix.m13 * this.$matrix.m31 + mat.$matrix.m14 * this.$matrix.m41);
+    var m12 = (mat.$matrix.m11 * this.$matrix.m12 + mat.$matrix.m12 * this.$matrix.m22
+               + mat.$matrix.m13 * this.$matrix.m32 + mat.$matrix.m14 * this.$matrix.m42);
+    var m13 = (mat.$matrix.m11 * this.$matrix.m13 + mat.$matrix.m12 * this.$matrix.m23
+               + mat.$matrix.m13 * this.$matrix.m33 + mat.$matrix.m14 * this.$matrix.m43);
+    var m14 = (mat.$matrix.m11 * this.$matrix.m14 + mat.$matrix.m12 * this.$matrix.m24
+               + mat.$matrix.m13 * this.$matrix.m34 + mat.$matrix.m14 * this.$matrix.m44);
+
+    var m21 = (mat.$matrix.m21 * this.$matrix.m11 + mat.$matrix.m22 * this.$matrix.m21
+               + mat.$matrix.m23 * this.$matrix.m31 + mat.$matrix.m24 * this.$matrix.m41);
+    var m22 = (mat.$matrix.m21 * this.$matrix.m12 + mat.$matrix.m22 * this.$matrix.m22
+               + mat.$matrix.m23 * this.$matrix.m32 + mat.$matrix.m24 * this.$matrix.m42);
+    var m23 = (mat.$matrix.m21 * this.$matrix.m13 + mat.$matrix.m22 * this.$matrix.m23
+               + mat.$matrix.m23 * this.$matrix.m33 + mat.$matrix.m24 * this.$matrix.m43);
+    var m24 = (mat.$matrix.m21 * this.$matrix.m14 + mat.$matrix.m22 * this.$matrix.m24
+               + mat.$matrix.m23 * this.$matrix.m34 + mat.$matrix.m24 * this.$matrix.m44);
+
+    var m31 = (mat.$matrix.m31 * this.$matrix.m11 + mat.$matrix.m32 * this.$matrix.m21
+               + mat.$matrix.m33 * this.$matrix.m31 + mat.$matrix.m34 * this.$matrix.m41);
+    var m32 = (mat.$matrix.m31 * this.$matrix.m12 + mat.$matrix.m32 * this.$matrix.m22
+               + mat.$matrix.m33 * this.$matrix.m32 + mat.$matrix.m34 * this.$matrix.m42);
+    var m33 = (mat.$matrix.m31 * this.$matrix.m13 + mat.$matrix.m32 * this.$matrix.m23
+               + mat.$matrix.m33 * this.$matrix.m33 + mat.$matrix.m34 * this.$matrix.m43);
+    var m34 = (mat.$matrix.m31 * this.$matrix.m14 + mat.$matrix.m32 * this.$matrix.m24
+               + mat.$matrix.m33 * this.$matrix.m34 + mat.$matrix.m34 * this.$matrix.m44);
+
+    var m41 = (mat.$matrix.m41 * this.$matrix.m11 + mat.$matrix.m42 * this.$matrix.m21
+               + mat.$matrix.m43 * this.$matrix.m31 + mat.$matrix.m44 * this.$matrix.m41);
+    var m42 = (mat.$matrix.m41 * this.$matrix.m12 + mat.$matrix.m42 * this.$matrix.m22
+               + mat.$matrix.m43 * this.$matrix.m32 + mat.$matrix.m44 * this.$matrix.m42);
+    var m43 = (mat.$matrix.m41 * this.$matrix.m13 + mat.$matrix.m42 * this.$matrix.m23
+               + mat.$matrix.m43 * this.$matrix.m33 + mat.$matrix.m44 * this.$matrix.m43);
+    var m44 = (mat.$matrix.m41 * this.$matrix.m14 + mat.$matrix.m42 * this.$matrix.m24
+               + mat.$matrix.m43 * this.$matrix.m34 + mat.$matrix.m44 * this.$matrix.m44);
+
+    this.$matrix.m11 = m11;
+    this.$matrix.m12 = m12;
+    this.$matrix.m13 = m13;
+    this.$matrix.m14 = m14;
+
+    this.$matrix.m21 = m21;
+    this.$matrix.m22 = m22;
+    this.$matrix.m23 = m23;
+    this.$matrix.m24 = m24;
+
+    this.$matrix.m31 = m31;
+    this.$matrix.m32 = m32;
+    this.$matrix.m33 = m33;
+    this.$matrix.m34 = m34;
+
+    this.$matrix.m41 = m41;
+    this.$matrix.m42 = m42;
+    this.$matrix.m43 = m43;
+    this.$matrix.m44 = m44;
+}
+
+J3DIMatrix4.prototype.divide = function(divisor)
+{
+    this.$matrix.m11 /= divisor;
+    this.$matrix.m12 /= divisor;
+    this.$matrix.m13 /= divisor;
+    this.$matrix.m14 /= divisor;
+
+    this.$matrix.m21 /= divisor;
+    this.$matrix.m22 /= divisor;
+    this.$matrix.m23 /= divisor;
+    this.$matrix.m24 /= divisor;
+
+    this.$matrix.m31 /= divisor;
+    this.$matrix.m32 /= divisor;
+    this.$matrix.m33 /= divisor;
+    this.$matrix.m34 /= divisor;
+
+    this.$matrix.m41 /= divisor;
+    this.$matrix.m42 /= divisor;
+    this.$matrix.m43 /= divisor;
+    this.$matrix.m44 /= divisor;
+
+}
+
+J3DIMatrix4.prototype.ortho = function(left, right, bottom, top, near, far)
+{
+    var tx = (left + right) / (left - right);
+    var ty = (top + bottom) / (top - bottom);
+    var tz = (far + near) / (far - near);
+
+    var matrix = new J3DIMatrix4();
+    matrix.$matrix.m11 = 2 / (left - right);
+    matrix.$matrix.m12 = 0;
+    matrix.$matrix.m13 = 0;
+    matrix.$matrix.m14 = 0;
+    matrix.$matrix.m21 = 0;
+    matrix.$matrix.m22 = 2 / (top - bottom);
+    matrix.$matrix.m23 = 0;
+    matrix.$matrix.m24 = 0;
+    matrix.$matrix.m31 = 0;
+    matrix.$matrix.m32 = 0;
+    matrix.$matrix.m33 = -2 / (far - near);
+    matrix.$matrix.m34 = 0;
+    matrix.$matrix.m41 = tx;
+    matrix.$matrix.m42 = ty;
+    matrix.$matrix.m43 = tz;
+    matrix.$matrix.m44 = 1;
+
+    this.multiply(matrix);
+}
+
+J3DIMatrix4.prototype.frustum = function(left, right, bottom, top, near, far)
+{
+    var matrix = new J3DIMatrix4();
+    var A = (right + left) / (right - left);
+    var B = (top + bottom) / (top - bottom);
+    var C = -(far + near) / (far - near);
+    var D = -(2 * far * near) / (far - near);
+
+    matrix.$matrix.m11 = (2 * near) / (right - left);
+    matrix.$matrix.m12 = 0;
+    matrix.$matrix.m13 = 0;
+    matrix.$matrix.m14 = 0;
+
+    matrix.$matrix.m21 = 0;
+    matrix.$matrix.m22 = 2 * near / (top - bottom);
+    matrix.$matrix.m23 = 0;
+    matrix.$matrix.m24 = 0;
+
+    matrix.$matrix.m31 = A;
+    matrix.$matrix.m32 = B;
+    matrix.$matrix.m33 = C;
+    matrix.$matrix.m34 = -1;
+
+    matrix.$matrix.m41 = 0;
+    matrix.$matrix.m42 = 0;
+    matrix.$matrix.m43 = D;
+    matrix.$matrix.m44 = 0;
+
+    this.multiply(matrix);
+}
+
+J3DIMatrix4.prototype.perspective = function(fovy, aspect, zNear, zFar)
+{
+    var top = Math.tan(fovy * Math.PI / 360) * zNear;
+    var bottom = -top;
+    var left = aspect * bottom;
+    var right = aspect * top;
+    this.frustum(left, right, bottom, top, zNear, zFar);
+}
+
+J3DIMatrix4.prototype.lookat = function(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz)
+{
+    if (typeof eyez == 'object' && "length" in eyez) {
+        var t = eyez;
+        upx = t[0];
+        upy = t[1];
+        upz = t[2];
+
+        t = eyey;
+        centerx = t[0];
+        centery = t[1];
+        centerz = t[2];
+
+        t = eyex;
+        eyex = t[0];
+        eyey = t[1];
+        eyez = t[2];
+    }
+
+    var matrix = new J3DIMatrix4();
+
+    // Make rotation matrix
+
+    // Z vector
+    var zx = eyex - centerx;
+    var zy = eyey - centery;
+    var zz = eyez - centerz;
+    var mag = Math.sqrt(zx * zx + zy * zy + zz * zz);
+    if (mag) {
+        zx /= mag;
+        zy /= mag;
+        zz /= mag;
+    }
+
+    // Y vector
+    var yx = upx;
+    var yy = upy;
+    var yz = upz;
+
+    // X vector = Y cross Z
+    xx =  yy * zz - yz * zy;
+    xy = -yx * zz + yz * zx;
+    xz =  yx * zy - yy * zx;
+
+    // Recompute Y = Z cross X
+    yx = zy * xz - zz * xy;
+    yy = -zx * xz + zz * xx;
+    yx = zx * xy - zy * xx;
+
+    // cross product gives area of parallelogram, which is < 1.0 for
+    // non-perpendicular unit-length vectors; so normalize x, y here
+
+    mag = Math.sqrt(xx * xx + xy * xy + xz * xz);
+    if (mag) {
+        xx /= mag;
+        xy /= mag;
+        xz /= mag;
+    }
+
+    mag = Math.sqrt(yx * yx + yy * yy + yz * yz);
+    if (mag) {
+        yx /= mag;
+        yy /= mag;
+        yz /= mag;
+    }
+
+    matrix.$matrix.m11 = xx;
+    matrix.$matrix.m12 = xy;
+    matrix.$matrix.m13 = xz;
+    matrix.$matrix.m14 = 0;
+
+    matrix.$matrix.m21 = yx;
+    matrix.$matrix.m22 = yy;
+    matrix.$matrix.m23 = yz;
+    matrix.$matrix.m24 = 0;
+
+    matrix.$matrix.m31 = zx;
+    matrix.$matrix.m32 = zy;
+    matrix.$matrix.m33 = zz;
+    matrix.$matrix.m34 = 0;
+
+    matrix.$matrix.m41 = 0;
+    matrix.$matrix.m42 = 0;
+    matrix.$matrix.m43 = 0;
+    matrix.$matrix.m44 = 1;
+    matrix.translate(-eyex, -eyey, -eyez);
+
+    this.multiply(matrix);
+}
+
+// Returns true on success, false otherwise. All params are Array objects
+J3DIMatrix4.prototype.decompose = function(_translate, _rotate, _scale, _skew, _perspective)
+{
+    // Normalize the matrix.
+    if (this.$matrix.m44 == 0)
+        return false;
+
+    // Gather the params
+    var translate, rotate, scale, skew, perspective;
+
+    var translate = (_translate == undefined || !("length" in _translate)) ? new J3DIVector3 : _translate;
+    var rotate = (_rotate == undefined || !("length" in _rotate)) ? new J3DIVector3 : _rotate;
+    var scale = (_scale == undefined || !("length" in _scale)) ? new J3DIVector3 : _scale;
+    var skew = (_skew == undefined || !("length" in _skew)) ? new J3DIVector3 : _skew;
+    var perspective = (_perspective == undefined || !("length" in _perspective)) ? new Array(4) : _perspective;
+
+    var matrix = new J3DIMatrix4(this);
+
+    matrix.divide(matrix.$matrix.m44);
+
+    // perspectiveMatrix is used to solve for perspective, but it also provides
+    // an easy way to test for singularity of the upper 3x3 component.
+    var perspectiveMatrix = new J3DIMatrix4(matrix);
+
+    perspectiveMatrix.$matrix.m14 = 0;
+    perspectiveMatrix.$matrix.m24 = 0;
+    perspectiveMatrix.$matrix.m34 = 0;
+    perspectiveMatrix.$matrix.m44 = 1;
+
+    if (perspectiveMatrix._determinant4x4() == 0)
+        return false;
+
+    // First, isolate perspective.
+    if (matrix.$matrix.m14 != 0 || matrix.$matrix.m24 != 0 || matrix.$matrix.m34 != 0) {
+        // rightHandSide is the right hand side of the equation.
+        var rightHandSide = [ matrix.$matrix.m14, matrix.$matrix.m24, matrix.$matrix.m34, matrix.$matrix.m44 ];
+
+        // Solve the equation by inverting perspectiveMatrix and multiplying
+        // rightHandSide by the inverse.
+        var inversePerspectiveMatrix = new J3DIMatrix4(perspectiveMatrix);
+        inversePerspectiveMatrix.invert();
+        var transposedInversePerspectiveMatrix = new J3DIMatrix4(inversePerspectiveMatrix);
+        transposedInversePerspectiveMatrix.transpose();
+        transposedInversePerspectiveMatrix.multVecMatrix(perspective, rightHandSide);
+
+        // Clear the perspective partition
+        matrix.$matrix.m14 = matrix.$matrix.m24 = matrix.$matrix.m34 = 0
+        matrix.$matrix.m44 = 1;
+    }
+    else {
+        // No perspective.
+        perspective[0] = perspective[1] = perspective[2] = 0;
+        perspective[3] = 1;
+    }
+
+    // Next take care of translation
+    translate[0] = matrix.$matrix.m41
+    matrix.$matrix.m41 = 0
+    translate[1] = matrix.$matrix.m42
+    matrix.$matrix.m42 = 0
+    translate[2] = matrix.$matrix.m43
+    matrix.$matrix.m43 = 0
+
+    // Now get scale and shear. 'row' is a 3 element array of 3 component vectors
+    var row0 = new J3DIVector3(matrix.$matrix.m11, matrix.$matrix.m12, matrix.$matrix.m13);
+    var row1 = new J3DIVector3(matrix.$matrix.m21, matrix.$matrix.m22, matrix.$matrix.m23);
+    var row2 = new J3DIVector3(matrix.$matrix.m31, matrix.$matrix.m32, matrix.$matrix.m33);
+
+    // Compute X scale factor and normalize first row.
+    scale[0] = row0.vectorLength();
+    row0.divide(scale[0]);
+
+    // Compute XY shear factor and make 2nd row orthogonal to 1st.
+    skew[0] = row0.dot(row1);
+    row1.combine(row0, 1.0, -skew[0]);
+
+    // Now, compute Y scale and normalize 2nd row.
+    scale[1] = row1.vectorLength();
+    row1.divide(scale[1]);
+    skew[0] /= scale[1];
+
+    // Compute XZ and YZ shears, orthogonalize 3rd row
+    skew[1] = row1.dot(row2);
+    row2.combine(row0, 1.0, -skew[1]);
+    skew[2] = row1.dot(row2);
+    row2.combine(row1, 1.0, -skew[2]);
+
+    // Next, get Z scale and normalize 3rd row.
+    scale[2] = row2.vectorLength();
+    row2.divide(scale[2]);
+    skew[1] /= scale[2];
+    skew[2] /= scale[2];
+
+    // At this point, the matrix (in rows) is orthonormal.
+    // Check for a coordinate system flip.  If the determinant
+    // is -1, then negate the matrix and the scaling factors.
+    var pdum3 = new J3DIVector3(row1);
+    pdum3.cross(row2);
+    if (row0.dot(pdum3) < 0) {
+        for (i = 0; i < 3; i++) {
+            scale[i] *= -1;
+            row[0][i] *= -1;
+            row[1][i] *= -1;
+            row[2][i] *= -1;
+        }
+    }
+
+    // Now, get the rotations out
+    rotate[1] = Math.asin(-row0[2]);
+    if (Math.cos(rotate[1]) != 0) {
+        rotate[0] = Math.atan2(row1[2], row2[2]);
+        rotate[2] = Math.atan2(row0[1], row0[0]);
+    }
+    else {
+        rotate[0] = Math.atan2(-row2[0], row1[1]);
+        rotate[2] = 0;
+    }
+
+    // Convert rotations to degrees
+    var rad2deg = 180 / Math.PI;
+    rotate[0] *= rad2deg;
+    rotate[1] *= rad2deg;
+    rotate[2] *= rad2deg;
+
+    return true;
+}
+
+J3DIMatrix4.prototype._determinant2x2 = function(a, b, c, d)
+{
+    return a * d - b * c;
+}
+
+J3DIMatrix4.prototype._determinant3x3 = function(a1, a2, a3, b1, b2, b3, c1, c2, c3)
+{
+    return a1 * this._determinant2x2(b2, b3, c2, c3)
+         - b1 * this._determinant2x2(a2, a3, c2, c3)
+         + c1 * this._determinant2x2(a2, a3, b2, b3);
+}
+
+J3DIMatrix4.prototype._determinant4x4 = function()
+{
+    var a1 = this.$matrix.m11;
+    var b1 = this.$matrix.m12;
+    var c1 = this.$matrix.m13;
+    var d1 = this.$matrix.m14;
+
+    var a2 = this.$matrix.m21;
+    var b2 = this.$matrix.m22;
+    var c2 = this.$matrix.m23;
+    var d2 = this.$matrix.m24;
+
+    var a3 = this.$matrix.m31;
+    var b3 = this.$matrix.m32;
+    var c3 = this.$matrix.m33;
+    var d3 = this.$matrix.m34;
+
+    var a4 = this.$matrix.m41;
+    var b4 = this.$matrix.m42;
+    var c4 = this.$matrix.m43;
+    var d4 = this.$matrix.m44;
+
+    return a1 * this._determinant3x3(b2, b3, b4, c2, c3, c4, d2, d3, d4)
+         - b1 * this._determinant3x3(a2, a3, a4, c2, c3, c4, d2, d3, d4)
+         + c1 * this._determinant3x3(a2, a3, a4, b2, b3, b4, d2, d3, d4)
+         - d1 * this._determinant3x3(a2, a3, a4, b2, b3, b4, c2, c3, c4);
+}
+
+J3DIMatrix4.prototype._makeAdjoint = function()
+{
+    var a1 = this.$matrix.m11;
+    var b1 = this.$matrix.m12;
+    var c1 = this.$matrix.m13;
+    var d1 = this.$matrix.m14;
+
+    var a2 = this.$matrix.m21;
+    var b2 = this.$matrix.m22;
+    var c2 = this.$matrix.m23;
+    var d2 = this.$matrix.m24;
+
+    var a3 = this.$matrix.m31;
+    var b3 = this.$matrix.m32;
+    var c3 = this.$matrix.m33;
+    var d3 = this.$matrix.m34;
+
+    var a4 = this.$matrix.m41;
+    var b4 = this.$matrix.m42;
+    var c4 = this.$matrix.m43;
+    var d4 = this.$matrix.m44;
+
+    // Row column labeling reversed since we transpose rows & columns
+    this.$matrix.m11  =   this._determinant3x3(b2, b3, b4, c2, c3, c4, d2, d3, d4);
+    this.$matrix.m21  = - this._determinant3x3(a2, a3, a4, c2, c3, c4, d2, d3, d4);
+    this.$matrix.m31  =   this._determinant3x3(a2, a3, a4, b2, b3, b4, d2, d3, d4);
+    this.$matrix.m41  = - this._determinant3x3(a2, a3, a4, b2, b3, b4, c2, c3, c4);
+
+    this.$matrix.m12  = - this._determinant3x3(b1, b3, b4, c1, c3, c4, d1, d3, d4);
+    this.$matrix.m22  =   this._determinant3x3(a1, a3, a4, c1, c3, c4, d1, d3, d4);
+    this.$matrix.m32  = - this._determinant3x3(a1, a3, a4, b1, b3, b4, d1, d3, d4);
+    this.$matrix.m42  =   this._determinant3x3(a1, a3, a4, b1, b3, b4, c1, c3, c4);
+
+    this.$matrix.m13  =   this._determinant3x3(b1, b2, b4, c1, c2, c4, d1, d2, d4);
+    this.$matrix.m23  = - this._determinant3x3(a1, a2, a4, c1, c2, c4, d1, d2, d4);
+    this.$matrix.m33  =   this._determinant3x3(a1, a2, a4, b1, b2, b4, d1, d2, d4);
+    this.$matrix.m43  = - this._determinant3x3(a1, a2, a4, b1, b2, b4, c1, c2, c4);
+
+    this.$matrix.m14  = - this._determinant3x3(b1, b2, b3, c1, c2, c3, d1, d2, d3);
+    this.$matrix.m24  =   this._determinant3x3(a1, a2, a3, c1, c2, c3, d1, d2, d3);
+    this.$matrix.m34  = - this._determinant3x3(a1, a2, a3, b1, b2, b3, d1, d2, d3);
+    this.$matrix.m44  =   this._determinant3x3(a1, a2, a3, b1, b2, b3, c1, c2, c3);
+}
+
+//
+// J3DIVector3
+//
+J3DIVector3 = function(x,y,z)
+{
+    this.load(x,y,z);
+}
+
+J3DIVector3.prototype.load = function(x,y,z)
+{
+    if (typeof x == 'object' && "length" in x) {
+        this[0] = x[0];
+        this[1] = x[1];
+        this[2] = x[2];
+    }
+    else if (typeof x == 'number') {
+        this[0] = x;
+        this[1] = y;
+        this[2] = z;
+    }
+    else {
+        this[0] = 0;
+        this[1] = 0;
+        this[2] = 0;
+    }
+}
+
+J3DIVector3.prototype.getAsArray = function()
+{
+    return [ this[0], this[1], this[2] ];
+}
+
+J3DIVector3.prototype.getAsFloat32Array = function()
+{
+    return new Float32Array(this.getAsArray());
+}
+
+J3DIVector3.prototype.vectorLength = function()
+{
+    return Math.sqrt(this[0] * this[0] + this[1] * this[1] + this[2] * this[2]);
+}
+
+J3DIVector3.prototype.divide = function(divisor)
+{
+    this[0] /= divisor; this[1] /= divisor; this[2] /= divisor;
+}
+
+J3DIVector3.prototype.cross = function(v)
+{
+    this[0] =  this[1] * v[2] - this[2] * v[1];
+    this[1] = -this[0] * v[2] + this[2] * v[0];
+    this[2] =  this[0] * v[1] - this[1] * v[0];
+}
+
+J3DIVector3.prototype.dot = function(v)
+{
+    return this[0] * v[0] + this[1] * v[1] + this[2] * v[2];
+}
+
+J3DIVector3.prototype.combine = function(v, ascl, bscl)
+{
+    this[0] = (ascl * this[0]) + (bscl * v[0]);
+    this[1] = (ascl * this[1]) + (bscl * v[1]);
+    this[2] = (ascl * this[2]) + (bscl * v[2]);
+}
+
+J3DIVector3.prototype.multVecMatrix = function(matrix)
+{
+    var x = this[0];
+    var y = this[1];
+    var z = this[2];
+
+    this[0] = matrix.$matrix.m41 + x * matrix.$matrix.m11 + y * matrix.$matrix.m21 + z * matrix.$matrix.m31;
+    this[1] = matrix.$matrix.m42 + x * matrix.$matrix.m12 + y * matrix.$matrix.m22 + z * matrix.$matrix.m32;
+    this[2] = matrix.$matrix.m43 + x * matrix.$matrix.m13 + y * matrix.$matrix.m23 + z * matrix.$matrix.m33;
+    var w = matrix.$matrix.m44 + x * matrix.$matrix.m14 + y * matrix.$matrix.m24 + z * matrix.$matrix.m34;
+    if (w != 1 && w != 0) {
+        this[0] /= w;
+        this[1] /= w;
+        this[2] /= w;
+    }
+}
+
+J3DIVector3.prototype.toString = function()
+{
+    return "["+this[0]+","+this[1]+","+this[2]+"]";
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/resources/jkl-parsexml.js	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,676 @@
+// ================================================================
+//  jkl-parsexml.js ---- JavaScript Kantan Library for Parsing XML
+//  Copyright 2005-2007 Kawasaki Yusuke <u-suke@kawa.net>
+//  http://www.kawa.net/works/js/jkl/parsexml.html
+// ================================================================
+//  v0.01  2005/05/18  first release
+//  v0.02  2005/05/20  Opera 8.0beta may be abailable but somtimes crashed
+//  v0.03  2005/05/20  overrideMimeType( "text/xml" );
+//  v0.04  2005/05/21  class variables: REQUEST_TYPE, RESPONSE_TYPE
+//  v0.05  2005/05/22  use Msxml2.DOMDocument.5.0 for GET method on IE6
+//  v0.06  2005/05/22  CDATA_SECTION_NODE
+//  v0.07  2005/05/23  use Microsoft.XMLDOM for GET method on IE6
+//  v0.10  2005/10/11  new function: JKL.ParseXML.HTTP.responseText()
+//  v0.11  2005/10/13  new sub class: JKL.ParseXML.Text, JSON and DOM.
+//  v0.12  2005/10/14  new sub class: JKL.ParseXML.CSV and CSVmap.
+//  v0.13  2005/10/28  bug fixed: TEXT_NODE regexp for white spaces
+//  v0.14  2005/11/06  bug fixed: TEXT_NODE regexp at Safari
+//  v0.15  2005/11/08  bug fixed: JKL.ParseXML.CSV.async() method
+//  v0.16  2005/11/15  new sub class: LoadVars, and UTF-8 text on Safari
+//  v0.18  2005/11/16  improve: UTF-8 text file on Safari
+//  v0.19  2006/02/03  use XMLHTTPRequest instead of ActiveX on IE7,iCab
+//  v0.20  2006/03/22  (skipped)
+//  v0.21  2006/11/30  use ActiveX again on IE7
+//  v0.22  2007/01/04  JKL.ParseXML.JSON.parseResponse() updated
+// ================================================================
+
+if ( typeof(JKL) == 'undefined' ) JKL = function() {};
+
+// ================================================================
+//  class: JKL.ParseXML 
+
+JKL.ParseXML = function ( url, query, method ) {
+    // debug.print( "new JKL.ParseXML( '"+url+"', '"+query+"', '"+method+"' );" );
+    this.http = new JKL.ParseXML.HTTP( url, query, method, false );
+    return this;
+};
+
+// ================================================================
+//  class variables
+
+JKL.ParseXML.VERSION = "0.22";
+JKL.ParseXML.MIME_TYPE_XML  = "text/xml";
+JKL.ParseXML.MAP_NODETYPE = [
+    "",
+    "ELEMENT_NODE",                 // 1
+    "ATTRIBUTE_NODE",               // 2
+    "TEXT_NODE",                    // 3
+    "CDATA_SECTION_NODE",           // 4
+    "ENTITY_REFERENCE_NODE",        // 5
+    "ENTITY_NODE",                  // 6
+    "PROCESSING_INSTRUCTION_NODE",  // 7
+    "COMMENT_NODE",                 // 8
+    "DOCUMENT_NODE",                // 9
+    "DOCUMENT_TYPE_NODE",           // 10
+    "DOCUMENT_FRAGMENT_NODE",       // 11
+    "NOTATION_NODE"                 // 12
+];
+
+// ================================================================
+//  define callback function (ajax)
+
+JKL.ParseXML.prototype.async = function ( func, args ) {
+    this.callback_func = func;      // callback function
+    this.callback_arg  = args;      // first argument
+};
+
+JKL.ParseXML.prototype.onerror = function ( func, args ) {
+    this.onerror_func = func;       // callback function
+};
+
+// ================================================================
+//  method: parse()
+//  return: parsed object
+//  Download a file from remote server and parse it.
+
+JKL.ParseXML.prototype.parse = function () {
+    if ( ! this.http ) return;
+
+    // set onerror call back 
+    if ( this.onerror_func ) {
+        this.http.onerror( this.onerror_func );
+    }
+
+    if ( this.callback_func ) {                             // async mode
+        var copy = this;
+        var proc = function() {
+            if ( ! copy.http ) return;
+            var data = copy.parseResponse();
+            copy.callback_func( data, copy.callback_arg );  // call back
+        };
+        this.http.async( proc );
+    }
+
+    this.http.load();
+
+    if ( ! this.callback_func ) {                           // sync mode
+        var data = this.parseResponse();
+        return data;
+    }
+};
+
+// ================================================================
+//  every child/children into array
+JKL.ParseXML.prototype.setOutputArrayAll = function () {
+    this.setOutputArray( true );
+}
+//  a child into scalar, children into array
+JKL.ParseXML.prototype.setOutputArrayAuto = function () {
+    this.setOutputArray( null );
+}
+//  every child/children into scalar (first sibiling only)
+JKL.ParseXML.prototype.setOutputArrayNever = function () {
+    this.setOutputArray( false );
+}
+//  specified child/children into array, other child/children into scalar
+JKL.ParseXML.prototype.setOutputArrayElements = function ( list ) {
+    this.setOutputArray( list );
+}
+//  specify how to treate child/children into scalar/array
+JKL.ParseXML.prototype.setOutputArray = function ( mode ) {
+    if ( typeof(mode) == "string" ) {
+        mode = [ mode ];                // string into array
+    }
+    if ( mode && typeof(mode) == "object" ) {
+        if ( mode.length < 0 ) {
+            mode = false;               // false when array == [] 
+        } else {
+            var hash = {};
+            for( var i=0; i<mode.length; i++ ) {
+                hash[mode[i]] = true;
+            }
+            mode = hash;                // array into hashed array
+            if ( mode["*"] ) {
+                mode = true;            // true when includes "*"
+            }
+        } 
+    } 
+    this.usearray = mode;
+}
+
+// ================================================================
+//  method: parseResponse()
+
+JKL.ParseXML.prototype.parseResponse = function () {
+    var root = this.http.documentElement();
+    var data = this.parseDocument( root );
+    return data;
+}
+
+// ================================================================
+//  convert from DOM root node to JavaScript Object 
+//  method: parseElement( rootElement )
+
+JKL.ParseXML.prototype.parseDocument = function ( root ) {
+    // debug.print( "parseDocument: "+root );
+    if ( ! root ) return;
+
+    var ret = this.parseElement( root );            // parse root node
+    // debug.print( "parsed: "+ret );
+
+    if ( this.usearray == true ) {                  // always into array
+        ret = [ ret ];
+    } else if ( this.usearray == false ) {          // always into scalar
+        //
+    } else if ( this.usearray == null ) {           // automatic
+        //
+    } else if ( this.usearray[root.nodeName] ) {    // specified tag
+        ret = [ ret ];
+    }
+
+    var json = {};
+    json[root.nodeName] = ret;                      // root nodeName
+    return json;
+};
+
+// ================================================================
+//  convert from DOM Element to JavaScript Object 
+//  method: parseElement( element )
+
+JKL.ParseXML.prototype.parseElement = function ( elem ) {
+    // debug.print( "nodeType: "+JKL.ParseXML.MAP_NODETYPE[elem.nodeType]+" <"+elem.nodeName+">" );
+
+    //  COMMENT_NODE
+
+    if ( elem.nodeType == 7 ) {
+        return;
+    }
+
+    //  TEXT_NODE CDATA_SECTION_NODE
+
+    if ( elem.nodeType == 3 || elem.nodeType == 4 ) {
+        // var bool = elem.nodeValue.match( /[^\u0000-\u0020]/ );
+        var bool = elem.nodeValue.match( /[^\x00-\x20]/ ); // for Safari
+        if ( bool == null ) return;     // ignore white spaces
+        // debug.print( "TEXT_NODE: "+elem.nodeValue.length+ " "+bool );
+        return elem.nodeValue;
+    }
+
+    var retval;
+    var cnt = {};
+
+    //  parse attributes
+
+    if ( elem.attributes && elem.attributes.length ) {
+        retval = {};
+        for ( var i=0; i<elem.attributes.length; i++ ) {
+            var key = elem.attributes[i].nodeName;
+            if ( typeof(key) != "string" ) continue;
+            var val = elem.attributes[i].nodeValue;
+            if ( ! val ) continue;
+            if ( typeof(cnt[key]) == "undefined" ) cnt[key] = 0;
+            cnt[key] ++;
+            this.addNode( retval, key, cnt[key], val );
+        }
+    }
+
+    //  parse child nodes (recursive)
+
+    if ( elem.childNodes && elem.childNodes.length ) {
+        var textonly = true;
+        if ( retval ) textonly = false;        // some attributes exists
+        for ( var i=0; i<elem.childNodes.length && textonly; i++ ) {
+            var ntype = elem.childNodes[i].nodeType;
+            if ( ntype == 3 || ntype == 4 ) continue;
+            textonly = false;
+        }
+        if ( textonly ) {
+            if ( ! retval ) retval = "";
+            for ( var i=0; i<elem.childNodes.length; i++ ) {
+                retval += elem.childNodes[i].nodeValue;
+            }
+        } else {
+            if ( ! retval ) retval = {};
+            for ( var i=0; i<elem.childNodes.length; i++ ) {
+                var key = elem.childNodes[i].nodeName;
+                if ( typeof(key) != "string" ) continue;
+                var val = this.parseElement( elem.childNodes[i] );
+                if ( ! val ) continue;
+                if ( typeof(cnt[key]) == "undefined" ) cnt[key] = 0;
+                cnt[key] ++;
+                this.addNode( retval, key, cnt[key], val );
+            }
+        }
+    }
+    return retval;
+};
+
+// ================================================================
+//  method: addNode( hash, key, count, value )
+
+JKL.ParseXML.prototype.addNode = function ( hash, key, cnts, val ) {
+    if ( this.usearray == true ) {              // into array
+        if ( cnts == 1 ) hash[key] = [];
+        hash[key][hash[key].length] = val;      // push
+    } else if ( this.usearray == false ) {      // into scalar
+        if ( cnts == 1 ) hash[key] = val;       // only 1st sibling
+    } else if ( this.usearray == null ) {
+        if ( cnts == 1 ) {                      // 1st sibling
+            hash[key] = val;
+        } else if ( cnts == 2 ) {               // 2nd sibling
+            hash[key] = [ hash[key], val ];
+        } else {                                // 3rd sibling and more
+            hash[key][hash[key].length] = val;
+        }
+    } else if ( this.usearray[key] ) {
+        if ( cnts == 1 ) hash[key] = [];
+        hash[key][hash[key].length] = val;      // push
+    } else {
+        if ( cnts == 1 ) hash[key] = val;       // only 1st sibling
+    }
+};
+
+// ================================================================
+//  class: JKL.ParseXML.Text 
+
+JKL.ParseXML.Text = function ( url, query, method ) {
+    // debug.print( "new JKL.ParseXML.Text( '"+url+"', '"+query+"', '"+method+"' );" );
+    this.http = new JKL.ParseXML.HTTP( url, query, method, true );
+    return this;
+};
+
+JKL.ParseXML.Text.prototype.parse = JKL.ParseXML.prototype.parse;
+JKL.ParseXML.Text.prototype.async = JKL.ParseXML.prototype.async;
+JKL.ParseXML.Text.prototype.onerror = JKL.ParseXML.prototype.onerror;
+
+JKL.ParseXML.Text.prototype.parseResponse = function () {
+    var data = this.http.responseText();
+    return data;
+}
+
+// ================================================================
+//  class: JKL.ParseXML.JSON
+
+JKL.ParseXML.JSON = function ( url, query, method ) {
+    // debug.print( "new JKL.ParseXML.JSON( '"+url+"', '"+query+"', '"+method+"' );" );
+    this.http = new JKL.ParseXML.HTTP( url, query, method, true );
+    return this;
+};
+
+JKL.ParseXML.JSON.prototype.parse = JKL.ParseXML.prototype.parse;
+JKL.ParseXML.JSON.prototype.async = JKL.ParseXML.prototype.async;
+JKL.ParseXML.JSON.prototype.onerror = JKL.ParseXML.prototype.onerror;
+
+JKL.ParseXML.JSON.prototype.parseResponse = function () {
+    var text = this.http.responseText();
+    // http://www.antimon2.atnifty.com/2007/01/jklparsexmljson.html
+    if ( typeof(text) == 'undefined' ) return;
+    if ( ! text.length ) return;
+    var data = eval( "("+text+")" );
+    return data;
+}
+
+// ================================================================
+//  class: JKL.ParseXML.DOM
+
+JKL.ParseXML.DOM = function ( url, query, method ) {
+    // debug.print( "new JKL.ParseXML.DOM( '"+url+"', '"+query+"', '"+method+"' );" );
+    this.http = new JKL.ParseXML.HTTP( url, query, method, false );
+    return this;
+};
+
+JKL.ParseXML.DOM.prototype.parse = JKL.ParseXML.prototype.parse;
+JKL.ParseXML.DOM.prototype.async = JKL.ParseXML.prototype.async;
+JKL.ParseXML.DOM.prototype.onerror = JKL.ParseXML.prototype.onerror;
+
+JKL.ParseXML.DOM.prototype.parseResponse = function () {
+    var data = this.http.documentElement();
+    return data;
+}
+
+// ================================================================
+//  class: JKL.ParseXML.CSV
+
+JKL.ParseXML.CSV = function ( url, query, method ) {
+    // debug.print( "new JKL.ParseXML.CSV( '"+url+"', '"+query+"', '"+method+"' );" );
+    this.http = new JKL.ParseXML.HTTP( url, query, method, true );
+    return this;
+};
+
+JKL.ParseXML.CSV.prototype.parse = JKL.ParseXML.prototype.parse;
+JKL.ParseXML.CSV.prototype.async = JKL.ParseXML.prototype.async;
+JKL.ParseXML.CSV.prototype.onerror = JKL.ParseXML.prototype.onerror;
+
+JKL.ParseXML.CSV.prototype.parseResponse = function () {
+    var text = this.http.responseText();
+    var data = this.parseCSV( text );
+    return data;
+}
+
+JKL.ParseXML.CSV.prototype.parseCSV = function ( text ) {
+    text = text.replace( /\r\n?/g, "\n" );              // new line character
+    var pos = 0;
+    var len = text.length;
+    var table = [];
+    while( pos<len ) {
+        var line = [];
+        while( pos<len ) {
+            if ( text.charAt(pos) == '"' ) {            // "..." quoted column
+                var nextquote = text.indexOf( '"', pos+1 );
+                while ( nextquote<len && nextquote > -1 ) {
+                    if ( text.charAt(nextquote+1) != '"' ) {
+                        break;                          // end of column
+                    }
+                    nextquote = text.indexOf( '"', nextquote+2 );
+                }
+                if ( nextquote < 0 ) {
+                    // unclosed quote
+                } else if ( text.charAt(nextquote+1) == "," ) { // end of column
+                    var quoted = text.substr( pos+1, nextquote-pos-1 );
+                    quoted = quoted.replace(/""/g,'"');
+                    line[line.length] = quoted;
+                    pos = nextquote+2;
+                    continue;
+                } else if ( text.charAt(nextquote+1) == "\n" || // end of line
+                            len==nextquote+1 ) {                // end of file
+                    var quoted = text.substr( pos+1, nextquote-pos-1 );
+                    quoted = quoted.replace(/""/g,'"');
+                    line[line.length] = quoted;
+                    pos = nextquote+2;
+                    break;
+                } else {
+                    // invalid column
+                }
+            }
+            var nextcomma = text.indexOf( ",", pos );
+            var nextnline = text.indexOf( "\n", pos );
+            if ( nextnline < 0 ) nextnline = len;
+            if ( nextcomma > -1 && nextcomma < nextnline ) {
+                line[line.length] = text.substr( pos, nextcomma-pos );
+                pos = nextcomma+1;
+            } else {                                    // end of line
+                line[line.length] = text.substr( pos, nextnline-pos );
+                pos = nextnline+1;
+                break;
+            }
+        }
+        if ( line.length >= 0 ) {
+            table[table.length] = line;                 // push line
+        }
+    }
+    if ( table.length < 0 ) return;                     // null data
+    return table;
+};
+
+// ================================================================
+//  class: JKL.ParseXML.CSVmap
+
+JKL.ParseXML.CSVmap = function ( url, query, method ) {
+    // debug.print( "new JKL.ParseXML.CSVmap( '"+url+"', '"+query+"', '"+method+"' );" );
+    this.http = new JKL.ParseXML.HTTP( url, query, method, true );
+    return this;
+};
+
+JKL.ParseXML.CSVmap.prototype.parse = JKL.ParseXML.prototype.parse;
+JKL.ParseXML.CSVmap.prototype.async = JKL.ParseXML.prototype.async;
+JKL.ParseXML.CSVmap.prototype.onerror = JKL.ParseXML.prototype.onerror;
+JKL.ParseXML.CSVmap.prototype.parseCSV = JKL.ParseXML.CSV.prototype.parseCSV;
+
+JKL.ParseXML.CSVmap.prototype.parseResponse = function () {
+    var text = this.http.responseText();
+    var source = this.parseCSV( text );
+    if ( ! source ) return;
+    if ( source.length < 0 ) return;
+
+    var title = source.shift();                 // first line as title
+    var data = [];
+    for( var i=0; i<source.length; i++ ) {
+        var hash = {};
+        for( var j=0; j<title.length && j<source[i].length; j++ ) {
+            hash[title[j]] = source[i][j];      // array to map
+        }
+        data[data.length] = hash;               // push line
+    }
+    return data;
+}
+
+// ================================================================
+//  class: JKL.ParseXML.LoadVars
+
+JKL.ParseXML.LoadVars = function ( url, query, method ) {
+    // debug.print( "new JKL.ParseXML.LoadVars( '"+url+"', '"+query+"', '"+method+"' );" );
+    this.http = new JKL.ParseXML.HTTP( url, query, method, true );
+    return this;
+};
+
+JKL.ParseXML.LoadVars.prototype.parse = JKL.ParseXML.prototype.parse;
+JKL.ParseXML.LoadVars.prototype.async = JKL.ParseXML.prototype.async;
+JKL.ParseXML.LoadVars.prototype.onerror = JKL.ParseXML.prototype.onerror;
+
+JKL.ParseXML.LoadVars.prototype.parseResponse = function () {
+    var text = this.http.responseText();
+    text = text.replace( /\r\n?/g, "\n" );              // new line character
+    var hash = {};
+    var list = text.split( "&" );
+    for( var i=0; i<list.length; i++ ) {
+        var eq = list[i].indexOf( "=" );
+        if ( eq > -1 ) {
+            var key = decodeURIComponent(list[i].substr(0,eq).replace("+","%20"));
+            var val = decodeURIComponent(list[i].substr(eq+1).replace("+","%20"));
+            hash[key] = val;
+        } else {
+            hash[list[i]] = "";
+        }
+    }
+    return hash;
+};
+
+// ================================================================
+//  class: JKL.ParseXML.HTTP
+//  constructer: new JKL.ParseXML.HTTP()
+
+JKL.ParseXML.HTTP = function( url, query, method, textmode ) {
+    // debug.print( "new JKL.ParseXML.HTTP( '"+url+"', '"+query+"', '"+method+"', '"+textmode+"' );" );
+    this.url = url;
+    if ( typeof(query) == "string" ) {
+        this.query = query;
+    } else {
+        this.query = "";
+    }
+    if ( method ) {
+        this.method = method;
+    } else if ( typeof(query) == "string" ) {
+        this.method = "POST";
+    } else {
+        this.method = "GET";
+    }
+    this.textmode = textmode ? true : false;
+    this.req = null;
+    this.xmldom_flag = false;
+    this.onerror_func  = null;
+    this.callback_func = null;
+    this.already_done = null;
+    return this;
+};
+
+// ================================================================
+//  class variables
+
+JKL.ParseXML.HTTP.REQUEST_TYPE  = "application/x-www-form-urlencoded";
+JKL.ParseXML.HTTP.ACTIVEX_XMLDOM  = "Microsoft.XMLDOM";  // Msxml2.DOMDocument.5.0
+JKL.ParseXML.HTTP.ACTIVEX_XMLHTTP = "Microsoft.XMLHTTP"; // Msxml2.XMLHTTP.3.0
+JKL.ParseXML.HTTP.EPOCH_TIMESTAMP = "Thu, 01 Jun 1970 00:00:00 GMT"
+
+// ================================================================
+
+JKL.ParseXML.HTTP.prototype.onerror = JKL.ParseXML.prototype.onerror;
+JKL.ParseXML.HTTP.prototype.async = function( func ) {
+    this.async_func = func;
+}
+
+// ================================================================
+//  [IE+IXMLDOMElement]
+//      XML     text/xml            OK
+//      XML     application/rdf+xml OK
+//      TEXT    text/plain          NG
+//      TEXT    others              NG
+//  [IE+IXMLHttpRequest]
+//      XML     text/xml            OK
+//      XML     application/rdf+xml NG
+//      TEXT    text/plain          OK
+//      TEXT    others              OK
+//  [Firefox+XMLHttpRequest]
+//      XML     text/xml            OK
+//      XML     application/rdf+xml OK (overrideMimeType)
+//      TEXT    text/plain          OK
+//      TEXT    others              OK (overrideMimeType)
+//  [Opera+XMLHttpRequest]
+//      XML     text/xml            OK
+//      XML     application/rdf+xml OK
+//      TEXT    text/plain          OK
+//      TEXT    others              OK
+// ================================================================
+
+JKL.ParseXML.HTTP.prototype.load = function() {
+    // create XMLHttpRequest object
+    if ( window.ActiveXObject ) {                           // IE5.5,6,7
+        var activex = JKL.ParseXML.HTTP.ACTIVEX_XMLHTTP;    // IXMLHttpRequest
+        if ( this.method == "GET" && ! this.textmode ) {
+            // use IXMLDOMElement to accept any mime types
+            // because overrideMimeType() is not available on IE6
+            activex = JKL.ParseXML.HTTP.ACTIVEX_XMLDOM;     // IXMLDOMElement
+        }
+        // debug.print( "new ActiveXObject( '"+activex+"' )" );
+        this.req = new ActiveXObject( activex );
+    } else if ( window.XMLHttpRequest ) {                   // Firefox, Opera, iCab
+        // debug.print( "new XMLHttpRequest()" );
+        this.req = new XMLHttpRequest();
+    }
+
+    // async mode when call back function is specified
+    var async_flag = this.async_func ? true : false;
+    // debug.print( "async: "+ async_flag );
+
+    // open for XMLHTTPRequest (not for IXMLDOMElement)
+    if ( typeof(this.req.send) != "undefined" ) {
+        // debug.print( "open( '"+this.method+"', '"+this.url+"', "+async_flag+" );" );
+        this.req.open( this.method, this.url, async_flag );
+    }
+
+//  // If-Modified-Since: Thu, 01 Jun 1970 00:00:00 GMT
+//  if ( typeof(this.req.setRequestHeader) != "undefined" ) {
+//      // debug.print( "If-Modified-Since"+JKL.ParseXML.HTTP.EPOCH_TIMESTAMP );
+//      this.req.setRequestHeader( "If-Modified-Since", JKL.ParseXML.HTTP.EPOCH_TIMESTAMP );
+//  }
+
+    // Content-Type: application/x-www-form-urlencoded (request header)
+    // Some server does not accept without request content-type.
+    if ( typeof(this.req.setRequestHeader) != "undefined" ) {
+        // debug.print( "Content-Type: "+JKL.ParseXML.HTTP.REQUEST_TYPE+" (request)" );
+        this.req.setRequestHeader( "Content-Type", JKL.ParseXML.HTTP.REQUEST_TYPE );
+    }
+
+    // Content-Type: text/xml (response header)
+    // FireFox does not accept other mime types like application/rdf+xml etc.
+    if ( typeof(this.req.overrideMimeType) != "undefined" && ! this.textmode ) {
+        // debug.print( "Content-Type: "+JKL.ParseXML.MIME_TYPE_XML+" (response)" );
+        this.req.overrideMimeType( JKL.ParseXML.MIME_TYPE_XML );
+    }
+
+    // set call back handler when async mode
+    if ( async_flag ) {
+        var copy = this;
+        copy.already_done = false;                  // not parsed yet
+        var check_func = function () {
+            if ( copy.req.readyState != 4 ) return;
+            // debug.print( "readyState(async): "+copy.req.readyState );
+            var succeed = copy.checkResponse();
+            // debug.print( "checkResponse(async): "+succeed );
+            if ( ! succeed ) return;                // failed
+            if ( copy.already_done ) return;        // parse only once
+            copy.already_done = true;               // already parsed
+            copy.async_func();                      // call back async
+        };
+        this.req.onreadystatechange = check_func;
+        // for document.implementation.createDocument
+        // this.req.onload = check_func;
+    }
+
+    // send the request and query string
+    if ( typeof(this.req.send) != "undefined" ) {
+        // debug.print( "XMLHTTPRequest: send( '"+this.query+"' );" );
+        this.req.send( this.query );                        // XMLHTTPRequest
+    } else if ( typeof(this.req.load) != "undefined" ) {
+        // debug.print( "IXMLDOMElement: load( '"+this.url+"' );" );
+        this.req.async = async_flag;
+        this.req.load( this.url );                          // IXMLDOMElement
+    }
+
+    // just return when async mode
+    if ( async_flag ) return;
+
+    var succeed = this.checkResponse();
+    // debug.print( "checkResponse(sync): "+succeed );
+}
+
+// ================================================================
+//  method: checkResponse()
+
+JKL.ParseXML.HTTP.prototype.checkResponse = function() {
+    // parseError on IXMLDOMElement
+    if ( this.req.parseError && this.req.parseError.errorCode != 0 ) {
+        // debug.print( "parseError: "+this.req.parseError.reason );
+        if ( this.onerror_func ) this.onerror_func( this.req.parseError.reason );
+        return false;                       // failed
+    }
+
+    // HTTP response code
+    if ( this.req.status-0 > 0 &&
+         this.req.status != 200 &&          // OK
+         this.req.status != 206 &&          // Partial Content
+         this.req.status != 304 ) {         // Not Modified
+        // debug.print( "status: "+this.req.status );
+        if ( this.onerror_func ) this.onerror_func( this.req.status );
+        return false;                       // failed
+    }
+
+    return true;                            // succeed
+}
+
+// ================================================================
+//  method: documentElement()
+//  return: XML DOM in response body
+
+JKL.ParseXML.HTTP.prototype.documentElement = function() {
+    // debug.print( "documentElement: "+this.req );
+    if ( ! this.req ) return;
+    if ( this.req.responseXML ) {
+        return this.req.responseXML.documentElement;    // XMLHTTPRequest
+    } else {
+        return this.req.documentElement;                // IXMLDOMDocument
+    }
+}
+
+// ================================================================
+//  method: responseText()
+//  return: text string in response body
+
+JKL.ParseXML.HTTP.prototype.responseText = function() {
+    // debug.print( "responseText: "+this.req );
+    if ( ! this.req ) return;
+
+    //  Safari and Konqueror cannot understand the encoding of text files.
+    if ( navigator.appVersion.match( "KHTML" ) ) {
+        var esc = escape( this.req.responseText );
+//        debug.print( "escape: "+esc );
+        if ( ! esc.match("%u") && esc.match("%") ) {
+            return decodeURIComponent(esc);
+        }
+    }
+
+    return this.req.responseText;
+}
+
+// ================================================================
+//  http://msdn.microsoft.com/library/en-us/xmlsdk/html/d051f7c5-e882-42e8-a5b6-d1ce67af275c.asp
+// ================================================================
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/resources/keyboard.js	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,78 @@
+function keyboardDown()
+{
+    switch(String.fromCharCode(event.keyCode)) {
+	case 'w':
+		speedZ = 0.006;
+		break;
+	case 'a':
+		speedX = -0.006;
+		break;
+	case 's':
+		speedZ = -0.006;
+		break;
+	case 'd':
+		speedX = 0.006;
+		break;
+
+	case 'i':
+		rotateY = 0.006;
+		break;
+	case 'j':
+		rotateX = -0.006;
+		break;
+	case 'k':
+		rotateY = -0.006;
+		break;
+	case 'l':
+		rotateX = 0.006;
+		break;
+	default:
+		break;
+    }
+}
+
+function keyboardUp()
+{
+	
+	xPos = 0;
+	zPos = 0;
+	xEye = 0;
+    yEye = 0;
+	speedX = 0;
+	speedZ = 0;
+	rotateX = 0;
+	rotateY = 0;
+}
+
+function keyboardPress()
+{
+    switch(String.fromCharCode(event.keyCode)) {
+	case 'w':
+		speedZ = 0.006;
+		break;
+	case 'a':
+		speedX = -0.006;
+		break;
+	case 's':
+		speedZ = -0.006;
+		break;
+	case 'd':
+		speedX = 0.006;
+		break;
+
+	case 'i':
+		rotateY = 0.006;
+		break;
+	case 'j':
+		rotateX = -0.006;
+		break;
+	case 'k':
+		rotateY = -0.006;
+		break;
+	case 'l':
+		rotateX = 0.006;
+		break;
+	default:
+		break;
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/resources/makePanel.js	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,113 @@
+function parseObj( url ) {
+    var http = new JKL.ParseXML( url );
+    var data = http.parse()["OBJECT-3D"];
+    var xmlObj = new Object();
+
+    if (data["surface"][0]) {
+		for (var i in data["surface"]) {
+			var obj = xmlObj[data["surface"][i]["name"]] = new Object();
+			obj.vertex = splitVector(data["surface"][i]["coordinate"]);
+			obj.normal = splitVector(data["surface"][i]["normal"]);
+			obj.texCoords = splitVector(data["surface"][i]["texture"]);
+			obj.model = splitVector(data["surface"][i]["model"]);
+		 	var xmlObjImage = data["surface"][i]["image"];
+			obj.image = 'data:image/png;base64,'+xmlObjImage["#text"];
+		}
+    } else {
+    	var obj = xmlObj[data["surface"]["name"]] = new Object();
+	obj.vertex =  splitVector(data["surface"]["coordinate"]);
+	obj.normal =  splitVector(data["surface"]["normal"]);
+	obj.texCoords = splitVector(data["surface"]["texture"]);
+	obj.model = splitVector(data["surface"]["model"]);
+	var xmlObjImage = data["surface"]["image"];
+	obj.image = 'data:image/png;base64,'+xmlObjImage["#text"];
+    }
+
+    return xmlObj;
+}
+
+function splitVector(str) {
+    //    return str.replace(/^\s+/g, "").replace(/\s+/g, " ").split(" ");
+    return str.replace(/^\s+/g, "").replace(/\s+/g, " ").replace(/\s$/g, "").split(" ");
+}
+
+function makeXmlObj(ctx, xmlObj)
+{
+
+    var model = new Object();
+    model.x = parseFloat(xmlObj.model[0]);
+    model.y = parseFloat(xmlObj.model[1]);
+    model.z = parseFloat(xmlObj.model[2]);
+  
+    var geometryData = [ ];
+    var normalData   = [ ];
+    var texCoordData = [ ];
+    var indexData    = [ ];
+    var index = 0;
+    var xmax = 0;
+    var xmin = 0;
+    var ymax = 0;
+    var ymin = 0;    
+   
+    
+    for(var i=0; xmlObj.vertex[i]; i+=3){
+		geometryData.push(parseFloat(xmlObj.vertex[i]) - model.x);
+		geometryData.push(parseFloat(xmlObj.vertex[i+1]) - model.y);
+		geometryData.push(parseFloat(xmlObj.vertex[i+2]) - model.z);
+		if ( (i % 3) == 0) {
+			indexData.push(index);
+			index++;
+		}
+		//オブジェクトの最大・最小のx,y座標を求める
+		if ( i == 0) {
+		    xmax = geometryData[0];
+		    xmin = geometryData[0];
+		    ymax = geometryData[1];
+		    ymin = geometryData[1];
+		}
+		if ( i > 0 ){
+		    xmax = Math.max( xmax, geometryData[i]);
+		    xmin = Math.min( xmin, geometryData[i]);
+		    ymax = Math.max( ymax, geometryData[i+1]);
+		    ymin = Math.min( ymin, geometryData[i+1]);
+		}
+    }
+    for(i=0; xmlObj.texCoords[i]; i++){
+		texCoordData.push(parseFloat(xmlObj.texCoords[i]));
+
+    }
+    for(i=0; xmlObj.normal[i]; i+=3){
+		normalData.push(parseFloat(xmlObj.normal[i]));
+		normalData.push(parseFloat(xmlObj.normal[i+1]));
+		normalData.push(parseFloat(xmlObj.normal[i+2]));
+    }
+
+    var retval = { };
+    //オブジェクトの横幅,縦幅を求める
+    retval.w = xmax - xmin;
+    retval.h = ymax - ymin;
+
+    retval.normalObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.normalObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(normalData), ctx.STATIC_DRAW);
+	
+    retval.texCoordObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.texCoordObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(texCoordData), ctx.STATIC_DRAW);
+	
+    retval.vertexObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.vertexObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(geometryData), ctx.STATIC_DRAW);
+    
+    retval.numIndices = indexData.length;
+    retval.indexObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, retval.indexObject);
+    ctx.bufferData(ctx.ELEMENT_ARRAY_BUFFER, new Uint16Array(indexData), ctx.STREAM_DRAW);
+	
+    return retval;
+}
+
+function makeOrthoPara(left, right, bottom, top)
+{
+    return {left:left,right:right,bottom:bottom,top:top};
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/resources/makePanel.js~	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,113 @@
+function parsePanel( url ) {
+    var http = new JKL.ParseXML( url );
+    var data = http.parse()["OBJECT-3D"];
+    var xmlObj = new Object();
+
+    if (data["surface"][0]) {
+		for (var i in data["surface"]) {
+			var obj = xmlObj[data["surface"][i]["name"]] = new Object();
+			obj.vertex = splitVector(data["surface"][i]["coordinate"]);
+			obj.normal = splitVector(data["surface"][i]["normal"]);
+			obj.texCoords = splitVector(data["surface"][i]["texture"]);
+			obj.model = splitVector(data["surface"][i]["model"]);
+			var xmlObjImage = data["surface"][i]["image"];
+			obj.image = 'data:image/png;base64,'+xmlObjImage["#text"];
+		}
+    } else {
+    	var obj = xmlObj[data["surface"]["name"]] = new Object();
+	obj.vertex =  splitVector(data["surface"]["coordinate"]);
+	obj.normal =  splitVector(data["surface"]["normal"]);
+	obj.texCoords = splitVector(data["surface"]["texture"]);
+	obj.model = splitVector(data["surface"]["model"]);
+	var xmlObjImage = data["surface"]["image"];
+	obj.image = 'data:image/png;base64,'+xmlObjImage["#text"];
+    }
+
+    return xmlObj;
+}
+
+function splitVector(str) {
+    //    return str.replace(/^\s+/g, "").replace(/\s+/g, " ").split(" ");
+    return str.replace(/^\s+/g, "").replace(/\s+/g, " ").replace(/\s$/g, "").split(" ");
+}
+
+function makeXmlObj(ctx, xmlObj)
+{
+
+    var model = new Object();
+    model.x = parseFloat(xmlObj.model[0]);
+    model.y = parseFloat(xmlObj.model[1]);
+    model.z = parseFloat(xmlObj.model[2]);
+  
+    var geometryData = [ ];
+    var normalData   = [ ];
+    var texCoordData = [ ];
+    var indexData    = [ ];
+    var index = 0;
+    var xmax = 0;
+    var xmin = 0;
+    var ymax = 0;
+    var ymin = 0;    
+   
+    
+    for(var i=0; xmlObj.vertex[i]; i+=3){
+		geometryData.push(parseFloat(xmlObj.vertex[i]) - model.x);
+		geometryData.push(parseFloat(xmlObj.vertex[i+1]) - model.y);
+		geometryData.push(parseFloat(xmlObj.vertex[i+2]) - model.z);
+		if ( (i % 3) == 0) {
+			indexData.push(index);
+			index++;
+		}
+		//オブジェクトの最大・最小のx,y座標を求める
+		if ( i == 0) {
+		    xmax = geometryData[0];
+		    xmin = geometryData[0];
+		    ymax = geometryData[1];
+		    ymin = geometryData[1];
+		}
+		if ( i > 0 ){
+		    xmax = Math.max( xmax, geometryData[i]);
+		    xmin = Math.min( xmin, geometryData[i]);
+		    ymax = Math.max( ymax, geometryData[i+1]);
+		    ymin = Math.min( ymin, geometryData[i+1]);
+		}
+    }
+    for(i=0; xmlObj.texCoords[i]; i++){
+		texCoordData.push(parseFloat(xmlObj.texCoords[i]));
+
+    }
+    for(i=0; xmlObj.normal[i]; i+=3){
+		normalData.push(parseFloat(xmlObj.normal[i]));
+		normalData.push(parseFloat(xmlObj.normal[i+1]));
+		normalData.push(parseFloat(xmlObj.normal[i+2]));
+    }
+
+    var retval = { };
+    //オブジェクトの横幅,縦幅を求める
+    retval.w = xmax - xmin;
+    retval.h = ymax - ymin;
+
+    retval.normalObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.normalObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(normalData), ctx.STATIC_DRAW);
+	
+    retval.texCoordObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.texCoordObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(texCoordData), ctx.STATIC_DRAW);
+	
+    retval.vertexObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, retval.vertexObject);
+    ctx.bufferData(ctx.ARRAY_BUFFER, new Float32Array(geometryData), ctx.STATIC_DRAW);
+    
+    retval.numIndices = indexData.length;
+    retval.indexObject = ctx.createBuffer();
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, retval.indexObject);
+    ctx.bufferData(ctx.ELEMENT_ARRAY_BUFFER, new Uint16Array(indexData), ctx.STREAM_DRAW);
+	
+    return retval;
+}
+
+function makeOrthoPara(left, right, bottom, top)
+{
+    return {left:left,right:right,bottom:bottom,top:top};
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/resources/mouse.js	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,38 @@
+function mouseUp() {
+    document.body.onmousemove = null;
+}
+
+function mouseDown() {
+    var oldx = event.pageX
+    var oldy = event.pageY
+
+    function mouseMove() {
+	var x = event.pageX
+	var y = event.pageY
+	
+	var tx = x - oldx;
+	var ty = y - oldy;
+
+	var r = Math.sqrt(tx*tx + ty*ty);
+	if(r) { var rotmat = new J3DIMatrix4();rotmat.rotate(r/10, ty/r, tx/r, 0)
+		rotmat.multiply(matrix);
+		matrix=rotmat;
+	      }
+	oldx = x;
+	oldy = y;
+	
+    }
+    document.body.onmousemove = mouseMove;
+
+}
+
+function mouseMove() {
+    var x = event.pageX
+    var y = event.pageY
+
+    
+    
+
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/resources/mouse.js~	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,12 @@
+function onMouseUp() {
+
+}
+
+function onMouseDown() {
+
+}
+
+function onMouseMove() {
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/resources/parse.js	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,104 @@
+
+
+
+
+function loadObjXml(gl,url)
+{
+    if(gl.obj == undefined) gl.obj = new Object();
+    var xmlChara = new Object();
+    xmlChara = parseObj(url);
+    for (var name in xmlChara)
+	{
+            gl.obj[name] = makeXmlObj(gl, xmlChara[name]);
+            gl.obj[name].texture = loadImageTexture(gl, xmlChara[name].image);
+	}
+}
+
+function PutSpriteF(ctx, x, y, scale, glObj)
+{
+    PutSpriteA(ctx,x,y,10, scale, 0, glObj);
+}
+
+
+function PutSpriteA(ctx, x, y, z, scale, angle,  glObj)
+{
+    // setup VBOs
+    ctx.enableVertexAttribArray(0);
+    ctx.enableVertexAttribArray(1);
+    ctx.enableVertexAttribArray(2);
+				
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.vertexObject);
+    ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.normalObject);
+    ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
+    
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.texCoordObject);
+    ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
+				
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, glObj.indexObject);
+
+    // generate the model-view matrix
+    var mvMatrix = new J3DIMatrix4();
+    mvMatrix.translate( x, y, z);
+    mvMatrix.scale(scale, scale, scale);
+    mvMatrix.rotate(angle, 0, 0, 1);
+    
+    // construct the normal matrix from the model-view matrix
+    var normalMatrix = new J3DIMatrix4(mvMatrix);
+    normalMatrix.invert();
+    normalMatrix.transpose();
+    normalMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false);
+    
+    // construct the model-view * projection matrix
+    var mvpMatrix = new J3DIMatrix4(ctx.perspectiveMatrix);
+    mvpMatrix.multiply(mvMatrix);
+     mvpMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false);
+
+    
+    ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture);
+    ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0);
+ 
+}
+
+
+
+// matrix version
+function PutSpriteV(ctx, x, y, z, scale, matrix, glObj)
+{
+    // setup VBOs
+    ctx.enableVertexAttribArray(0);
+    ctx.enableVertexAttribArray(1);
+    ctx.enableVertexAttribArray(2);
+				
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.vertexObject);
+    ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.normalObject);
+    ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
+    
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.texCoordObject);
+    ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
+				
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, glObj.indexObject);
+
+    // generate the model-view matrix
+    var mvMatrix = new J3DIMatrix4();
+    mvMatrix.translate( x, y, z);
+    mvMatrix.scale(scale, scale, scale);
+    mvMatrix.multiply(matrix);
+    
+    // construct the normal matrix from the model-view matrix
+    var normalMatrix = new J3DIMatrix4(mvMatrix);
+    normalMatrix.invert();
+    normalMatrix.transpose();
+    normalMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false);
+    
+    // construct the model-view * projection matrix
+    var mvpMatrix = new J3DIMatrix4(ctx.perspectiveMatrix);
+    mvpMatrix.multiply(mvMatrix);
+     mvpMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false);
+
+    
+    ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture);
+    ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0);
+ 
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/resources/parse.js~	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,258 @@
+function parseXml(gl)
+{
+    loadObjXml(gl, "./xml/effect.xml");//gl.objにxmlファイルの中身をいれる
+
+    loadObjXml(gl, "./xml/boss.xml");//gl.bossにxmlファイルの中身を入れる
+
+    loadObjXml(gl, "./xml/titlefont.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_pushstart.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_superdandy.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_0.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_1.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_2.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_3.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_4.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_5.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_6.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_7.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_8.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_9.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_hige.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_1997yas_k.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml/font_gameover.xml");//gl.objにxmlファイルの中身をいれる
+
+    loadObjXml(gl, "./xml2/bullets.xml");//gl.objにxmlファイルの中身をいれる
+    loadObjXml(gl, "./xml2/enemy.xml");//gl.objにxmlファイルの中身を入れる
+    loadObjXml(gl, "./xml2/player.xml");//gl.objにxmlファイルの中身を入れる
+    loadObjXml(gl, "./xml2/redbomb_anim.xml");//gl.objにxmlファイルの中身を入れる
+    loadObjXml(gl, "./xml2/boss1.xml");//gl.objにxmlファイルの中身を入れる
+    loadObjXml(gl, "./xml2/boss2.xml");//gl.objにxmlファイルの中身を入れる
+
+    jiki = new makePlayer(gl.obj);//自機の情報をいれておくクラス、グローバル
+
+    gamesyokika();
+    
+    enemy = [];//敵の情報を入れておく配列を用意、グローバル
+    pushEnemy(gl,enemy);//配列enemy[]に敵をpush
+    //    pushEnemyBullets(gl, enemy);//配列enemy[]に敵の弾情報をpush
+
+    boss = [];//bossの情報を入れておく配列を用意,グローバル
+    pushBoss(gl, boss);//配列boss[]にbossの情報をpush
+
+    bullets = [];//弾の情報を入れておく配列を用意、グローバル
+    pushPlayerBullets(gl,bullets);//配列bullets[]に弾をpush
+
+    bomImage = [];//撃破時の爆発の情報をいれておく配列を用意。グローバル
+    pushBom(gl, bomImage);//配列 bom[]に爆発をpush
+
+    font = [];//fontを入れておく配列
+    pushFont(gl, font);//
+    //    ebullets = [];//敵の弾の情報を入れておく配列を用意、グローバル
+    //    pushEnemyBullets(gl, ebullets);
+}
+
+
+function loadObjXml(gl,url)
+{
+    if(gl.obj == undefined) gl.obj = new Object();
+    var xmlChara = new Object();
+    xmlChara = parsePanel(url);
+    for (var name in xmlChara)
+	{
+            gl.obj[name] = makeXmlObj(gl, xmlChara[name]);
+            gl.obj[name].texture = loadImageTexture(gl, xmlChara[name].image);
+	}
+}
+
+function pushBoss(gl, boss)
+{
+
+    boss.push(gl.obj["blackhole"]);
+    boss.push(gl.obj["boss_orgun"]);//透過ずみ
+    boss.push(gl.obj["boss2_dummy"]);
+    boss.push(gl.obj["boss2_rightpalm"]);
+    boss.push(gl.obj["boss2_lefthand"]);
+    boss.push(gl.obj["boss2_left_s_gird"]);
+    boss.push(gl.obj["boss3_body"]);
+    boss.push(gl.obj["boss_4"]);
+    boss.push(gl.obj["boss_corpse"]);
+    boss.push(gl.obj["boss2_righthand"]);
+    boss.push(gl.obj["boss2_openbattery"]);
+    boss.push(gl.obj["boss2_rightarm_b"]);
+    boss.push(gl.obj["boss2_leftpalm"]);
+    boss.push(gl.obj["boss2_leftarm"]);//以下透過ずみ
+    boss.push(gl.obj["boss2_rightarm"]);
+    boss.push(gl.obj["boss2_leftshoulder"]);
+    boss.push(gl.obj["boss2_left_s_up"]);
+    boss.push(gl.obj["boss2_battery"]);
+    boss.push(gl.obj["boss2_brokenhatch"]);
+    boss.push(gl.obj["boss2_leftbattery"]);
+    boss.push(gl.obj["boss2_r_shoulderup"]);
+    boss.push(gl.obj["boss2_body"]);
+    boss.push(gl.obj["boss2_rightshoulder"]);
+}
+
+
+function pushEnemy(gl, enemy)
+{
+    enemy.push(gl.obj["missile"]);
+    enemy.push(gl.obj["enemy_greencrab"]);
+    enemy.push(gl.obj["enemy_plane"]);
+    enemy.push(gl.obj["gunbattery"]);
+    enemy.push(gl.obj["enemy_redbullet"]);
+    enemy.push(gl.obj["enemy_bluebullet"]);
+    enemy.push(gl.obj["tama_s_01"]);
+    enemy.push(gl.obj["tama_s_02"]);
+    enemy.push(gl.obj["tama_s_03"]);
+    enemy.push(gl.obj["meteo"]);
+    enemy.push(gl.obj["tama_l_02"]);
+    enemy.push(gl.obj["tama_l_03"]);
+    enemy.push(gl.obj["enemy_lightning"]);
+    enemy.push(gl.obj["enemy_lasersplosh.001"]);
+    enemy.push(gl.obj["enemy_lasersplosh.002"]);
+    enemy.push(gl.obj["enemy_lasersplosh.003"]);
+    enemy.push(gl.obj["missile"]);
+    enemy.push(gl.obj["spacefish"]);
+    enemy.push(gl.obj["tama_s_04"]);
+}
+
+
+
+function pushPlayerBullets(gl,bullets)
+{
+    bullets.push(gl.obj["bluebarrier"]);
+    bullets.push(gl.obj["lockon_sight"]);
+    bullets.push(gl.obj["bulebullet_right"]);
+    bullets.push(gl.obj["bulebullet_left"]);
+    bullets.push(gl.obj["redbullet"]);
+    bullets.push(gl.obj["greenbullet"]);
+    bullets.push(gl.obj["lonlaser"]);
+}
+
+function pushBom(gl, bomImage)
+{
+    bomImage.push(gl.obj["redbomb_anim_0"]);
+    bomImage.push(gl.obj["redbomb_anim_1"]);
+    bomImage.push(gl.obj["redbomb_anim_2"]);
+    bomImage.push(gl.obj["redbomb_anim_3"]);
+    bomImage.push(gl.obj["redbomb_anim_4"]);
+    bomImage.push(gl.obj["redbomb_anim_5"]);
+    bomImage.push(gl.obj["redbomb_anim_6"]);
+    bomImage.push(gl.obj["redbomb_anim_7"]);
+}
+
+function pushEnemyBullets(gl, ebullets)
+{
+    ebullets.push(gl.obj["enemy_redbullet"]);
+    ebullets.push(gl.obj["enemy_bluebullet"]);
+    ebullets.push(gl.obj["tama_s_01"]);
+    ebullets.push(gl.obj["tama_s_02"]);
+    ebullets.push(gl.obj["tama_s_03"]);
+    ebullets.push(gl.obj["tama_s_04"]);
+    ebullets.push(gl.obj["tama_l_02"]);
+    ebullets.push(gl.obj["tama_l_03"]);
+    ebullets.push(gl.obj["tama_l_04"]);
+}
+
+function pushFont(gl, font)
+{
+    font.push(gl.obj["font_0"]);
+    font.push(gl.obj["font_1"]);
+    font.push(gl.obj["font_2"]);
+    font.push(gl.obj["font_3"]);
+    font.push(gl.obj["font_4"]);
+    font.push(gl.obj["font_5"]);
+    font.push(gl.obj["font_6"]);
+    font.push(gl.obj["font_7"]);
+    font.push(gl.obj["font_8"]);
+    font.push(gl.obj["font_9"])
+    font.push(gl.obj["titlefont"]);
+    font.push(gl.obj["font_pushstart"]);
+    font.push(gl.obj["font_superdandy"]);
+    font.push(gl.obj["font_hige"]);
+    font.push(gl.obj["font_font_1997yas_k"]);
+    font.push(gl.obj["font_gameover"]);
+}
+
+function PutSpriteF(ctx, x, y, scale, glObj)
+{
+
+    // setup VBOs
+    ctx.enableVertexAttribArray(0);
+    ctx.enableVertexAttribArray(1);
+    ctx.enableVertexAttribArray(2);
+				
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.vertexObject);
+    ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.normalObject);
+    ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
+    
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.texCoordObject);
+    ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
+
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, glObj.indexObject);
+
+
+    // generate the model-view matrix
+    var mvMatrix = new J3DIMatrix4();
+    mvMatrix.scale(scale, scale, scale);
+    mvMatrix.translate( x, y, 10);
+    
+    // construct the normal matrix from the model-view matrix
+    var normalMatrix = new J3DIMatrix4(mvMatrix);
+    normalMatrix.invert();
+    normalMatrix.transpose();
+    normalMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false);
+    
+    // construct the model-view * projection matrix
+    var mvpMatrix = new J3DIMatrix4(ctx.perspectiveMatrix);
+    mvpMatrix.multiply(mvMatrix);
+    mvpMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false);
+
+    
+    ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture);
+    ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0);
+
+
+}
+
+function PutSpriteA(ctx, x, y, scale, angle,  glObj)
+{
+
+    // setup VBOs
+    ctx.enableVertexAttribArray(0);
+    ctx.enableVertexAttribArray(1);
+    ctx.enableVertexAttribArray(2);
+				
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.vertexObject);
+    ctx.vertexAttribPointer(2, 3, ctx.FLOAT, false, 0, 0);
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.normalObject);
+    ctx.vertexAttribPointer(0, 3, ctx.FLOAT, false, 0, 0);
+    
+    ctx.bindBuffer(ctx.ARRAY_BUFFER, glObj.texCoordObject);
+    ctx.vertexAttribPointer(1, 2, ctx.FLOAT, false, 0, 0);
+				
+    ctx.bindBuffer(ctx.ELEMENT_ARRAY_BUFFER, glObj.indexObject);
+
+    // generate the model-view matrix
+    var mvMatrix = new J3DIMatrix4();
+    mvMatrix.scale(scale, scale, scale);
+    mvMatrix.translate( x, y, 10);
+    mvMatrix.rotate(angle, 0, 0, 1);
+    
+    // construct the normal matrix from the model-view matrix
+    var normalMatrix = new J3DIMatrix4(mvMatrix);
+    normalMatrix.invert();
+    normalMatrix.transpose();
+    normalMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_normalMatrix"), false);
+    
+    // construct the model-view * projection matrix
+    var mvpMatrix = new J3DIMatrix4(ctx.perspectiveMatrix);
+    mvpMatrix.multiply(mvMatrix);
+     mvpMatrix.setUniform(ctx, ctx.getUniformLocation(ctx.program, "u_modelViewProjMatrix"), false);
+
+    
+    ctx.bindTexture(ctx.TEXTURE_2D, glObj.texture);
+    ctx.drawElements(ctx.TRIANGLES, glObj.numIndices, ctx.UNSIGNED_SHORT, 0);
+ 
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/xml/Musi.xml	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,2519 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="Cube.001" size="1176" prim="Triangle" parent="NULL">
+		<coordinate>
+			-1.907917 -2.019015 -0.088326
+			-1.907917 -2.019015 0.088326
+			-0.655294 -0.765646 0.088326
+			-0.655294 -0.765646 0.088326
+			-0.655294 -0.765646 -0.088326
+			-1.907917 -2.019015 -0.088326
+			-2.042346 -1.884667 0.088326
+			-2.042346 -1.884667 -0.088326
+			-0.789723 -0.631297 -0.088326
+			-0.789723 -0.631297 -0.088326
+			-0.789723 -0.631297 0.088326
+			-2.042346 -1.884667 0.088326
+			-2.042346 -1.884667 -0.088326
+			-1.975132 -1.951841 -0.159166
+			-0.722508 -0.698472 -0.159166
+			-0.722508 -0.698472 -0.159166
+			-0.789723 -0.631297 -0.088326
+			-2.042346 -1.884667 -0.088326
+			-1.975132 -1.951841 -0.159166
+			-1.907917 -2.019015 -0.088326
+			-0.655294 -0.765646 -0.088326
+			-0.655294 -0.765646 -0.088326
+			-0.722508 -0.698472 -0.159166
+			-1.975132 -1.951841 -0.159166
+			-0.789723 -0.631297 0.088326
+			-0.722508 -0.698471 0.159166
+			-1.975132 -1.951841 0.159166
+			-1.975132 -1.951841 0.159166
+			-2.042346 -1.884667 0.088326
+			-0.789723 -0.631297 0.088326
+			-0.722508 -0.698471 0.159166
+			-0.655294 -0.765646 0.088326
+			-1.907917 -2.019015 0.088326
+			-1.907917 -2.019015 0.088326
+			-1.975132 -1.951841 0.159166
+			-0.722508 -0.698471 0.159166
+			-0.655294 -0.765646 0.088326
+			-0.722508 -0.698471 0.159166
+			-0.722508 -0.698472 -0.159166
+			-0.722508 -0.698472 -0.159166
+			-0.655294 -0.765646 -0.088326
+			-0.655294 -0.765646 0.088326
+			-0.722508 -0.698471 0.159166
+			-0.789723 -0.631297 0.088326
+			-0.789723 -0.631297 -0.088326
+			-0.789723 -0.631297 -0.088326
+			-0.722508 -0.698472 -0.159166
+			-0.722508 -0.698471 0.159166
+			-1.975132 -1.951841 0.159166
+			-1.907917 -2.019015 0.088326
+			-1.831824 -1.922020 0.070661
+			-1.831824 -1.922020 0.070661
+			-1.885595 -1.868281 0.127333
+			-1.975132 -1.951841 0.159166
+			-2.042346 -1.884667 0.088326
+			-1.975132 -1.951841 0.159166
+			-1.885595 -1.868281 0.127333
+			-1.885595 -1.868281 0.127333
+			-1.939367 -1.814542 0.070661
+			-2.042346 -1.884667 0.088326
+			-1.907917 -2.019015 -0.088326
+			-1.975132 -1.951841 -0.159166
+			-1.885595 -1.868281 -0.127333
+			-1.885595 -1.868281 -0.127333
+			-1.831824 -1.922021 -0.070661
+			-1.907917 -2.019015 -0.088326
+			-1.975132 -1.951841 -0.159166
+			-2.042346 -1.884667 -0.088326
+			-1.939367 -1.814542 -0.070661
+			-1.939367 -1.814542 -0.070661
+			-1.885595 -1.868281 -0.127333
+			-1.975132 -1.951841 -0.159166
+			-2.042346 -1.884667 -0.088326
+			-2.042346 -1.884667 0.088326
+			-1.939367 -1.814542 0.070661
+			-1.939367 -1.814542 0.070661
+			-1.939367 -1.814542 -0.070661
+			-2.042346 -1.884667 -0.088326
+			-1.907917 -2.019015 0.088326
+			-1.907917 -2.019015 -0.088326
+			-1.831824 -1.922021 -0.070661
+			-1.831824 -1.922021 -0.070661
+			-1.831824 -1.922020 0.070661
+			-1.907917 -2.019015 0.088326
+			-1.831824 -1.922020 0.070661
+			-1.831824 -1.922021 -0.070661
+			-2.126212 -2.245733 -0.215982
+			-2.126212 -2.245733 -0.215982
+			-2.200553 -2.245733 -0.095795
+			-1.831824 -1.922020 0.070661
+			-1.939367 -1.814542 -0.070661
+			-1.939367 -1.814542 0.070661
+			-2.292014 -2.138255 -0.152367
+			-2.292014 -2.138255 -0.152367
+			-2.217673 -2.138254 -0.272555
+			-1.939367 -1.814542 -0.070661
+			-1.885595 -1.868281 -0.127333
+			-1.939367 -1.814542 -0.070661
+			-2.217673 -2.138254 -0.272555
+			-2.217673 -2.138254 -0.272555
+			-2.142130 -2.191993 -0.292466
+			-1.885595 -1.868281 -0.127333
+			-1.831824 -1.922021 -0.070661
+			-1.885595 -1.868281 -0.127333
+			-2.142130 -2.191993 -0.292466
+			-2.142130 -2.191993 -0.292466
+			-2.126212 -2.245733 -0.215982
+			-1.831824 -1.922021 -0.070661
+			-1.939367 -1.814542 0.070661
+			-1.885595 -1.868281 0.127333
+			-2.276095 -2.191993 -0.075883
+			-2.276095 -2.191993 -0.075883
+			-2.292014 -2.138255 -0.152367
+			-1.939367 -1.814542 0.070661
+			-1.885595 -1.868281 0.127333
+			-1.831824 -1.922020 0.070661
+			-2.200553 -2.245733 -0.095795
+			-2.200553 -2.245733 -0.095795
+			-2.276095 -2.191993 -0.075883
+			-1.885595 -1.868281 0.127333
+			-2.276095 -2.191993 -0.075883
+			-2.200553 -2.245733 -0.095795
+			-2.136759 -2.179201 -0.068994
+			-2.136759 -2.179201 -0.068994
+			-2.199358 -2.134668 -0.052494
+			-2.276095 -2.191993 -0.075883
+			-2.292014 -2.138255 -0.152367
+			-2.276095 -2.191993 -0.075883
+			-2.199358 -2.134668 -0.052494
+			-2.199358 -2.134668 -0.052494
+			-2.212550 -2.090137 -0.115874
+			-2.292014 -2.138255 -0.152367
+			-2.126212 -2.245733 -0.215982
+			-2.142130 -2.191993 -0.292466
+			-2.088346 -2.134668 -0.231970
+			-2.088346 -2.134668 -0.231970
+			-2.075155 -2.179201 -0.168590
+			-2.126212 -2.245733 -0.215982
+			-2.142130 -2.191993 -0.292466
+			-2.217673 -2.138254 -0.272555
+			-2.150945 -2.090137 -0.215470
+			-2.150945 -2.090137 -0.215470
+			-2.088346 -2.134668 -0.231970
+			-2.142130 -2.191993 -0.292466
+			-2.217673 -2.138254 -0.272555
+			-2.292014 -2.138255 -0.152367
+			-2.212550 -2.090137 -0.115874
+			-2.212550 -2.090137 -0.115874
+			-2.150945 -2.090137 -0.215470
+			-2.217673 -2.138254 -0.272555
+			-2.200553 -2.245733 -0.095795
+			-2.126212 -2.245733 -0.215982
+			-2.075155 -2.179201 -0.168590
+			-2.075155 -2.179201 -0.168590
+			-2.136759 -2.179201 -0.068994
+			-2.200553 -2.245733 -0.095795
+			-2.136759 -2.179201 -0.068994
+			-2.075155 -2.179201 -0.168590
+			-2.413568 -2.452001 -0.523355
+			-2.150945 -2.090137 -0.215470
+			-2.212550 -2.090137 -0.115874
+			-2.413568 -2.452001 -0.523355
+			-2.088346 -2.134668 -0.231970
+			-2.150945 -2.090137 -0.215470
+			-2.413568 -2.452001 -0.523355
+			-2.075155 -2.179201 -0.168590
+			-2.088346 -2.134668 -0.231970
+			-2.413568 -2.452001 -0.523355
+			-2.212550 -2.090137 -0.115874
+			-2.199358 -2.134668 -0.052494
+			-2.413568 -2.452001 -0.523355
+			-2.199358 -2.134668 -0.052494
+			-2.136759 -2.179201 -0.068994
+			-2.413568 -2.452001 -0.523355
+			-2.202273 2.100578 0.048305
+			-2.139673 2.145110 0.031805
+			-2.416482 2.417911 -0.422555
+			-2.215464 2.056046 -0.015074
+			-2.202273 2.100578 0.048305
+			-2.416482 2.417911 -0.422555
+			-2.078069 2.145111 -0.067791
+			-2.091260 2.100578 -0.131170
+			-2.416482 2.417911 -0.422555
+			-2.091260 2.100578 -0.131170
+			-2.153860 2.056046 -0.114670
+			-2.416482 2.417911 -0.422555
+			-2.153860 2.056046 -0.114670
+			-2.215464 2.056046 -0.015074
+			-2.416482 2.417911 -0.422555
+			-2.139673 2.145110 0.031805
+			-2.078069 2.145111 -0.067791
+			-2.416482 2.417911 -0.422555
+			-2.203467 2.211643 0.005005
+			-2.129126 2.211643 -0.115183
+			-2.078069 2.145111 -0.067791
+			-2.078069 2.145111 -0.067791
+			-2.139673 2.145110 0.031805
+			-2.203467 2.211643 0.005005
+			-2.220587 2.104164 -0.171755
+			-2.294928 2.104164 -0.051567
+			-2.215464 2.056046 -0.015074
+			-2.215464 2.056046 -0.015074
+			-2.153860 2.056046 -0.114670
+			-2.220587 2.104164 -0.171755
+			-2.145045 2.157903 -0.191666
+			-2.220587 2.104164 -0.171755
+			-2.153860 2.056046 -0.114670
+			-2.153860 2.056046 -0.114670
+			-2.091260 2.100578 -0.131170
+			-2.145045 2.157903 -0.191666
+			-2.129126 2.211643 -0.115183
+			-2.145045 2.157903 -0.191666
+			-2.091260 2.100578 -0.131170
+			-2.091260 2.100578 -0.131170
+			-2.078069 2.145111 -0.067791
+			-2.129126 2.211643 -0.115183
+			-2.294928 2.104164 -0.051567
+			-2.279010 2.157903 0.024916
+			-2.202273 2.100578 0.048305
+			-2.202273 2.100578 0.048305
+			-2.215464 2.056046 -0.015074
+			-2.294928 2.104164 -0.051567
+			-2.279010 2.157903 0.024916
+			-2.203467 2.211643 0.005005
+			-2.139673 2.145110 0.031805
+			-2.139673 2.145110 0.031805
+			-2.202273 2.100578 0.048305
+			-2.279010 2.157903 0.024916
+			-1.888510 1.834191 0.228132
+			-1.834738 1.887930 0.171460
+			-2.203467 2.211643 0.005005
+			-2.203467 2.211643 0.005005
+			-2.279010 2.157903 0.024916
+			-1.888510 1.834191 0.228132
+			-1.942281 1.780452 0.171460
+			-1.888510 1.834191 0.228132
+			-2.279010 2.157903 0.024916
+			-2.279010 2.157903 0.024916
+			-2.294928 2.104164 -0.051567
+			-1.942281 1.780452 0.171460
+			-1.834738 1.887931 0.030139
+			-1.888510 1.834191 -0.026533
+			-2.145045 2.157903 -0.191666
+			-2.145045 2.157903 -0.191666
+			-2.129126 2.211643 -0.115183
+			-1.834738 1.887931 0.030139
+			-1.888510 1.834191 -0.026533
+			-1.942281 1.780452 0.030139
+			-2.220587 2.104164 -0.171755
+			-2.220587 2.104164 -0.171755
+			-2.145045 2.157903 -0.191666
+			-1.888510 1.834191 -0.026533
+			-1.942281 1.780452 0.030139
+			-1.942281 1.780452 0.171460
+			-2.294928 2.104164 -0.051567
+			-2.294928 2.104164 -0.051567
+			-2.220587 2.104164 -0.171755
+			-1.942281 1.780452 0.030139
+			-1.834738 1.887930 0.171460
+			-1.834738 1.887931 0.030139
+			-2.129126 2.211643 -0.115183
+			-2.129126 2.211643 -0.115183
+			-2.203467 2.211643 0.005005
+			-1.834738 1.887930 0.171460
+			-1.910832 1.984925 0.189125
+			-1.910832 1.984925 0.012474
+			-1.834738 1.887931 0.030139
+			-1.834738 1.887931 0.030139
+			-1.834738 1.887930 0.171460
+			-1.910832 1.984925 0.189125
+			-2.045260 1.850576 0.012474
+			-2.045261 1.850577 0.189125
+			-1.942281 1.780452 0.171460
+			-1.942281 1.780452 0.171460
+			-1.942281 1.780452 0.030139
+			-2.045260 1.850576 0.012474
+			-1.978046 1.917751 -0.058366
+			-2.045260 1.850576 0.012474
+			-1.942281 1.780452 0.030139
+			-1.942281 1.780452 0.030139
+			-1.888510 1.834191 -0.026533
+			-1.978046 1.917751 -0.058366
+			-1.910832 1.984925 0.012474
+			-1.978046 1.917751 -0.058366
+			-1.888510 1.834191 -0.026533
+			-1.888510 1.834191 -0.026533
+			-1.834738 1.887931 0.030139
+			-1.910832 1.984925 0.012474
+			-2.045261 1.850577 0.189125
+			-1.978046 1.917751 0.259966
+			-1.888510 1.834191 0.228132
+			-1.888510 1.834191 0.228132
+			-1.942281 1.780452 0.171460
+			-2.045261 1.850577 0.189125
+			-1.978046 1.917751 0.259966
+			-1.910832 1.984925 0.189125
+			-1.834738 1.887930 0.171460
+			-1.834738 1.887930 0.171460
+			-1.888510 1.834191 0.228132
+			-1.978046 1.917751 0.259966
+			-0.725423 0.664381 0.259966
+			-0.792637 0.597207 0.189125
+			-0.792637 0.597207 0.012474
+			-0.792637 0.597207 0.012474
+			-0.725423 0.664381 -0.058366
+			-0.725423 0.664381 0.259966
+			-0.658208 0.731555 0.189125
+			-0.725423 0.664381 0.259966
+			-0.725423 0.664381 -0.058366
+			-0.725423 0.664381 -0.058366
+			-0.658208 0.731556 0.012474
+			-0.658208 0.731555 0.189125
+			-0.725423 0.664381 0.259966
+			-0.658208 0.731555 0.189125
+			-1.910832 1.984925 0.189125
+			-1.910832 1.984925 0.189125
+			-1.978046 1.917751 0.259966
+			-0.725423 0.664381 0.259966
+			-0.792637 0.597207 0.189125
+			-0.725423 0.664381 0.259966
+			-1.978046 1.917751 0.259966
+			-1.978046 1.917751 0.259966
+			-2.045261 1.850577 0.189125
+			-0.792637 0.597207 0.189125
+			-1.978046 1.917751 -0.058366
+			-1.910832 1.984925 0.012474
+			-0.658208 0.731556 0.012474
+			-0.658208 0.731556 0.012474
+			-0.725423 0.664381 -0.058366
+			-1.978046 1.917751 -0.058366
+			-2.045260 1.850576 0.012474
+			-1.978046 1.917751 -0.058366
+			-0.725423 0.664381 -0.058366
+			-0.725423 0.664381 -0.058366
+			-0.792637 0.597207 0.012474
+			-2.045260 1.850576 0.012474
+			-2.045261 1.850577 0.189125
+			-2.045260 1.850576 0.012474
+			-0.792637 0.597207 0.012474
+			-0.792637 0.597207 0.012474
+			-0.792637 0.597207 0.189125
+			-2.045261 1.850577 0.189125
+			-1.910832 1.984925 0.012474
+			-1.910832 1.984925 0.189125
+			-0.658208 0.731555 0.189125
+			-0.658208 0.731555 0.189125
+			-0.658208 0.731556 0.012474
+			-1.910832 1.984925 0.012474
+			-2.661251 -0.096521 -0.092433
+			-2.661251 -0.096521 0.092433
+			-0.889246 -0.096521 0.092433
+			-0.889246 -0.096521 0.092433
+			-0.889246 -0.096521 -0.092433
+			-2.661251 -0.096521 -0.092433
+			-0.889247 0.096521 -0.092433
+			-0.889247 0.096521 0.092433
+			-2.661252 0.096521 0.092433
+			-2.661252 0.096521 0.092433
+			-2.661251 0.096521 -0.092433
+			-0.889247 0.096521 -0.092433
+			-0.889246 -0.096521 -0.092433
+			-0.889247 0.000000 -0.166385
+			-2.661251 0.000000 -0.166385
+			-2.661251 0.000000 -0.166385
+			-2.661251 -0.096521 -0.092433
+			-0.889246 -0.096521 -0.092433
+			-0.889247 0.000000 -0.166385
+			-0.889247 0.096521 -0.092433
+			-2.661251 0.096521 -0.092433
+			-2.661251 0.096521 -0.092433
+			-2.661251 0.000000 -0.166385
+			-0.889247 0.000000 -0.166385
+			-0.889247 0.096521 0.092433
+			-0.889246 0.000000 0.166385
+			-2.661251 -0.000000 0.166385
+			-2.661251 -0.000000 0.166385
+			-2.661252 0.096521 0.092433
+			-0.889247 0.096521 0.092433
+			-0.889246 0.000000 0.166385
+			-0.889246 -0.096521 0.092433
+			-2.661251 -0.096521 0.092433
+			-2.661251 -0.096521 0.092433
+			-2.661251 -0.000000 0.166385
+			-0.889246 0.000000 0.166385
+			-0.889246 -0.096521 0.092433
+			-0.889246 0.000000 0.166385
+			-0.889247 0.000000 -0.166385
+			-0.889247 0.000000 -0.166385
+			-0.889246 -0.096521 -0.092433
+			-0.889246 -0.096521 0.092433
+			-0.889246 0.000000 0.166385
+			-0.889247 0.096521 0.092433
+			-0.889247 0.096521 -0.092433
+			-0.889247 0.096521 -0.092433
+			-0.889247 0.000000 -0.166385
+			-0.889246 0.000000 0.166385
+			-2.661251 -0.000000 0.166385
+			-2.661251 -0.096521 0.092433
+			-2.468668 -0.075718 0.072510
+			-2.468668 -0.075718 0.072510
+			-2.468669 -0.000001 0.130524
+			-2.661251 -0.000000 0.166385
+			-2.661252 0.096521 0.092433
+			-2.661251 -0.000000 0.166385
+			-2.468669 -0.000001 0.130524
+			-2.468669 -0.000001 0.130524
+			-2.468669 0.075716 0.072510
+			-2.661252 0.096521 0.092433
+			-2.661251 -0.096521 -0.092433
+			-2.661251 0.000000 -0.166385
+			-2.468669 -0.000001 -0.130523
+			-2.468669 -0.000001 -0.130523
+			-2.468669 -0.075718 -0.072510
+			-2.661251 -0.096521 -0.092433
+			-2.661251 0.000000 -0.166385
+			-2.661251 0.096521 -0.092433
+			-2.468669 0.075716 -0.072510
+			-2.468669 0.075716 -0.072510
+			-2.468669 -0.000001 -0.130523
+			-2.661251 0.000000 -0.166385
+			-2.661251 0.096521 -0.092433
+			-2.661252 0.096521 0.092433
+			-2.468669 0.075716 0.072510
+			-2.468669 0.075716 0.072510
+			-2.468669 0.075716 -0.072510
+			-2.661251 0.096521 -0.092433
+			-2.661251 -0.096521 0.092433
+			-2.661251 -0.096521 -0.092433
+			-2.468669 -0.075718 -0.072510
+			-2.468669 -0.075718 -0.072510
+			-2.468668 -0.075718 0.072510
+			-2.661251 -0.096521 0.092433
+			-2.468668 -0.075718 0.072510
+			-2.468669 -0.075718 -0.072510
+			-2.931935 -0.075719 -0.244728
+			-2.931935 -0.075719 -0.244728
+			-3.005335 -0.075719 -0.119654
+			-2.468668 -0.075718 0.072510
+			-2.468669 0.075716 -0.072510
+			-2.468669 0.075716 0.072510
+			-3.005335 0.075715 -0.119655
+			-3.005335 0.075715 -0.119655
+			-2.931935 0.075715 -0.244728
+			-2.468669 0.075716 -0.072510
+			-2.468669 -0.000001 -0.130523
+			-2.468669 0.075716 -0.072510
+			-2.931935 0.075715 -0.244728
+			-2.931935 0.075715 -0.244728
+			-2.902573 -0.000002 -0.294762
+			-2.468669 -0.000001 -0.130523
+			-2.468669 -0.075718 -0.072510
+			-2.468669 -0.000001 -0.130523
+			-2.902573 -0.000002 -0.294762
+			-2.902573 -0.000002 -0.294762
+			-2.931935 -0.075719 -0.244728
+			-2.468669 -0.075718 -0.072510
+			-2.468669 0.075716 0.072510
+			-2.468669 -0.000001 0.130524
+			-3.034698 -0.000002 -0.069621
+			-3.034698 -0.000002 -0.069621
+			-3.005335 0.075715 -0.119655
+			-2.468669 0.075716 0.072510
+			-2.468669 -0.000001 0.130524
+			-2.468668 -0.075718 0.072510
+			-3.005335 -0.075719 -0.119654
+			-3.005335 -0.075719 -0.119654
+			-3.034698 -0.000002 -0.069621
+			-2.468669 -0.000001 0.130524
+			-3.034698 -0.000002 -0.069621
+			-3.005335 -0.075719 -0.119654
+			-3.080221 -0.061452 -0.179443
+			-3.080221 -0.061452 -0.179443
+			-3.104051 -0.000002 -0.138837
+			-3.034698 -0.000002 -0.069621
+			-3.005335 0.075715 -0.119655
+			-3.034698 -0.000002 -0.069621
+			-3.104051 -0.000002 -0.138837
+			-3.104051 -0.000002 -0.138837
+			-3.080222 0.061448 -0.179443
+			-3.005335 0.075715 -0.119655
+			-2.931935 -0.075719 -0.244728
+			-2.902573 -0.000002 -0.294762
+			-2.996823 -0.000002 -0.321556
+			-2.996823 -0.000002 -0.321556
+			-3.020652 -0.061452 -0.280950
+			-2.931935 -0.075719 -0.244728
+			-2.902573 -0.000002 -0.294762
+			-2.931935 0.075715 -0.244728
+			-3.020652 0.061448 -0.280950
+			-3.020652 0.061448 -0.280950
+			-2.996823 -0.000002 -0.321556
+			-2.902573 -0.000002 -0.294762
+			-2.931935 0.075715 -0.244728
+			-3.005335 0.075715 -0.119655
+			-3.080222 0.061448 -0.179443
+			-3.080222 0.061448 -0.179443
+			-3.020652 0.061448 -0.280950
+			-2.931935 0.075715 -0.244728
+			-3.005335 -0.075719 -0.119654
+			-2.931935 -0.075719 -0.244728
+			-3.020652 -0.061452 -0.280950
+			-3.020652 -0.061452 -0.280950
+			-3.080221 -0.061452 -0.179443
+			-3.005335 -0.075719 -0.119654
+			-3.080221 -0.061452 -0.179443
+			-3.020652 -0.061452 -0.280950
+			-2.910616 -0.061452 -0.216376
+			-2.910616 -0.061452 -0.216376
+			-2.970185 -0.061452 -0.114869
+			-3.080221 -0.061452 -0.179443
+			-3.020652 0.061448 -0.280950
+			-3.080222 0.061448 -0.179443
+			-2.970186 0.061448 -0.114869
+			-2.970186 0.061448 -0.114869
+			-2.910616 0.061448 -0.216376
+			-3.020652 0.061448 -0.280950
+			-2.996823 -0.000002 -0.321556
+			-3.020652 0.061448 -0.280950
+			-2.910616 0.061448 -0.216376
+			-2.910616 0.061448 -0.216376
+			-2.886787 -0.000002 -0.256982
+			-2.996823 -0.000002 -0.321556
+			-3.020652 -0.061452 -0.280950
+			-2.996823 -0.000002 -0.321556
+			-2.886787 -0.000002 -0.256982
+			-2.886787 -0.000002 -0.256982
+			-2.910616 -0.061452 -0.216376
+			-3.020652 -0.061452 -0.280950
+			-3.080222 0.061448 -0.179443
+			-3.104051 -0.000002 -0.138837
+			-2.994015 -0.000002 -0.074263
+			-2.994015 -0.000002 -0.074263
+			-2.970186 0.061448 -0.114869
+			-3.080222 0.061448 -0.179443
+			-3.104051 -0.000002 -0.138837
+			-3.080221 -0.061452 -0.179443
+			-2.970185 -0.061452 -0.114869
+			-2.970185 -0.061452 -0.114869
+			-2.994015 -0.000002 -0.074263
+			-3.104051 -0.000002 -0.138837
+			-2.994015 -0.000002 -0.074263
+			-2.970185 -0.061452 -0.114869
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-2.994015 -0.000002 -0.074263
+			-2.970186 0.061448 -0.114869
+			-2.994015 -0.000002 -0.074263
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-2.970186 0.061448 -0.114869
+			-2.910616 -0.061452 -0.216376
+			-2.886787 -0.000002 -0.256982
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-2.910616 -0.061452 -0.216376
+			-2.886787 -0.000002 -0.256982
+			-2.910616 0.061448 -0.216376
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-2.886787 -0.000002 -0.256982
+			-2.910616 0.061448 -0.216376
+			-2.970186 0.061448 -0.114869
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-2.910616 0.061448 -0.216376
+			-2.970185 -0.061452 -0.114869
+			-2.910616 -0.061452 -0.216376
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-2.970185 -0.061452 -0.114869
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			-3.322137 -0.000003 -0.389644
+			1.907917 -2.019015 -0.088326
+			1.907917 -2.019015 0.088326
+			0.655294 -0.765646 0.088326
+			0.655294 -0.765646 0.088326
+			0.655294 -0.765646 -0.088326
+			1.907917 -2.019015 -0.088326
+			2.042346 -1.884667 0.088326
+			2.042346 -1.884667 -0.088326
+			0.789723 -0.631297 -0.088326
+			0.789723 -0.631297 -0.088326
+			0.789723 -0.631297 0.088326
+			2.042346 -1.884667 0.088326
+			2.042346 -1.884667 -0.088326
+			1.975132 -1.951841 -0.159166
+			0.722508 -0.698472 -0.159166
+			0.722508 -0.698472 -0.159166
+			0.789723 -0.631297 -0.088326
+			2.042346 -1.884667 -0.088326
+			1.975132 -1.951841 -0.159166
+			1.907917 -2.019015 -0.088326
+			0.655294 -0.765646 -0.088326
+			0.655294 -0.765646 -0.088326
+			0.722508 -0.698472 -0.159166
+			1.975132 -1.951841 -0.159166
+			0.789723 -0.631297 0.088326
+			0.722508 -0.698471 0.159166
+			1.975132 -1.951841 0.159166
+			1.975132 -1.951841 0.159166
+			2.042346 -1.884667 0.088326
+			0.789723 -0.631297 0.088326
+			0.722508 -0.698471 0.159166
+			0.655294 -0.765646 0.088326
+			1.907917 -2.019015 0.088326
+			1.907917 -2.019015 0.088326
+			1.975132 -1.951841 0.159166
+			0.722508 -0.698471 0.159166
+			0.655294 -0.765646 0.088326
+			0.722508 -0.698471 0.159166
+			0.722508 -0.698472 -0.159166
+			0.722508 -0.698472 -0.159166
+			0.655294 -0.765646 -0.088326
+			0.655294 -0.765646 0.088326
+			0.722508 -0.698471 0.159166
+			0.789723 -0.631297 0.088326
+			0.789723 -0.631297 -0.088326
+			0.789723 -0.631297 -0.088326
+			0.722508 -0.698472 -0.159166
+			0.722508 -0.698471 0.159166
+			1.975132 -1.951841 0.159166
+			1.907917 -2.019015 0.088326
+			1.831824 -1.922020 0.070661
+			1.831824 -1.922020 0.070661
+			1.885595 -1.868281 0.127333
+			1.975132 -1.951841 0.159166
+			2.042346 -1.884667 0.088326
+			1.975132 -1.951841 0.159166
+			1.885595 -1.868281 0.127333
+			1.885595 -1.868281 0.127333
+			1.939367 -1.814542 0.070661
+			2.042346 -1.884667 0.088326
+			1.907917 -2.019015 -0.088326
+			1.975132 -1.951841 -0.159166
+			1.885595 -1.868281 -0.127333
+			1.885595 -1.868281 -0.127333
+			1.831824 -1.922021 -0.070661
+			1.907917 -2.019015 -0.088326
+			1.975132 -1.951841 -0.159166
+			2.042346 -1.884667 -0.088326
+			1.939367 -1.814542 -0.070661
+			1.939367 -1.814542 -0.070661
+			1.885595 -1.868281 -0.127333
+			1.975132 -1.951841 -0.159166
+			2.042346 -1.884667 -0.088326
+			2.042346 -1.884667 0.088326
+			1.939367 -1.814542 0.070661
+			1.939367 -1.814542 0.070661
+			1.939367 -1.814542 -0.070661
+			2.042346 -1.884667 -0.088326
+			1.907917 -2.019015 0.088326
+			1.907917 -2.019015 -0.088326
+			1.831824 -1.922021 -0.070661
+			1.831824 -1.922021 -0.070661
+			1.831824 -1.922020 0.070661
+			1.907917 -2.019015 0.088326
+			1.831824 -1.922020 0.070661
+			1.831824 -1.922021 -0.070661
+			2.126212 -2.245733 -0.215982
+			2.126212 -2.245733 -0.215982
+			2.200553 -2.245733 -0.095795
+			1.831824 -1.922020 0.070661
+			1.939367 -1.814542 -0.070661
+			1.939367 -1.814542 0.070661
+			2.292014 -2.138255 -0.152367
+			2.292014 -2.138255 -0.152367
+			2.217673 -2.138254 -0.272555
+			1.939367 -1.814542 -0.070661
+			1.885595 -1.868281 -0.127333
+			1.939367 -1.814542 -0.070661
+			2.217673 -2.138254 -0.272555
+			2.217673 -2.138254 -0.272555
+			2.142130 -2.191993 -0.292466
+			1.885595 -1.868281 -0.127333
+			1.831824 -1.922021 -0.070661
+			1.885595 -1.868281 -0.127333
+			2.142130 -2.191993 -0.292466
+			2.142130 -2.191993 -0.292466
+			2.126212 -2.245733 -0.215982
+			1.831824 -1.922021 -0.070661
+			1.939367 -1.814542 0.070661
+			1.885595 -1.868281 0.127333
+			2.276095 -2.191993 -0.075883
+			2.276095 -2.191993 -0.075883
+			2.292014 -2.138255 -0.152367
+			1.939367 -1.814542 0.070661
+			1.885595 -1.868281 0.127333
+			1.831824 -1.922020 0.070661
+			2.200553 -2.245733 -0.095795
+			2.200553 -2.245733 -0.095795
+			2.276095 -2.191993 -0.075883
+			1.885595 -1.868281 0.127333
+			2.276095 -2.191993 -0.075883
+			2.200553 -2.245733 -0.095795
+			2.136759 -2.179201 -0.068994
+			2.136759 -2.179201 -0.068994
+			2.199358 -2.134668 -0.052494
+			2.276095 -2.191993 -0.075883
+			2.292014 -2.138255 -0.152367
+			2.276095 -2.191993 -0.075883
+			2.199358 -2.134668 -0.052494
+			2.199358 -2.134668 -0.052494
+			2.212550 -2.090137 -0.115874
+			2.292014 -2.138255 -0.152367
+			2.126212 -2.245733 -0.215982
+			2.142130 -2.191993 -0.292466
+			2.088346 -2.134668 -0.231970
+			2.088346 -2.134668 -0.231970
+			2.075155 -2.179201 -0.168590
+			2.126212 -2.245733 -0.215982
+			2.142130 -2.191993 -0.292466
+			2.217673 -2.138254 -0.272555
+			2.150945 -2.090137 -0.215470
+			2.150945 -2.090137 -0.215470
+			2.088346 -2.134668 -0.231970
+			2.142130 -2.191993 -0.292466
+			2.217673 -2.138254 -0.272555
+			2.292014 -2.138255 -0.152367
+			2.212550 -2.090137 -0.115874
+			2.212550 -2.090137 -0.115874
+			2.150945 -2.090137 -0.215470
+			2.217673 -2.138254 -0.272555
+			2.200553 -2.245733 -0.095795
+			2.126212 -2.245733 -0.215982
+			2.075155 -2.179201 -0.168590
+			2.075155 -2.179201 -0.168590
+			2.136759 -2.179201 -0.068994
+			2.200553 -2.245733 -0.095795
+			2.136759 -2.179201 -0.068994
+			2.075155 -2.179201 -0.168590
+			2.413568 -2.452001 -0.523355
+			2.150945 -2.090137 -0.215470
+			2.212550 -2.090137 -0.115874
+			2.413568 -2.452001 -0.523355
+			2.088346 -2.134668 -0.231970
+			2.150945 -2.090137 -0.215470
+			2.413568 -2.452001 -0.523355
+			2.075155 -2.179201 -0.168590
+			2.088346 -2.134668 -0.231970
+			2.413568 -2.452001 -0.523355
+			2.212550 -2.090137 -0.115874
+			2.199358 -2.134668 -0.052494
+			2.413568 -2.452001 -0.523355
+			2.199358 -2.134668 -0.052494
+			2.136759 -2.179201 -0.068994
+			2.413568 -2.452001 -0.523355
+			2.202273 2.100578 0.048305
+			2.139673 2.145110 0.031805
+			2.416482 2.417911 -0.422555
+			2.215464 2.056046 -0.015074
+			2.202273 2.100578 0.048305
+			2.416482 2.417911 -0.422555
+			2.078069 2.145111 -0.067791
+			2.091260 2.100578 -0.131170
+			2.416482 2.417911 -0.422555
+			2.091260 2.100578 -0.131170
+			2.153860 2.056046 -0.114670
+			2.416482 2.417911 -0.422555
+			2.153860 2.056046 -0.114670
+			2.215464 2.056046 -0.015074
+			2.416482 2.417911 -0.422555
+			2.139673 2.145110 0.031805
+			2.078069 2.145111 -0.067791
+			2.416482 2.417911 -0.422555
+			2.203467 2.211643 0.005005
+			2.129126 2.211643 -0.115183
+			2.078069 2.145111 -0.067791
+			2.078069 2.145111 -0.067791
+			2.139673 2.145110 0.031805
+			2.203467 2.211643 0.005005
+			2.220587 2.104164 -0.171755
+			2.294928 2.104164 -0.051567
+			2.215464 2.056046 -0.015074
+			2.215464 2.056046 -0.015074
+			2.153860 2.056046 -0.114670
+			2.220587 2.104164 -0.171755
+			2.145045 2.157903 -0.191666
+			2.220587 2.104164 -0.171755
+			2.153860 2.056046 -0.114670
+			2.153860 2.056046 -0.114670
+			2.091260 2.100578 -0.131170
+			2.145045 2.157903 -0.191666
+			2.129126 2.211643 -0.115183
+			2.145045 2.157903 -0.191666
+			2.091260 2.100578 -0.131170
+			2.091260 2.100578 -0.131170
+			2.078069 2.145111 -0.067791
+			2.129126 2.211643 -0.115183
+			2.294928 2.104164 -0.051567
+			2.279010 2.157903 0.024916
+			2.202273 2.100578 0.048305
+			2.202273 2.100578 0.048305
+			2.215464 2.056046 -0.015074
+			2.294928 2.104164 -0.051567
+			2.279010 2.157903 0.024916
+			2.203467 2.211643 0.005005
+			2.139673 2.145110 0.031805
+			2.139673 2.145110 0.031805
+			2.202273 2.100578 0.048305
+			2.279010 2.157903 0.024916
+			1.888510 1.834191 0.228132
+			1.834738 1.887930 0.171460
+			2.203467 2.211643 0.005005
+			2.203467 2.211643 0.005005
+			2.279010 2.157903 0.024916
+			1.888510 1.834191 0.228132
+			1.942281 1.780452 0.171460
+			1.888510 1.834191 0.228132
+			2.279010 2.157903 0.024916
+			2.279010 2.157903 0.024916
+			2.294928 2.104164 -0.051567
+			1.942281 1.780452 0.171460
+			1.834738 1.887931 0.030139
+			1.888510 1.834191 -0.026533
+			2.145045 2.157903 -0.191666
+			2.145045 2.157903 -0.191666
+			2.129126 2.211643 -0.115183
+			1.834738 1.887931 0.030139
+			1.888510 1.834191 -0.026533
+			1.942281 1.780452 0.030139
+			2.220587 2.104164 -0.171755
+			2.220587 2.104164 -0.171755
+			2.145045 2.157903 -0.191666
+			1.888510 1.834191 -0.026533
+			1.942281 1.780452 0.030139
+			1.942281 1.780452 0.171460
+			2.294928 2.104164 -0.051567
+			2.294928 2.104164 -0.051567
+			2.220587 2.104164 -0.171755
+			1.942281 1.780452 0.030139
+			1.834738 1.887930 0.171460
+			1.834738 1.887931 0.030139
+			2.129126 2.211643 -0.115183
+			2.129126 2.211643 -0.115183
+			2.203467 2.211643 0.005005
+			1.834738 1.887930 0.171460
+			1.910832 1.984925 0.189125
+			1.910832 1.984925 0.012474
+			1.834738 1.887931 0.030139
+			1.834738 1.887931 0.030139
+			1.834738 1.887930 0.171460
+			1.910832 1.984925 0.189125
+			2.045260 1.850576 0.012474
+			2.045261 1.850577 0.189125
+			1.942281 1.780452 0.171460
+			1.942281 1.780452 0.171460
+			1.942281 1.780452 0.030139
+			2.045260 1.850576 0.012474
+			1.978046 1.917751 -0.058366
+			2.045260 1.850576 0.012474
+			1.942281 1.780452 0.030139
+			1.942281 1.780452 0.030139
+			1.888510 1.834191 -0.026533
+			1.978046 1.917751 -0.058366
+			1.910832 1.984925 0.012474
+			1.978046 1.917751 -0.058366
+			1.888510 1.834191 -0.026533
+			1.888510 1.834191 -0.026533
+			1.834738 1.887931 0.030139
+			1.910832 1.984925 0.012474
+			2.045261 1.850577 0.189125
+			1.978046 1.917751 0.259966
+			1.888510 1.834191 0.228132
+			1.888510 1.834191 0.228132
+			1.942281 1.780452 0.171460
+			2.045261 1.850577 0.189125
+			1.978046 1.917751 0.259966
+			1.910832 1.984925 0.189125
+			1.834738 1.887930 0.171460
+			1.834738 1.887930 0.171460
+			1.888510 1.834191 0.228132
+			1.978046 1.917751 0.259966
+			0.725423 0.664381 0.259966
+			0.792637 0.597207 0.189125
+			0.792637 0.597207 0.012474
+			0.792637 0.597207 0.012474
+			0.725423 0.664381 -0.058366
+			0.725423 0.664381 0.259966
+			0.658208 0.731555 0.189125
+			0.725423 0.664381 0.259966
+			0.725423 0.664381 -0.058366
+			0.725423 0.664381 -0.058366
+			0.658208 0.731556 0.012474
+			0.658208 0.731555 0.189125
+			0.725423 0.664381 0.259966
+			0.658208 0.731555 0.189125
+			1.910832 1.984925 0.189125
+			1.910832 1.984925 0.189125
+			1.978046 1.917751 0.259966
+			0.725423 0.664381 0.259966
+			0.792637 0.597207 0.189125
+			0.725423 0.664381 0.259966
+			1.978046 1.917751 0.259966
+			1.978046 1.917751 0.259966
+			2.045261 1.850577 0.189125
+			0.792637 0.597207 0.189125
+			1.978046 1.917751 -0.058366
+			1.910832 1.984925 0.012474
+			0.658208 0.731556 0.012474
+			0.658208 0.731556 0.012474
+			0.725423 0.664381 -0.058366
+			1.978046 1.917751 -0.058366
+			2.045260 1.850576 0.012474
+			1.978046 1.917751 -0.058366
+			0.725423 0.664381 -0.058366
+			0.725423 0.664381 -0.058366
+			0.792637 0.597207 0.012474
+			2.045260 1.850576 0.012474
+			2.045261 1.850577 0.189125
+			2.045260 1.850576 0.012474
+			0.792637 0.597207 0.012474
+			0.792637 0.597207 0.012474
+			0.792637 0.597207 0.189125
+			2.045261 1.850577 0.189125
+			1.910832 1.984925 0.012474
+			1.910832 1.984925 0.189125
+			0.658208 0.731555 0.189125
+			0.658208 0.731555 0.189125
+			0.658208 0.731556 0.012474
+			1.910832 1.984925 0.012474
+			2.661251 -0.096521 -0.092433
+			2.661251 -0.096521 0.092433
+			0.889246 -0.096521 0.092433
+			0.889246 -0.096521 0.092433
+			0.889246 -0.096521 -0.092433
+			2.661251 -0.096521 -0.092433
+			0.889247 0.096521 -0.092433
+			0.889247 0.096521 0.092433
+			2.661252 0.096521 0.092433
+			2.661252 0.096521 0.092433
+			2.661251 0.096521 -0.092433
+			0.889247 0.096521 -0.092433
+			0.889246 -0.096521 -0.092433
+			0.889247 0.000000 -0.166385
+			2.661251 0.000000 -0.166385
+			2.661251 0.000000 -0.166385
+			2.661251 -0.096521 -0.092433
+			0.889246 -0.096521 -0.092433
+			0.889247 0.000000 -0.166385
+			0.889247 0.096521 -0.092433
+			2.661251 0.096521 -0.092433
+			2.661251 0.096521 -0.092433
+			2.661251 0.000000 -0.166385
+			0.889247 0.000000 -0.166385
+			0.889247 0.096521 0.092433
+			0.889246 0.000000 0.166385
+			2.661251 -0.000000 0.166385
+			2.661251 -0.000000 0.166385
+			2.661252 0.096521 0.092433
+			0.889247 0.096521 0.092433
+			0.889246 0.000000 0.166385
+			0.889246 -0.096521 0.092433
+			2.661251 -0.096521 0.092433
+			2.661251 -0.096521 0.092433
+			2.661251 -0.000000 0.166385
+			0.889246 0.000000 0.166385
+			0.889246 -0.096521 0.092433
+			0.889246 0.000000 0.166385
+			0.889247 0.000000 -0.166385
+			0.889247 0.000000 -0.166385
+			0.889246 -0.096521 -0.092433
+			0.889246 -0.096521 0.092433
+			0.889246 0.000000 0.166385
+			0.889247 0.096521 0.092433
+			0.889247 0.096521 -0.092433
+			0.889247 0.096521 -0.092433
+			0.889247 0.000000 -0.166385
+			0.889246 0.000000 0.166385
+			2.661251 -0.000000 0.166385
+			2.661251 -0.096521 0.092433
+			2.468668 -0.075718 0.072510
+			2.468668 -0.075718 0.072510
+			2.468669 -0.000001 0.130524
+			2.661251 -0.000000 0.166385
+			2.661252 0.096521 0.092433
+			2.661251 -0.000000 0.166385
+			2.468669 -0.000001 0.130524
+			2.468669 -0.000001 0.130524
+			2.468669 0.075716 0.072510
+			2.661252 0.096521 0.092433
+			2.661251 -0.096521 -0.092433
+			2.661251 0.000000 -0.166385
+			2.468669 -0.000001 -0.130523
+			2.468669 -0.000001 -0.130523
+			2.468669 -0.075718 -0.072510
+			2.661251 -0.096521 -0.092433
+			2.661251 0.000000 -0.166385
+			2.661251 0.096521 -0.092433
+			2.468669 0.075716 -0.072510
+			2.468669 0.075716 -0.072510
+			2.468669 -0.000001 -0.130523
+			2.661251 0.000000 -0.166385
+			2.661251 0.096521 -0.092433
+			2.661252 0.096521 0.092433
+			2.468669 0.075716 0.072510
+			2.468669 0.075716 0.072510
+			2.468669 0.075716 -0.072510
+			2.661251 0.096521 -0.092433
+			2.661251 -0.096521 0.092433
+			2.661251 -0.096521 -0.092433
+			2.468669 -0.075718 -0.072510
+			2.468669 -0.075718 -0.072510
+			2.468668 -0.075718 0.072510
+			2.661251 -0.096521 0.092433
+			2.468668 -0.075718 0.072510
+			2.468669 -0.075718 -0.072510
+			2.931935 -0.075719 -0.244728
+			2.931935 -0.075719 -0.244728
+			3.005335 -0.075719 -0.119654
+			2.468668 -0.075718 0.072510
+			2.468669 0.075716 -0.072510
+			2.468669 0.075716 0.072510
+			3.005335 0.075715 -0.119655
+			3.005335 0.075715 -0.119655
+			2.931935 0.075715 -0.244728
+			2.468669 0.075716 -0.072510
+			2.468669 -0.000001 -0.130523
+			2.468669 0.075716 -0.072510
+			2.931935 0.075715 -0.244728
+			2.931935 0.075715 -0.244728
+			2.902573 -0.000002 -0.294762
+			2.468669 -0.000001 -0.130523
+			2.468669 -0.075718 -0.072510
+			2.468669 -0.000001 -0.130523
+			2.902573 -0.000002 -0.294762
+			2.902573 -0.000002 -0.294762
+			2.931935 -0.075719 -0.244728
+			2.468669 -0.075718 -0.072510
+			2.468669 0.075716 0.072510
+			2.468669 -0.000001 0.130524
+			3.034698 -0.000002 -0.069621
+			3.034698 -0.000002 -0.069621
+			3.005335 0.075715 -0.119655
+			2.468669 0.075716 0.072510
+			2.468669 -0.000001 0.130524
+			2.468668 -0.075718 0.072510
+			3.005335 -0.075719 -0.119654
+			3.005335 -0.075719 -0.119654
+			3.034698 -0.000002 -0.069621
+			2.468669 -0.000001 0.130524
+			3.034698 -0.000002 -0.069621
+			3.005335 -0.075719 -0.119654
+			3.080221 -0.061452 -0.179443
+			3.080221 -0.061452 -0.179443
+			3.104051 -0.000002 -0.138837
+			3.034698 -0.000002 -0.069621
+			3.005335 0.075715 -0.119655
+			3.034698 -0.000002 -0.069621
+			3.104051 -0.000002 -0.138837
+			3.104051 -0.000002 -0.138837
+			3.080222 0.061448 -0.179443
+			3.005335 0.075715 -0.119655
+			2.931935 -0.075719 -0.244728
+			2.902573 -0.000002 -0.294762
+			2.996823 -0.000002 -0.321556
+			2.996823 -0.000002 -0.321556
+			3.020652 -0.061452 -0.280950
+			2.931935 -0.075719 -0.244728
+			2.902573 -0.000002 -0.294762
+			2.931935 0.075715 -0.244728
+			3.020652 0.061448 -0.280950
+			3.020652 0.061448 -0.280950
+			2.996823 -0.000002 -0.321556
+			2.902573 -0.000002 -0.294762
+			2.931935 0.075715 -0.244728
+			3.005335 0.075715 -0.119655
+			3.080222 0.061448 -0.179443
+			3.080222 0.061448 -0.179443
+			3.020652 0.061448 -0.280950
+			2.931935 0.075715 -0.244728
+			3.005335 -0.075719 -0.119654
+			2.931935 -0.075719 -0.244728
+			3.020652 -0.061452 -0.280950
+			3.020652 -0.061452 -0.280950
+			3.080221 -0.061452 -0.179443
+			3.005335 -0.075719 -0.119654
+			3.080221 -0.061452 -0.179443
+			3.020652 -0.061452 -0.280950
+			2.910616 -0.061452 -0.216376
+			2.910616 -0.061452 -0.216376
+			2.970185 -0.061452 -0.114869
+			3.080221 -0.061452 -0.179443
+			3.020652 0.061448 -0.280950
+			3.080222 0.061448 -0.179443
+			2.970186 0.061448 -0.114869
+			2.970186 0.061448 -0.114869
+			2.910616 0.061448 -0.216376
+			3.020652 0.061448 -0.280950
+			2.996823 -0.000002 -0.321556
+			3.020652 0.061448 -0.280950
+			2.910616 0.061448 -0.216376
+			2.910616 0.061448 -0.216376
+			2.886787 -0.000002 -0.256982
+			2.996823 -0.000002 -0.321556
+			3.020652 -0.061452 -0.280950
+			2.996823 -0.000002 -0.321556
+			2.886787 -0.000002 -0.256982
+			2.886787 -0.000002 -0.256982
+			2.910616 -0.061452 -0.216376
+			3.020652 -0.061452 -0.280950
+			3.080222 0.061448 -0.179443
+			3.104051 -0.000002 -0.138837
+			2.994015 -0.000002 -0.074263
+			2.994015 -0.000002 -0.074263
+			2.970186 0.061448 -0.114869
+			3.080222 0.061448 -0.179443
+			3.104051 -0.000002 -0.138837
+			3.080221 -0.061452 -0.179443
+			2.970185 -0.061452 -0.114869
+			2.970185 -0.061452 -0.114869
+			2.994015 -0.000002 -0.074263
+			3.104051 -0.000002 -0.138837
+			2.994015 -0.000002 -0.074263
+			2.970185 -0.061452 -0.114869
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			2.994015 -0.000002 -0.074263
+			2.970186 0.061448 -0.114869
+			2.994015 -0.000002 -0.074263
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			2.970186 0.061448 -0.114869
+			2.910616 -0.061452 -0.216376
+			2.886787 -0.000002 -0.256982
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			2.910616 -0.061452 -0.216376
+			2.886787 -0.000002 -0.256982
+			2.910616 0.061448 -0.216376
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			2.886787 -0.000002 -0.256982
+			2.910616 0.061448 -0.216376
+			2.970186 0.061448 -0.114869
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			2.910616 0.061448 -0.216376
+			2.970185 -0.061452 -0.114869
+			2.910616 -0.061452 -0.216376
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			2.970185 -0.061452 -0.114869
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+			3.322137 -0.000003 -0.389644
+		</coordinate>
+		<normal>
+			-0.707317 0.706896 -0.000001
+			-0.707317 0.706896 -0.000001
+			-0.707317 0.706896 -0.000001
+			-0.707317 0.706896 -0.000001
+			-0.707317 0.706896 -0.000001
+			-0.707317 0.706896 -0.000001
+			0.707317 -0.706896 -0.000000
+			0.707317 -0.706896 -0.000000
+			0.707317 -0.706896 -0.000000
+			0.707317 -0.706896 -0.000000
+			0.707317 -0.706896 -0.000000
+			0.707317 -0.706896 -0.000000
+			0.422746 -0.422494 0.801738
+			0.422746 -0.422494 0.801738
+			0.422746 -0.422494 0.801738
+			0.422746 -0.422494 0.801738
+			0.422746 -0.422494 0.801738
+			0.422746 -0.422494 0.801738
+			-0.422746 0.422494 0.801738
+			-0.422746 0.422494 0.801738
+			-0.422746 0.422494 0.801738
+			-0.422746 0.422494 0.801738
+			-0.422746 0.422494 0.801738
+			-0.422746 0.422494 0.801738
+			0.422747 -0.422495 -0.801738
+			0.422747 -0.422495 -0.801738
+			0.422747 -0.422495 -0.801738
+			0.422747 -0.422495 -0.801738
+			0.422747 -0.422495 -0.801738
+			0.422747 -0.422495 -0.801738
+			-0.422747 0.422495 -0.801738
+			-0.422747 0.422495 -0.801738
+			-0.422747 0.422495 -0.801738
+			-0.422747 0.422495 -0.801738
+			-0.422747 0.422495 -0.801738
+			-0.422747 0.422495 -0.801738
+			-0.706895 -0.707318 0.000001
+			-0.706895 -0.707318 0.000001
+			-0.706895 -0.707318 0.000001
+			-0.706895 -0.707318 0.000001
+			-0.706895 -0.707318 0.000001
+			-0.706895 -0.707318 0.000001
+			-0.706895 -0.707319 0.000001
+			-0.706895 -0.707319 0.000001
+			-0.706895 -0.707319 0.000001
+			-0.706895 -0.707319 0.000001
+			-0.706895 -0.707319 0.000001
+			-0.706895 -0.707319 0.000001
+			0.545900 -0.284756 0.787977
+			0.545900 -0.284756 0.787977
+			0.545900 -0.284756 0.787977
+			0.545900 -0.284756 0.787977
+			0.545900 -0.284756 0.787977
+			0.545900 -0.284756 0.787977
+			-0.254038 0.569912 0.781451
+			-0.254038 0.569912 0.781451
+			-0.254038 0.569912 0.781451
+			-0.254038 0.569912 0.781451
+			-0.254038 0.569912 0.781451
+			-0.254038 0.569912 0.781451
+			0.545899 -0.284756 -0.787977
+			0.545899 -0.284756 -0.787977
+			0.545899 -0.284756 -0.787977
+			0.545899 -0.284756 -0.787977
+			0.545899 -0.284756 -0.787977
+			0.545899 -0.284756 -0.787977
+			-0.254036 0.569911 -0.781452
+			-0.254036 0.569911 -0.781452
+			-0.254036 0.569911 -0.781452
+			-0.254036 0.569911 -0.781452
+			-0.254036 0.569911 -0.781452
+			-0.254036 0.569911 -0.781452
+			-0.562853 0.826557 0.000001
+			-0.562853 0.826557 0.000001
+			-0.562853 0.826557 0.000001
+			-0.562853 0.826557 0.000001
+			-0.562853 0.826557 0.000001
+			-0.562853 0.826557 0.000001
+			0.786777 -0.617238 0.000001
+			0.786777 -0.617238 0.000001
+			0.786777 -0.617238 0.000001
+			0.786777 -0.617238 0.000001
+			0.786777 -0.617238 0.000001
+			0.786777 -0.617238 0.000001
+			-0.641625 0.745015 -0.182401
+			-0.641625 0.745015 -0.182401
+			-0.641625 0.745015 -0.182401
+			-0.641625 0.745015 -0.182401
+			-0.641625 0.745015 -0.182401
+			-0.641625 0.745015 -0.182401
+			0.641626 -0.745014 0.182398
+			0.641626 -0.745014 0.182398
+			0.641626 -0.745014 0.182398
+			0.641626 -0.745014 0.182398
+			0.641626 -0.745014 0.182398
+			0.641626 -0.745014 0.182398
+			0.060718 -0.529748 0.845979
+			0.060718 -0.529748 0.845979
+			0.060718 -0.529748 0.845979
+			0.060718 -0.529748 0.845979
+			0.060718 -0.529748 0.845979
+			0.060718 -0.529748 0.845979
+			-0.716411 0.309887 0.625081
+			-0.716411 0.309887 0.625081
+			-0.716411 0.309887 0.625081
+			-0.716411 0.309887 0.625081
+			-0.716411 0.309887 0.625081
+			-0.716411 0.309887 0.625081
+			0.678612 -0.355956 -0.642481
+			0.678612 -0.355956 -0.642481
+			0.678612 -0.355956 -0.642481
+			0.678612 -0.355956 -0.642481
+			0.678612 -0.355956 -0.642481
+			0.678612 -0.355956 -0.642481
+			-0.050103 0.538889 -0.840885
+			-0.050103 0.538889 -0.840885
+			-0.050103 0.538889 -0.840885
+			-0.050103 0.538889 -0.840885
+			-0.050103 0.538889 -0.840885
+			-0.050103 0.538889 -0.840885
+			-0.012728 -0.363091 0.931667
+			-0.012728 -0.363091 0.931667
+			-0.012728 -0.363091 0.931667
+			-0.012728 -0.363091 0.931667
+			-0.012728 -0.363091 0.931667
+			-0.012728 -0.363091 0.931667
+			-0.603418 0.587956 0.538697
+			-0.603418 0.587956 0.538697
+			-0.603418 0.587956 0.538697
+			-0.603418 0.587956 0.538697
+			-0.603418 0.587956 0.538697
+			-0.603418 0.587956 0.538697
+			0.839676 -0.346477 -0.418208
+			0.839676 -0.346477 -0.418208
+			0.839676 -0.346477 -0.418208
+			0.839676 -0.346477 -0.418208
+			0.839676 -0.346477 -0.418208
+			0.839676 -0.346477 -0.418208
+			0.224360 0.599928 -0.767951
+			0.224360 0.599928 -0.767951
+			0.224360 0.599928 -0.767951
+			0.224360 0.599928 -0.767951
+			0.224360 0.599928 -0.767951
+			0.224360 0.599928 -0.767951
+			-0.412417 0.874551 -0.255095
+			-0.412417 0.874551 -0.255095
+			-0.412417 0.874551 -0.255095
+			-0.412417 0.874551 -0.255095
+			-0.412417 0.874551 -0.255095
+			-0.412417 0.874551 -0.255095
+			0.593194 -0.716584 0.366917
+			0.593194 -0.716584 0.366917
+			0.593194 -0.716584 0.366917
+			0.593194 -0.716584 0.366917
+			0.593194 -0.716584 0.366917
+			0.593194 -0.716584 0.366917
+			-0.423931 0.866904 -0.262222
+			-0.423931 0.866904 -0.262222
+			-0.423931 0.866904 -0.262222
+			0.582209 -0.728936 0.360118
+			0.582209 -0.728936 0.360118
+			0.582209 -0.728936 0.360118
+			-0.182588 -0.556889 0.810270
+			-0.182588 -0.556889 0.810270
+			-0.182588 -0.556889 0.810270
+			-0.796777 0.403794 0.449551
+			-0.796777 0.403794 0.449551
+			-0.796777 0.403794 0.449551
+			0.935042 -0.167643 -0.312398
+			0.935042 -0.167643 -0.312398
+			0.935042 -0.167643 -0.312398
+			0.335282 0.703494 -0.626644
+			0.335282 0.703494 -0.626644
+			0.335282 0.703494 -0.626644
+			-0.335281 0.703495 0.626643
+			-0.335281 0.703495 0.626643
+			-0.335281 0.703495 0.626643
+			-0.935042 -0.167642 0.312399
+			-0.935042 -0.167642 0.312399
+			-0.935042 -0.167642 0.312399
+			0.796777 0.403795 -0.449550
+			0.796777 0.403795 -0.449550
+			0.796777 0.403795 -0.449550
+			0.182589 -0.556888 -0.810270
+			0.182589 -0.556888 -0.810270
+			0.182589 -0.556888 -0.810270
+			-0.582210 -0.728936 -0.360117
+			-0.582210 -0.728936 -0.360117
+			-0.582210 -0.728936 -0.360117
+			0.423931 0.866904 0.262223
+			0.423931 0.866904 0.262223
+			0.423931 0.866904 0.262223
+			-0.593194 -0.716584 -0.366917
+			-0.593194 -0.716584 -0.366917
+			-0.593194 -0.716584 -0.366917
+			-0.593194 -0.716584 -0.366917
+			-0.593194 -0.716584 -0.366917
+			-0.593194 -0.716584 -0.366917
+			0.412418 0.874550 0.255095
+			0.412418 0.874550 0.255095
+			0.412418 0.874550 0.255095
+			0.412418 0.874550 0.255095
+			0.412418 0.874550 0.255095
+			0.412418 0.874550 0.255095
+			-0.224361 0.599928 0.767951
+			-0.224361 0.599928 0.767951
+			-0.224361 0.599928 0.767951
+			-0.224361 0.599928 0.767951
+			-0.224361 0.599928 0.767951
+			-0.224361 0.599928 0.767951
+			-0.839676 -0.346478 0.418207
+			-0.839676 -0.346478 0.418207
+			-0.839676 -0.346478 0.418207
+			-0.839676 -0.346478 0.418207
+			-0.839676 -0.346478 0.418207
+			-0.839676 -0.346478 0.418207
+			0.603417 0.587956 -0.538698
+			0.603417 0.587956 -0.538698
+			0.603417 0.587956 -0.538698
+			0.603417 0.587956 -0.538698
+			0.603417 0.587956 -0.538698
+			0.603417 0.587956 -0.538698
+			0.012728 -0.363091 -0.931667
+			0.012728 -0.363091 -0.931667
+			0.012728 -0.363091 -0.931667
+			0.012728 -0.363091 -0.931667
+			0.012728 -0.363091 -0.931667
+			0.012728 -0.363091 -0.931667
+			0.050102 0.538889 0.840885
+			0.050102 0.538889 0.840885
+			0.050102 0.538889 0.840885
+			0.050102 0.538889 0.840885
+			0.050102 0.538889 0.840885
+			0.050102 0.538889 0.840885
+			-0.678612 -0.355956 0.642480
+			-0.678612 -0.355956 0.642480
+			-0.678612 -0.355956 0.642480
+			-0.678612 -0.355956 0.642480
+			-0.678612 -0.355956 0.642480
+			-0.678612 -0.355956 0.642480
+			0.716411 0.309886 -0.625081
+			0.716411 0.309886 -0.625081
+			0.716411 0.309886 -0.625081
+			0.716411 0.309886 -0.625081
+			0.716411 0.309886 -0.625081
+			0.716411 0.309886 -0.625081
+			-0.060718 -0.529748 -0.845979
+			-0.060718 -0.529748 -0.845979
+			-0.060718 -0.529748 -0.845979
+			-0.060718 -0.529748 -0.845979
+			-0.060718 -0.529748 -0.845979
+			-0.060718 -0.529748 -0.845979
+			-0.641627 -0.745014 -0.182398
+			-0.641627 -0.745014 -0.182398
+			-0.641627 -0.745014 -0.182398
+			-0.641627 -0.745014 -0.182398
+			-0.641627 -0.745014 -0.182398
+			-0.641627 -0.745014 -0.182398
+			0.641625 0.745015 0.182402
+			0.641625 0.745015 0.182402
+			0.641625 0.745015 0.182402
+			0.641625 0.745015 0.182402
+			0.641625 0.745015 0.182402
+			0.641625 0.745015 0.182402
+			-0.786777 -0.617238 -0.000001
+			-0.786777 -0.617238 -0.000001
+			-0.786777 -0.617238 -0.000001
+			-0.786777 -0.617238 -0.000001
+			-0.786777 -0.617238 -0.000001
+			-0.786777 -0.617238 -0.000001
+			0.562853 0.826557 -0.000001
+			0.562853 0.826557 -0.000001
+			0.562853 0.826557 -0.000001
+			0.562853 0.826557 -0.000001
+			0.562853 0.826557 -0.000001
+			0.562853 0.826557 -0.000001
+			0.254037 0.569911 0.781452
+			0.254037 0.569911 0.781452
+			0.254037 0.569911 0.781452
+			0.254037 0.569911 0.781452
+			0.254037 0.569911 0.781452
+			0.254037 0.569911 0.781452
+			-0.545899 -0.284756 0.787977
+			-0.545899 -0.284756 0.787977
+			-0.545899 -0.284756 0.787977
+			-0.545899 -0.284756 0.787977
+			-0.545899 -0.284756 0.787977
+			-0.545899 -0.284756 0.787977
+			0.254038 0.569912 -0.781451
+			0.254038 0.569912 -0.781451
+			0.254038 0.569912 -0.781451
+			0.254038 0.569912 -0.781451
+			0.254038 0.569912 -0.781451
+			0.254038 0.569912 -0.781451
+			-0.545900 -0.284756 -0.787977
+			-0.545900 -0.284756 -0.787977
+			-0.545900 -0.284756 -0.787977
+			-0.545900 -0.284756 -0.787977
+			-0.545900 -0.284756 -0.787977
+			-0.545900 -0.284756 -0.787977
+			0.706895 -0.707318 -0.000001
+			0.706895 -0.707318 -0.000001
+			0.706895 -0.707318 -0.000001
+			0.706895 -0.707318 -0.000001
+			0.706895 -0.707318 -0.000001
+			0.706895 -0.707318 -0.000001
+			0.706895 -0.707318 -0.000001
+			0.706895 -0.707318 -0.000001
+			0.706895 -0.707318 -0.000001
+			0.706895 -0.707318 -0.000001
+			0.706895 -0.707318 -0.000001
+			0.706895 -0.707318 -0.000001
+			0.422747 0.422495 0.801738
+			0.422747 0.422495 0.801738
+			0.422747 0.422495 0.801738
+			0.422747 0.422495 0.801738
+			0.422747 0.422495 0.801738
+			0.422747 0.422495 0.801738
+			-0.422746 -0.422495 0.801738
+			-0.422746 -0.422495 0.801738
+			-0.422746 -0.422495 0.801738
+			-0.422746 -0.422495 0.801738
+			-0.422746 -0.422495 0.801738
+			-0.422746 -0.422495 0.801738
+			0.422746 0.422495 -0.801738
+			0.422746 0.422495 -0.801738
+			0.422746 0.422495 -0.801738
+			0.422746 0.422495 -0.801738
+			0.422746 0.422495 -0.801738
+			0.422746 0.422495 -0.801738
+			-0.422746 -0.422495 -0.801738
+			-0.422746 -0.422495 -0.801738
+			-0.422746 -0.422495 -0.801738
+			-0.422746 -0.422495 -0.801738
+			-0.422746 -0.422495 -0.801738
+			-0.422746 -0.422495 -0.801738
+			-0.707317 -0.706896 0.000000
+			-0.707317 -0.706896 0.000000
+			-0.707317 -0.706896 0.000000
+			-0.707317 -0.706896 0.000000
+			-0.707317 -0.706896 0.000000
+			-0.707317 -0.706896 0.000000
+			0.707317 0.706896 0.000000
+			0.707317 0.706896 0.000000
+			0.707317 0.706896 0.000000
+			0.707317 0.706896 0.000000
+			0.707317 0.706896 0.000000
+			0.707317 0.706896 0.000000
+			-0.000000 1.000000 0.000000
+			-0.000000 1.000000 0.000000
+			-0.000000 1.000000 0.000000
+			-0.000000 1.000000 0.000000
+			-0.000000 1.000000 0.000000
+			-0.000000 1.000000 0.000000
+			0.000000 -1.000000 -0.000000
+			0.000000 -1.000000 -0.000000
+			0.000000 -1.000000 -0.000000
+			0.000000 -1.000000 -0.000000
+			0.000000 -1.000000 -0.000000
+			0.000000 -1.000000 -0.000000
+			0.000000 0.608191 0.793791
+			0.000000 0.608191 0.793791
+			0.000000 0.608191 0.793791
+			0.000000 0.608191 0.793791
+			0.000000 0.608191 0.793791
+			0.000000 0.608191 0.793791
+			0.000000 -0.608191 0.793791
+			0.000000 -0.608191 0.793791
+			0.000000 -0.608191 0.793791
+			0.000000 -0.608191 0.793791
+			0.000000 -0.608191 0.793791
+			0.000000 -0.608191 0.793791
+			0.000000 -0.608191 -0.793791
+			0.000000 -0.608191 -0.793791
+			0.000000 -0.608191 -0.793791
+			0.000000 -0.608191 -0.793791
+			0.000000 -0.608191 -0.793791
+			0.000000 -0.608191 -0.793791
+			-0.000000 0.608191 -0.793791
+			-0.000000 0.608191 -0.793791
+			-0.000000 0.608191 -0.793791
+			-0.000000 0.608191 -0.793791
+			-0.000000 0.608191 -0.793791
+			-0.000000 0.608191 -0.793791
+			-1.000000 -0.000002 0.000001
+			-1.000000 -0.000002 0.000001
+			-1.000000 -0.000002 0.000001
+			-1.000000 -0.000002 0.000001
+			-1.000000 -0.000002 0.000001
+			-1.000000 -0.000002 0.000001
+			-1.000000 -0.000002 0.000001
+			-1.000000 -0.000002 0.000001
+			-1.000000 -0.000002 0.000001
+			-1.000000 -0.000002 0.000001
+			-1.000000 -0.000002 0.000001
+			-1.000000 -0.000002 0.000001
+			0.146226 -0.601653 0.785259
+			0.146226 -0.601653 0.785259
+			0.146226 -0.601653 0.785259
+			0.146226 -0.601653 0.785259
+			0.146226 -0.601653 0.785259
+			0.146226 -0.601653 0.785259
+			0.146229 0.601653 0.785258
+			0.146229 0.601653 0.785258
+			0.146229 0.601653 0.785258
+			0.146229 0.601653 0.785258
+			0.146229 0.601653 0.785258
+			0.146229 0.601653 0.785258
+			0.146226 -0.601653 -0.785258
+			0.146226 -0.601653 -0.785258
+			0.146226 -0.601653 -0.785258
+			0.146226 -0.601653 -0.785258
+			0.146226 -0.601653 -0.785258
+			0.146226 -0.601653 -0.785258
+			0.146230 0.601653 -0.785258
+			0.146230 0.601653 -0.785258
+			0.146230 0.601653 -0.785258
+			0.146230 0.601653 -0.785258
+			0.146230 0.601653 -0.785258
+			0.146230 0.601653 -0.785258
+			0.107402 0.994216 0.000000
+			0.107402 0.994216 0.000000
+			0.107402 0.994216 0.000000
+			0.107402 0.994216 0.000000
+			0.107402 0.994216 0.000000
+			0.107402 0.994216 0.000000
+			0.107397 -0.994216 -0.000001
+			0.107397 -0.994216 -0.000001
+			0.107397 -0.994216 -0.000001
+			0.107397 -0.994216 -0.000001
+			0.107397 -0.994216 -0.000001
+			0.107397 -0.994216 -0.000001
+			-0.000003 1.000000 -0.000000
+			-0.000003 1.000000 -0.000000
+			-0.000003 1.000000 -0.000000
+			-0.000003 1.000000 -0.000000
+			-0.000003 1.000000 -0.000000
+			-0.000003 1.000000 -0.000000
+			0.000002 -1.000000 0.000000
+			0.000002 -1.000000 0.000000
+			0.000002 -1.000000 0.000000
+			0.000002 -1.000000 0.000000
+			0.000002 -1.000000 0.000000
+			0.000002 -1.000000 0.000000
+			-0.282780 -0.592835 0.754044
+			-0.282780 -0.592835 0.754044
+			-0.282780 -0.592835 0.754044
+			-0.282780 -0.592835 0.754044
+			-0.282780 -0.592835 0.754044
+			-0.282780 -0.592835 0.754044
+			-0.282783 0.592834 0.754043
+			-0.282783 0.592834 0.754043
+			-0.282783 0.592834 0.754043
+			-0.282783 0.592834 0.754043
+			-0.282783 0.592834 0.754043
+			-0.282783 0.592834 0.754043
+			0.269802 -0.593391 -0.758350
+			0.269802 -0.593391 -0.758350
+			0.269802 -0.593391 -0.758350
+			0.269802 -0.593391 -0.758350
+			0.269802 -0.593391 -0.758350
+			0.269802 -0.593391 -0.758350
+			0.269799 0.593391 -0.758350
+			0.269799 0.593391 -0.758350
+			0.269799 0.593391 -0.758350
+			0.269799 0.593391 -0.758350
+			0.269799 0.593391 -0.758350
+			0.269799 0.593391 -0.758350
+			0.567387 0.595704 -0.568515
+			0.567387 0.595704 -0.568515
+			0.567387 0.595704 -0.568515
+			0.567387 0.595704 -0.568515
+			0.567387 0.595704 -0.568515
+			0.567387 0.595704 -0.568515
+			0.567389 -0.595703 -0.568513
+			0.567389 -0.595703 -0.568513
+			0.567389 -0.595703 -0.568513
+			0.567389 -0.595703 -0.568513
+			0.567389 -0.595703 -0.568513
+			0.567389 -0.595703 -0.568513
+			-0.219641 0.595703 0.772591
+			-0.219641 0.595703 0.772591
+			-0.219641 0.595703 0.772591
+			-0.219641 0.595703 0.772591
+			-0.219641 0.595703 0.772591
+			-0.219641 0.595703 0.772591
+			-0.219639 -0.595702 0.772592
+			-0.219639 -0.595702 0.772592
+			-0.219639 -0.595702 0.772592
+			-0.219639 -0.595702 0.772592
+			-0.219639 -0.595702 0.772592
+			-0.219639 -0.595702 0.772592
+			0.128290 -0.988875 0.075287
+			0.128290 -0.988875 0.075287
+			0.128290 -0.988875 0.075287
+			0.128290 -0.988875 0.075287
+			0.128290 -0.988875 0.075287
+			0.128290 -0.988875 0.075287
+			0.128286 0.988876 0.075285
+			0.128286 0.988876 0.075285
+			0.128286 0.988876 0.075285
+			0.128286 0.988876 0.075285
+			0.128286 0.988876 0.075285
+			0.128286 0.988876 0.075285
+			0.000002 -1.000000 0.000001
+			0.000002 -1.000000 0.000001
+			0.000002 -1.000000 0.000001
+			0.000002 -1.000000 0.000001
+			0.000002 -1.000000 0.000001
+			0.000002 -1.000000 0.000001
+			-0.000002 1.000000 -0.000001
+			-0.000002 1.000000 -0.000001
+			-0.000002 1.000000 -0.000001
+			-0.000002 1.000000 -0.000001
+			-0.000002 1.000000 -0.000001
+			-0.000002 1.000000 -0.000001
+			0.401763 0.608190 -0.684611
+			0.401763 0.608190 -0.684611
+			0.401763 0.608190 -0.684611
+			0.401763 0.608190 -0.684611
+			0.401763 0.608190 -0.684611
+			0.401763 0.608190 -0.684611
+			0.401765 -0.608190 -0.684609
+			0.401765 -0.608190 -0.684609
+			0.401765 -0.608190 -0.684609
+			0.401765 -0.608190 -0.684609
+			0.401765 -0.608190 -0.684609
+			0.401765 -0.608190 -0.684609
+			-0.401764 0.608191 0.684609
+			-0.401764 0.608191 0.684609
+			-0.401764 0.608191 0.684609
+			-0.401764 0.608191 0.684609
+			-0.401764 0.608191 0.684609
+			-0.401764 0.608191 0.684609
+			-0.401762 -0.608191 0.684610
+			-0.401762 -0.608191 0.684610
+			-0.401762 -0.608191 0.684610
+			-0.401762 -0.608191 0.684610
+			-0.401762 -0.608191 0.684610
+			-0.401762 -0.608191 0.684610
+			0.555669 0.597505 -0.578118
+			0.555669 0.597505 -0.578118
+			0.555669 0.597505 -0.578118
+			0.555669 0.597505 -0.578118
+			0.555669 0.597505 -0.578118
+			0.555669 0.597505 -0.578118
+			0.555671 -0.597504 -0.578116
+			0.555671 -0.597504 -0.578116
+			0.555671 -0.597504 -0.578116
+			0.555671 -0.597504 -0.578116
+			0.555671 -0.597504 -0.578116
+			0.555671 -0.597504 -0.578116
+			-0.233739 0.597504 0.767043
+			-0.233739 0.597504 0.767043
+			-0.233739 0.597504 0.767043
+			-0.233739 0.597504 0.767043
+			-0.233739 0.597504 0.767043
+			-0.233739 0.597504 0.767043
+			-0.233736 -0.597504 0.767044
+			-0.233736 -0.597504 0.767044
+			-0.233736 -0.597504 0.767044
+			-0.233736 -0.597504 0.767044
+			-0.233736 -0.597504 0.767044
+			-0.233736 -0.597504 0.767044
+			0.118602 -0.990499 0.069602
+			0.118602 -0.990499 0.069602
+			0.118602 -0.990499 0.069602
+			0.118602 -0.990499 0.069602
+			0.118602 -0.990499 0.069602
+			0.118602 -0.990499 0.069602
+			0.118599 0.990500 0.069600
+			0.118599 0.990500 0.069600
+			0.118599 0.990500 0.069600
+			0.118599 0.990500 0.069600
+			0.118599 0.990500 0.069600
+			0.118599 0.990500 0.069600
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			-0.707317 -0.706896 0.000001
+			-0.707317 -0.706896 0.000001
+			-0.707317 -0.706896 0.000001
+			-0.707317 -0.706896 0.000001
+			-0.707317 -0.706896 0.000001
+			-0.707317 -0.706896 0.000001
+			0.707317 0.706896 0.000000
+			0.707317 0.706896 0.000000
+			0.707317 0.706896 0.000000
+			0.707317 0.706896 0.000000
+			0.707317 0.706896 0.000000
+			0.707317 0.706896 0.000000
+			0.422746 0.422494 -0.801738
+			0.422746 0.422494 -0.801738
+			0.422746 0.422494 -0.801738
+			0.422746 0.422494 -0.801738
+			0.422746 0.422494 -0.801738
+			0.422746 0.422494 -0.801738
+			-0.422746 -0.422494 -0.801738
+			-0.422746 -0.422494 -0.801738
+			-0.422746 -0.422494 -0.801738
+			-0.422746 -0.422494 -0.801738
+			-0.422746 -0.422494 -0.801738
+			-0.422746 -0.422494 -0.801738
+			0.422747 0.422495 0.801738
+			0.422747 0.422495 0.801738
+			0.422747 0.422495 0.801738
+			0.422747 0.422495 0.801738
+			0.422747 0.422495 0.801738
+			0.422747 0.422495 0.801738
+			-0.422747 -0.422495 0.801738
+			-0.422747 -0.422495 0.801738
+			-0.422747 -0.422495 0.801738
+			-0.422747 -0.422495 0.801738
+			-0.422747 -0.422495 0.801738
+			-0.422747 -0.422495 0.801738
+			-0.706895 0.707318 -0.000001
+			-0.706895 0.707318 -0.000001
+			-0.706895 0.707318 -0.000001
+			-0.706895 0.707318 -0.000001
+			-0.706895 0.707318 -0.000001
+			-0.706895 0.707318 -0.000001
+			-0.706895 0.707319 -0.000001
+			-0.706895 0.707319 -0.000001
+			-0.706895 0.707319 -0.000001
+			-0.706895 0.707319 -0.000001
+			-0.706895 0.707319 -0.000001
+			-0.706895 0.707319 -0.000001
+			0.545900 0.284756 -0.787977
+			0.545900 0.284756 -0.787977
+			0.545900 0.284756 -0.787977
+			0.545900 0.284756 -0.787977
+			0.545900 0.284756 -0.787977
+			0.545900 0.284756 -0.787977
+			-0.254038 -0.569912 -0.781451
+			-0.254038 -0.569912 -0.781451
+			-0.254038 -0.569912 -0.781451
+			-0.254038 -0.569912 -0.781451
+			-0.254038 -0.569912 -0.781451
+			-0.254038 -0.569912 -0.781451
+			0.545899 0.284756 0.787977
+			0.545899 0.284756 0.787977
+			0.545899 0.284756 0.787977
+			0.545899 0.284756 0.787977
+			0.545899 0.284756 0.787977
+			0.545899 0.284756 0.787977
+			-0.254036 -0.569911 0.781452
+			-0.254036 -0.569911 0.781452
+			-0.254036 -0.569911 0.781452
+			-0.254036 -0.569911 0.781452
+			-0.254036 -0.569911 0.781452
+			-0.254036 -0.569911 0.781452
+			-0.562853 -0.826557 -0.000001
+			-0.562853 -0.826557 -0.000001
+			-0.562853 -0.826557 -0.000001
+			-0.562853 -0.826557 -0.000001
+			-0.562853 -0.826557 -0.000001
+			-0.562853 -0.826557 -0.000001
+			0.786777 0.617238 -0.000001
+			0.786777 0.617238 -0.000001
+			0.786777 0.617238 -0.000001
+			0.786777 0.617238 -0.000001
+			0.786777 0.617238 -0.000001
+			0.786777 0.617238 -0.000001
+			-0.641625 -0.745015 0.182401
+			-0.641625 -0.745015 0.182401
+			-0.641625 -0.745015 0.182401
+			-0.641625 -0.745015 0.182401
+			-0.641625 -0.745015 0.182401
+			-0.641625 -0.745015 0.182401
+			0.641626 0.745014 -0.182398
+			0.641626 0.745014 -0.182398
+			0.641626 0.745014 -0.182398
+			0.641626 0.745014 -0.182398
+			0.641626 0.745014 -0.182398
+			0.641626 0.745014 -0.182398
+			0.060718 0.529748 -0.845979
+			0.060718 0.529748 -0.845979
+			0.060718 0.529748 -0.845979
+			0.060718 0.529748 -0.845979
+			0.060718 0.529748 -0.845979
+			0.060718 0.529748 -0.845979
+			-0.716411 -0.309887 -0.625081
+			-0.716411 -0.309887 -0.625081
+			-0.716411 -0.309887 -0.625081
+			-0.716411 -0.309887 -0.625081
+			-0.716411 -0.309887 -0.625081
+			-0.716411 -0.309887 -0.625081
+			0.678612 0.355956 0.642481
+			0.678612 0.355956 0.642481
+			0.678612 0.355956 0.642481
+			0.678612 0.355956 0.642481
+			0.678612 0.355956 0.642481
+			0.678612 0.355956 0.642481
+			-0.050103 -0.538889 0.840885
+			-0.050103 -0.538889 0.840885
+			-0.050103 -0.538889 0.840885
+			-0.050103 -0.538889 0.840885
+			-0.050103 -0.538889 0.840885
+			-0.050103 -0.538889 0.840885
+			-0.012728 0.363091 -0.931667
+			-0.012728 0.363091 -0.931667
+			-0.012728 0.363091 -0.931667
+			-0.012728 0.363091 -0.931667
+			-0.012728 0.363091 -0.931667
+			-0.012728 0.363091 -0.931667
+			-0.603418 -0.587956 -0.538697
+			-0.603418 -0.587956 -0.538697
+			-0.603418 -0.587956 -0.538697
+			-0.603418 -0.587956 -0.538697
+			-0.603418 -0.587956 -0.538697
+			-0.603418 -0.587956 -0.538697
+			0.839676 0.346477 0.418208
+			0.839676 0.346477 0.418208
+			0.839676 0.346477 0.418208
+			0.839676 0.346477 0.418208
+			0.839676 0.346477 0.418208
+			0.839676 0.346477 0.418208
+			0.224360 -0.599928 0.767951
+			0.224360 -0.599928 0.767951
+			0.224360 -0.599928 0.767951
+			0.224360 -0.599928 0.767951
+			0.224360 -0.599928 0.767951
+			0.224360 -0.599928 0.767951
+			-0.412417 -0.874551 0.255095
+			-0.412417 -0.874551 0.255095
+			-0.412417 -0.874551 0.255095
+			-0.412417 -0.874551 0.255095
+			-0.412417 -0.874551 0.255095
+			-0.412417 -0.874551 0.255095
+			0.593194 0.716584 -0.366917
+			0.593194 0.716584 -0.366917
+			0.593194 0.716584 -0.366917
+			0.593194 0.716584 -0.366917
+			0.593194 0.716584 -0.366917
+			0.593194 0.716584 -0.366917
+			-0.423931 -0.866904 0.262222
+			-0.423931 -0.866904 0.262222
+			-0.423931 -0.866904 0.262222
+			0.582209 0.728936 -0.360118
+			0.582209 0.728936 -0.360118
+			0.582209 0.728936 -0.360118
+			-0.182588 0.556889 -0.810270
+			-0.182588 0.556889 -0.810270
+			-0.182588 0.556889 -0.810270
+			-0.796777 -0.403794 -0.449551
+			-0.796777 -0.403794 -0.449551
+			-0.796777 -0.403794 -0.449551
+			0.935042 0.167643 0.312398
+			0.935042 0.167643 0.312398
+			0.935042 0.167643 0.312398
+			0.335282 -0.703494 0.626644
+			0.335282 -0.703494 0.626644
+			0.335282 -0.703494 0.626644
+			-0.335281 -0.703495 -0.626643
+			-0.335281 -0.703495 -0.626643
+			-0.335281 -0.703495 -0.626643
+			-0.935042 0.167642 -0.312399
+			-0.935042 0.167642 -0.312399
+			-0.935042 0.167642 -0.312399
+			0.796777 -0.403795 0.449550
+			0.796777 -0.403795 0.449550
+			0.796777 -0.403795 0.449550
+			0.182589 0.556888 0.810270
+			0.182589 0.556888 0.810270
+			0.182589 0.556888 0.810270
+			-0.582210 0.728936 0.360117
+			-0.582210 0.728936 0.360117
+			-0.582210 0.728936 0.360117
+			0.423931 -0.866904 -0.262223
+			0.423931 -0.866904 -0.262223
+			0.423931 -0.866904 -0.262223
+			-0.593194 0.716584 0.366917
+			-0.593194 0.716584 0.366917
+			-0.593194 0.716584 0.366917
+			-0.593194 0.716584 0.366917
+			-0.593194 0.716584 0.366917
+			-0.593194 0.716584 0.366917
+			0.412418 -0.874550 -0.255095
+			0.412418 -0.874550 -0.255095
+			0.412418 -0.874550 -0.255095
+			0.412418 -0.874550 -0.255095
+			0.412418 -0.874550 -0.255095
+			0.412418 -0.874550 -0.255095
+			-0.224361 -0.599928 -0.767951
+			-0.224361 -0.599928 -0.767951
+			-0.224361 -0.599928 -0.767951
+			-0.224361 -0.599928 -0.767951
+			-0.224361 -0.599928 -0.767951
+			-0.224361 -0.599928 -0.767951
+			-0.839676 0.346478 -0.418207
+			-0.839676 0.346478 -0.418207
+			-0.839676 0.346478 -0.418207
+			-0.839676 0.346478 -0.418207
+			-0.839676 0.346478 -0.418207
+			-0.839676 0.346478 -0.418207
+			0.603417 -0.587956 0.538698
+			0.603417 -0.587956 0.538698
+			0.603417 -0.587956 0.538698
+			0.603417 -0.587956 0.538698
+			0.603417 -0.587956 0.538698
+			0.603417 -0.587956 0.538698
+			0.012728 0.363091 0.931667
+			0.012728 0.363091 0.931667
+			0.012728 0.363091 0.931667
+			0.012728 0.363091 0.931667
+			0.012728 0.363091 0.931667
+			0.012728 0.363091 0.931667
+			0.050102 -0.538889 -0.840885
+			0.050102 -0.538889 -0.840885
+			0.050102 -0.538889 -0.840885
+			0.050102 -0.538889 -0.840885
+			0.050102 -0.538889 -0.840885
+			0.050102 -0.538889 -0.840885
+			-0.678612 0.355956 -0.642480
+			-0.678612 0.355956 -0.642480
+			-0.678612 0.355956 -0.642480
+			-0.678612 0.355956 -0.642480
+			-0.678612 0.355956 -0.642480
+			-0.678612 0.355956 -0.642480
+			0.716411 -0.309886 0.625081
+			0.716411 -0.309886 0.625081
+			0.716411 -0.309886 0.625081
+			0.716411 -0.309886 0.625081
+			0.716411 -0.309886 0.625081
+			0.716411 -0.309886 0.625081
+			-0.060718 0.529748 0.845979
+			-0.060718 0.529748 0.845979
+			-0.060718 0.529748 0.845979
+			-0.060718 0.529748 0.845979
+			-0.060718 0.529748 0.845979
+			-0.060718 0.529748 0.845979
+			-0.641627 0.745014 0.182398
+			-0.641627 0.745014 0.182398
+			-0.641627 0.745014 0.182398
+			-0.641627 0.745014 0.182398
+			-0.641627 0.745014 0.182398
+			-0.641627 0.745014 0.182398
+			0.641625 -0.745015 -0.182402
+			0.641625 -0.745015 -0.182402
+			0.641625 -0.745015 -0.182402
+			0.641625 -0.745015 -0.182402
+			0.641625 -0.745015 -0.182402
+			0.641625 -0.745015 -0.182402
+			-0.786777 0.617238 0.000001
+			-0.786777 0.617238 0.000001
+			-0.786777 0.617238 0.000001
+			-0.786777 0.617238 0.000001
+			-0.786777 0.617238 0.000001
+			-0.786777 0.617238 0.000001
+			0.562853 -0.826557 0.000001
+			0.562853 -0.826557 0.000001
+			0.562853 -0.826557 0.000001
+			0.562853 -0.826557 0.000001
+			0.562853 -0.826557 0.000001
+			0.562853 -0.826557 0.000001
+			0.254037 -0.569911 -0.781452
+			0.254037 -0.569911 -0.781452
+			0.254037 -0.569911 -0.781452
+			0.254037 -0.569911 -0.781452
+			0.254037 -0.569911 -0.781452
+			0.254037 -0.569911 -0.781452
+			-0.545899 0.284756 -0.787977
+			-0.545899 0.284756 -0.787977
+			-0.545899 0.284756 -0.787977
+			-0.545899 0.284756 -0.787977
+			-0.545899 0.284756 -0.787977
+			-0.545899 0.284756 -0.787977
+			0.254038 -0.569912 0.781451
+			0.254038 -0.569912 0.781451
+			0.254038 -0.569912 0.781451
+			0.254038 -0.569912 0.781451
+			0.254038 -0.569912 0.781451
+			0.254038 -0.569912 0.781451
+			-0.545900 0.284756 0.787977
+			-0.545900 0.284756 0.787977
+			-0.545900 0.284756 0.787977
+			-0.545900 0.284756 0.787977
+			-0.545900 0.284756 0.787977
+			-0.545900 0.284756 0.787977
+			0.706895 0.707318 0.000001
+			0.706895 0.707318 0.000001
+			0.706895 0.707318 0.000001
+			0.706895 0.707318 0.000001
+			0.706895 0.707318 0.000001
+			0.706895 0.707318 0.000001
+			0.706895 0.707318 0.000001
+			0.706895 0.707318 0.000001
+			0.706895 0.707318 0.000001
+			0.706895 0.707318 0.000001
+			0.706895 0.707318 0.000001
+			0.706895 0.707318 0.000001
+			0.422747 -0.422495 -0.801738
+			0.422747 -0.422495 -0.801738
+			0.422747 -0.422495 -0.801738
+			0.422747 -0.422495 -0.801738
+			0.422747 -0.422495 -0.801738
+			0.422747 -0.422495 -0.801738
+			-0.422746 0.422495 -0.801738
+			-0.422746 0.422495 -0.801738
+			-0.422746 0.422495 -0.801738
+			-0.422746 0.422495 -0.801738
+			-0.422746 0.422495 -0.801738
+			-0.422746 0.422495 -0.801738
+			0.422746 -0.422495 0.801738
+			0.422746 -0.422495 0.801738
+			0.422746 -0.422495 0.801738
+			0.422746 -0.422495 0.801738
+			0.422746 -0.422495 0.801738
+			0.422746 -0.422495 0.801738
+			-0.422746 0.422495 0.801738
+			-0.422746 0.422495 0.801738
+			-0.422746 0.422495 0.801738
+			-0.422746 0.422495 0.801738
+			-0.422746 0.422495 0.801738
+			-0.422746 0.422495 0.801738
+			-0.707317 0.706896 -0.000000
+			-0.707317 0.706896 -0.000000
+			-0.707317 0.706896 -0.000000
+			-0.707317 0.706896 -0.000000
+			-0.707317 0.706896 -0.000000
+			-0.707317 0.706896 -0.000000
+			0.707317 -0.706896 -0.000000
+			0.707317 -0.706896 -0.000000
+			0.707317 -0.706896 -0.000000
+			0.707317 -0.706896 -0.000000
+			0.707317 -0.706896 -0.000000
+			0.707317 -0.706896 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 -0.608191 -0.793791
+			0.000000 -0.608191 -0.793791
+			0.000000 -0.608191 -0.793791
+			0.000000 -0.608191 -0.793791
+			0.000000 -0.608191 -0.793791
+			0.000000 -0.608191 -0.793791
+			0.000000 0.608191 -0.793791
+			0.000000 0.608191 -0.793791
+			0.000000 0.608191 -0.793791
+			0.000000 0.608191 -0.793791
+			0.000000 0.608191 -0.793791
+			0.000000 0.608191 -0.793791
+			0.000000 0.608191 0.793791
+			0.000000 0.608191 0.793791
+			0.000000 0.608191 0.793791
+			0.000000 0.608191 0.793791
+			0.000000 0.608191 0.793791
+			0.000000 0.608191 0.793791
+			-0.000000 -0.608191 0.793791
+			-0.000000 -0.608191 0.793791
+			-0.000000 -0.608191 0.793791
+			-0.000000 -0.608191 0.793791
+			-0.000000 -0.608191 0.793791
+			-0.000000 -0.608191 0.793791
+			-1.000000 0.000002 -0.000001
+			-1.000000 0.000002 -0.000001
+			-1.000000 0.000002 -0.000001
+			-1.000000 0.000002 -0.000001
+			-1.000000 0.000002 -0.000001
+			-1.000000 0.000002 -0.000001
+			-1.000000 0.000002 -0.000001
+			-1.000000 0.000002 -0.000001
+			-1.000000 0.000002 -0.000001
+			-1.000000 0.000002 -0.000001
+			-1.000000 0.000002 -0.000001
+			-1.000000 0.000002 -0.000001
+			0.146226 0.601653 -0.785259
+			0.146226 0.601653 -0.785259
+			0.146226 0.601653 -0.785259
+			0.146226 0.601653 -0.785259
+			0.146226 0.601653 -0.785259
+			0.146226 0.601653 -0.785259
+			0.146229 -0.601653 -0.785258
+			0.146229 -0.601653 -0.785258
+			0.146229 -0.601653 -0.785258
+			0.146229 -0.601653 -0.785258
+			0.146229 -0.601653 -0.785258
+			0.146229 -0.601653 -0.785258
+			0.146226 0.601653 0.785258
+			0.146226 0.601653 0.785258
+			0.146226 0.601653 0.785258
+			0.146226 0.601653 0.785258
+			0.146226 0.601653 0.785258
+			0.146226 0.601653 0.785258
+			0.146230 -0.601653 0.785258
+			0.146230 -0.601653 0.785258
+			0.146230 -0.601653 0.785258
+			0.146230 -0.601653 0.785258
+			0.146230 -0.601653 0.785258
+			0.146230 -0.601653 0.785258
+			0.107402 -0.994216 -0.000000
+			0.107402 -0.994216 -0.000000
+			0.107402 -0.994216 -0.000000
+			0.107402 -0.994216 -0.000000
+			0.107402 -0.994216 -0.000000
+			0.107402 -0.994216 -0.000000
+			0.107397 0.994216 0.000001
+			0.107397 0.994216 0.000001
+			0.107397 0.994216 0.000001
+			0.107397 0.994216 0.000001
+			0.107397 0.994216 0.000001
+			0.107397 0.994216 0.000001
+			-0.000003 -1.000000 0.000000
+			-0.000003 -1.000000 0.000000
+			-0.000003 -1.000000 0.000000
+			-0.000003 -1.000000 0.000000
+			-0.000003 -1.000000 0.000000
+			-0.000003 -1.000000 0.000000
+			0.000002 1.000000 -0.000000
+			0.000002 1.000000 -0.000000
+			0.000002 1.000000 -0.000000
+			0.000002 1.000000 -0.000000
+			0.000002 1.000000 -0.000000
+			0.000002 1.000000 -0.000000
+			-0.282780 0.592835 -0.754044
+			-0.282780 0.592835 -0.754044
+			-0.282780 0.592835 -0.754044
+			-0.282780 0.592835 -0.754044
+			-0.282780 0.592835 -0.754044
+			-0.282780 0.592835 -0.754044
+			-0.282783 -0.592834 -0.754043
+			-0.282783 -0.592834 -0.754043
+			-0.282783 -0.592834 -0.754043
+			-0.282783 -0.592834 -0.754043
+			-0.282783 -0.592834 -0.754043
+			-0.282783 -0.592834 -0.754043
+			0.269802 0.593391 0.758350
+			0.269802 0.593391 0.758350
+			0.269802 0.593391 0.758350
+			0.269802 0.593391 0.758350
+			0.269802 0.593391 0.758350
+			0.269802 0.593391 0.758350
+			0.269799 -0.593391 0.758350
+			0.269799 -0.593391 0.758350
+			0.269799 -0.593391 0.758350
+			0.269799 -0.593391 0.758350
+			0.269799 -0.593391 0.758350
+			0.269799 -0.593391 0.758350
+			0.567387 -0.595704 0.568515
+			0.567387 -0.595704 0.568515
+			0.567387 -0.595704 0.568515
+			0.567387 -0.595704 0.568515
+			0.567387 -0.595704 0.568515
+			0.567387 -0.595704 0.568515
+			0.567389 0.595703 0.568513
+			0.567389 0.595703 0.568513
+			0.567389 0.595703 0.568513
+			0.567389 0.595703 0.568513
+			0.567389 0.595703 0.568513
+			0.567389 0.595703 0.568513
+			-0.219641 -0.595703 -0.772591
+			-0.219641 -0.595703 -0.772591
+			-0.219641 -0.595703 -0.772591
+			-0.219641 -0.595703 -0.772591
+			-0.219641 -0.595703 -0.772591
+			-0.219641 -0.595703 -0.772591
+			-0.219639 0.595702 -0.772592
+			-0.219639 0.595702 -0.772592
+			-0.219639 0.595702 -0.772592
+			-0.219639 0.595702 -0.772592
+			-0.219639 0.595702 -0.772592
+			-0.219639 0.595702 -0.772592
+			0.128290 0.988875 -0.075287
+			0.128290 0.988875 -0.075287
+			0.128290 0.988875 -0.075287
+			0.128290 0.988875 -0.075287
+			0.128290 0.988875 -0.075287
+			0.128290 0.988875 -0.075287
+			0.128286 -0.988876 -0.075285
+			0.128286 -0.988876 -0.075285
+			0.128286 -0.988876 -0.075285
+			0.128286 -0.988876 -0.075285
+			0.128286 -0.988876 -0.075285
+			0.128286 -0.988876 -0.075285
+			0.000002 1.000000 -0.000001
+			0.000002 1.000000 -0.000001
+			0.000002 1.000000 -0.000001
+			0.000002 1.000000 -0.000001
+			0.000002 1.000000 -0.000001
+			0.000002 1.000000 -0.000001
+			-0.000002 -1.000000 0.000001
+			-0.000002 -1.000000 0.000001
+			-0.000002 -1.000000 0.000001
+			-0.000002 -1.000000 0.000001
+			-0.000002 -1.000000 0.000001
+			-0.000002 -1.000000 0.000001
+			0.401763 -0.608190 0.684611
+			0.401763 -0.608190 0.684611
+			0.401763 -0.608190 0.684611
+			0.401763 -0.608190 0.684611
+			0.401763 -0.608190 0.684611
+			0.401763 -0.608190 0.684611
+			0.401765 0.608190 0.684609
+			0.401765 0.608190 0.684609
+			0.401765 0.608190 0.684609
+			0.401765 0.608190 0.684609
+			0.401765 0.608190 0.684609
+			0.401765 0.608190 0.684609
+			-0.401764 -0.608191 -0.684609
+			-0.401764 -0.608191 -0.684609
+			-0.401764 -0.608191 -0.684609
+			-0.401764 -0.608191 -0.684609
+			-0.401764 -0.608191 -0.684609
+			-0.401764 -0.608191 -0.684609
+			-0.401762 0.608191 -0.684610
+			-0.401762 0.608191 -0.684610
+			-0.401762 0.608191 -0.684610
+			-0.401762 0.608191 -0.684610
+			-0.401762 0.608191 -0.684610
+			-0.401762 0.608191 -0.684610
+			0.555669 -0.597505 0.578118
+			0.555669 -0.597505 0.578118
+			0.555669 -0.597505 0.578118
+			0.555669 -0.597505 0.578118
+			0.555669 -0.597505 0.578118
+			0.555669 -0.597505 0.578118
+			0.555671 0.597504 0.578116
+			0.555671 0.597504 0.578116
+			0.555671 0.597504 0.578116
+			0.555671 0.597504 0.578116
+			0.555671 0.597504 0.578116
+			0.555671 0.597504 0.578116
+			-0.233739 -0.597504 -0.767043
+			-0.233739 -0.597504 -0.767043
+			-0.233739 -0.597504 -0.767043
+			-0.233739 -0.597504 -0.767043
+			-0.233739 -0.597504 -0.767043
+			-0.233739 -0.597504 -0.767043
+			-0.233736 0.597504 -0.767044
+			-0.233736 0.597504 -0.767044
+			-0.233736 0.597504 -0.767044
+			-0.233736 0.597504 -0.767044
+			-0.233736 0.597504 -0.767044
+			-0.233736 0.597504 -0.767044
+			0.118602 0.990499 -0.069602
+			0.118602 0.990499 -0.069602
+			0.118602 0.990499 -0.069602
+			0.118602 0.990499 -0.069602
+			0.118602 0.990499 -0.069602
+			0.118602 0.990499 -0.069602
+			0.118599 -0.990500 -0.069600
+			0.118599 -0.990500 -0.069600
+			0.118599 -0.990500 -0.069600
+			0.118599 -0.990500 -0.069600
+			0.118599 -0.990500 -0.069600
+			0.118599 -0.990500 -0.069600
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+			0.000000 0.000000 0.000000
+		</normal>
+		<model>
+			0.000000 0.000000 0.000000
+		</model>
+		<texture>
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
+			0.000000 0.000000
+			1.000000 0.000000
+			1.000000 1.000000
+			1.000000 1.000000
+			0.000000 1.000000
+			0.000000 0.000000
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/xml/cube.xml	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,126 @@
+<?xml version="1.0"?>
+    <OBJECT-3D>
+	<surface name="Cube" size="36" prim="Triangle" parent="NULL">
+		<coordinate>
+			0.927885 0.975962 -1.029403
+			0.927885 -1.024038 -1.029403
+			-1.072116 -1.024038 -1.029403
+			-1.072116 -1.024038 -1.029403
+			-1.072115 0.975962 -1.029403
+			0.927885 0.975962 -1.029403
+			0.927885 0.975961 0.970597
+			-1.072115 0.975962 0.970597
+			-1.072116 -1.024038 0.970597
+			-1.072116 -1.024038 0.970597
+			0.927884 -1.024039 0.970597
+			0.927885 0.975961 0.970597
+			0.927885 0.975962 -1.029403
+			0.927885 0.975961 0.970597
+			0.927884 -1.024039 0.970597
+			0.927884 -1.024039 0.970597
+			0.927885 -1.024038 -1.029403
+			0.927885 0.975962 -1.029403
+			0.927885 -1.024038 -1.029403
+			0.927884 -1.024039 0.970597
+			-1.072116 -1.024038 0.970597
+			-1.072116 -1.024038 0.970597
+			-1.072116 -1.024038 -1.029403
+			0.927885 -1.024038 -1.029403
+			-1.072116 -1.024038 -1.029403
+			-1.072116 -1.024038 0.970597
+			-1.072115 0.975962 0.970597
+			-1.072115 0.975962 0.970597
+			-1.072115 0.975962 -1.029403
+			-1.072116 -1.024038 -1.029403
+			0.927885 0.975961 0.970597
+			0.927885 0.975962 -1.029403
+			-1.072115 0.975962 -1.029403
+			-1.072115 0.975962 -1.029403
+			-1.072115 0.975962 0.970597
+			0.927885 0.975961 0.970597
+		</coordinate>
+		<normal>
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 0.000000 -1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			0.000000 -0.000000 1.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			1.000000 -0.000000 0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-0.000000 -1.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			-1.000000 0.000000 -0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+			0.000000 1.000000 0.000000
+		</normal>
+		<model>
+			0.000000 0.000000 -0.029403
+		</model>
+		<texture>
+		1.000000 1.000000
+		0.000000 1.000000
+		0.000000 0.000000
+	        0.000000 0.000000
+	        1.000000 0.000000
+		1.000000 1.000000
+		1.000000 1.000000
+		0.000000 1.000000
+		0.000000 0.000000
+	        0.000000 0.000000
+	        1.000000 0.000000
+		1.000000 1.000000
+		1.000000 1.000000
+		0.000000 1.000000
+		0.000000 0.000000
+	        0.000000 0.000000
+	        1.000000 0.000000
+		1.000000 1.000000
+		1.000000 1.000000
+		0.000000 1.000000
+		0.000000 0.000000
+	        0.000000 0.000000
+	        1.000000 0.000000
+		1.000000 1.000000
+		1.000000 1.000000
+		0.000000 1.000000
+		0.000000 0.000000
+	        0.000000 0.000000
+	        1.000000 0.000000
+		1.000000 1.000000
+		1.000000 1.000000
+		0.000000 1.000000
+		0.000000 0.000000
+	        0.000000 0.000000
+	        1.000000 0.000000
+		1.000000 1.000000
+ 	        </texture>
+		<image name="sample_white.png">
+			iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAAAAADhZOFXAAAAEElEQVQImWP8zwABTAwUMQBJQQEP
+			lYH+agAAAABJRU5ErkJggg==
+		</image>
+	</surface>
+</OBJECT-3D>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fps/xml/earth.xml	Fri Apr 27 13:13:49 2012 +0900
@@ -0,0 +1,18695 @@
+<?xml version="1.0"?>
+<OBJECT-3D>
+	<surface name="Earth" size="5952" prim="Triangle" parent="NULL">
+		<coordinate>
+			-0.839828 0.052444 -61.478222
+			5.070296 1.228069 -61.182194
+			5.186077 0.052480 -61.182194
+			5.186077 0.052480 -61.182194
+			5.070296 1.228069 -61.182194
+			10.923515 2.392346 -60.296947
+			10.923515 2.392346 -60.296947
+			11.153961 0.052481 -60.296947
+			5.186077 0.052480 -61.182194
+			11.153961 0.052481 -60.296947
+			10.923515 2.392346 -60.296947
+			16.663446 3.534090 -58.831001
+			16.663446 3.534090 -58.831001
+			17.006335 0.052481 -58.831001
+			11.153961 0.052481 -60.296947
+			17.006335 0.052481 -58.831001
+			16.663446 3.534090 -58.831001
+			22.234811 4.642304 -56.798492
+			22.234811 4.642304 -56.798492
+			22.686855 0.052485 -56.798492
+			17.006335 0.052481 -58.831001
+			22.686855 0.052485 -56.798492
+			22.234811 4.642304 -56.798492
+			27.583959 5.706315 -54.218979
+			27.583959 5.706315 -54.218979
+			28.140790 0.052485 -54.218979
+			22.686855 0.052485 -56.798492
+			28.140790 0.052485 -54.218979
+			27.583959 5.706315 -54.218979
+			32.659368 6.715877 -51.117298
+			32.659368 6.715877 -51.117298
+			33.315629 0.052489 -51.117298
+			28.140790 0.052485 -54.218979
+			33.315629 0.052489 -51.117298
+			32.659368 6.715877 -51.117298
+			37.412160 7.661267 -47.523327
+			37.412160 7.661267 -47.523327
+			38.161523 0.052488 -47.523327
+			33.315629 0.052489 -51.117298
+			38.161523 0.052488 -47.523327
+			37.412160 7.661267 -47.523327
+			41.796563 8.533379 -43.471684
+			41.796563 8.533379 -43.471684
+			42.631822 0.052493 -43.471684
+			38.161523 0.052488 -47.523327
+			42.631822 0.052493 -43.471684
+			41.796563 8.533379 -43.471684
+			45.770360 9.323817 -39.001392
+			45.770360 9.323817 -39.001392
+			46.683458 0.052496 -39.001392
+			42.631822 0.052493 -43.471684
+			46.683458 0.052496 -39.001392
+			45.770360 9.323817 -39.001392
+			49.295274 10.024966 -34.155491
+			49.295274 10.024966 -34.155491
+			50.277429 0.052492 -34.155491
+			46.683458 0.052496 -39.001392
+			50.277429 0.052492 -34.155491
+			49.295274 10.024966 -34.155491
+			52.337358 10.630073 -28.980648
+			52.337358 10.630073 -28.980648
+			53.379121 0.052494 -28.980648
+			50.277429 0.052492 -34.155491
+			53.379121 0.052494 -28.980648
+			52.337358 10.630073 -28.980648
+			54.867315 11.133313 -23.526714
+			54.867315 11.133313 -23.526714
+			55.958635 0.052495 -23.526714
+			53.379121 0.052494 -28.980648
+			55.958635 0.052495 -23.526714
+			54.867315 11.133313 -23.526714
+			56.860784 11.529838 -17.846201
+			56.860784 11.529838 -17.846201
+			57.991155 0.052489 -17.846201
+			55.958635 0.052495 -23.526714
+			57.991155 0.052489 -17.846201
+			56.860784 11.529838 -17.846201
+			58.298566 11.815831 -11.993814
+			58.298566 11.815831 -11.993814
+			59.457105 0.052501 -11.993814
+			57.991155 0.052489 -17.846201
+			59.457105 0.052501 -11.993814
+			58.298566 11.815831 -11.993814
+			59.166814 11.988535 -6.025925
+			59.166814 11.988535 -6.025925
+			60.342351 0.052487 -6.025925
+			59.457105 0.052501 -11.993814
+			60.342351 0.052487 -6.025925
+			59.166814 11.988535 -6.025925
+			59.457158 12.046289 0.000001
+			59.457158 12.046289 0.000001
+			60.638391 0.052493 0.000001
+			60.342351 0.052487 -6.025925
+			60.638391 0.052493 0.000001
+			59.457158 12.046289 0.000001
+			59.166814 11.988535 6.025923
+			59.166814 11.988535 6.025923
+			60.342351 0.052487 6.025923
+			60.638391 0.052493 0.000001
+			60.342351 0.052487 6.025923
+			59.166814 11.988535 6.025923
+			58.298570 11.815832 11.993812
+			58.298570 11.815832 11.993812
+			59.457101 0.052490 11.993812
+			60.342351 0.052487 6.025923
+			59.457101 0.052490 11.993812
+			58.298570 11.815832 11.993812
+			56.860791 11.529841 17.846195
+			56.860791 11.529841 17.846195
+			57.991159 0.052491 17.846195
+			59.457101 0.052490 11.993812
+			57.991159 0.052491 17.846195
+			56.860791 11.529841 17.846195
+			54.867318 11.133315 23.526703
+			54.867318 11.133315 23.526703
+			55.958635 0.052495 23.526703
+			57.991159 0.052491 17.846195
+			55.958635 0.052495 23.526703
+			54.867318 11.133315 23.526703
+			52.337365 10.630075 28.980652
+			52.337365 10.630075 28.980652
+			53.379125 0.052490 28.980652
+			55.958635 0.052495 23.526703
+			53.379125 0.052490 28.980652
+			52.337365 10.630075 28.980652
+			49.295285 10.024967 34.155495
+			49.295285 10.024967 34.155495
+			50.277436 0.052486 34.155495
+			53.379125 0.052490 28.980652
+			50.277436 0.052486 34.155495
+			49.295285 10.024967 34.155495
+			45.770379 9.323820 39.001392
+			45.770379 9.323820 39.001392
+			46.683480 0.052491 39.001392
+			50.277436 0.052486 34.155495
+			46.683480 0.052491 39.001392
+			45.770379 9.323820 39.001392
+			41.796586 8.533384 43.471687
+			41.796586 8.533384 43.471687
+			42.631852 0.052486 43.471687
+			46.683480 0.052491 39.001392
+			42.631852 0.052486 43.471687
+			41.796586 8.533384 43.471687
+			37.412187 7.661272 47.523331
+			37.412187 7.661272 47.523331
+			38.161554 0.052489 47.523331
+			42.631852 0.052486 43.471687
+			38.161554 0.052489 47.523331
+			37.412187 7.661272 47.523331
+			32.659398 6.715883 51.117294
+			32.659398 6.715883 51.117294
+			33.315652 0.052486 51.117294
+			38.161554 0.052489 47.523331
+			33.315652 0.052486 51.117294
+			32.659398 6.715883 51.117294
+			27.583991 5.706322 54.218979
+			27.583991 5.706322 54.218979
+			28.140817 0.052483 54.218979
+			33.315652 0.052486 51.117294
+			28.140817 0.052483 54.218979
+			27.583991 5.706322 54.218979
+			22.234849 4.642312 56.798492
+			22.234849 4.642312 56.798492
+			22.686887 0.052482 56.798492
+			28.140817 0.052483 54.218979
+			22.686887 0.052482 56.798492
+			22.234849 4.642312 56.798492
+			16.663484 3.534098 58.831017
+			16.663484 3.534098 58.831017
+			17.006379 0.052482 58.831017
+			22.686887 0.052482 56.798492
+			17.006379 0.052482 58.831017
+			16.663484 3.534098 58.831017
+			10.923557 2.392355 60.296959
+			10.923557 2.392355 60.296959
+			11.154005 0.052482 60.296959
+			17.006379 0.052482 58.831017
+			11.154005 0.052482 60.296959
+			10.923557 2.392355 60.296959
+			5.070342 1.228078 61.182220
+			5.070342 1.228078 61.182220
+			5.186123 0.052481 61.182220
+			11.154005 0.052482 60.296959
+			5.070342 1.228078 61.182220
+			-0.839793 0.052479 61.478241
+			5.186123 0.052481 61.182220
+			4.727432 2.358499 61.182220
+			-0.839793 0.052479 61.478241
+			5.070342 1.228078 61.182220
+			10.923557 2.392355 60.296959
+			10.241040 4.642312 60.296959
+			4.727432 2.358499 61.182220
+			4.727432 2.358499 61.182220
+			5.070342 1.228078 61.182220
+			10.923557 2.392355 60.296959
+			16.663484 3.534098 58.831017
+			15.647933 6.881920 58.831017
+			10.241040 4.642312 60.296959
+			10.241040 4.642312 60.296959
+			10.923557 2.392355 60.296959
+			16.663484 3.534098 58.831017
+			22.234849 4.642312 56.798492
+			20.896045 9.055760 56.798492
+			15.647933 6.881920 58.831017
+			15.647933 6.881920 58.831017
+			16.663484 3.534098 58.831017
+			22.234849 4.642312 56.798492
+			27.583991 5.706322 54.218979
+			25.934825 11.142890 54.218979
+			20.896045 9.055760 56.798492
+			20.896045 9.055760 56.798492
+			22.234849 4.642312 56.798492
+			27.583991 5.706322 54.218979
+			32.659398 6.715883 51.117294
+			30.715755 13.123216 51.117294
+			25.934825 11.142890 54.218979
+			25.934825 11.142890 54.218979
+			27.583991 5.706322 54.218979
+			32.659398 6.715883 51.117294
+			37.412187 7.661272 47.523331
+			35.192784 14.977662 47.523331
+			30.715755 13.123216 51.117294
+			30.715755 13.123216 51.117294
+			32.659398 6.715883 51.117294
+			37.412187 7.661272 47.523331
+			41.796586 8.533384 43.471687
+			39.322793 16.688366 43.471687
+			35.192784 14.977662 47.523331
+			35.192784 14.977662 47.523331
+			37.412187 7.661272 47.523331
+			41.796586 8.533384 43.471687
+			45.770379 9.323820 39.001392
+			43.066026 18.238865 39.001392
+			39.322793 16.688366 43.471687
+			39.322793 16.688366 43.471687
+			41.796586 8.533384 43.471687
+			45.770379 9.323820 39.001392
+			49.295285 10.024967 34.155495
+			46.386415 19.614214 34.155495
+			43.066026 18.238865 39.001392
+			43.066026 18.238865 39.001392
+			45.770379 9.323820 39.001392
+			49.295285 10.024967 34.155495
+			52.337365 10.630075 28.980652
+			49.251996 20.801175 28.980652
+			46.386415 19.614214 34.155495
+			46.386415 19.614214 34.155495
+			49.295285 10.024967 34.155495
+			52.337365 10.630075 28.980652
+			54.867318 11.133315 23.526703
+			51.635160 21.788315 23.526703
+			49.251996 20.801175 28.980652
+			49.251996 20.801175 28.980652
+			52.337365 10.630075 28.980652
+			54.867318 11.133315 23.526703
+			56.860791 11.529841 17.846195
+			53.512963 22.566130 17.846195
+			51.635160 21.788315 23.526703
+			51.635160 21.788315 23.526703
+			54.867318 11.133315 23.526703
+			56.860791 11.529841 17.846195
+			58.298570 11.815832 11.993812
+			54.867318 23.127121 11.993812
+			53.512963 22.566130 17.846195
+			53.512963 22.566130 17.846195
+			56.860791 11.529841 17.846195
+			58.298570 11.815832 11.993812
+			59.166814 11.988535 6.025923
+			55.685193 23.465891 6.025923
+			54.867318 23.127121 11.993812
+			54.867318 23.127121 11.993812
+			58.298570 11.815832 11.993812
+			59.166814 11.988535 6.025923
+			59.457158 12.046289 0.000001
+			55.958688 23.579180 0.000001
+			55.685193 23.465891 6.025923
+			55.685193 23.465891 6.025923
+			59.166814 11.988535 6.025923
+			59.457158 12.046289 0.000001
+			59.166814 11.988535 -6.025925
+			55.685193 23.465891 -6.025925
+			55.958688 23.579180 0.000001
+			55.958688 23.579180 0.000001
+			59.457158 12.046289 0.000001
+			59.166814 11.988535 -6.025925
+			58.298566 11.815831 -11.993814
+			54.867318 23.127121 -11.993814
+			55.685193 23.465891 -6.025925
+			55.685193 23.465891 -6.025925
+			59.166814 11.988535 -6.025925
+			58.298566 11.815831 -11.993814
+			56.860784 11.529838 -17.846201
+			53.512960 22.566124 -17.846201
+			54.867318 23.127121 -11.993814
+			54.867318 23.127121 -11.993814
+			58.298566 11.815831 -11.993814
+			56.860784 11.529838 -17.846201
+			54.867315 11.133313 -23.526714
+			51.635152 21.788311 -23.526714
+			53.512960 22.566124 -17.846201
+			53.512960 22.566124 -17.846201
+			56.860784 11.529838 -17.846201
+			54.867315 11.133313 -23.526714
+			52.337358 10.630073 -28.980648
+			49.251985 20.801173 -28.980648
+			51.635152 21.788311 -23.526714
+			51.635152 21.788311 -23.526714
+			54.867315 11.133313 -23.526714
+			52.337358 10.630073 -28.980648
+			49.295274 10.024966 -34.155491
+			46.386407 19.614211 -34.155491
+			49.251985 20.801173 -28.980648
+			49.251985 20.801173 -28.980648
+			52.337358 10.630073 -28.980648
+			49.295274 10.024966 -34.155491
+			45.770360 9.323817 -39.001392
+			43.066011 18.238860 -39.001392
+			46.386407 19.614211 -34.155491
+			46.386407 19.614211 -34.155491
+			49.295274 10.024966 -34.155491
+			45.770360 9.323817 -39.001392
+			41.796563 8.533379 -43.471684
+			39.322778 16.688361 -43.471684
+			43.066011 18.238860 -39.001392
+			43.066011 18.238860 -39.001392
+			45.770360 9.323817 -39.001392
+			41.796563 8.533379 -43.471684
+			37.412160 7.661267 -47.523327
+			35.192758 14.977652 -47.523327
+			39.322778 16.688361 -43.471684
+			39.322778 16.688361 -43.471684
+			41.796563 8.533379 -43.471684
+			37.412160 7.661267 -47.523327
+			32.659368 6.715877 -51.117298
+			30.715726 13.123204 -51.117298
+			35.192758 14.977652 -47.523327
+			35.192758 14.977652 -47.523327
+			37.412160 7.661267 -47.523327
+			32.659368 6.715877 -51.117298
+			27.583959 5.706315 -54.218979
+			25.934793 11.142877 -54.218979
+			30.715726 13.123204 -51.117298
+			30.715726 13.123204 -51.117298
+			32.659368 6.715877 -51.117298
+			27.583959 5.706315 -54.218979
+			22.234811 4.642304 -56.798492
+			20.896009 9.055745 -56.798492
+			25.934793 11.142877 -54.218979
+			25.934793 11.142877 -54.218979
+			27.583959 5.706315 -54.218979
+			22.234811 4.642304 -56.798492
+			16.663446 3.534090 -58.831001
+			15.647897 6.881905 -58.831001
+			20.896009 9.055745 -56.798492
+			20.896009 9.055745 -56.798492
+			22.234811 4.642304 -56.798492
+			16.663446 3.534090 -58.831001
+			10.923515 2.392346 -60.296947
+			10.241000 4.642294 -60.296947
+			15.647897 6.881905 -58.831001
+			15.647897 6.881905 -58.831001
+			16.663446 3.534090 -58.831001
+			10.923515 2.392346 -60.296947
+			5.070296 1.228069 -61.182194
+			4.727389 2.358481 -61.182194
+			10.241000 4.642294 -60.296947
+			10.241000 4.642294 -60.296947
+			10.923515 2.392346 -60.296947
+			5.070296 1.228069 -61.182194
+			-0.839828 0.052444 -61.478222
+			4.727389 2.358481 -61.182194
+			5.070296 1.228069 -61.182194
+			-0.839828 0.052444 -61.478222
+			4.170539 3.400275 -61.182194
+			4.727389 2.358481 -61.182194
+			4.727389 2.358481 -61.182194
+			4.170539 3.400275 -61.182194
+			9.132657 6.715858 -60.296947
+			9.132657 6.715858 -60.296947
+			10.241000 4.642294 -60.296947
+			4.727389 2.358481 -61.182194
+			10.241000 4.642294 -60.296947
+			9.132657 6.715858 -60.296947
+			13.998738 9.967270 -58.831001
+			13.998738 9.967270 -58.831001
+			15.647897 6.881905 -58.831001
+			10.241000 4.642294 -60.296947
+			15.647897 6.881905 -58.831001
+			13.998738 9.967270 -58.831001
+			18.721912 13.123194 -56.798492
+			18.721912 13.123194 -56.798492
+			20.896009 9.055745 -56.798492
+			15.647897 6.881905 -58.831001
+			20.896009 9.055745 -56.798492
+			18.721912 13.123194 -56.798492
+			23.256698 16.153241 -54.218979
+			23.256698 16.153241 -54.218979
+			25.934793 11.142877 -54.218979
+			20.896009 9.055745 -56.798492
+			25.934793 11.142877 -54.218979
+			23.256698 16.153241 -54.218979
+			27.559421 19.028229 -51.117298
+			27.559421 19.028229 -51.117298
+			30.715726 13.123204 -51.117298
+			25.934793 11.142877 -54.218979
+			30.715726 13.123204 -51.117298
+			27.559421 19.028229 -51.117298
+			31.588647 21.720471 -47.523327
+			31.588647 21.720471 -47.523327
+			35.192758 14.977652 -47.523327
+			30.715726 13.123204 -51.117298
+			35.192758 14.977652 -47.523327
+			31.588647 21.720471 -47.523327
+			35.305566 24.204033 -43.471684
+			35.305566 24.204033 -43.471684
+			39.322778 16.688361 -43.471684
+			35.192758 14.977652 -47.523327
+			39.322778 16.688361 -43.471684
+			35.305566 24.204033 -43.471684
+			38.674386 26.455010 -39.001392
+			38.674386 26.455010 -39.001392
+			43.066011 18.238860 -39.001392
+			39.322778 16.688361 -43.471684
+			43.066011 18.238860 -39.001392
+			38.674386 26.455010 -39.001392
+			41.662660 28.451712 -34.155491
+			41.662660 28.451712 -34.155491
+			46.386407 19.614211 -34.155491
+			43.066011 18.238860 -39.001392
+			46.386407 19.614211 -34.155491
+			41.662660 28.451712 -34.155491
+			44.241616 30.174910 -28.980648
+			44.241616 30.174910 -28.980648
+			49.251985 20.801173 -28.980648
+			46.386407 19.614211 -34.155491
+			49.251985 20.801173 -28.980648
+			44.241616 30.174910 -28.980648
+			46.386407 31.608021 -23.526714
+			46.386407 31.608021 -23.526714
+			51.635152 21.788311 -23.526714
+			49.251985 20.801173 -28.980648
+			51.635152 21.788311 -23.526714
+			46.386407 31.608021 -23.526714
+			48.076390 32.737229 -17.846201
+			48.076390 32.737229 -17.846201
+			53.512960 22.566124 -17.846201
+			51.635152 21.788311 -23.526714
+			53.512960 22.566124 -17.846201
+			48.076390 32.737229 -17.846201
+			49.295282 33.551667 -11.993814
+			49.295282 33.551667 -11.993814
+			54.867318 23.127121 -11.993814
+			53.512960 22.566124 -17.846201
+			54.867318 23.127121 -11.993814
+			49.295282 33.551667 -11.993814
+			50.031343 34.043488 -6.025925
+			50.031343 34.043488 -6.025925
+			55.685193 23.465891 -6.025925
+			54.867318 23.127121 -11.993814
+			55.685193 23.465891 -6.025925
+			50.031343 34.043488 -6.025925
+			50.277482 34.207955 0.000001
+			50.277482 34.207955 0.000001
+			55.958688 23.579180 0.000001
+			55.685193 23.465891 -6.025925
+			55.958688 23.579180 0.000001
+			50.277482 34.207955 0.000001
+			50.031343 34.043488 6.025923
+			50.031343 34.043488 6.025923
+			55.685193 23.465891 6.025923
+			55.958688 23.579180 0.000001
+			55.685193 23.465891 6.025923
+			50.031343 34.043488 6.025923
+			49.295285 33.551667 11.993812
+			49.295285 33.551667 11.993812
+			54.867318 23.127121 11.993812
+			55.685193 23.465891 6.025923
+			54.867318 23.127121 11.993812
+			49.295285 33.551667 11.993812
+			48.076394 32.737233 17.846195
+			48.076394 32.737233 17.846195
+			53.512963 22.566130 17.846195
+			54.867318 23.127121 11.993812
+			53.512963 22.566130 17.846195
+			48.076394 32.737233 17.846195
+			46.386415 31.608025 23.526703
+			46.386415 31.608025 23.526703
+			51.635160 21.788315 23.526703
+			53.512963 22.566130 17.846195
+			51.635160 21.788315 23.526703
+			46.386415 31.608025 23.526703
+			44.241624 30.174918 28.980652
+			44.241624 30.174918 28.980652
+			49.251996 20.801175 28.980652
+			51.635160 21.788315 23.526703
+			49.251996 20.801175 28.980652
+			44.241624 30.174918 28.980652
+			41.662671 28.451714 34.155495
+			41.662671 28.451714 34.155495
+			46.386415 19.614214 34.155495
+			49.251996 20.801175 28.980652
+			46.386415 19.614214 34.155495
+			41.662671 28.451714 34.155495
+			38.674398 26.455017 39.001392
+			38.674398 26.455017 39.001392
+			43.066026 18.238865 39.001392
+			46.386415 19.614214 34.155495
+			43.066026 18.238865 39.001392
+			38.674398 26.455017 39.001392
+			35.305585 24.204049 43.471687
+			35.305585 24.204049 43.471687
+			39.322793 16.688366 43.471687
+			43.066026 18.238865 39.001392
+			39.322793 16.688366 43.471687
+			35.305585 24.204049 43.471687
+			31.588666 21.720482 47.523331
+			31.588666 21.720482 47.523331
+			35.192784 14.977662 47.523331
+			39.322793 16.688366 43.471687
+			35.192784 14.977662 47.523331
+			31.588666 21.720482 47.523331
+			27.559447 19.028246 51.117294
+			27.559447 19.028246 51.117294
+			30.715755 13.123216 51.117294
+			35.192784 14.977662 47.523331
+			30.715755 13.123216 51.117294
+			27.559447 19.028246 51.117294
+			23.256725 16.153258 54.218979
+			23.256725 16.153258 54.218979
+			25.934825 11.142890 54.218979
+			30.715755 13.123216 51.117294
+			25.934825 11.142890 54.218979
+			23.256725 16.153258 54.218979
+			18.721942 13.123215 56.798492
+			18.721942 13.123215 56.798492
+			20.896045 9.055760 56.798492
+			25.934825 11.142890 54.218979
+			20.896045 9.055760 56.798492
+			18.721942 13.123215 56.798492
+			13.998770 9.967290 58.831017
+			13.998770 9.967290 58.831017
+			15.647933 6.881920 58.831017
+			20.896045 9.055760 56.798492
+			15.647933 6.881920 58.831017
+			13.998770 9.967290 58.831017
+			9.132693 6.715882 60.296959
+			9.132693 6.715882 60.296959
+			10.241040 4.642312 60.296959
+			15.647933 6.881920 58.831017
+			10.241040 4.642312 60.296959
+			9.132693 6.715882 60.296959
+			4.170577 3.400301 61.182220
+			4.170577 3.400301 61.182220
+			4.727432 2.358499 61.182220
+			10.241040 4.642312 60.296959
+			4.170577 3.400301 61.182220
+			-0.839793 0.052479 61.478241
+			4.727432 2.358499 61.182220
+			3.421176 4.313449 61.182220
+			-0.839793 0.052479 61.478241
+			4.170577 3.400301 61.182220
+			9.132693 6.715882 60.296959
+			7.641108 8.533383 60.296959
+			3.421176 4.313449 61.182220
+			3.421176 4.313449 61.182220
+			4.170577 3.400301 61.182220
+			9.132693 6.715882 60.296959
+			13.998770 9.967290 58.831017
+			11.779367 12.671640 58.831017
+			7.641108 8.533383 60.296959
+			7.641108 8.533383 60.296959
+			9.132693 6.715882 60.296959
+			13.998770 9.967290 58.831017
+			18.721942 13.123215 56.798492
+			15.796094 16.688366 56.798492
+			11.779367 12.671640 58.831017
+			11.779367 12.671640 58.831017
+			13.998770 9.967290 58.831017
+			18.721942 13.123215 56.798492
+			23.256725 16.153258 54.218979
+			19.652610 20.544884 54.218979
+			15.796094 16.688366 56.798492
+			15.796094 16.688366 56.798492
+			18.721942 13.123215 56.798492
+			23.256725 16.153258 54.218979
+			27.559447 19.028246 51.117294
+			23.311774 24.204049 51.117294
+			19.652610 20.544884 54.218979
+			19.652610 20.544884 54.218979
+			23.256725 16.153258 54.218979
+			27.559447 19.028246 51.117294
+			31.588666 21.720482 47.523331
+			26.738342 27.630616 47.523331
+			23.311774 24.204049 51.117294
+			23.311774 24.204049 51.117294
+			27.559447 19.028246 51.117294
+			31.588666 21.720482 47.523331
+			35.305585 24.204049 43.471687
+			29.899318 30.791594 43.471687
+			26.738342 27.630616 47.523331
+			26.738342 27.630616 47.523331
+			31.588666 21.720482 47.523331
+			35.305585 24.204049 43.471687
+			38.674398 26.455017 39.001392
+			32.764264 33.656540 39.001392
+			29.899318 30.791594 43.471687
+			29.899318 30.791594 43.471687
+			35.305585 24.204049 43.471687
+			38.674398 26.455017 39.001392
+			41.662671 28.451714 34.155495
+			35.305581 36.197853 34.155495
+			32.764264 33.656540 39.001392
+			32.764264 33.656540 39.001392
+			38.674398 26.455017 39.001392
+			41.662671 28.451714 34.155495
+			44.241624 30.174918 28.980652
+			37.498796 38.391072 28.980652
+			35.305581 36.197853 34.155495
+			35.305581 36.197853 34.155495
+			41.662671 28.451714 34.155495
+			44.241624 30.174918 28.980652
+			46.386415 31.608025 23.526703
+			39.322793 40.215069 23.526703
+			37.498796 38.391072 28.980652
+			37.498796 38.391072 28.980652
+			44.241624 30.174918 28.980652
+			46.386415 31.608025 23.526703
+			48.076394 32.737233 17.846195
+			40.759996 41.652279 17.846195
+			39.322793 40.215069 23.526703
+			39.322793 40.215069 23.526703
+			46.386415 31.608025 23.526703
+			48.076394 32.737233 17.846195
+			49.295285 33.551667 11.993812
+			41.796582 42.688858 11.993812
+			40.759996 41.652279 17.846195
+			40.759996 41.652279 17.846195
+			48.076394 32.737233 17.846195
+			49.295285 33.551667 11.993812
+			50.031343 34.043488 6.025923
+			42.422555 43.314827 6.025923
+			41.796582 42.688858 11.993812
+			41.796582 42.688858 11.993812
+			49.295285 33.551667 11.993812
+			50.031343 34.043488 6.025923
+			50.277482 34.207955 0.000001
+			42.631879 43.524155 0.000001
+			42.422555 43.314827 6.025923
+			42.422555 43.314827 6.025923
+			50.031343 34.043488 6.025923
+			50.277482 34.207955 0.000001
+			50.031343 34.043488 -6.025925
+			42.422555 43.314827 -6.025925
+			42.631879 43.524155 0.000001
+			42.631879 43.524155 0.000001
+			50.277482 34.207955 0.000001
+			50.031343 34.043488 -6.025925
+			49.295282 33.551667 -11.993814
+			41.796582 42.688858 -11.993814
+			42.422555 43.314827 -6.025925
+			42.422555 43.314827 -6.025925
+			50.031343 34.043488 -6.025925
+			49.295282 33.551667 -11.993814
+			48.076390 32.737229 -17.846201
+			40.759996 41.652272 -17.846201
+			41.796582 42.688858 -11.993814
+			41.796582 42.688858 -11.993814
+			49.295282 33.551667 -11.993814
+			48.076390 32.737229 -17.846201
+			46.386407 31.608021 -23.526714
+			39.322782 40.215062 -23.526714
+			40.759996 41.652272 -17.846201
+			40.759996 41.652272 -17.846201
+			48.076390 32.737229 -17.846201
+			46.386407 31.608021 -23.526714
+			44.241616 30.174910 -28.980648
+			37.498792 38.391064 -28.980648
+			39.322782 40.215062 -23.526714
+			39.322782 40.215062 -23.526714
+			46.386407 31.608021 -23.526714
+			44.241616 30.174910 -28.980648
+			41.662660 28.451712 -34.155491
+			35.305570 36.197846 -34.155491
+			37.498792 38.391064 -28.980648
+			37.498792 38.391064 -28.980648
+			44.241616 30.174910 -28.980648
+			41.662660 28.451712 -34.155491
+			38.674386 26.455010 -39.001392
+			32.764253 33.656529 -39.001392
+			35.305570 36.197846 -34.155491
+			35.305570 36.197846 -34.155491
+			41.662660 28.451712 -34.155491
+			38.674386 26.455010 -39.001392
+			35.305566 24.204033 -43.471684
+			29.899303 30.791575 -43.471684
+			32.764253 33.656529 -39.001392
+			32.764253 33.656529 -39.001392
+			38.674386 26.455010 -39.001392
+			35.305566 24.204033 -43.471684
+			31.588647 21.720471 -47.523327
+			26.738322 27.630597 -47.523327
+			29.899303 30.791575 -43.471684
+			29.899303 30.791575 -43.471684
+			35.305566 24.204033 -43.471684
+			31.588647 21.720471 -47.523327
+			27.559421 19.028229 -51.117298
+			23.311752 24.204026 -51.117298
+			26.738322 27.630597 -47.523327
+			26.738322 27.630597 -47.523327
+			31.588647 21.720471 -47.523327
+			27.559421 19.028229 -51.117298
+			23.256698 16.153241 -54.218979
+			19.652585 20.544861 -54.218979
+			23.311752 24.204026 -51.117298
+			23.311752 24.204026 -51.117298
+			27.559421 19.028229 -51.117298
+			23.256698 16.153241 -54.218979
+			18.721912 13.123194 -56.798492
+			15.796067 16.688342 -56.798492
+			19.652585 20.544861 -54.218979
+			19.652585 20.544861 -54.218979
+			23.256698 16.153241 -54.218979
+			18.721912 13.123194 -56.798492
+			13.998738 9.967270 -58.831001
+			11.779339 12.671613 -58.831001
+			15.796067 16.688342 -56.798492
+			15.796067 16.688342 -56.798492
+			18.721912 13.123194 -56.798492
+			13.998738 9.967270 -58.831001
+			9.132657 6.715858 -60.296947
+			7.641078 8.533351 -60.296947
+			11.779339 12.671613 -58.831001
+			11.779339 12.671613 -58.831001
+			13.998738 9.967270 -58.831001
+			9.132657 6.715858 -60.296947
+			4.170539 3.400275 -61.182194
+			3.421143 4.313415 -61.182194
+			7.641078 8.533351 -60.296947
+			7.641078 8.533351 -60.296947
+			9.132657 6.715858 -60.296947
+			4.170539 3.400275 -61.182194
+			-0.839828 0.052444 -61.478222
+			3.421143 4.313415 -61.182194
+			4.170539 3.400275 -61.182194
+			-0.839828 0.052444 -61.478222
+			2.508003 5.062809 -61.182194
+			3.421143 4.313415 -61.182194
+			3.421143 4.313415 -61.182194
+			2.508003 5.062809 -61.182194
+			5.823585 10.024929 -60.296947
+			5.823585 10.024929 -60.296947
+			7.641078 8.533351 -60.296947
+			3.421143 4.313415 -61.182194
+			7.641078 8.533351 -60.296947
+			5.823585 10.024929 -60.296947
+			9.074994 14.891011 -58.831001
+			9.074994 14.891011 -58.831001
+			11.779339 12.671613 -58.831001
+			7.641078 8.533351 -60.296947
+			11.779339 12.671613 -58.831001
+			9.074994 14.891011 -58.831001
+			12.230917 19.614184 -56.798492
+			12.230917 19.614184 -56.798492
+			15.796067 16.688342 -56.798492
+			11.779339 12.671613 -58.831001
+			15.796067 16.688342 -56.798492
+			12.230917 19.614184 -56.798492
+			15.260965 24.148970 -54.218979
+			15.260965 24.148970 -54.218979
+			19.652585 20.544861 -54.218979
+			15.796067 16.688342 -56.798492
+			19.652585 20.544861 -54.218979
+			15.260965 24.148970 -54.218979
+			18.135953 28.451693 -51.117298
+			18.135953 28.451693 -51.117298
+			23.311752 24.204026 -51.117298
+			19.652585 20.544861 -54.218979
+			23.311752 24.204026 -51.117298
+			18.135953 28.451693 -51.117298
+			20.828193 32.480915 -47.523327
+			20.828193 32.480915 -47.523327
+			26.738322 27.630597 -47.523327
+			23.311752 24.204026 -51.117298
+			26.738322 27.630597 -47.523327
+			20.828193 32.480915 -47.523327
+			23.311757 36.197834 -43.471684
+			23.311757 36.197834 -43.471684
+			29.899303 30.791575 -43.471684
+			26.738322 27.630597 -47.523327
+			29.899303 30.791575 -43.471684
+			23.311757 36.197834 -43.471684
+			25.562730 39.566658 -39.001392
+			25.562730 39.566658 -39.001392
+			32.764253 33.656529 -39.001392
+			29.899303 30.791575 -43.471684
+			32.764253 33.656529 -39.001392
+			25.562730 39.566658 -39.001392
+			27.559434 42.554936 -34.155491
+			27.559434 42.554936 -34.155491
+			35.305570 36.197846 -34.155491
+			32.764253 33.656529 -39.001392
+			35.305570 36.197846 -34.155491
+			27.559434 42.554936 -34.155491
+			29.282640 45.133889 -28.980648
+			29.282640 45.133889 -28.980648
+			37.498792 38.391064 -28.980648
+			35.305570 36.197846 -34.155491
+			37.498792 38.391064 -28.980648
+			29.282640 45.133889 -28.980648
+			30.715739 47.278679 -23.526714
+			30.715739 47.278679 -23.526714
+			39.322782 40.215062 -23.526714
+			37.498792 38.391064 -28.980648
+			39.322782 40.215062 -23.526714
+			30.715739 47.278679 -23.526714
+			31.844949 48.968663 -17.846201
+			31.844949 48.968663 -17.846201
+			40.759996 41.652272 -17.846201
+			39.322782 40.215062 -23.526714
+			40.759996 41.652272 -17.846201
+			31.844949 48.968663 -17.846201
+			32.659391 50.187554 -11.993814
+			32.659391 50.187554 -11.993814
+			41.796582 42.688858 -11.993814
+			40.759996 41.652272 -17.846201
+			41.796582 42.688858 -11.993814
+			32.659391 50.187554 -11.993814
+			33.151216 50.923619 -6.025925
+			33.151216 50.923619 -6.025925
+			42.422555 43.314827 -6.025925
+			41.796582 42.688858 -11.993814
+			42.422555 43.314827 -6.025925
+			33.151216 50.923619 -6.025925
+			33.315679 51.169754 0.000001
+			33.315679 51.169754 0.000001
+			42.631879 43.524155 0.000001
+			42.422555 43.314827 -6.025925
+			42.631879 43.524155 0.000001
+			33.315679 51.169754 0.000001
+			33.151216 50.923619 6.025923
+			33.151216 50.923619 6.025923
+			42.422555 43.314827 6.025923
+			42.631879 43.524155 0.000001
+			42.422555 43.314827 6.025923
+			33.151216 50.923619 6.025923
+			32.659391 50.187554 11.993812
+			32.659391 50.187554 11.993812
+			41.796582 42.688858 11.993812
+			42.422555 43.314827 6.025923
+			41.796582 42.688858 11.993812
+			32.659391 50.187554 11.993812
+			31.844957 48.968670 17.846195
+			31.844957 48.968670 17.846195
+			40.759996 41.652279 17.846195
+			41.796582 42.688858 11.993812
+			40.759996 41.652279 17.846195
+			31.844957 48.968670 17.846195
+			30.715745 47.278687 23.526703
+			30.715745 47.278687 23.526703
+			39.322793 40.215069 23.526703
+			40.759996 41.652279 17.846195
+			39.322793 40.215069 23.526703
+			30.715745 47.278687 23.526703
+			29.282642 45.133896 28.980652
+			29.282642 45.133896 28.980652
+			37.498796 38.391072 28.980652
+			39.322793 40.215069 23.526703
+			37.498796 38.391072 28.980652
+			29.282642 45.133896 28.980652
+			27.559444 42.554943 34.155495
+			27.559444 42.554943 34.155495
+			35.305581 36.197853 34.155495
+			37.498796 38.391072 28.980652
+			35.305581 36.197853 34.155495
+			27.559444 42.554943 34.155495
+			25.562743 39.566674 39.001392
+			25.562743 39.566674 39.001392
+			32.764264 33.656540 39.001392
+			35.305581 36.197853 34.155495
+			32.764264 33.656540 39.001392
+			25.562743 39.566674 39.001392
+			23.311774 36.197857 43.471687
+			23.311774 36.197857 43.471687
+			29.899318 30.791594 43.471687
+			32.764264 33.656540 39.001392
+			29.899318 30.791594 43.471687
+			23.311774 36.197857 43.471687
+			20.828206 32.480938 47.523331
+			20.828206 32.480938 47.523331
+			26.738342 27.630616 47.523331
+			29.899318 30.791594 43.471687
+			26.738342 27.630616 47.523331
+			20.828206 32.480938 47.523331
+			18.135970 28.451720 51.117294
+			18.135970 28.451720 51.117294
+			23.311774 24.204049 51.117294
+			26.738342 27.630616 47.523331
+			23.311774 24.204049 51.117294
+			18.135970 28.451720 51.117294
+			15.260984 24.148997 54.218979
+			15.260984 24.148997 54.218979
+			19.652610 20.544884 54.218979
+			23.311774 24.204049 51.117294
+			19.652610 20.544884 54.218979
+			15.260984 24.148997 54.218979
+			12.230940 19.614214 56.798492
+			12.230940 19.614214 56.798492
+			15.796094 16.688366 56.798492
+			19.652610 20.544884 54.218979
+			15.796094 16.688366 56.798492
+			12.230940 19.614214 56.798492
+			9.075017 14.891041 58.831017
+			9.075017 14.891041 58.831017
+			11.779367 12.671640 58.831017
+			15.796094 16.688366 56.798492
+			11.779367 12.671640 58.831017
+			9.075017 14.891041 58.831017
+			5.823609 10.024967 60.296959
+			5.823609 10.024967 60.296959
+			7.641108 8.533383 60.296959
+			11.779367 12.671640 58.831017
+			7.641108 8.533383 60.296959
+			5.823609 10.024967 60.296959
+			2.508029 5.062849 61.182220
+			2.508029 5.062849 61.182220
+			3.421176 4.313449 61.182220
+			7.641108 8.533383 60.296959
+			2.508029 5.062849 61.182220
+			-0.839793 0.052479 61.478241
+			3.421176 4.313449 61.182220
+			1.466227 5.619704 61.182220
+			-0.839793 0.052479 61.478241
+			2.508029 5.062849 61.182220
+			5.823609 10.024967 60.296959
+			3.750037 11.133313 60.296959
+			1.466227 5.619704 61.182220
+			1.466227 5.619704 61.182220
+			2.508029 5.062849 61.182220
+			5.823609 10.024967 60.296959
+			9.075017 14.891041 58.831017
+			5.989648 16.540205 58.831017
+			3.750037 11.133313 60.296959
+			3.750037 11.133313 60.296959
+			5.823609 10.024967 60.296959
+			9.075017 14.891041 58.831017
+			12.230940 19.614214 56.798492
+			8.163484 21.788315 56.798492
+			5.989648 16.540205 58.831017
+			5.989648 16.540205 58.831017
+			9.075017 14.891041 58.831017
+			12.230940 19.614214 56.798492
+			15.260984 24.148997 54.218979
+			10.250615 26.827095 54.218979
+			8.163484 21.788315 56.798492
+			8.163484 21.788315 56.798492
+			12.230940 19.614214 56.798492
+			15.260984 24.148997 54.218979
+			18.135970 28.451720 51.117294
+			12.230939 31.608025 51.117294
+			10.250615 26.827095 54.218979
+			10.250615 26.827095 54.218979
+			15.260984 24.148997 54.218979
+			18.135970 28.451720 51.117294
+			20.828206 32.480938 47.523331
+			14.085385 36.085053 47.523331
+			12.230939 31.608025 51.117294
+			12.230939 31.608025 51.117294
+			18.135970 28.451720 51.117294
+			20.828206 32.480938 47.523331
+			23.311774 36.197857 43.471687
+			15.796092 40.215069 43.471687
+			14.085385 36.085053 47.523331
+			14.085385 36.085053 47.523331
+			20.828206 32.480938 47.523331
+			23.311774 36.197857 43.471687
+			25.562743 39.566674 39.001392
+			17.346587 43.958298 39.001392
+			15.796092 40.215069 43.471687
+			15.796092 40.215069 43.471687
+			23.311774 36.197857 43.471687
+			25.562743 39.566674 39.001392
+			27.559444 42.554943 34.155495
+			18.721940 47.278683 34.155495
+			17.346587 43.958298 39.001392
+			17.346587 43.958298 39.001392
+			25.562743 39.566674 39.001392
+			27.559444 42.554943 34.155495
+			29.282642 45.133896 28.980652
+			19.908899 50.144261 28.980652
+			18.721940 47.278683 34.155495
+			18.721940 47.278683 34.155495
+			27.559444 42.554943 34.155495
+			29.282642 45.133896 28.980652
+			30.715745 47.278687 23.526703
+			20.896035 52.527428 23.526703
+			19.908899 50.144261 28.980652
+			19.908899 50.144261 28.980652
+			29.282642 45.133896 28.980652
+			30.715745 47.278687 23.526703
+			31.844957 48.968670 17.846195
+			21.673848 54.405236 17.846195
+			20.896035 52.527428 23.526703
+			20.896035 52.527428 23.526703
+			30.715745 47.278687 23.526703
+			31.844957 48.968670 17.846195
+			32.659391 50.187554 11.993812
+			22.234843 55.759587 11.993812
+			21.673848 54.405236 17.846195
+			21.673848 54.405236 17.846195
+			31.844957 48.968670 17.846195
+			32.659391 50.187554 11.993812
+			33.151216 50.923619 6.025923
+			22.573617 56.577450 6.025923
+			22.234843 55.759587 11.993812
+			22.234843 55.759587 11.993812
+			32.659391 50.187554 11.993812
+			33.151216 50.923619 6.025923
+			33.315679 51.169754 0.000001
+			22.686902 56.850941 0.000001
+			22.573617 56.577450 6.025923
+			22.573617 56.577450 6.025923
+			33.151216 50.923619 6.025923
+			33.315679 51.169754 0.000001
+			33.151216 50.923619 -6.025925
+			22.573617 56.577450 -6.025925
+			22.686902 56.850941 0.000001
+			22.686902 56.850941 0.000001
+			33.315679 51.169754 0.000001
+			33.151216 50.923619 -6.025925
+			32.659391 50.187554 -11.993814
+			22.234840 55.759587 -11.993814
+			22.573617 56.577450 -6.025925
+			22.573617 56.577450 -6.025925
+			33.151216 50.923619 -6.025925
+			32.659391 50.187554 -11.993814
+			31.844949 48.968663 -17.846201
+			21.673846 54.405224 -17.846201
+			22.234840 55.759587 -11.993814
+			22.234840 55.759587 -11.993814
+			32.659391 50.187554 -11.993814
+			31.844949 48.968663 -17.846201
+			30.715739 47.278679 -23.526714
+			20.896033 52.527413 -23.526714
+			21.673846 54.405224 -17.846201
+			21.673846 54.405224 -17.846201
+			31.844949 48.968663 -17.846201
+			30.715739 47.278679 -23.526714
+			29.282640 45.133889 -28.980648
+			19.908897 50.144253 -28.980648
+			20.896033 52.527413 -23.526714
+			20.896033 52.527413 -23.526714
+			30.715739 47.278679 -23.526714
+			29.282640 45.133889 -28.980648
+			27.559434 42.554936 -34.155491
+			18.721933 47.278675 -34.155491
+			19.908897 50.144253 -28.980648
+			19.908897 50.144253 -28.980648
+			29.282640 45.133889 -28.980648
+			27.559434 42.554936 -34.155491
+			25.562730 39.566658 -39.001392
+			17.346578 43.958287 -39.001392
+			18.721933 47.278675 -34.155491
+			18.721933 47.278675 -34.155491
+			27.559434 42.554936 -34.155491
+			25.562730 39.566658 -39.001392
+			23.311757 36.197834 -43.471684
+			15.796085 40.215046 -43.471684
+			17.346578 43.958287 -39.001392
+			17.346578 43.958287 -39.001392
+			25.562730 39.566658 -39.001392
+			23.311757 36.197834 -43.471684
+			20.828193 32.480915 -47.523327
+			14.085375 36.085026 -47.523327
+			15.796085 40.215046 -43.471684
+			15.796085 40.215046 -43.471684
+			23.311757 36.197834 -43.471684
+			20.828193 32.480915 -47.523327
+			18.135953 28.451693 -51.117298
+			12.230929 31.607998 -51.117298
+			14.085375 36.085026 -47.523327
+			14.085375 36.085026 -47.523327
+			20.828193 32.480915 -47.523327
+			18.135953 28.451693 -51.117298
+			15.260965 24.148970 -54.218979
+			10.250602 26.827065 -54.218979
+			12.230929 31.607998 -51.117298
+			12.230929 31.607998 -51.117298
+			18.135953 28.451693 -51.117298
+			15.260965 24.148970 -54.218979
+			12.230917 19.614184 -56.798492
+			8.163468 21.788281 -56.798492
+			10.250602 26.827065 -54.218979
+			10.250602 26.827065 -54.218979
+			15.260965 24.148970 -54.218979
+			12.230917 19.614184 -56.798492
+			9.074994 14.891011 -58.831001
+			5.989631 16.540169 -58.831001
+			8.163468 21.788281 -56.798492
+			8.163468 21.788281 -56.798492
+			12.230917 19.614184 -56.798492
+			9.074994 14.891011 -58.831001
+			5.823585 10.024929 -60.296947
+			3.750021 11.133273 -60.296947
+			5.989631 16.540169 -58.831001
+			5.989631 16.540169 -58.831001
+			9.074994 14.891011 -58.831001
+			5.823585 10.024929 -60.296947
+			2.508003 5.062809 -61.182194
+			1.466209 5.619660 -61.182194
+			3.750021 11.133273 -60.296947
+			3.750021 11.133273 -60.296947
+			5.823585 10.024929 -60.296947
+			2.508003 5.062809 -61.182194
+			-0.839828 0.052444 -61.478222
+			1.466209 5.619660 -61.182194
+			2.508003 5.062809 -61.182194
+			-0.839828 0.052444 -61.478222
+			0.335797 5.962567 -61.182194
+			1.466209 5.619660 -61.182194
+			1.466209 5.619660 -61.182194
+			0.335797 5.962567 -61.182194
+			1.500074 11.815786 -60.296947
+			1.500074 11.815786 -60.296947
+			3.750021 11.133273 -60.296947
+			1.466209 5.619660 -61.182194
+			3.750021 11.133273 -60.296947
+			1.500074 11.815786 -60.296947
+			2.641817 17.555718 -58.831001
+			2.641817 17.555718 -58.831001
+			5.989631 16.540169 -58.831001
+			3.750021 11.133273 -60.296947
+			5.989631 16.540169 -58.831001
+			2.641817 17.555718 -58.831001
+			3.750029 23.127079 -56.798492
+			3.750029 23.127079 -56.798492
+			8.163468 21.788281 -56.798492
+			5.989631 16.540169 -58.831001
+			8.163468 21.788281 -56.798492
+			3.750029 23.127079 -56.798492
+			4.814040 28.476227 -54.218979
+			4.814040 28.476227 -54.218979
+			10.250602 26.827065 -54.218979
+			8.163468 21.788281 -56.798492
+			10.250602 26.827065 -54.218979
+			4.814040 28.476227 -54.218979
+			5.823601 33.551636 -51.117298
+			5.823601 33.551636 -51.117298
+			12.230929 31.607998 -51.117298
+			10.250602 26.827065 -54.218979
+			12.230929 31.607998 -51.117298
+			5.823601 33.551636 -51.117298
+			6.768989 38.304425 -47.523327
+			6.768989 38.304425 -47.523327
+			14.085375 36.085026 -47.523327
+			12.230929 31.607998 -51.117298
+			14.085375 36.085026 -47.523327
+			6.768989 38.304425 -47.523327
+			7.641101 42.688832 -43.471684
+			7.641101 42.688832 -43.471684
+			15.796085 40.215046 -43.471684
+			14.085375 36.085026 -47.523327
+			15.796085 40.215046 -43.471684
+			7.641101 42.688832 -43.471684
+			8.431536 46.662629 -39.001392
+			8.431536 46.662629 -39.001392
+			17.346578 43.958287 -39.001392
+			15.796085 40.215046 -43.471684
+			17.346578 43.958287 -39.001392
+			8.431536 46.662629 -39.001392
+			9.132685 50.187539 -34.155491
+			9.132685 50.187539 -34.155491
+			18.721933 47.278675 -34.155491
+			17.346578 43.958287 -39.001392
+			18.721933 47.278675 -34.155491
+			9.132685 50.187539 -34.155491
+			9.737796 53.229622 -28.980648
+			9.737796 53.229622 -28.980648
+			19.908897 50.144253 -28.980648
+			18.721933 47.278675 -34.155491
+			19.908897 50.144253 -28.980648
+			9.737796 53.229622 -28.980648
+			10.241033 55.759571 -23.526714
+			10.241033 55.759571 -23.526714
+			20.896033 52.527413 -23.526714
+			19.908897 50.144253 -28.980648
+			20.896033 52.527413 -23.526714
+			10.241033 55.759571 -23.526714
+			10.637560 57.753041 -17.846201
+			10.637560 57.753041 -17.846201
+			21.673846 54.405224 -17.846201
+			20.896033 52.527413 -23.526714
+			21.673846 54.405224 -17.846201
+			10.637560 57.753041 -17.846201
+			10.923550 59.190819 -11.993814
+			10.923550 59.190819 -11.993814
+			22.234840 55.759587 -11.993814
+			21.673846 54.405224 -17.846201
+			22.234840 55.759587 -11.993814
+			10.923550 59.190819 -11.993814
+			11.096260 60.059071 -6.025925
+			11.096260 60.059071 -6.025925
+			22.573617 56.577450 -6.025925
+			22.234840 55.759587 -11.993814
+			22.573617 56.577450 -6.025925
+			11.096260 60.059071 -6.025925
+			11.154010 60.349408 0.000001
+			11.154010 60.349408 0.000001
+			22.686902 56.850941 0.000001
+			22.573617 56.577450 -6.025925
+			22.686902 56.850941 0.000001
+			11.154010 60.349408 0.000001
+			11.096260 60.059071 6.025923
+			11.096260 60.059071 6.025923
+			22.573617 56.577450 6.025923
+			22.686902 56.850941 0.000001
+			22.573617 56.577450 6.025923
+			11.096260 60.059071 6.025923
+			10.923553 59.190827 11.993812
+			10.923553 59.190827 11.993812
+			22.234843 55.759587 11.993812
+			22.573617 56.577450 6.025923
+			22.234843 55.759587 11.993812
+			10.923553 59.190827 11.993812
+			10.637560 57.753048 17.846195
+			10.637560 57.753048 17.846195
+			21.673848 54.405236 17.846195
+			22.234843 55.759587 11.993812
+			21.673848 54.405236 17.846195
+			10.637560 57.753048 17.846195
+			10.241033 55.759579 23.526703
+			10.241033 55.759579 23.526703
+			20.896035 52.527428 23.526703
+			21.673848 54.405236 17.846195
+			20.896035 52.527428 23.526703
+			10.241033 55.759579 23.526703
+			9.737796 53.229634 28.980652
+			9.737796 53.229634 28.980652
+			19.908899 50.144261 28.980652
+			20.896035 52.527428 23.526703
+			19.908899 50.144261 28.980652
+			9.737796 53.229634 28.980652
+			9.132692 50.187546 34.155495
+			9.132692 50.187546 34.155495
+			18.721940 47.278683 34.155495
+			19.908899 50.144261 28.980652
+			18.721940 47.278683 34.155495
+			9.132692 50.187546 34.155495
+			8.431541 46.662648 39.001392
+			8.431541 46.662648 39.001392
+			17.346587 43.958298 39.001392
+			18.721940 47.278683 34.155495
+			17.346587 43.958298 39.001392
+			8.431541 46.662648 39.001392
+			7.641107 42.688858 43.471687
+			7.641107 42.688858 43.471687
+			15.796092 40.215069 43.471687
+			17.346587 43.958298 39.001392
+			15.796092 40.215069 43.471687
+			7.641107 42.688858 43.471687
+			6.768995 38.304451 47.523331
+			6.768995 38.304451 47.523331
+			14.085385 36.085053 47.523331
+			15.796092 40.215069 43.471687
+			14.085385 36.085053 47.523331
+			6.768995 38.304451 47.523331
+			5.823608 33.551667 51.117294
+			5.823608 33.551667 51.117294
+			12.230939 31.608025 51.117294
+			14.085385 36.085053 47.523331
+			12.230939 31.608025 51.117294
+			5.823608 33.551667 51.117294
+			4.814048 28.476258 54.218979
+			4.814048 28.476258 54.218979
+			10.250615 26.827095 54.218979
+			12.230939 31.608025 51.117294
+			10.250615 26.827095 54.218979
+			4.814048 28.476258 54.218979
+			3.750036 23.127118 56.798492
+			3.750036 23.127118 56.798492
+			8.163484 21.788315 56.798492
+			10.250615 26.827095 54.218979
+			8.163484 21.788315 56.798492
+			3.750036 23.127118 56.798492
+			2.641826 17.555756 58.831017
+			2.641826 17.555756 58.831017
+			5.989648 16.540205 58.831017
+			8.163484 21.788315 56.798492
+			5.989648 16.540205 58.831017
+			2.641826 17.555756 58.831017
+			1.500081 11.815829 60.296959
+			1.500081 11.815829 60.296959
+			3.750037 11.133313 60.296959
+			5.989648 16.540205 58.831017
+			3.750037 11.133313 60.296959
+			1.500081 11.815829 60.296959
+			0.335805 5.962613 61.182220
+			0.335805 5.962613 61.182220
+			1.466227 5.619704 61.182220
+			3.750037 11.133313 60.296959
+			0.335805 5.962613 61.182220
+			-0.839793 0.052479 61.478241
+			1.466227 5.619704 61.182220
+			-0.839793 6.078399 61.182220
+			-0.839793 0.052479 61.478241
+			0.335805 5.962613 61.182220
+			1.500081 11.815829 60.296959
+			-0.839794 12.046286 60.296959
+			-0.839793 6.078399 61.182220
+			-0.839793 6.078399 61.182220
+			0.335805 5.962613 61.182220
+			1.500081 11.815829 60.296959
+			2.641826 17.555756 58.831017
+			-0.839793 17.898665 58.831017
+			-0.839794 12.046286 60.296959
+			-0.839794 12.046286 60.296959
+			1.500081 11.815829 60.296959
+			2.641826 17.555756 58.831017
+			3.750036 23.127118 56.798492
+			-0.839794 23.579174 56.798492
+			-0.839793 17.898665 58.831017
+			-0.839793 17.898665 58.831017
+			2.641826 17.555756 58.831017
+			3.750036 23.127118 56.798492
+			4.814048 28.476258 54.218979
+			-0.839794 29.033112 54.218979
+			-0.839794 23.579174 56.798492
+			-0.839794 23.579174 56.798492
+			3.750036 23.127118 56.798492
+			4.814048 28.476258 54.218979
+			5.823608 33.551667 51.117294
+			-0.839795 34.207951 51.117294
+			-0.839794 29.033112 54.218979
+			-0.839794 29.033112 54.218979
+			4.814048 28.476258 54.218979
+			5.823608 33.551667 51.117294
+			6.768995 38.304451 47.523331
+			-0.839796 39.053852 47.523331
+			-0.839795 34.207951 51.117294
+			-0.839795 34.207951 51.117294
+			5.823608 33.551667 51.117294
+			6.768995 38.304451 47.523331
+			7.641107 42.688858 43.471687
+			-0.839796 43.524155 43.471687
+			-0.839796 39.053852 47.523331
+			-0.839796 39.053852 47.523331
+			6.768995 38.304451 47.523331
+			7.641107 42.688858 43.471687
+			8.431541 46.662648 39.001392
+			-0.839798 47.575791 39.001392
+			-0.839796 43.524155 43.471687
+			-0.839796 43.524155 43.471687
+			7.641107 42.688858 43.471687
+			8.431541 46.662648 39.001392
+			9.132692 50.187546 34.155495
+			-0.839793 51.169751 34.155495
+			-0.839798 47.575791 39.001392
+			-0.839798 47.575791 39.001392
+			8.431541 46.662648 39.001392
+			9.132692 50.187546 34.155495
+			9.737796 53.229634 28.980652
+			-0.839796 54.271428 28.980652
+			-0.839793 51.169751 34.155495
+			-0.839793 51.169751 34.155495
+			9.132692 50.187546 34.155495
+			9.737796 53.229634 28.980652
+			10.241033 55.759579 23.526703
+			-0.839798 56.850941 23.526703
+			-0.839796 54.271428 28.980652
+			-0.839796 54.271428 28.980652
+			9.737796 53.229634 28.980652
+			10.241033 55.759579 23.526703
+			10.637560 57.753048 17.846195
+			-0.839798 58.883469 17.846195
+			-0.839798 56.850941 23.526703
+			-0.839798 56.850941 23.526703
+			10.241033 55.759579 23.526703
+			10.637560 57.753048 17.846195
+			10.923553 59.190827 11.993812
+			-0.839796 60.349411 11.993812
+			-0.839798 58.883469 17.846195
+			-0.839798 58.883469 17.846195
+			10.637560 57.753048 17.846195
+			10.923553 59.190827 11.993812
+			11.096260 60.059071 6.025923
+			-0.839793 61.234669 6.025923
+			-0.839796 60.349411 11.993812
+			-0.839796 60.349411 11.993812
+			10.923553 59.190827 11.993812
+			11.096260 60.059071 6.025923
+			11.154010 60.349408 0.000001
+			-0.839795 61.530697 0.000001
+			-0.839793 61.234669 6.025923
+			-0.839793 61.234669 6.025923
+			11.096260 60.059071 6.025923
+			11.154010 60.349408 0.000001
+			11.096260 60.059071 -6.025925
+			-0.839793 61.234669 -6.025925
+			-0.839795 61.530697 0.000001
+			-0.839795 61.530697 0.000001
+			11.154010 60.349408 0.000001
+			11.096260 60.059071 -6.025925
+			10.923550 59.190819 -11.993814
+			-0.839799 60.349408 -11.993814
+			-0.839793 61.234669 -6.025925
+			-0.839793 61.234669 -6.025925
+			11.096260 60.059071 -6.025925
+			10.923550 59.190819 -11.993814
+			10.637560 57.753041 -17.846201
+			-0.839796 58.883458 -17.846201
+			-0.839799 60.349408 -11.993814
+			-0.839799 60.349408 -11.993814
+			10.923550 59.190819 -11.993814
+			10.637560 57.753041 -17.846201
+			10.241033 55.759571 -23.526714
+			-0.839796 56.850933 -23.526714
+			-0.839796 58.883458 -17.846201
+			-0.839796 58.883458 -17.846201
+			10.637560 57.753041 -17.846201
+			10.241033 55.759571 -23.526714
+			9.737796 53.229622 -28.980648
+			-0.839796 54.271424 -28.980648
+			-0.839796 56.850933 -23.526714
+			-0.839796 56.850933 -23.526714
+			10.241033 55.759571 -23.526714
+			9.737796 53.229622 -28.980648
+			9.132685 50.187539 -34.155491
+			-0.839798 51.169743 -34.155491
+			-0.839796 54.271424 -28.980648
+			-0.839796 54.271424 -28.980648
+			9.737796 53.229622 -28.980648
+			9.132685 50.187539 -34.155491
+			8.431536 46.662629 -39.001392
+			-0.839799 47.575776 -39.001392
+			-0.839798 51.169743 -34.155491
+			-0.839798 51.169743 -34.155491
+			9.132685 50.187539 -34.155491
+			8.431536 46.662629 -39.001392
+			7.641101 42.688832 -43.471684
+			-0.839796 43.524125 -43.471684
+			-0.839799 47.575776 -39.001392
+			-0.839799 47.575776 -39.001392
+			8.431536 46.662629 -39.001392
+			7.641101 42.688832 -43.471684
+			6.768989 38.304425 -47.523327
+			-0.839796 39.053826 -47.523327
+			-0.839796 43.524125 -43.471684
+			-0.839796 43.524125 -43.471684
+			7.641101 42.688832 -43.471684
+			6.768989 38.304425 -47.523327
+			5.823601 33.551636 -51.117298
+			-0.839795 34.207920 -51.117298
+			-0.839796 39.053826 -47.523327
+			-0.839796 39.053826 -47.523327
+			6.768989 38.304425 -47.523327
+			5.823601 33.551636 -51.117298
+			4.814040 28.476227 -54.218979
+			-0.839795 29.033080 -54.218979
+			-0.839795 34.207920 -51.117298
+			-0.839795 34.207920 -51.117298
+			5.823601 33.551636 -51.117298
+			4.814040 28.476227 -54.218979
+			3.750029 23.127079 -56.798492
+			-0.839795 23.579136 -56.798492
+			-0.839795 29.033080 -54.218979
+			-0.839795 29.033080 -54.218979
+			4.814040 28.476227 -54.218979
+			3.750029 23.127079 -56.798492
+			2.641817 17.555718 -58.831001
+			-0.839794 17.898625 -58.831001
+			-0.839795 23.579136 -56.798492
+			-0.839795 23.579136 -56.798492
+			3.750029 23.127079 -56.798492
+			2.641817 17.555718 -58.831001
+			1.500074 11.815786 -60.296947
+			-0.839793 12.046242 -60.296947
+			-0.839794 17.898625 -58.831001
+			-0.839794 17.898625 -58.831001
+			2.641817 17.555718 -58.831001
+			1.500074 11.815786 -60.296947
+			0.335797 5.962567 -61.182194
+			-0.839793 6.078352 -61.182194
+			-0.839793 12.046242 -60.296947
+			-0.839793 12.046242 -60.296947
+			1.500074 11.815786 -60.296947
+			0.335797 5.962567 -61.182194
+			-0.839828 0.052444 -61.478222
+			-0.839793 6.078352 -61.182194
+			0.335797 5.962567 -61.182194
+			-0.839828 0.052444 -61.478222
+			-2.015383 5.962567 -61.182194
+			-0.839793 6.078352 -61.182194
+			-0.839793 6.078352 -61.182194
+			-2.015383 5.962567 -61.182194
+			-3.179660 11.815785 -60.296947
+			-3.179660 11.815785 -60.296947
+			-0.839793 12.046242 -60.296947
+			-0.839793 6.078352 -61.182194
+			-0.839793 12.046242 -60.296947
+			-3.179660 11.815785 -60.296947
+			-4.321405 17.555714 -58.831001
+			-4.321405 17.555714 -58.831001
+			-0.839794 17.898625 -58.831001
+			-0.839793 12.046242 -60.296947
+			-0.839794 17.898625 -58.831001
+			-4.321405 17.555714 -58.831001
+			-5.429619 23.127079 -56.798492
+			-5.429619 23.127079 -56.798492
+			-0.839795 23.579136 -56.798492
+			-0.839794 17.898625 -58.831001
+			-0.839795 23.579136 -56.798492
+			-5.429619 23.127079 -56.798492
+			-6.493630 28.476227 -54.218979
+			-6.493630 28.476227 -54.218979
+			-0.839795 29.033080 -54.218979
+			-0.839795 23.579136 -56.798492
+			-0.839795 29.033080 -54.218979
+			-6.493630 28.476227 -54.218979
+			-7.503192 33.551632 -51.117298
+			-7.503192 33.551632 -51.117298
+			-0.839795 34.207920 -51.117298
+			-0.839795 29.033080 -54.218979
+			-0.839795 34.207920 -51.117298
+			-7.503192 33.551632 -51.117298
+			-8.448580 38.304417 -47.523327
+			-8.448580 38.304417 -47.523327
+			-0.839796 39.053826 -47.523327
+			-0.839795 34.207920 -51.117298
+			-0.839796 39.053826 -47.523327
+			-8.448580 38.304417 -47.523327
+			-9.320693 42.688832 -43.471684
+			-9.320693 42.688832 -43.471684
+			-0.839796 43.524125 -43.471684
+			-0.839796 39.053826 -47.523327
+			-0.839796 43.524125 -43.471684
+			-9.320693 42.688832 -43.471684
+			-10.111134 46.662621 -39.001392
+			-10.111134 46.662621 -39.001392
+			-0.839799 47.575776 -39.001392
+			-0.839796 43.524125 -43.471684
+			-0.839799 47.575776 -39.001392
+			-10.111134 46.662621 -39.001392
+			-10.812281 50.187535 -34.155491
+			-10.812281 50.187535 -34.155491
+			-0.839798 51.169743 -34.155491
+			-0.839799 47.575776 -39.001392
+			-0.839798 51.169743 -34.155491
+			-10.812281 50.187535 -34.155491
+			-11.417388 53.229618 -28.980648
+			-11.417388 53.229618 -28.980648
+			-0.839796 54.271424 -28.980648
+			-0.839798 51.169743 -34.155491
+			-0.839796 54.271424 -28.980648
+			-11.417388 53.229618 -28.980648
+			-11.920626 55.759568 -23.526714
+			-11.920626 55.759568 -23.526714
+			-0.839796 56.850933 -23.526714
+			-0.839796 54.271424 -28.980648
+			-0.839796 56.850933 -23.526714
+			-11.920626 55.759568 -23.526714
+			-12.317152 57.753033 -17.846201
+			-12.317152 57.753033 -17.846201
+			-0.839796 58.883458 -17.846201
+			-0.839796 56.850933 -23.526714
+			-0.839796 58.883458 -17.846201
+			-12.317152 57.753033 -17.846201
+			-12.603146 59.190815 -11.993814
+			-12.603146 59.190815 -11.993814
+			-0.839799 60.349408 -11.993814
+			-0.839796 58.883458 -17.846201
+			-0.839799 60.349408 -11.993814
+			-12.603146 59.190815 -11.993814
+			-12.775847 60.059063 -6.025925
+			-12.775847 60.059063 -6.025925
+			-0.839793 61.234669 -6.025925
+			-0.839799 60.349408 -11.993814
+			-0.839793 61.234669 -6.025925
+			-12.775847 60.059063 -6.025925
+			-12.833601 60.349408 0.000001
+			-12.833601 60.349408 0.000001
+			-0.839795 61.530697 0.000001
+			-0.839793 61.234669 -6.025925
+			-0.839795 61.530697 0.000001
+			-12.833601 60.349408 0.000001
+			-12.775847 60.059063 6.025923
+			-12.775847 60.059063 6.025923
+			-0.839793 61.234669 6.025923
+			-0.839795 61.530697 0.000001
+			-0.839793 61.234669 6.025923
+			-12.775847 60.059063 6.025923
+			-12.603144 59.190819 11.993812
+			-12.603144 59.190819 11.993812
+			-0.839796 60.349411 11.993812
+			-0.839793 61.234669 6.025923
+			-0.839796 60.349411 11.993812
+			-12.603144 59.190819 11.993812
+			-12.317157 57.753048 17.846195
+			-12.317157 57.753048 17.846195
+			-0.839798 58.883469 17.846195
+			-0.839796 60.349411 11.993812
+			-0.839798 58.883469 17.846195
+			-12.317157 57.753048 17.846195
+			-11.920630 55.759579 23.526703
+			-11.920630 55.759579 23.526703
+			-0.839798 56.850941 23.526703
+			-0.839798 58.883469 17.846195
+			-0.839798 56.850941 23.526703
+			-11.920630 55.759579 23.526703
+			-11.417390 53.229634 28.980652
+			-11.417390 53.229634 28.980652
+			-0.839796 54.271428 28.980652
+			-0.839798 56.850941 23.526703
+			-0.839796 54.271428 28.980652
+			-11.417390 53.229634 28.980652
+			-10.812279 50.187542 34.155495
+			-10.812279 50.187542 34.155495
+			-0.839793 51.169751 34.155495
+			-0.839796 54.271428 28.980652
+			-0.839793 51.169751 34.155495
+			-10.812279 50.187542 34.155495
+			-10.111135 46.662640 39.001392
+			-10.111135 46.662640 39.001392
+			-0.839798 47.575791 39.001392
+			-0.839793 51.169751 34.155495
+			-0.839798 47.575791 39.001392
+			-10.111135 46.662640 39.001392
+			-9.320700 42.688858 43.471687
+			-9.320700 42.688858 43.471687
+			-0.839796 43.524155 43.471687
+			-0.839798 47.575791 39.001392
+			-0.839796 43.524155 43.471687
+			-9.320700 42.688858 43.471687
+			-8.448586 38.304451 47.523331
+			-8.448586 38.304451 47.523331
+			-0.839796 39.053852 47.523331
+			-0.839796 43.524155 43.471687
+			-0.839796 39.053852 47.523331
+			-8.448586 38.304451 47.523331
+			-7.503197 33.551663 51.117294
+			-7.503197 33.551663 51.117294
+			-0.839795 34.207951 51.117294
+			-0.839796 39.053852 47.523331
+			-0.839795 34.207951 51.117294
+			-7.503197 33.551663 51.117294
+			-6.493635 28.476254 54.218979
+			-6.493635 28.476254 54.218979
+			-0.839794 29.033112 54.218979
+			-0.839795 34.207951 51.117294
+			-0.839794 29.033112 54.218979
+			-6.493635 28.476254 54.218979
+			-5.429626 23.127116 56.798492
+			-5.429626 23.127116 56.798492
+			-0.839794 23.579174 56.798492
+			-0.839794 29.033112 54.218979
+			-0.839794 23.579174 56.798492
+			-5.429626 23.127116 56.798492
+			-4.321411 17.555756 58.831017
+			-4.321411 17.555756 58.831017
+			-0.839793 17.898665 58.831017
+			-0.839794 23.579174 56.798492
+			-0.839793 17.898665 58.831017
+			-4.321411 17.555756 58.831017
+			-3.179670 11.815828 60.296959
+			-3.179670 11.815828 60.296959
+			-0.839794 12.046286 60.296959
+			-0.839793 17.898665 58.831017
+			-0.839794 12.046286 60.296959
+			-3.179670 11.815828 60.296959
+			-2.015392 5.962613 61.182220
+			-2.015392 5.962613 61.182220
+			-0.839793 6.078399 61.182220
+			-0.839794 12.046286 60.296959
+			-2.015392 5.962613 61.182220
+			-0.839793 0.052479 61.478241
+			-0.839793 6.078399 61.182220
+			-3.145813 5.619703 61.182220
+			-0.839793 0.052479 61.478241
+			-2.015392 5.962613 61.182220
+			-3.179670 11.815828 60.296959
+			-5.429625 11.133311 60.296959
+			-3.145813 5.619703 61.182220
+			-3.145813 5.619703 61.182220
+			-2.015392 5.962613 61.182220
+			-3.179670 11.815828 60.296959
+			-4.321411 17.555756 58.831017
+			-7.669233 16.540205 58.831017
+			-5.429625 11.133311 60.296959
+			-5.429625 11.133311 60.296959
+			-3.179670 11.815828 60.296959
+			-4.321411 17.555756 58.831017
+			-5.429626 23.127116 56.798492
+			-9.843072 21.788311 56.798492
+			-7.669233 16.540205 58.831017
+			-7.669233 16.540205 58.831017
+			-4.321411 17.555756 58.831017
+			-5.429626 23.127116 56.798492
+			-6.493635 28.476254 54.218979
+			-11.930202 26.827090 54.218979
+			-9.843072 21.788311 56.798492
+			-9.843072 21.788311 56.798492
+			-5.429626 23.127116 56.798492
+			-6.493635 28.476254 54.218979
+			-7.503197 33.551663 51.117294
+			-13.910528 31.608021 51.117294
+			-11.930202 26.827090 54.218979
+			-11.930202 26.827090 54.218979
+			-6.493635 28.476254 54.218979
+			-7.503197 33.551663 51.117294
+			-8.448586 38.304451 47.523331
+			-15.764975 36.085049 47.523331
+			-13.910528 31.608021 51.117294
+			-13.910528 31.608021 51.117294
+			-7.503197 33.551663 51.117294
+			-8.448586 38.304451 47.523331
+			-9.320700 42.688858 43.471687
+			-17.475688 40.215069 43.471687
+			-15.764975 36.085049 47.523331
+			-15.764975 36.085049 47.523331
+			-8.448586 38.304451 47.523331
+			-9.320700 42.688858 43.471687
+			-10.111135 46.662640 39.001392
+			-19.026183 43.958287 39.001392
+			-17.475688 40.215069 43.471687
+			-17.475688 40.215069 43.471687
+			-9.320700 42.688858 43.471687
+			-10.111135 46.662640 39.001392
+			-10.812279 50.187542 34.155495
+			-20.401524 47.278675 34.155495
+			-19.026183 43.958287 39.001392
+			-19.026183 43.958287 39.001392
+			-10.111135 46.662640 39.001392
+			-10.812279 50.187542 34.155495
+			-11.417390 53.229634 28.980652
+			-21.588488 50.144253 28.980652
+			-20.401524 47.278675 34.155495
+			-20.401524 47.278675 34.155495
+			-10.812279 50.187542 34.155495
+			-11.417390 53.229634 28.980652
+			-11.920630 55.759579 23.526703
+			-22.575631 52.527413 23.526703
+			-21.588488 50.144253 28.980652
+			-21.588488 50.144253 28.980652
+			-11.417390 53.229634 28.980652
+			-11.920630 55.759579 23.526703
+			-12.317157 57.753048 17.846195
+			-23.353446 54.405224 17.846195
+			-22.575631 52.527413 23.526703
+			-22.575631 52.527413 23.526703
+			-11.920630 55.759579 23.526703
+			-12.317157 57.753048 17.846195
+			-12.603144 59.190819 11.993812
+			-23.914435 55.759579 11.993812
+			-23.353446 54.405224 17.846195
+			-23.353446 54.405224 17.846195
+			-12.317157 57.753048 17.846195
+			-12.603144 59.190819 11.993812
+			-12.775847 60.059063 6.025923
+			-24.253203 56.577443 6.025923
+			-23.914435 55.759579 11.993812
+			-23.914435 55.759579 11.993812
+			-12.603144 59.190819 11.993812
+			-12.775847 60.059063 6.025923
+			-12.833601 60.349408 0.000001
+			-24.366490 56.850937 0.000001
+			-24.253203 56.577443 6.025923
+			-24.253203 56.577443 6.025923
+			-12.775847 60.059063 6.025923
+			-12.833601 60.349408 0.000001
+			-12.775847 60.059063 -6.025925
+			-24.253203 56.577443 -6.025925
+			-24.366490 56.850937 0.000001
+			-24.366490 56.850937 0.000001
+			-12.833601 60.349408 0.000001
+			-12.775847 60.059063 -6.025925
+			-12.603146 59.190815 -11.993814
+			-23.914435 55.759571 -11.993814
+			-24.253203 56.577443 -6.025925
+			-24.253203 56.577443 -6.025925
+			-12.775847 60.059063 -6.025925
+			-12.603146 59.190815 -11.993814
+			-12.317152 57.753033 -17.846201
+			-23.353440 54.405217 -17.846201
+			-23.914435 55.759571 -11.993814
+			-23.914435 55.759571 -11.993814
+			-12.603146 59.190815 -11.993814
+			-12.317152 57.753033 -17.846201
+			-11.920626 55.759568 -23.526714
+			-22.575625 52.527409 -23.526714
+			-23.353440 54.405217 -17.846201
+			-23.353440 54.405217 -17.846201
+			-12.317152 57.753033 -17.846201
+			-11.920626 55.759568 -23.526714
+			-11.417388 53.229618 -28.980648
+			-21.588490 50.144249 -28.980648
+			-22.575625 52.527409 -23.526714
+			-22.575625 52.527409 -23.526714
+			-11.920626 55.759568 -23.526714
+			-11.417388 53.229618 -28.980648
+			-10.812281 50.187535 -34.155491
+			-20.401526 47.278664 -34.155491
+			-21.588490 50.144249 -28.980648
+			-21.588490 50.144249 -28.980648
+			-11.417388 53.229618 -28.980648
+			-10.812281 50.187535 -34.155491
+			-10.111134 46.662621 -39.001392
+			-19.026175 43.958268 -39.001392
+			-20.401526 47.278664 -34.155491
+			-20.401526 47.278664 -34.155491
+			-10.812281 50.187535 -34.155491
+			-10.111134 46.662621 -39.001392
+			-9.320693 42.688832 -43.471684
+			-17.475674 40.215039 -43.471684
+			-19.026175 43.958268 -39.001392
+			-19.026175 43.958268 -39.001392
+			-10.111134 46.662621 -39.001392
+			-9.320693 42.688832 -43.471684
+			-8.448580 38.304417 -47.523327
+			-15.764963 36.085022 -47.523327
+			-17.475674 40.215039 -43.471684
+			-17.475674 40.215039 -43.471684
+			-9.320693 42.688832 -43.471684
+			-8.448580 38.304417 -47.523327
+			-7.503192 33.551632 -51.117298
+			-13.910518 31.607991 -51.117298
+			-15.764963 36.085022 -47.523327
+			-15.764963 36.085022 -47.523327
+			-8.448580 38.304417 -47.523327
+			-7.503192 33.551632 -51.117298
+			-6.493630 28.476227 -54.218979
+			-11.930191 26.827061 -54.218979
+			-13.910518 31.607991 -51.117298
+			-13.910518 31.607991 -51.117298
+			-7.503192 33.551632 -51.117298
+			-6.493630 28.476227 -54.218979
+			-5.429619 23.127079 -56.798492
+			-9.843058 21.788275 -56.798492
+			-11.930191 26.827061 -54.218979
+			-11.930191 26.827061 -54.218979
+			-6.493630 28.476227 -54.218979
+			-5.429619 23.127079 -56.798492
+			-4.321405 17.555714 -58.831001
+			-7.669218 16.540167 -58.831001
+			-9.843058 21.788275 -56.798492
+			-9.843058 21.788275 -56.798492
+			-5.429619 23.127079 -56.798492
+			-4.321405 17.555714 -58.831001
+			-3.179660 11.815785 -60.296947
+			-5.429608 11.133271 -60.296947
+			-7.669218 16.540167 -58.831001
+			-7.669218 16.540167 -58.831001
+			-4.321405 17.555714 -58.831001
+			-3.179660 11.815785 -60.296947
+			-2.015383 5.962567 -61.182194
+			-3.145795 5.619660 -61.182194
+			-5.429608 11.133271 -60.296947
+			-5.429608 11.133271 -60.296947
+			-3.179660 11.815785 -60.296947
+			-2.015383 5.962567 -61.182194
+			-0.839828 0.052444 -61.478222
+			-3.145795 5.619660 -61.182194
+			-2.015383 5.962567 -61.182194
+			-0.839828 0.052444 -61.478222
+			-4.187589 5.062809 -61.182194
+			-3.145795 5.619660 -61.182194
+			-3.145795 5.619660 -61.182194
+			-4.187589 5.062809 -61.182194
+			-7.503170 10.024928 -60.296947
+			-7.503170 10.024928 -60.296947
+			-5.429608 11.133271 -60.296947
+			-3.145795 5.619660 -61.182194
+			-5.429608 11.133271 -60.296947
+			-7.503170 10.024928 -60.296947
+			-10.754581 14.891007 -58.831001
+			-10.754581 14.891007 -58.831001
+			-7.669218 16.540167 -58.831001
+			-5.429608 11.133271 -60.296947
+			-7.669218 16.540167 -58.831001
+			-10.754581 14.891007 -58.831001
+			-13.910507 19.614178 -56.798492
+			-13.910507 19.614178 -56.798492
+			-9.843058 21.788275 -56.798492
+			-7.669218 16.540167 -58.831001
+			-9.843058 21.788275 -56.798492
+			-13.910507 19.614178 -56.798492
+			-16.940554 24.148964 -54.218979
+			-16.940554 24.148964 -54.218979
+			-11.930191 26.827061 -54.218979
+			-9.843058 21.788275 -56.798492
+			-11.930191 26.827061 -54.218979
+			-16.940554 24.148964 -54.218979
+			-19.815541 28.451685 -51.117298
+			-19.815541 28.451685 -51.117298
+			-13.910518 31.607991 -51.117298
+			-11.930191 26.827061 -54.218979
+			-13.910518 31.607991 -51.117298
+			-19.815541 28.451685 -51.117298
+			-22.507781 32.480908 -47.523327
+			-22.507781 32.480908 -47.523327
+			-15.764963 36.085022 -47.523327
+			-13.910518 31.607991 -51.117298
+			-15.764963 36.085022 -47.523327
+			-22.507781 32.480908 -47.523327
+			-24.991345 36.197823 -43.471684
+			-24.991345 36.197823 -43.471684
+			-17.475674 40.215039 -43.471684
+			-15.764963 36.085022 -47.523327
+			-17.475674 40.215039 -43.471684
+			-24.991345 36.197823 -43.471684
+			-27.242326 39.566643 -39.001392
+			-27.242326 39.566643 -39.001392
+			-19.026175 43.958268 -39.001392
+			-17.475674 40.215039 -43.471684
+			-19.026175 43.958268 -39.001392
+			-27.242326 39.566643 -39.001392
+			-29.239024 42.554921 -34.155491
+			-29.239024 42.554921 -34.155491
+			-20.401526 47.278664 -34.155491
+			-19.026175 43.958268 -39.001392
+			-20.401526 47.278664 -34.155491
+			-29.239024 42.554921 -34.155491
+			-30.962226 45.133877 -28.980648
+			-30.962226 45.133877 -28.980648
+			-21.588490 50.144249 -28.980648
+			-20.401526 47.278664 -34.155491
+			-21.588490 50.144249 -28.980648
+			-30.962226 45.133877 -28.980648
+			-32.395324 47.278664 -23.526714
+			-32.395324 47.278664 -23.526714
+			-22.575625 52.527409 -23.526714
+			-21.588490 50.144249 -28.980648
+			-22.575625 52.527409 -23.526714
+			-32.395324 47.278664 -23.526714
+			-33.524535 48.968651 -17.846201
+			-33.524535 48.968651 -17.846201
+			-23.353440 54.405217 -17.846201
+			-22.575625 52.527409 -23.526714
+			-23.353440 54.405217 -17.846201
+			-33.524535 48.968651 -17.846201
+			-34.338977 50.187535 -11.993814
+			-34.338977 50.187535 -11.993814
+			-23.914435 55.759571 -11.993814
+			-23.353440 54.405217 -17.846201
+			-23.914435 55.759571 -11.993814
+			-34.338977 50.187535 -11.993814
+			-34.830794 50.923607 -6.025925
+			-34.830794 50.923607 -6.025925
+			-24.253203 56.577443 -6.025925
+			-23.914435 55.759571 -11.993814
+			-24.253203 56.577443 -6.025925
+			-34.830794 50.923607 -6.025925
+			-34.995261 51.169743 0.000001
+			-34.995261 51.169743 0.000001
+			-24.366490 56.850937 0.000001
+			-24.253203 56.577443 -6.025925
+			-24.366490 56.850937 0.000001
+			-34.995261 51.169743 0.000001
+			-34.830794 50.923607 6.025923
+			-34.830794 50.923607 6.025923
+			-24.253203 56.577443 6.025923
+			-24.366490 56.850937 0.000001
+			-24.253203 56.577443 6.025923
+			-34.830794 50.923607 6.025923
+			-34.338977 50.187542 11.993812
+			-34.338977 50.187542 11.993812
+			-23.914435 55.759579 11.993812
+			-24.253203 56.577443 6.025923
+			-23.914435 55.759579 11.993812
+			-34.338977 50.187542 11.993812
+			-33.524543 48.968651 17.846195
+			-33.524543 48.968651 17.846195
+			-23.353446 54.405224 17.846195
+			-23.914435 55.759579 11.993812
+			-23.353446 54.405224 17.846195
+			-33.524543 48.968651 17.846195
+			-32.395333 47.278672 23.526703
+			-32.395333 47.278672 23.526703
+			-22.575631 52.527413 23.526703
+			-23.353446 54.405224 17.846195
+			-22.575631 52.527413 23.526703
+			-32.395333 47.278672 23.526703
+			-30.962230 45.133889 28.980652
+			-30.962230 45.133889 28.980652
+			-21.588488 50.144253 28.980652
+			-22.575631 52.527413 23.526703
+			-21.588488 50.144253 28.980652
+			-30.962230 45.133889 28.980652
+			-29.239024 42.554932 34.155495
+			-29.239024 42.554932 34.155495
+			-20.401524 47.278675 34.155495
+			-21.588488 50.144253 28.980652
+			-20.401524 47.278675 34.155495
+			-29.239024 42.554932 34.155495
+			-27.242331 39.566662 39.001392
+			-27.242331 39.566662 39.001392
+			-19.026183 43.958287 39.001392
+			-20.401524 47.278675 34.155495
+			-19.026183 43.958287 39.001392
+			-27.242331 39.566662 39.001392
+			-24.991364 36.197853 43.471687
+			-24.991364 36.197853 43.471687
+			-17.475688 40.215069 43.471687
+			-19.026183 43.958287 39.001392
+			-17.475688 40.215069 43.471687
+			-24.991364 36.197853 43.471687
+			-22.507798 32.480935 47.523331
+			-22.507798 32.480935 47.523331
+			-15.764975 36.085049 47.523331
+			-17.475688 40.215069 43.471687
+			-15.764975 36.085049 47.523331
+			-22.507798 32.480935 47.523331
+			-19.815558 28.451712 51.117294
+			-19.815558 28.451712 51.117294
+			-13.910528 31.608021 51.117294
+			-15.764975 36.085049 47.523331
+			-13.910528 31.608021 51.117294
+			-19.815558 28.451712 51.117294
+			-16.940570 24.148993 54.218979
+			-16.940570 24.148993 54.218979
+			-11.930202 26.827090 54.218979
+			-13.910528 31.608021 51.117294
+			-11.930202 26.827090 54.218979
+			-16.940570 24.148993 54.218979
+			-13.910527 19.614209 56.798492
+			-13.910527 19.614209 56.798492
+			-9.843072 21.788311 56.798492
+			-11.930202 26.827090 54.218979
+			-9.843072 21.788311 56.798492
+			-13.910527 19.614209 56.798492
+			-10.754603 14.891040 58.831017
+			-10.754603 14.891040 58.831017
+			-7.669233 16.540205 58.831017
+			-9.843072 21.788311 56.798492
+			-7.669233 16.540205 58.831017
+			-10.754603 14.891040 58.831017
+			-7.503196 10.024964 60.296959
+			-7.503196 10.024964 60.296959
+			-5.429625 11.133311 60.296959
+			-7.669233 16.540205 58.831017
+			-5.429625 11.133311 60.296959
+			-7.503196 10.024964 60.296959
+			-4.187615 5.062848 61.182220
+			-4.187615 5.062848 61.182220
+			-3.145813 5.619703 61.182220
+			-5.429625 11.133311 60.296959
+			-4.187615 5.062848 61.182220
+			-0.839793 0.052479 61.478241
+			-3.145813 5.619703 61.182220
+			-5.100762 4.313447 61.182220
+			-0.839793 0.052479 61.478241
+			-4.187615 5.062848 61.182220
+			-7.503196 10.024964 60.296959
+			-9.320696 8.533380 60.296959
+			-5.100762 4.313447 61.182220
+			-5.100762 4.313447 61.182220
+			-4.187615 5.062848 61.182220
+			-7.503196 10.024964 60.296959
+			-10.754603 14.891040 58.831017
+			-13.458953 12.671639 58.831017
+			-9.320696 8.533380 60.296959
+			-9.320696 8.533380 60.296959
+			-7.503196 10.024964 60.296959
+			-10.754603 14.891040 58.831017
+			-13.910527 19.614209 56.798492
+			-17.475680 16.688363 56.798492
+			-13.458953 12.671639 58.831017
+			-13.458953 12.671639 58.831017
+			-10.754603 14.891040 58.831017
+			-13.910527 19.614209 56.798492
+			-16.940570 24.148993 54.218979
+			-21.332196 20.544880 54.218979
+			-17.475680 16.688363 56.798492
+			-17.475680 16.688363 56.798492
+			-13.910527 19.614209 56.798492
+			-16.940570 24.148993 54.218979
+			-19.815558 28.451712 51.117294
+			-24.991362 24.204039 51.117294
+			-21.332196 20.544880 54.218979
+			-21.332196 20.544880 54.218979
+			-16.940570 24.148993 54.218979
+			-19.815558 28.451712 51.117294
+			-22.507798 32.480935 47.523331
+			-28.417929 27.630608 47.523331
+			-24.991362 24.204039 51.117294
+			-24.991362 24.204039 51.117294
+			-19.815558 28.451712 51.117294
+			-22.507798 32.480935 47.523331
+			-24.991364 36.197853 43.471687
+			-31.578910 30.791588 43.471687
+			-28.417929 27.630608 47.523331
+			-28.417929 27.630608 47.523331
+			-22.507798 32.480935 47.523331
+			-24.991364 36.197853 43.471687
+			-27.242331 39.566662 39.001392
+			-34.443847 33.656529 39.001392
+			-31.578910 30.791588 43.471687
+			-31.578910 30.791588 43.471687
+			-24.991364 36.197853 43.471687
+			-27.242331 39.566662 39.001392
+			-29.239024 42.554932 34.155495
+			-36.985156 36.197842 34.155495
+			-34.443847 33.656529 39.001392
+			-34.443847 33.656529 39.001392
+			-27.242331 39.566662 39.001392
+			-29.239024 42.554932 34.155495
+			-30.962230 45.133889 28.980652
+			-39.178378 38.391064 28.980652
+			-36.985156 36.197842 34.155495
+			-36.985156 36.197842 34.155495
+			-29.239024 42.554932 34.155495
+			-30.962230 45.133889 28.980652
+			-32.395333 47.278672 23.526703
+			-41.002372 40.215050 23.526703
+			-39.178378 38.391064 28.980652
+			-39.178378 38.391064 28.980652
+			-30.962230 45.133889 28.980652
+			-32.395333 47.278672 23.526703
+			-33.524543 48.968651 17.846195
+			-42.439582 41.652264 17.846195
+			-41.002372 40.215050 23.526703
+			-41.002372 40.215050 23.526703
+			-32.395333 47.278672 23.526703
+			-33.524543 48.968651 17.846195
+			-34.338977 50.187542 11.993812
+			-43.476161 42.688843 11.993812
+			-42.439582 41.652264 17.846195
+			-42.439582 41.652264 17.846195
+			-33.524543 48.968651 17.846195
+			-34.338977 50.187542 11.993812
+			-34.830794 50.923607 6.025923
+			-44.102130 43.314816 6.025923
+			-43.476161 42.688843 11.993812
+			-43.476161 42.688843 11.993812
+			-34.338977 50.187542 11.993812
+			-34.830794 50.923607 6.025923
+			-34.995261 51.169743 0.000001
+			-44.311457 43.524136 0.000001
+			-44.102130 43.314816 6.025923
+			-44.102130 43.314816 6.025923
+			-34.830794 50.923607 6.025923
+			-34.995261 51.169743 0.000001
+			-34.830794 50.923607 -6.025925
+			-44.102130 43.314816 -6.025925
+			-44.311457 43.524136 0.000001
+			-44.311457 43.524136 0.000001
+			-34.995261 51.169743 0.000001
+			-34.830794 50.923607 -6.025925
+			-34.338977 50.187535 -11.993814
+			-43.476161 42.688832 -11.993814
+			-44.102130 43.314816 -6.025925
+			-44.102130 43.314816 -6.025925
+			-34.830794 50.923607 -6.025925
+			-34.338977 50.187535 -11.993814
+			-33.524535 48.968651 -17.846201
+			-42.439578 41.652264 -17.846201
+			-43.476161 42.688832 -11.993814
+			-43.476161 42.688832 -11.993814
+			-34.338977 50.187535 -11.993814
+			-33.524535 48.968651 -17.846201
+			-32.395324 47.278664 -23.526714
+			-41.002364 40.215050 -23.526714
+			-42.439578 41.652264 -17.846201
+			-42.439578 41.652264 -17.846201
+			-33.524535 48.968651 -17.846201
+			-32.395324 47.278664 -23.526714
+			-30.962226 45.133877 -28.980648
+			-39.178374 38.391056 -28.980648
+			-41.002364 40.215050 -23.526714
+			-41.002364 40.215050 -23.526714
+			-32.395324 47.278664 -23.526714
+			-30.962226 45.133877 -28.980648
+			-29.239024 42.554921 -34.155491
+			-36.985156 36.197831 -34.155491
+			-39.178374 38.391056 -28.980648
+			-39.178374 38.391056 -28.980648
+			-30.962226 45.133877 -28.980648
+			-29.239024 42.554921 -34.155491
+			-27.242326 39.566643 -39.001392
+			-34.443839 33.656510 -39.001392
+			-36.985156 36.197831 -34.155491
+			-36.985156 36.197831 -34.155491
+			-29.239024 42.554921 -34.155491
+			-27.242326 39.566643 -39.001392
+			-24.991345 36.197823 -43.471684
+			-31.578887 30.791565 -43.471684
+			-34.443839 33.656510 -39.001392
+			-34.443839 33.656510 -39.001392
+			-27.242326 39.566643 -39.001392
+			-24.991345 36.197823 -43.471684
+			-22.507781 32.480908 -47.523327
+			-28.417908 27.630587 -47.523327
+			-31.578887 30.791565 -43.471684
+			-31.578887 30.791565 -43.471684
+			-24.991345 36.197823 -43.471684
+			-22.507781 32.480908 -47.523327
+			-19.815541 28.451685 -51.117298
+			-24.991340 24.204016 -51.117298
+			-28.417908 27.630587 -47.523327
+			-28.417908 27.630587 -47.523327
+			-22.507781 32.480908 -47.523327
+			-19.815541 28.451685 -51.117298
+			-16.940554 24.148964 -54.218979
+			-21.332171 20.544854 -54.218979
+			-24.991340 24.204016 -51.117298
+			-24.991340 24.204016 -51.117298
+			-19.815541 28.451685 -51.117298
+			-16.940554 24.148964 -54.218979
+			-13.910507 19.614178 -56.798492
+			-17.475655 16.688336 -56.798492
+			-21.332171 20.544854 -54.218979
+			-21.332171 20.544854 -54.218979
+			-16.940554 24.148964 -54.218979
+			-13.910507 19.614178 -56.798492
+			-10.754581 14.891007 -58.831001
+			-13.458924 12.671608 -58.831001
+			-17.475655 16.688336 -56.798492
+			-17.475655 16.688336 -56.798492
+			-13.910507 19.614178 -56.798492
+			-10.754581 14.891007 -58.831001
+			-7.503170 10.024928 -60.296947
+			-9.320664 8.533349 -60.296947
+			-13.458924 12.671608 -58.831001
+			-13.458924 12.671608 -58.831001
+			-10.754581 14.891007 -58.831001
+			-7.503170 10.024928 -60.296947
+			-4.187589 5.062809 -61.182194
+			-5.100728 4.313414 -61.182194
+			-9.320664 8.533349 -60.296947
+			-9.320664 8.533349 -60.296947
+			-7.503170 10.024928 -60.296947
+			-4.187589 5.062809 -61.182194
+			-0.839828 0.052444 -61.478222
+			-5.100728 4.313414 -61.182194
+			-4.187589 5.062809 -61.182194
+			-0.839828 0.052444 -61.478222
+			-5.850123 3.400274 -61.182194
+			-5.100728 4.313414 -61.182194
+			-5.100728 4.313414 -61.182194
+			-5.850123 3.400274 -61.182194
+			-10.812242 6.715855 -60.296947
+			-10.812242 6.715855 -60.296947
+			-9.320664 8.533349 -60.296947
+			-5.100728 4.313414 -61.182194
+			-9.320664 8.533349 -60.296947
+			-10.812242 6.715855 -60.296947
+			-15.678320 9.967266 -58.831001
+			-15.678320 9.967266 -58.831001
+			-13.458924 12.671608 -58.831001
+			-9.320664 8.533349 -60.296947
+			-13.458924 12.671608 -58.831001
+			-15.678320 9.967266 -58.831001
+			-20.401500 13.123188 -56.798492
+			-20.401500 13.123188 -56.798492
+			-17.475655 16.688336 -56.798492
+			-13.458924 12.671608 -58.831001
+			-17.475655 16.688336 -56.798492
+			-20.401500 13.123188 -56.798492
+			-24.936282 16.153233 -54.218979
+			-24.936282 16.153233 -54.218979
+			-21.332171 20.544854 -54.218979
+			-17.475655 16.688336 -56.798492
+			-21.332171 20.544854 -54.218979
+			-24.936282 16.153233 -54.218979
+			-29.239005 19.028220 -51.117298
+			-29.239005 19.028220 -51.117298
+			-24.991340 24.204016 -51.117298
+			-21.332171 20.544854 -54.218979
+			-24.991340 24.204016 -51.117298
+			-29.239005 19.028220 -51.117298
+			-33.268222 21.720456 -47.523327
+			-33.268222 21.720456 -47.523327
+			-28.417908 27.630587 -47.523327
+			-24.991340 24.204016 -51.117298
+			-28.417908 27.630587 -47.523327
+			-33.268222 21.720456 -47.523327
+			-36.985141 24.204024 -43.471684
+			-36.985141 24.204024 -43.471684
+			-31.578887 30.791565 -43.471684
+			-28.417908 27.630587 -47.523327
+			-31.578887 30.791565 -43.471684
+			-36.985141 24.204024 -43.471684
+			-40.353968 26.454987 -39.001392
+			-40.353968 26.454987 -39.001392
+			-34.443839 33.656510 -39.001392
+			-31.578887 30.791565 -43.471684
+			-34.443839 33.656510 -39.001392
+			-40.353968 26.454987 -39.001392
+			-43.342238 28.451697 -34.155491
+			-43.342238 28.451697 -34.155491
+			-36.985156 36.197831 -34.155491
+			-34.443839 33.656510 -39.001392
+			-36.985156 36.197831 -34.155491
+			-43.342238 28.451697 -34.155491
+			-45.921195 30.174900 -28.980648
+			-45.921195 30.174900 -28.980648
+			-39.178374 38.391056 -28.980648
+			-36.985156 36.197831 -34.155491
+			-39.178374 38.391056 -28.980648
+			-45.921195 30.174900 -28.980648
+			-48.065982 31.608004 -23.526714
+			-48.065982 31.608004 -23.526714
+			-41.002364 40.215050 -23.526714
+			-39.178374 38.391056 -28.980648
+			-41.002364 40.215050 -23.526714
+			-48.065982 31.608004 -23.526714
+			-49.755961 32.737217 -17.846201
+			-49.755961 32.737217 -17.846201
+			-42.439578 41.652264 -17.846201
+			-41.002364 40.215050 -23.526714
+			-42.439578 41.652264 -17.846201
+			-49.755961 32.737217 -17.846201
+			-50.974852 33.551651 -11.993814
+			-50.974852 33.551651 -11.993814
+			-43.476161 42.688832 -11.993814
+			-42.439578 41.652264 -17.846201
+			-43.476161 42.688832 -11.993814
+			-50.974852 33.551651 -11.993814
+			-51.710917 34.043477 -6.025925
+			-51.710917 34.043477 -6.025925
+			-44.102130 43.314816 -6.025925
+			-43.476161 42.688832 -11.993814
+			-44.102130 43.314816 -6.025925
+			-51.710917 34.043477 -6.025925
+			-51.957061 34.207940 0.000001
+			-51.957061 34.207940 0.000001
+			-44.311457 43.524136 0.000001
+			-44.102130 43.314816 -6.025925
+			-44.311457 43.524136 0.000001
+			-51.957061 34.207940 0.000001
+			-51.710917 34.043477 6.025923
+			-51.710917 34.043477 6.025923
+			-44.102130 43.314816 6.025923
+			-44.311457 43.524136 0.000001
+			-44.102130 43.314816 6.025923
+			-51.710917 34.043477 6.025923
+			-50.974852 33.551655 11.993812
+			-50.974852 33.551655 11.993812
+			-43.476161 42.688843 11.993812
+			-44.102130 43.314816 6.025923
+			-43.476161 42.688843 11.993812
+			-50.974852 33.551655 11.993812
+			-49.755973 32.737217 17.846195
+			-49.755973 32.737217 17.846195
+			-42.439582 41.652264 17.846195
+			-43.476161 42.688843 11.993812
+			-42.439582 41.652264 17.846195
+			-49.755973 32.737217 17.846195
+			-48.065989 31.608004 23.526703
+			-48.065989 31.608004 23.526703
+			-41.002372 40.215050 23.526703
+			-42.439582 41.652264 17.846195
+			-41.002372 40.215050 23.526703
+			-48.065989 31.608004 23.526703
+			-45.921199 30.174908 28.980652
+			-45.921199 30.174908 28.980652
+			-39.178378 38.391064 28.980652
+			-41.002372 40.215050 23.526703
+			-39.178378 38.391064 28.980652
+			-45.921199 30.174908 28.980652
+			-43.342242 28.451706 34.155495
+			-43.342242 28.451706 34.155495
+			-36.985156 36.197842 34.155495
+			-39.178378 38.391064 28.980652
+			-36.985156 36.197842 34.155495
+			-43.342242 28.451706 34.155495
+			-40.353976 26.455004 39.001392
+			-40.353976 26.455004 39.001392
+			-34.443847 33.656529 39.001392
+			-36.985156 36.197842 34.155495
+			-34.443847 33.656529 39.001392
+			-40.353976 26.455004 39.001392
+			-36.985167 24.204041 43.471687
+			-36.985167 24.204041 43.471687
+			-31.578910 30.791588 43.471687
+			-34.443847 33.656529 39.001392
+			-31.578910 30.791588 43.471687
+			-36.985167 24.204041 43.471687
+			-33.268248 21.720475 47.523331
+			-33.268248 21.720475 47.523331
+			-28.417929 27.630608 47.523331
+			-31.578910 30.791588 43.471687
+			-28.417929 27.630608 47.523331
+			-33.268248 21.720475 47.523331
+			-29.239028 19.028233 51.117294
+			-29.239028 19.028233 51.117294
+			-24.991362 24.204039 51.117294
+			-28.417929 27.630608 47.523331
+			-24.991362 24.204039 51.117294
+			-29.239028 19.028233 51.117294
+			-24.936309 16.153254 54.218979
+			-24.936309 16.153254 54.218979
+			-21.332196 20.544880 54.218979
+			-24.991362 24.204039 51.117294
+			-21.332196 20.544880 54.218979
+			-24.936309 16.153254 54.218979
+			-20.401526 13.123208 56.798492
+			-20.401526 13.123208 56.798492
+			-17.475680 16.688363 56.798492
+			-21.332196 20.544880 54.218979
+			-17.475680 16.688363 56.798492
+			-20.401526 13.123208 56.798492
+			-15.678355 9.967288 58.831017
+			-15.678355 9.967288 58.831017
+			-13.458953 12.671639 58.831017
+			-17.475680 16.688363 56.798492
+			-13.458953 12.671639 58.831017
+			-15.678355 9.967288 58.831017
+			-10.812279 6.715879 60.296959
+			-10.812279 6.715879 60.296959
+			-9.320696 8.533380 60.296959
+			-13.458953 12.671639 58.831017
+			-9.320696 8.533380 60.296959
+			-10.812279 6.715879 60.296959
+			-5.850162 3.400300 61.182220
+			-5.850162 3.400300 61.182220
+			-5.100762 4.313447 61.182220
+			-9.320696 8.533380 60.296959
+			-5.850162 3.400300 61.182220
+			-0.839793 0.052479 61.478241
+			-5.100762 4.313447 61.182220
+			-6.407017 2.358498 61.182220
+			-0.839793 0.052479 61.478241
+			-5.850162 3.400300 61.182220
+			-10.812279 6.715879 60.296959
+			-11.920625 4.642309 60.296959
+			-6.407017 2.358498 61.182220
+			-6.407017 2.358498 61.182220
+			-5.850162 3.400300 61.182220
+			-10.812279 6.715879 60.296959
+			-15.678355 9.967288 58.831017
+			-17.327519 6.881918 58.831017
+			-11.920625 4.642309 60.296959
+			-11.920625 4.642309 60.296959
+			-10.812279 6.715879 60.296959
+			-15.678355 9.967288 58.831017
+			-20.401526 13.123208 56.798492
+			-22.575625 9.055753 56.798492
+			-17.327519 6.881918 58.831017
+			-17.327519 6.881918 58.831017
+			-15.678355 9.967288 58.831017
+			-20.401526 13.123208 56.798492
+			-24.936309 16.153254 54.218979
+			-27.614405 11.142885 54.218979
+			-22.575625 9.055753 56.798492
+			-22.575625 9.055753 56.798492
+			-20.401526 13.123208 56.798492
+			-24.936309 16.153254 54.218979
+			-29.239028 19.028233 51.117294
+			-32.395331 13.123207 51.117294
+			-27.614405 11.142885 54.218979
+			-27.614405 11.142885 54.218979
+			-24.936309 16.153254 54.218979
+			-29.239028 19.028233 51.117294
+			-33.268248 21.720475 47.523331
+			-36.872363 14.977652 47.523331
+			-32.395331 13.123207 51.117294
+			-32.395331 13.123207 51.117294
+			-29.239028 19.028233 51.117294
+			-33.268248 21.720475 47.523331
+			-36.985167 24.204041 43.471687
+			-41.002379 16.688363 43.471687
+			-36.872363 14.977652 47.523331
+			-36.872363 14.977652 47.523331
+			-33.268248 21.720475 47.523331
+			-36.985167 24.204041 43.471687
+			-40.353976 26.455004 39.001392
+			-44.745604 18.238854 39.001392
+			-41.002379 16.688363 43.471687
+			-41.002379 16.688363 43.471687
+			-36.985167 24.204041 43.471687
+			-40.353976 26.455004 39.001392
+			-43.342242 28.451706 34.155495
+			-48.065986 19.614207 34.155495
+			-44.745604 18.238854 39.001392
+			-44.745604 18.238854 39.001392
+			-40.353976 26.455004 39.001392
+			-43.342242 28.451706 34.155495
+			-45.921199 30.174908 28.980652
+			-50.931563 20.801165 28.980652
+			-48.065986 19.614207 34.155495
+			-48.065986 19.614207 34.155495
+			-43.342242 28.451706 34.155495
+			-45.921199 30.174908 28.980652
+			-48.065989 31.608004 23.526703
+			-53.314723 21.788298 23.526703
+			-50.931563 20.801165 28.980652
+			-50.931563 20.801165 28.980652
+			-45.921199 30.174908 28.980652
+			-48.065989 31.608004 23.526703
+			-49.755973 32.737217 17.846195
+			-55.192534 22.566113 17.846195
+			-53.314723 21.788298 23.526703
+			-53.314723 21.788298 23.526703
+			-48.065989 31.608004 23.526703
+			-49.755973 32.737217 17.846195
+			-50.974852 33.551655 11.993812
+			-56.546885 23.127110 11.993812
+			-55.192534 22.566113 17.846195
+			-55.192534 22.566113 17.846195
+			-49.755973 32.737217 17.846195
+			-50.974852 33.551655 11.993812
+			-51.710917 34.043477 6.025923
+			-57.364753 23.465880 6.025923
+			-56.546885 23.127110 11.993812
+			-56.546885 23.127110 11.993812
+			-50.974852 33.551655 11.993812
+			-51.710917 34.043477 6.025923
+			-51.957061 34.207940 0.000001
+			-57.638247 23.579165 0.000001
+			-57.364753 23.465880 6.025923
+			-57.364753 23.465880 6.025923
+			-51.710917 34.043477 6.025923
+			-51.957061 34.207940 0.000001
+			-51.710917 34.043477 -6.025925
+			-57.364753 23.465880 -6.025925
+			-57.638247 23.579165 0.000001
+			-57.638247 23.579165 0.000001
+			-51.957061 34.207940 0.000001
+			-51.710917 34.043477 -6.025925
+			-50.974852 33.551651 -11.993814
+			-56.546885 23.127102 -11.993814
+			-57.364753 23.465880 -6.025925
+			-57.364753 23.465880 -6.025925
+			-51.710917 34.043477 -6.025925
+			-50.974852 33.551651 -11.993814
+			-49.755961 32.737217 -17.846201
+			-55.192527 22.566113 -17.846201
+			-56.546885 23.127102 -11.993814
+			-56.546885 23.127102 -11.993814
+			-50.974852 33.551651 -11.993814
+			-49.755961 32.737217 -17.846201
+			-48.065982 31.608004 -23.526714
+			-53.314719 21.788300 -23.526714
+			-55.192527 22.566113 -17.846201
+			-55.192527 22.566113 -17.846201
+			-49.755961 32.737217 -17.846201
+			-48.065982 31.608004 -23.526714
+			-45.921195 30.174900 -28.980648
+			-50.931559 20.801161 -28.980648
+			-53.314719 21.788300 -23.526714
+			-53.314719 21.788300 -23.526714
+			-48.065982 31.608004 -23.526714
+			-45.921195 30.174900 -28.980648
+			-43.342238 28.451697 -34.155491
+			-48.065970 19.614197 -34.155491
+			-50.931559 20.801161 -28.980648
+			-50.931559 20.801161 -28.980648
+			-45.921195 30.174900 -28.980648
+			-43.342238 28.451697 -34.155491
+			-40.353968 26.454987 -39.001392
+			-44.745581 18.238841 -39.001392
+			-48.065970 19.614197 -34.155491
+			-48.065970 19.614197 -34.155491
+			-43.342238 28.451697 -34.155491
+			-40.353968 26.454987 -39.001392
+			-36.985141 24.204024 -43.471684
+			-41.002353 16.688349 -43.471684
+			-44.745581 18.238841 -39.001392
+			-44.745581 18.238841 -39.001392
+			-40.353968 26.454987 -39.001392
+			-36.985141 24.204024 -43.471684
+			-33.268222 21.720456 -47.523327
+			-36.872332 14.977641 -47.523327
+			-41.002353 16.688349 -43.471684
+			-41.002353 16.688349 -43.471684
+			-36.985141 24.204024 -43.471684
+			-33.268222 21.720456 -47.523327
+			-29.239005 19.028220 -51.117298
+			-32.395305 13.123194 -51.117298
+			-36.872332 14.977641 -47.523327
+			-36.872332 14.977641 -47.523327
+			-33.268222 21.720456 -47.523327
+			-29.239005 19.028220 -51.117298
+			-24.936282 16.153233 -54.218979
+			-27.614373 11.142871 -54.218979
+			-32.395305 13.123194 -51.117298
+			-32.395305 13.123194 -51.117298
+			-29.239005 19.028220 -51.117298
+			-24.936282 16.153233 -54.218979
+			-20.401500 13.123188 -56.798492
+			-22.575595 9.055739 -56.798492
+			-27.614373 11.142871 -54.218979
+			-27.614373 11.142871 -54.218979
+			-24.936282 16.153233 -54.218979
+			-20.401500 13.123188 -56.798492
+			-15.678320 9.967266 -58.831001
+			-17.327481 6.881901 -58.831001
+			-22.575595 9.055739 -56.798492
+			-22.575595 9.055739 -56.798492
+			-20.401500 13.123188 -56.798492
+			-15.678320 9.967266 -58.831001
+			-10.812242 6.715855 -60.296947
+			-11.920583 4.642292 -60.296947
+			-17.327481 6.881901 -58.831001
+			-17.327481 6.881901 -58.831001
+			-15.678320 9.967266 -58.831001
+			-10.812242 6.715855 -60.296947
+			-5.850123 3.400274 -61.182194
+			-6.406973 2.358480 -61.182194
+			-11.920583 4.642292 -60.296947
+			-11.920583 4.642292 -60.296947
+			-10.812242 6.715855 -60.296947
+			-5.850123 3.400274 -61.182194
+			-0.839828 0.052444 -61.478222
+			-6.406973 2.358480 -61.182194
+			-5.850123 3.400274 -61.182194
+			-0.839828 0.052444 -61.478222
+			-6.749880 1.228068 -61.182194
+			-6.406973 2.358480 -61.182194
+			-6.406973 2.358480 -61.182194
+			-6.749880 1.228068 -61.182194
+			-12.603097 2.392345 -60.296947
+			-12.603097 2.392345 -60.296947
+			-11.920583 4.642292 -60.296947
+			-6.406973 2.358480 -61.182194
+			-11.920583 4.642292 -60.296947
+			-12.603097 2.392345 -60.296947
+			-18.343028 3.534087 -58.831001
+			-18.343028 3.534087 -58.831001
+			-17.327481 6.881901 -58.831001
+			-11.920583 4.642292 -60.296947
+			-17.327481 6.881901 -58.831001
+			-18.343028 3.534087 -58.831001
+			-23.914397 4.642299 -56.798492
+			-23.914397 4.642299 -56.798492
+			-22.575595 9.055739 -56.798492
+			-17.327481 6.881901 -58.831001
+			-22.575595 9.055739 -56.798492
+			-23.914397 4.642299 -56.798492
+			-29.263537 5.706311 -54.218979
+			-29.263537 5.706311 -54.218979
+			-27.614373 11.142871 -54.218979
+			-22.575595 9.055739 -56.798492
+			-27.614373 11.142871 -54.218979
+			-29.263537 5.706311 -54.218979
+			-34.338942 6.715869 -51.117298
+			-34.338942 6.715869 -51.117298
+			-32.395305 13.123194 -51.117298
+			-27.614373 11.142871 -54.218979
+			-32.395305 13.123194 -51.117298
+			-34.338942 6.715869 -51.117298
+			-39.091727 7.661258 -47.523327
+			-39.091727 7.661258 -47.523327
+			-36.872332 14.977641 -47.523327
+			-32.395305 13.123194 -51.117298
+			-36.872332 14.977641 -47.523327
+			-39.091727 7.661258 -47.523327
+			-43.476138 8.533370 -43.471684
+			-43.476138 8.533370 -43.471684
+			-41.002353 16.688349 -43.471684
+			-36.872332 14.977641 -47.523327
+			-41.002353 16.688349 -43.471684
+			-43.476138 8.533370 -43.471684
+			-47.449927 9.323800 -39.001392
+			-47.449927 9.323800 -39.001392
+			-44.745581 18.238841 -39.001392
+			-41.002353 16.688349 -43.471684
+			-44.745581 18.238841 -39.001392
+			-47.449927 9.323800 -39.001392
+			-50.974837 10.024954 -34.155491
+			-50.974837 10.024954 -34.155491
+			-48.065970 19.614197 -34.155491
+			-44.745581 18.238841 -39.001392
+			-48.065970 19.614197 -34.155491
+			-50.974837 10.024954 -34.155491
+			-54.016928 10.630063 -28.980648
+			-54.016928 10.630063 -28.980648
+			-50.931559 20.801161 -28.980648
+			-48.065970 19.614197 -34.155491
+			-50.931559 20.801161 -28.980648
+			-54.016928 10.630063 -28.980648
+			-56.546874 11.133303 -23.526714
+			-56.546874 11.133303 -23.526714
+			-53.314719 21.788300 -23.526714
+			-50.931559 20.801161 -28.980648
+			-53.314719 21.788300 -23.526714
+			-56.546874 11.133303 -23.526714
+			-58.540343 11.529830 -17.846201
+			-58.540343 11.529830 -17.846201
+			-55.192527 22.566113 -17.846201
+			-53.314719 21.788300 -23.526714
+			-55.192527 22.566113 -17.846201
+			-58.540343 11.529830 -17.846201
+			-59.978125 11.815816 -11.993814
+			-59.978125 11.815816 -11.993814
+			-56.546885 23.127102 -11.993814
+			-55.192527 22.566113 -17.846201
+			-56.546885 23.127102 -11.993814
+			-59.978125 11.815816 -11.993814
+			-60.846373 11.988527 -6.025925
+			-60.846373 11.988527 -6.025925
+			-57.364753 23.465880 -6.025925
+			-56.546885 23.127102 -11.993814
+			-57.364753 23.465880 -6.025925
+			-60.846373 11.988527 -6.025925
+			-61.136710 12.046278 0.000001
+			-61.136710 12.046278 0.000001
+			-57.638247 23.579165 0.000001
+			-57.364753 23.465880 -6.025925
+			-57.638247 23.579165 0.000001
+			-61.136710 12.046278 0.000001
+			-60.846373 11.988527 6.025923
+			-60.846373 11.988527 6.025923
+			-57.364753 23.465880 6.025923
+			-57.638247 23.579165 0.000001
+			-57.364753 23.465880 6.025923
+			-60.846373 11.988527 6.025923
+			-59.978125 11.815823 11.993812
+			-59.978125 11.815823 11.993812
+			-56.546885 23.127110 11.993812
+			-57.364753 23.465880 6.025923
+			-56.546885 23.127110 11.993812
+			-59.978125 11.815823 11.993812
+			-58.540351 11.529826 17.846195
+			-58.540351 11.529826 17.846195
+			-55.192534 22.566113 17.846195
+			-56.546885 23.127110 11.993812
+			-55.192534 22.566113 17.846195
+			-58.540351 11.529826 17.846195
+			-56.546881 11.133300 23.526703
+			-56.546881 11.133300 23.526703
+			-53.314723 21.788298 23.526703
+			-55.192534 22.566113 17.846195
+			-53.314723 21.788298 23.526703
+			-56.546881 11.133300 23.526703
+			-54.016932 10.630066 28.980652
+			-54.016932 10.630066 28.980652
+			-50.931563 20.801165 28.980652
+			-53.314723 21.788298 23.526703
+			-50.931563 20.801165 28.980652
+			-54.016932 10.630066 28.980652
+			-50.974849 10.024961 34.155495
+			-50.974849 10.024961 34.155495
+			-48.065986 19.614207 34.155495
+			-50.931563 20.801165 28.980652
+			-48.065986 19.614207 34.155495
+			-50.974849 10.024961 34.155495
+			-47.449946 9.323809 39.001392
+			-47.449946 9.323809 39.001392
+			-44.745604 18.238854 39.001392
+			-48.065986 19.614207 34.155495
+			-44.745604 18.238854 39.001392
+			-47.449946 9.323809 39.001392
+			-43.476161 8.533377 43.471687
+			-43.476161 8.533377 43.471687
+			-41.002379 16.688363 43.471687
+			-44.745604 18.238854 39.001392
+			-41.002379 16.688363 43.471687
+			-43.476161 8.533377 43.471687
+			-39.091761 7.661264 47.523331
+			-39.091761 7.661264 47.523331
+			-36.872363 14.977652 47.523331
+			-41.002379 16.688363 43.471687
+			-36.872363 14.977652 47.523331
+			-39.091761 7.661264 47.523331
+			-34.338969 6.715875 51.117294
+			-34.338969 6.715875 51.117294
+			-32.395331 13.123207 51.117294
+			-36.872363 14.977652 47.523331
+			-32.395331 13.123207 51.117294
+			-34.338969 6.715875 51.117294
+			-29.263570 5.706318 54.218979
+			-29.263570 5.706318 54.218979
+			-27.614405 11.142885 54.218979
+			-32.395331 13.123207 51.117294
+			-27.614405 11.142885 54.218979
+			-29.263570 5.706318 54.218979
+			-23.914428 4.642307 56.798492
+			-23.914428 4.642307 56.798492
+			-22.575625 9.055753 56.798492
+			-27.614405 11.142885 54.218979
+			-22.575625 9.055753 56.798492
+			-23.914428 4.642307 56.798492
+			-18.343070 3.534096 58.831017
+			-18.343070 3.534096 58.831017
+			-17.327519 6.881918 58.831017
+			-22.575625 9.055753 56.798492
+			-17.327519 6.881918 58.831017
+			-18.343070 3.534096 58.831017
+			-12.603141 2.392353 60.296959
+			-12.603141 2.392353 60.296959
+			-11.920625 4.642309 60.296959
+			-17.327519 6.881918 58.831017
+			-11.920625 4.642309 60.296959
+			-12.603141 2.392353 60.296959
+			-6.749925 1.228077 61.182220
+			-6.749925 1.228077 61.182220
+			-6.407017 2.358498 61.182220
+			-11.920625 4.642309 60.296959
+			-6.749925 1.228077 61.182220
+			-0.839793 0.052479 61.478241
+			-6.407017 2.358498 61.182220
+			-6.865711 0.052479 61.182220
+			-0.839793 0.052479 61.478241
+			-6.749925 1.228077 61.182220
+			-12.603141 2.392353 60.296959
+			-12.833598 0.052478 60.296959
+			-6.865711 0.052479 61.182220
+			-6.865711 0.052479 61.182220
+			-6.749925 1.228077 61.182220
+			-12.603141 2.392353 60.296959
+			-18.343070 3.534096 58.831017
+			-18.685979 0.052478 58.831017
+			-12.833598 0.052478 60.296959
+			-12.833598 0.052478 60.296959
+			-12.603141 2.392353 60.296959
+			-18.343070 3.534096 58.831017
+			-23.914428 4.642307 56.798492
+			-24.366486 0.052476 56.798492
+			-18.685979 0.052478 58.831017
+			-18.685979 0.052478 58.831017
+			-18.343070 3.534096 58.831017
+			-23.914428 4.642307 56.798492
+			-29.263570 5.706318 54.218979
+			-29.820422 0.052477 54.218979
+			-24.366486 0.052476 56.798492
+			-24.366486 0.052476 56.798492
+			-23.914428 4.642307 56.798492
+			-29.263570 5.706318 54.218979
+			-34.338969 6.715875 51.117294
+			-34.995253 0.052474 51.117294
+			-29.820422 0.052477 54.218979
+			-29.820422 0.052477 54.218979
+			-29.263570 5.706318 54.218979
+			-34.338969 6.715875 51.117294
+			-39.091761 7.661264 47.523331
+			-39.841155 0.052474 47.523331
+			-34.995253 0.052474 51.117294
+			-34.995253 0.052474 51.117294
+			-34.338969 6.715875 51.117294
+			-39.091761 7.661264 47.523331
+			-43.476161 8.533377 43.471687
+			-44.311457 0.052476 43.471687
+			-39.841155 0.052474 47.523331
+			-39.841155 0.052474 47.523331
+			-39.091761 7.661264 47.523331
+			-43.476161 8.533377 43.471687
+			-47.449946 9.323809 39.001392
+			-48.363089 0.052472 39.001392
+			-44.311457 0.052476 43.471687
+			-44.311457 0.052476 43.471687
+			-43.476161 8.533377 43.471687
+			-47.449946 9.323809 39.001392
+			-50.974849 10.024961 34.155495
+			-51.957053 0.052477 34.155495
+			-48.363089 0.052472 39.001392
+			-48.363089 0.052472 39.001392
+			-47.449946 9.323809 39.001392
+			-50.974849 10.024961 34.155495
+			-54.016932 10.630066 28.980652
+			-55.058734 0.052474 28.980652
+			-51.957053 0.052477 34.155495
+			-51.957053 0.052477 34.155495
+			-50.974849 10.024961 34.155495
+			-54.016932 10.630066 28.980652
+			-56.546881 11.133300 23.526703
+			-57.638240 0.052470 23.526703
+			-55.058734 0.052474 28.980652
+			-55.058734 0.052474 28.980652
+			-54.016932 10.630066 28.980652
+			-56.546881 11.133300 23.526703
+			-58.540351 11.529826 17.846195
+			-59.670768 0.052470 17.846195
+			-57.638240 0.052470 23.526703
+			-57.638240 0.052470 23.526703
+			-56.546881 11.133300 23.526703
+			-58.540351 11.529826 17.846195
+			-59.978125 11.815823 11.993812
+			-61.136710 0.052477 11.993812
+			-59.670768 0.052470 17.846195
+			-59.670768 0.052470 17.846195
+			-58.540351 11.529826 17.846195
+			-59.978125 11.815823 11.993812
+			-60.846373 11.988527 6.025923
+			-62.021964 0.052474 6.025923
+			-61.136710 0.052477 11.993812
+			-61.136710 0.052477 11.993812
+			-59.978125 11.815823 11.993812
+			-60.846373 11.988527 6.025923
+			-61.136710 12.046278 0.000001
+			-62.318000 0.052473 0.000001
+			-62.021964 0.052474 6.025923
+			-62.021964 0.052474 6.025923
+			-60.846373 11.988527 6.025923
+			-61.136710 12.046278 0.000001
+			-60.846373 11.988527 -6.025925
+			-62.021964 0.052474 -6.025925
+			-62.318000 0.052473 0.000001
+			-62.318000 0.052473 0.000001
+			-61.136710 12.046278 0.000001
+			-60.846373 11.988527 -6.025925
+			-59.978125 11.815816 -11.993814
+			-61.136710 0.052469 -11.993814
+			-62.021964 0.052474 -6.025925
+			-62.021964 0.052474 -6.025925
+			-60.846373 11.988527 -6.025925
+			-59.978125 11.815816 -11.993814
+			-58.540343 11.529830 -17.846201
+			-59.670760 0.052475 -17.846201
+			-61.136710 0.052469 -11.993814
+			-61.136710 0.052469 -11.993814
+			-59.978125 11.815816 -11.993814
+			-58.540343 11.529830 -17.846201
+			-56.546874 11.133303 -23.526714
+			-57.638236 0.052475 -23.526714
+			-59.670760 0.052475 -17.846201
+			-59.670760 0.052475 -17.846201
+			-58.540343 11.529830 -17.846201
+			-56.546874 11.133303 -23.526714
+			-54.016928 10.630063 -28.980648
+			-55.058730 0.052472 -28.980648
+			-57.638236 0.052475 -23.526714
+			-57.638236 0.052475 -23.526714
+			-56.546874 11.133303 -23.526714
+			-54.016928 10.630063 -28.980648
+			-50.974837 10.024954 -34.155491
+			-51.957034 0.052472 -34.155491
+			-55.058730 0.052472 -28.980648
+			-55.058730 0.052472 -28.980648
+			-54.016928 10.630063 -28.980648
+			-50.974837 10.024954 -34.155491
+			-47.449927 9.323800 -39.001392
+			-48.363070 0.052467 -39.001392
+			-51.957034 0.052472 -34.155491
+			-51.957034 0.052472 -34.155491
+			-50.974837 10.024954 -34.155491
+			-47.449927 9.323800 -39.001392
+			-43.476138 8.533370 -43.471684
+			-44.311431 0.052473 -43.471684
+			-48.363070 0.052467 -39.001392
+			-48.363070 0.052467 -39.001392
+			-47.449927 9.323800 -39.001392
+			-43.476138 8.533370 -43.471684
+			-39.091727 7.661258 -47.523327
+			-39.841128 0.052474 -47.523327
+			-44.311431 0.052473 -43.471684
+			-44.311431 0.052473 -43.471684
+			-43.476138 8.533370 -43.471684
+			-39.091727 7.661258 -47.523327
+			-34.338942 6.715869 -51.117298
+			-34.995227 0.052474 -51.117298
+			-39.841128 0.052474 -47.523327
+			-39.841128 0.052474 -47.523327
+			-39.091727 7.661258 -47.523327
+			-34.338942 6.715869 -51.117298
+			-29.263537 5.706311 -54.218979
+			-29.820388 0.052477 -54.218979
+			-34.995227 0.052474 -51.117298
+			-34.995227 0.052474 -51.117298
+			-34.338942 6.715869 -51.117298
+			-29.263537 5.706311 -54.218979
+			-23.914397 4.642299 -56.798492
+			-24.366452 0.052475 -56.798492
+			-29.820388 0.052477 -54.218979
+			-29.820388 0.052477 -54.218979
+			-29.263537 5.706311 -54.218979
+			-23.914397 4.642299 -56.798492
+			-18.343028 3.534087 -58.831001
+			-18.685935 0.052478 -58.831001
+			-24.366452 0.052475 -56.798492
+			-24.366452 0.052475 -56.798492
+			-23.914397 4.642299 -56.798492
+			-18.343028 3.534087 -58.831001
+			-12.603097 2.392345 -60.296947
+			-12.833553 0.052478 -60.296947
+			-18.685935 0.052478 -58.831001
+			-18.685935 0.052478 -58.831001
+			-18.343028 3.534087 -58.831001
+			-12.603097 2.392345 -60.296947
+			-6.749880 1.228068 -61.182194
+			-6.865665 0.052479 -61.182194
+			-12.833553 0.052478 -60.296947
+			-12.833553 0.052478 -60.296947
+			-12.603097 2.392345 -60.296947
+			-6.749880 1.228068 -61.182194
+			-0.839828 0.052444 -61.478222
+			-6.865665 0.052479 -61.182194
+			-6.749880 1.228068 -61.182194
+			-0.839828 0.052444 -61.478222
+			-6.749879 -1.123111 -61.182194
+			-6.865665 0.052479 -61.182194
+			-6.865665 0.052479 -61.182194
+			-6.749879 -1.123111 -61.182194
+			-12.603096 -2.287388 -60.296947
+			-12.603096 -2.287388 -60.296947
+			-12.833553 0.052478 -60.296947
+			-6.865665 0.052479 -61.182194
+			-12.833553 0.052478 -60.296947
+			-12.603096 -2.287388 -60.296947
+			-18.343026 -3.429132 -58.831001
+			-18.343026 -3.429132 -58.831001
+			-18.685935 0.052478 -58.831001
+			-12.833553 0.052478 -60.296947
+			-18.685935 0.052478 -58.831001
+			-18.343026 -3.429132 -58.831001
+			-23.914393 -4.537347 -56.798492
+			-23.914393 -4.537347 -56.798492
+			-24.366452 0.052475 -56.798492
+			-18.685935 0.052478 -58.831001
+			-24.366452 0.052475 -56.798492
+			-23.914393 -4.537347 -56.798492
+			-29.263533 -5.601357 -54.218979
+			-29.263533 -5.601357 -54.218979
+			-29.820388 0.052477 -54.218979
+			-24.366452 0.052475 -56.798492
+			-29.820388 0.052477 -54.218979
+			-29.263533 -5.601357 -54.218979
+			-34.338939 -6.610921 -51.117298
+			-34.338939 -6.610921 -51.117298
+			-34.995227 0.052474 -51.117298
+			-29.820388 0.052477 -54.218979
+			-34.995227 0.052474 -51.117298
+			-34.338939 -6.610921 -51.117298
+			-39.091727 -7.556309 -47.523327
+			-39.091727 -7.556309 -47.523327
+			-39.841128 0.052474 -47.523327
+			-34.995227 0.052474 -51.117298
+			-39.841128 0.052474 -47.523327
+			-39.091727 -7.556309 -47.523327
+			-43.476134 -8.428422 -43.471684
+			-43.476134 -8.428422 -43.471684
+			-44.311431 0.052473 -43.471684
+			-39.841128 0.052474 -47.523327
+			-44.311431 0.052473 -43.471684
+			-43.476134 -8.428422 -43.471684
+			-47.449920 -9.218864 -39.001392
+			-47.449920 -9.218864 -39.001392
+			-48.363070 0.052467 -39.001392
+			-44.311431 0.052473 -43.471684
+			-48.363070 0.052467 -39.001392
+			-47.449920 -9.218864 -39.001392
+			-50.974829 -9.920006 -34.155491
+			-50.974829 -9.920006 -34.155491
+			-51.957034 0.052472 -34.155491
+			-48.363070 0.052467 -39.001392
+			-51.957034 0.052472 -34.155491
+			-50.974829 -9.920006 -34.155491
+			-54.016925 -10.525117 -28.980648
+			-54.016925 -10.525117 -28.980648
+			-55.058730 0.052472 -28.980648
+			-51.957034 0.052472 -34.155491
+			-55.058730 0.052472 -28.980648
+			-54.016925 -10.525117 -28.980648
+			-56.546870 -11.028351 -23.526714
+			-56.546870 -11.028351 -23.526714
+			-57.638236 0.052475 -23.526714
+			-55.058730 0.052472 -28.980648
+			-57.638236 0.052475 -23.526714
+			-56.546870 -11.028351 -23.526714
+			-58.540335 -11.424877 -17.846201
+			-58.540335 -11.424877 -17.846201
+			-59.670760 0.052475 -17.846201
+			-57.638236 0.052475 -23.526714
+			-59.670760 0.052475 -17.846201
+			-58.540335 -11.424877 -17.846201
+			-59.978118 -11.710876 -11.993814
+			-59.978118 -11.710876 -11.993814
+			-61.136710 0.052469 -11.993814
+			-59.670760 0.052475 -17.846201
+			-61.136710 0.052469 -11.993814
+			-59.978118 -11.710876 -11.993814
+			-60.846366 -11.883576 -6.025925
+			-60.846366 -11.883576 -6.025925
+			-62.021964 0.052474 -6.025925
+			-61.136710 0.052469 -11.993814
+			-62.021964 0.052474 -6.025925
+			-60.846366 -11.883576 -6.025925
+			-61.136710 -11.941330 0.000001
+			-61.136710 -11.941330 0.000001
+			-62.318000 0.052473 0.000001
+			-62.021964 0.052474 -6.025925
+			-62.318000 0.052473 0.000001
+			-61.136710 -11.941330 0.000001
+			-60.846366 -11.883576 6.025923
+			-60.846366 -11.883576 6.025923
+			-62.021964 0.052474 6.025923
+			-62.318000 0.052473 0.000001
+			-62.021964 0.052474 6.025923
+			-60.846366 -11.883576 6.025923
+			-59.978118 -11.710868 11.993812
+			-59.978118 -11.710868 11.993812
+			-61.136710 0.052477 11.993812
+			-62.021964 0.052474 6.025923
+			-61.136710 0.052477 11.993812
+			-59.978118 -11.710868 11.993812
+			-58.540343 -11.424883 17.846195
+			-58.540343 -11.424883 17.846195
+			-59.670768 0.052470 17.846195
+			-61.136710 0.052477 11.993812
+			-59.670768 0.052470 17.846195
+			-58.540343 -11.424883 17.846195
+			-56.546878 -11.028358 23.526703
+			-56.546878 -11.028358 23.526703
+			-57.638240 0.052470 23.526703
+			-59.670768 0.052470 17.846195
+			-57.638240 0.052470 23.526703
+			-56.546878 -11.028358 23.526703
+			-54.016928 -10.525116 28.980652
+			-54.016928 -10.525116 28.980652
+			-55.058734 0.052474 28.980652
+			-57.638240 0.052470 23.526703
+			-55.058734 0.052474 28.980652
+			-54.016928 -10.525116 28.980652
+			-50.974845 -9.920004 34.155495
+			-50.974845 -9.920004 34.155495
+			-51.957053 0.052477 34.155495
+			-55.058734 0.052474 28.980652
+			-51.957053 0.052477 34.155495
+			-50.974845 -9.920004 34.155495
+			-47.449939 -9.218863 39.001392
+			-47.449939 -9.218863 39.001392
+			-48.363089 0.052472 39.001392
+			-51.957053 0.052477 34.155495
+			-48.363089 0.052472 39.001392
+			-47.449939 -9.218863 39.001392
+			-43.476157 -8.428423 43.471687
+			-43.476157 -8.428423 43.471687
+			-44.311457 0.052476 43.471687
+			-48.363089 0.052472 39.001392
+			-44.311457 0.052476 43.471687
+			-43.476157 -8.428423 43.471687
+			-39.091754 -7.556314 47.523331
+			-39.091754 -7.556314 47.523331
+			-39.841155 0.052474 47.523331
+			-44.311457 0.052476 43.471687
+			-39.841155 0.052474 47.523331
+			-39.091754 -7.556314 47.523331
+			-34.338965 -6.610926 51.117294
+			-34.338965 -6.610926 51.117294
+			-34.995253 0.052474 51.117294
+			-39.841155 0.052474 47.523331
+			-34.995253 0.052474 51.117294
+			-34.338965 -6.610926 51.117294
+			-29.263566 -5.601363 54.218979
+			-29.263566 -5.601363 54.218979
+			-29.820422 0.052477 54.218979
+			-34.995253 0.052474 51.117294
+			-29.820422 0.052477 54.218979
+			-29.263566 -5.601363 54.218979
+			-23.914426 -4.537353 56.798492
+			-23.914426 -4.537353 56.798492
+			-24.366486 0.052476 56.798492
+			-29.820422 0.052477 54.218979
+			-24.366486 0.052476 56.798492
+			-23.914426 -4.537353 56.798492
+			-18.343068 -3.429139 58.831017
+			-18.343068 -3.429139 58.831017
+			-18.685979 0.052478 58.831017
+			-24.366486 0.052476 56.798492
+			-18.685979 0.052478 58.831017
+			-18.343068 -3.429139 58.831017
+			-12.603140 -2.287397 60.296959
+			-12.603140 -2.287397 60.296959
+			-12.833598 0.052478 60.296959
+			-18.685979 0.052478 58.831017
+			-12.833598 0.052478 60.296959
+			-12.603140 -2.287397 60.296959
+			-6.749925 -1.123120 61.182220
+			-6.749925 -1.123120 61.182220
+			-6.865711 0.052479 61.182220
+			-12.833598 0.052478 60.296959
+			-6.749925 -1.123120 61.182220
+			-0.839793 0.052479 61.478241
+			-6.865711 0.052479 61.182220
+			-6.407015 -2.253541 61.182220
+			-0.839793 0.052479 61.478241
+			-6.749925 -1.123120 61.182220
+			-12.603140 -2.287397 60.296959
+			-11.920623 -4.537352 60.296959
+			-6.407015 -2.253541 61.182220
+			-6.407015 -2.253541 61.182220
+			-6.749925 -1.123120 61.182220
+			-12.603140 -2.287397 60.296959
+			-18.343068 -3.429139 58.831017
+			-17.327517 -6.776960 58.831017
+			-11.920623 -4.537352 60.296959
+			-11.920623 -4.537352 60.296959
+			-12.603140 -2.287397 60.296959
+			-18.343068 -3.429139 58.831017
+			-23.914426 -4.537353 56.798492
+			-22.575621 -8.950799 56.798492
+			-17.327517 -6.776960 58.831017
+			-17.327517 -6.776960 58.831017
+			-18.343068 -3.429139 58.831017
+			-23.914426 -4.537353 56.798492
+			-29.263566 -5.601363 54.218979
+			-27.614402 -11.037927 54.218979
+			-22.575621 -8.950799 56.798492
+			-22.575621 -8.950799 56.798492
+			-23.914426 -4.537353 56.798492
+			-29.263566 -5.601363 54.218979
+			-34.338965 -6.610926 51.117294
+			-32.395324 -13.018254 51.117294
+			-27.614402 -11.037927 54.218979
+			-27.614402 -11.037927 54.218979
+			-29.263566 -5.601363 54.218979
+			-34.338965 -6.610926 51.117294
+			-39.091754 -7.556314 47.523331
+			-36.872351 -14.872701 47.523331
+			-32.395324 -13.018254 51.117294
+			-32.395324 -13.018254 51.117294
+			-34.338965 -6.610926 51.117294
+			-39.091754 -7.556314 47.523331
+			-43.476157 -8.428423 43.471687
+			-41.002368 -16.583410 43.471687
+			-36.872351 -14.872701 47.523331
+			-36.872351 -14.872701 47.523331
+			-39.091754 -7.556314 47.523331
+			-43.476157 -8.428423 43.471687
+			-47.449939 -9.218863 39.001392
+			-44.745589 -18.133907 39.001392
+			-41.002368 -16.583410 43.471687
+			-41.002368 -16.583410 43.471687
+			-43.476157 -8.428423 43.471687
+			-47.449939 -9.218863 39.001392
+			-50.974845 -9.920004 34.155495
+			-48.065970 -19.509250 34.155495
+			-44.745589 -18.133907 39.001392
+			-44.745589 -18.133907 39.001392
+			-47.449939 -9.218863 39.001392
+			-50.974845 -9.920004 34.155495
+			-54.016928 -10.525116 28.980652
+			-50.931559 -20.696216 28.980652
+			-48.065970 -19.509250 34.155495
+			-48.065970 -19.509250 34.155495
+			-50.974845 -9.920004 34.155495
+			-54.016928 -10.525116 28.980652
+			-56.546878 -11.028358 23.526703
+			-53.314715 -21.683357 23.526703
+			-50.931559 -20.696216 28.980652
+			-50.931559 -20.696216 28.980652
+			-54.016928 -10.525116 28.980652
+			-56.546878 -11.028358 23.526703
+			-58.540343 -11.424883 17.846195
+			-55.192519 -22.461170 17.846195
+			-53.314715 -21.683357 23.526703
+			-53.314715 -21.683357 23.526703
+			-56.546878 -11.028358 23.526703
+			-58.540343 -11.424883 17.846195
+			-59.978118 -11.710868 11.993812
+			-56.546878 -23.022155 11.993812
+			-55.192519 -22.461170 17.846195
+			-55.192519 -22.461170 17.846195
+			-58.540343 -11.424883 17.846195
+			-59.978118 -11.710868 11.993812
+			-60.846366 -11.883576 6.025923
+			-57.364745 -23.360929 6.025923
+			-56.546878 -23.022155 11.993812
+			-56.546878 -23.022155 11.993812
+			-59.978118 -11.710868 11.993812
+			-60.846366 -11.883576 6.025923
+			-61.136710 -11.941330 0.000001
+			-57.638240 -23.474218 0.000001
+			-57.364745 -23.360929 6.025923
+			-57.364745 -23.360929 6.025923
+			-60.846366 -11.883576 6.025923
+			-61.136710 -11.941330 0.000001
+			-60.846366 -11.883576 -6.025925
+			-57.364745 -23.360929 -6.025925
+			-57.638240 -23.474218 0.000001
+			-57.638240 -23.474218 0.000001
+			-61.136710 -11.941330 0.000001
+			-60.846366 -11.883576 -6.025925
+			-59.978118 -11.710876 -11.993814
+			-56.546874 -23.022161 -11.993814
+			-57.364745 -23.360929 -6.025925
+			-57.364745 -23.360929 -6.025925
+			-60.846366 -11.883576 -6.025925
+			-59.978118 -11.710876 -11.993814
+			-58.540335 -11.424877 -17.846201
+			-55.192519 -22.461164 -17.846201
+			-56.546874 -23.022161 -11.993814
+			-56.546874 -23.022161 -11.993814
+			-59.978118 -11.710876 -11.993814
+			-58.540335 -11.424877 -17.846201
+			-56.546870 -11.028351 -23.526714
+			-53.314711 -21.683349 -23.526714
+			-55.192519 -22.461164 -17.846201
+			-55.192519 -22.461164 -17.846201
+			-58.540335 -11.424877 -17.846201
+			-56.546870 -11.028351 -23.526714
+			-54.016925 -10.525117 -28.980648
+			-50.931552 -20.696216 -28.980648
+			-53.314711 -21.683349 -23.526714
+			-53.314711 -21.683349 -23.526714
+			-56.546870 -11.028351 -23.526714
+			-54.016925 -10.525117 -28.980648
+			-50.974829 -9.920006 -34.155491
+			-48.065963 -19.509248 -34.155491
+			-50.931552 -20.696216 -28.980648
+			-50.931552 -20.696216 -28.980648
+			-54.016925 -10.525117 -28.980648
+			-50.974829 -9.920006 -34.155491
+			-47.449920 -9.218864 -39.001392
+			-44.745566 -18.133907 -39.001392
+			-48.065963 -19.509248 -34.155491
+			-48.065963 -19.509248 -34.155491
+			-50.974829 -9.920006 -34.155491
+			-47.449920 -9.218864 -39.001392
+			-43.476134 -8.428422 -43.471684
+			-41.002345 -16.583402 -43.471684
+			-44.745566 -18.133907 -39.001392
+			-44.745566 -18.133907 -39.001392
+			-47.449920 -9.218864 -39.001392
+			-43.476134 -8.428422 -43.471684
+			-39.091727 -7.556309 -47.523327
+			-36.872325 -14.872692 -47.523327
+			-41.002345 -16.583402 -43.471684
+			-41.002345 -16.583402 -43.471684
+			-43.476134 -8.428422 -43.471684
+			-39.091727 -7.556309 -47.523327
+			-34.338939 -6.610921 -51.117298
+			-32.395297 -13.018244 -51.117298
+			-36.872325 -14.872692 -47.523327
+			-36.872325 -14.872692 -47.523327
+			-39.091727 -7.556309 -47.523327
+			-34.338939 -6.610921 -51.117298
+			-29.263533 -5.601357 -54.218979
+			-27.614371 -11.037915 -54.218979
+			-32.395297 -13.018244 -51.117298
+			-32.395297 -13.018244 -51.117298
+			-34.338939 -6.610921 -51.117298
+			-29.263533 -5.601357 -54.218979
+			-23.914393 -4.537347 -56.798492
+			-22.575595 -8.950786 -56.798492
+			-27.614371 -11.037915 -54.218979
+			-27.614371 -11.037915 -54.218979
+			-29.263533 -5.601357 -54.218979
+			-23.914393 -4.537347 -56.798492
+			-18.343026 -3.429132 -58.831001
+			-17.327477 -6.776944 -58.831001
+			-22.575595 -8.950786 -56.798492
+			-22.575595 -8.950786 -56.798492
+			-23.914393 -4.537347 -56.798492
+			-18.343026 -3.429132 -58.831001
+			-12.603096 -2.287388 -60.296947
+			-11.920582 -4.537334 -60.296947
+			-17.327477 -6.776944 -58.831001
+			-17.327477 -6.776944 -58.831001
+			-18.343026 -3.429132 -58.831001
+			-12.603096 -2.287388 -60.296947
+			-6.749879 -1.123111 -61.182194
+			-6.406973 -2.253522 -61.182194
+			-11.920582 -4.537334 -60.296947
+			-11.920582 -4.537334 -60.296947
+			-12.603096 -2.287388 -60.296947
+			-6.749879 -1.123111 -61.182194
+			-0.839828 0.052444 -61.478222
+			-6.406973 -2.253522 -61.182194
+			-6.749879 -1.123111 -61.182194
+			-0.839828 0.052444 -61.478222
+			-5.850121 -3.295316 -61.182194
+			-6.406973 -2.253522 -61.182194
+			-6.406973 -2.253522 -61.182194
+			-5.850121 -3.295316 -61.182194
+			-10.812239 -6.610897 -60.296947
+			-10.812239 -6.610897 -60.296947
+			-11.920582 -4.537334 -60.296947
+			-6.406973 -2.253522 -61.182194
+			-11.920582 -4.537334 -60.296947
+			-10.812239 -6.610897 -60.296947
+			-15.678316 -9.862305 -58.831001
+			-15.678316 -9.862305 -58.831001
+			-17.327477 -6.776944 -58.831001
+			-11.920582 -4.537334 -60.296947
+			-17.327477 -6.776944 -58.831001
+			-15.678316 -9.862305 -58.831001
+			-20.401492 -13.018234 -56.798492
+			-20.401492 -13.018234 -56.798492
+			-22.575595 -8.950786 -56.798492
+			-17.327477 -6.776944 -58.831001
+			-22.575595 -8.950786 -56.798492
+			-20.401492 -13.018234 -56.798492
+			-24.936274 -16.048278 -54.218979
+			-24.936274 -16.048278 -54.218979
+			-27.614371 -11.037915 -54.218979
+			-22.575595 -8.950786 -56.798492
+			-27.614371 -11.037915 -54.218979
+			-24.936274 -16.048278 -54.218979
+			-29.238995 -18.923271 -51.117298
+			-29.238995 -18.923271 -51.117298
+			-32.395297 -13.018244 -51.117298
+			-27.614371 -11.037915 -54.218979
+			-32.395297 -13.018244 -51.117298
+			-29.238995 -18.923271 -51.117298
+			-33.268210 -21.615507 -47.523327
+			-33.268210 -21.615507 -47.523327
+			-36.872325 -14.872692 -47.523327
+			-32.395297 -13.018244 -51.117298
+			-36.872325 -14.872692 -47.523327
+			-33.268210 -21.615507 -47.523327
+			-36.985129 -24.099073 -43.471684
+			-36.985129 -24.099073 -43.471684
+			-41.002345 -16.583402 -43.471684
+			-36.872325 -14.872692 -47.523327
+			-41.002345 -16.583402 -43.471684
+			-36.985129 -24.099073 -43.471684
+			-40.353942 -26.350051 -39.001392
+			-40.353942 -26.350051 -39.001392
+			-44.745566 -18.133907 -39.001392
+			-41.002345 -16.583402 -43.471684
+			-44.745566 -18.133907 -39.001392
+			-40.353942 -26.350051 -39.001392
+			-43.342219 -28.346746 -34.155491
+			-43.342219 -28.346746 -34.155491
+			-48.065963 -19.509248 -34.155491
+			-44.745566 -18.133907 -39.001392
+			-48.065963 -19.509248 -34.155491
+			-43.342219 -28.346746 -34.155491
+			-45.921187 -30.069954 -28.980648
+			-45.921187 -30.069954 -28.980648
+			-50.931552 -20.696216 -28.980648
+			-48.065963 -19.509248 -34.155491
+			-50.931552 -20.696216 -28.980648
+			-45.921187 -30.069954 -28.980648
+			-48.065966 -31.503048 -23.526714
+			-48.065966 -31.503048 -23.526714
+			-53.314711 -21.683349 -23.526714
+			-50.931552 -20.696216 -28.980648
+			-53.314711 -21.683349 -23.526714
+			-48.065966 -31.503048 -23.526714
+			-49.755950 -32.632259 -17.846201
+			-49.755950 -32.632259 -17.846201
+			-55.192519 -22.461164 -17.846201
+			-53.314711 -21.683349 -23.526714
+			-55.192519 -22.461164 -17.846201
+			-49.755950 -32.632259 -17.846201
+			-50.974837 -33.446701 -11.993814
+			-50.974837 -33.446701 -11.993814
+			-56.546874 -23.022161 -11.993814
+			-55.192519 -22.461164 -17.846201
+			-56.546874 -23.022161 -11.993814
+			-50.974837 -33.446701 -11.993814
+			-51.710902 -33.938518 -6.025925
+			-51.710902 -33.938518 -6.025925
+			-57.364745 -23.360929 -6.025925
+			-56.546874 -23.022161 -11.993814
+			-57.364745 -23.360929 -6.025925
+			-51.710902 -33.938518 -6.025925
+			-51.957049 -34.102985 0.000001
+			-51.957049 -34.102985 0.000001
+			-57.638240 -23.474218 0.000001
+			-57.364745 -23.360929 -6.025925
+			-57.638240 -23.474218 0.000001
+			-51.957049 -34.102985 0.000001
+			-51.710902 -33.938518 6.025923
+			-51.710902 -33.938518 6.025923
+			-57.364745 -23.360929 6.025923
+			-57.638240 -23.474218 0.000001
+			-57.364745 -23.360929 6.025923
+			-51.710902 -33.938518 6.025923
+			-50.974841 -33.446693 11.993812
+			-50.974841 -33.446693 11.993812
+			-56.546878 -23.022155 11.993812
+			-57.364745 -23.360929 6.025923
+			-56.546878 -23.022155 11.993812
+			-50.974841 -33.446693 11.993812
+			-49.755950 -32.632263 17.846195
+			-49.755950 -32.632263 17.846195
+			-55.192519 -22.461170 17.846195
+			-56.546878 -23.022155 11.993812
+			-55.192519 -22.461170 17.846195
+			-49.755950 -32.632263 17.846195
+			-48.065970 -31.503057 23.526703
+			-48.065970 -31.503057 23.526703
+			-53.314715 -21.683357 23.526703
+			-55.192519 -22.461170 17.846195
+			-53.314715 -21.683357 23.526703
+			-48.065970 -31.503057 23.526703
+			-45.921187 -30.069954 28.980652
+			-45.921187 -30.069954 28.980652
+			-50.931559 -20.696216 28.980652
+			-53.314715 -21.683357 23.526703
+			-50.931559 -20.696216 28.980652
+			-45.921187 -30.069954 28.980652
+			-43.342231 -28.346748 34.155495
+			-43.342231 -28.346748 34.155495
+			-48.065970 -19.509250 34.155495
+			-50.931559 -20.696216 28.980652
+			-48.065970 -19.509250 34.155495
+			-43.342231 -28.346748 34.155495
+			-40.353968 -26.350055 39.001392
+			-40.353968 -26.350055 39.001392
+			-44.745589 -18.133907 39.001392
+			-48.065970 -19.509250 34.155495
+			-44.745589 -18.133907 39.001392
+			-40.353968 -26.350055 39.001392
+			-36.985156 -24.099084 43.471687
+			-36.985156 -24.099084 43.471687
+			-41.002368 -16.583410 43.471687
+			-44.745589 -18.133907 39.001392
+			-41.002368 -16.583410 43.471687
+			-36.985156 -24.099084 43.471687
+			-33.268237 -21.615522 47.523331
+			-33.268237 -21.615522 47.523331
+			-36.872351 -14.872701 47.523331
+			-41.002368 -16.583410 43.471687
+			-36.872351 -14.872701 47.523331
+			-33.268237 -21.615522 47.523331
+			-29.239018 -18.923282 51.117294
+			-29.239018 -18.923282 51.117294
+			-32.395324 -13.018254 51.117294
+			-36.872351 -14.872701 47.523331
+			-32.395324 -13.018254 51.117294
+			-29.239018 -18.923282 51.117294
+			-24.936303 -16.048296 54.218979
+			-24.936303 -16.048296 54.218979
+			-27.614402 -11.037927 54.218979
+			-32.395324 -13.018254 51.117294
+			-27.614402 -11.037927 54.218979
+			-24.936303 -16.048296 54.218979
+			-20.401522 -13.018251 56.798492
+			-20.401522 -13.018251 56.798492
+			-22.575621 -8.950799 56.798492
+			-27.614402 -11.037927 54.218979
+			-22.575621 -8.950799 56.798492
+			-20.401522 -13.018251 56.798492
+			-15.678351 -9.862329 58.831017
+			-15.678351 -9.862329 58.831017
+			-17.327517 -6.776960 58.831017
+			-22.575621 -8.950799 56.798492
+			-17.327517 -6.776960 58.831017
+			-15.678351 -9.862329 58.831017
+			-10.812275 -6.610922 60.296959
+			-10.812275 -6.610922 60.296959
+			-11.920623 -4.537352 60.296959
+			-17.327517 -6.776960 58.831017
+			-11.920623 -4.537352 60.296959
+			-10.812275 -6.610922 60.296959
+			-5.850160 -3.295342 61.182220
+			-5.850160 -3.295342 61.182220
+			-6.407015 -2.253541 61.182220
+			-11.920623 -4.537352 60.296959
+			-5.850160 -3.295342 61.182220
+			-0.839793 0.052479 61.478241
+			-6.407015 -2.253541 61.182220
+			-5.100759 -4.208489 61.182220
+			-0.839793 0.052479 61.478241
+			-5.850160 -3.295342 61.182220
+			-10.812275 -6.610922 60.296959
+			-9.320692 -8.428422 60.296959
+			-5.100759 -4.208489 61.182220
+			-5.100759 -4.208489 61.182220
+			-5.850160 -3.295342 61.182220
+			-10.812275 -6.610922 60.296959
+			-15.678351 -9.862329 58.831017
+			-13.458948 -12.566678 58.831017
+			-9.320692 -8.428422 60.296959
+			-9.320692 -8.428422 60.296959
+			-10.812275 -6.610922 60.296959
+			-15.678351 -9.862329 58.831017
+			-20.401522 -13.018251 56.798492
+			-17.475674 -16.583404 56.798492
+			-13.458948 -12.566678 58.831017
+			-13.458948 -12.566678 58.831017
+			-15.678351 -9.862329 58.831017
+			-20.401522 -13.018251 56.798492
+			-24.936303 -16.048296 54.218979
+			-21.332190 -20.439920 54.218979
+			-17.475674 -16.583404 56.798492
+			-17.475674 -16.583404 56.798492
+			-20.401522 -13.018251 56.798492
+			-24.936303 -16.048296 54.218979
+			-29.239018 -18.923282 51.117294
+			-24.991347 -24.099083 51.117294
+			-21.332190 -20.439920 54.218979
+			-21.332190 -20.439920 54.218979
+			-24.936303 -16.048296 54.218979
+			-29.239018 -18.923282 51.117294
+			-33.268237 -21.615522 47.523331
+			-28.417914 -27.525653 47.523331
+			-24.991347 -24.099083 51.117294
+			-24.991347 -24.099083 51.117294
+			-29.239018 -18.923282 51.117294
+			-33.268237 -21.615522 47.523331
+			-36.985156 -24.099084 43.471687
+			-31.578896 -30.686628 43.471687
+			-28.417914 -27.525653 47.523331
+			-28.417914 -27.525653 47.523331
+			-33.268237 -21.615522 47.523331
+			-36.985156 -24.099084 43.471687
+			-40.353968 -26.350055 39.001392
+			-34.443827 -33.551567 39.001392
+			-31.578896 -30.686628 43.471687
+			-31.578896 -30.686628 43.471687
+			-36.985156 -24.099084 43.471687
+			-40.353968 -26.350055 39.001392
+			-43.342231 -28.346748 34.155495
+			-36.985144 -36.092876 34.155495
+			-34.443827 -33.551567 39.001392
+			-34.443827 -33.551567 39.001392
+			-40.353968 -26.350055 39.001392
+			-43.342231 -28.346748 34.155495
+			-45.921187 -30.069954 28.980652
+			-39.178366 -38.286102 28.980652
+			-36.985144 -36.092876 34.155495
+			-36.985144 -36.092876 34.155495
+			-43.342231 -28.346748 34.155495
+			-45.921187 -30.069954 28.980652
+			-48.065970 -31.503057 23.526703
+			-41.002356 -40.110096 23.526703
+			-39.178366 -38.286102 28.980652
+			-39.178366 -38.286102 28.980652
+			-45.921187 -30.069954 28.980652
+			-48.065970 -31.503057 23.526703
+			-49.755950 -32.632263 17.846195
+			-42.439566 -41.547302 17.846195
+			-41.002356 -40.110096 23.526703
+			-41.002356 -40.110096 23.526703
+			-48.065970 -31.503057 23.526703
+			-49.755950 -32.632263 17.846195
+			-50.974841 -33.446693 11.993812
+			-43.476142 -42.583877 11.993812
+			-42.439566 -41.547302 17.846195
+			-42.439566 -41.547302 17.846195
+			-49.755950 -32.632263 17.846195
+			-50.974841 -33.446693 11.993812
+			-51.710902 -33.938518 6.025923
+			-44.102111 -43.209850 6.025923
+			-43.476142 -42.583877 11.993812
+			-43.476142 -42.583877 11.993812
+			-50.974841 -33.446693 11.993812
+			-51.710902 -33.938518 6.025923
+			-51.957049 -34.102985 0.000001
+			-44.311438 -43.419181 0.000001
+			-44.102111 -43.209850 6.025923
+			-44.102111 -43.209850 6.025923
+			-51.710902 -33.938518 6.025923
+			-51.957049 -34.102985 0.000001
+			-51.710902 -33.938518 -6.025925
+			-44.102111 -43.209850 -6.025925
+			-44.311438 -43.419181 0.000001
+			-44.311438 -43.419181 0.000001
+			-51.957049 -34.102985 0.000001
+			-51.710902 -33.938518 -6.025925
+			-50.974837 -33.446701 -11.993814
+			-43.476138 -42.583885 -11.993814
+			-44.102111 -43.209850 -6.025925
+			-44.102111 -43.209850 -6.025925
+			-51.710902 -33.938518 -6.025925
+			-50.974837 -33.446701 -11.993814
+			-49.755950 -32.632259 -17.846201
+			-42.439566 -41.547298 -17.846201
+			-43.476138 -42.583885 -11.993814
+			-43.476138 -42.583885 -11.993814
+			-50.974837 -33.446701 -11.993814
+			-49.755950 -32.632259 -17.846201
+			-48.065966 -31.503048 -23.526714
+			-41.002353 -40.110088 -23.526714
+			-42.439566 -41.547298 -17.846201
+			-42.439566 -41.547298 -17.846201
+			-49.755950 -32.632259 -17.846201
+			-48.065966 -31.503048 -23.526714
+			-45.921187 -30.069954 -28.980648
+			-39.178363 -38.286098 -28.980648
+			-41.002353 -40.110088 -23.526714
+			-41.002353 -40.110088 -23.526714
+			-48.065966 -31.503048 -23.526714
+			-45.921187 -30.069954 -28.980648
+			-43.342219 -28.346746 -34.155491
+			-36.985133 -36.092872 -34.155491
+			-39.178363 -38.286098 -28.980648
+			-39.178363 -38.286098 -28.980648
+			-45.921187 -30.069954 -28.980648
+			-43.342219 -28.346746 -34.155491
+			-40.353942 -26.350051 -39.001392
+			-34.443812 -33.551555 -39.001392
+			-36.985133 -36.092872 -34.155491
+			-36.985133 -36.092872 -34.155491
+			-43.342219 -28.346746 -34.155491
+			-40.353942 -26.350051 -39.001392
+			-36.985129 -24.099073 -43.471684
+			-31.578873 -30.686611 -43.471684
+			-34.443812 -33.551555 -39.001392
+			-34.443812 -33.551555 -39.001392
+			-40.353942 -26.350051 -39.001392
+			-36.985129 -24.099073 -43.471684
+			-33.268210 -21.615507 -47.523327
+			-28.417895 -27.525632 -47.523327
+			-31.578873 -30.686611 -43.471684
+			-31.578873 -30.686611 -43.471684
+			-36.985129 -24.099073 -43.471684
+			-33.268210 -21.615507 -47.523327
+			-29.238995 -18.923271 -51.117298
+			-24.991328 -24.099065 -51.117298
+			-28.417895 -27.525632 -47.523327
+			-28.417895 -27.525632 -47.523327
+			-33.268210 -21.615507 -47.523327
+			-29.238995 -18.923271 -51.117298
+			-24.936274 -16.048278 -54.218979
+			-21.332164 -20.439897 -54.218979
+			-24.991328 -24.099065 -51.117298
+			-24.991328 -24.099065 -51.117298
+			-29.238995 -18.923271 -51.117298
+			-24.936274 -16.048278 -54.218979
+			-20.401492 -13.018234 -56.798492
+			-17.475650 -16.583383 -56.798492
+			-21.332164 -20.439897 -54.218979
+			-21.332164 -20.439897 -54.218979
+			-24.936274 -16.048278 -54.218979
+			-20.401492 -13.018234 -56.798492
+			-15.678316 -9.862305 -58.831001
+			-13.458918 -12.566647 -58.831001
+			-17.475650 -16.583383 -56.798492
+			-17.475650 -16.583383 -56.798492
+			-20.401492 -13.018234 -56.798492
+			-15.678316 -9.862305 -58.831001
+			-10.812239 -6.610897 -60.296947
+			-9.320660 -8.428389 -60.296947
+			-13.458918 -12.566647 -58.831001
+			-13.458918 -12.566647 -58.831001
+			-15.678316 -9.862305 -58.831001
+			-10.812239 -6.610897 -60.296947
+			-5.850121 -3.295316 -61.182194
+			-5.100727 -4.208455 -61.182194
+			-9.320660 -8.428389 -60.296947
+			-9.320660 -8.428389 -60.296947
+			-10.812239 -6.610897 -60.296947
+			-5.850121 -3.295316 -61.182194
+			-0.839828 0.052444 -61.478222
+			-5.100727 -4.208455 -61.182194
+			-5.850121 -3.295316 -61.182194
+			-0.839828 0.052444 -61.478222
+			-4.187587 -4.957850 -61.182194
+			-5.100727 -4.208455 -61.182194
+			-5.100727 -4.208455 -61.182194
+			-4.187587 -4.957850 -61.182194
+			-7.503166 -9.919966 -60.296947
+			-7.503166 -9.919966 -60.296947
+			-9.320660 -8.428389 -60.296947
+			-5.100727 -4.208455 -61.182194
+			-9.320660 -8.428389 -60.296947
+			-7.503166 -9.919966 -60.296947
+			-10.754576 -14.786043 -58.831001
+			-10.754576 -14.786043 -58.831001
+			-13.458918 -12.566647 -58.831001
+			-9.320660 -8.428389 -60.296947
+			-13.458918 -12.566647 -58.831001
+			-10.754576 -14.786043 -58.831001
+			-13.910498 -19.509224 -56.798492
+			-13.910498 -19.509224 -56.798492
+			-17.475650 -16.583383 -56.798492
+			-13.458918 -12.566647 -58.831001
+			-17.475650 -16.583383 -56.798492
+			-13.910498 -19.509224 -56.798492
+			-16.940545 -24.044002 -54.218979
+			-16.940545 -24.044002 -54.218979
+			-21.332164 -20.439897 -54.218979
+			-17.475650 -16.583383 -56.798492
+			-21.332164 -20.439897 -54.218979
+			-16.940545 -24.044002 -54.218979
+			-19.815528 -28.346729 -51.117298
+			-19.815528 -28.346729 -51.117298
+			-24.991328 -24.099065 -51.117298
+			-21.332164 -20.439897 -54.218979
+			-24.991328 -