From e297123be75e7767a7c11a13b0460fb842366cee Mon Sep 17 00:00:00 2001 From: Thomas FORGIONE Date: Thu, 2 Apr 2015 12:38:06 +0200 Subject: [PATCH] Initial commit --- README.md | 4 +- bouncing/index.html | 19 + bouncing/js/BouncingMain.js | 97 + data/spheres/1.obj | 22 + data/spheres/10.obj | 1642 ++ data/spheres/11.obj | 1982 ++ data/spheres/12.obj | 2354 ++ data/spheres/13.obj | 2758 +++ data/spheres/14.obj | 3194 +++ data/spheres/15.obj | 3662 ++++ data/spheres/16.obj | 4162 ++++ data/spheres/17.obj | 4694 ++++ data/spheres/18.obj | 5258 +++++ data/spheres/19.obj | 5854 +++++ data/spheres/2.obj | 74 + data/spheres/20.obj | 6482 ++++++ data/spheres/21.obj | 7142 ++++++ data/spheres/22.obj | 7834 +++++++ data/spheres/23.obj | 8558 ++++++++ data/spheres/24.obj | 9314 ++++++++ data/spheres/25.obj | 10102 +++++++++ data/spheres/3.obj | 158 + data/spheres/4.obj | 274 + data/spheres/5.obj | 422 + data/spheres/6.obj | 602 + data/spheres/7.obj | 814 + data/spheres/8.obj | 1058 + data/spheres/9.obj | 1334 ++ index.html | 37 + js/BigScene.js | 112 + js/BouncingCube.js | 36 + js/Camera.js | 28 + js/CameraContainer.js | 61 + js/Cube.js | 56 + js/FixedCamera.js | 110 + js/PointerCamera.js | 120 + js/Tools.js | 33 + js/ToolsTest.js | 79 + js/test1.js | 88 + js/three.js | 35133 ++++++++++++++++++++++++++++++ js/three/DDSLoader.js | 237 + js/three/MTLLoader.js | 441 + js/three/OBJLoader.js | 372 + js/three/OBJMTLLoader.js | 365 + js/three/OrbitControls.js | 706 + js/three/PointerLockControls.js | 63 + js/three/three.min.js | 835 + multisphere/index.html | 19 + multisphere/js/MultiSphere.js | 116 + scene/index.html | 26 + scene/js/gen.py | 49 + scene/js/main.js | 231 + 52 files changed, 129222 insertions(+), 1 deletion(-) create mode 100644 bouncing/index.html create mode 100644 bouncing/js/BouncingMain.js create mode 100644 data/spheres/1.obj create mode 100644 data/spheres/10.obj create mode 100644 data/spheres/11.obj create mode 100644 data/spheres/12.obj create mode 100644 data/spheres/13.obj create mode 100644 data/spheres/14.obj create mode 100644 data/spheres/15.obj create mode 100644 data/spheres/16.obj create mode 100644 data/spheres/17.obj create mode 100644 data/spheres/18.obj create mode 100644 data/spheres/19.obj create mode 100644 data/spheres/2.obj create mode 100644 data/spheres/20.obj create mode 100644 data/spheres/21.obj create mode 100644 data/spheres/22.obj create mode 100644 data/spheres/23.obj create mode 100644 data/spheres/24.obj create mode 100644 data/spheres/25.obj create mode 100644 data/spheres/3.obj create mode 100644 data/spheres/4.obj create mode 100644 data/spheres/5.obj create mode 100644 data/spheres/6.obj create mode 100644 data/spheres/7.obj create mode 100644 data/spheres/8.obj create mode 100644 data/spheres/9.obj create mode 100644 index.html create mode 100644 js/BigScene.js create mode 100644 js/BouncingCube.js create mode 100644 js/Camera.js create mode 100644 js/CameraContainer.js create mode 100644 js/Cube.js create mode 100644 js/FixedCamera.js create mode 100644 js/PointerCamera.js create mode 100644 js/Tools.js create mode 100644 js/ToolsTest.js create mode 100644 js/test1.js create mode 100644 js/three.js create mode 100644 js/three/DDSLoader.js create mode 100644 js/three/MTLLoader.js create mode 100644 js/three/OBJLoader.js create mode 100644 js/three/OBJMTLLoader.js create mode 100644 js/three/OrbitControls.js create mode 100644 js/three/PointerLockControls.js create mode 100644 js/three/three.min.js create mode 100644 multisphere/index.html create mode 100644 multisphere/js/MultiSphere.js create mode 100644 scene/index.html create mode 100755 scene/js/gen.py create mode 100644 scene/js/main.js diff --git a/README.md b/README.md index 732c8be..f0a126a 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ -# 3dinterface +# 3D Interface + +Various 3d interfaces based on Three.js diff --git a/bouncing/index.html b/bouncing/index.html new file mode 100644 index 0000000..4143e15 --- /dev/null +++ b/bouncing/index.html @@ -0,0 +1,19 @@ + + + + The begining + + + +

Here is stuff

+
+ + + + + + + + + + diff --git a/bouncing/js/BouncingMain.js b/bouncing/js/BouncingMain.js new file mode 100644 index 0000000..1cae98b --- /dev/null +++ b/bouncing/js/BouncingMain.js @@ -0,0 +1,97 @@ +var renderer, scene, camera, controls, cube, container, plane, mouse= {x:0, y:0}; +var raycaster; +var objects = []; +var container_size = new Object(); +container_size.width = 1067; +container_size.height = 600; + +init(); +animate(); + +function init() { + // on initialise le moteur de rendu + container = document.getElementById('container'); + container.style.height = container_size.height + 'px'; + container.style.width = container_size.width + 'px'; + renderer = new THREE.WebGLRenderer({alpha:"true"}); + renderer.setSize(container_size.width, container_size.height); + renderer.shadowMapEnabled = true; + document.getElementById('container').appendChild(renderer.domElement); + + // on initialise la scène + scene = new THREE.Scene(); + raycaster = new THREE.Raycaster(); + + // init light + var directional_light = new THREE.DirectionalLight(0xffffff); + directional_light.position.set(1, 0.5, 1).normalize(); + directional_light.castShadow = true; + scene.add(directional_light); + + var ambient_light = new THREE.AmbientLight(0x444444); + scene.add(ambient_light); + + // on initialise la camera que l’on place ensuite sur la scène + camera = new Camera(50, container_size.width / container_size.height, 1, 10000); + scene.add(camera); + + window.addEventListener('resize', onWindowResize, false); + + container.addEventListener('mousedown', click, false); + + // on créé un cube au quel on définie un matériau puis on l’ajoute à la scène + cube = new BouncingCube(200, {color: "red"}); + plane = new Plane(1000,1000); + plane.translate(0,0,-100); + + cube.addToScene(scene); + plane.addToScene(scene); + + objects.push(cube); + objects.push(plane); +} + +function animate() { + // on appelle la fonction animate() récursivement à chaque frame + requestAnimationFrame(animate); + + cube.update(); + + camera.update(); + camera.look(); + + renderer.render(scene, camera); + +} + +function onWindowResize() { + camera.aspect = container.offsetWidth / container.offsetHeight; + camera.updateProjectionMatrix(); + + renderer.setSize(container.offsetWidth, container.offsetHeight); + renderer.render(scene, camera); +} + +function click(event) { + mouse.x = ( ( event.clientX - renderer.domElement.offsetLeft ) / renderer.domElement.width ) * 2 - 1; + mouse.y = - ( ( event.clientY - renderer.domElement.offsetTop ) / renderer.domElement.height ) * 2 + 1; + + // For this alternate method, set the canvas position *fixed*; set top > 0, set left > 0; padding must be 0; margin > 0 is OK + //mouse.x = ( ( event.clientX - container.offsetLeft ) / container.clientWidth ) * 2 - 1; + //mouse.y = - ( ( event.clientY - container.offsetTop ) / container.clientHeight ) * 2 + 1; + + var vector = new THREE.Vector3(mouse.x, mouse.y, 0.5); + vector.unproject(camera); + + raycaster.set(camera.position, vector.sub(camera.position).normalize()); + + intersects = raycaster.intersectObjects(scene.children); + + if ( intersects.length > 0 ) { + for (var i in intersects) { + if (intersects[i].object.id === cube.mesh.id) { + cube.speed.z = 300; + } + } + } +} diff --git a/data/spheres/1.obj b/data/spheres/1.obj new file mode 100644 index 0000000..8120031 --- /dev/null +++ b/data/spheres/1.obj @@ -0,0 +1,22 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 86.6025 50.0001 5.88009e-39 +v 9.94527e-05 50.0001 86.6025 +v -86.6025 50.0001 0.000198905 +v -0.000288034 50.0001 -86.6025 +v 86.6026 -49.9999 5.88009e-39 +v 9.94529e-05 -49.9999 86.6026 +v -86.6026 -49.9999 0.000198906 +v -0.000288035 -49.9999 -86.6026 +f 3 4 8 7 +f 4 5 9 8 +f 5 6 10 9 +f 6 3 7 10 +f 1 4 3 +f 2 7 8 +f 1 5 4 +f 2 8 9 +f 1 6 5 +f 2 9 10 +f 1 3 6 +f 2 10 7 diff --git a/data/spheres/10.obj b/data/spheres/10.obj new file mode 100644 index 0000000..ef2cfa4 --- /dev/null +++ b/data/spheres/10.obj @@ -0,0 +1,1642 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 14.9042 98.8831 5.88009e-39 +v 14.7207 98.8831 2.33153 +v 14.1748 98.8831 4.60565 +v 13.2798 98.8831 6.76637 +v 12.0578 98.8831 8.76047 +v 10.5389 98.8831 10.5389 +v 8.76049 98.8831 12.0578 +v 6.76638 98.8831 13.2797 +v 4.60567 98.8831 14.1747 +v 2.33155 98.8831 14.7207 +v 1.71157e-05 98.8831 14.9042 +v -2.33152 98.8831 14.7207 +v -4.60564 98.8831 14.1748 +v -6.76635 98.8831 13.2798 +v -8.76046 98.8831 12.0578 +v -10.5389 98.8831 10.5389 +v -12.0577 98.8831 8.7605 +v -13.2797 98.8831 6.7664 +v -14.1747 98.8831 4.60569 +v -14.7207 98.8831 2.33156 +v -14.9042 98.8831 3.42315e-05 +v -14.7207 98.8831 -2.3315 +v -14.1748 98.8831 -4.60562 +v -13.2798 98.8831 -6.76634 +v -12.0578 98.8831 -8.76044 +v -10.5389 98.8831 -10.5388 +v -8.76052 98.8831 -12.0577 +v -6.76641 98.8831 -13.2797 +v -4.6057 98.8831 -14.1747 +v -2.33158 98.8831 -14.7207 +v -4.95705e-05 98.8831 -14.9042 +v 2.33148 98.8831 -14.7207 +v 4.6056 98.8831 -14.1748 +v 6.76632 98.8831 -13.2798 +v 8.76043 98.8831 -12.0578 +v 10.5388 98.8831 -10.5389 +v 12.0577 98.8831 -8.76053 +v 13.2797 98.8831 -6.76643 +v 14.1747 98.8831 -4.60572 +v 14.7207 98.8831 -2.3316 +v 29.4755 95.5573 5.88009e-39 +v 29.1126 95.5573 4.61098 +v 28.0329 95.5573 9.10842 +v 26.2629 95.5573 13.3816 +v 23.8462 95.5573 17.3253 +v 20.8423 95.5573 20.8423 +v 17.3253 95.5573 23.8462 +v 13.3816 95.5573 26.2628 +v 9.10845 95.5573 28.0329 +v 4.61102 95.5573 29.1126 +v 3.38491e-05 95.5573 29.4755 +v -4.61095 95.5573 29.1126 +v -9.10839 95.5573 28.0329 +v -13.3816 95.5573 26.2629 +v -17.3252 95.5573 23.8462 +v -20.8423 95.5573 20.8424 +v -23.8461 95.5573 17.3253 +v -26.2628 95.5573 13.3816 +v -28.0328 95.5573 9.10849 +v -29.1126 95.5573 4.61105 +v -29.4755 95.5573 6.76982e-05 +v -29.1126 95.5573 -4.61091 +v -28.0329 95.5573 -9.10836 +v -26.2629 95.5573 -13.3815 +v -23.8462 95.5573 -17.3252 +v -20.8424 95.5573 -20.8423 +v -17.3253 95.5573 -23.8461 +v -13.3817 95.5573 -26.2628 +v -9.10851 95.5573 -28.0328 +v -4.61108 95.5573 -29.1126 +v -9.80336e-05 95.5573 -29.4755 +v 4.61087 95.5573 -29.1126 +v 9.10833 95.5573 -28.0329 +v 13.3815 95.5573 -26.2629 +v 17.3252 95.5573 -23.8462 +v 20.8422 95.5573 -20.8424 +v 23.8461 95.5573 -17.3254 +v 26.2628 95.5573 -13.3817 +v 28.0328 95.5573 -9.10855 +v 29.1126 95.5573 -4.61112 +v 43.3883 90.0969 5.88009e-39 +v 42.8542 90.0969 6.78743 +v 41.2648 90.0969 13.4077 +v 38.6593 90.0969 19.6979 +v 35.1019 90.0969 25.503 +v 30.6802 90.0969 30.6802 +v 25.5031 90.0969 35.1019 +v 19.6979 90.0969 38.6593 +v 13.4078 90.0969 41.2648 +v 6.78748 90.0969 42.8542 +v 4.98264e-05 90.0969 43.3883 +v -6.78738 90.0969 42.8542 +v -13.4077 90.0969 41.2648 +v -19.6978 90.0969 38.6593 +v -25.503 90.0969 35.1019 +v -30.6801 90.0969 30.6802 +v -35.1019 90.0969 25.5031 +v -38.6593 90.0969 19.698 +v -41.2647 90.0969 13.4078 +v -42.8541 90.0969 6.78752 +v -43.3883 90.0969 9.96527e-05 +v -42.8542 90.0969 -6.78733 +v -41.2648 90.0969 -13.4076 +v -38.6593 90.0969 -19.6978 +v -35.102 90.0969 -25.5029 +v -30.6803 90.0969 -30.6801 +v -25.5031 90.0969 -35.1018 +v -19.698 90.0969 -38.6592 +v -13.4079 90.0969 -41.2647 +v -6.78758 90.0969 -42.8541 +v -0.000144307 90.0969 -43.3883 +v 6.78727 90.0969 -42.8542 +v 13.4076 90.0969 -41.2648 +v 19.6978 90.0969 -38.6594 +v 25.5029 90.0969 -35.102 +v 30.6801 90.0969 -30.6803 +v 35.1018 90.0969 -25.5032 +v 38.6592 90.0969 -19.6981 +v 41.2647 90.0969 -13.4079 +v 42.8541 90.0969 -6.78763 +v 56.332 82.6239 5.88009e-39 +v 55.6384 82.6239 8.81225 +v 53.5749 82.6239 17.4075 +v 50.1922 82.6239 25.5742 +v 45.5735 82.6239 33.1111 +v 39.8327 82.6239 39.8327 +v 33.1111 82.6239 45.5735 +v 25.5742 82.6239 50.1921 +v 17.4076 82.6239 53.5749 +v 8.81232 82.6239 55.6384 +v 6.46906e-05 82.6239 56.332 +v -8.81219 82.6239 55.6384 +v -17.4075 82.6239 53.5749 +v -25.5741 82.6239 50.1922 +v -33.111 82.6239 45.5736 +v -39.8327 82.6239 39.8328 +v -45.5735 82.6239 33.1112 +v -50.1921 82.6239 25.5743 +v -53.5748 82.6239 17.4077 +v -55.6384 82.6239 8.81238 +v -56.332 82.6239 0.000129381 +v -55.6385 82.6239 -8.81212 +v -53.5749 82.6239 -17.4074 +v -50.1922 82.6239 -25.574 +v -45.5736 82.6239 -33.111 +v -39.8328 82.6239 -39.8326 +v -33.1112 82.6239 -45.5734 +v -25.5743 82.6239 -50.1921 +v -17.4077 82.6239 -53.5748 +v -8.81245 82.6239 -55.6384 +v -0.000187356 82.6239 -56.332 +v 8.81205 82.6239 -55.6385 +v 17.4073 82.6239 -53.575 +v 25.574 82.6239 -50.1922 +v 33.1109 82.6239 -45.5737 +v 39.8326 82.6239 -39.8329 +v 45.5734 82.6239 -33.1113 +v 50.192 82.6239 -25.5744 +v 53.5748 82.6239 -17.4078 +v 55.6384 82.6239 -8.81252 +v 68.0172 73.3052 5.88009e-39 +v 67.1798 73.3052 10.6402 +v 64.6882 73.3052 21.0185 +v 60.6038 73.3052 30.8792 +v 55.0271 73.3052 39.9795 +v 48.0955 73.3052 48.0954 +v 39.9796 73.3052 55.0271 +v 30.8792 73.3052 60.6038 +v 21.0185 73.3052 64.6882 +v 10.6403 73.3052 67.1798 +v 7.81097e-05 73.3052 68.0172 +v -10.6402 73.3052 67.1798 +v -21.0184 73.3052 64.6883 +v -30.8791 73.3052 60.6038 +v -39.9794 73.3052 55.0272 +v -48.0954 73.3052 48.0955 +v -55.027 73.3052 39.9796 +v -60.6037 73.3052 30.8793 +v -64.6882 73.3052 21.0186 +v -67.1798 73.3052 10.6404 +v -68.0172 73.3052 0.000156219 +v -67.1799 73.3052 -10.6401 +v -64.6883 73.3052 -21.0183 +v -60.6039 73.3052 -30.879 +v -55.0272 73.3052 -39.9794 +v -48.0956 73.3052 -48.0953 +v -39.9797 73.3052 -55.027 +v -30.8794 73.3052 -60.6037 +v -21.0187 73.3052 -64.6882 +v -10.6405 73.3052 -67.1798 +v -0.000226221 73.3052 -68.0172 +v 10.64 73.3052 -67.1799 +v 21.0182 73.3052 -64.6883 +v 30.879 73.3052 -60.6039 +v 39.9793 73.3052 -55.0273 +v 48.0953 73.3052 -48.0956 +v 55.0269 73.3052 -39.9798 +v 60.6037 73.3052 -30.8794 +v 64.6881 73.3052 -21.0188 +v 67.1798 73.3052 -10.6406 +v 78.1831 62.349 5.88009e-39 +v 77.2205 62.349 12.2305 +v 74.3566 62.349 24.1599 +v 69.6617 62.349 35.4944 +v 63.2515 62.349 45.9548 +v 55.2838 62.349 55.2838 +v 45.9549 62.349 63.2514 +v 35.4944 62.349 69.6616 +v 24.16 62.349 74.3565 +v 12.2306 62.349 77.2205 +v 8.9784e-05 62.349 78.1831 +v -12.2304 62.349 77.2206 +v -24.1598 62.349 74.3566 +v -35.4943 62.349 69.6617 +v -45.9548 62.349 63.2515 +v -55.2837 62.349 55.2839 +v -63.2514 62.349 45.955 +v -69.6616 62.349 35.4945 +v -74.3565 62.349 24.1601 +v -77.2205 62.349 12.2307 +v -78.1831 62.349 0.000179568 +v -77.2206 62.349 -12.2303 +v -74.3566 62.349 -24.1597 +v -69.6618 62.349 -35.4942 +v -63.2516 62.349 -45.9547 +v -55.284 62.349 -55.2836 +v -45.9551 62.349 -63.2513 +v -35.4946 62.349 -69.6616 +v -24.1601 62.349 -74.3565 +v -12.2308 62.349 -77.2205 +v -0.000260032 62.349 -78.1831 +v 12.2302 62.349 -77.2206 +v 24.1596 62.349 -74.3566 +v 35.4941 62.349 -69.6618 +v 45.9546 62.349 -63.2516 +v 55.2836 62.349 -55.284 +v 63.2513 62.349 -45.9552 +v 69.6615 62.349 -35.4947 +v 74.3565 62.349 -24.1602 +v 77.2205 62.349 -12.2309 +v 86.6025 50.0001 5.88009e-39 +v 85.5363 50.0001 13.5476 +v 82.3639 50.0001 26.7616 +v 77.1634 50.0001 39.3167 +v 70.0629 50.0001 50.9036 +v 61.2373 50.0001 61.2372 +v 50.9037 50.0001 70.0629 +v 39.3168 50.0001 77.1634 +v 26.7617 50.0001 82.3638 +v 13.5477 50.0001 85.5363 +v 9.94527e-05 50.0001 86.6025 +v -13.5475 50.0001 85.5363 +v -26.7615 50.0001 82.3639 +v -39.3166 50.0001 77.1635 +v -50.9036 50.0001 70.063 +v -61.2371 50.0001 61.2373 +v -70.0628 50.0001 50.9038 +v -77.1633 50.0001 39.3169 +v -82.3638 50.0001 26.7618 +v -85.5363 50.0001 13.5478 +v -86.6025 50.0001 0.000198905 +v -85.5363 50.0001 -13.5474 +v -82.3639 50.0001 -26.7614 +v -77.1635 50.0001 -39.3165 +v -70.063 50.0001 -50.9035 +v -61.2374 50.0001 -61.237 +v -50.9039 50.0001 -70.0627 +v -39.3169 50.0001 -77.1633 +v -26.7619 50.0001 -82.3638 +v -13.5479 50.0001 -85.5362 +v -0.000288034 50.0001 -86.6025 +v 13.5473 50.0001 -85.5363 +v 26.7613 50.0001 -82.364 +v 39.3164 50.0001 -77.1635 +v 50.9034 50.0001 -70.0631 +v 61.237 50.0001 -61.2375 +v 70.0627 50.0001 -50.904 +v 77.1632 50.0001 -39.317 +v 82.3638 50.0001 -26.762 +v 85.5362 50.0001 -13.548 +v 93.0873 36.5342 5.88009e-39 +v 91.9413 36.5342 14.5621 +v 88.5313 36.5342 28.7656 +v 82.9414 36.5342 42.2607 +v 75.3093 36.5342 54.7153 +v 65.8227 36.5342 65.8227 +v 54.7154 36.5342 75.3092 +v 42.2608 36.5342 82.9414 +v 28.7657 36.5342 88.5313 +v 14.5622 36.5342 91.9413 +v 0.0001069 36.5342 93.0873 +v -14.562 36.5342 91.9413 +v -28.7654 36.5342 88.5314 +v -42.2606 36.5342 82.9415 +v -54.7153 36.5342 75.3093 +v -65.8226 36.5342 65.8228 +v -75.3091 36.5342 54.7155 +v -82.9413 36.5342 42.2609 +v -88.5313 36.5342 28.7658 +v -91.9413 36.5342 14.5623 +v -93.0873 36.5342 0.0002138 +v -91.9413 36.5342 -14.5618 +v -88.5314 36.5342 -28.7654 +v -82.9415 36.5342 -42.2606 +v -75.3094 36.5342 -54.7152 +v -65.8229 36.5342 -65.8225 +v -54.7156 36.5342 -75.3091 +v -42.261 36.5342 -82.9413 +v -28.7658 36.5342 -88.5312 +v -14.5624 36.5342 -91.9412 +v -0.000309602 36.5342 -93.0873 +v 14.5617 36.5342 -91.9413 +v 28.7652 36.5342 -88.5314 +v 42.2605 36.5342 -82.9416 +v 54.7151 36.5342 -75.3095 +v 65.8224 36.5342 -65.823 +v 75.309 36.5342 -54.7157 +v 82.9412 36.5342 -42.2611 +v 88.5312 36.5342 -28.7659 +v 91.9412 36.5342 -14.5625 +v 97.4928 22.2522 5.88009e-39 +v 96.2925 22.2522 15.2512 +v 92.7211 22.2522 30.1269 +v 86.8667 22.2522 44.2608 +v 78.8733 22.2522 57.3048 +v 68.9378 22.2522 68.9378 +v 57.3049 22.2522 78.8733 +v 44.2609 22.2522 86.8667 +v 30.127 22.2522 92.7211 +v 15.2513 22.2522 96.2924 +v 0.000111959 22.2522 97.4928 +v -15.2511 22.2522 96.2925 +v -30.1268 22.2522 92.7212 +v -44.2607 22.2522 86.8668 +v -57.3047 22.2522 78.8734 +v -68.9377 22.2522 68.9379 +v -78.8732 22.2522 57.305 +v -86.8666 22.2522 44.261 +v -92.7211 22.2522 30.1271 +v -96.2924 22.2522 15.2514 +v -97.4928 22.2522 0.000223918 +v -96.2925 22.2522 -15.251 +v -92.7212 22.2522 -30.1267 +v -86.8668 22.2522 -44.2606 +v -78.8735 22.2522 -57.3046 +v -68.938 22.2522 -68.9376 +v -57.3051 22.2522 -78.8731 +v -44.2611 22.2522 -86.8666 +v -30.1272 22.2522 -92.721 +v -15.2516 22.2522 -96.2924 +v -0.000324255 22.2522 -97.4928 +v 15.2509 22.2522 -96.2925 +v 30.1266 22.2522 -92.7212 +v 44.2605 22.2522 -86.8669 +v 57.3045 22.2522 -78.8735 +v 68.9375 22.2522 -68.9381 +v 78.8731 22.2522 -57.3052 +v 86.8665 22.2522 -44.2612 +v 92.721 22.2522 -30.1273 +v 96.2924 22.2522 -15.2517 +v 99.7204 7.47312 5.88009e-39 +v 98.4927 7.47312 15.5997 +v 94.8397 7.47312 30.8153 +v 88.8515 7.47312 45.2721 +v 80.6755 7.47312 58.6141 +v 70.513 7.47312 70.5129 +v 58.6142 7.47312 80.6754 +v 45.2722 7.47312 88.8515 +v 30.8154 7.47312 94.8397 +v 15.5998 7.47312 98.4926 +v 0.000114517 7.47312 99.7204 +v -15.5996 7.47312 98.4927 +v -30.8152 7.47312 94.8398 +v -45.272 7.47312 88.8516 +v -58.614 7.47312 80.6756 +v -70.5128 7.47312 70.5131 +v -80.6754 7.47312 58.6143 +v -88.8514 7.47312 45.2723 +v -94.8396 7.47312 30.8155 +v -98.4926 7.47312 15.5999 +v -99.7204 7.47312 0.000229034 +v -98.4927 7.47312 -15.5995 +v -94.8398 7.47312 -30.8151 +v -88.8516 7.47312 -45.2719 +v -80.6756 7.47312 -58.6139 +v -70.5132 7.47312 -70.5127 +v -58.6144 7.47312 -80.6753 +v -45.2724 7.47312 -88.8514 +v -30.8156 7.47312 -94.8396 +v -15.6 7.47312 -98.4926 +v -0.000331663 7.47312 -99.7204 +v 15.5993 7.47312 -98.4927 +v 30.8149 7.47312 -94.8398 +v 45.2718 7.47312 -88.8517 +v 58.6138 7.47312 -80.6757 +v 70.5127 7.47312 -70.5132 +v 80.6752 7.47312 -58.6145 +v 88.8513 7.47312 -45.2725 +v 94.8396 7.47312 -30.8157 +v 98.4926 7.47312 -15.6002 +v 99.7204 -7.47289 5.88009e-39 +v 98.4927 -7.47289 15.5997 +v 94.8397 -7.47289 30.8153 +v 88.8515 -7.47289 45.2721 +v 80.6755 -7.47289 58.6141 +v 70.513 -7.47289 70.5129 +v 58.6142 -7.47289 80.6755 +v 45.2722 -7.47289 88.8515 +v 30.8154 -7.47289 94.8397 +v 15.5998 -7.47289 98.4927 +v 0.000114517 -7.47289 99.7204 +v -15.5996 -7.47289 98.4927 +v -30.8152 -7.47289 94.8398 +v -45.272 -7.47289 88.8516 +v -58.6141 -7.47289 80.6756 +v -70.5128 -7.47289 70.5131 +v -80.6754 -7.47289 58.6143 +v -88.8514 -7.47289 45.2723 +v -94.8397 -7.47289 30.8155 +v -98.4926 -7.47289 15.5999 +v -99.7204 -7.47289 0.000229034 +v -98.4927 -7.47289 -15.5995 +v -94.8398 -7.47289 -30.8151 +v -88.8516 -7.47289 -45.2719 +v -80.6757 -7.47289 -58.614 +v -70.5132 -7.47289 -70.5128 +v -58.6144 -7.47289 -80.6753 +v -45.2724 -7.47289 -88.8514 +v -30.8156 -7.47289 -94.8396 +v -15.6 -7.47289 -98.4926 +v -0.000331664 -7.47289 -99.7204 +v 15.5993 -7.47289 -98.4927 +v 30.8149 -7.47289 -94.8398 +v 45.2718 -7.47289 -88.8517 +v 58.6138 -7.47289 -80.6757 +v 70.5127 -7.47289 -70.5132 +v 80.6752 -7.47289 -58.6145 +v 88.8513 -7.47289 -45.2725 +v 94.8396 -7.47289 -30.8157 +v 98.4926 -7.47289 -15.6002 +v 97.4928 -22.252 5.88009e-39 +v 96.2925 -22.252 15.2512 +v 92.7212 -22.252 30.1269 +v 86.8668 -22.252 44.2608 +v 78.8734 -22.252 57.3048 +v 68.9379 -22.252 68.9378 +v 57.3049 -22.252 78.8733 +v 44.2609 -22.252 86.8667 +v 30.127 -22.252 92.7212 +v 15.2513 -22.252 96.2925 +v 0.000111959 -22.252 97.4928 +v -15.2511 -22.252 96.2925 +v -30.1268 -22.252 92.7212 +v -44.2607 -22.252 86.8668 +v -57.3047 -22.252 78.8734 +v -68.9377 -22.252 68.938 +v -78.8732 -22.252 57.305 +v -86.8667 -22.252 44.261 +v -92.7211 -22.252 30.1271 +v -96.2925 -22.252 15.2514 +v -97.4928 -22.252 0.000223918 +v -96.2926 -22.252 -15.251 +v -92.7213 -22.252 -30.1267 +v -86.8669 -22.252 -44.2606 +v -78.8735 -22.252 -57.3046 +v -68.938 -22.252 -68.9376 +v -57.3051 -22.252 -78.8732 +v -44.2611 -22.252 -86.8666 +v -30.1272 -22.252 -92.7211 +v -15.2516 -22.252 -96.2925 +v -0.000324255 -22.252 -97.4928 +v 15.2509 -22.252 -96.2926 +v 30.1266 -22.252 -92.7213 +v 44.2605 -22.252 -86.8669 +v 57.3045 -22.252 -78.8736 +v 68.9376 -22.252 -68.9381 +v 78.8731 -22.252 -57.3052 +v 86.8665 -22.252 -44.2612 +v 92.7211 -22.252 -30.1273 +v 96.2924 -22.252 -15.2517 +v 93.0874 -36.534 5.88009e-39 +v 91.9414 -36.534 14.5621 +v 88.5314 -36.534 28.7656 +v 82.9415 -36.534 42.2608 +v 75.3093 -36.534 54.7154 +v 65.8228 -36.534 65.8227 +v 54.7155 -36.534 75.3093 +v 42.2609 -36.534 82.9415 +v 28.7657 -36.534 88.5314 +v 14.5622 -36.534 91.9414 +v 0.0001069 -36.534 93.0874 +v -14.562 -36.534 91.9414 +v -28.7655 -36.534 88.5314 +v -42.2607 -36.534 82.9416 +v -54.7153 -36.534 75.3094 +v -65.8226 -36.534 65.8229 +v -75.3092 -36.534 54.7156 +v -82.9414 -36.534 42.261 +v -88.5313 -36.534 28.7658 +v -91.9413 -36.534 14.5623 +v -93.0874 -36.534 0.0002138 +v -91.9414 -36.534 -14.5619 +v -88.5315 -36.534 -28.7654 +v -82.9416 -36.534 -42.2606 +v -75.3095 -36.534 -54.7152 +v -65.8229 -36.534 -65.8226 +v -54.7157 -36.534 -75.3091 +v -42.2611 -36.534 -82.9414 +v -28.7659 -36.534 -88.5313 +v -14.5624 -36.534 -91.9413 +v -0.000309603 -36.534 -93.0874 +v 14.5617 -36.534 -91.9414 +v 28.7653 -36.534 -88.5315 +v 42.2605 -36.534 -82.9417 +v 54.7151 -36.534 -75.3095 +v 65.8225 -36.534 -65.823 +v 75.3091 -36.534 -54.7157 +v 82.9413 -36.534 -42.2612 +v 88.5313 -36.534 -28.766 +v 91.9413 -36.534 -14.5625 +v 86.6026 -49.9999 5.88009e-39 +v 85.5364 -49.9999 13.5476 +v 82.364 -49.9999 26.7617 +v 77.1635 -49.9999 39.3167 +v 70.063 -49.9999 50.9037 +v 61.2373 -49.9999 61.2373 +v 50.9038 -49.9999 70.063 +v 39.3168 -49.9999 77.1635 +v 26.7618 -49.9999 82.364 +v 13.5477 -49.9999 85.5364 +v 9.94529e-05 -49.9999 86.6026 +v -13.5475 -49.9999 85.5364 +v -26.7616 -49.9999 82.364 +v -39.3166 -49.9999 77.1636 +v -50.9036 -49.9999 70.0631 +v -61.2372 -49.9999 61.2374 +v -70.0629 -49.9999 50.9039 +v -77.1634 -49.9999 39.3169 +v -82.3639 -49.9999 26.7619 +v -85.5364 -49.9999 13.5478 +v -86.6026 -49.9999 0.000198906 +v -85.5364 -49.9999 -13.5474 +v -82.3641 -49.9999 -26.7615 +v -77.1636 -49.9999 -39.3166 +v -70.0631 -49.9999 -50.9036 +v -61.2375 -49.9999 -61.2371 +v -50.904 -49.9999 -70.0628 +v -39.317 -49.9999 -77.1634 +v -26.7619 -49.9999 -82.3639 +v -13.5479 -49.9999 -85.5364 +v -0.000288035 -49.9999 -86.6026 +v 13.5473 -49.9999 -85.5365 +v 26.7614 -49.9999 -82.3641 +v 39.3165 -49.9999 -77.1636 +v 50.9035 -49.9999 -70.0632 +v 61.2371 -49.9999 -61.2375 +v 70.0628 -49.9999 -50.9041 +v 77.1633 -49.9999 -39.3171 +v 82.3639 -49.9999 -26.762 +v 85.5363 -49.9999 -13.548 +v 78.1833 -62.3488 5.88009e-39 +v 77.2207 -62.3488 12.2305 +v 74.3567 -62.3488 24.1599 +v 69.6618 -62.3488 35.4944 +v 63.2516 -62.3488 45.9549 +v 55.2839 -62.3488 55.2839 +v 45.955 -62.3488 63.2516 +v 35.4945 -62.3488 69.6618 +v 24.16 -62.3488 74.3567 +v 12.2306 -62.3488 77.2207 +v 8.97842e-05 -62.3488 78.1833 +v -12.2305 -62.3488 77.2207 +v -24.1599 -62.3488 74.3567 +v -35.4943 -62.3488 69.6618 +v -45.9549 -62.3488 63.2517 +v -55.2838 -62.3488 55.284 +v -63.2515 -62.3488 45.9551 +v -69.6617 -62.3488 35.4946 +v -74.3566 -62.3488 24.1601 +v -77.2207 -62.3488 12.2307 +v -78.1833 -62.3488 0.000179568 +v -77.2207 -62.3488 -12.2304 +v -74.3568 -62.3488 -24.1598 +v -69.6619 -62.3488 -35.4943 +v -63.2517 -62.3488 -45.9548 +v -55.2841 -62.3488 -55.2837 +v -45.9552 -62.3488 -63.2514 +v -35.4947 -62.3488 -69.6617 +v -24.1602 -62.3488 -74.3566 +v -12.2308 -62.3488 -77.2206 +v -0.000260032 -62.3488 -78.1833 +v 12.2303 -62.3488 -77.2207 +v 24.1597 -62.3488 -74.3568 +v 35.4942 -62.3488 -69.6619 +v 45.9547 -62.3488 -63.2518 +v 55.2837 -62.3488 -55.2841 +v 63.2514 -62.3488 -45.9552 +v 69.6616 -62.3488 -35.4948 +v 74.3566 -62.3488 -24.1603 +v 77.2206 -62.3488 -12.2309 +v 68.0174 -73.3051 5.88009e-39 +v 67.18 -73.3051 10.6403 +v 64.6884 -73.3051 21.0185 +v 60.604 -73.3051 30.8792 +v 55.0273 -73.3051 39.9796 +v 48.0956 -73.3051 48.0955 +v 39.9797 -73.3051 55.0272 +v 30.8793 -73.3051 60.6039 +v 21.0186 -73.3051 64.6884 +v 10.6403 -73.3051 67.18 +v 7.81099e-05 -73.3051 68.0174 +v -10.6402 -73.3051 67.18 +v -21.0184 -73.3051 64.6884 +v -30.8792 -73.3051 60.604 +v -39.9795 -73.3051 55.0273 +v -48.0955 -73.3051 48.0956 +v -55.0272 -73.3051 39.9797 +v -60.6039 -73.3051 30.8794 +v -64.6883 -73.3051 21.0187 +v -67.18 -73.3051 10.6404 +v -68.0174 -73.3051 0.00015622 +v -67.18 -73.3051 -10.6401 +v -64.6884 -73.3051 -21.0184 +v -60.604 -73.3051 -30.8791 +v -55.0273 -73.3051 -39.9795 +v -48.0957 -73.3051 -48.0954 +v -39.9798 -73.3051 -55.0271 +v -30.8794 -73.3051 -60.6039 +v -21.0187 -73.3051 -64.6883 +v -10.6405 -73.3051 -67.18 +v -0.000226221 -73.3051 -68.0174 +v 10.64 -73.3051 -67.18 +v 21.0183 -73.3051 -64.6885 +v 30.879 -73.3051 -60.6041 +v 39.9794 -73.3051 -55.0274 +v 48.0954 -73.3051 -48.0958 +v 55.0271 -73.3051 -39.9799 +v 60.6038 -73.3051 -30.8795 +v 64.6883 -73.3051 -21.0188 +v 67.1799 -73.3051 -10.6406 +v 56.3322 -82.6238 5.88009e-39 +v 55.6386 -82.6238 8.81229 +v 53.5751 -82.6238 17.4076 +v 50.1923 -82.6238 25.5743 +v 45.5737 -82.6238 33.1112 +v 39.8329 -82.6238 39.8328 +v 33.1112 -82.6238 45.5737 +v 25.5743 -82.6238 50.1923 +v 17.4076 -82.6238 53.5751 +v 8.81235 -82.6238 55.6386 +v 6.46908e-05 -82.6238 56.3322 +v -8.81223 -82.6238 55.6386 +v -17.4075 -82.6238 53.5751 +v -25.5742 -82.6238 50.1924 +v -33.1111 -82.6238 45.5737 +v -39.8328 -82.6238 39.8329 +v -45.5736 -82.6238 33.1113 +v -50.1923 -82.6238 25.5744 +v -53.575 -82.6238 17.4077 +v -55.6386 -82.6238 8.81241 +v -56.3322 -82.6238 0.000129382 +v -55.6386 -82.6238 -8.81215 +v -53.5751 -82.6238 -17.4075 +v -50.1924 -82.6238 -25.5741 +v -45.5738 -82.6238 -33.1111 +v -39.833 -82.6238 -39.8327 +v -33.1114 -82.6238 -45.5736 +v -25.5744 -82.6238 -50.1922 +v -17.4078 -82.6238 -53.575 +v -8.81248 -82.6238 -55.6386 +v -0.000187357 -82.6238 -56.3322 +v 8.81208 -82.6238 -55.6387 +v 17.4074 -82.6238 -53.5751 +v 25.5741 -82.6238 -50.1924 +v 33.111 -82.6238 -45.5738 +v 39.8327 -82.6238 -39.833 +v 45.5735 -82.6238 -33.1114 +v 50.1922 -82.6238 -25.5745 +v 53.575 -82.6238 -17.4078 +v 55.6386 -82.6238 -8.81255 +v 43.3886 -90.0968 5.88009e-39 +v 42.8544 -90.0968 6.78746 +v 41.265 -90.0968 13.4078 +v 38.6595 -90.0968 19.698 +v 35.1021 -90.0968 25.5031 +v 30.6804 -90.0968 30.6803 +v 25.5032 -90.0968 35.1021 +v 19.698 -90.0968 38.6595 +v 13.4078 -90.0968 41.265 +v 6.78751 -90.0968 42.8544 +v 4.98266e-05 -90.0968 43.3886 +v -6.78741 -90.0968 42.8544 +v -13.4077 -90.0968 41.265 +v -19.6979 -90.0968 38.6595 +v -25.5031 -90.0968 35.1021 +v -30.6803 -90.0968 30.6804 +v -35.102 -90.0968 25.5032 +v -38.6594 -90.0968 19.6981 +v -41.2649 -90.0968 13.4079 +v -42.8544 -90.0968 6.78756 +v -43.3886 -90.0968 9.96532e-05 +v -42.8544 -90.0968 -6.78736 +v -41.265 -90.0968 -13.4077 +v -38.6595 -90.0968 -19.6979 +v -35.1021 -90.0968 -25.5031 +v -30.6804 -90.0968 -30.6803 +v -25.5033 -90.0968 -35.102 +v -19.6981 -90.0968 -38.6594 +v -13.4079 -90.0968 -41.2649 +v -6.78761 -90.0968 -42.8543 +v -0.000144308 -90.0968 -43.3886 +v 6.7873 -90.0968 -42.8544 +v 13.4076 -90.0968 -41.265 +v 19.6979 -90.0968 -38.6596 +v 25.503 -90.0968 -35.1022 +v 30.6802 -90.0968 -30.6805 +v 35.102 -90.0968 -25.5033 +v 38.6594 -90.0968 -19.6982 +v 41.2649 -90.0968 -13.408 +v 42.8543 -90.0968 -6.78766 +v 29.4757 -95.5572 5.88009e-39 +v 29.1128 -95.5572 4.61101 +v 28.0331 -95.5572 9.10849 +v 26.2631 -95.5572 13.3817 +v 23.8464 -95.5572 17.3254 +v 20.8425 -95.5572 20.8425 +v 17.3254 -95.5572 23.8463 +v 13.3817 -95.5572 26.263 +v 9.10852 -95.5572 28.0331 +v 4.61105 -95.5572 29.1128 +v 3.38494e-05 -95.5572 29.4757 +v -4.61098 -95.5572 29.1128 +v -9.10846 -95.5572 28.0331 +v -13.3817 -95.5572 26.2631 +v -17.3254 -95.5572 23.8464 +v -20.8424 -95.5572 20.8425 +v -23.8463 -95.5572 17.3254 +v -26.263 -95.5572 13.3817 +v -28.0331 -95.5572 9.10856 +v -29.1128 -95.5572 4.61108 +v -29.4757 -95.5572 6.76987e-05 +v -29.1128 -95.5572 -4.61095 +v -28.0331 -95.5572 -9.10843 +v -26.2631 -95.5572 -13.3816 +v -23.8464 -95.5572 -17.3253 +v -20.8425 -95.5572 -20.8424 +v -17.3255 -95.5572 -23.8463 +v -13.3818 -95.5572 -26.263 +v -9.10858 -95.5572 -28.033 +v -4.61112 -95.5572 -29.1128 +v -9.80343e-05 -95.5572 -29.4757 +v 4.61091 -95.5572 -29.1128 +v 9.10839 -95.5572 -28.0331 +v 13.3816 -95.5572 -26.2631 +v 17.3253 -95.5572 -23.8464 +v 20.8424 -95.5572 -20.8426 +v 23.8463 -95.5572 -17.3255 +v 26.263 -95.5572 -13.3818 +v 28.033 -95.5572 -9.10862 +v 29.1128 -95.5572 -4.61115 +v 14.9044 -98.883 5.88009e-39 +v 14.7209 -98.883 2.33157 +v 14.175 -98.883 4.60572 +v 13.28 -98.883 6.76647 +v 12.058 -98.883 8.76061 +v 10.539 -98.883 10.539 +v 8.76062 -98.883 12.0579 +v 6.76649 -98.883 13.28 +v 4.60574 -98.883 14.175 +v 2.33158 -98.883 14.7209 +v 1.7116e-05 -98.883 14.9044 +v -2.33155 -98.883 14.7209 +v -4.60571 -98.883 14.175 +v -6.76646 -98.883 13.28 +v -8.76059 -98.883 12.058 +v -10.539 -98.883 10.5391 +v -12.0579 -98.883 8.76063 +v -13.2799 -98.883 6.7665 +v -14.175 -98.883 4.60576 +v -14.7209 -98.883 2.3316 +v -14.9044 -98.883 3.4232e-05 +v -14.721 -98.883 -2.33153 +v -14.175 -98.883 -4.60569 +v -13.28 -98.883 -6.76644 +v -12.058 -98.883 -8.76058 +v -10.5391 -98.883 -10.539 +v -8.76065 -98.883 -12.0579 +v -6.76652 -98.883 -13.2799 +v -4.60577 -98.883 -14.175 +v -2.33162 -98.883 -14.7209 +v -4.95712e-05 -98.883 -14.9044 +v 2.33151 -98.883 -14.721 +v 4.60567 -98.883 -14.175 +v 6.76643 -98.883 -13.28 +v 8.76056 -98.883 -12.058 +v 10.539 -98.883 -10.5391 +v 12.0579 -98.883 -8.76066 +v 13.2799 -98.883 -6.76653 +v 14.1749 -98.883 -4.60579 +v 14.7209 -98.883 -2.33164 +f 3 4 44 43 +f 4 5 45 44 +f 5 6 46 45 +f 6 7 47 46 +f 7 8 48 47 +f 8 9 49 48 +f 9 10 50 49 +f 10 11 51 50 +f 11 12 52 51 +f 12 13 53 52 +f 13 14 54 53 +f 14 15 55 54 +f 15 16 56 55 +f 16 17 57 56 +f 17 18 58 57 +f 18 19 59 58 +f 19 20 60 59 +f 20 21 61 60 +f 21 22 62 61 +f 22 23 63 62 +f 23 24 64 63 +f 24 25 65 64 +f 25 26 66 65 +f 26 27 67 66 +f 27 28 68 67 +f 28 29 69 68 +f 29 30 70 69 +f 30 31 71 70 +f 31 32 72 71 +f 32 33 73 72 +f 33 34 74 73 +f 34 35 75 74 +f 35 36 76 75 +f 36 37 77 76 +f 37 38 78 77 +f 38 39 79 78 +f 39 40 80 79 +f 40 41 81 80 +f 41 42 82 81 +f 42 3 43 82 +f 43 44 84 83 +f 44 45 85 84 +f 45 46 86 85 +f 46 47 87 86 +f 47 48 88 87 +f 48 49 89 88 +f 49 50 90 89 +f 50 51 91 90 +f 51 52 92 91 +f 52 53 93 92 +f 53 54 94 93 +f 54 55 95 94 +f 55 56 96 95 +f 56 57 97 96 +f 57 58 98 97 +f 58 59 99 98 +f 59 60 100 99 +f 60 61 101 100 +f 61 62 102 101 +f 62 63 103 102 +f 63 64 104 103 +f 64 65 105 104 +f 65 66 106 105 +f 66 67 107 106 +f 67 68 108 107 +f 68 69 109 108 +f 69 70 110 109 +f 70 71 111 110 +f 71 72 112 111 +f 72 73 113 112 +f 73 74 114 113 +f 74 75 115 114 +f 75 76 116 115 +f 76 77 117 116 +f 77 78 118 117 +f 78 79 119 118 +f 79 80 120 119 +f 80 81 121 120 +f 81 82 122 121 +f 82 43 83 122 +f 83 84 124 123 +f 84 85 125 124 +f 85 86 126 125 +f 86 87 127 126 +f 87 88 128 127 +f 88 89 129 128 +f 89 90 130 129 +f 90 91 131 130 +f 91 92 132 131 +f 92 93 133 132 +f 93 94 134 133 +f 94 95 135 134 +f 95 96 136 135 +f 96 97 137 136 +f 97 98 138 137 +f 98 99 139 138 +f 99 100 140 139 +f 100 101 141 140 +f 101 102 142 141 +f 102 103 143 142 +f 103 104 144 143 +f 104 105 145 144 +f 105 106 146 145 +f 106 107 147 146 +f 107 108 148 147 +f 108 109 149 148 +f 109 110 150 149 +f 110 111 151 150 +f 111 112 152 151 +f 112 113 153 152 +f 113 114 154 153 +f 114 115 155 154 +f 115 116 156 155 +f 116 117 157 156 +f 117 118 158 157 +f 118 119 159 158 +f 119 120 160 159 +f 120 121 161 160 +f 121 122 162 161 +f 122 83 123 162 +f 123 124 164 163 +f 124 125 165 164 +f 125 126 166 165 +f 126 127 167 166 +f 127 128 168 167 +f 128 129 169 168 +f 129 130 170 169 +f 130 131 171 170 +f 131 132 172 171 +f 132 133 173 172 +f 133 134 174 173 +f 134 135 175 174 +f 135 136 176 175 +f 136 137 177 176 +f 137 138 178 177 +f 138 139 179 178 +f 139 140 180 179 +f 140 141 181 180 +f 141 142 182 181 +f 142 143 183 182 +f 143 144 184 183 +f 144 145 185 184 +f 145 146 186 185 +f 146 147 187 186 +f 147 148 188 187 +f 148 149 189 188 +f 149 150 190 189 +f 150 151 191 190 +f 151 152 192 191 +f 152 153 193 192 +f 153 154 194 193 +f 154 155 195 194 +f 155 156 196 195 +f 156 157 197 196 +f 157 158 198 197 +f 158 159 199 198 +f 159 160 200 199 +f 160 161 201 200 +f 161 162 202 201 +f 162 123 163 202 +f 163 164 204 203 +f 164 165 205 204 +f 165 166 206 205 +f 166 167 207 206 +f 167 168 208 207 +f 168 169 209 208 +f 169 170 210 209 +f 170 171 211 210 +f 171 172 212 211 +f 172 173 213 212 +f 173 174 214 213 +f 174 175 215 214 +f 175 176 216 215 +f 176 177 217 216 +f 177 178 218 217 +f 178 179 219 218 +f 179 180 220 219 +f 180 181 221 220 +f 181 182 222 221 +f 182 183 223 222 +f 183 184 224 223 +f 184 185 225 224 +f 185 186 226 225 +f 186 187 227 226 +f 187 188 228 227 +f 188 189 229 228 +f 189 190 230 229 +f 190 191 231 230 +f 191 192 232 231 +f 192 193 233 232 +f 193 194 234 233 +f 194 195 235 234 +f 195 196 236 235 +f 196 197 237 236 +f 197 198 238 237 +f 198 199 239 238 +f 199 200 240 239 +f 200 201 241 240 +f 201 202 242 241 +f 202 163 203 242 +f 203 204 244 243 +f 204 205 245 244 +f 205 206 246 245 +f 206 207 247 246 +f 207 208 248 247 +f 208 209 249 248 +f 209 210 250 249 +f 210 211 251 250 +f 211 212 252 251 +f 212 213 253 252 +f 213 214 254 253 +f 214 215 255 254 +f 215 216 256 255 +f 216 217 257 256 +f 217 218 258 257 +f 218 219 259 258 +f 219 220 260 259 +f 220 221 261 260 +f 221 222 262 261 +f 222 223 263 262 +f 223 224 264 263 +f 224 225 265 264 +f 225 226 266 265 +f 226 227 267 266 +f 227 228 268 267 +f 228 229 269 268 +f 229 230 270 269 +f 230 231 271 270 +f 231 232 272 271 +f 232 233 273 272 +f 233 234 274 273 +f 234 235 275 274 +f 235 236 276 275 +f 236 237 277 276 +f 237 238 278 277 +f 238 239 279 278 +f 239 240 280 279 +f 240 241 281 280 +f 241 242 282 281 +f 242 203 243 282 +f 243 244 284 283 +f 244 245 285 284 +f 245 246 286 285 +f 246 247 287 286 +f 247 248 288 287 +f 248 249 289 288 +f 249 250 290 289 +f 250 251 291 290 +f 251 252 292 291 +f 252 253 293 292 +f 253 254 294 293 +f 254 255 295 294 +f 255 256 296 295 +f 256 257 297 296 +f 257 258 298 297 +f 258 259 299 298 +f 259 260 300 299 +f 260 261 301 300 +f 261 262 302 301 +f 262 263 303 302 +f 263 264 304 303 +f 264 265 305 304 +f 265 266 306 305 +f 266 267 307 306 +f 267 268 308 307 +f 268 269 309 308 +f 269 270 310 309 +f 270 271 311 310 +f 271 272 312 311 +f 272 273 313 312 +f 273 274 314 313 +f 274 275 315 314 +f 275 276 316 315 +f 276 277 317 316 +f 277 278 318 317 +f 278 279 319 318 +f 279 280 320 319 +f 280 281 321 320 +f 281 282 322 321 +f 282 243 283 322 +f 283 284 324 323 +f 284 285 325 324 +f 285 286 326 325 +f 286 287 327 326 +f 287 288 328 327 +f 288 289 329 328 +f 289 290 330 329 +f 290 291 331 330 +f 291 292 332 331 +f 292 293 333 332 +f 293 294 334 333 +f 294 295 335 334 +f 295 296 336 335 +f 296 297 337 336 +f 297 298 338 337 +f 298 299 339 338 +f 299 300 340 339 +f 300 301 341 340 +f 301 302 342 341 +f 302 303 343 342 +f 303 304 344 343 +f 304 305 345 344 +f 305 306 346 345 +f 306 307 347 346 +f 307 308 348 347 +f 308 309 349 348 +f 309 310 350 349 +f 310 311 351 350 +f 311 312 352 351 +f 312 313 353 352 +f 313 314 354 353 +f 314 315 355 354 +f 315 316 356 355 +f 316 317 357 356 +f 317 318 358 357 +f 318 319 359 358 +f 319 320 360 359 +f 320 321 361 360 +f 321 322 362 361 +f 322 283 323 362 +f 323 324 364 363 +f 324 325 365 364 +f 325 326 366 365 +f 326 327 367 366 +f 327 328 368 367 +f 328 329 369 368 +f 329 330 370 369 +f 330 331 371 370 +f 331 332 372 371 +f 332 333 373 372 +f 333 334 374 373 +f 334 335 375 374 +f 335 336 376 375 +f 336 337 377 376 +f 337 338 378 377 +f 338 339 379 378 +f 339 340 380 379 +f 340 341 381 380 +f 341 342 382 381 +f 342 343 383 382 +f 343 344 384 383 +f 344 345 385 384 +f 345 346 386 385 +f 346 347 387 386 +f 347 348 388 387 +f 348 349 389 388 +f 349 350 390 389 +f 350 351 391 390 +f 351 352 392 391 +f 352 353 393 392 +f 353 354 394 393 +f 354 355 395 394 +f 355 356 396 395 +f 356 357 397 396 +f 357 358 398 397 +f 358 359 399 398 +f 359 360 400 399 +f 360 361 401 400 +f 361 362 402 401 +f 362 323 363 402 +f 363 364 404 403 +f 364 365 405 404 +f 365 366 406 405 +f 366 367 407 406 +f 367 368 408 407 +f 368 369 409 408 +f 369 370 410 409 +f 370 371 411 410 +f 371 372 412 411 +f 372 373 413 412 +f 373 374 414 413 +f 374 375 415 414 +f 375 376 416 415 +f 376 377 417 416 +f 377 378 418 417 +f 378 379 419 418 +f 379 380 420 419 +f 380 381 421 420 +f 381 382 422 421 +f 382 383 423 422 +f 383 384 424 423 +f 384 385 425 424 +f 385 386 426 425 +f 386 387 427 426 +f 387 388 428 427 +f 388 389 429 428 +f 389 390 430 429 +f 390 391 431 430 +f 391 392 432 431 +f 392 393 433 432 +f 393 394 434 433 +f 394 395 435 434 +f 395 396 436 435 +f 396 397 437 436 +f 397 398 438 437 +f 398 399 439 438 +f 399 400 440 439 +f 400 401 441 440 +f 401 402 442 441 +f 402 363 403 442 +f 403 404 444 443 +f 404 405 445 444 +f 405 406 446 445 +f 406 407 447 446 +f 407 408 448 447 +f 408 409 449 448 +f 409 410 450 449 +f 410 411 451 450 +f 411 412 452 451 +f 412 413 453 452 +f 413 414 454 453 +f 414 415 455 454 +f 415 416 456 455 +f 416 417 457 456 +f 417 418 458 457 +f 418 419 459 458 +f 419 420 460 459 +f 420 421 461 460 +f 421 422 462 461 +f 422 423 463 462 +f 423 424 464 463 +f 424 425 465 464 +f 425 426 466 465 +f 426 427 467 466 +f 427 428 468 467 +f 428 429 469 468 +f 429 430 470 469 +f 430 431 471 470 +f 431 432 472 471 +f 432 433 473 472 +f 433 434 474 473 +f 434 435 475 474 +f 435 436 476 475 +f 436 437 477 476 +f 437 438 478 477 +f 438 439 479 478 +f 439 440 480 479 +f 440 441 481 480 +f 441 442 482 481 +f 442 403 443 482 +f 443 444 484 483 +f 444 445 485 484 +f 445 446 486 485 +f 446 447 487 486 +f 447 448 488 487 +f 448 449 489 488 +f 449 450 490 489 +f 450 451 491 490 +f 451 452 492 491 +f 452 453 493 492 +f 453 454 494 493 +f 454 455 495 494 +f 455 456 496 495 +f 456 457 497 496 +f 457 458 498 497 +f 458 459 499 498 +f 459 460 500 499 +f 460 461 501 500 +f 461 462 502 501 +f 462 463 503 502 +f 463 464 504 503 +f 464 465 505 504 +f 465 466 506 505 +f 466 467 507 506 +f 467 468 508 507 +f 468 469 509 508 +f 469 470 510 509 +f 470 471 511 510 +f 471 472 512 511 +f 472 473 513 512 +f 473 474 514 513 +f 474 475 515 514 +f 475 476 516 515 +f 476 477 517 516 +f 477 478 518 517 +f 478 479 519 518 +f 479 480 520 519 +f 480 481 521 520 +f 481 482 522 521 +f 482 443 483 522 +f 483 484 524 523 +f 484 485 525 524 +f 485 486 526 525 +f 486 487 527 526 +f 487 488 528 527 +f 488 489 529 528 +f 489 490 530 529 +f 490 491 531 530 +f 491 492 532 531 +f 492 493 533 532 +f 493 494 534 533 +f 494 495 535 534 +f 495 496 536 535 +f 496 497 537 536 +f 497 498 538 537 +f 498 499 539 538 +f 499 500 540 539 +f 500 501 541 540 +f 501 502 542 541 +f 502 503 543 542 +f 503 504 544 543 +f 504 505 545 544 +f 505 506 546 545 +f 506 507 547 546 +f 507 508 548 547 +f 508 509 549 548 +f 509 510 550 549 +f 510 511 551 550 +f 511 512 552 551 +f 512 513 553 552 +f 513 514 554 553 +f 514 515 555 554 +f 515 516 556 555 +f 516 517 557 556 +f 517 518 558 557 +f 518 519 559 558 +f 519 520 560 559 +f 520 521 561 560 +f 521 522 562 561 +f 522 483 523 562 +f 523 524 564 563 +f 524 525 565 564 +f 525 526 566 565 +f 526 527 567 566 +f 527 528 568 567 +f 528 529 569 568 +f 529 530 570 569 +f 530 531 571 570 +f 531 532 572 571 +f 532 533 573 572 +f 533 534 574 573 +f 534 535 575 574 +f 535 536 576 575 +f 536 537 577 576 +f 537 538 578 577 +f 538 539 579 578 +f 539 540 580 579 +f 540 541 581 580 +f 541 542 582 581 +f 542 543 583 582 +f 543 544 584 583 +f 544 545 585 584 +f 545 546 586 585 +f 546 547 587 586 +f 547 548 588 587 +f 548 549 589 588 +f 549 550 590 589 +f 550 551 591 590 +f 551 552 592 591 +f 552 553 593 592 +f 553 554 594 593 +f 554 555 595 594 +f 555 556 596 595 +f 556 557 597 596 +f 557 558 598 597 +f 558 559 599 598 +f 559 560 600 599 +f 560 561 601 600 +f 561 562 602 601 +f 562 523 563 602 +f 563 564 604 603 +f 564 565 605 604 +f 565 566 606 605 +f 566 567 607 606 +f 567 568 608 607 +f 568 569 609 608 +f 569 570 610 609 +f 570 571 611 610 +f 571 572 612 611 +f 572 573 613 612 +f 573 574 614 613 +f 574 575 615 614 +f 575 576 616 615 +f 576 577 617 616 +f 577 578 618 617 +f 578 579 619 618 +f 579 580 620 619 +f 580 581 621 620 +f 581 582 622 621 +f 582 583 623 622 +f 583 584 624 623 +f 584 585 625 624 +f 585 586 626 625 +f 586 587 627 626 +f 587 588 628 627 +f 588 589 629 628 +f 589 590 630 629 +f 590 591 631 630 +f 591 592 632 631 +f 592 593 633 632 +f 593 594 634 633 +f 594 595 635 634 +f 595 596 636 635 +f 596 597 637 636 +f 597 598 638 637 +f 598 599 639 638 +f 599 600 640 639 +f 600 601 641 640 +f 601 602 642 641 +f 602 563 603 642 +f 603 604 644 643 +f 604 605 645 644 +f 605 606 646 645 +f 606 607 647 646 +f 607 608 648 647 +f 608 609 649 648 +f 609 610 650 649 +f 610 611 651 650 +f 611 612 652 651 +f 612 613 653 652 +f 613 614 654 653 +f 614 615 655 654 +f 615 616 656 655 +f 616 617 657 656 +f 617 618 658 657 +f 618 619 659 658 +f 619 620 660 659 +f 620 621 661 660 +f 621 622 662 661 +f 622 623 663 662 +f 623 624 664 663 +f 624 625 665 664 +f 625 626 666 665 +f 626 627 667 666 +f 627 628 668 667 +f 628 629 669 668 +f 629 630 670 669 +f 630 631 671 670 +f 631 632 672 671 +f 632 633 673 672 +f 633 634 674 673 +f 634 635 675 674 +f 635 636 676 675 +f 636 637 677 676 +f 637 638 678 677 +f 638 639 679 678 +f 639 640 680 679 +f 640 641 681 680 +f 641 642 682 681 +f 642 603 643 682 +f 643 644 684 683 +f 644 645 685 684 +f 645 646 686 685 +f 646 647 687 686 +f 647 648 688 687 +f 648 649 689 688 +f 649 650 690 689 +f 650 651 691 690 +f 651 652 692 691 +f 652 653 693 692 +f 653 654 694 693 +f 654 655 695 694 +f 655 656 696 695 +f 656 657 697 696 +f 657 658 698 697 +f 658 659 699 698 +f 659 660 700 699 +f 660 661 701 700 +f 661 662 702 701 +f 662 663 703 702 +f 663 664 704 703 +f 664 665 705 704 +f 665 666 706 705 +f 666 667 707 706 +f 667 668 708 707 +f 668 669 709 708 +f 669 670 710 709 +f 670 671 711 710 +f 671 672 712 711 +f 672 673 713 712 +f 673 674 714 713 +f 674 675 715 714 +f 675 676 716 715 +f 676 677 717 716 +f 677 678 718 717 +f 678 679 719 718 +f 679 680 720 719 +f 680 681 721 720 +f 681 682 722 721 +f 682 643 683 722 +f 683 684 724 723 +f 684 685 725 724 +f 685 686 726 725 +f 686 687 727 726 +f 687 688 728 727 +f 688 689 729 728 +f 689 690 730 729 +f 690 691 731 730 +f 691 692 732 731 +f 692 693 733 732 +f 693 694 734 733 +f 694 695 735 734 +f 695 696 736 735 +f 696 697 737 736 +f 697 698 738 737 +f 698 699 739 738 +f 699 700 740 739 +f 700 701 741 740 +f 701 702 742 741 +f 702 703 743 742 +f 703 704 744 743 +f 704 705 745 744 +f 705 706 746 745 +f 706 707 747 746 +f 707 708 748 747 +f 708 709 749 748 +f 709 710 750 749 +f 710 711 751 750 +f 711 712 752 751 +f 712 713 753 752 +f 713 714 754 753 +f 714 715 755 754 +f 715 716 756 755 +f 716 717 757 756 +f 717 718 758 757 +f 718 719 759 758 +f 719 720 760 759 +f 720 721 761 760 +f 721 722 762 761 +f 722 683 723 762 +f 723 724 764 763 +f 724 725 765 764 +f 725 726 766 765 +f 726 727 767 766 +f 727 728 768 767 +f 728 729 769 768 +f 729 730 770 769 +f 730 731 771 770 +f 731 732 772 771 +f 732 733 773 772 +f 733 734 774 773 +f 734 735 775 774 +f 735 736 776 775 +f 736 737 777 776 +f 737 738 778 777 +f 738 739 779 778 +f 739 740 780 779 +f 740 741 781 780 +f 741 742 782 781 +f 742 743 783 782 +f 743 744 784 783 +f 744 745 785 784 +f 745 746 786 785 +f 746 747 787 786 +f 747 748 788 787 +f 748 749 789 788 +f 749 750 790 789 +f 750 751 791 790 +f 751 752 792 791 +f 752 753 793 792 +f 753 754 794 793 +f 754 755 795 794 +f 755 756 796 795 +f 756 757 797 796 +f 757 758 798 797 +f 758 759 799 798 +f 759 760 800 799 +f 760 761 801 800 +f 761 762 802 801 +f 762 723 763 802 +f 1 4 3 +f 2 763 764 +f 1 5 4 +f 2 764 765 +f 1 6 5 +f 2 765 766 +f 1 7 6 +f 2 766 767 +f 1 8 7 +f 2 767 768 +f 1 9 8 +f 2 768 769 +f 1 10 9 +f 2 769 770 +f 1 11 10 +f 2 770 771 +f 1 12 11 +f 2 771 772 +f 1 13 12 +f 2 772 773 +f 1 14 13 +f 2 773 774 +f 1 15 14 +f 2 774 775 +f 1 16 15 +f 2 775 776 +f 1 17 16 +f 2 776 777 +f 1 18 17 +f 2 777 778 +f 1 19 18 +f 2 778 779 +f 1 20 19 +f 2 779 780 +f 1 21 20 +f 2 780 781 +f 1 22 21 +f 2 781 782 +f 1 23 22 +f 2 782 783 +f 1 24 23 +f 2 783 784 +f 1 25 24 +f 2 784 785 +f 1 26 25 +f 2 785 786 +f 1 27 26 +f 2 786 787 +f 1 28 27 +f 2 787 788 +f 1 29 28 +f 2 788 789 +f 1 30 29 +f 2 789 790 +f 1 31 30 +f 2 790 791 +f 1 32 31 +f 2 791 792 +f 1 33 32 +f 2 792 793 +f 1 34 33 +f 2 793 794 +f 1 35 34 +f 2 794 795 +f 1 36 35 +f 2 795 796 +f 1 37 36 +f 2 796 797 +f 1 38 37 +f 2 797 798 +f 1 39 38 +f 2 798 799 +f 1 40 39 +f 2 799 800 +f 1 41 40 +f 2 800 801 +f 1 42 41 +f 2 801 802 +f 1 3 42 +f 2 802 763 diff --git a/data/spheres/11.obj b/data/spheres/11.obj new file mode 100644 index 0000000..c018af6 --- /dev/null +++ b/data/spheres/11.obj @@ -0,0 +1,1982 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 13.6167 99.0686 5.88009e-39 +v 13.4781 99.0686 1.93785 +v 13.0651 99.0686 3.83625 +v 12.3861 99.0686 5.65656 +v 11.4551 99.0686 7.36171 +v 10.2908 99.0686 8.91701 +v 8.91702 99.0686 10.2908 +v 7.36173 99.0686 11.4551 +v 5.65657 99.0686 12.3861 +v 3.83627 99.0686 13.0651 +v 1.93787 99.0686 13.4781 +v 1.72603e-05 99.0686 13.6167 +v -1.93783 99.0686 13.4781 +v -3.83624 99.0686 13.0651 +v -5.65654 99.0686 12.3862 +v -7.3617 99.0686 11.4551 +v -8.91699 99.0686 10.2908 +v -10.2908 99.0686 8.91703 +v -11.455 99.0686 7.36174 +v -12.3861 99.0686 5.65659 +v -13.0651 99.0686 3.83628 +v -13.4781 99.0686 1.93788 +v -13.6167 99.0686 3.45207e-05 +v -13.4781 99.0686 -1.93782 +v -13.0651 99.0686 -3.83622 +v -12.3862 99.0686 -5.65653 +v -11.4551 99.0686 -7.36169 +v -10.2908 99.0686 -8.91698 +v -8.91704 99.0686 -10.2908 +v -7.36175 99.0686 -11.455 +v -5.6566 99.0686 -12.3861 +v -3.8363 99.0686 -13.0651 +v -1.9379 99.0686 -13.478 +v -5.1781e-05 99.0686 -13.6167 +v 1.9378 99.0686 -13.4781 +v 3.8362 99.0686 -13.0651 +v 5.65652 99.0686 -12.3862 +v 7.36167 99.0686 -11.4551 +v 8.91697 99.0686 -10.2908 +v 10.2907 99.0686 -8.91705 +v 11.455 99.0686 -7.36177 +v 12.3861 99.0686 -5.65662 +v 13.0651 99.0686 -3.83631 +v 13.478 99.0686 -1.93792 +v 26.9797 96.2917 5.88009e-39 +v 26.705 96.2917 3.8396 +v 25.8868 96.2917 7.60104 +v 24.5416 96.2917 11.2077 +v 22.6967 96.2917 14.5863 +v 20.3899 96.2917 17.6679 +v 17.6679 96.2917 20.3899 +v 14.5863 96.2917 22.6967 +v 11.2078 96.2917 24.5415 +v 7.60107 96.2917 25.8868 +v 3.83963 96.2917 26.705 +v 3.41992e-05 96.2917 26.9797 +v -3.83957 96.2917 26.705 +v -7.60101 96.2917 25.8868 +v -11.2077 96.2917 24.5416 +v -14.5863 96.2917 22.6968 +v -17.6679 96.2917 20.3899 +v -20.3898 96.2917 17.668 +v -22.6967 96.2917 14.5863 +v -24.5415 96.2917 11.2078 +v -25.8868 96.2917 7.6011 +v -26.705 96.2917 3.83967 +v -26.9797 96.2917 6.83983e-05 +v -26.7051 96.2917 -3.83954 +v -25.8868 96.2917 -7.60098 +v -24.5416 96.2917 -11.2077 +v -22.6968 96.2917 -14.5862 +v -20.3899 96.2917 -17.6679 +v -17.668 96.2917 -20.3898 +v -14.5864 96.2917 -22.6967 +v -11.2078 96.2917 -24.5415 +v -7.60113 96.2917 -25.8868 +v -3.8397 96.2917 -26.705 +v -0.000102597 96.2917 -26.9797 +v 3.83951 96.2917 -26.7051 +v 7.60095 96.2917 -25.8868 +v 11.2077 96.2917 -24.5416 +v 14.5862 96.2917 -22.6968 +v 17.6678 96.2917 -20.3899 +v 20.3898 96.2917 -17.668 +v 22.6967 96.2917 -14.5864 +v 24.5415 96.2917 -11.2079 +v 25.8868 96.2917 -7.60116 +v 26.705 96.2917 -3.83973 +v 39.8401 91.7211 5.88009e-39 +v 39.4346 91.7211 5.66983 +v 38.2263 91.7211 11.2242 +v 36.2398 91.7211 16.5502 +v 33.5156 91.7211 21.5392 +v 30.1091 91.7211 26.0897 +v 26.0897 91.7211 30.1091 +v 21.5392 91.7211 33.5156 +v 16.5502 91.7211 36.2398 +v 11.2243 91.7211 38.2263 +v 5.66988 91.7211 39.4346 +v 5.05009e-05 91.7211 39.8401 +v -5.66978 91.7211 39.4346 +v -11.2242 91.7211 38.2263 +v -16.5501 91.7211 36.2398 +v -21.5391 91.7211 33.5156 +v -26.0897 91.7211 30.1092 +v -30.1091 91.7211 26.0898 +v -33.5156 91.7211 21.5392 +v -36.2398 91.7211 16.5502 +v -38.2263 91.7211 11.2243 +v -39.4346 91.7211 5.66992 +v -39.8401 91.7211 0.000101002 +v -39.4346 91.7211 -5.66973 +v -38.2263 91.7211 -11.2241 +v -36.2399 91.7211 -16.5501 +v -33.5157 91.7211 -21.5391 +v -30.1092 91.7211 -26.0896 +v -26.0898 91.7211 -30.109 +v -21.5393 91.7211 -33.5155 +v -16.5503 91.7211 -36.2398 +v -11.2244 91.7211 -38.2262 +v -5.66997 91.7211 -39.4345 +v -0.000151503 91.7211 -39.8401 +v 5.66969 91.7211 -39.4346 +v 11.2241 91.7211 -38.2263 +v 16.55 91.7211 -36.2399 +v 21.539 91.7211 -33.5157 +v 26.0896 91.7211 -30.1092 +v 30.109 91.7211 -26.0898 +v 33.5155 91.7211 -21.5393 +v 36.2397 91.7211 -16.5503 +v 38.2262 91.7211 -11.2244 +v 39.4345 91.7211 -5.67002 +v 51.9584 85.442 5.88009e-39 +v 51.4295 85.442 7.39444 +v 49.8537 85.442 14.6384 +v 47.263 85.442 21.5843 +v 43.7102 85.442 28.0908 +v 39.2675 85.442 34.0255 +v 34.0255 85.442 39.2675 +v 28.0908 85.442 43.7101 +v 21.5843 85.442 47.263 +v 14.6384 85.442 49.8537 +v 7.3945 85.442 51.4295 +v 6.58619e-05 85.442 51.9584 +v -7.39438 85.442 51.4295 +v -14.6383 85.442 49.8537 +v -21.5842 85.442 47.263 +v -28.0907 85.442 43.7102 +v -34.0254 85.442 39.2676 +v -39.2674 85.442 34.0256 +v -43.7101 85.442 28.0909 +v -47.2629 85.442 21.5844 +v -49.8536 85.442 14.6385 +v -51.4295 85.442 7.39456 +v -51.9584 85.442 0.000131724 +v -51.4295 85.442 -7.39431 +v -49.8537 85.442 -14.6382 +v -47.263 85.442 -21.5842 +v -43.7102 85.442 -28.0907 +v -39.2676 85.442 -34.0254 +v -34.0256 85.442 -39.2674 +v -28.0909 85.442 -43.7101 +v -21.5844 85.442 -47.2629 +v -14.6385 85.442 -49.8536 +v -7.39463 85.442 -51.4295 +v -0.000197586 85.442 -51.9584 +v 7.39426 85.442 -51.4295 +v 14.6382 85.442 -49.8537 +v 21.5841 85.442 -47.2631 +v 28.0906 85.442 -43.7103 +v 34.0253 85.442 -39.2677 +v 39.2674 85.442 -34.0257 +v 43.71 85.442 -28.091 +v 47.2629 85.442 -21.5845 +v 49.8536 85.442 -14.6386 +v 51.4295 85.442 -7.39469 +v 63.1088 77.5712 5.88009e-39 +v 62.4664 77.5712 8.98131 +v 60.5524 77.5712 17.7798 +v 57.4058 77.5712 26.2163 +v 53.0905 77.5712 34.1191 +v 47.6944 77.5712 41.3274 +v 41.3275 77.5712 47.6944 +v 34.1192 77.5712 53.0904 +v 26.2164 77.5712 57.4057 +v 17.7798 77.5712 60.5524 +v 8.98138 77.5712 62.4664 +v 7.99961e-05 77.5712 63.1088 +v -8.98123 77.5712 62.4664 +v -17.7797 77.5712 60.5524 +v -26.2162 77.5712 57.4058 +v -34.1191 77.5712 53.0905 +v -41.3274 77.5712 47.6945 +v -47.6943 77.5712 41.3275 +v -53.0904 77.5712 34.1193 +v -57.4057 77.5712 26.2164 +v -60.5524 77.5712 17.7799 +v -62.4664 77.5712 8.98145 +v -63.1088 77.5712 0.000159992 +v -62.4664 77.5712 -8.98115 +v -60.5525 77.5712 -17.7796 +v -57.4058 77.5712 -26.2162 +v -53.0906 77.5712 -34.119 +v -47.6945 77.5712 -41.3273 +v -41.3276 77.5712 -47.6943 +v -34.1193 77.5712 -53.0904 +v -26.2165 77.5712 -57.4057 +v -17.78 77.5712 -60.5524 +v -8.98153 77.5712 -62.4664 +v -0.000239988 77.5712 -63.1088 +v 8.98109 77.5712 -62.4664 +v 17.7796 77.5712 -60.5525 +v 26.2161 77.5712 -57.4058 +v 34.119 77.5712 -53.0906 +v 41.3272 77.5712 -47.6946 +v 47.6942 77.5712 -41.3276 +v 53.0903 77.5712 -34.1194 +v 57.4056 77.5712 -26.2166 +v 60.5523 77.5712 -17.7801 +v 62.4664 77.5712 -8.98161 +v 73.0835 68.2554 5.88009e-39 +v 72.3397 68.2554 10.4009 +v 70.1232 68.2554 20.59 +v 66.4791 68.2554 30.36 +v 61.4818 68.2554 39.5119 +v 55.2329 68.2554 47.8595 +v 47.8596 68.2554 55.2328 +v 39.512 68.2554 61.4818 +v 30.3601 68.2554 66.4791 +v 20.5901 68.2554 70.1231 +v 10.401 68.2554 72.3397 +v 9.264e-05 68.2554 73.0835 +v -10.4008 68.2554 72.3397 +v -20.5899 68.2554 70.1232 +v -30.3599 68.2554 66.4792 +v -39.5118 68.2554 61.4819 +v -47.8595 68.2554 55.2329 +v -55.2328 68.2554 47.8596 +v -61.4817 68.2554 39.5121 +v -66.4791 68.2554 30.3601 +v -70.1231 68.2554 20.5902 +v -72.3396 68.2554 10.401 +v -73.0835 68.2554 0.00018528 +v -72.3397 68.2554 -10.4007 +v -70.1232 68.2554 -20.5898 +v -66.4792 68.2554 -30.3598 +v -61.4819 68.2554 -39.5118 +v -55.233 68.2554 -47.8594 +v -47.8597 68.2554 -55.2327 +v -39.5121 68.2554 -61.4817 +v -30.3602 68.2554 -66.479 +v -20.5902 68.2554 -70.1231 +v -10.4011 68.2554 -72.3396 +v -0.00027792 68.2554 -73.0835 +v 10.4006 68.2554 -72.3397 +v 20.5897 68.2554 -70.1232 +v 30.3598 68.2554 -66.4792 +v 39.5117 68.2554 -61.482 +v 47.8593 68.2554 -55.2331 +v 55.2327 68.2554 -47.8598 +v 61.4816 68.2554 -39.5122 +v 66.479 68.2554 -30.3603 +v 70.1231 68.2554 -20.5903 +v 72.3396 68.2554 -10.4012 +v 81.6969 57.6681 5.88009e-39 +v 80.8654 57.6681 11.6267 +v 78.3876 57.6681 23.0167 +v 74.3142 57.6681 33.9381 +v 68.7279 57.6681 44.1687 +v 61.7425 57.6681 53.5001 +v 53.5002 57.6681 61.7424 +v 44.1688 57.6681 68.7278 +v 33.9382 57.6681 74.3141 +v 23.0168 57.6681 78.3876 +v 11.6268 57.6681 80.8654 +v 0.000103558 57.6681 81.6969 +v -11.6266 57.6681 80.8654 +v -23.0166 57.6681 78.3877 +v -33.938 57.6681 74.3142 +v -44.1686 57.6681 68.7279 +v -53.5 57.6681 61.7425 +v -61.7423 57.6681 53.5002 +v -68.7278 57.6681 44.1688 +v -74.3141 57.6681 33.9383 +v -78.3876 57.6681 23.0169 +v -80.8654 57.6681 11.6269 +v -81.6969 57.6681 0.000207117 +v -80.8654 57.6681 -11.6265 +v -78.3877 57.6681 -23.0165 +v -74.3142 57.6681 -33.9379 +v -68.728 57.6681 -44.1685 +v -61.7426 57.6681 -53.4999 +v -53.5003 57.6681 -61.7423 +v -44.1689 57.6681 -68.7277 +v -33.9384 57.6681 -74.314 +v -23.0169 57.6681 -78.3876 +v -11.627 57.6681 -80.8653 +v -0.000310675 57.6681 -81.6969 +v 11.6264 57.6681 -80.8654 +v 23.0164 57.6681 -78.3877 +v 33.9379 57.6681 -74.3143 +v 44.1684 57.6681 -68.728 +v 53.4999 57.6681 -61.7427 +v 61.7422 57.6681 -53.5004 +v 68.7277 57.6681 -44.169 +v 74.314 57.6681 -33.9385 +v 78.3875 57.6681 -23.017 +v 80.8653 57.6681 -11.6271 +v 88.7885 46.0066 5.88009e-39 +v 87.8847 46.0066 12.6359 +v 85.1919 46.0066 25.0146 +v 80.7649 46.0066 36.884 +v 74.6936 46.0066 48.0026 +v 67.1019 46.0066 58.1441 +v 58.1441 46.0066 67.1018 +v 48.0027 46.0066 74.6936 +v 36.8841 46.0066 80.7648 +v 25.0147 46.0066 85.1919 +v 12.636 46.0066 87.8847 +v 0.000112547 46.0066 88.7885 +v -12.6358 46.0066 87.8848 +v -25.0145 46.0066 85.192 +v -36.8839 46.0066 80.7649 +v -48.0026 46.0066 74.6937 +v -58.144 46.0066 67.102 +v -67.1018 46.0066 58.1442 +v -74.6935 46.0066 48.0028 +v -80.7648 46.0066 36.8842 +v -85.1919 46.0066 25.0148 +v -87.8847 46.0066 12.6361 +v -88.7885 46.0066 0.000225095 +v -87.8848 46.0066 -12.6357 +v -85.192 46.0066 -25.0144 +v -80.7649 46.0066 -36.8839 +v -74.6938 46.0066 -48.0025 +v -67.102 46.0066 -58.1439 +v -58.1443 46.0066 -67.1017 +v -48.0029 46.0066 -74.6935 +v -36.8843 46.0066 -80.7647 +v -25.0149 46.0066 -85.1918 +v -12.6362 46.0066 -87.8847 +v -0.000337642 46.0066 -88.7885 +v 12.6356 46.0066 -87.8848 +v 25.0143 46.0066 -85.192 +v 36.8838 46.0066 -80.765 +v 48.0024 46.0066 -74.6938 +v 58.1438 46.0066 -67.1021 +v 67.1016 46.0066 -58.1444 +v 74.6934 46.0066 -48.003 +v 80.7647 46.0066 -36.8844 +v 85.1918 46.0066 -25.015 +v 87.8847 46.0066 -12.6363 +v 94.2261 33.4881 5.88009e-39 +v 93.267 33.4881 13.4098 +v 90.4092 33.4881 26.5465 +v 85.7111 33.4881 39.1429 +v 79.268 33.4881 50.9424 +v 71.2113 33.4881 61.7049 +v 61.705 33.4881 71.2113 +v 50.9425 33.4881 79.268 +v 39.143 33.4881 85.711 +v 26.5466 33.4881 90.4092 +v 13.4099 33.4881 93.267 +v 0.00011944 33.4881 94.2261 +v -13.4096 33.4881 93.267 +v -26.5464 33.4881 90.4093 +v -39.1428 33.4881 85.7111 +v -50.9423 33.4881 79.2681 +v -61.7048 33.4881 71.2114 +v -71.2112 33.4881 61.7051 +v -79.2679 33.4881 50.9426 +v -85.711 33.4881 39.1431 +v -90.4092 33.4881 26.5467 +v -93.2669 33.4881 13.41 +v -94.2261 33.4881 0.00023888 +v -93.267 33.4881 -13.4095 +v -90.4093 33.4881 -26.5463 +v -85.7111 33.4881 -39.1427 +v -79.2681 33.4881 -50.9422 +v -71.2115 33.4881 -61.7047 +v -61.7052 33.4881 -71.2111 +v -50.9427 33.4881 -79.2678 +v -39.1432 33.4881 -85.7109 +v -26.5468 33.4881 -90.4092 +v -13.4101 33.4881 -93.2669 +v -0.00035832 33.4881 -94.2261 +v 13.4094 33.4881 -93.267 +v 26.5462 33.4881 -90.4093 +v 39.1426 33.4881 -85.7112 +v 50.9421 33.4881 -79.2682 +v 61.7046 33.4881 -71.2116 +v 71.2111 33.4881 -61.7052 +v 79.2678 33.4881 -50.9428 +v 85.7109 33.4881 -39.1433 +v 90.4091 33.4881 -26.547 +v 93.2669 33.4881 -13.4102 +v 97.9084 20.3457 5.88009e-39 +v 96.9118 20.3457 13.9338 +v 93.9424 20.3457 27.584 +v 89.0606 20.3457 40.6726 +v 82.3658 20.3457 52.9332 +v 73.9943 20.3457 64.1163 +v 64.1164 20.3457 73.9942 +v 52.9333 20.3457 82.3657 +v 40.6727 20.3457 89.0606 +v 27.5841 20.3457 93.9424 +v 13.9339 20.3457 96.9118 +v 0.000124108 20.3457 97.9084 +v -13.9337 20.3457 96.9118 +v -27.5839 20.3457 93.9424 +v -40.6725 20.3457 89.0607 +v -52.9331 20.3457 82.3659 +v -64.1162 20.3457 73.9943 +v -73.9941 20.3457 64.1165 +v -82.3657 20.3457 52.9334 +v -89.0605 20.3457 40.6728 +v -93.9423 20.3457 27.5842 +v -96.9118 20.3457 13.934 +v -97.9084 20.3457 0.000248216 +v -96.9119 20.3457 -13.9336 +v -93.9425 20.3457 -27.5837 +v -89.0607 20.3457 -40.6724 +v -82.3659 20.3457 -52.933 +v -73.9944 20.3457 -64.1161 +v -64.1166 20.3457 -73.994 +v -52.9335 20.3457 -82.3656 +v -40.6729 20.3457 -89.0605 +v -27.5843 20.3457 -93.9423 +v -13.9342 20.3457 -96.9118 +v -0.000372323 20.3457 -97.9084 +v 13.9335 20.3457 -96.9119 +v 27.5836 20.3457 -93.9425 +v 40.6723 20.3457 -89.0608 +v 52.9329 20.3457 -82.366 +v 64.116 20.3457 -73.9945 +v 73.994 20.3457 -64.1167 +v 82.3655 20.3457 -52.9336 +v 89.0604 20.3457 -40.673 +v 93.9423 20.3457 -27.5844 +v 96.9118 20.3457 -13.9343 +v 99.7669 6.82435 5.88009e-39 +v 98.7514 6.82435 14.1983 +v 95.7256 6.82435 28.1076 +v 90.7512 6.82435 41.4446 +v 83.9293 6.82435 53.938 +v 75.3988 6.82435 65.3334 +v 65.3335 6.82435 75.3987 +v 53.9381 6.82435 83.9292 +v 41.4447 6.82435 90.7511 +v 28.1077 6.82435 95.7256 +v 14.1984 6.82435 98.7514 +v 0.000126464 6.82435 99.7669 +v -14.1982 6.82435 98.7514 +v -28.1074 6.82435 95.7256 +v -41.4445 6.82435 90.7512 +v -53.9379 6.82435 83.9293 +v -65.3333 6.82435 75.3989 +v -75.3987 6.82435 65.3335 +v -83.9291 6.82435 53.9382 +v -90.751 6.82435 41.4449 +v -95.7255 6.82435 28.1078 +v -98.7514 6.82435 14.1985 +v -99.7669 6.82435 0.000252927 +v -98.7514 6.82435 -14.1981 +v -95.7257 6.82435 -28.1073 +v -90.7512 6.82435 -41.4444 +v -83.9294 6.82435 -53.9378 +v -75.399 6.82435 -65.3332 +v -65.3336 6.82435 -75.3986 +v -53.9383 6.82435 -83.9291 +v -41.445 6.82435 -90.751 +v -28.1079 6.82435 -95.7255 +v -14.1987 6.82435 -98.7513 +v -0.000379391 6.82435 -99.7669 +v 14.1979 6.82435 -98.7514 +v 28.1072 6.82435 -95.7257 +v 41.4443 6.82435 -90.7513 +v 53.9377 6.82435 -83.9294 +v 65.3331 6.82435 -75.399 +v 75.3985 6.82435 -65.3337 +v 83.929 6.82435 -53.9384 +v 90.7509 6.82435 -41.4451 +v 95.7255 6.82435 -28.108 +v 98.7513 6.82435 -14.1988 +v 99.7669 -6.82411 5.88009e-39 +v 98.7514 -6.82411 14.1983 +v 95.7256 -6.82411 28.1076 +v 90.7512 -6.82411 41.4446 +v 83.9293 -6.82411 53.938 +v 75.3988 -6.82411 65.3334 +v 65.3335 -6.82411 75.3987 +v 53.9381 -6.82411 83.9292 +v 41.4447 -6.82411 90.7511 +v 28.1077 -6.82411 95.7256 +v 14.1984 -6.82411 98.7514 +v 0.000126464 -6.82411 99.7669 +v -14.1982 -6.82411 98.7514 +v -28.1074 -6.82411 95.7257 +v -41.4445 -6.82411 90.7512 +v -53.9379 -6.82411 83.9293 +v -65.3333 -6.82411 75.3989 +v -75.3987 -6.82411 65.3335 +v -83.9291 -6.82411 53.9382 +v -90.7511 -6.82411 41.4449 +v -95.7256 -6.82411 28.1078 +v -98.7514 -6.82411 14.1985 +v -99.7669 -6.82411 0.000252927 +v -98.7514 -6.82411 -14.1981 +v -95.7257 -6.82411 -28.1073 +v -90.7513 -6.82411 -41.4444 +v -83.9294 -6.82411 -53.9378 +v -75.399 -6.82411 -65.3332 +v -65.3336 -6.82411 -75.3986 +v -53.9383 -6.82411 -83.9291 +v -41.445 -6.82411 -90.751 +v -28.1079 -6.82411 -95.7255 +v -14.1987 -6.82411 -98.7514 +v -0.000379391 -6.82411 -99.7669 +v 14.198 -6.82411 -98.7514 +v 28.1072 -6.82411 -95.7257 +v 41.4443 -6.82411 -90.7513 +v 53.9377 -6.82411 -83.9295 +v 65.3331 -6.82411 -75.3991 +v 75.3985 -6.82411 -65.3337 +v 83.929 -6.82411 -53.9384 +v 90.751 -6.82411 -41.4451 +v 95.7255 -6.82411 -28.108 +v 98.7513 -6.82411 -14.1988 +v 97.9084 -20.3455 5.88009e-39 +v 96.9119 -20.3455 13.9338 +v 93.9425 -20.3455 27.584 +v 89.0607 -20.3455 40.6726 +v 82.3658 -20.3455 52.9333 +v 73.9943 -20.3455 64.1163 +v 64.1164 -20.3455 73.9942 +v 52.9334 -20.3455 82.3658 +v 40.6727 -20.3455 89.0606 +v 27.5841 -20.3455 93.9424 +v 13.9339 -20.3455 96.9118 +v 0.000124108 -20.3455 97.9084 +v -13.9337 -20.3455 96.9119 +v -27.5839 -20.3455 93.9425 +v -40.6725 -20.3455 89.0607 +v -52.9332 -20.3455 82.3659 +v -64.1163 -20.3455 73.9944 +v -73.9941 -20.3455 64.1165 +v -82.3657 -20.3455 52.9334 +v -89.0606 -20.3455 40.6728 +v -93.9424 -20.3455 27.5842 +v -96.9118 -20.3455 13.934 +v -97.9084 -20.3455 0.000248216 +v -96.9119 -20.3455 -13.9336 +v -93.9425 -20.3455 -27.5837 +v -89.0608 -20.3455 -40.6724 +v -82.366 -20.3455 -52.9331 +v -73.9945 -20.3455 -64.1162 +v -64.1166 -20.3455 -73.9941 +v -52.9336 -20.3455 -82.3656 +v -40.6729 -20.3455 -89.0605 +v -27.5843 -20.3455 -93.9424 +v -13.9342 -20.3455 -96.9118 +v -0.000372323 -20.3455 -97.9084 +v 13.9335 -20.3455 -96.9119 +v 27.5836 -20.3455 -93.9426 +v 40.6723 -20.3455 -89.0608 +v 52.933 -20.3455 -82.366 +v 64.1161 -20.3455 -73.9945 +v 73.994 -20.3455 -64.1167 +v 82.3656 -20.3455 -52.9337 +v 89.0605 -20.3455 -40.673 +v 93.9423 -20.3455 -27.5844 +v 96.9118 -20.3455 -13.9343 +v 94.2261 -33.4878 5.88009e-39 +v 93.2671 -33.4878 13.4098 +v 90.4093 -33.4878 26.5466 +v 85.7111 -33.4878 39.1429 +v 79.2681 -33.4878 50.9425 +v 71.2114 -33.4878 61.705 +v 61.705 -33.4878 71.2113 +v 50.9426 -33.4878 79.268 +v 39.143 -33.4878 85.7111 +v 26.5467 -33.4878 90.4093 +v 13.4099 -33.4878 93.267 +v 0.00011944 -33.4878 94.2261 +v -13.4097 -33.4878 93.2671 +v -26.5464 -33.4878 90.4094 +v -39.1428 -33.4878 85.7112 +v -50.9424 -33.4878 79.2682 +v -61.7049 -33.4878 71.2115 +v -71.2113 -33.4878 61.7051 +v -79.268 -33.4878 50.9426 +v -85.711 -33.4878 39.1431 +v -90.4093 -33.4878 26.5468 +v -93.267 -33.4878 13.41 +v -94.2261 -33.4878 0.00023888 +v -93.2671 -33.4878 -13.4095 +v -90.4094 -33.4878 -26.5463 +v -85.7112 -33.4878 -39.1427 +v -79.2682 -33.4878 -50.9423 +v -71.2116 -33.4878 -61.7048 +v -61.7052 -33.4878 -71.2112 +v -50.9427 -33.4878 -79.2679 +v -39.1432 -33.4878 -85.711 +v -26.5469 -33.4878 -90.4092 +v -13.4101 -33.4878 -93.267 +v -0.000358321 -33.4878 -94.2261 +v 13.4094 -33.4878 -93.2671 +v 26.5462 -33.4878 -90.4094 +v 39.1426 -33.4878 -85.7113 +v 50.9422 -33.4878 -79.2683 +v 61.7047 -33.4878 -71.2116 +v 71.2111 -33.4878 -61.7053 +v 79.2679 -33.4878 -50.9428 +v 85.7109 -33.4878 -39.1434 +v 90.4092 -33.4878 -26.547 +v 93.267 -33.4878 -13.4102 +v 88.7886 -46.0064 5.88009e-39 +v 87.8849 -46.0064 12.6359 +v 85.192 -46.0064 25.0146 +v 80.765 -46.0064 36.8841 +v 74.6937 -46.0064 48.0027 +v 67.102 -46.0064 58.1441 +v 58.1442 -46.0064 67.1019 +v 48.0028 -46.0064 74.6937 +v 36.8842 -46.0064 80.7649 +v 25.0147 -46.0064 85.192 +v 12.636 -46.0064 87.8848 +v 0.000112548 -46.0064 88.7886 +v -12.6358 -46.0064 87.8849 +v -25.0145 -46.0064 85.1921 +v -36.884 -46.0064 80.765 +v -48.0026 -46.0064 74.6938 +v -58.144 -46.0064 67.102 +v -67.1018 -46.0064 58.1443 +v -74.6936 -46.0064 48.0029 +v -80.7649 -46.0064 36.8843 +v -85.192 -46.0064 25.0148 +v -87.8848 -46.0064 12.6361 +v -88.7886 -46.0064 0.000225095 +v -87.8849 -46.0064 -12.6357 +v -85.1921 -46.0064 -25.0144 +v -80.765 -46.0064 -36.8839 +v -74.6939 -46.0064 -48.0025 +v -67.1021 -46.0064 -58.144 +v -58.1444 -46.0064 -67.1018 +v -48.003 -46.0064 -74.6936 +v -36.8844 -46.0064 -80.7648 +v -25.0149 -46.0064 -85.192 +v -12.6362 -46.0064 -87.8848 +v -0.000337643 -46.0064 -88.7886 +v 12.6356 -46.0064 -87.8849 +v 25.0143 -46.0064 -85.1921 +v 36.8838 -46.0064 -80.7651 +v 48.0024 -46.0064 -74.6939 +v 58.1439 -46.0064 -67.1022 +v 67.1017 -46.0064 -58.1444 +v 74.6935 -46.0064 -48.0031 +v 80.7648 -46.0064 -36.8845 +v 85.1919 -46.0064 -25.015 +v 87.8848 -46.0064 -12.6364 +v 81.6971 -57.6679 5.88009e-39 +v 80.8655 -57.6679 11.6267 +v 78.3878 -57.6679 23.0167 +v 74.3143 -57.6679 33.9382 +v 68.728 -57.6679 44.1687 +v 61.7426 -57.6679 53.5002 +v 53.5003 -57.6679 61.7425 +v 44.1688 -57.6679 68.7279 +v 33.9383 -57.6679 74.3142 +v 23.0168 -57.6679 78.3878 +v 11.6268 -57.6679 80.8655 +v 0.000103558 -57.6679 81.6971 +v -11.6266 -57.6679 80.8655 +v -23.0166 -57.6679 78.3878 +v -33.9381 -57.6679 74.3143 +v -44.1687 -57.6679 68.728 +v -53.5001 -57.6679 61.7426 +v -61.7424 -57.6679 53.5003 +v -68.7279 -57.6679 44.1689 +v -74.3142 -57.6679 33.9384 +v -78.3877 -57.6679 23.0169 +v -80.8655 -57.6679 11.6269 +v -81.6971 -57.6679 0.000207117 +v -80.8656 -57.6679 -11.6265 +v -78.3878 -57.6679 -23.0165 +v -74.3144 -57.6679 -33.938 +v -68.7281 -57.6679 -44.1686 +v -61.7427 -57.6679 -53.5 +v -53.5004 -57.6679 -61.7424 +v -44.169 -57.6679 -68.7278 +v -33.9384 -57.6679 -74.3142 +v -23.017 -57.6679 -78.3877 +v -11.627 -57.6679 -80.8655 +v -0.000310675 -57.6679 -81.6971 +v 11.6264 -57.6679 -80.8656 +v 23.0164 -57.6679 -78.3879 +v 33.9379 -57.6679 -74.3144 +v 44.1685 -57.6679 -68.7281 +v 53.4999 -57.6679 -61.7428 +v 61.7423 -57.6679 -53.5005 +v 68.7278 -57.6679 -44.1691 +v 74.3141 -57.6679 -33.9385 +v 78.3877 -57.6679 -23.0171 +v 80.8655 -57.6679 -11.6271 +v 73.0837 -68.2552 5.88009e-39 +v 72.3398 -68.2552 10.4009 +v 70.1233 -68.2552 20.59 +v 66.4793 -68.2552 30.36 +v 61.4819 -68.2552 39.512 +v 55.233 -68.2552 47.8596 +v 47.8597 -68.2552 55.233 +v 39.5121 -68.2552 61.4819 +v 30.3601 -68.2552 66.4793 +v 20.5901 -68.2552 70.1233 +v 10.401 -68.2552 72.3398 +v 9.26402e-05 -68.2552 73.0837 +v -10.4008 -68.2552 72.3398 +v -20.59 -68.2552 70.1233 +v -30.36 -68.2552 66.4793 +v -39.5119 -68.2552 61.482 +v -47.8596 -68.2552 55.2331 +v -55.2329 -68.2552 47.8598 +v -61.4819 -68.2552 39.5121 +v -66.4792 -68.2552 30.3602 +v -70.1233 -68.2552 20.5902 +v -72.3398 -68.2552 10.4011 +v -73.0837 -68.2552 0.00018528 +v -72.3399 -68.2552 -10.4007 +v -70.1234 -68.2552 -20.5899 +v -66.4794 -68.2552 -30.3599 +v -61.482 -68.2552 -39.5119 +v -55.2331 -68.2552 -47.8595 +v -47.8598 -68.2552 -55.2328 +v -39.5122 -68.2552 -61.4818 +v -30.3603 -68.2552 -66.4792 +v -20.5903 -68.2552 -70.1232 +v -10.4012 -68.2552 -72.3398 +v -0.000277921 -68.2552 -73.0837 +v 10.4006 -68.2552 -72.3399 +v 20.5898 -68.2552 -70.1234 +v 30.3598 -68.2552 -66.4794 +v 39.5118 -68.2552 -61.4821 +v 47.8594 -68.2552 -55.2332 +v 55.2328 -68.2552 -47.8599 +v 61.4818 -68.2552 -39.5123 +v 66.4791 -68.2552 -30.3604 +v 70.1232 -68.2552 -20.5904 +v 72.3398 -68.2552 -10.4012 +v 63.1089 -77.571 5.88009e-39 +v 62.4666 -77.571 8.98133 +v 60.5526 -77.571 17.7798 +v 57.4059 -77.571 26.2164 +v 53.0906 -77.571 34.1192 +v 47.6946 -77.571 41.3275 +v 41.3276 -77.571 47.6945 +v 34.1193 -77.571 53.0906 +v 26.2165 -77.571 57.4059 +v 17.7799 -77.571 60.5526 +v 8.98141 -77.571 62.4666 +v 7.99963e-05 -77.571 63.1089 +v -8.98126 -77.571 62.4666 +v -17.7798 -77.571 60.5526 +v -26.2163 -77.571 57.406 +v -34.1192 -77.571 53.0907 +v -41.3275 -77.571 47.6946 +v -47.6945 -77.571 41.3277 +v -53.0906 -77.571 34.1194 +v -57.4059 -77.571 26.2165 +v -60.5525 -77.571 17.78 +v -62.4666 -77.571 8.98148 +v -63.1089 -77.571 0.000159993 +v -62.4666 -77.571 -8.98118 +v -60.5526 -77.571 -17.7797 +v -57.406 -77.571 -26.2162 +v -53.0907 -77.571 -34.1191 +v -47.6947 -77.571 -41.3274 +v -41.3277 -77.571 -47.6944 +v -34.1194 -77.571 -53.0905 +v -26.2166 -77.571 -57.4058 +v -17.78 -77.571 -60.5525 +v -8.98156 -77.571 -62.4666 +v -0.000239989 -77.571 -63.1089 +v 8.98111 -77.571 -62.4666 +v 17.7796 -77.571 -60.5527 +v 26.2162 -77.571 -57.406 +v 34.1191 -77.571 -53.0908 +v 41.3274 -77.571 -47.6947 +v 47.6944 -77.571 -41.3278 +v 53.0905 -77.571 -34.1195 +v 57.4058 -77.571 -26.2167 +v 60.5525 -77.571 -17.7801 +v 62.4665 -77.571 -8.98164 +v 51.9586 -85.4418 5.88009e-39 +v 51.4297 -85.4418 7.39447 +v 49.8539 -85.4418 14.6384 +v 47.2632 -85.4418 21.5844 +v 43.7103 -85.4418 28.0909 +v 39.2677 -85.4418 34.0256 +v 34.0256 -85.4418 39.2676 +v 28.091 -85.4418 43.7103 +v 21.5844 -85.4418 47.2631 +v 14.6385 -85.4418 49.8539 +v 7.39453 -85.4418 51.4297 +v 6.58622e-05 -85.4418 51.9586 +v -7.39441 -85.4418 51.4297 +v -14.6384 -85.4418 49.8539 +v -21.5843 -85.4418 47.2632 +v -28.0908 -85.4418 43.7104 +v -34.0256 -85.4418 39.2677 +v -39.2676 -85.4418 34.0257 +v -43.7103 -85.4418 28.091 +v -47.2631 -85.4418 21.5845 +v -49.8538 -85.4418 14.6385 +v -51.4297 -85.4418 7.39459 +v -51.9586 -85.4418 0.000131724 +v -51.4297 -85.4418 -7.39434 +v -49.8539 -85.4418 -14.6383 +v -47.2632 -85.4418 -21.5842 +v -43.7104 -85.4418 -28.0908 +v -39.2678 -85.4418 -34.0255 +v -34.0257 -85.4418 -39.2676 +v -28.0911 -85.4418 -43.7102 +v -21.5845 -85.4418 -47.2631 +v -14.6386 -85.4418 -49.8538 +v -7.39465 -85.4418 -51.4297 +v -0.000197587 -85.4418 -51.9586 +v 7.39429 -85.4418 -51.4297 +v 14.6382 -85.4418 -49.8539 +v 21.5842 -85.4418 -47.2632 +v 28.0907 -85.4418 -43.7104 +v 34.0255 -85.4418 -39.2678 +v 39.2675 -85.4418 -34.0258 +v 43.7102 -85.4418 -28.0911 +v 47.2631 -85.4418 -21.5846 +v 49.8538 -85.4418 -14.6386 +v 51.4297 -85.4418 -7.39472 +v 39.8403 -91.7211 5.88009e-39 +v 39.4348 -91.7211 5.66986 +v 38.2265 -91.7211 11.2243 +v 36.24 -91.7211 16.5502 +v 33.5158 -91.7211 21.5393 +v 30.1093 -91.7211 26.0898 +v 26.0899 -91.7211 30.1093 +v 21.5393 -91.7211 33.5158 +v 16.5503 -91.7211 36.24 +v 11.2243 -91.7211 38.2265 +v 5.66991 -91.7211 39.4348 +v 5.05012e-05 -91.7211 39.8403 +v -5.66981 -91.7211 39.4348 +v -11.2243 -91.7211 38.2265 +v -16.5502 -91.7211 36.24 +v -21.5392 -91.7211 33.5158 +v -26.0898 -91.7211 30.1093 +v -30.1092 -91.7211 26.0899 +v -33.5157 -91.7211 21.5393 +v -36.24 -91.7211 16.5503 +v -38.2265 -91.7211 11.2244 +v -39.4348 -91.7211 5.66995 +v -39.8403 -91.7211 0.000101002 +v -39.4348 -91.7211 -5.66976 +v -38.2265 -91.7211 -11.2242 +v -36.24 -91.7211 -16.5502 +v -33.5158 -91.7211 -21.5392 +v -30.1094 -91.7211 -26.0898 +v -26.0899 -91.7211 -30.1092 +v -21.5394 -91.7211 -33.5157 +v -16.5504 -91.7211 -36.2399 +v -11.2244 -91.7211 -38.2264 +v -5.67 -91.7211 -39.4348 +v -0.000151504 -91.7211 -39.8403 +v 5.66972 -91.7211 -39.4348 +v 11.2242 -91.7211 -38.2265 +v 16.5501 -91.7211 -36.2401 +v 21.5392 -91.7211 -33.5159 +v 26.0897 -91.7211 -30.1094 +v 30.1092 -91.7211 -26.09 +v 33.5157 -91.7211 -21.5394 +v 36.2399 -91.7211 -16.5504 +v 38.2264 -91.7211 -11.2245 +v 39.4347 -91.7211 -5.67005 +v 26.9799 -96.2917 5.88009e-39 +v 26.7053 -96.2917 3.83964 +v 25.887 -96.2917 7.60111 +v 24.5418 -96.2917 11.2078 +v 22.6969 -96.2917 14.5864 +v 20.3901 -96.2917 17.6681 +v 17.6681 -96.2917 20.39 +v 14.5864 -96.2917 22.6969 +v 11.2079 -96.2917 24.5418 +v 7.60114 -96.2917 25.887 +v 3.83967 -96.2917 26.7053 +v 3.41995e-05 -96.2917 26.9799 +v -3.8396 -96.2917 26.7053 +v -7.60108 -96.2917 25.887 +v -11.2078 -96.2917 24.5418 +v -14.5864 -96.2917 22.697 +v -17.668 -96.2917 20.3901 +v -20.39 -96.2917 17.6681 +v -22.6969 -96.2917 14.5865 +v -24.5417 -96.2917 11.2079 +v -25.887 -96.2917 7.60117 +v -26.7053 -96.2917 3.8397 +v -26.9799 -96.2917 6.83989e-05 +v -26.7053 -96.2917 -3.83957 +v -25.887 -96.2917 -7.60105 +v -24.5418 -96.2917 -11.2078 +v -22.697 -96.2917 -14.5864 +v -20.3901 -96.2917 -17.668 +v -17.6681 -96.2917 -20.39 +v -14.5865 -96.2917 -22.6969 +v -11.2079 -96.2917 -24.5417 +v -7.6012 -96.2917 -25.887 +v -3.83973 -96.2917 -26.7053 +v -0.000102598 -96.2917 -26.9799 +v 3.83954 -96.2917 -26.7053 +v 7.60101 -96.2917 -25.887 +v 11.2078 -96.2917 -24.5418 +v 14.5863 -96.2917 -22.697 +v 17.668 -96.2917 -20.3901 +v 20.39 -96.2917 -17.6682 +v 22.6969 -96.2917 -14.5865 +v 24.5417 -96.2917 -11.208 +v 25.887 -96.2917 -7.60123 +v 26.7053 -96.2917 -3.83977 +v 13.6169 -99.0686 5.88009e-39 +v 13.4783 -99.0686 1.93788 +v 13.0653 -99.0686 3.83632 +v 12.3864 -99.0686 5.65666 +v 11.4553 -99.0686 7.36184 +v 10.291 -99.0686 8.91716 +v 8.91717 -99.0686 10.291 +v 7.36186 -99.0686 11.4553 +v 5.65667 -99.0686 12.3864 +v 3.83633 -99.0686 13.0653 +v 1.9379 -99.0686 13.4783 +v 1.72606e-05 -99.0686 13.6169 +v -1.93787 -99.0686 13.4783 +v -3.8363 -99.0686 13.0653 +v -5.65664 -99.0686 12.3864 +v -7.36183 -99.0686 11.4553 +v -8.91715 -99.0686 10.291 +v -10.2909 -99.0686 8.91718 +v -11.4552 -99.0686 7.36187 +v -12.3863 -99.0686 5.65669 +v -13.0653 -99.0686 3.83635 +v -13.4783 -99.0686 1.93792 +v -13.6169 -99.0686 3.45213e-05 +v -13.4783 -99.0686 -1.93785 +v -13.0653 -99.0686 -3.83629 +v -12.3864 -99.0686 -5.65663 +v -11.4553 -99.0686 -7.36181 +v -10.291 -99.0686 -8.91714 +v -8.9172 -99.0686 -10.2909 +v -7.36188 -99.0686 -11.4552 +v -5.6567 -99.0686 -12.3863 +v -3.83636 -99.0686 -13.0653 +v -1.93793 -99.0686 -13.4783 +v -5.17819e-05 -99.0686 -13.6169 +v 1.93784 -99.0686 -13.4783 +v 3.83627 -99.0686 -13.0653 +v 5.65661 -99.0686 -12.3864 +v 7.3618 -99.0686 -11.4553 +v 8.91712 -99.0686 -10.291 +v 10.2909 -99.0686 -8.91721 +v 11.4552 -99.0686 -7.3619 +v 12.3863 -99.0686 -5.65672 +v 13.0653 -99.0686 -3.83638 +v 13.4783 -99.0686 -1.93795 +f 3 4 48 47 +f 4 5 49 48 +f 5 6 50 49 +f 6 7 51 50 +f 7 8 52 51 +f 8 9 53 52 +f 9 10 54 53 +f 10 11 55 54 +f 11 12 56 55 +f 12 13 57 56 +f 13 14 58 57 +f 14 15 59 58 +f 15 16 60 59 +f 16 17 61 60 +f 17 18 62 61 +f 18 19 63 62 +f 19 20 64 63 +f 20 21 65 64 +f 21 22 66 65 +f 22 23 67 66 +f 23 24 68 67 +f 24 25 69 68 +f 25 26 70 69 +f 26 27 71 70 +f 27 28 72 71 +f 28 29 73 72 +f 29 30 74 73 +f 30 31 75 74 +f 31 32 76 75 +f 32 33 77 76 +f 33 34 78 77 +f 34 35 79 78 +f 35 36 80 79 +f 36 37 81 80 +f 37 38 82 81 +f 38 39 83 82 +f 39 40 84 83 +f 40 41 85 84 +f 41 42 86 85 +f 42 43 87 86 +f 43 44 88 87 +f 44 45 89 88 +f 45 46 90 89 +f 46 3 47 90 +f 47 48 92 91 +f 48 49 93 92 +f 49 50 94 93 +f 50 51 95 94 +f 51 52 96 95 +f 52 53 97 96 +f 53 54 98 97 +f 54 55 99 98 +f 55 56 100 99 +f 56 57 101 100 +f 57 58 102 101 +f 58 59 103 102 +f 59 60 104 103 +f 60 61 105 104 +f 61 62 106 105 +f 62 63 107 106 +f 63 64 108 107 +f 64 65 109 108 +f 65 66 110 109 +f 66 67 111 110 +f 67 68 112 111 +f 68 69 113 112 +f 69 70 114 113 +f 70 71 115 114 +f 71 72 116 115 +f 72 73 117 116 +f 73 74 118 117 +f 74 75 119 118 +f 75 76 120 119 +f 76 77 121 120 +f 77 78 122 121 +f 78 79 123 122 +f 79 80 124 123 +f 80 81 125 124 +f 81 82 126 125 +f 82 83 127 126 +f 83 84 128 127 +f 84 85 129 128 +f 85 86 130 129 +f 86 87 131 130 +f 87 88 132 131 +f 88 89 133 132 +f 89 90 134 133 +f 90 47 91 134 +f 91 92 136 135 +f 92 93 137 136 +f 93 94 138 137 +f 94 95 139 138 +f 95 96 140 139 +f 96 97 141 140 +f 97 98 142 141 +f 98 99 143 142 +f 99 100 144 143 +f 100 101 145 144 +f 101 102 146 145 +f 102 103 147 146 +f 103 104 148 147 +f 104 105 149 148 +f 105 106 150 149 +f 106 107 151 150 +f 107 108 152 151 +f 108 109 153 152 +f 109 110 154 153 +f 110 111 155 154 +f 111 112 156 155 +f 112 113 157 156 +f 113 114 158 157 +f 114 115 159 158 +f 115 116 160 159 +f 116 117 161 160 +f 117 118 162 161 +f 118 119 163 162 +f 119 120 164 163 +f 120 121 165 164 +f 121 122 166 165 +f 122 123 167 166 +f 123 124 168 167 +f 124 125 169 168 +f 125 126 170 169 +f 126 127 171 170 +f 127 128 172 171 +f 128 129 173 172 +f 129 130 174 173 +f 130 131 175 174 +f 131 132 176 175 +f 132 133 177 176 +f 133 134 178 177 +f 134 91 135 178 +f 135 136 180 179 +f 136 137 181 180 +f 137 138 182 181 +f 138 139 183 182 +f 139 140 184 183 +f 140 141 185 184 +f 141 142 186 185 +f 142 143 187 186 +f 143 144 188 187 +f 144 145 189 188 +f 145 146 190 189 +f 146 147 191 190 +f 147 148 192 191 +f 148 149 193 192 +f 149 150 194 193 +f 150 151 195 194 +f 151 152 196 195 +f 152 153 197 196 +f 153 154 198 197 +f 154 155 199 198 +f 155 156 200 199 +f 156 157 201 200 +f 157 158 202 201 +f 158 159 203 202 +f 159 160 204 203 +f 160 161 205 204 +f 161 162 206 205 +f 162 163 207 206 +f 163 164 208 207 +f 164 165 209 208 +f 165 166 210 209 +f 166 167 211 210 +f 167 168 212 211 +f 168 169 213 212 +f 169 170 214 213 +f 170 171 215 214 +f 171 172 216 215 +f 172 173 217 216 +f 173 174 218 217 +f 174 175 219 218 +f 175 176 220 219 +f 176 177 221 220 +f 177 178 222 221 +f 178 135 179 222 +f 179 180 224 223 +f 180 181 225 224 +f 181 182 226 225 +f 182 183 227 226 +f 183 184 228 227 +f 184 185 229 228 +f 185 186 230 229 +f 186 187 231 230 +f 187 188 232 231 +f 188 189 233 232 +f 189 190 234 233 +f 190 191 235 234 +f 191 192 236 235 +f 192 193 237 236 +f 193 194 238 237 +f 194 195 239 238 +f 195 196 240 239 +f 196 197 241 240 +f 197 198 242 241 +f 198 199 243 242 +f 199 200 244 243 +f 200 201 245 244 +f 201 202 246 245 +f 202 203 247 246 +f 203 204 248 247 +f 204 205 249 248 +f 205 206 250 249 +f 206 207 251 250 +f 207 208 252 251 +f 208 209 253 252 +f 209 210 254 253 +f 210 211 255 254 +f 211 212 256 255 +f 212 213 257 256 +f 213 214 258 257 +f 214 215 259 258 +f 215 216 260 259 +f 216 217 261 260 +f 217 218 262 261 +f 218 219 263 262 +f 219 220 264 263 +f 220 221 265 264 +f 221 222 266 265 +f 222 179 223 266 +f 223 224 268 267 +f 224 225 269 268 +f 225 226 270 269 +f 226 227 271 270 +f 227 228 272 271 +f 228 229 273 272 +f 229 230 274 273 +f 230 231 275 274 +f 231 232 276 275 +f 232 233 277 276 +f 233 234 278 277 +f 234 235 279 278 +f 235 236 280 279 +f 236 237 281 280 +f 237 238 282 281 +f 238 239 283 282 +f 239 240 284 283 +f 240 241 285 284 +f 241 242 286 285 +f 242 243 287 286 +f 243 244 288 287 +f 244 245 289 288 +f 245 246 290 289 +f 246 247 291 290 +f 247 248 292 291 +f 248 249 293 292 +f 249 250 294 293 +f 250 251 295 294 +f 251 252 296 295 +f 252 253 297 296 +f 253 254 298 297 +f 254 255 299 298 +f 255 256 300 299 +f 256 257 301 300 +f 257 258 302 301 +f 258 259 303 302 +f 259 260 304 303 +f 260 261 305 304 +f 261 262 306 305 +f 262 263 307 306 +f 263 264 308 307 +f 264 265 309 308 +f 265 266 310 309 +f 266 223 267 310 +f 267 268 312 311 +f 268 269 313 312 +f 269 270 314 313 +f 270 271 315 314 +f 271 272 316 315 +f 272 273 317 316 +f 273 274 318 317 +f 274 275 319 318 +f 275 276 320 319 +f 276 277 321 320 +f 277 278 322 321 +f 278 279 323 322 +f 279 280 324 323 +f 280 281 325 324 +f 281 282 326 325 +f 282 283 327 326 +f 283 284 328 327 +f 284 285 329 328 +f 285 286 330 329 +f 286 287 331 330 +f 287 288 332 331 +f 288 289 333 332 +f 289 290 334 333 +f 290 291 335 334 +f 291 292 336 335 +f 292 293 337 336 +f 293 294 338 337 +f 294 295 339 338 +f 295 296 340 339 +f 296 297 341 340 +f 297 298 342 341 +f 298 299 343 342 +f 299 300 344 343 +f 300 301 345 344 +f 301 302 346 345 +f 302 303 347 346 +f 303 304 348 347 +f 304 305 349 348 +f 305 306 350 349 +f 306 307 351 350 +f 307 308 352 351 +f 308 309 353 352 +f 309 310 354 353 +f 310 267 311 354 +f 311 312 356 355 +f 312 313 357 356 +f 313 314 358 357 +f 314 315 359 358 +f 315 316 360 359 +f 316 317 361 360 +f 317 318 362 361 +f 318 319 363 362 +f 319 320 364 363 +f 320 321 365 364 +f 321 322 366 365 +f 322 323 367 366 +f 323 324 368 367 +f 324 325 369 368 +f 325 326 370 369 +f 326 327 371 370 +f 327 328 372 371 +f 328 329 373 372 +f 329 330 374 373 +f 330 331 375 374 +f 331 332 376 375 +f 332 333 377 376 +f 333 334 378 377 +f 334 335 379 378 +f 335 336 380 379 +f 336 337 381 380 +f 337 338 382 381 +f 338 339 383 382 +f 339 340 384 383 +f 340 341 385 384 +f 341 342 386 385 +f 342 343 387 386 +f 343 344 388 387 +f 344 345 389 388 +f 345 346 390 389 +f 346 347 391 390 +f 347 348 392 391 +f 348 349 393 392 +f 349 350 394 393 +f 350 351 395 394 +f 351 352 396 395 +f 352 353 397 396 +f 353 354 398 397 +f 354 311 355 398 +f 355 356 400 399 +f 356 357 401 400 +f 357 358 402 401 +f 358 359 403 402 +f 359 360 404 403 +f 360 361 405 404 +f 361 362 406 405 +f 362 363 407 406 +f 363 364 408 407 +f 364 365 409 408 +f 365 366 410 409 +f 366 367 411 410 +f 367 368 412 411 +f 368 369 413 412 +f 369 370 414 413 +f 370 371 415 414 +f 371 372 416 415 +f 372 373 417 416 +f 373 374 418 417 +f 374 375 419 418 +f 375 376 420 419 +f 376 377 421 420 +f 377 378 422 421 +f 378 379 423 422 +f 379 380 424 423 +f 380 381 425 424 +f 381 382 426 425 +f 382 383 427 426 +f 383 384 428 427 +f 384 385 429 428 +f 385 386 430 429 +f 386 387 431 430 +f 387 388 432 431 +f 388 389 433 432 +f 389 390 434 433 +f 390 391 435 434 +f 391 392 436 435 +f 392 393 437 436 +f 393 394 438 437 +f 394 395 439 438 +f 395 396 440 439 +f 396 397 441 440 +f 397 398 442 441 +f 398 355 399 442 +f 399 400 444 443 +f 400 401 445 444 +f 401 402 446 445 +f 402 403 447 446 +f 403 404 448 447 +f 404 405 449 448 +f 405 406 450 449 +f 406 407 451 450 +f 407 408 452 451 +f 408 409 453 452 +f 409 410 454 453 +f 410 411 455 454 +f 411 412 456 455 +f 412 413 457 456 +f 413 414 458 457 +f 414 415 459 458 +f 415 416 460 459 +f 416 417 461 460 +f 417 418 462 461 +f 418 419 463 462 +f 419 420 464 463 +f 420 421 465 464 +f 421 422 466 465 +f 422 423 467 466 +f 423 424 468 467 +f 424 425 469 468 +f 425 426 470 469 +f 426 427 471 470 +f 427 428 472 471 +f 428 429 473 472 +f 429 430 474 473 +f 430 431 475 474 +f 431 432 476 475 +f 432 433 477 476 +f 433 434 478 477 +f 434 435 479 478 +f 435 436 480 479 +f 436 437 481 480 +f 437 438 482 481 +f 438 439 483 482 +f 439 440 484 483 +f 440 441 485 484 +f 441 442 486 485 +f 442 399 443 486 +f 443 444 488 487 +f 444 445 489 488 +f 445 446 490 489 +f 446 447 491 490 +f 447 448 492 491 +f 448 449 493 492 +f 449 450 494 493 +f 450 451 495 494 +f 451 452 496 495 +f 452 453 497 496 +f 453 454 498 497 +f 454 455 499 498 +f 455 456 500 499 +f 456 457 501 500 +f 457 458 502 501 +f 458 459 503 502 +f 459 460 504 503 +f 460 461 505 504 +f 461 462 506 505 +f 462 463 507 506 +f 463 464 508 507 +f 464 465 509 508 +f 465 466 510 509 +f 466 467 511 510 +f 467 468 512 511 +f 468 469 513 512 +f 469 470 514 513 +f 470 471 515 514 +f 471 472 516 515 +f 472 473 517 516 +f 473 474 518 517 +f 474 475 519 518 +f 475 476 520 519 +f 476 477 521 520 +f 477 478 522 521 +f 478 479 523 522 +f 479 480 524 523 +f 480 481 525 524 +f 481 482 526 525 +f 482 483 527 526 +f 483 484 528 527 +f 484 485 529 528 +f 485 486 530 529 +f 486 443 487 530 +f 487 488 532 531 +f 488 489 533 532 +f 489 490 534 533 +f 490 491 535 534 +f 491 492 536 535 +f 492 493 537 536 +f 493 494 538 537 +f 494 495 539 538 +f 495 496 540 539 +f 496 497 541 540 +f 497 498 542 541 +f 498 499 543 542 +f 499 500 544 543 +f 500 501 545 544 +f 501 502 546 545 +f 502 503 547 546 +f 503 504 548 547 +f 504 505 549 548 +f 505 506 550 549 +f 506 507 551 550 +f 507 508 552 551 +f 508 509 553 552 +f 509 510 554 553 +f 510 511 555 554 +f 511 512 556 555 +f 512 513 557 556 +f 513 514 558 557 +f 514 515 559 558 +f 515 516 560 559 +f 516 517 561 560 +f 517 518 562 561 +f 518 519 563 562 +f 519 520 564 563 +f 520 521 565 564 +f 521 522 566 565 +f 522 523 567 566 +f 523 524 568 567 +f 524 525 569 568 +f 525 526 570 569 +f 526 527 571 570 +f 527 528 572 571 +f 528 529 573 572 +f 529 530 574 573 +f 530 487 531 574 +f 531 532 576 575 +f 532 533 577 576 +f 533 534 578 577 +f 534 535 579 578 +f 535 536 580 579 +f 536 537 581 580 +f 537 538 582 581 +f 538 539 583 582 +f 539 540 584 583 +f 540 541 585 584 +f 541 542 586 585 +f 542 543 587 586 +f 543 544 588 587 +f 544 545 589 588 +f 545 546 590 589 +f 546 547 591 590 +f 547 548 592 591 +f 548 549 593 592 +f 549 550 594 593 +f 550 551 595 594 +f 551 552 596 595 +f 552 553 597 596 +f 553 554 598 597 +f 554 555 599 598 +f 555 556 600 599 +f 556 557 601 600 +f 557 558 602 601 +f 558 559 603 602 +f 559 560 604 603 +f 560 561 605 604 +f 561 562 606 605 +f 562 563 607 606 +f 563 564 608 607 +f 564 565 609 608 +f 565 566 610 609 +f 566 567 611 610 +f 567 568 612 611 +f 568 569 613 612 +f 569 570 614 613 +f 570 571 615 614 +f 571 572 616 615 +f 572 573 617 616 +f 573 574 618 617 +f 574 531 575 618 +f 575 576 620 619 +f 576 577 621 620 +f 577 578 622 621 +f 578 579 623 622 +f 579 580 624 623 +f 580 581 625 624 +f 581 582 626 625 +f 582 583 627 626 +f 583 584 628 627 +f 584 585 629 628 +f 585 586 630 629 +f 586 587 631 630 +f 587 588 632 631 +f 588 589 633 632 +f 589 590 634 633 +f 590 591 635 634 +f 591 592 636 635 +f 592 593 637 636 +f 593 594 638 637 +f 594 595 639 638 +f 595 596 640 639 +f 596 597 641 640 +f 597 598 642 641 +f 598 599 643 642 +f 599 600 644 643 +f 600 601 645 644 +f 601 602 646 645 +f 602 603 647 646 +f 603 604 648 647 +f 604 605 649 648 +f 605 606 650 649 +f 606 607 651 650 +f 607 608 652 651 +f 608 609 653 652 +f 609 610 654 653 +f 610 611 655 654 +f 611 612 656 655 +f 612 613 657 656 +f 613 614 658 657 +f 614 615 659 658 +f 615 616 660 659 +f 616 617 661 660 +f 617 618 662 661 +f 618 575 619 662 +f 619 620 664 663 +f 620 621 665 664 +f 621 622 666 665 +f 622 623 667 666 +f 623 624 668 667 +f 624 625 669 668 +f 625 626 670 669 +f 626 627 671 670 +f 627 628 672 671 +f 628 629 673 672 +f 629 630 674 673 +f 630 631 675 674 +f 631 632 676 675 +f 632 633 677 676 +f 633 634 678 677 +f 634 635 679 678 +f 635 636 680 679 +f 636 637 681 680 +f 637 638 682 681 +f 638 639 683 682 +f 639 640 684 683 +f 640 641 685 684 +f 641 642 686 685 +f 642 643 687 686 +f 643 644 688 687 +f 644 645 689 688 +f 645 646 690 689 +f 646 647 691 690 +f 647 648 692 691 +f 648 649 693 692 +f 649 650 694 693 +f 650 651 695 694 +f 651 652 696 695 +f 652 653 697 696 +f 653 654 698 697 +f 654 655 699 698 +f 655 656 700 699 +f 656 657 701 700 +f 657 658 702 701 +f 658 659 703 702 +f 659 660 704 703 +f 660 661 705 704 +f 661 662 706 705 +f 662 619 663 706 +f 663 664 708 707 +f 664 665 709 708 +f 665 666 710 709 +f 666 667 711 710 +f 667 668 712 711 +f 668 669 713 712 +f 669 670 714 713 +f 670 671 715 714 +f 671 672 716 715 +f 672 673 717 716 +f 673 674 718 717 +f 674 675 719 718 +f 675 676 720 719 +f 676 677 721 720 +f 677 678 722 721 +f 678 679 723 722 +f 679 680 724 723 +f 680 681 725 724 +f 681 682 726 725 +f 682 683 727 726 +f 683 684 728 727 +f 684 685 729 728 +f 685 686 730 729 +f 686 687 731 730 +f 687 688 732 731 +f 688 689 733 732 +f 689 690 734 733 +f 690 691 735 734 +f 691 692 736 735 +f 692 693 737 736 +f 693 694 738 737 +f 694 695 739 738 +f 695 696 740 739 +f 696 697 741 740 +f 697 698 742 741 +f 698 699 743 742 +f 699 700 744 743 +f 700 701 745 744 +f 701 702 746 745 +f 702 703 747 746 +f 703 704 748 747 +f 704 705 749 748 +f 705 706 750 749 +f 706 663 707 750 +f 707 708 752 751 +f 708 709 753 752 +f 709 710 754 753 +f 710 711 755 754 +f 711 712 756 755 +f 712 713 757 756 +f 713 714 758 757 +f 714 715 759 758 +f 715 716 760 759 +f 716 717 761 760 +f 717 718 762 761 +f 718 719 763 762 +f 719 720 764 763 +f 720 721 765 764 +f 721 722 766 765 +f 722 723 767 766 +f 723 724 768 767 +f 724 725 769 768 +f 725 726 770 769 +f 726 727 771 770 +f 727 728 772 771 +f 728 729 773 772 +f 729 730 774 773 +f 730 731 775 774 +f 731 732 776 775 +f 732 733 777 776 +f 733 734 778 777 +f 734 735 779 778 +f 735 736 780 779 +f 736 737 781 780 +f 737 738 782 781 +f 738 739 783 782 +f 739 740 784 783 +f 740 741 785 784 +f 741 742 786 785 +f 742 743 787 786 +f 743 744 788 787 +f 744 745 789 788 +f 745 746 790 789 +f 746 747 791 790 +f 747 748 792 791 +f 748 749 793 792 +f 749 750 794 793 +f 750 707 751 794 +f 751 752 796 795 +f 752 753 797 796 +f 753 754 798 797 +f 754 755 799 798 +f 755 756 800 799 +f 756 757 801 800 +f 757 758 802 801 +f 758 759 803 802 +f 759 760 804 803 +f 760 761 805 804 +f 761 762 806 805 +f 762 763 807 806 +f 763 764 808 807 +f 764 765 809 808 +f 765 766 810 809 +f 766 767 811 810 +f 767 768 812 811 +f 768 769 813 812 +f 769 770 814 813 +f 770 771 815 814 +f 771 772 816 815 +f 772 773 817 816 +f 773 774 818 817 +f 774 775 819 818 +f 775 776 820 819 +f 776 777 821 820 +f 777 778 822 821 +f 778 779 823 822 +f 779 780 824 823 +f 780 781 825 824 +f 781 782 826 825 +f 782 783 827 826 +f 783 784 828 827 +f 784 785 829 828 +f 785 786 830 829 +f 786 787 831 830 +f 787 788 832 831 +f 788 789 833 832 +f 789 790 834 833 +f 790 791 835 834 +f 791 792 836 835 +f 792 793 837 836 +f 793 794 838 837 +f 794 751 795 838 +f 795 796 840 839 +f 796 797 841 840 +f 797 798 842 841 +f 798 799 843 842 +f 799 800 844 843 +f 800 801 845 844 +f 801 802 846 845 +f 802 803 847 846 +f 803 804 848 847 +f 804 805 849 848 +f 805 806 850 849 +f 806 807 851 850 +f 807 808 852 851 +f 808 809 853 852 +f 809 810 854 853 +f 810 811 855 854 +f 811 812 856 855 +f 812 813 857 856 +f 813 814 858 857 +f 814 815 859 858 +f 815 816 860 859 +f 816 817 861 860 +f 817 818 862 861 +f 818 819 863 862 +f 819 820 864 863 +f 820 821 865 864 +f 821 822 866 865 +f 822 823 867 866 +f 823 824 868 867 +f 824 825 869 868 +f 825 826 870 869 +f 826 827 871 870 +f 827 828 872 871 +f 828 829 873 872 +f 829 830 874 873 +f 830 831 875 874 +f 831 832 876 875 +f 832 833 877 876 +f 833 834 878 877 +f 834 835 879 878 +f 835 836 880 879 +f 836 837 881 880 +f 837 838 882 881 +f 838 795 839 882 +f 839 840 884 883 +f 840 841 885 884 +f 841 842 886 885 +f 842 843 887 886 +f 843 844 888 887 +f 844 845 889 888 +f 845 846 890 889 +f 846 847 891 890 +f 847 848 892 891 +f 848 849 893 892 +f 849 850 894 893 +f 850 851 895 894 +f 851 852 896 895 +f 852 853 897 896 +f 853 854 898 897 +f 854 855 899 898 +f 855 856 900 899 +f 856 857 901 900 +f 857 858 902 901 +f 858 859 903 902 +f 859 860 904 903 +f 860 861 905 904 +f 861 862 906 905 +f 862 863 907 906 +f 863 864 908 907 +f 864 865 909 908 +f 865 866 910 909 +f 866 867 911 910 +f 867 868 912 911 +f 868 869 913 912 +f 869 870 914 913 +f 870 871 915 914 +f 871 872 916 915 +f 872 873 917 916 +f 873 874 918 917 +f 874 875 919 918 +f 875 876 920 919 +f 876 877 921 920 +f 877 878 922 921 +f 878 879 923 922 +f 879 880 924 923 +f 880 881 925 924 +f 881 882 926 925 +f 882 839 883 926 +f 883 884 928 927 +f 884 885 929 928 +f 885 886 930 929 +f 886 887 931 930 +f 887 888 932 931 +f 888 889 933 932 +f 889 890 934 933 +f 890 891 935 934 +f 891 892 936 935 +f 892 893 937 936 +f 893 894 938 937 +f 894 895 939 938 +f 895 896 940 939 +f 896 897 941 940 +f 897 898 942 941 +f 898 899 943 942 +f 899 900 944 943 +f 900 901 945 944 +f 901 902 946 945 +f 902 903 947 946 +f 903 904 948 947 +f 904 905 949 948 +f 905 906 950 949 +f 906 907 951 950 +f 907 908 952 951 +f 908 909 953 952 +f 909 910 954 953 +f 910 911 955 954 +f 911 912 956 955 +f 912 913 957 956 +f 913 914 958 957 +f 914 915 959 958 +f 915 916 960 959 +f 916 917 961 960 +f 917 918 962 961 +f 918 919 963 962 +f 919 920 964 963 +f 920 921 965 964 +f 921 922 966 965 +f 922 923 967 966 +f 923 924 968 967 +f 924 925 969 968 +f 925 926 970 969 +f 926 883 927 970 +f 1 4 3 +f 2 927 928 +f 1 5 4 +f 2 928 929 +f 1 6 5 +f 2 929 930 +f 1 7 6 +f 2 930 931 +f 1 8 7 +f 2 931 932 +f 1 9 8 +f 2 932 933 +f 1 10 9 +f 2 933 934 +f 1 11 10 +f 2 934 935 +f 1 12 11 +f 2 935 936 +f 1 13 12 +f 2 936 937 +f 1 14 13 +f 2 937 938 +f 1 15 14 +f 2 938 939 +f 1 16 15 +f 2 939 940 +f 1 17 16 +f 2 940 941 +f 1 18 17 +f 2 941 942 +f 1 19 18 +f 2 942 943 +f 1 20 19 +f 2 943 944 +f 1 21 20 +f 2 944 945 +f 1 22 21 +f 2 945 946 +f 1 23 22 +f 2 946 947 +f 1 24 23 +f 2 947 948 +f 1 25 24 +f 2 948 949 +f 1 26 25 +f 2 949 950 +f 1 27 26 +f 2 950 951 +f 1 28 27 +f 2 951 952 +f 1 29 28 +f 2 952 953 +f 1 30 29 +f 2 953 954 +f 1 31 30 +f 2 954 955 +f 1 32 31 +f 2 955 956 +f 1 33 32 +f 2 956 957 +f 1 34 33 +f 2 957 958 +f 1 35 34 +f 2 958 959 +f 1 36 35 +f 2 959 960 +f 1 37 36 +f 2 960 961 +f 1 38 37 +f 2 961 962 +f 1 39 38 +f 2 962 963 +f 1 40 39 +f 2 963 964 +f 1 41 40 +f 2 964 965 +f 1 42 41 +f 2 965 966 +f 1 43 42 +f 2 966 967 +f 1 44 43 +f 2 967 968 +f 1 45 44 +f 2 968 969 +f 1 46 45 +f 2 969 970 +f 1 3 46 +f 2 970 927 diff --git a/data/spheres/12.obj b/data/spheres/12.obj new file mode 100644 index 0000000..70495be --- /dev/null +++ b/data/spheres/12.obj @@ -0,0 +1,2354 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 12.5333 99.2115 5.88009e-39 +v 12.4261 99.2115 1.63592 +v 12.1063 99.2115 3.24386 +v 11.5793 99.2115 4.79629 +v 10.8542 99.2115 6.26665 +v 9.94335 99.2115 7.62979 +v 8.8624 99.2115 8.86239 +v 7.62981 99.2115 9.94334 +v 6.26667 99.2115 10.8542 +v 4.7963 99.2115 11.5793 +v 3.24387 99.2115 12.1062 +v 1.63594 99.2115 12.4261 +v 1.58871e-05 99.2115 12.5333 +v -1.63591 99.2115 12.4261 +v -3.24384 99.2115 12.1063 +v -4.79627 99.2115 11.5793 +v -6.26664 99.2115 10.8542 +v -7.62978 99.2115 9.94336 +v -8.86237 99.2115 8.86241 +v -9.94333 99.2115 7.62982 +v -10.8542 99.2115 6.26668 +v -11.5793 99.2115 4.79632 +v -12.1062 99.2115 3.24389 +v -12.4261 99.2115 1.63595 +v -12.5333 99.2115 3.17742e-05 +v -12.4261 99.2115 -1.63589 +v -12.1063 99.2115 -3.24383 +v -11.5793 99.2115 -4.79626 +v -10.8542 99.2115 -6.26663 +v -9.94337 99.2115 -7.62977 +v -8.86242 99.2115 -8.86236 +v -7.62983 99.2115 -9.94332 +v -6.26669 99.2115 -10.8541 +v -4.79633 99.2115 -11.5793 +v -3.2439 99.2115 -12.1062 +v -1.63597 99.2115 -12.4261 +v -4.76613e-05 99.2115 -12.5333 +v 1.63588 99.2115 -12.4261 +v 3.24381 99.2115 -12.1063 +v 4.79624 99.2115 -11.5793 +v 6.26661 99.2115 -10.8542 +v 7.62976 99.2115 -9.94338 +v 8.86235 99.2115 -8.86243 +v 9.94331 99.2115 -7.62984 +v 10.8541 99.2115 -6.26671 +v 11.5792 99.2115 -4.79635 +v 12.1062 99.2115 -3.24392 +v 12.4261 99.2115 -1.63599 +v 24.869 96.8583 5.88009e-39 +v 24.6562 96.8583 3.24605 +v 24.0216 96.8583 6.43656 +v 22.9759 96.8583 9.51694 +v 21.5372 96.8583 12.4345 +v 19.7299 96.8583 15.1393 +v 17.585 96.8583 17.585 +v 15.1393 96.8583 19.7299 +v 12.4345 96.8583 21.5371 +v 9.51696 96.8583 22.9759 +v 6.43659 96.8583 24.0216 +v 3.24608 96.8583 24.6562 +v 3.15237e-05 96.8583 24.869 +v -3.24602 96.8583 24.6562 +v -6.43653 96.8583 24.0216 +v -9.51691 96.8583 22.9759 +v -12.4345 96.8583 21.5372 +v -15.1392 96.8583 19.7299 +v -17.585 96.8583 17.5851 +v -19.7299 96.8583 15.1393 +v -21.5371 96.8583 12.4345 +v -22.9759 96.8583 9.51699 +v -24.0216 96.8583 6.43662 +v -24.6562 96.8583 3.24611 +v -24.869 96.8583 6.30474e-05 +v -24.6562 96.8583 -3.24599 +v -24.0216 96.8583 -6.4365 +v -22.976 96.8583 -9.51688 +v -21.5372 96.8583 -12.4344 +v -19.7299 96.8583 -15.1392 +v -17.5851 96.8583 -17.585 +v -15.1393 96.8583 -19.7298 +v -12.4346 96.8583 -21.5371 +v -9.51702 96.8583 -22.9759 +v -6.43664 96.8583 -24.0216 +v -3.24614 96.8583 -24.6562 +v -9.4571e-05 96.8583 -24.869 +v 3.24596 96.8583 -24.6562 +v 6.43647 96.8583 -24.0216 +v 9.51685 96.8583 -22.976 +v 12.4344 96.8583 -21.5372 +v 15.1392 96.8583 -19.7299 +v 17.5849 96.8583 -17.5851 +v 19.7298 96.8583 -15.1394 +v 21.5371 96.8583 -12.4346 +v 22.9759 96.8583 -9.51705 +v 24.0215 96.8583 -6.43667 +v 24.6562 96.8583 -3.24617 +v 36.8124 92.9777 5.88009e-39 +v 36.4975 92.9777 4.80498 +v 35.5581 92.9777 9.52775 +v 34.0103 92.9777 14.0875 +v 31.8805 92.9777 18.4062 +v 29.2053 92.9777 22.41 +v 26.0303 92.9777 26.0303 +v 22.41 92.9777 29.2052 +v 18.4062 92.9777 31.8805 +v 14.0875 92.9777 34.0102 +v 9.52779 92.9777 35.5581 +v 4.80503 92.9777 36.4975 +v 4.66631e-05 92.9777 36.8124 +v -4.80494 92.9777 36.4975 +v -9.52771 92.9777 35.5581 +v -14.0875 92.9777 34.0103 +v -18.4062 92.9777 31.8805 +v -22.4099 92.9777 29.2053 +v -26.0303 92.9777 26.0304 +v -29.2052 92.9777 22.41 +v -31.8805 92.9777 18.4063 +v -34.0102 92.9777 14.0876 +v -35.5581 92.9777 9.52784 +v -36.4975 92.9777 4.80507 +v -36.8124 92.9777 9.33262e-05 +v -36.4975 92.9777 -4.80489 +v -35.5581 92.9777 -9.52767 +v -34.0103 92.9777 -14.0874 +v -31.8806 92.9777 -18.4061 +v -29.2053 92.9777 -22.4099 +v -26.0304 92.9777 -26.0302 +v -22.4101 92.9777 -29.2052 +v -18.4063 92.9777 -31.8804 +v -14.0876 92.9777 -34.0102 +v -9.52787 92.9777 -35.558 +v -4.80512 92.9777 -36.4975 +v -0.000139989 92.9777 -36.8124 +v 4.80485 92.9777 -36.4975 +v 9.52762 92.9777 -35.5581 +v 14.0874 92.9777 -34.0103 +v 18.4061 92.9777 -31.8806 +v 22.4099 92.9777 -29.2054 +v 26.0302 92.9777 -26.0304 +v 29.2052 92.9777 -22.4101 +v 31.8804 92.9777 -18.4064 +v 34.0102 92.9777 -14.0877 +v 35.558 92.9777 -9.52792 +v 36.4975 92.9777 -4.80516 +v 48.1753 87.6307 5.88009e-39 +v 47.7632 87.6307 6.28814 +v 46.5338 87.6307 12.4687 +v 44.5082 87.6307 18.4359 +v 41.7211 87.6307 24.0877 +v 38.2201 87.6307 29.3273 +v 34.0651 87.6307 34.0651 +v 29.3273 87.6307 38.22 +v 24.0877 87.6307 41.721 +v 18.4359 87.6307 44.5082 +v 12.4687 87.6307 46.5338 +v 6.2882 87.6307 47.7632 +v 6.10666e-05 87.6307 48.1753 +v -6.28808 87.6307 47.7632 +v -12.4686 87.6307 46.5338 +v -18.4358 87.6307 44.5082 +v -24.0876 87.6307 41.7211 +v -29.3272 87.6307 38.2201 +v -34.065 87.6307 34.0652 +v -38.22 87.6307 29.3274 +v -41.721 87.6307 24.0877 +v -44.5082 87.6307 18.436 +v -46.5338 87.6307 12.4688 +v -47.7632 87.6307 6.28825 +v -48.1753 87.6307 0.000122133 +v -47.7632 87.6307 -6.28802 +v -46.5338 87.6307 -12.4686 +v -44.5083 87.6307 -18.4358 +v -41.7211 87.6307 -24.0875 +v -38.2201 87.6307 -29.3272 +v -34.0652 87.6307 -34.065 +v -29.3274 87.6307 -38.22 +v -24.0878 87.6307 -41.721 +v -18.4361 87.6307 -44.5081 +v -12.4688 87.6307 -46.5338 +v -6.28831 87.6307 -47.7632 +v -0.0001832 87.6307 -48.1753 +v 6.28797 87.6307 -47.7632 +v 12.4685 87.6307 -46.5338 +v 18.4357 87.6307 -44.5083 +v 24.0875 87.6307 -41.7212 +v 29.3271 87.6307 -38.2202 +v 34.065 87.6307 -34.0653 +v 38.2199 87.6307 -29.3274 +v 41.721 87.6307 -24.0879 +v 44.5081 87.6307 -18.4361 +v 46.5337 87.6307 -12.4689 +v 47.7632 87.6307 -6.28837 +v 58.7785 80.9017 5.88009e-39 +v 58.2756 80.9017 7.67213 +v 56.7757 80.9017 15.213 +v 54.3042 80.9017 22.4935 +v 50.9037 80.9017 29.3892 +v 46.6321 80.9017 35.7821 +v 41.5627 80.9017 41.5626 +v 35.7821 80.9017 46.6321 +v 29.3893 80.9017 50.9036 +v 22.4936 80.9017 54.3042 +v 15.213 80.9017 56.7756 +v 7.6722 80.9017 58.2756 +v 7.45071e-05 80.9017 58.7785 +v -7.67206 80.9017 58.2756 +v -15.2129 80.9017 56.7757 +v -22.4935 80.9017 54.3043 +v -29.3892 80.9017 50.9037 +v -35.782 80.9017 46.6322 +v -41.5626 80.9017 41.5627 +v -46.632 80.9017 35.7822 +v -50.9036 80.9017 29.3893 +v -54.3042 80.9017 22.4937 +v -56.7756 80.9017 15.2131 +v -58.2756 80.9017 7.67226 +v -58.7785 80.9017 0.000149014 +v -58.2757 80.9017 -7.67198 +v -56.7757 80.9017 -15.2128 +v -54.3043 80.9017 -22.4934 +v -50.9037 80.9017 -29.3891 +v -46.6322 80.9017 -35.7819 +v -41.5628 80.9017 -41.5625 +v -35.7822 80.9017 -46.632 +v -29.3894 80.9017 -50.9036 +v -22.4937 80.9017 -54.3042 +v -15.2132 80.9017 -56.7756 +v -7.67234 80.9017 -58.2756 +v -0.000223521 80.9017 -58.7785 +v 7.67192 80.9017 -58.2757 +v 15.2128 80.9017 -56.7757 +v 22.4933 80.9017 -54.3043 +v 29.389 80.9017 -50.9038 +v 35.7819 80.9017 -46.6323 +v 41.5625 80.9017 -41.5629 +v 46.632 80.9017 -35.7823 +v 50.9035 80.9017 -29.3895 +v 54.3041 80.9017 -22.4938 +v 56.7756 80.9017 -15.2133 +v 58.2756 80.9017 -7.67241 +v 68.4547 72.8969 5.88009e-39 +v 67.869 72.8969 8.93512 +v 66.1221 72.8969 17.7174 +v 63.2439 72.8969 26.1964 +v 59.2835 72.8969 34.2273 +v 54.3088 72.8969 41.6725 +v 48.4048 72.8969 48.4047 +v 41.6726 72.8969 54.3087 +v 34.2274 72.8969 59.2835 +v 26.1965 72.8969 63.2438 +v 17.7174 72.8969 66.1221 +v 8.9352 72.8969 67.869 +v 8.67725e-05 72.8969 68.4547 +v -8.93504 72.8969 67.869 +v -17.7173 72.8969 66.1222 +v -26.1964 72.8969 63.2439 +v -34.2272 72.8969 59.2835 +v -41.6725 72.8969 54.3088 +v -48.4047 72.8969 48.4049 +v -54.3087 72.8969 41.6727 +v -59.2834 72.8969 34.2274 +v -63.2438 72.8969 26.1966 +v -66.1221 72.8969 17.7175 +v -67.869 72.8969 8.93528 +v -68.4547 72.8969 0.000173545 +v -67.869 72.8969 -8.93495 +v -66.1222 72.8969 -17.7172 +v -63.2439 72.8969 -26.1963 +v -59.2836 72.8969 -34.2272 +v -54.3089 72.8969 -41.6724 +v -48.4049 72.8969 -48.4046 +v -41.6727 72.8969 -54.3086 +v -34.2275 72.8969 -59.2834 +v -26.1967 72.8969 -63.2438 +v -17.7176 72.8969 -66.1221 +v -8.93537 72.8969 -67.869 +v -0.000260318 72.8969 -68.4547 +v 8.93488 72.8969 -67.8691 +v 17.7171 72.8969 -66.1222 +v 26.1962 72.8969 -63.244 +v 34.2271 72.8969 -59.2836 +v 41.6723 72.8969 -54.3089 +v 48.4045 72.8969 -48.405 +v 54.3086 72.8969 -41.6728 +v 59.2833 72.8969 -34.2276 +v 63.2437 72.8969 -26.1968 +v 66.122 72.8969 -17.7177 +v 67.869 72.8969 -8.93545 +v 77.0513 63.7425 5.88009e-39 +v 76.3921 63.7425 10.0572 +v 74.4258 63.7425 19.9423 +v 71.1861 63.7425 29.4862 +v 66.7284 63.7425 38.5256 +v 61.1289 63.7425 46.9058 +v 54.4835 63.7425 54.4834 +v 46.9059 63.7425 61.1289 +v 38.5257 63.7425 66.7283 +v 29.4863 63.7425 71.1861 +v 19.9424 63.7425 74.4258 +v 10.0573 63.7425 76.3921 +v 9.76695e-05 63.7425 77.0513 +v -10.0571 63.7425 76.3921 +v -19.9422 63.7425 74.4258 +v -29.4861 63.7425 71.1861 +v -38.5255 63.7425 66.7284 +v -46.9057 63.7425 61.129 +v -54.4834 63.7425 54.4836 +v -61.1288 63.7425 46.906 +v -66.7283 63.7425 38.5258 +v -71.186 63.7425 29.4864 +v -74.4258 63.7425 19.9425 +v -76.3921 63.7425 10.0574 +v -77.0513 63.7425 0.000195339 +v -76.3921 63.7425 -10.057 +v -74.4259 63.7425 -19.9421 +v -71.1862 63.7425 -29.4861 +v -66.7285 63.7425 -38.5254 +v -61.129 63.7425 -46.9057 +v -54.4836 63.7425 -54.4833 +v -46.906 63.7425 -61.1287 +v -38.5259 63.7425 -66.7282 +v -29.4865 63.7425 -71.186 +v -19.9426 63.7425 -74.4258 +v -10.0575 63.7425 -76.3921 +v -0.000293008 63.7425 -77.0513 +v 10.0569 63.7425 -76.3921 +v 19.9421 63.7425 -74.4259 +v 29.486 63.7425 -71.1862 +v 38.5254 63.7425 -66.7285 +v 46.9056 63.7425 -61.1291 +v 54.4832 63.7425 -54.4837 +v 61.1287 63.7425 -46.9061 +v 66.7282 63.7425 -38.5259 +v 71.186 63.7425 -29.4866 +v 74.4257 63.7425 -19.9427 +v 76.392 63.7425 -10.0576 +v 84.4327 53.5827 5.88009e-39 +v 83.7104 53.5827 11.0207 +v 81.5558 53.5827 21.8528 +v 78.0057 53.5827 32.311 +v 73.1209 53.5827 42.2163 +v 66.985 53.5827 51.3994 +v 59.703 53.5827 59.7029 +v 51.3994 53.5827 66.985 +v 42.2164 53.5827 73.1209 +v 32.3111 53.5827 78.0057 +v 21.8529 53.5827 81.5557 +v 11.0208 53.5827 83.7104 +v 0.000107026 53.5827 84.4327 +v -11.0206 53.5827 83.7104 +v -21.8527 53.5827 81.5558 +v -32.3109 53.5827 78.0057 +v -42.2163 53.5827 73.121 +v -51.3993 53.5827 66.9851 +v -59.7029 53.5827 59.7031 +v -66.9849 53.5827 51.3995 +v -73.1208 53.5827 42.2165 +v -78.0056 53.5827 32.3112 +v -81.5557 53.5827 21.853 +v -83.7104 53.5827 11.0209 +v -84.4327 53.5827 0.000214052 +v -83.7104 53.5827 -11.0205 +v -81.5558 53.5827 -21.8526 +v -78.0058 53.5827 -32.3108 +v -73.121 53.5827 -42.2162 +v -66.9852 53.5827 -51.3992 +v -59.7031 53.5827 -59.7028 +v -51.3996 53.5827 -66.9848 +v -42.2166 53.5827 -73.1208 +v -32.3113 53.5827 -78.0056 +v -21.8531 53.5827 -81.5557 +v -11.021 53.5827 -83.7104 +v -0.000321079 53.5827 -84.4327 +v 11.0204 53.5827 -83.7104 +v 21.8525 53.5827 -81.5559 +v 32.3107 53.5827 -78.0058 +v 42.2161 53.5827 -73.1211 +v 51.3991 53.5827 -66.9852 +v 59.7027 53.5827 -59.7032 +v 66.9848 53.5827 -51.3997 +v 73.1207 53.5827 -42.2167 +v 78.0055 53.5827 -32.3114 +v 81.5557 53.5827 -21.8532 +v 83.7104 53.5827 -11.0211 +v 90.4827 42.578 5.88009e-39 +v 89.7086 42.578 11.8103 +v 87.3996 42.578 23.4186 +v 83.5951 42.578 34.6262 +v 78.3603 42.578 45.2413 +v 71.7848 42.578 55.0823 +v 63.9809 42.578 63.9809 +v 55.0824 42.578 71.7847 +v 45.2414 42.578 78.3603 +v 34.6263 42.578 83.595 +v 23.4187 42.578 87.3995 +v 11.8105 42.578 89.7086 +v 0.000114695 42.578 90.4827 +v -11.8102 42.578 89.7086 +v -23.4185 42.578 87.3996 +v -34.6261 42.578 83.5951 +v -45.2412 42.578 78.3604 +v -55.0822 42.578 71.7848 +v -63.9808 42.578 63.981 +v -71.7846 42.578 55.0825 +v -78.3602 42.578 45.2415 +v -83.595 42.578 34.6264 +v -87.3995 42.578 23.4188 +v -89.7085 42.578 11.8106 +v -90.4827 42.578 0.00022939 +v -89.7086 42.578 -11.8101 +v -87.3996 42.578 -23.4184 +v -83.5952 42.578 -34.626 +v -78.3604 42.578 -45.2411 +v -71.7849 42.578 -55.0821 +v -63.9811 42.578 -63.9807 +v -55.0826 42.578 -71.7846 +v -45.2416 42.578 -78.3601 +v -34.6265 42.578 -83.595 +v -23.4189 42.578 -87.3995 +v -11.8107 42.578 -89.7085 +v -0.000344085 42.578 -90.4827 +v 11.81 42.578 -89.7086 +v 23.4183 42.578 -87.3996 +v 34.6259 42.578 -83.5952 +v 45.241 42.578 -78.3605 +v 55.0821 42.578 -71.785 +v 63.9806 42.578 -63.9812 +v 71.7845 42.578 -55.0827 +v 78.3601 42.578 -45.2417 +v 83.5949 42.578 -34.6266 +v 87.3994 42.578 -23.419 +v 89.7085 42.578 -11.8108 +v 95.1056 30.9018 5.88009e-39 +v 94.292 30.9018 12.4138 +v 91.865 30.9018 24.6151 +v 87.8661 30.9018 36.3953 +v 82.3639 30.9018 47.5528 +v 75.4524 30.9018 57.8966 +v 67.2499 30.9018 67.2498 +v 57.8967 30.9018 75.4523 +v 47.5529 30.9018 82.3638 +v 36.3954 30.9018 87.8661 +v 24.6152 30.9018 91.865 +v 12.4139 30.9018 94.292 +v 0.000120555 30.9018 95.1056 +v -12.4137 30.9018 94.292 +v -24.615 30.9018 91.865 +v -36.3952 30.9018 87.8662 +v -47.5527 30.9018 82.364 +v -57.8965 30.9018 75.4525 +v -67.2497 30.9018 67.25 +v -75.4522 30.9018 57.8968 +v -82.3638 30.9018 47.553 +v -87.8661 30.9018 36.3955 +v -91.8649 30.9018 24.6154 +v -94.292 30.9018 12.414 +v -95.1056 30.9018 0.00024111 +v -94.292 30.9018 -12.4135 +v -91.865 30.9018 -24.6149 +v -87.8662 30.9018 -36.3951 +v -82.364 30.9018 -47.5526 +v -75.4525 30.9018 -57.8964 +v -67.25 30.9018 -67.2496 +v -57.8969 30.9018 -75.4522 +v -47.5531 30.9018 -82.3637 +v -36.3957 30.9018 -87.866 +v -24.6154 30.9018 -91.8649 +v -12.4141 30.9018 -94.2919 +v -0.000361665 30.9018 -95.1056 +v 12.4134 30.9018 -94.292 +v 24.6148 30.9018 -91.8651 +v 36.395 30.9018 -87.8663 +v 47.5525 30.9018 -82.3641 +v 57.8963 30.9018 -75.4526 +v 67.2495 30.9018 -67.2501 +v 75.4521 30.9018 -57.897 +v 82.3637 30.9018 -47.5532 +v 87.866 30.9018 -36.3958 +v 91.8649 30.9018 -24.6156 +v 94.2919 30.9018 -12.4142 +v 98.2287 18.7382 5.88009e-39 +v 97.3883 18.7382 12.8214 +v 94.8817 18.7382 25.4234 +v 90.7515 18.7382 37.5905 +v 85.0686 18.7382 49.1143 +v 77.9301 18.7382 59.7978 +v 69.4582 18.7382 69.4581 +v 59.7979 18.7382 77.93 +v 49.1144 18.7382 85.0685 +v 37.5906 18.7382 90.7515 +v 25.4236 18.7382 94.8816 +v 12.8215 18.7382 97.3883 +v 0.000124514 18.7382 98.2287 +v -12.8213 18.7382 97.3884 +v -25.4233 18.7382 94.8817 +v -37.5904 18.7382 90.7515 +v -49.1142 18.7382 85.0686 +v -59.7977 18.7382 77.9302 +v -69.4581 18.7382 69.4583 +v -77.93 18.7382 59.798 +v -85.0685 18.7382 49.1145 +v -90.7514 18.7382 37.5907 +v -94.8816 18.7382 25.4237 +v -97.3883 18.7382 12.8216 +v -98.2287 18.7382 0.000249028 +v -97.3884 18.7382 -12.8212 +v -94.8817 18.7382 -25.4232 +v -90.7516 18.7382 -37.5903 +v -85.0687 18.7382 -49.1141 +v -77.9302 18.7382 -59.7976 +v -69.4584 18.7382 -69.458 +v -59.7981 18.7382 -77.9299 +v -49.1146 18.7382 -85.0684 +v -37.5908 18.7382 -90.7514 +v -25.4238 18.7382 -94.8816 +v -12.8218 18.7382 -97.3883 +v -0.000373541 18.7382 -98.2287 +v 12.8211 18.7382 -97.3884 +v 25.4231 18.7382 -94.8817 +v 37.5901 18.7382 -90.7516 +v 49.114 18.7382 -85.0687 +v 59.7975 18.7382 -77.9303 +v 69.4579 18.7382 -69.4585 +v 77.9298 18.7382 -59.7982 +v 85.0683 18.7382 -49.1147 +v 90.7513 18.7382 -37.5909 +v 94.8815 18.7382 -25.4239 +v 97.3883 18.7382 -12.8219 +v 99.8027 6.27917 5.88009e-39 +v 98.9488 6.27917 13.0269 +v 96.402 6.27917 25.8308 +v 92.2057 6.27917 38.1928 +v 86.4317 6.27917 49.9013 +v 79.1788 6.27917 60.756 +v 70.5712 6.27917 70.5711 +v 60.7561 6.27917 79.1787 +v 49.9014 6.27917 86.4316 +v 38.1929 6.27917 92.2056 +v 25.8309 6.27917 96.4019 +v 13.027 6.27917 98.9488 +v 0.000126509 6.27917 99.8027 +v -13.0267 6.27917 98.9489 +v -25.8307 6.27917 96.402 +v -38.1927 6.27917 92.2057 +v -49.9012 6.27917 86.4317 +v -60.7559 6.27917 79.1789 +v -70.571 6.27917 70.5713 +v -79.1787 6.27917 60.7562 +v -86.4315 6.27917 49.9015 +v -92.2056 6.27917 38.193 +v -96.4019 6.27917 25.831 +v -98.9488 6.27917 13.0271 +v -99.8027 6.27917 0.000253018 +v -98.9489 6.27917 -13.0266 +v -96.402 6.27917 -25.8306 +v -92.2057 6.27917 -38.1926 +v -86.4318 6.27917 -49.9011 +v -79.179 6.27917 -60.7558 +v -70.5714 6.27917 -70.5709 +v -60.7562 6.27917 -79.1786 +v -49.9016 6.27917 -86.4315 +v -38.1931 6.27917 -92.2055 +v -25.8311 6.27917 -96.4019 +v -13.0272 6.27917 -98.9488 +v -0.000379527 6.27917 -99.8027 +v 13.0265 6.27917 -98.9489 +v 25.8305 6.27917 -96.4021 +v 38.1924 6.27917 -92.2058 +v 49.901 6.27917 -86.4318 +v 60.7557 6.27917 -79.179 +v 70.5708 6.27917 -70.5715 +v 79.1785 6.27917 -60.7563 +v 86.4314 6.27917 -49.9017 +v 92.2055 6.27917 -38.1933 +v 96.4019 6.27917 -25.8313 +v 98.9488 6.27917 -13.0273 +v 99.8027 -6.27893 5.88009e-39 +v 98.9489 -6.27893 13.0269 +v 96.402 -6.27893 25.8308 +v 92.2057 -6.27893 38.1928 +v 86.4317 -6.27893 49.9013 +v 79.1788 -6.27893 60.756 +v 70.5712 -6.27893 70.5711 +v 60.7561 -6.27893 79.1787 +v 49.9014 -6.27893 86.4316 +v 38.1929 -6.27893 92.2056 +v 25.8309 -6.27893 96.402 +v 13.027 -6.27893 98.9488 +v 0.000126509 -6.27893 99.8027 +v -13.0267 -6.27893 98.9489 +v -25.8307 -6.27893 96.402 +v -38.1927 -6.27893 92.2057 +v -49.9012 -6.27893 86.4317 +v -60.7559 -6.27893 79.1789 +v -70.571 -6.27893 70.5713 +v -79.1787 -6.27893 60.7562 +v -86.4316 -6.27893 49.9015 +v -92.2056 -6.27893 38.193 +v -96.4019 -6.27893 25.8311 +v -98.9488 -6.27893 13.0271 +v -99.8027 -6.27893 0.000253018 +v -98.9489 -6.27893 -13.0266 +v -96.4021 -6.27893 -25.8306 +v -92.2058 -6.27893 -38.1926 +v -86.4318 -6.27893 -49.9011 +v -79.179 -6.27893 -60.7558 +v -70.5714 -6.27893 -70.5709 +v -60.7563 -6.27893 -79.1786 +v -49.9016 -6.27893 -86.4315 +v -38.1932 -6.27893 -92.2055 +v -25.8312 -6.27893 -96.4019 +v -13.0272 -6.27893 -98.9488 +v -0.000379527 -6.27893 -99.8027 +v 13.0265 -6.27893 -98.9489 +v 25.8305 -6.27893 -96.4021 +v 38.1925 -6.27893 -92.2058 +v 49.901 -6.27893 -86.4319 +v 60.7557 -6.27893 -79.179 +v 70.5708 -6.27893 -70.5715 +v 79.1785 -6.27893 -60.7564 +v 86.4314 -6.27893 -49.9017 +v 92.2055 -6.27893 -38.1933 +v 96.4019 -6.27893 -25.8313 +v 98.9488 -6.27893 -13.0273 +v 98.2288 -18.738 5.88009e-39 +v 97.3884 -18.738 12.8214 +v 94.8817 -18.738 25.4235 +v 90.7515 -18.738 37.5905 +v 85.0686 -18.738 49.1143 +v 77.9301 -18.738 59.7978 +v 69.4583 -18.738 69.4582 +v 59.7979 -18.738 77.9301 +v 49.1144 -18.738 85.0686 +v 37.5906 -18.738 90.7515 +v 25.4236 -18.738 94.8817 +v 12.8215 -18.738 97.3884 +v 0.000124514 -18.738 98.2288 +v -12.8213 -18.738 97.3884 +v -25.4233 -18.738 94.8817 +v -37.5904 -18.738 90.7516 +v -49.1142 -18.738 85.0687 +v -59.7977 -18.738 77.9302 +v -69.4581 -18.738 69.4584 +v -77.93 -18.738 59.798 +v -85.0685 -18.738 49.1145 +v -90.7514 -18.738 37.5907 +v -94.8816 -18.738 25.4237 +v -97.3884 -18.738 12.8216 +v -98.2288 -18.738 0.000249028 +v -97.3884 -18.738 -12.8212 +v -94.8818 -18.738 -25.4232 +v -90.7516 -18.738 -37.5903 +v -85.0687 -18.738 -49.1141 +v -77.9303 -18.738 -59.7976 +v -69.4584 -18.738 -69.458 +v -59.7981 -18.738 -77.9299 +v -49.1147 -18.738 -85.0684 +v -37.5908 -18.738 -90.7514 +v -25.4238 -18.738 -94.8816 +v -12.8218 -18.738 -97.3883 +v -0.000373542 -18.738 -98.2288 +v 12.8211 -18.738 -97.3884 +v 25.4231 -18.738 -94.8818 +v 37.5901 -18.738 -90.7517 +v 49.114 -18.738 -85.0688 +v 59.7976 -18.738 -77.9304 +v 69.4579 -18.738 -69.4585 +v 77.9299 -18.738 -59.7982 +v 85.0684 -18.738 -49.1148 +v 90.7514 -18.738 -37.5909 +v 94.8816 -18.738 -25.4239 +v 97.3883 -18.738 -12.8219 +v 95.1057 -30.9016 5.88009e-39 +v 94.2921 -30.9016 12.4138 +v 91.8651 -30.9016 24.6151 +v 87.8662 -30.9016 36.3953 +v 82.364 -30.9016 47.5528 +v 75.4525 -30.9016 57.8966 +v 67.2499 -30.9016 67.2498 +v 57.8967 -30.9016 75.4524 +v 47.5529 -30.9016 82.3639 +v 36.3955 -30.9016 87.8662 +v 24.6153 -30.9016 91.865 +v 12.4139 -30.9016 94.292 +v 0.000120555 -30.9016 95.1057 +v -12.4137 -30.9016 94.2921 +v -24.615 -30.9016 91.8651 +v -36.3952 -30.9016 87.8663 +v -47.5527 -30.9016 82.364 +v -57.8966 -30.9016 75.4525 +v -67.2498 -30.9016 67.25 +v -75.4523 -30.9016 57.8968 +v -82.3639 -30.9016 47.553 +v -87.8661 -30.9016 36.3956 +v -91.865 -30.9016 24.6154 +v -94.292 -30.9016 12.414 +v -95.1057 -30.9016 0.00024111 +v -94.2921 -30.9016 -12.4135 +v -91.8651 -30.9016 -24.6149 +v -87.8663 -30.9016 -36.3951 +v -82.3641 -30.9016 -47.5526 +v -75.4526 -30.9016 -57.8965 +v -67.2501 -30.9016 -67.2497 +v -57.8969 -30.9016 -75.4523 +v -47.5531 -30.9016 -82.3638 +v -36.3957 -30.9016 -87.8661 +v -24.6155 -30.9016 -91.865 +v -12.4141 -30.9016 -94.292 +v -0.000361665 -30.9016 -95.1057 +v 12.4134 -30.9016 -94.2921 +v 24.6148 -30.9016 -91.8651 +v 36.395 -30.9016 -87.8664 +v 47.5525 -30.9016 -82.3641 +v 57.8964 -30.9016 -75.4527 +v 67.2496 -30.9016 -67.2502 +v 75.4522 -30.9016 -57.897 +v 82.3637 -30.9016 -47.5532 +v 87.866 -30.9016 -36.3958 +v 91.8649 -30.9016 -24.6156 +v 94.292 -30.9016 -12.4142 +v 90.4828 -42.5778 5.88009e-39 +v 89.7087 -42.5778 11.8104 +v 87.3997 -42.5778 23.4186 +v 83.5952 -42.5778 34.6262 +v 78.3604 -42.5778 45.2414 +v 71.7848 -42.5778 55.0824 +v 63.981 -42.5778 63.9809 +v 55.0825 -42.5778 71.7848 +v 45.2415 -42.5778 78.3603 +v 34.6263 -42.5778 83.5951 +v 23.4188 -42.5778 87.3996 +v 11.8105 -42.5778 89.7087 +v 0.000114695 -42.5778 90.4828 +v -11.8103 -42.5778 89.7087 +v -23.4185 -42.5778 87.3997 +v -34.6261 -42.5778 83.5952 +v -45.2413 -42.5778 78.3605 +v -55.0823 -42.5778 71.7849 +v -63.9809 -42.5778 63.9811 +v -71.7847 -42.5778 55.0826 +v -78.3603 -42.5778 45.2415 +v -83.5951 -42.5778 34.6264 +v -87.3996 -42.5778 23.4189 +v -89.7087 -42.5778 11.8106 +v -90.4828 -42.5778 0.00022939 +v -89.7087 -42.5778 -11.8101 +v -87.3997 -42.5778 -23.4184 +v -83.5953 -42.5778 -34.626 +v -78.3605 -42.5778 -45.2412 +v -71.785 -42.5778 -55.0822 +v -63.9812 -42.5778 -63.9808 +v -55.0826 -42.5778 -71.7846 +v -45.2416 -42.5778 -78.3602 +v -34.6265 -42.5778 -83.5951 +v -23.419 -42.5778 -87.3996 +v -11.8107 -42.5778 -89.7086 +v -0.000344085 -42.5778 -90.4828 +v 11.8101 -42.5778 -89.7087 +v 23.4183 -42.5778 -87.3997 +v 34.6259 -42.5778 -83.5953 +v 45.2411 -42.5778 -78.3606 +v 55.0821 -42.5778 -71.785 +v 63.9807 -42.5778 -63.9813 +v 71.7846 -42.5778 -55.0827 +v 78.3602 -42.5778 -45.2417 +v 83.595 -42.5778 -34.6267 +v 87.3995 -42.5778 -23.4191 +v 89.7086 -42.5778 -11.8108 +v 84.4329 -53.5825 5.88009e-39 +v 83.7105 -53.5825 11.0207 +v 81.5559 -53.5825 21.8528 +v 78.0058 -53.5825 32.311 +v 73.121 -53.5825 42.2164 +v 66.9851 -53.5825 51.3995 +v 59.7031 -53.5825 59.703 +v 51.3995 -53.5825 66.9851 +v 42.2165 -53.5825 73.121 +v 32.3111 -53.5825 78.0058 +v 21.8529 -53.5825 81.5559 +v 11.0208 -53.5825 83.7105 +v 0.000107026 -53.5825 84.4329 +v -11.0206 -53.5825 83.7106 +v -21.8527 -53.5825 81.5559 +v -32.311 -53.5825 78.0059 +v -42.2163 -53.5825 73.1211 +v -51.3994 -53.5825 66.9852 +v -59.703 -53.5825 59.7032 +v -66.985 -53.5825 51.3996 +v -73.1209 -53.5825 42.2166 +v -78.0057 -53.5825 32.3112 +v -81.5559 -53.5825 21.853 +v -83.7105 -53.5825 11.0209 +v -84.4329 -53.5825 0.000214053 +v -83.7106 -53.5825 -11.0205 +v -81.556 -53.5825 -21.8526 +v -78.0059 -53.5825 -32.3109 +v -73.1211 -53.5825 -42.2162 +v -66.9853 -53.5825 -51.3993 +v -59.7032 -53.5825 -59.7029 +v -51.3997 -53.5825 -66.985 +v -42.2167 -53.5825 -73.1209 +v -32.3113 -53.5825 -78.0057 +v -21.8531 -53.5825 -81.5558 +v -11.021 -53.5825 -83.7105 +v -0.000321079 -53.5825 -84.4329 +v 11.0204 -53.5825 -83.7106 +v 21.8525 -53.5825 -81.556 +v 32.3107 -53.5825 -78.0059 +v 42.2162 -53.5825 -73.1212 +v 51.3992 -53.5825 -66.9853 +v 59.7028 -53.5825 -59.7033 +v 66.9849 -53.5825 -51.3998 +v 73.1208 -53.5825 -42.2168 +v 78.0057 -53.5825 -32.3114 +v 81.5558 -53.5825 -21.8532 +v 83.7105 -53.5825 -11.0211 +v 77.0514 -63.7423 5.88009e-39 +v 76.3922 -63.7423 10.0572 +v 74.426 -63.7423 19.9424 +v 71.1862 -63.7423 29.4863 +v 66.7285 -63.7423 38.5257 +v 61.129 -63.7423 46.9059 +v 54.4836 -63.7423 54.4836 +v 46.906 -63.7423 61.129 +v 38.5258 -63.7423 66.7285 +v 29.4864 -63.7423 71.1862 +v 19.9424 -63.7423 74.4259 +v 10.0573 -63.7423 76.3922 +v 9.76697e-05 -63.7423 77.0514 +v -10.0571 -63.7423 76.3923 +v -19.9423 -63.7423 74.426 +v -29.4862 -63.7423 71.1863 +v -38.5256 -63.7423 66.7286 +v -46.9058 -63.7423 61.1291 +v -54.4835 -63.7423 54.4837 +v -61.1289 -63.7423 46.9061 +v -66.7284 -63.7423 38.5258 +v -71.1862 -63.7423 29.4865 +v -74.4259 -63.7423 19.9425 +v -76.3922 -63.7423 10.0574 +v -77.0514 -63.7423 0.000195339 +v -76.3923 -63.7423 -10.057 +v -74.426 -63.7423 -19.9422 +v -71.1863 -63.7423 -29.4861 +v -66.7286 -63.7423 -38.5255 +v -61.1291 -63.7423 -46.9058 +v -54.4837 -63.7423 -54.4834 +v -46.9061 -63.7423 -61.1289 +v -38.5259 -63.7423 -66.7284 +v -29.4866 -63.7423 -71.1861 +v -19.9426 -63.7423 -74.4259 +v -10.0575 -63.7423 -76.3922 +v -0.000293009 -63.7423 -77.0514 +v 10.057 -63.7423 -76.3923 +v 19.9421 -63.7423 -74.426 +v 29.486 -63.7423 -71.1864 +v 38.5255 -63.7423 -66.7286 +v 46.9057 -63.7423 -61.1292 +v 54.4833 -63.7423 -54.4838 +v 61.1288 -63.7423 -46.9062 +v 66.7283 -63.7423 -38.526 +v 71.1861 -63.7423 -29.4866 +v 74.4259 -63.7423 -19.9427 +v 76.3922 -63.7423 -10.0576 +v 68.4548 -72.8967 5.88009e-39 +v 67.8692 -72.8967 8.93514 +v 66.1223 -72.8967 17.7174 +v 63.244 -72.8967 26.1965 +v 59.2837 -72.8967 34.2274 +v 54.3089 -72.8967 41.6726 +v 48.4049 -72.8967 48.4049 +v 41.6727 -72.8967 54.3089 +v 34.2275 -72.8967 59.2836 +v 26.1966 -72.8967 63.244 +v 17.7175 -72.8967 66.1223 +v 8.93523 -72.8967 67.8692 +v 8.67727e-05 -72.8967 68.4548 +v -8.93506 -72.8967 67.8692 +v -17.7173 -72.8967 66.1223 +v -26.1964 -72.8967 63.2441 +v -34.2273 -72.8967 59.2837 +v -41.6726 -72.8967 54.309 +v -48.4048 -72.8967 48.405 +v -54.3088 -72.8967 41.6728 +v -59.2836 -72.8967 34.2275 +v -63.244 -72.8967 26.1967 +v -66.1223 -72.8967 17.7176 +v -67.8692 -72.8967 8.9353 +v -68.4548 -72.8967 0.000173545 +v -67.8692 -72.8967 -8.93498 +v -66.1224 -72.8967 -17.7172 +v -63.2441 -72.8967 -26.1964 +v -59.2837 -72.8967 -34.2273 +v -54.309 -72.8967 -41.6725 +v -48.405 -72.8967 -48.4047 +v -41.6728 -72.8967 -54.3088 +v -34.2276 -72.8967 -59.2835 +v -26.1968 -72.8967 -63.2439 +v -17.7176 -72.8967 -66.1222 +v -8.93539 -72.8967 -67.8692 +v -0.000260318 -72.8967 -68.4548 +v 8.93491 -72.8967 -67.8692 +v 17.7172 -72.8967 -66.1224 +v 26.1963 -72.8967 -63.2441 +v 34.2272 -72.8967 -59.2838 +v 41.6724 -72.8967 -54.3091 +v 48.4047 -72.8967 -48.4051 +v 54.3087 -72.8967 -41.6729 +v 59.2835 -72.8967 -34.2277 +v 63.2439 -72.8967 -26.1968 +v 66.1222 -72.8967 -17.7177 +v 67.8692 -72.8967 -8.93548 +v 58.7787 -80.9016 5.88009e-39 +v 58.2758 -80.9016 7.67215 +v 56.7758 -80.9016 15.213 +v 54.3044 -80.9016 22.4936 +v 50.9038 -80.9016 29.3893 +v 46.6323 -80.9016 35.7822 +v 41.5628 -80.9016 41.5628 +v 35.7822 -80.9016 46.6322 +v 29.3894 -80.9016 50.9038 +v 22.4937 -80.9016 54.3044 +v 15.2131 -80.9016 56.7758 +v 7.67222 -80.9016 58.2758 +v 7.45073e-05 -80.9016 58.7787 +v -7.67208 -80.9016 58.2758 +v -15.213 -80.9016 56.7759 +v -22.4935 -80.9016 54.3044 +v -29.3893 -80.9016 50.9039 +v -35.7821 -80.9016 46.6323 +v -41.5627 -80.9016 41.5629 +v -46.6322 -80.9016 35.7823 +v -50.9038 -80.9016 29.3894 +v -54.3044 -80.9016 22.4937 +v -56.7758 -80.9016 15.2132 +v -58.2758 -80.9016 7.67229 +v -58.7787 -80.9016 0.000149015 +v -58.2758 -80.9016 -7.67201 +v -56.7759 -80.9016 -15.2129 +v -54.3045 -80.9016 -22.4935 +v -50.9039 -80.9016 -29.3892 +v -46.6324 -80.9016 -35.7821 +v -41.5629 -80.9016 -41.5627 +v -35.7823 -80.9016 -46.6322 +v -29.3895 -80.9016 -50.9037 +v -22.4938 -80.9016 -54.3043 +v -15.2132 -80.9016 -56.7758 +v -7.67236 -80.9016 -58.2758 +v -0.000223522 -80.9016 -58.7787 +v 7.67195 -80.9016 -58.2758 +v 15.2128 -80.9016 -56.7759 +v 22.4934 -80.9016 -54.3045 +v 29.3891 -80.9016 -50.9039 +v 35.782 -80.9016 -46.6324 +v 41.5626 -80.9016 -41.563 +v 46.6321 -80.9016 -35.7824 +v 50.9037 -80.9016 -29.3896 +v 54.3043 -80.9016 -22.4939 +v 56.7758 -80.9016 -15.2133 +v 58.2758 -80.9016 -7.67244 +v 48.1755 -87.6306 5.88009e-39 +v 47.7634 -87.6306 6.28817 +v 46.534 -87.6306 12.4687 +v 44.5084 -87.6306 18.436 +v 41.7213 -87.6306 24.0878 +v 38.2202 -87.6306 29.3274 +v 34.0653 -87.6306 34.0652 +v 29.3274 -87.6306 38.2202 +v 24.0878 -87.6306 41.7212 +v 18.436 -87.6306 44.5084 +v 12.4688 -87.6306 46.534 +v 6.28822 -87.6306 47.7634 +v 6.10669e-05 -87.6306 48.1755 +v -6.28811 -87.6306 47.7634 +v -12.4687 -87.6306 46.534 +v -18.4359 -87.6306 44.5084 +v -24.0877 -87.6306 41.7213 +v -29.3274 -87.6306 38.2203 +v -34.0652 -87.6306 34.0653 +v -38.2202 -87.6306 29.3275 +v -41.7212 -87.6306 24.0879 +v -44.5084 -87.6306 18.4361 +v -46.534 -87.6306 12.4689 +v -47.7634 -87.6306 6.28828 +v -48.1755 -87.6306 0.000122134 +v -47.7634 -87.6306 -6.28805 +v -46.534 -87.6306 -12.4686 +v -44.5084 -87.6306 -18.4359 +v -41.7213 -87.6306 -24.0877 +v -38.2203 -87.6306 -29.3273 +v -34.0654 -87.6306 -34.0652 +v -29.3275 -87.6306 -38.2201 +v -24.0879 -87.6306 -41.7212 +v -18.4361 -87.6306 -44.5083 +v -12.4689 -87.6306 -46.534 +v -6.28834 -87.6306 -47.7634 +v -0.000183201 -87.6306 -48.1755 +v 6.288 -87.6306 -47.7634 +v 12.4686 -87.6306 -46.534 +v 18.4358 -87.6306 -44.5085 +v 24.0876 -87.6306 -41.7213 +v 29.3273 -87.6306 -38.2204 +v 34.0651 -87.6306 -34.0654 +v 38.2201 -87.6306 -29.3276 +v 41.7211 -87.6306 -24.088 +v 44.5083 -87.6306 -18.4362 +v 46.5339 -87.6306 -12.469 +v 47.7634 -87.6306 -6.2884 +v 36.8127 -92.9776 5.88009e-39 +v 36.4977 -92.9776 4.80501 +v 35.5583 -92.9776 9.52781 +v 34.0105 -92.9776 14.0876 +v 31.8807 -92.9776 18.4063 +v 29.2055 -92.9776 22.4101 +v 26.0305 -92.9776 26.0305 +v 22.4101 -92.9776 29.2054 +v 18.4064 -92.9776 31.8807 +v 14.0876 -92.9776 34.0104 +v 9.52785 -92.9776 35.5583 +v 4.80506 -92.9776 36.4977 +v 4.66634e-05 -92.9776 36.8127 +v -4.80497 -92.9776 36.4977 +v -9.52777 -92.9776 35.5583 +v -14.0875 -92.9776 34.0105 +v -18.4063 -92.9776 31.8807 +v -22.4101 -92.9776 29.2055 +v -26.0304 -92.9776 26.0305 +v -29.2054 -92.9776 22.4102 +v -31.8807 -92.9776 18.4064 +v -34.0104 -92.9776 14.0877 +v -35.5583 -92.9776 9.5279 +v -36.4977 -92.9776 4.8051 +v -36.8127 -92.9776 9.33268e-05 +v -36.4977 -92.9776 -4.80492 +v -35.5583 -92.9776 -9.52773 +v -34.0105 -92.9776 -14.0875 +v -31.8808 -92.9776 -18.4062 +v -29.2055 -92.9776 -22.41 +v -26.0306 -92.9776 -26.0304 +v -22.4102 -92.9776 -29.2054 +v -18.4064 -92.9776 -31.8806 +v -14.0877 -92.9776 -34.0104 +v -9.52793 -92.9776 -35.5583 +v -4.80515 -92.9776 -36.4977 +v -0.00013999 -92.9776 -36.8127 +v 4.80489 -92.9776 -36.4977 +v 9.52768 -92.9776 -35.5583 +v 14.0875 -92.9776 -34.0105 +v 18.4062 -92.9776 -31.8808 +v 22.41 -92.9776 -29.2055 +v 26.0304 -92.9776 -26.0306 +v 29.2054 -92.9776 -22.4103 +v 31.8806 -92.9776 -18.4065 +v 34.0104 -92.9776 -14.0878 +v 35.5583 -92.9776 -9.52798 +v 36.4977 -92.9776 -4.80519 +v 24.8692 -96.8583 5.88009e-39 +v 24.6564 -96.8583 3.24608 +v 24.0218 -96.8583 6.43662 +v 22.9761 -96.8583 9.51702 +v 21.5374 -96.8583 12.4346 +v 19.7301 -96.8583 15.1394 +v 17.5852 -96.8583 17.5852 +v 15.1394 -96.8583 19.7301 +v 12.4346 -96.8583 21.5373 +v 9.51705 -96.8583 22.9761 +v 6.43665 -96.8583 24.0218 +v 3.24611 -96.8583 24.6564 +v 3.1524e-05 -96.8583 24.8692 +v -3.24605 -96.8583 24.6564 +v -6.43659 -96.8583 24.0218 +v -9.517 -96.8583 22.9762 +v -12.4346 -96.8583 21.5374 +v -15.1394 -96.8583 19.7301 +v -17.5851 -96.8583 17.5852 +v -19.73 -96.8583 15.1394 +v -21.5373 -96.8583 12.4346 +v -22.9761 -96.8583 9.51708 +v -24.0218 -96.8583 6.43668 +v -24.6564 -96.8583 3.24614 +v -24.8692 -96.8583 6.30479e-05 +v -24.6564 -96.8583 -3.24602 +v -24.0218 -96.8583 -6.43656 +v -22.9762 -96.8583 -9.51697 +v -21.5374 -96.8583 -12.4345 +v -19.7301 -96.8583 -15.1394 +v -17.5852 -96.8583 -17.5851 +v -15.1395 -96.8583 -19.73 +v -12.4347 -96.8583 -21.5373 +v -9.51711 -96.8583 -22.9761 +v -6.4367 -96.8583 -24.0218 +v -3.24617 -96.8583 -24.6564 +v -9.45719e-05 -96.8583 -24.8692 +v 3.24599 -96.8583 -24.6565 +v 6.43653 -96.8583 -24.0218 +v 9.51694 -96.8583 -22.9762 +v 12.4345 -96.8583 -21.5374 +v 15.1393 -96.8583 -19.7301 +v 17.5851 -96.8583 -17.5853 +v 19.73 -96.8583 -15.1395 +v 21.5373 -96.8583 -12.4347 +v 22.9761 -96.8583 -9.51714 +v 24.0218 -96.8583 -6.43673 +v 24.6564 -96.8583 -3.2462 +v 12.5336 -99.2114 5.88009e-39 +v 12.4263 -99.2114 1.63596 +v 12.1065 -99.2114 3.24392 +v 11.5795 -99.2114 4.79638 +v 10.8544 -99.2114 6.26677 +v 9.94354 -99.2114 7.62994 +v 8.86257 -99.2114 8.86256 +v 7.62995 -99.2114 9.94353 +v 6.26679 -99.2114 10.8544 +v 4.7964 -99.2114 11.5795 +v 3.24393 -99.2114 12.1065 +v 1.63597 -99.2114 12.4263 +v 1.58874e-05 -99.2114 12.5336 +v -1.63594 -99.2114 12.4263 +v -3.24391 -99.2114 12.1065 +v -4.79637 -99.2114 11.5795 +v -6.26676 -99.2114 10.8544 +v -7.62993 -99.2114 9.94355 +v -8.86255 -99.2114 8.86258 +v -9.94352 -99.2114 7.62996 +v -10.8544 -99.2114 6.2668 +v -11.5795 -99.2114 4.79641 +v -12.1065 -99.2114 3.24395 +v -12.4263 -99.2114 1.63599 +v -12.5336 -99.2114 3.17748e-05 +v -12.4263 -99.2114 -1.63593 +v -12.1065 -99.2114 -3.24389 +v -11.5795 -99.2114 -4.79635 +v -10.8544 -99.2114 -6.26675 +v -9.94356 -99.2114 -7.62992 +v -8.86259 -99.2114 -8.86254 +v -7.62997 -99.2114 -9.94352 +v -6.26681 -99.2114 -10.8544 +v -4.79642 -99.2114 -11.5795 +v -3.24396 -99.2114 -12.1065 +v -1.636 -99.2114 -12.4263 +v -4.76623e-05 -99.2114 -12.5336 +v 1.63591 -99.2114 -12.4263 +v 3.24388 -99.2114 -12.1065 +v 4.79634 -99.2114 -11.5795 +v 6.26674 -99.2114 -10.8544 +v 7.6299 -99.2114 -9.94357 +v 8.86252 -99.2114 -8.8626 +v 9.94351 -99.2114 -7.62999 +v 10.8544 -99.2114 -6.26683 +v 11.5795 -99.2114 -4.79644 +v 12.1065 -99.2114 -3.24398 +v 12.4263 -99.2114 -1.63602 +f 3 4 52 51 +f 4 5 53 52 +f 5 6 54 53 +f 6 7 55 54 +f 7 8 56 55 +f 8 9 57 56 +f 9 10 58 57 +f 10 11 59 58 +f 11 12 60 59 +f 12 13 61 60 +f 13 14 62 61 +f 14 15 63 62 +f 15 16 64 63 +f 16 17 65 64 +f 17 18 66 65 +f 18 19 67 66 +f 19 20 68 67 +f 20 21 69 68 +f 21 22 70 69 +f 22 23 71 70 +f 23 24 72 71 +f 24 25 73 72 +f 25 26 74 73 +f 26 27 75 74 +f 27 28 76 75 +f 28 29 77 76 +f 29 30 78 77 +f 30 31 79 78 +f 31 32 80 79 +f 32 33 81 80 +f 33 34 82 81 +f 34 35 83 82 +f 35 36 84 83 +f 36 37 85 84 +f 37 38 86 85 +f 38 39 87 86 +f 39 40 88 87 +f 40 41 89 88 +f 41 42 90 89 +f 42 43 91 90 +f 43 44 92 91 +f 44 45 93 92 +f 45 46 94 93 +f 46 47 95 94 +f 47 48 96 95 +f 48 49 97 96 +f 49 50 98 97 +f 50 3 51 98 +f 51 52 100 99 +f 52 53 101 100 +f 53 54 102 101 +f 54 55 103 102 +f 55 56 104 103 +f 56 57 105 104 +f 57 58 106 105 +f 58 59 107 106 +f 59 60 108 107 +f 60 61 109 108 +f 61 62 110 109 +f 62 63 111 110 +f 63 64 112 111 +f 64 65 113 112 +f 65 66 114 113 +f 66 67 115 114 +f 67 68 116 115 +f 68 69 117 116 +f 69 70 118 117 +f 70 71 119 118 +f 71 72 120 119 +f 72 73 121 120 +f 73 74 122 121 +f 74 75 123 122 +f 75 76 124 123 +f 76 77 125 124 +f 77 78 126 125 +f 78 79 127 126 +f 79 80 128 127 +f 80 81 129 128 +f 81 82 130 129 +f 82 83 131 130 +f 83 84 132 131 +f 84 85 133 132 +f 85 86 134 133 +f 86 87 135 134 +f 87 88 136 135 +f 88 89 137 136 +f 89 90 138 137 +f 90 91 139 138 +f 91 92 140 139 +f 92 93 141 140 +f 93 94 142 141 +f 94 95 143 142 +f 95 96 144 143 +f 96 97 145 144 +f 97 98 146 145 +f 98 51 99 146 +f 99 100 148 147 +f 100 101 149 148 +f 101 102 150 149 +f 102 103 151 150 +f 103 104 152 151 +f 104 105 153 152 +f 105 106 154 153 +f 106 107 155 154 +f 107 108 156 155 +f 108 109 157 156 +f 109 110 158 157 +f 110 111 159 158 +f 111 112 160 159 +f 112 113 161 160 +f 113 114 162 161 +f 114 115 163 162 +f 115 116 164 163 +f 116 117 165 164 +f 117 118 166 165 +f 118 119 167 166 +f 119 120 168 167 +f 120 121 169 168 +f 121 122 170 169 +f 122 123 171 170 +f 123 124 172 171 +f 124 125 173 172 +f 125 126 174 173 +f 126 127 175 174 +f 127 128 176 175 +f 128 129 177 176 +f 129 130 178 177 +f 130 131 179 178 +f 131 132 180 179 +f 132 133 181 180 +f 133 134 182 181 +f 134 135 183 182 +f 135 136 184 183 +f 136 137 185 184 +f 137 138 186 185 +f 138 139 187 186 +f 139 140 188 187 +f 140 141 189 188 +f 141 142 190 189 +f 142 143 191 190 +f 143 144 192 191 +f 144 145 193 192 +f 145 146 194 193 +f 146 99 147 194 +f 147 148 196 195 +f 148 149 197 196 +f 149 150 198 197 +f 150 151 199 198 +f 151 152 200 199 +f 152 153 201 200 +f 153 154 202 201 +f 154 155 203 202 +f 155 156 204 203 +f 156 157 205 204 +f 157 158 206 205 +f 158 159 207 206 +f 159 160 208 207 +f 160 161 209 208 +f 161 162 210 209 +f 162 163 211 210 +f 163 164 212 211 +f 164 165 213 212 +f 165 166 214 213 +f 166 167 215 214 +f 167 168 216 215 +f 168 169 217 216 +f 169 170 218 217 +f 170 171 219 218 +f 171 172 220 219 +f 172 173 221 220 +f 173 174 222 221 +f 174 175 223 222 +f 175 176 224 223 +f 176 177 225 224 +f 177 178 226 225 +f 178 179 227 226 +f 179 180 228 227 +f 180 181 229 228 +f 181 182 230 229 +f 182 183 231 230 +f 183 184 232 231 +f 184 185 233 232 +f 185 186 234 233 +f 186 187 235 234 +f 187 188 236 235 +f 188 189 237 236 +f 189 190 238 237 +f 190 191 239 238 +f 191 192 240 239 +f 192 193 241 240 +f 193 194 242 241 +f 194 147 195 242 +f 195 196 244 243 +f 196 197 245 244 +f 197 198 246 245 +f 198 199 247 246 +f 199 200 248 247 +f 200 201 249 248 +f 201 202 250 249 +f 202 203 251 250 +f 203 204 252 251 +f 204 205 253 252 +f 205 206 254 253 +f 206 207 255 254 +f 207 208 256 255 +f 208 209 257 256 +f 209 210 258 257 +f 210 211 259 258 +f 211 212 260 259 +f 212 213 261 260 +f 213 214 262 261 +f 214 215 263 262 +f 215 216 264 263 +f 216 217 265 264 +f 217 218 266 265 +f 218 219 267 266 +f 219 220 268 267 +f 220 221 269 268 +f 221 222 270 269 +f 222 223 271 270 +f 223 224 272 271 +f 224 225 273 272 +f 225 226 274 273 +f 226 227 275 274 +f 227 228 276 275 +f 228 229 277 276 +f 229 230 278 277 +f 230 231 279 278 +f 231 232 280 279 +f 232 233 281 280 +f 233 234 282 281 +f 234 235 283 282 +f 235 236 284 283 +f 236 237 285 284 +f 237 238 286 285 +f 238 239 287 286 +f 239 240 288 287 +f 240 241 289 288 +f 241 242 290 289 +f 242 195 243 290 +f 243 244 292 291 +f 244 245 293 292 +f 245 246 294 293 +f 246 247 295 294 +f 247 248 296 295 +f 248 249 297 296 +f 249 250 298 297 +f 250 251 299 298 +f 251 252 300 299 +f 252 253 301 300 +f 253 254 302 301 +f 254 255 303 302 +f 255 256 304 303 +f 256 257 305 304 +f 257 258 306 305 +f 258 259 307 306 +f 259 260 308 307 +f 260 261 309 308 +f 261 262 310 309 +f 262 263 311 310 +f 263 264 312 311 +f 264 265 313 312 +f 265 266 314 313 +f 266 267 315 314 +f 267 268 316 315 +f 268 269 317 316 +f 269 270 318 317 +f 270 271 319 318 +f 271 272 320 319 +f 272 273 321 320 +f 273 274 322 321 +f 274 275 323 322 +f 275 276 324 323 +f 276 277 325 324 +f 277 278 326 325 +f 278 279 327 326 +f 279 280 328 327 +f 280 281 329 328 +f 281 282 330 329 +f 282 283 331 330 +f 283 284 332 331 +f 284 285 333 332 +f 285 286 334 333 +f 286 287 335 334 +f 287 288 336 335 +f 288 289 337 336 +f 289 290 338 337 +f 290 243 291 338 +f 291 292 340 339 +f 292 293 341 340 +f 293 294 342 341 +f 294 295 343 342 +f 295 296 344 343 +f 296 297 345 344 +f 297 298 346 345 +f 298 299 347 346 +f 299 300 348 347 +f 300 301 349 348 +f 301 302 350 349 +f 302 303 351 350 +f 303 304 352 351 +f 304 305 353 352 +f 305 306 354 353 +f 306 307 355 354 +f 307 308 356 355 +f 308 309 357 356 +f 309 310 358 357 +f 310 311 359 358 +f 311 312 360 359 +f 312 313 361 360 +f 313 314 362 361 +f 314 315 363 362 +f 315 316 364 363 +f 316 317 365 364 +f 317 318 366 365 +f 318 319 367 366 +f 319 320 368 367 +f 320 321 369 368 +f 321 322 370 369 +f 322 323 371 370 +f 323 324 372 371 +f 324 325 373 372 +f 325 326 374 373 +f 326 327 375 374 +f 327 328 376 375 +f 328 329 377 376 +f 329 330 378 377 +f 330 331 379 378 +f 331 332 380 379 +f 332 333 381 380 +f 333 334 382 381 +f 334 335 383 382 +f 335 336 384 383 +f 336 337 385 384 +f 337 338 386 385 +f 338 291 339 386 +f 339 340 388 387 +f 340 341 389 388 +f 341 342 390 389 +f 342 343 391 390 +f 343 344 392 391 +f 344 345 393 392 +f 345 346 394 393 +f 346 347 395 394 +f 347 348 396 395 +f 348 349 397 396 +f 349 350 398 397 +f 350 351 399 398 +f 351 352 400 399 +f 352 353 401 400 +f 353 354 402 401 +f 354 355 403 402 +f 355 356 404 403 +f 356 357 405 404 +f 357 358 406 405 +f 358 359 407 406 +f 359 360 408 407 +f 360 361 409 408 +f 361 362 410 409 +f 362 363 411 410 +f 363 364 412 411 +f 364 365 413 412 +f 365 366 414 413 +f 366 367 415 414 +f 367 368 416 415 +f 368 369 417 416 +f 369 370 418 417 +f 370 371 419 418 +f 371 372 420 419 +f 372 373 421 420 +f 373 374 422 421 +f 374 375 423 422 +f 375 376 424 423 +f 376 377 425 424 +f 377 378 426 425 +f 378 379 427 426 +f 379 380 428 427 +f 380 381 429 428 +f 381 382 430 429 +f 382 383 431 430 +f 383 384 432 431 +f 384 385 433 432 +f 385 386 434 433 +f 386 339 387 434 +f 387 388 436 435 +f 388 389 437 436 +f 389 390 438 437 +f 390 391 439 438 +f 391 392 440 439 +f 392 393 441 440 +f 393 394 442 441 +f 394 395 443 442 +f 395 396 444 443 +f 396 397 445 444 +f 397 398 446 445 +f 398 399 447 446 +f 399 400 448 447 +f 400 401 449 448 +f 401 402 450 449 +f 402 403 451 450 +f 403 404 452 451 +f 404 405 453 452 +f 405 406 454 453 +f 406 407 455 454 +f 407 408 456 455 +f 408 409 457 456 +f 409 410 458 457 +f 410 411 459 458 +f 411 412 460 459 +f 412 413 461 460 +f 413 414 462 461 +f 414 415 463 462 +f 415 416 464 463 +f 416 417 465 464 +f 417 418 466 465 +f 418 419 467 466 +f 419 420 468 467 +f 420 421 469 468 +f 421 422 470 469 +f 422 423 471 470 +f 423 424 472 471 +f 424 425 473 472 +f 425 426 474 473 +f 426 427 475 474 +f 427 428 476 475 +f 428 429 477 476 +f 429 430 478 477 +f 430 431 479 478 +f 431 432 480 479 +f 432 433 481 480 +f 433 434 482 481 +f 434 387 435 482 +f 435 436 484 483 +f 436 437 485 484 +f 437 438 486 485 +f 438 439 487 486 +f 439 440 488 487 +f 440 441 489 488 +f 441 442 490 489 +f 442 443 491 490 +f 443 444 492 491 +f 444 445 493 492 +f 445 446 494 493 +f 446 447 495 494 +f 447 448 496 495 +f 448 449 497 496 +f 449 450 498 497 +f 450 451 499 498 +f 451 452 500 499 +f 452 453 501 500 +f 453 454 502 501 +f 454 455 503 502 +f 455 456 504 503 +f 456 457 505 504 +f 457 458 506 505 +f 458 459 507 506 +f 459 460 508 507 +f 460 461 509 508 +f 461 462 510 509 +f 462 463 511 510 +f 463 464 512 511 +f 464 465 513 512 +f 465 466 514 513 +f 466 467 515 514 +f 467 468 516 515 +f 468 469 517 516 +f 469 470 518 517 +f 470 471 519 518 +f 471 472 520 519 +f 472 473 521 520 +f 473 474 522 521 +f 474 475 523 522 +f 475 476 524 523 +f 476 477 525 524 +f 477 478 526 525 +f 478 479 527 526 +f 479 480 528 527 +f 480 481 529 528 +f 481 482 530 529 +f 482 435 483 530 +f 483 484 532 531 +f 484 485 533 532 +f 485 486 534 533 +f 486 487 535 534 +f 487 488 536 535 +f 488 489 537 536 +f 489 490 538 537 +f 490 491 539 538 +f 491 492 540 539 +f 492 493 541 540 +f 493 494 542 541 +f 494 495 543 542 +f 495 496 544 543 +f 496 497 545 544 +f 497 498 546 545 +f 498 499 547 546 +f 499 500 548 547 +f 500 501 549 548 +f 501 502 550 549 +f 502 503 551 550 +f 503 504 552 551 +f 504 505 553 552 +f 505 506 554 553 +f 506 507 555 554 +f 507 508 556 555 +f 508 509 557 556 +f 509 510 558 557 +f 510 511 559 558 +f 511 512 560 559 +f 512 513 561 560 +f 513 514 562 561 +f 514 515 563 562 +f 515 516 564 563 +f 516 517 565 564 +f 517 518 566 565 +f 518 519 567 566 +f 519 520 568 567 +f 520 521 569 568 +f 521 522 570 569 +f 522 523 571 570 +f 523 524 572 571 +f 524 525 573 572 +f 525 526 574 573 +f 526 527 575 574 +f 527 528 576 575 +f 528 529 577 576 +f 529 530 578 577 +f 530 483 531 578 +f 531 532 580 579 +f 532 533 581 580 +f 533 534 582 581 +f 534 535 583 582 +f 535 536 584 583 +f 536 537 585 584 +f 537 538 586 585 +f 538 539 587 586 +f 539 540 588 587 +f 540 541 589 588 +f 541 542 590 589 +f 542 543 591 590 +f 543 544 592 591 +f 544 545 593 592 +f 545 546 594 593 +f 546 547 595 594 +f 547 548 596 595 +f 548 549 597 596 +f 549 550 598 597 +f 550 551 599 598 +f 551 552 600 599 +f 552 553 601 600 +f 553 554 602 601 +f 554 555 603 602 +f 555 556 604 603 +f 556 557 605 604 +f 557 558 606 605 +f 558 559 607 606 +f 559 560 608 607 +f 560 561 609 608 +f 561 562 610 609 +f 562 563 611 610 +f 563 564 612 611 +f 564 565 613 612 +f 565 566 614 613 +f 566 567 615 614 +f 567 568 616 615 +f 568 569 617 616 +f 569 570 618 617 +f 570 571 619 618 +f 571 572 620 619 +f 572 573 621 620 +f 573 574 622 621 +f 574 575 623 622 +f 575 576 624 623 +f 576 577 625 624 +f 577 578 626 625 +f 578 531 579 626 +f 579 580 628 627 +f 580 581 629 628 +f 581 582 630 629 +f 582 583 631 630 +f 583 584 632 631 +f 584 585 633 632 +f 585 586 634 633 +f 586 587 635 634 +f 587 588 636 635 +f 588 589 637 636 +f 589 590 638 637 +f 590 591 639 638 +f 591 592 640 639 +f 592 593 641 640 +f 593 594 642 641 +f 594 595 643 642 +f 595 596 644 643 +f 596 597 645 644 +f 597 598 646 645 +f 598 599 647 646 +f 599 600 648 647 +f 600 601 649 648 +f 601 602 650 649 +f 602 603 651 650 +f 603 604 652 651 +f 604 605 653 652 +f 605 606 654 653 +f 606 607 655 654 +f 607 608 656 655 +f 608 609 657 656 +f 609 610 658 657 +f 610 611 659 658 +f 611 612 660 659 +f 612 613 661 660 +f 613 614 662 661 +f 614 615 663 662 +f 615 616 664 663 +f 616 617 665 664 +f 617 618 666 665 +f 618 619 667 666 +f 619 620 668 667 +f 620 621 669 668 +f 621 622 670 669 +f 622 623 671 670 +f 623 624 672 671 +f 624 625 673 672 +f 625 626 674 673 +f 626 579 627 674 +f 627 628 676 675 +f 628 629 677 676 +f 629 630 678 677 +f 630 631 679 678 +f 631 632 680 679 +f 632 633 681 680 +f 633 634 682 681 +f 634 635 683 682 +f 635 636 684 683 +f 636 637 685 684 +f 637 638 686 685 +f 638 639 687 686 +f 639 640 688 687 +f 640 641 689 688 +f 641 642 690 689 +f 642 643 691 690 +f 643 644 692 691 +f 644 645 693 692 +f 645 646 694 693 +f 646 647 695 694 +f 647 648 696 695 +f 648 649 697 696 +f 649 650 698 697 +f 650 651 699 698 +f 651 652 700 699 +f 652 653 701 700 +f 653 654 702 701 +f 654 655 703 702 +f 655 656 704 703 +f 656 657 705 704 +f 657 658 706 705 +f 658 659 707 706 +f 659 660 708 707 +f 660 661 709 708 +f 661 662 710 709 +f 662 663 711 710 +f 663 664 712 711 +f 664 665 713 712 +f 665 666 714 713 +f 666 667 715 714 +f 667 668 716 715 +f 668 669 717 716 +f 669 670 718 717 +f 670 671 719 718 +f 671 672 720 719 +f 672 673 721 720 +f 673 674 722 721 +f 674 627 675 722 +f 675 676 724 723 +f 676 677 725 724 +f 677 678 726 725 +f 678 679 727 726 +f 679 680 728 727 +f 680 681 729 728 +f 681 682 730 729 +f 682 683 731 730 +f 683 684 732 731 +f 684 685 733 732 +f 685 686 734 733 +f 686 687 735 734 +f 687 688 736 735 +f 688 689 737 736 +f 689 690 738 737 +f 690 691 739 738 +f 691 692 740 739 +f 692 693 741 740 +f 693 694 742 741 +f 694 695 743 742 +f 695 696 744 743 +f 696 697 745 744 +f 697 698 746 745 +f 698 699 747 746 +f 699 700 748 747 +f 700 701 749 748 +f 701 702 750 749 +f 702 703 751 750 +f 703 704 752 751 +f 704 705 753 752 +f 705 706 754 753 +f 706 707 755 754 +f 707 708 756 755 +f 708 709 757 756 +f 709 710 758 757 +f 710 711 759 758 +f 711 712 760 759 +f 712 713 761 760 +f 713 714 762 761 +f 714 715 763 762 +f 715 716 764 763 +f 716 717 765 764 +f 717 718 766 765 +f 718 719 767 766 +f 719 720 768 767 +f 720 721 769 768 +f 721 722 770 769 +f 722 675 723 770 +f 723 724 772 771 +f 724 725 773 772 +f 725 726 774 773 +f 726 727 775 774 +f 727 728 776 775 +f 728 729 777 776 +f 729 730 778 777 +f 730 731 779 778 +f 731 732 780 779 +f 732 733 781 780 +f 733 734 782 781 +f 734 735 783 782 +f 735 736 784 783 +f 736 737 785 784 +f 737 738 786 785 +f 738 739 787 786 +f 739 740 788 787 +f 740 741 789 788 +f 741 742 790 789 +f 742 743 791 790 +f 743 744 792 791 +f 744 745 793 792 +f 745 746 794 793 +f 746 747 795 794 +f 747 748 796 795 +f 748 749 797 796 +f 749 750 798 797 +f 750 751 799 798 +f 751 752 800 799 +f 752 753 801 800 +f 753 754 802 801 +f 754 755 803 802 +f 755 756 804 803 +f 756 757 805 804 +f 757 758 806 805 +f 758 759 807 806 +f 759 760 808 807 +f 760 761 809 808 +f 761 762 810 809 +f 762 763 811 810 +f 763 764 812 811 +f 764 765 813 812 +f 765 766 814 813 +f 766 767 815 814 +f 767 768 816 815 +f 768 769 817 816 +f 769 770 818 817 +f 770 723 771 818 +f 771 772 820 819 +f 772 773 821 820 +f 773 774 822 821 +f 774 775 823 822 +f 775 776 824 823 +f 776 777 825 824 +f 777 778 826 825 +f 778 779 827 826 +f 779 780 828 827 +f 780 781 829 828 +f 781 782 830 829 +f 782 783 831 830 +f 783 784 832 831 +f 784 785 833 832 +f 785 786 834 833 +f 786 787 835 834 +f 787 788 836 835 +f 788 789 837 836 +f 789 790 838 837 +f 790 791 839 838 +f 791 792 840 839 +f 792 793 841 840 +f 793 794 842 841 +f 794 795 843 842 +f 795 796 844 843 +f 796 797 845 844 +f 797 798 846 845 +f 798 799 847 846 +f 799 800 848 847 +f 800 801 849 848 +f 801 802 850 849 +f 802 803 851 850 +f 803 804 852 851 +f 804 805 853 852 +f 805 806 854 853 +f 806 807 855 854 +f 807 808 856 855 +f 808 809 857 856 +f 809 810 858 857 +f 810 811 859 858 +f 811 812 860 859 +f 812 813 861 860 +f 813 814 862 861 +f 814 815 863 862 +f 815 816 864 863 +f 816 817 865 864 +f 817 818 866 865 +f 818 771 819 866 +f 819 820 868 867 +f 820 821 869 868 +f 821 822 870 869 +f 822 823 871 870 +f 823 824 872 871 +f 824 825 873 872 +f 825 826 874 873 +f 826 827 875 874 +f 827 828 876 875 +f 828 829 877 876 +f 829 830 878 877 +f 830 831 879 878 +f 831 832 880 879 +f 832 833 881 880 +f 833 834 882 881 +f 834 835 883 882 +f 835 836 884 883 +f 836 837 885 884 +f 837 838 886 885 +f 838 839 887 886 +f 839 840 888 887 +f 840 841 889 888 +f 841 842 890 889 +f 842 843 891 890 +f 843 844 892 891 +f 844 845 893 892 +f 845 846 894 893 +f 846 847 895 894 +f 847 848 896 895 +f 848 849 897 896 +f 849 850 898 897 +f 850 851 899 898 +f 851 852 900 899 +f 852 853 901 900 +f 853 854 902 901 +f 854 855 903 902 +f 855 856 904 903 +f 856 857 905 904 +f 857 858 906 905 +f 858 859 907 906 +f 859 860 908 907 +f 860 861 909 908 +f 861 862 910 909 +f 862 863 911 910 +f 863 864 912 911 +f 864 865 913 912 +f 865 866 914 913 +f 866 819 867 914 +f 867 868 916 915 +f 868 869 917 916 +f 869 870 918 917 +f 870 871 919 918 +f 871 872 920 919 +f 872 873 921 920 +f 873 874 922 921 +f 874 875 923 922 +f 875 876 924 923 +f 876 877 925 924 +f 877 878 926 925 +f 878 879 927 926 +f 879 880 928 927 +f 880 881 929 928 +f 881 882 930 929 +f 882 883 931 930 +f 883 884 932 931 +f 884 885 933 932 +f 885 886 934 933 +f 886 887 935 934 +f 887 888 936 935 +f 888 889 937 936 +f 889 890 938 937 +f 890 891 939 938 +f 891 892 940 939 +f 892 893 941 940 +f 893 894 942 941 +f 894 895 943 942 +f 895 896 944 943 +f 896 897 945 944 +f 897 898 946 945 +f 898 899 947 946 +f 899 900 948 947 +f 900 901 949 948 +f 901 902 950 949 +f 902 903 951 950 +f 903 904 952 951 +f 904 905 953 952 +f 905 906 954 953 +f 906 907 955 954 +f 907 908 956 955 +f 908 909 957 956 +f 909 910 958 957 +f 910 911 959 958 +f 911 912 960 959 +f 912 913 961 960 +f 913 914 962 961 +f 914 867 915 962 +f 915 916 964 963 +f 916 917 965 964 +f 917 918 966 965 +f 918 919 967 966 +f 919 920 968 967 +f 920 921 969 968 +f 921 922 970 969 +f 922 923 971 970 +f 923 924 972 971 +f 924 925 973 972 +f 925 926 974 973 +f 926 927 975 974 +f 927 928 976 975 +f 928 929 977 976 +f 929 930 978 977 +f 930 931 979 978 +f 931 932 980 979 +f 932 933 981 980 +f 933 934 982 981 +f 934 935 983 982 +f 935 936 984 983 +f 936 937 985 984 +f 937 938 986 985 +f 938 939 987 986 +f 939 940 988 987 +f 940 941 989 988 +f 941 942 990 989 +f 942 943 991 990 +f 943 944 992 991 +f 944 945 993 992 +f 945 946 994 993 +f 946 947 995 994 +f 947 948 996 995 +f 948 949 997 996 +f 949 950 998 997 +f 950 951 999 998 +f 951 952 1000 999 +f 952 953 1001 1000 +f 953 954 1002 1001 +f 954 955 1003 1002 +f 955 956 1004 1003 +f 956 957 1005 1004 +f 957 958 1006 1005 +f 958 959 1007 1006 +f 959 960 1008 1007 +f 960 961 1009 1008 +f 961 962 1010 1009 +f 962 915 963 1010 +f 963 964 1012 1011 +f 964 965 1013 1012 +f 965 966 1014 1013 +f 966 967 1015 1014 +f 967 968 1016 1015 +f 968 969 1017 1016 +f 969 970 1018 1017 +f 970 971 1019 1018 +f 971 972 1020 1019 +f 972 973 1021 1020 +f 973 974 1022 1021 +f 974 975 1023 1022 +f 975 976 1024 1023 +f 976 977 1025 1024 +f 977 978 1026 1025 +f 978 979 1027 1026 +f 979 980 1028 1027 +f 980 981 1029 1028 +f 981 982 1030 1029 +f 982 983 1031 1030 +f 983 984 1032 1031 +f 984 985 1033 1032 +f 985 986 1034 1033 +f 986 987 1035 1034 +f 987 988 1036 1035 +f 988 989 1037 1036 +f 989 990 1038 1037 +f 990 991 1039 1038 +f 991 992 1040 1039 +f 992 993 1041 1040 +f 993 994 1042 1041 +f 994 995 1043 1042 +f 995 996 1044 1043 +f 996 997 1045 1044 +f 997 998 1046 1045 +f 998 999 1047 1046 +f 999 1000 1048 1047 +f 1000 1001 1049 1048 +f 1001 1002 1050 1049 +f 1002 1003 1051 1050 +f 1003 1004 1052 1051 +f 1004 1005 1053 1052 +f 1005 1006 1054 1053 +f 1006 1007 1055 1054 +f 1007 1008 1056 1055 +f 1008 1009 1057 1056 +f 1009 1010 1058 1057 +f 1010 963 1011 1058 +f 1011 1012 1060 1059 +f 1012 1013 1061 1060 +f 1013 1014 1062 1061 +f 1014 1015 1063 1062 +f 1015 1016 1064 1063 +f 1016 1017 1065 1064 +f 1017 1018 1066 1065 +f 1018 1019 1067 1066 +f 1019 1020 1068 1067 +f 1020 1021 1069 1068 +f 1021 1022 1070 1069 +f 1022 1023 1071 1070 +f 1023 1024 1072 1071 +f 1024 1025 1073 1072 +f 1025 1026 1074 1073 +f 1026 1027 1075 1074 +f 1027 1028 1076 1075 +f 1028 1029 1077 1076 +f 1029 1030 1078 1077 +f 1030 1031 1079 1078 +f 1031 1032 1080 1079 +f 1032 1033 1081 1080 +f 1033 1034 1082 1081 +f 1034 1035 1083 1082 +f 1035 1036 1084 1083 +f 1036 1037 1085 1084 +f 1037 1038 1086 1085 +f 1038 1039 1087 1086 +f 1039 1040 1088 1087 +f 1040 1041 1089 1088 +f 1041 1042 1090 1089 +f 1042 1043 1091 1090 +f 1043 1044 1092 1091 +f 1044 1045 1093 1092 +f 1045 1046 1094 1093 +f 1046 1047 1095 1094 +f 1047 1048 1096 1095 +f 1048 1049 1097 1096 +f 1049 1050 1098 1097 +f 1050 1051 1099 1098 +f 1051 1052 1100 1099 +f 1052 1053 1101 1100 +f 1053 1054 1102 1101 +f 1054 1055 1103 1102 +f 1055 1056 1104 1103 +f 1056 1057 1105 1104 +f 1057 1058 1106 1105 +f 1058 1011 1059 1106 +f 1059 1060 1108 1107 +f 1060 1061 1109 1108 +f 1061 1062 1110 1109 +f 1062 1063 1111 1110 +f 1063 1064 1112 1111 +f 1064 1065 1113 1112 +f 1065 1066 1114 1113 +f 1066 1067 1115 1114 +f 1067 1068 1116 1115 +f 1068 1069 1117 1116 +f 1069 1070 1118 1117 +f 1070 1071 1119 1118 +f 1071 1072 1120 1119 +f 1072 1073 1121 1120 +f 1073 1074 1122 1121 +f 1074 1075 1123 1122 +f 1075 1076 1124 1123 +f 1076 1077 1125 1124 +f 1077 1078 1126 1125 +f 1078 1079 1127 1126 +f 1079 1080 1128 1127 +f 1080 1081 1129 1128 +f 1081 1082 1130 1129 +f 1082 1083 1131 1130 +f 1083 1084 1132 1131 +f 1084 1085 1133 1132 +f 1085 1086 1134 1133 +f 1086 1087 1135 1134 +f 1087 1088 1136 1135 +f 1088 1089 1137 1136 +f 1089 1090 1138 1137 +f 1090 1091 1139 1138 +f 1091 1092 1140 1139 +f 1092 1093 1141 1140 +f 1093 1094 1142 1141 +f 1094 1095 1143 1142 +f 1095 1096 1144 1143 +f 1096 1097 1145 1144 +f 1097 1098 1146 1145 +f 1098 1099 1147 1146 +f 1099 1100 1148 1147 +f 1100 1101 1149 1148 +f 1101 1102 1150 1149 +f 1102 1103 1151 1150 +f 1103 1104 1152 1151 +f 1104 1105 1153 1152 +f 1105 1106 1154 1153 +f 1106 1059 1107 1154 +f 1 4 3 +f 2 1107 1108 +f 1 5 4 +f 2 1108 1109 +f 1 6 5 +f 2 1109 1110 +f 1 7 6 +f 2 1110 1111 +f 1 8 7 +f 2 1111 1112 +f 1 9 8 +f 2 1112 1113 +f 1 10 9 +f 2 1113 1114 +f 1 11 10 +f 2 1114 1115 +f 1 12 11 +f 2 1115 1116 +f 1 13 12 +f 2 1116 1117 +f 1 14 13 +f 2 1117 1118 +f 1 15 14 +f 2 1118 1119 +f 1 16 15 +f 2 1119 1120 +f 1 17 16 +f 2 1120 1121 +f 1 18 17 +f 2 1121 1122 +f 1 19 18 +f 2 1122 1123 +f 1 20 19 +f 2 1123 1124 +f 1 21 20 +f 2 1124 1125 +f 1 22 21 +f 2 1125 1126 +f 1 23 22 +f 2 1126 1127 +f 1 24 23 +f 2 1127 1128 +f 1 25 24 +f 2 1128 1129 +f 1 26 25 +f 2 1129 1130 +f 1 27 26 +f 2 1130 1131 +f 1 28 27 +f 2 1131 1132 +f 1 29 28 +f 2 1132 1133 +f 1 30 29 +f 2 1133 1134 +f 1 31 30 +f 2 1134 1135 +f 1 32 31 +f 2 1135 1136 +f 1 33 32 +f 2 1136 1137 +f 1 34 33 +f 2 1137 1138 +f 1 35 34 +f 2 1138 1139 +f 1 36 35 +f 2 1139 1140 +f 1 37 36 +f 2 1140 1141 +f 1 38 37 +f 2 1141 1142 +f 1 39 38 +f 2 1142 1143 +f 1 40 39 +f 2 1143 1144 +f 1 41 40 +f 2 1144 1145 +f 1 42 41 +f 2 1145 1146 +f 1 43 42 +f 2 1146 1147 +f 1 44 43 +f 2 1147 1148 +f 1 45 44 +f 2 1148 1149 +f 1 46 45 +f 2 1149 1150 +f 1 47 46 +f 2 1150 1151 +f 1 48 47 +f 2 1151 1152 +f 1 49 48 +f 2 1152 1153 +f 1 50 49 +f 2 1153 1154 +f 1 3 50 +f 2 1154 1107 diff --git a/data/spheres/13.obj b/data/spheres/13.obj new file mode 100644 index 0000000..4f51a5a --- /dev/null +++ b/data/spheres/13.obj @@ -0,0 +1,2758 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 11.6093 99.3238 5.88009e-39 +v 11.5246 99.3238 1.39934 +v 11.2719 99.3238 2.77828 +v 10.8549 99.3238 4.11671 +v 10.2795 99.3238 5.3951 +v 9.55426 99.3238 6.59482 +v 8.68968 99.3238 7.69837 +v 7.69838 99.3238 8.68967 +v 6.59483 99.3238 9.55425 +v 5.39511 99.3238 10.2795 +v 4.11672 99.3238 10.8549 +v 2.77829 99.3238 11.2719 +v 1.39936 99.3238 11.5246 +v 1.33319e-05 99.3238 11.6093 +v -1.39933 99.3238 11.5246 +v -2.77827 99.3238 11.2719 +v -4.11669 99.3238 10.8549 +v -5.39509 99.3238 10.2795 +v -6.59481 99.3238 9.55426 +v -7.69836 99.3238 8.68969 +v -8.68966 99.3238 7.69839 +v -9.55424 99.3238 6.59484 +v -10.2795 99.3238 5.39512 +v -10.8549 99.3238 4.11673 +v -11.2719 99.3238 2.77831 +v -11.5246 99.3238 1.39937 +v -11.6093 99.3238 2.66638e-05 +v -11.5246 99.3238 -1.39932 +v -11.2719 99.3238 -2.77825 +v -10.8549 99.3238 -4.11668 +v -10.2795 99.3238 -5.39507 +v -9.55427 99.3238 -6.5948 +v -8.6897 99.3238 -7.69835 +v -7.69841 99.3238 -8.68965 +v -6.59485 99.3238 -9.55423 +v -5.39513 99.3238 -10.2795 +v -4.11675 99.3238 -10.8549 +v -2.77832 99.3238 -11.2719 +v -1.39938 99.3238 -11.5246 +v -4.41475e-05 99.3238 -11.6093 +v 1.3993 99.3238 -11.5246 +v 2.77824 99.3238 -11.2719 +v 4.11667 99.3238 -10.8549 +v 5.39506 99.3238 -10.2795 +v 6.59479 99.3238 -9.55428 +v 7.69834 99.3238 -8.6897 +v 8.68964 99.3238 -7.69842 +v 9.55422 99.3238 -6.59487 +v 10.2795 99.3238 -5.39515 +v 10.8548 99.3238 -4.11676 +v 11.2719 99.3238 -2.77834 +v 11.5246 99.3238 -1.3994 +v 23.0616 97.3045 5.88009e-39 +v 22.8934 97.3045 2.77976 +v 22.3914 97.3045 5.51899 +v 21.5629 97.3045 8.17774 +v 20.42 97.3045 10.7172 +v 18.9793 97.3045 13.1005 +v 17.2618 97.3045 15.2926 +v 15.2927 97.3045 17.2618 +v 13.1005 97.3045 18.9793 +v 10.7173 97.3045 20.42 +v 8.17777 97.3045 21.5629 +v 5.51902 97.3045 22.3914 +v 2.77979 97.3045 22.8934 +v 2.64835e-05 97.3045 23.0616 +v -2.77973 97.3045 22.8934 +v -5.51896 97.3045 22.3914 +v -8.17771 97.3045 21.563 +v -10.7172 97.3045 20.42 +v -13.1004 97.3045 18.9793 +v -15.2926 97.3045 17.2619 +v -17.2618 97.3045 15.2927 +v -18.9793 97.3045 13.1005 +v -20.42 97.3045 10.7173 +v -21.5629 97.3045 8.17779 +v -22.3914 97.3045 5.51904 +v -22.8934 97.3045 2.77982 +v -23.0616 97.3045 5.2967e-05 +v -22.8934 97.3045 -2.77971 +v -22.3915 97.3045 -5.51893 +v -21.563 97.3045 -8.17769 +v -20.42 97.3045 -10.7172 +v -18.9793 97.3045 -13.1004 +v -17.2619 97.3045 -15.2926 +v -15.2927 97.3045 -17.2618 +v -13.1005 97.3045 -18.9793 +v -10.7173 97.3045 -20.42 +v -8.17782 97.3045 -21.5629 +v -5.51907 97.3045 -22.3914 +v -2.77984 97.3045 -22.8934 +v -8.76979e-05 97.3045 -23.0616 +v 2.77968 97.3045 -22.8934 +v 5.51891 97.3045 -22.3915 +v 8.17767 97.3045 -21.563 +v 10.7172 97.3045 -20.42 +v 13.1004 97.3045 -18.9794 +v 15.2926 97.3045 -17.2619 +v 17.2618 97.3045 -15.2927 +v 18.9792 97.3045 -13.1005 +v 20.42 97.3045 -10.7173 +v 21.5629 97.3045 -8.17785 +v 22.3914 97.3045 -5.5191 +v 22.8934 97.3045 -2.77987 +v 34.202 93.9693 5.88009e-39 +v 33.9526 93.9693 4.12259 +v 33.2081 93.9693 8.18507 +v 31.9794 93.9693 12.1282 +v 30.2844 93.9693 15.8944 +v 28.1477 93.9693 19.4289 +v 25.6006 93.9693 22.6801 +v 22.6801 93.9693 25.6005 +v 19.429 93.9693 28.1477 +v 15.8945 93.9693 30.2843 +v 12.1282 93.9693 31.9794 +v 8.18511 93.9693 33.2081 +v 4.12263 93.9693 33.9526 +v 3.92769e-05 93.9693 34.202 +v -4.12255 93.9693 33.9526 +v -8.18503 93.9693 33.2082 +v -12.1281 93.9693 31.9794 +v -15.8944 93.9693 30.2844 +v -19.4289 93.9693 28.1477 +v -22.6801 93.9693 25.6006 +v -25.6005 93.9693 22.6802 +v -28.1477 93.9693 19.429 +v -30.2843 93.9693 15.8945 +v -31.9794 93.9693 12.1283 +v -33.2081 93.9693 8.18514 +v -33.9526 93.9693 4.12267 +v -34.202 93.9693 7.85539e-05 +v -33.9526 93.9693 -4.12251 +v -33.2082 93.9693 -8.18498 +v -31.9795 93.9693 -12.1281 +v -30.2844 93.9693 -15.8944 +v -28.1477 93.9693 -19.4289 +v -25.6006 93.9693 -22.68 +v -22.6802 93.9693 -25.6005 +v -19.429 93.9693 -28.1476 +v -15.8946 93.9693 -30.2843 +v -12.1283 93.9693 -31.9794 +v -8.18519 93.9693 -33.2081 +v -4.12271 93.9693 -33.9526 +v -0.000130062 93.9693 -34.202 +v 4.12247 93.9693 -33.9526 +v 8.18495 93.9693 -33.2082 +v 12.1281 93.9693 -31.9795 +v 15.8943 93.9693 -30.2844 +v 19.4288 93.9693 -28.1478 +v 22.68 93.9693 -25.6006 +v 25.6005 93.9693 -22.6802 +v 28.1476 93.9693 -19.4291 +v 30.2843 93.9693 -15.8946 +v 31.9794 93.9693 -12.1283 +v 33.2081 93.9693 -8.18523 +v 33.9526 93.9693 -4.12275 +v 44.8799 89.3633 5.88009e-39 +v 44.5527 89.3633 5.40967 +v 43.5758 89.3633 10.7405 +v 41.9634 89.3633 15.9146 +v 39.7392 89.3633 20.8567 +v 36.9354 89.3633 25.4947 +v 33.5931 89.3633 29.7609 +v 29.7609 89.3633 33.5931 +v 25.4947 89.3633 36.9354 +v 20.8568 89.3633 39.7391 +v 15.9147 89.3633 41.9634 +v 10.7405 89.3633 43.5757 +v 5.40972 89.3633 44.5527 +v 5.15392e-05 89.3633 44.8799 +v -5.40961 89.3633 44.5527 +v -10.7404 89.3633 43.5758 +v -15.9146 89.3633 41.9634 +v -20.8567 89.3633 39.7392 +v -25.4946 89.3633 36.9355 +v -29.7608 89.3633 33.5931 +v -33.593 89.3633 29.7609 +v -36.9354 89.3633 25.4947 +v -39.7391 89.3633 20.8568 +v -41.9634 89.3633 15.9147 +v -43.5757 89.3633 10.7406 +v -44.5527 89.3633 5.40978 +v -44.8799 89.3633 0.000103078 +v -44.5527 89.3633 -5.40956 +v -43.5758 89.3633 -10.7403 +v -41.9635 89.3633 -15.9145 +v -39.7392 89.3633 -20.8566 +v -36.9355 89.3633 -25.4946 +v -33.5932 89.3633 -29.7608 +v -29.761 89.3633 -33.593 +v -25.4948 89.3633 -36.9353 +v -20.8568 89.3633 -39.7391 +v -15.9148 89.3633 -41.9634 +v -10.7406 89.3633 -43.5757 +v -5.40982 89.3633 -44.5526 +v -0.000170668 89.3633 -44.8799 +v 5.40951 89.3633 -44.5527 +v 10.7403 89.3633 -43.5758 +v 15.9145 89.3633 -41.9635 +v 20.8566 89.3633 -39.7393 +v 25.4945 89.3633 -36.9355 +v 29.7607 89.3633 -33.5932 +v 33.5929 89.3633 -29.761 +v 36.9353 89.3633 -25.4948 +v 39.7391 89.3633 -20.8569 +v 41.9633 89.3633 -15.9148 +v 43.5757 89.3633 -10.7407 +v 44.5526 89.3633 -5.40988 +v 54.9509 83.5488 5.88009e-39 +v 54.5502 83.5488 6.62359 +v 53.3541 83.5488 13.1506 +v 51.38 83.5488 19.4858 +v 48.6566 83.5488 25.5369 +v 45.2237 83.5488 31.2156 +v 41.1313 83.5488 36.4391 +v 36.4392 83.5488 41.1313 +v 31.2157 83.5488 45.2236 +v 25.537 83.5488 48.6565 +v 19.4859 83.5488 51.3799 +v 13.1507 83.5488 53.3541 +v 6.62365 83.5488 54.5502 +v 6.31045e-05 83.5488 54.9509 +v -6.62352 83.5488 54.5502 +v -13.1505 83.5488 53.3541 +v -19.4858 83.5488 51.38 +v -25.5369 83.5488 48.6566 +v -31.2156 83.5488 45.2237 +v -36.4391 83.5488 41.1314 +v -41.1312 83.5488 36.4392 +v -45.2236 83.5488 31.2157 +v -48.6565 83.5488 25.537 +v -51.3799 83.5488 19.486 +v -53.3541 83.5488 13.1507 +v -54.5502 83.5488 6.62372 +v -54.9509 83.5488 0.000126209 +v -54.5502 83.5488 -6.62346 +v -53.3541 83.5488 -13.1505 +v -51.38 83.5488 -19.4857 +v -48.6566 83.5488 -25.5368 +v -45.2238 83.5488 -31.2155 +v -41.1314 83.5488 -36.439 +v -36.4393 83.5488 -41.1312 +v -31.2158 83.5488 -45.2236 +v -25.5371 83.5488 -48.6565 +v -19.486 83.5488 -51.3799 +v -13.1508 83.5488 -53.354 +v -6.62378 83.5488 -54.5502 +v -0.000208966 83.5488 -54.9509 +v 6.62339 83.5488 -54.5502 +v 13.1504 83.5488 -53.3541 +v 19.4857 83.5488 -51.38 +v 25.5367 83.5488 -48.6567 +v 31.2155 83.5488 -45.2238 +v 36.439 83.5488 -41.1315 +v 41.1311 83.5488 -36.4393 +v 45.2235 83.5488 -31.2158 +v 48.6565 83.5488 -25.5371 +v 51.3799 83.5488 -19.4861 +v 53.354 83.5488 -13.1509 +v 54.5502 83.5488 -6.62385 +v 64.2787 76.6045 5.88009e-39 +v 63.8101 76.6045 7.74794 +v 62.4109 76.6045 15.3829 +v 60.1017 76.6045 22.7935 +v 56.916 76.6045 29.8718 +v 52.9004 76.6045 36.5145 +v 48.1133 76.6045 42.6247 +v 42.6247 76.6045 48.1133 +v 36.5145 76.6045 52.9003 +v 29.8719 76.6045 56.916 +v 22.7936 76.6045 60.1016 +v 15.383 76.6045 62.4109 +v 7.74801 76.6045 63.8101 +v 7.38165e-05 76.6045 64.2787 +v -7.74786 76.6045 63.8101 +v -15.3828 76.6045 62.4109 +v -22.7935 76.6045 60.1017 +v -29.8717 76.6045 56.916 +v -36.5144 76.6045 52.9004 +v -42.6246 76.6045 48.1134 +v -48.1132 76.6045 42.6248 +v -52.9003 76.6045 36.5146 +v -56.9159 76.6045 29.8719 +v -60.1016 76.6045 22.7937 +v -62.4109 76.6045 15.383 +v -63.81 76.6045 7.74809 +v -64.2787 76.6045 0.000147633 +v -63.8101 76.6045 -7.74779 +v -62.4109 76.6045 -15.3827 +v -60.1017 76.6045 -22.7934 +v -56.9161 76.6045 -29.8717 +v -52.9005 76.6045 -36.5143 +v -48.1134 76.6045 -42.6245 +v -42.6248 76.6045 -48.1132 +v -36.5146 76.6045 -52.9002 +v -29.872 76.6045 -56.9159 +v -22.7938 76.6045 -60.1016 +v -15.3831 76.6045 -62.4109 +v -7.74816 76.6045 -63.81 +v -0.000244437 76.6045 -64.2787 +v 7.7477 76.6045 -63.8101 +v 15.3827 76.6045 -62.411 +v 22.7933 76.6045 -60.1017 +v 29.8716 76.6045 -56.9161 +v 36.5143 76.6045 -52.9005 +v 42.6245 76.6045 -48.1135 +v 48.1131 76.6045 -42.6249 +v 52.9002 76.6045 -36.5147 +v 56.9159 76.6045 -29.8721 +v 60.1015 76.6045 -22.7938 +v 62.4108 76.6045 -15.3832 +v 63.81 76.6045 -7.74824 +v 72.7373 68.6242 5.88009e-39 +v 72.207 68.6242 8.76751 +v 70.6237 68.6242 17.4072 +v 68.0106 68.6242 25.793 +v 64.4057 68.6242 33.8027 +v 59.8617 68.6242 41.3195 +v 54.4447 68.6242 48.2337 +v 48.2338 68.6242 54.4446 +v 41.3195 68.6242 59.8616 +v 33.8028 68.6242 64.4057 +v 25.7931 68.6242 68.0106 +v 17.4073 68.6242 70.6237 +v 8.76759 68.6242 72.207 +v 8.35302e-05 68.6242 72.7373 +v -8.76742 68.6242 72.207 +v -17.4071 68.6242 70.6237 +v -25.7929 68.6242 68.0106 +v -33.8026 68.6242 64.4058 +v -41.3194 68.6242 59.8617 +v -48.2337 68.6242 54.4447 +v -54.4446 68.6242 48.2339 +v -59.8616 68.6242 41.3196 +v -64.4056 68.6242 33.8028 +v -68.0105 68.6242 25.7932 +v -70.6237 68.6242 17.4073 +v -72.207 68.6242 8.76768 +v -72.7373 68.6242 0.00016706 +v -72.207 68.6242 -8.76734 +v -70.6237 68.6242 -17.407 +v -68.0106 68.6242 -25.7928 +v -64.4058 68.6242 -33.8025 +v -59.8618 68.6242 -41.3193 +v -54.4448 68.6242 -48.2336 +v -48.2339 68.6242 -54.4445 +v -41.3197 68.6242 -59.8615 +v -33.8029 68.6242 -64.4056 +v -25.7932 68.6242 -68.0105 +v -17.4074 68.6242 -70.6236 +v -8.76776 68.6242 -72.207 +v -0.000276603 68.6242 -72.7373 +v 8.76724 68.6242 -72.207 +v 17.4069 68.6242 -70.6238 +v 25.7928 68.6242 -68.0107 +v 33.8025 68.6242 -64.4058 +v 41.3193 68.6242 -59.8618 +v 48.2335 68.6242 -54.4449 +v 54.4445 68.6242 -48.234 +v 59.8615 68.6242 -41.3198 +v 64.4056 68.6242 -33.803 +v 68.0105 68.6242 -25.7933 +v 70.6236 68.6242 -17.4075 +v 72.2069 68.6242 -8.76785 +v 80.2123 59.7159 5.88009e-39 +v 79.6274 59.7159 9.66851 +v 77.8815 59.7159 19.196 +v 74.9998 59.7159 28.4436 +v 71.0245 59.7159 37.2765 +v 66.0134 59.7159 45.5657 +v 60.0398 59.7159 53.1905 +v 53.1906 59.7159 60.0397 +v 45.5658 59.7159 66.0134 +v 37.2766 59.7159 71.0244 +v 28.4437 59.7159 74.9998 +v 19.1961 59.7159 77.8814 +v 9.66861 59.7159 79.6274 +v 9.21143e-05 59.7159 80.2123 +v -9.66842 59.7159 79.6275 +v -19.1959 59.7159 77.8815 +v -28.4436 59.7159 74.9998 +v -37.2764 59.7159 71.0245 +v -45.5657 59.7159 66.0135 +v -53.1905 59.7159 60.0398 +v -60.0397 59.7159 53.1907 +v -66.0133 59.7159 45.5659 +v -71.0244 59.7159 37.2766 +v -74.9997 59.7159 28.4438 +v -77.8814 59.7159 19.1962 +v -79.6274 59.7159 9.66871 +v -80.2123 59.7159 0.000184229 +v -79.6275 59.7159 -9.66832 +v -77.8815 59.7159 -19.1958 +v -74.9999 59.7159 -28.4435 +v -71.0246 59.7159 -37.2763 +v -66.0135 59.7159 -45.5656 +v -60.0399 59.7159 -53.1904 +v -53.1908 59.7159 -60.0396 +v -45.566 59.7159 -66.0133 +v -37.2767 59.7159 -71.0243 +v -28.4439 59.7159 -74.9997 +v -19.1963 59.7159 -77.8814 +v -9.66879 59.7159 -79.6274 +v -0.000305029 59.7159 -80.2123 +v 9.66822 59.7159 -79.6275 +v 19.1958 59.7159 -77.8815 +v 28.4434 59.7159 -74.9999 +v 37.2762 59.7159 -71.0246 +v 45.5655 59.7159 -66.0136 +v 53.1903 59.7159 -60.04 +v 60.0395 59.7159 -53.1908 +v 66.0132 59.7159 -45.5661 +v 71.0243 59.7159 -37.2768 +v 74.9996 59.7159 -28.444 +v 77.8814 59.7159 -19.1964 +v 79.6274 59.7159 -9.66889 +v 86.6025 50.0001 5.88009e-39 +v 85.9711 50.0001 10.4388 +v 84.086 50.0001 20.7253 +v 80.9748 50.0001 30.7096 +v 76.6827 50.0001 40.2462 +v 71.2725 50.0001 49.1958 +v 64.8229 50.0001 57.428 +v 57.4281 50.0001 64.8229 +v 49.1959 50.0001 71.2724 +v 40.2463 50.0001 76.6827 +v 30.7097 50.0001 80.9747 +v 20.7254 50.0001 84.086 +v 10.4389 50.0001 85.9711 +v 9.94527e-05 50.0001 86.6025 +v -10.4387 50.0001 85.9711 +v -20.7252 50.0001 84.086 +v -30.7096 50.0001 80.9748 +v -40.2461 50.0001 76.6828 +v -49.1957 50.0001 71.2725 +v -57.428 50.0001 64.823 +v -64.8228 50.0001 57.4282 +v -71.2724 50.0001 49.196 +v -76.6826 50.0001 40.2463 +v -80.9747 50.0001 30.7098 +v -84.0859 50.0001 20.7255 +v -85.971 50.0001 10.439 +v -86.6025 50.0001 0.000198905 +v -85.9711 50.0001 -10.4386 +v -84.086 50.0001 -20.7251 +v -80.9748 50.0001 -30.7095 +v -76.6828 50.0001 -40.246 +v -71.2726 50.0001 -49.1956 +v -64.8231 50.0001 -57.4279 +v -57.4283 50.0001 -64.8227 +v -49.196 50.0001 -71.2723 +v -40.2464 50.0001 -76.6826 +v -30.71 50.0001 -80.9746 +v -20.7256 50.0001 -84.0859 +v -10.4391 50.0001 -85.971 +v -0.00032933 50.0001 -86.6025 +v 10.4385 50.0001 -85.9711 +v 20.725 50.0001 -84.0861 +v 30.7094 50.0001 -80.9749 +v 40.2459 50.0001 -76.6829 +v 49.1955 50.0001 -71.2727 +v 57.4278 50.0001 -64.8231 +v 64.8226 50.0001 -57.4284 +v 71.2722 50.0001 -49.1961 +v 76.6825 50.0001 -40.2465 +v 80.9746 50.0001 -30.7101 +v 84.0859 50.0001 -20.7257 +v 85.971 50.0001 -10.4392 +v 91.8216 39.6081 5.88009e-39 +v 91.1521 39.6081 11.0679 +v 89.1534 39.6081 21.9743 +v 85.8547 39.6081 32.5604 +v 81.304 39.6081 42.6716 +v 75.5677 39.6081 52.1606 +v 68.7295 39.6081 60.8889 +v 60.889 39.6081 68.7294 +v 52.1607 39.6081 75.5676 +v 42.6717 39.6081 81.3039 +v 32.5605 39.6081 85.8546 +v 21.9744 39.6081 89.1534 +v 11.068 39.6081 91.1521 +v 0.000105446 39.6081 91.8216 +v -11.0677 39.6081 91.1521 +v -21.9742 39.6081 89.1534 +v -32.5602 39.6081 85.8547 +v -42.6715 39.6081 81.304 +v -52.1605 39.6081 75.5678 +v -60.8888 39.6081 68.7295 +v -68.7293 39.6081 60.8891 +v -75.5676 39.6081 52.1607 +v -81.3039 39.6081 42.6718 +v -85.8546 39.6081 32.5606 +v -89.1534 39.6081 21.9745 +v -91.1521 39.6081 11.0681 +v -91.8216 39.6081 0.000210892 +v -91.1521 39.6081 -11.0676 +v -89.1535 39.6081 -21.9741 +v -85.8547 39.6081 -32.5602 +v -81.3041 39.6081 -42.6714 +v -75.5678 39.6081 -52.1604 +v -68.7296 39.6081 -60.8888 +v -60.8892 39.6081 -68.7292 +v -52.1608 39.6081 -75.5675 +v -42.6719 39.6081 -81.3038 +v -32.5607 39.6081 -85.8545 +v -21.9746 39.6081 -89.1533 +v -11.0682 39.6081 -91.1521 +v -0.000349177 39.6081 -91.8216 +v 11.0675 39.6081 -91.1521 +v 21.974 39.6081 -89.1535 +v 32.5601 39.6081 -85.8548 +v 42.6713 39.6081 -81.3041 +v 52.1603 39.6081 -75.5679 +v 60.8887 39.6081 -68.7297 +v 68.7292 39.6081 -60.8893 +v 75.5674 39.6081 -52.1609 +v 81.3038 39.6081 -42.672 +v 85.8545 39.6081 -32.5608 +v 89.1533 39.6081 -21.9748 +v 91.152 39.6081 -11.0683 +v 95.7989 28.6804 5.88009e-39 +v 95.1004 28.6804 11.5473 +v 93.0152 28.6804 22.9262 +v 89.5736 28.6804 33.9707 +v 84.8257 28.6804 44.5199 +v 78.841 28.6804 54.42 +v 71.7066 28.6804 63.5264 +v 63.5265 28.6804 71.7065 +v 54.42 28.6804 78.8409 +v 44.5201 28.6804 84.8257 +v 33.9708 28.6804 89.5735 +v 22.9263 28.6804 93.0152 +v 11.5474 28.6804 95.1004 +v 0.000110014 28.6804 95.7989 +v -11.5472 28.6804 95.1005 +v -22.9261 28.6804 93.0152 +v -33.9706 28.6804 89.5736 +v -44.5198 28.6804 84.8258 +v -54.4199 28.6804 78.8411 +v -63.5263 28.6804 71.7066 +v -71.7064 28.6804 63.5266 +v -78.8409 28.6804 54.4201 +v -84.8256 28.6804 44.5201 +v -89.5735 28.6804 33.971 +v -93.0151 28.6804 22.9264 +v -95.1004 28.6804 11.5475 +v -95.7989 28.6804 0.000220027 +v -95.1005 28.6804 -11.547 +v -93.0152 28.6804 -22.9259 +v -89.5736 28.6804 -33.9705 +v -84.8259 28.6804 -44.5197 +v -78.8411 28.6804 -54.4198 +v -71.7067 28.6804 -63.5262 +v -63.5267 28.6804 -71.7063 +v -54.4202 28.6804 -78.8408 +v -44.5202 28.6804 -84.8256 +v -33.9711 28.6804 -89.5734 +v -22.9265 28.6804 -93.0151 +v -11.5476 28.6804 -95.1004 +v -0.000364301 28.6804 -95.7989 +v 11.5469 28.6804 -95.1005 +v 22.9258 28.6804 -93.0153 +v 33.9704 28.6804 -89.5737 +v 44.5196 28.6804 -84.8259 +v 54.4197 28.6804 -78.8412 +v 63.5261 28.6804 -71.7068 +v 71.7062 28.6804 -63.5268 +v 78.8407 28.6804 -54.4203 +v 84.8255 28.6804 -44.5203 +v 89.5734 28.6804 -33.9712 +v 93.0151 28.6804 -22.9266 +v 95.1004 28.6804 -11.5477 +v 98.4808 17.3649 5.88009e-39 +v 97.7627 17.3649 11.8705 +v 95.6191 17.3649 23.568 +v 92.0811 17.3649 34.9217 +v 87.2004 17.3649 45.7663 +v 81.0481 17.3649 55.9434 +v 73.7139 17.3649 65.3048 +v 65.3049 17.3649 73.7139 +v 55.9435 17.3649 81.048 +v 45.7664 17.3649 87.2003 +v 34.9218 17.3649 92.0811 +v 23.5681 17.3649 95.6191 +v 11.8706 17.3649 97.7627 +v 0.000113093 17.3649 98.4808 +v -11.8704 17.3649 97.7627 +v -23.5679 17.3649 95.6191 +v -34.9216 17.3649 92.0812 +v -45.7662 17.3649 87.2005 +v -55.9433 17.3649 81.0482 +v -65.3047 17.3649 73.714 +v -73.7138 17.3649 65.305 +v -81.048 17.3649 55.9436 +v -87.2003 17.3649 45.7665 +v -92.081 17.3649 34.922 +v -95.619 17.3649 23.5682 +v -97.7627 17.3649 11.8708 +v -98.4808 17.3649 0.000226187 +v -97.7628 17.3649 -11.8703 +v -95.6191 17.3649 -23.5677 +v -92.0812 17.3649 -34.9215 +v -87.2005 17.3649 -45.766 +v -81.0482 17.3649 -55.9432 +v -73.7141 17.3649 -65.3046 +v -65.3051 17.3649 -73.7137 +v -55.9437 17.3649 -81.0479 +v -45.7666 17.3649 -87.2002 +v -34.9221 17.3649 -92.081 +v -23.5683 17.3649 -95.619 +v -11.8709 17.3649 -97.7627 +v -0.0003745 17.3649 -98.4808 +v 11.8702 17.3649 -97.7628 +v 23.5676 17.3649 -95.6192 +v 34.9214 17.3649 -92.0812 +v 45.7659 17.3649 -87.2006 +v 55.9431 17.3649 -81.0483 +v 65.3045 17.3649 -73.7142 +v 73.7136 17.3649 -65.3051 +v 81.0478 17.3649 -55.9438 +v 87.2002 17.3649 -45.7667 +v 92.0809 17.3649 -34.9222 +v 95.619 17.3649 -23.5684 +v 97.7627 17.3649 -11.871 +v 99.8308 5.81459 5.88009e-39 +v 99.1029 5.81459 12.0333 +v 96.9299 5.81459 23.8911 +v 93.3434 5.81459 35.4005 +v 88.3958 5.81459 46.3937 +v 82.1592 5.81459 56.7103 +v 74.7245 5.81459 66.2 +v 66.2001 5.81459 74.7244 +v 56.7104 5.81459 82.1591 +v 46.3938 5.81459 88.3958 +v 35.4006 5.81459 93.3434 +v 23.8912 5.81459 96.9299 +v 12.0334 5.81459 99.1029 +v 0.000114644 5.81459 99.8308 +v -12.0331 5.81459 99.103 +v -23.8909 5.81459 96.9299 +v -35.4004 5.81459 93.3435 +v -46.3936 5.81459 88.3959 +v -56.7102 5.81459 82.1592 +v -66.1999 5.81459 74.7245 +v -74.7243 5.81459 66.2002 +v -82.159 5.81459 56.7105 +v -88.3957 5.81459 46.3939 +v -93.3434 5.81459 35.4007 +v -96.9299 5.81459 23.8913 +v -99.1029 5.81459 12.0335 +v -99.8308 5.81459 0.000229288 +v -99.103 5.81459 -12.033 +v -96.93 5.81459 -23.8908 +v -93.3435 5.81459 -35.4002 +v -88.3959 5.81459 -46.3934 +v -82.1593 5.81459 -56.7101 +v -74.7246 5.81459 -66.1999 +v -66.2003 5.81459 -74.7242 +v -56.7106 5.81459 -82.159 +v -46.394 5.81459 -88.3957 +v -35.4008 5.81459 -93.3433 +v -23.8914 5.81459 -96.9298 +v -12.0336 5.81459 -99.1029 +v -0.000379634 5.81459 -99.8308 +v 12.0329 5.81459 -99.103 +v 23.8907 5.81459 -96.93 +v 35.4002 5.81459 -93.3436 +v 46.3933 5.81459 -88.396 +v 56.71 5.81459 -82.1594 +v 66.1998 5.81459 -74.7247 +v 74.7241 5.81459 -66.2004 +v 82.1589 5.81459 -56.7107 +v 88.3956 5.81459 -46.3941 +v 93.3433 5.81459 -35.4009 +v 96.9298 5.81459 -23.8915 +v 99.1029 5.81459 -12.0337 +v 99.8308 -5.81436 5.88009e-39 +v 99.103 -5.81436 12.0333 +v 96.9299 -5.81436 23.8911 +v 93.3435 -5.81436 35.4005 +v 88.3958 -5.81436 46.3937 +v 82.1592 -5.81436 56.7103 +v 74.7245 -5.81436 66.2 +v 66.2001 -5.81436 74.7244 +v 56.7104 -5.81436 82.1591 +v 46.3938 -5.81436 88.3958 +v 35.4006 -5.81436 93.3434 +v 23.8912 -5.81436 96.9299 +v 12.0334 -5.81436 99.1029 +v 0.000114644 -5.81436 99.8308 +v -12.0331 -5.81436 99.103 +v -23.8909 -5.81436 96.93 +v -35.4004 -5.81436 93.3435 +v -46.3936 -5.81436 88.3959 +v -56.7102 -5.81436 82.1593 +v -66.2 -5.81436 74.7246 +v -74.7243 -5.81436 66.2002 +v -82.1591 -5.81436 56.7105 +v -88.3957 -5.81436 46.3939 +v -93.3434 -5.81436 35.4007 +v -96.9299 -5.81436 23.8913 +v -99.1029 -5.81436 12.0335 +v -99.8308 -5.81436 0.000229288 +v -99.103 -5.81436 -12.033 +v -96.93 -5.81436 -23.8908 +v -93.3435 -5.81436 -35.4003 +v -88.3959 -5.81436 -46.3934 +v -82.1593 -5.81436 -56.7101 +v -74.7246 -5.81436 -66.1999 +v -66.2003 -5.81436 -74.7242 +v -56.7106 -5.81436 -82.159 +v -46.394 -5.81436 -88.3957 +v -35.4008 -5.81436 -93.3433 +v -23.8914 -5.81436 -96.9298 +v -12.0336 -5.81436 -99.1029 +v -0.000379634 -5.81436 -99.8308 +v 12.0329 -5.81436 -99.103 +v 23.8907 -5.81436 -96.93 +v 35.4002 -5.81436 -93.3436 +v 46.3933 -5.81436 -88.396 +v 56.71 -5.81436 -82.1594 +v 66.1998 -5.81436 -74.7247 +v 74.7242 -5.81436 -66.2004 +v 82.1589 -5.81436 -56.7107 +v 88.3956 -5.81436 -46.3941 +v 93.3433 -5.81436 -35.4009 +v 96.9298 -5.81436 -23.8915 +v 99.1029 -5.81436 -12.0337 +v 98.4808 -17.3647 5.88009e-39 +v 97.7628 -17.3647 11.8705 +v 95.6191 -17.3647 23.568 +v 92.0812 -17.3647 34.9217 +v 87.2004 -17.3647 45.7663 +v 81.0481 -17.3647 55.9434 +v 73.714 -17.3647 65.3048 +v 65.3049 -17.3647 73.7139 +v 55.9435 -17.3647 81.0481 +v 45.7664 -17.3647 87.2004 +v 34.9219 -17.3647 92.0811 +v 23.5681 -17.3647 95.6191 +v 11.8707 -17.3647 97.7627 +v 0.000113094 -17.3647 98.4808 +v -11.8704 -17.3647 97.7628 +v -23.5679 -17.3647 95.6192 +v -34.9216 -17.3647 92.0812 +v -45.7662 -17.3647 87.2005 +v -55.9433 -17.3647 81.0482 +v -65.3047 -17.3647 73.714 +v -73.7138 -17.3647 65.305 +v -81.048 -17.3647 55.9436 +v -87.2003 -17.3647 45.7665 +v -92.0811 -17.3647 34.922 +v -95.6191 -17.3647 23.5682 +v -97.7627 -17.3647 11.8708 +v -98.4808 -17.3647 0.000226187 +v -97.7628 -17.3647 -11.8703 +v -95.6192 -17.3647 -23.5677 +v -92.0812 -17.3647 -34.9215 +v -87.2005 -17.3647 -45.7661 +v -81.0483 -17.3647 -55.9432 +v -73.7141 -17.3647 -65.3046 +v -65.3051 -17.3647 -73.7137 +v -55.9437 -17.3647 -81.0479 +v -45.7666 -17.3647 -87.2003 +v -34.9221 -17.3647 -92.081 +v -23.5683 -17.3647 -95.619 +v -11.8709 -17.3647 -97.7627 +v -0.0003745 -17.3647 -98.4808 +v 11.8702 -17.3647 -97.7628 +v 23.5676 -17.3647 -95.6192 +v 34.9214 -17.3647 -92.0813 +v 45.766 -17.3647 -87.2006 +v 55.9431 -17.3647 -81.0483 +v 65.3046 -17.3647 -73.7142 +v 73.7136 -17.3647 -65.3052 +v 81.0479 -17.3647 -55.9438 +v 87.2002 -17.3647 -45.7667 +v 92.081 -17.3647 -34.9222 +v 95.619 -17.3647 -23.5684 +v 97.7627 -17.3647 -11.871 +v 95.799 -28.6802 5.88009e-39 +v 95.1005 -28.6802 11.5473 +v 93.0153 -28.6802 22.9262 +v 89.5736 -28.6802 33.9708 +v 84.8258 -28.6802 44.52 +v 78.841 -28.6802 54.42 +v 71.7066 -28.6802 63.5264 +v 63.5265 -28.6802 71.7065 +v 54.4201 -28.6802 78.841 +v 44.5201 -28.6802 84.8258 +v 33.9709 -28.6802 89.5736 +v 22.9263 -28.6802 93.0152 +v 11.5474 -28.6802 95.1005 +v 0.000110014 -28.6802 95.799 +v -11.5472 -28.6802 95.1005 +v -22.9261 -28.6802 93.0153 +v -33.9707 -28.6802 89.5737 +v -44.5199 -28.6802 84.8259 +v -54.4199 -28.6802 78.8411 +v -63.5264 -28.6802 71.7067 +v -71.7065 -28.6802 63.5266 +v -78.8409 -28.6802 54.4202 +v -84.8257 -28.6802 44.5202 +v -89.5735 -28.6802 33.971 +v -93.0152 -28.6802 22.9264 +v -95.1005 -28.6802 11.5475 +v -95.799 -28.6802 0.000220028 +v -95.1005 -28.6802 -11.5471 +v -93.0153 -28.6802 -22.9259 +v -89.5737 -28.6802 -33.9706 +v -84.8259 -28.6802 -44.5198 +v -78.8412 -28.6802 -54.4198 +v -71.7068 -28.6802 -63.5263 +v -63.5267 -28.6802 -71.7064 +v -54.4203 -28.6802 -78.8409 +v -44.5203 -28.6802 -84.8257 +v -33.9711 -28.6802 -89.5735 +v -22.9265 -28.6802 -93.0152 +v -11.5476 -28.6802 -95.1005 +v -0.000364302 -28.6802 -95.799 +v 11.5469 -28.6802 -95.1005 +v 22.9259 -28.6802 -93.0153 +v 33.9705 -28.6802 -89.5737 +v 44.5197 -28.6802 -84.826 +v 54.4197 -28.6802 -78.8412 +v 63.5262 -28.6802 -71.7068 +v 71.7063 -28.6802 -63.5268 +v 78.8408 -28.6802 -54.4204 +v 84.8256 -28.6802 -44.5204 +v 89.5734 -28.6802 -33.9712 +v 93.0151 -28.6802 -22.9266 +v 95.1004 -28.6802 -11.5477 +v 91.8217 -39.6078 5.88009e-39 +v 91.1522 -39.6078 11.0679 +v 89.1535 -39.6078 21.9743 +v 85.8548 -39.6078 32.5604 +v 81.3041 -39.6078 42.6716 +v 75.5678 -39.6078 52.1606 +v 68.7295 -39.6078 60.889 +v 60.8891 -39.6078 68.7295 +v 52.1607 -39.6078 75.5677 +v 42.6717 -39.6078 81.304 +v 32.5605 -39.6078 85.8547 +v 21.9745 -39.6078 89.1535 +v 11.068 -39.6078 91.1522 +v 0.000105446 -39.6078 91.8217 +v -11.0678 -39.6078 91.1522 +v -21.9742 -39.6078 89.1535 +v -32.5603 -39.6078 85.8548 +v -42.6715 -39.6078 81.3041 +v -52.1605 -39.6078 75.5678 +v -60.8889 -39.6078 68.7296 +v -68.7294 -39.6078 60.8892 +v -75.5677 -39.6078 52.1608 +v -81.304 -39.6078 42.6718 +v -85.8547 -39.6078 32.5606 +v -89.1535 -39.6078 21.9746 +v -91.1522 -39.6078 11.0681 +v -91.8217 -39.6078 0.000210893 +v -91.1522 -39.6078 -11.0677 +v -89.1536 -39.6078 -21.9741 +v -85.8548 -39.6078 -32.5602 +v -81.3042 -39.6078 -42.6714 +v -75.5679 -39.6078 -52.1604 +v -68.7297 -39.6078 -60.8888 +v -60.8892 -39.6078 -68.7293 +v -52.1609 -39.6078 -75.5676 +v -42.6719 -39.6078 -81.3039 +v -32.5607 -39.6078 -85.8546 +v -21.9747 -39.6078 -89.1534 +v -11.0682 -39.6078 -91.1522 +v -0.000349177 -39.6078 -91.8217 +v 11.0675 -39.6078 -91.1522 +v 21.974 -39.6078 -89.1536 +v 32.5601 -39.6078 -85.8549 +v 42.6713 -39.6078 -81.3042 +v 52.1604 -39.6078 -75.568 +v 60.8888 -39.6078 -68.7298 +v 68.7292 -39.6078 -60.8893 +v 75.5675 -39.6078 -52.161 +v 81.3039 -39.6078 -42.672 +v 85.8546 -39.6078 -32.5608 +v 89.1534 -39.6078 -21.9748 +v 91.1521 -39.6078 -11.0683 +v 86.6026 -49.9999 5.88009e-39 +v 85.9712 -49.9999 10.4388 +v 84.0861 -49.9999 20.7253 +v 80.9749 -49.9999 30.7097 +v 76.6828 -49.9999 40.2462 +v 71.2726 -49.9999 49.1959 +v 64.823 -49.9999 57.4281 +v 57.4282 -49.9999 64.823 +v 49.1959 -49.9999 71.2725 +v 40.2463 -49.9999 76.6828 +v 30.7098 -49.9999 80.9748 +v 20.7254 -49.9999 84.0861 +v 10.4389 -49.9999 85.9712 +v 9.94529e-05 -49.9999 86.6026 +v -10.4387 -49.9999 85.9712 +v -20.7252 -49.9999 84.0861 +v -30.7096 -49.9999 80.9749 +v -40.2461 -49.9999 76.6829 +v -49.1958 -49.9999 71.2726 +v -57.4281 -49.9999 64.8231 +v -64.8229 -49.9999 57.4283 +v -71.2725 -49.9999 49.196 +v -76.6827 -49.9999 40.2464 +v -80.9748 -49.9999 30.7099 +v -84.0861 -49.9999 20.7255 +v -85.9712 -49.9999 10.439 +v -86.6026 -49.9999 0.000198906 +v -85.9712 -49.9999 -10.4386 +v -84.0862 -49.9999 -20.7251 +v -80.9749 -49.9999 -30.7095 +v -76.6829 -49.9999 -40.246 +v -71.2727 -49.9999 -49.1957 +v -64.8232 -49.9999 -57.428 +v -57.4284 -49.9999 -64.8228 +v -49.1961 -49.9999 -71.2724 +v -40.2465 -49.9999 -76.6827 +v -30.71 -49.9999 -80.9748 +v -20.7257 -49.9999 -84.086 +v -10.4391 -49.9999 -85.9712 +v -0.00032933 -49.9999 -86.6026 +v 10.4385 -49.9999 -85.9712 +v 20.7251 -49.9999 -84.0862 +v 30.7094 -49.9999 -80.975 +v 40.2459 -49.9999 -76.683 +v 49.1956 -49.9999 -71.2728 +v 57.4279 -49.9999 -64.8232 +v 64.8227 -49.9999 -57.4284 +v 71.2723 -49.9999 -49.1962 +v 76.6826 -49.9999 -40.2466 +v 80.9747 -49.9999 -30.7101 +v 84.086 -49.9999 -20.7258 +v 85.9711 -49.9999 -10.4392 +v 80.2124 -59.7157 5.88009e-39 +v 79.6276 -59.7157 9.66853 +v 77.8816 -59.7157 19.1961 +v 74.9999 -59.7157 28.4437 +v 71.0246 -59.7157 37.2765 +v 66.0135 -59.7157 45.5658 +v 60.0399 -59.7157 53.1906 +v 53.1907 -59.7157 60.0398 +v 45.5659 -59.7157 66.0135 +v 37.2766 -59.7157 71.0245 +v 28.4438 -59.7157 74.9999 +v 19.1962 -59.7157 77.8816 +v 9.66862 -59.7157 79.6276 +v 9.21145e-05 -59.7157 80.2124 +v -9.66843 -59.7157 79.6276 +v -19.196 -59.7157 77.8816 +v -28.4436 -59.7157 75 +v -37.2765 -59.7157 71.0246 +v -45.5657 -59.7157 66.0136 +v -53.1906 -59.7157 60.04 +v -60.0398 -59.7157 53.1908 +v -66.0135 -59.7157 45.566 +v -71.0245 -59.7157 37.2767 +v -74.9999 -59.7157 28.4439 +v -77.8816 -59.7157 19.1963 +v -79.6276 -59.7157 9.66873 +v -80.2124 -59.7157 0.000184229 +v -79.6276 -59.7157 -9.66834 +v -77.8817 -59.7157 -19.1959 +v -75 -59.7157 -28.4435 +v -71.0247 -59.7157 -37.2764 +v -66.0137 -59.7157 -45.5657 +v -60.04 -59.7157 -53.1905 +v -53.1909 -59.7157 -60.0397 +v -45.5661 -59.7157 -66.0134 +v -37.2768 -59.7157 -71.0245 +v -28.444 -59.7157 -74.9998 +v -19.1964 -59.7157 -77.8815 +v -9.66881 -59.7157 -79.6276 +v -0.00030503 -59.7157 -80.2124 +v 9.66824 -59.7157 -79.6276 +v 19.1958 -59.7157 -77.8817 +v 28.4434 -59.7157 -75 +v 37.2763 -59.7157 -71.0247 +v 45.5656 -59.7157 -66.0137 +v 53.1904 -59.7157 -60.0401 +v 60.0396 -59.7157 -53.1909 +v 66.0133 -59.7157 -45.5661 +v 71.0244 -59.7157 -37.2769 +v 74.9998 -59.7157 -28.4441 +v 77.8815 -59.7157 -19.1965 +v 79.6275 -59.7157 -9.66891 +v 72.7375 -68.624 5.88009e-39 +v 72.2072 -68.624 8.76753 +v 70.6239 -68.624 17.4072 +v 68.0107 -68.624 25.7931 +v 64.4059 -68.624 33.8028 +v 59.8618 -68.624 41.3196 +v 54.4448 -68.624 48.2338 +v 48.2339 -68.624 54.4448 +v 41.3196 -68.624 59.8617 +v 33.8029 -68.624 64.4058 +v 25.7931 -68.624 68.0107 +v 17.4073 -68.624 70.6238 +v 8.76761 -68.624 72.2071 +v 8.35304e-05 -68.624 72.7375 +v -8.76744 -68.624 72.2072 +v -17.4071 -68.624 70.6239 +v -25.793 -68.624 68.0108 +v -33.8027 -68.624 64.4059 +v -41.3195 -68.624 59.8619 +v -48.2338 -68.624 54.4449 +v -54.4447 -68.624 48.234 +v -59.8617 -68.624 41.3197 +v -64.4058 -68.624 33.8029 +v -68.0107 -68.624 25.7932 +v -70.6238 -68.624 17.4074 +v -72.2071 -68.624 8.7677 +v -72.7375 -68.624 0.000167061 +v -72.2072 -68.624 -8.76736 +v -70.6239 -68.624 -17.407 +v -68.0108 -68.624 -25.7929 +v -64.4059 -68.624 -33.8026 +v -59.8619 -68.624 -41.3194 +v -54.4449 -68.624 -48.2337 +v -48.234 -68.624 -54.4446 +v -41.3198 -68.624 -59.8617 +v -33.803 -68.624 -64.4057 +v -25.7933 -68.624 -68.0106 +v -17.4075 -68.624 -70.6238 +v -8.76778 -68.624 -72.2071 +v -0.000276604 -68.624 -72.7375 +v 8.76726 -68.624 -72.2072 +v 17.407 -68.624 -70.6239 +v 25.7928 -68.624 -68.0108 +v 33.8025 -68.624 -64.406 +v 41.3194 -68.624 -59.8619 +v 48.2337 -68.624 -54.445 +v 54.4446 -68.624 -48.2341 +v 59.8616 -68.624 -41.3199 +v 64.4057 -68.624 -33.8031 +v 68.0106 -68.624 -25.7934 +v 70.6238 -68.624 -17.4076 +v 72.2071 -68.624 -8.76787 +v 64.2789 -76.6043 5.88009e-39 +v 63.8102 -76.6043 7.74796 +v 62.4111 -76.6043 15.3829 +v 60.1018 -76.6043 22.7936 +v 56.9162 -76.6043 29.8719 +v 52.9005 -76.6043 36.5146 +v 48.1135 -76.6043 42.6248 +v 42.6248 -76.6043 48.1134 +v 36.5146 -76.6043 52.9005 +v 29.8719 -76.6043 56.9161 +v 22.7937 -76.6043 60.1018 +v 15.383 -76.6043 62.4111 +v 7.74803 -76.6043 63.8102 +v 7.38167e-05 -76.6043 64.2789 +v -7.74788 -76.6043 63.8103 +v -15.3829 -76.6043 62.4111 +v -22.7935 -76.6043 60.1019 +v -29.8718 -76.6043 56.9162 +v -36.5145 -76.6043 52.9006 +v -42.6247 -76.6043 48.1135 +v -48.1134 -76.6043 42.6249 +v -52.9004 -76.6043 36.5147 +v -56.9161 -76.6043 29.872 +v -60.1018 -76.6043 22.7937 +v -62.411 -76.6043 15.3831 +v -63.8102 -76.6043 7.74812 +v -64.2789 -76.6043 0.000147633 +v -63.8103 -76.6043 -7.74781 +v -62.4111 -76.6043 -15.3828 +v -60.1019 -76.6043 -22.7935 +v -56.9162 -76.6043 -29.8717 +v -52.9006 -76.6043 -36.5144 +v -48.1136 -76.6043 -42.6247 +v -42.625 -76.6043 -48.1133 +v -36.5147 -76.6043 -52.9004 +v -29.8721 -76.6043 -56.9161 +v -22.7938 -76.6043 -60.1017 +v -15.3832 -76.6043 -62.411 +v -7.74818 -76.6043 -63.8102 +v -0.000244438 -76.6043 -64.2789 +v 7.74773 -76.6043 -63.8103 +v 15.3827 -76.6043 -62.4111 +v 22.7934 -76.6043 -60.1019 +v 29.8717 -76.6043 -56.9163 +v 36.5144 -76.6043 -52.9007 +v 42.6246 -76.6043 -48.1136 +v 48.1133 -76.6043 -42.625 +v 52.9003 -76.6043 -36.5148 +v 56.916 -76.6043 -29.8721 +v 60.1017 -76.6043 -22.7939 +v 62.411 -76.6043 -15.3832 +v 63.8102 -76.6043 -7.74826 +v 54.9511 -83.5487 5.88009e-39 +v 54.5504 -83.5487 6.62361 +v 53.3543 -83.5487 13.1506 +v 51.3801 -83.5487 19.4859 +v 48.6568 -83.5487 25.537 +v 45.2239 -83.5487 31.2157 +v 41.1315 -83.5487 36.4393 +v 36.4393 -83.5487 41.1314 +v 31.2158 -83.5487 45.2238 +v 25.5371 -83.5487 48.6567 +v 19.486 -83.5487 51.3801 +v 13.1507 -83.5487 53.3543 +v 6.62368 -83.5487 54.5504 +v 6.31048e-05 -83.5487 54.9511 +v -6.62355 -83.5487 54.5504 +v -13.1506 -83.5487 53.3543 +v -19.4858 -83.5487 51.3802 +v -25.537 -83.5487 48.6568 +v -31.2157 -83.5487 45.2239 +v -36.4392 -83.5487 41.1315 +v -41.1314 -83.5487 36.4394 +v -45.2238 -83.5487 31.2158 +v -48.6567 -83.5487 25.5371 +v -51.3801 -83.5487 19.486 +v -53.3543 -83.5487 13.1508 +v -54.5504 -83.5487 6.62375 +v -54.9511 -83.5487 0.00012621 +v -54.5504 -83.5487 -6.62348 +v -53.3543 -83.5487 -13.1505 +v -51.3802 -83.5487 -19.4858 +v -48.6568 -83.5487 -25.5369 +v -45.2239 -83.5487 -31.2156 +v -41.1316 -83.5487 -36.4392 +v -36.4394 -83.5487 -41.1313 +v -31.2159 -83.5487 -45.2237 +v -25.5372 -83.5487 -48.6567 +v -19.4861 -83.5487 -51.3801 +v -13.1508 -83.5487 -53.3542 +v -6.6238 -83.5487 -54.5504 +v -0.000208966 -83.5487 -54.9511 +v 6.62341 -83.5487 -54.5504 +v 13.1505 -83.5487 -53.3543 +v 19.4857 -83.5487 -51.3802 +v 25.5368 -83.5487 -48.6569 +v 31.2156 -83.5487 -45.224 +v 36.4391 -83.5487 -41.1316 +v 41.1313 -83.5487 -36.4395 +v 45.2237 -83.5487 -31.216 +v 48.6566 -83.5487 -25.5372 +v 51.38 -83.5487 -19.4862 +v 53.3542 -83.5487 -13.1509 +v 54.5504 -83.5487 -6.62387 +v 44.8801 -89.3632 5.88009e-39 +v 44.5529 -89.3632 5.4097 +v 43.576 -89.3632 10.7405 +v 41.9636 -89.3632 15.9147 +v 39.7394 -89.3632 20.8568 +v 36.9356 -89.3632 25.4948 +v 33.5933 -89.3632 29.761 +v 29.761 -89.3632 33.5932 +v 25.4948 -89.3632 36.9356 +v 20.8569 -89.3632 39.7393 +v 15.9147 -89.3632 41.9636 +v 10.7406 -89.3632 43.576 +v 5.40975 -89.3632 44.5529 +v 5.15395e-05 -89.3632 44.8801 +v -5.40964 -89.3632 44.5529 +v -10.7405 -89.3632 43.576 +v -15.9146 -89.3632 41.9637 +v -20.8568 -89.3632 39.7394 +v -25.4947 -89.3632 36.9356 +v -29.761 -89.3632 33.5933 +v -33.5932 -89.3632 29.7611 +v -36.9356 -89.3632 25.4949 +v -39.7393 -89.3632 20.8569 +v -41.9636 -89.3632 15.9148 +v -43.576 -89.3632 10.7406 +v -44.5529 -89.3632 5.4098 +v -44.8801 -89.3632 0.000103079 +v -44.5529 -89.3632 -5.40959 +v -43.576 -89.3632 -10.7404 +v -41.9637 -89.3632 -15.9146 +v -39.7394 -89.3632 -20.8567 +v -36.9357 -89.3632 -25.4947 +v -33.5933 -89.3632 -29.7609 +v -29.7611 -89.3632 -33.5932 +v -25.4949 -89.3632 -36.9355 +v -20.8569 -89.3632 -39.7393 +v -15.9149 -89.3632 -41.9636 +v -10.7407 -89.3632 -43.5759 +v -5.40985 -89.3632 -44.5529 +v -0.000170669 -89.3632 -44.8801 +v 5.40953 -89.3632 -44.5529 +v 10.7404 -89.3632 -43.576 +v 15.9146 -89.3632 -41.9637 +v 20.8567 -89.3632 -39.7394 +v 25.4947 -89.3632 -36.9357 +v 29.7609 -89.3632 -33.5934 +v 33.5931 -89.3632 -29.7612 +v 36.9355 -89.3632 -25.495 +v 39.7393 -89.3632 -20.857 +v 41.9636 -89.3632 -15.9149 +v 43.5759 -89.3632 -10.7407 +v 44.5529 -89.3632 -5.40991 +v 34.2022 -93.9692 5.88009e-39 +v 33.9528 -93.9692 4.12262 +v 33.2084 -93.9692 8.18512 +v 31.9796 -93.9692 12.1283 +v 30.2846 -93.9692 15.8945 +v 28.1479 -93.9692 19.4291 +v 25.6007 -93.9692 22.6802 +v 22.6803 -93.9692 25.6007 +v 19.4291 -93.9692 28.1478 +v 15.8946 -93.9692 30.2845 +v 12.1283 -93.9692 31.9796 +v 8.18516 -93.9692 33.2083 +v 4.12266 -93.9692 33.9528 +v 3.92772e-05 -93.9692 34.2022 +v -4.12257 -93.9692 33.9528 +v -8.18508 -93.9692 33.2084 +v -12.1282 -93.9692 31.9796 +v -15.8945 -93.9692 30.2846 +v -19.429 -93.9692 28.1479 +v -22.6802 -93.9692 25.6008 +v -25.6007 -93.9692 22.6803 +v -28.1478 -93.9692 19.4291 +v -30.2845 -93.9692 15.8946 +v -31.9796 -93.9692 12.1283 +v -33.2083 -93.9692 8.18519 +v -33.9528 -93.9692 4.1227 +v -34.2022 -93.9692 7.85544e-05 +v -33.9528 -93.9692 -4.12254 +v -33.2084 -93.9692 -8.18503 +v -31.9796 -93.9692 -12.1282 +v -30.2846 -93.9692 -15.8945 +v -28.1479 -93.9692 -19.429 +v -25.6008 -93.9692 -22.6802 +v -22.6803 -93.9692 -25.6006 +v -19.4292 -93.9692 -28.1478 +v -15.8946 -93.9692 -30.2845 +v -12.1284 -93.9692 -31.9796 +v -8.18524 -93.9692 -33.2083 +v -4.12273 -93.9692 -33.9528 +v -0.000130063 -93.9692 -34.2022 +v 4.12249 -93.9692 -33.9528 +v 8.185 -93.9692 -33.2084 +v 12.1282 -93.9692 -31.9797 +v 15.8944 -93.9692 -30.2846 +v 19.429 -93.9692 -28.1479 +v 22.6802 -93.9692 -25.6008 +v 25.6006 -93.9692 -22.6804 +v 28.1478 -93.9692 -19.4292 +v 30.2845 -93.9692 -15.8947 +v 31.9796 -93.9692 -12.1284 +v 33.2083 -93.9692 -8.18528 +v 33.9528 -93.9692 -4.12278 +v 23.0618 -97.3044 5.88009e-39 +v 22.8936 -97.3044 2.77979 +v 22.3917 -97.3044 5.51904 +v 21.5632 -97.3044 8.17782 +v 20.4202 -97.3044 10.7173 +v 18.9795 -97.3044 13.1006 +v 17.262 -97.3044 15.2928 +v 15.2928 -97.3044 17.262 +v 13.1006 -97.3044 18.9795 +v 10.7174 -97.3044 20.4202 +v 8.17784 -97.3044 21.5631 +v 5.51907 -97.3044 22.3917 +v 2.77982 -97.3044 22.8936 +v 2.64837e-05 -97.3044 23.0618 +v -2.77976 -97.3044 22.8936 +v -5.51902 -97.3044 22.3917 +v -8.17779 -97.3044 21.5632 +v -10.7173 -97.3044 20.4202 +v -13.1006 -97.3044 18.9795 +v -15.2928 -97.3044 17.262 +v -17.262 -97.3044 15.2928 +v -18.9795 -97.3044 13.1006 +v -20.4202 -97.3044 10.7174 +v -21.5631 -97.3044 8.17787 +v -22.3916 -97.3044 5.5191 +v -22.8936 -97.3044 2.77985 +v -23.0618 -97.3044 5.29675e-05 +v -22.8937 -97.3044 -2.77973 +v -22.3917 -97.3044 -5.51899 +v -21.5632 -97.3044 -8.17777 +v -20.4202 -97.3044 -10.7173 +v -18.9795 -97.3044 -13.1005 +v -17.262 -97.3044 -15.2927 +v -15.2929 -97.3044 -17.2619 +v -13.1006 -97.3044 -18.9794 +v -10.7174 -97.3044 -20.4202 +v -8.1779 -97.3044 -21.5631 +v -5.51912 -97.3044 -22.3916 +v -2.77987 -97.3044 -22.8936 +v -8.76987e-05 -97.3044 -23.0618 +v 2.77971 -97.3044 -22.8937 +v 5.51896 -97.3044 -22.3917 +v 8.17774 -97.3044 -21.5632 +v 10.7173 -97.3044 -20.4202 +v 13.1005 -97.3044 -18.9795 +v 15.2927 -97.3044 -17.2621 +v 17.2619 -97.3044 -15.2929 +v 18.9794 -97.3044 -13.1007 +v 20.4202 -97.3044 -10.7174 +v 21.5631 -97.3044 -8.17793 +v 22.3916 -97.3044 -5.51915 +v 22.8936 -97.3044 -2.7799 +v 11.6095 -99.3238 5.88009e-39 +v 11.5249 -99.3238 1.39937 +v 11.2722 -99.3238 2.77834 +v 10.8551 -99.3238 4.11679 +v 10.2797 -99.3238 5.3952 +v 9.55444 -99.3238 6.59495 +v 8.68985 -99.3238 7.69852 +v 7.69853 -99.3238 8.68984 +v 6.59496 -99.3238 9.55443 +v 5.39522 -99.3238 10.2797 +v 4.1168 -99.3238 10.8551 +v 2.77835 -99.3238 11.2722 +v 1.39938 -99.3238 11.5249 +v 1.33321e-05 -99.3238 11.6095 +v -1.39936 -99.3238 11.5249 +v -2.77832 -99.3238 11.2722 +v -4.11677 -99.3238 10.8551 +v -5.39519 -99.3238 10.2797 +v -6.59494 -99.3238 9.55445 +v -7.69851 -99.3238 8.68986 +v -8.68983 -99.3238 7.69854 +v -9.55443 -99.3238 6.59497 +v -10.2797 -99.3238 5.39523 +v -10.8551 -99.3238 4.11681 +v -11.2722 -99.3238 2.77836 +v -11.5249 -99.3238 1.3994 +v -11.6095 -99.3238 2.66643e-05 +v -11.5249 -99.3238 -1.39934 +v -11.2722 -99.3238 -2.77831 +v -10.8551 -99.3238 -4.11676 +v -10.2797 -99.3238 -5.39518 +v -9.55446 -99.3238 -6.59493 +v -8.68987 -99.3238 -7.6985 +v -7.69856 -99.3238 -8.68982 +v -6.59498 -99.3238 -9.55442 +v -5.39524 -99.3238 -10.2797 +v -4.11683 -99.3238 -10.8551 +v -2.77838 -99.3238 -11.2721 +v -1.39941 -99.3238 -11.5249 +v -4.41483e-05 -99.3238 -11.6095 +v 1.39933 -99.3238 -11.5249 +v 2.7783 -99.3238 -11.2722 +v 4.11675 -99.3238 -10.8551 +v 5.39517 -99.3238 -10.2797 +v 6.59491 -99.3238 -9.55447 +v 7.69849 -99.3238 -8.68987 +v 8.68981 -99.3238 -7.69857 +v 9.55441 -99.3238 -6.59499 +v 10.2797 -99.3238 -5.39525 +v 10.8551 -99.3238 -4.11684 +v 11.2721 -99.3238 -2.77839 +v 11.5249 -99.3238 -1.39943 +f 3 4 56 55 +f 4 5 57 56 +f 5 6 58 57 +f 6 7 59 58 +f 7 8 60 59 +f 8 9 61 60 +f 9 10 62 61 +f 10 11 63 62 +f 11 12 64 63 +f 12 13 65 64 +f 13 14 66 65 +f 14 15 67 66 +f 15 16 68 67 +f 16 17 69 68 +f 17 18 70 69 +f 18 19 71 70 +f 19 20 72 71 +f 20 21 73 72 +f 21 22 74 73 +f 22 23 75 74 +f 23 24 76 75 +f 24 25 77 76 +f 25 26 78 77 +f 26 27 79 78 +f 27 28 80 79 +f 28 29 81 80 +f 29 30 82 81 +f 30 31 83 82 +f 31 32 84 83 +f 32 33 85 84 +f 33 34 86 85 +f 34 35 87 86 +f 35 36 88 87 +f 36 37 89 88 +f 37 38 90 89 +f 38 39 91 90 +f 39 40 92 91 +f 40 41 93 92 +f 41 42 94 93 +f 42 43 95 94 +f 43 44 96 95 +f 44 45 97 96 +f 45 46 98 97 +f 46 47 99 98 +f 47 48 100 99 +f 48 49 101 100 +f 49 50 102 101 +f 50 51 103 102 +f 51 52 104 103 +f 52 53 105 104 +f 53 54 106 105 +f 54 3 55 106 +f 55 56 108 107 +f 56 57 109 108 +f 57 58 110 109 +f 58 59 111 110 +f 59 60 112 111 +f 60 61 113 112 +f 61 62 114 113 +f 62 63 115 114 +f 63 64 116 115 +f 64 65 117 116 +f 65 66 118 117 +f 66 67 119 118 +f 67 68 120 119 +f 68 69 121 120 +f 69 70 122 121 +f 70 71 123 122 +f 71 72 124 123 +f 72 73 125 124 +f 73 74 126 125 +f 74 75 127 126 +f 75 76 128 127 +f 76 77 129 128 +f 77 78 130 129 +f 78 79 131 130 +f 79 80 132 131 +f 80 81 133 132 +f 81 82 134 133 +f 82 83 135 134 +f 83 84 136 135 +f 84 85 137 136 +f 85 86 138 137 +f 86 87 139 138 +f 87 88 140 139 +f 88 89 141 140 +f 89 90 142 141 +f 90 91 143 142 +f 91 92 144 143 +f 92 93 145 144 +f 93 94 146 145 +f 94 95 147 146 +f 95 96 148 147 +f 96 97 149 148 +f 97 98 150 149 +f 98 99 151 150 +f 99 100 152 151 +f 100 101 153 152 +f 101 102 154 153 +f 102 103 155 154 +f 103 104 156 155 +f 104 105 157 156 +f 105 106 158 157 +f 106 55 107 158 +f 107 108 160 159 +f 108 109 161 160 +f 109 110 162 161 +f 110 111 163 162 +f 111 112 164 163 +f 112 113 165 164 +f 113 114 166 165 +f 114 115 167 166 +f 115 116 168 167 +f 116 117 169 168 +f 117 118 170 169 +f 118 119 171 170 +f 119 120 172 171 +f 120 121 173 172 +f 121 122 174 173 +f 122 123 175 174 +f 123 124 176 175 +f 124 125 177 176 +f 125 126 178 177 +f 126 127 179 178 +f 127 128 180 179 +f 128 129 181 180 +f 129 130 182 181 +f 130 131 183 182 +f 131 132 184 183 +f 132 133 185 184 +f 133 134 186 185 +f 134 135 187 186 +f 135 136 188 187 +f 136 137 189 188 +f 137 138 190 189 +f 138 139 191 190 +f 139 140 192 191 +f 140 141 193 192 +f 141 142 194 193 +f 142 143 195 194 +f 143 144 196 195 +f 144 145 197 196 +f 145 146 198 197 +f 146 147 199 198 +f 147 148 200 199 +f 148 149 201 200 +f 149 150 202 201 +f 150 151 203 202 +f 151 152 204 203 +f 152 153 205 204 +f 153 154 206 205 +f 154 155 207 206 +f 155 156 208 207 +f 156 157 209 208 +f 157 158 210 209 +f 158 107 159 210 +f 159 160 212 211 +f 160 161 213 212 +f 161 162 214 213 +f 162 163 215 214 +f 163 164 216 215 +f 164 165 217 216 +f 165 166 218 217 +f 166 167 219 218 +f 167 168 220 219 +f 168 169 221 220 +f 169 170 222 221 +f 170 171 223 222 +f 171 172 224 223 +f 172 173 225 224 +f 173 174 226 225 +f 174 175 227 226 +f 175 176 228 227 +f 176 177 229 228 +f 177 178 230 229 +f 178 179 231 230 +f 179 180 232 231 +f 180 181 233 232 +f 181 182 234 233 +f 182 183 235 234 +f 183 184 236 235 +f 184 185 237 236 +f 185 186 238 237 +f 186 187 239 238 +f 187 188 240 239 +f 188 189 241 240 +f 189 190 242 241 +f 190 191 243 242 +f 191 192 244 243 +f 192 193 245 244 +f 193 194 246 245 +f 194 195 247 246 +f 195 196 248 247 +f 196 197 249 248 +f 197 198 250 249 +f 198 199 251 250 +f 199 200 252 251 +f 200 201 253 252 +f 201 202 254 253 +f 202 203 255 254 +f 203 204 256 255 +f 204 205 257 256 +f 205 206 258 257 +f 206 207 259 258 +f 207 208 260 259 +f 208 209 261 260 +f 209 210 262 261 +f 210 159 211 262 +f 211 212 264 263 +f 212 213 265 264 +f 213 214 266 265 +f 214 215 267 266 +f 215 216 268 267 +f 216 217 269 268 +f 217 218 270 269 +f 218 219 271 270 +f 219 220 272 271 +f 220 221 273 272 +f 221 222 274 273 +f 222 223 275 274 +f 223 224 276 275 +f 224 225 277 276 +f 225 226 278 277 +f 226 227 279 278 +f 227 228 280 279 +f 228 229 281 280 +f 229 230 282 281 +f 230 231 283 282 +f 231 232 284 283 +f 232 233 285 284 +f 233 234 286 285 +f 234 235 287 286 +f 235 236 288 287 +f 236 237 289 288 +f 237 238 290 289 +f 238 239 291 290 +f 239 240 292 291 +f 240 241 293 292 +f 241 242 294 293 +f 242 243 295 294 +f 243 244 296 295 +f 244 245 297 296 +f 245 246 298 297 +f 246 247 299 298 +f 247 248 300 299 +f 248 249 301 300 +f 249 250 302 301 +f 250 251 303 302 +f 251 252 304 303 +f 252 253 305 304 +f 253 254 306 305 +f 254 255 307 306 +f 255 256 308 307 +f 256 257 309 308 +f 257 258 310 309 +f 258 259 311 310 +f 259 260 312 311 +f 260 261 313 312 +f 261 262 314 313 +f 262 211 263 314 +f 263 264 316 315 +f 264 265 317 316 +f 265 266 318 317 +f 266 267 319 318 +f 267 268 320 319 +f 268 269 321 320 +f 269 270 322 321 +f 270 271 323 322 +f 271 272 324 323 +f 272 273 325 324 +f 273 274 326 325 +f 274 275 327 326 +f 275 276 328 327 +f 276 277 329 328 +f 277 278 330 329 +f 278 279 331 330 +f 279 280 332 331 +f 280 281 333 332 +f 281 282 334 333 +f 282 283 335 334 +f 283 284 336 335 +f 284 285 337 336 +f 285 286 338 337 +f 286 287 339 338 +f 287 288 340 339 +f 288 289 341 340 +f 289 290 342 341 +f 290 291 343 342 +f 291 292 344 343 +f 292 293 345 344 +f 293 294 346 345 +f 294 295 347 346 +f 295 296 348 347 +f 296 297 349 348 +f 297 298 350 349 +f 298 299 351 350 +f 299 300 352 351 +f 300 301 353 352 +f 301 302 354 353 +f 302 303 355 354 +f 303 304 356 355 +f 304 305 357 356 +f 305 306 358 357 +f 306 307 359 358 +f 307 308 360 359 +f 308 309 361 360 +f 309 310 362 361 +f 310 311 363 362 +f 311 312 364 363 +f 312 313 365 364 +f 313 314 366 365 +f 314 263 315 366 +f 315 316 368 367 +f 316 317 369 368 +f 317 318 370 369 +f 318 319 371 370 +f 319 320 372 371 +f 320 321 373 372 +f 321 322 374 373 +f 322 323 375 374 +f 323 324 376 375 +f 324 325 377 376 +f 325 326 378 377 +f 326 327 379 378 +f 327 328 380 379 +f 328 329 381 380 +f 329 330 382 381 +f 330 331 383 382 +f 331 332 384 383 +f 332 333 385 384 +f 333 334 386 385 +f 334 335 387 386 +f 335 336 388 387 +f 336 337 389 388 +f 337 338 390 389 +f 338 339 391 390 +f 339 340 392 391 +f 340 341 393 392 +f 341 342 394 393 +f 342 343 395 394 +f 343 344 396 395 +f 344 345 397 396 +f 345 346 398 397 +f 346 347 399 398 +f 347 348 400 399 +f 348 349 401 400 +f 349 350 402 401 +f 350 351 403 402 +f 351 352 404 403 +f 352 353 405 404 +f 353 354 406 405 +f 354 355 407 406 +f 355 356 408 407 +f 356 357 409 408 +f 357 358 410 409 +f 358 359 411 410 +f 359 360 412 411 +f 360 361 413 412 +f 361 362 414 413 +f 362 363 415 414 +f 363 364 416 415 +f 364 365 417 416 +f 365 366 418 417 +f 366 315 367 418 +f 367 368 420 419 +f 368 369 421 420 +f 369 370 422 421 +f 370 371 423 422 +f 371 372 424 423 +f 372 373 425 424 +f 373 374 426 425 +f 374 375 427 426 +f 375 376 428 427 +f 376 377 429 428 +f 377 378 430 429 +f 378 379 431 430 +f 379 380 432 431 +f 380 381 433 432 +f 381 382 434 433 +f 382 383 435 434 +f 383 384 436 435 +f 384 385 437 436 +f 385 386 438 437 +f 386 387 439 438 +f 387 388 440 439 +f 388 389 441 440 +f 389 390 442 441 +f 390 391 443 442 +f 391 392 444 443 +f 392 393 445 444 +f 393 394 446 445 +f 394 395 447 446 +f 395 396 448 447 +f 396 397 449 448 +f 397 398 450 449 +f 398 399 451 450 +f 399 400 452 451 +f 400 401 453 452 +f 401 402 454 453 +f 402 403 455 454 +f 403 404 456 455 +f 404 405 457 456 +f 405 406 458 457 +f 406 407 459 458 +f 407 408 460 459 +f 408 409 461 460 +f 409 410 462 461 +f 410 411 463 462 +f 411 412 464 463 +f 412 413 465 464 +f 413 414 466 465 +f 414 415 467 466 +f 415 416 468 467 +f 416 417 469 468 +f 417 418 470 469 +f 418 367 419 470 +f 419 420 472 471 +f 420 421 473 472 +f 421 422 474 473 +f 422 423 475 474 +f 423 424 476 475 +f 424 425 477 476 +f 425 426 478 477 +f 426 427 479 478 +f 427 428 480 479 +f 428 429 481 480 +f 429 430 482 481 +f 430 431 483 482 +f 431 432 484 483 +f 432 433 485 484 +f 433 434 486 485 +f 434 435 487 486 +f 435 436 488 487 +f 436 437 489 488 +f 437 438 490 489 +f 438 439 491 490 +f 439 440 492 491 +f 440 441 493 492 +f 441 442 494 493 +f 442 443 495 494 +f 443 444 496 495 +f 444 445 497 496 +f 445 446 498 497 +f 446 447 499 498 +f 447 448 500 499 +f 448 449 501 500 +f 449 450 502 501 +f 450 451 503 502 +f 451 452 504 503 +f 452 453 505 504 +f 453 454 506 505 +f 454 455 507 506 +f 455 456 508 507 +f 456 457 509 508 +f 457 458 510 509 +f 458 459 511 510 +f 459 460 512 511 +f 460 461 513 512 +f 461 462 514 513 +f 462 463 515 514 +f 463 464 516 515 +f 464 465 517 516 +f 465 466 518 517 +f 466 467 519 518 +f 467 468 520 519 +f 468 469 521 520 +f 469 470 522 521 +f 470 419 471 522 +f 471 472 524 523 +f 472 473 525 524 +f 473 474 526 525 +f 474 475 527 526 +f 475 476 528 527 +f 476 477 529 528 +f 477 478 530 529 +f 478 479 531 530 +f 479 480 532 531 +f 480 481 533 532 +f 481 482 534 533 +f 482 483 535 534 +f 483 484 536 535 +f 484 485 537 536 +f 485 486 538 537 +f 486 487 539 538 +f 487 488 540 539 +f 488 489 541 540 +f 489 490 542 541 +f 490 491 543 542 +f 491 492 544 543 +f 492 493 545 544 +f 493 494 546 545 +f 494 495 547 546 +f 495 496 548 547 +f 496 497 549 548 +f 497 498 550 549 +f 498 499 551 550 +f 499 500 552 551 +f 500 501 553 552 +f 501 502 554 553 +f 502 503 555 554 +f 503 504 556 555 +f 504 505 557 556 +f 505 506 558 557 +f 506 507 559 558 +f 507 508 560 559 +f 508 509 561 560 +f 509 510 562 561 +f 510 511 563 562 +f 511 512 564 563 +f 512 513 565 564 +f 513 514 566 565 +f 514 515 567 566 +f 515 516 568 567 +f 516 517 569 568 +f 517 518 570 569 +f 518 519 571 570 +f 519 520 572 571 +f 520 521 573 572 +f 521 522 574 573 +f 522 471 523 574 +f 523 524 576 575 +f 524 525 577 576 +f 525 526 578 577 +f 526 527 579 578 +f 527 528 580 579 +f 528 529 581 580 +f 529 530 582 581 +f 530 531 583 582 +f 531 532 584 583 +f 532 533 585 584 +f 533 534 586 585 +f 534 535 587 586 +f 535 536 588 587 +f 536 537 589 588 +f 537 538 590 589 +f 538 539 591 590 +f 539 540 592 591 +f 540 541 593 592 +f 541 542 594 593 +f 542 543 595 594 +f 543 544 596 595 +f 544 545 597 596 +f 545 546 598 597 +f 546 547 599 598 +f 547 548 600 599 +f 548 549 601 600 +f 549 550 602 601 +f 550 551 603 602 +f 551 552 604 603 +f 552 553 605 604 +f 553 554 606 605 +f 554 555 607 606 +f 555 556 608 607 +f 556 557 609 608 +f 557 558 610 609 +f 558 559 611 610 +f 559 560 612 611 +f 560 561 613 612 +f 561 562 614 613 +f 562 563 615 614 +f 563 564 616 615 +f 564 565 617 616 +f 565 566 618 617 +f 566 567 619 618 +f 567 568 620 619 +f 568 569 621 620 +f 569 570 622 621 +f 570 571 623 622 +f 571 572 624 623 +f 572 573 625 624 +f 573 574 626 625 +f 574 523 575 626 +f 575 576 628 627 +f 576 577 629 628 +f 577 578 630 629 +f 578 579 631 630 +f 579 580 632 631 +f 580 581 633 632 +f 581 582 634 633 +f 582 583 635 634 +f 583 584 636 635 +f 584 585 637 636 +f 585 586 638 637 +f 586 587 639 638 +f 587 588 640 639 +f 588 589 641 640 +f 589 590 642 641 +f 590 591 643 642 +f 591 592 644 643 +f 592 593 645 644 +f 593 594 646 645 +f 594 595 647 646 +f 595 596 648 647 +f 596 597 649 648 +f 597 598 650 649 +f 598 599 651 650 +f 599 600 652 651 +f 600 601 653 652 +f 601 602 654 653 +f 602 603 655 654 +f 603 604 656 655 +f 604 605 657 656 +f 605 606 658 657 +f 606 607 659 658 +f 607 608 660 659 +f 608 609 661 660 +f 609 610 662 661 +f 610 611 663 662 +f 611 612 664 663 +f 612 613 665 664 +f 613 614 666 665 +f 614 615 667 666 +f 615 616 668 667 +f 616 617 669 668 +f 617 618 670 669 +f 618 619 671 670 +f 619 620 672 671 +f 620 621 673 672 +f 621 622 674 673 +f 622 623 675 674 +f 623 624 676 675 +f 624 625 677 676 +f 625 626 678 677 +f 626 575 627 678 +f 627 628 680 679 +f 628 629 681 680 +f 629 630 682 681 +f 630 631 683 682 +f 631 632 684 683 +f 632 633 685 684 +f 633 634 686 685 +f 634 635 687 686 +f 635 636 688 687 +f 636 637 689 688 +f 637 638 690 689 +f 638 639 691 690 +f 639 640 692 691 +f 640 641 693 692 +f 641 642 694 693 +f 642 643 695 694 +f 643 644 696 695 +f 644 645 697 696 +f 645 646 698 697 +f 646 647 699 698 +f 647 648 700 699 +f 648 649 701 700 +f 649 650 702 701 +f 650 651 703 702 +f 651 652 704 703 +f 652 653 705 704 +f 653 654 706 705 +f 654 655 707 706 +f 655 656 708 707 +f 656 657 709 708 +f 657 658 710 709 +f 658 659 711 710 +f 659 660 712 711 +f 660 661 713 712 +f 661 662 714 713 +f 662 663 715 714 +f 663 664 716 715 +f 664 665 717 716 +f 665 666 718 717 +f 666 667 719 718 +f 667 668 720 719 +f 668 669 721 720 +f 669 670 722 721 +f 670 671 723 722 +f 671 672 724 723 +f 672 673 725 724 +f 673 674 726 725 +f 674 675 727 726 +f 675 676 728 727 +f 676 677 729 728 +f 677 678 730 729 +f 678 627 679 730 +f 679 680 732 731 +f 680 681 733 732 +f 681 682 734 733 +f 682 683 735 734 +f 683 684 736 735 +f 684 685 737 736 +f 685 686 738 737 +f 686 687 739 738 +f 687 688 740 739 +f 688 689 741 740 +f 689 690 742 741 +f 690 691 743 742 +f 691 692 744 743 +f 692 693 745 744 +f 693 694 746 745 +f 694 695 747 746 +f 695 696 748 747 +f 696 697 749 748 +f 697 698 750 749 +f 698 699 751 750 +f 699 700 752 751 +f 700 701 753 752 +f 701 702 754 753 +f 702 703 755 754 +f 703 704 756 755 +f 704 705 757 756 +f 705 706 758 757 +f 706 707 759 758 +f 707 708 760 759 +f 708 709 761 760 +f 709 710 762 761 +f 710 711 763 762 +f 711 712 764 763 +f 712 713 765 764 +f 713 714 766 765 +f 714 715 767 766 +f 715 716 768 767 +f 716 717 769 768 +f 717 718 770 769 +f 718 719 771 770 +f 719 720 772 771 +f 720 721 773 772 +f 721 722 774 773 +f 722 723 775 774 +f 723 724 776 775 +f 724 725 777 776 +f 725 726 778 777 +f 726 727 779 778 +f 727 728 780 779 +f 728 729 781 780 +f 729 730 782 781 +f 730 679 731 782 +f 731 732 784 783 +f 732 733 785 784 +f 733 734 786 785 +f 734 735 787 786 +f 735 736 788 787 +f 736 737 789 788 +f 737 738 790 789 +f 738 739 791 790 +f 739 740 792 791 +f 740 741 793 792 +f 741 742 794 793 +f 742 743 795 794 +f 743 744 796 795 +f 744 745 797 796 +f 745 746 798 797 +f 746 747 799 798 +f 747 748 800 799 +f 748 749 801 800 +f 749 750 802 801 +f 750 751 803 802 +f 751 752 804 803 +f 752 753 805 804 +f 753 754 806 805 +f 754 755 807 806 +f 755 756 808 807 +f 756 757 809 808 +f 757 758 810 809 +f 758 759 811 810 +f 759 760 812 811 +f 760 761 813 812 +f 761 762 814 813 +f 762 763 815 814 +f 763 764 816 815 +f 764 765 817 816 +f 765 766 818 817 +f 766 767 819 818 +f 767 768 820 819 +f 768 769 821 820 +f 769 770 822 821 +f 770 771 823 822 +f 771 772 824 823 +f 772 773 825 824 +f 773 774 826 825 +f 774 775 827 826 +f 775 776 828 827 +f 776 777 829 828 +f 777 778 830 829 +f 778 779 831 830 +f 779 780 832 831 +f 780 781 833 832 +f 781 782 834 833 +f 782 731 783 834 +f 783 784 836 835 +f 784 785 837 836 +f 785 786 838 837 +f 786 787 839 838 +f 787 788 840 839 +f 788 789 841 840 +f 789 790 842 841 +f 790 791 843 842 +f 791 792 844 843 +f 792 793 845 844 +f 793 794 846 845 +f 794 795 847 846 +f 795 796 848 847 +f 796 797 849 848 +f 797 798 850 849 +f 798 799 851 850 +f 799 800 852 851 +f 800 801 853 852 +f 801 802 854 853 +f 802 803 855 854 +f 803 804 856 855 +f 804 805 857 856 +f 805 806 858 857 +f 806 807 859 858 +f 807 808 860 859 +f 808 809 861 860 +f 809 810 862 861 +f 810 811 863 862 +f 811 812 864 863 +f 812 813 865 864 +f 813 814 866 865 +f 814 815 867 866 +f 815 816 868 867 +f 816 817 869 868 +f 817 818 870 869 +f 818 819 871 870 +f 819 820 872 871 +f 820 821 873 872 +f 821 822 874 873 +f 822 823 875 874 +f 823 824 876 875 +f 824 825 877 876 +f 825 826 878 877 +f 826 827 879 878 +f 827 828 880 879 +f 828 829 881 880 +f 829 830 882 881 +f 830 831 883 882 +f 831 832 884 883 +f 832 833 885 884 +f 833 834 886 885 +f 834 783 835 886 +f 835 836 888 887 +f 836 837 889 888 +f 837 838 890 889 +f 838 839 891 890 +f 839 840 892 891 +f 840 841 893 892 +f 841 842 894 893 +f 842 843 895 894 +f 843 844 896 895 +f 844 845 897 896 +f 845 846 898 897 +f 846 847 899 898 +f 847 848 900 899 +f 848 849 901 900 +f 849 850 902 901 +f 850 851 903 902 +f 851 852 904 903 +f 852 853 905 904 +f 853 854 906 905 +f 854 855 907 906 +f 855 856 908 907 +f 856 857 909 908 +f 857 858 910 909 +f 858 859 911 910 +f 859 860 912 911 +f 860 861 913 912 +f 861 862 914 913 +f 862 863 915 914 +f 863 864 916 915 +f 864 865 917 916 +f 865 866 918 917 +f 866 867 919 918 +f 867 868 920 919 +f 868 869 921 920 +f 869 870 922 921 +f 870 871 923 922 +f 871 872 924 923 +f 872 873 925 924 +f 873 874 926 925 +f 874 875 927 926 +f 875 876 928 927 +f 876 877 929 928 +f 877 878 930 929 +f 878 879 931 930 +f 879 880 932 931 +f 880 881 933 932 +f 881 882 934 933 +f 882 883 935 934 +f 883 884 936 935 +f 884 885 937 936 +f 885 886 938 937 +f 886 835 887 938 +f 887 888 940 939 +f 888 889 941 940 +f 889 890 942 941 +f 890 891 943 942 +f 891 892 944 943 +f 892 893 945 944 +f 893 894 946 945 +f 894 895 947 946 +f 895 896 948 947 +f 896 897 949 948 +f 897 898 950 949 +f 898 899 951 950 +f 899 900 952 951 +f 900 901 953 952 +f 901 902 954 953 +f 902 903 955 954 +f 903 904 956 955 +f 904 905 957 956 +f 905 906 958 957 +f 906 907 959 958 +f 907 908 960 959 +f 908 909 961 960 +f 909 910 962 961 +f 910 911 963 962 +f 911 912 964 963 +f 912 913 965 964 +f 913 914 966 965 +f 914 915 967 966 +f 915 916 968 967 +f 916 917 969 968 +f 917 918 970 969 +f 918 919 971 970 +f 919 920 972 971 +f 920 921 973 972 +f 921 922 974 973 +f 922 923 975 974 +f 923 924 976 975 +f 924 925 977 976 +f 925 926 978 977 +f 926 927 979 978 +f 927 928 980 979 +f 928 929 981 980 +f 929 930 982 981 +f 930 931 983 982 +f 931 932 984 983 +f 932 933 985 984 +f 933 934 986 985 +f 934 935 987 986 +f 935 936 988 987 +f 936 937 989 988 +f 937 938 990 989 +f 938 887 939 990 +f 939 940 992 991 +f 940 941 993 992 +f 941 942 994 993 +f 942 943 995 994 +f 943 944 996 995 +f 944 945 997 996 +f 945 946 998 997 +f 946 947 999 998 +f 947 948 1000 999 +f 948 949 1001 1000 +f 949 950 1002 1001 +f 950 951 1003 1002 +f 951 952 1004 1003 +f 952 953 1005 1004 +f 953 954 1006 1005 +f 954 955 1007 1006 +f 955 956 1008 1007 +f 956 957 1009 1008 +f 957 958 1010 1009 +f 958 959 1011 1010 +f 959 960 1012 1011 +f 960 961 1013 1012 +f 961 962 1014 1013 +f 962 963 1015 1014 +f 963 964 1016 1015 +f 964 965 1017 1016 +f 965 966 1018 1017 +f 966 967 1019 1018 +f 967 968 1020 1019 +f 968 969 1021 1020 +f 969 970 1022 1021 +f 970 971 1023 1022 +f 971 972 1024 1023 +f 972 973 1025 1024 +f 973 974 1026 1025 +f 974 975 1027 1026 +f 975 976 1028 1027 +f 976 977 1029 1028 +f 977 978 1030 1029 +f 978 979 1031 1030 +f 979 980 1032 1031 +f 980 981 1033 1032 +f 981 982 1034 1033 +f 982 983 1035 1034 +f 983 984 1036 1035 +f 984 985 1037 1036 +f 985 986 1038 1037 +f 986 987 1039 1038 +f 987 988 1040 1039 +f 988 989 1041 1040 +f 989 990 1042 1041 +f 990 939 991 1042 +f 991 992 1044 1043 +f 992 993 1045 1044 +f 993 994 1046 1045 +f 994 995 1047 1046 +f 995 996 1048 1047 +f 996 997 1049 1048 +f 997 998 1050 1049 +f 998 999 1051 1050 +f 999 1000 1052 1051 +f 1000 1001 1053 1052 +f 1001 1002 1054 1053 +f 1002 1003 1055 1054 +f 1003 1004 1056 1055 +f 1004 1005 1057 1056 +f 1005 1006 1058 1057 +f 1006 1007 1059 1058 +f 1007 1008 1060 1059 +f 1008 1009 1061 1060 +f 1009 1010 1062 1061 +f 1010 1011 1063 1062 +f 1011 1012 1064 1063 +f 1012 1013 1065 1064 +f 1013 1014 1066 1065 +f 1014 1015 1067 1066 +f 1015 1016 1068 1067 +f 1016 1017 1069 1068 +f 1017 1018 1070 1069 +f 1018 1019 1071 1070 +f 1019 1020 1072 1071 +f 1020 1021 1073 1072 +f 1021 1022 1074 1073 +f 1022 1023 1075 1074 +f 1023 1024 1076 1075 +f 1024 1025 1077 1076 +f 1025 1026 1078 1077 +f 1026 1027 1079 1078 +f 1027 1028 1080 1079 +f 1028 1029 1081 1080 +f 1029 1030 1082 1081 +f 1030 1031 1083 1082 +f 1031 1032 1084 1083 +f 1032 1033 1085 1084 +f 1033 1034 1086 1085 +f 1034 1035 1087 1086 +f 1035 1036 1088 1087 +f 1036 1037 1089 1088 +f 1037 1038 1090 1089 +f 1038 1039 1091 1090 +f 1039 1040 1092 1091 +f 1040 1041 1093 1092 +f 1041 1042 1094 1093 +f 1042 991 1043 1094 +f 1043 1044 1096 1095 +f 1044 1045 1097 1096 +f 1045 1046 1098 1097 +f 1046 1047 1099 1098 +f 1047 1048 1100 1099 +f 1048 1049 1101 1100 +f 1049 1050 1102 1101 +f 1050 1051 1103 1102 +f 1051 1052 1104 1103 +f 1052 1053 1105 1104 +f 1053 1054 1106 1105 +f 1054 1055 1107 1106 +f 1055 1056 1108 1107 +f 1056 1057 1109 1108 +f 1057 1058 1110 1109 +f 1058 1059 1111 1110 +f 1059 1060 1112 1111 +f 1060 1061 1113 1112 +f 1061 1062 1114 1113 +f 1062 1063 1115 1114 +f 1063 1064 1116 1115 +f 1064 1065 1117 1116 +f 1065 1066 1118 1117 +f 1066 1067 1119 1118 +f 1067 1068 1120 1119 +f 1068 1069 1121 1120 +f 1069 1070 1122 1121 +f 1070 1071 1123 1122 +f 1071 1072 1124 1123 +f 1072 1073 1125 1124 +f 1073 1074 1126 1125 +f 1074 1075 1127 1126 +f 1075 1076 1128 1127 +f 1076 1077 1129 1128 +f 1077 1078 1130 1129 +f 1078 1079 1131 1130 +f 1079 1080 1132 1131 +f 1080 1081 1133 1132 +f 1081 1082 1134 1133 +f 1082 1083 1135 1134 +f 1083 1084 1136 1135 +f 1084 1085 1137 1136 +f 1085 1086 1138 1137 +f 1086 1087 1139 1138 +f 1087 1088 1140 1139 +f 1088 1089 1141 1140 +f 1089 1090 1142 1141 +f 1090 1091 1143 1142 +f 1091 1092 1144 1143 +f 1092 1093 1145 1144 +f 1093 1094 1146 1145 +f 1094 1043 1095 1146 +f 1095 1096 1148 1147 +f 1096 1097 1149 1148 +f 1097 1098 1150 1149 +f 1098 1099 1151 1150 +f 1099 1100 1152 1151 +f 1100 1101 1153 1152 +f 1101 1102 1154 1153 +f 1102 1103 1155 1154 +f 1103 1104 1156 1155 +f 1104 1105 1157 1156 +f 1105 1106 1158 1157 +f 1106 1107 1159 1158 +f 1107 1108 1160 1159 +f 1108 1109 1161 1160 +f 1109 1110 1162 1161 +f 1110 1111 1163 1162 +f 1111 1112 1164 1163 +f 1112 1113 1165 1164 +f 1113 1114 1166 1165 +f 1114 1115 1167 1166 +f 1115 1116 1168 1167 +f 1116 1117 1169 1168 +f 1117 1118 1170 1169 +f 1118 1119 1171 1170 +f 1119 1120 1172 1171 +f 1120 1121 1173 1172 +f 1121 1122 1174 1173 +f 1122 1123 1175 1174 +f 1123 1124 1176 1175 +f 1124 1125 1177 1176 +f 1125 1126 1178 1177 +f 1126 1127 1179 1178 +f 1127 1128 1180 1179 +f 1128 1129 1181 1180 +f 1129 1130 1182 1181 +f 1130 1131 1183 1182 +f 1131 1132 1184 1183 +f 1132 1133 1185 1184 +f 1133 1134 1186 1185 +f 1134 1135 1187 1186 +f 1135 1136 1188 1187 +f 1136 1137 1189 1188 +f 1137 1138 1190 1189 +f 1138 1139 1191 1190 +f 1139 1140 1192 1191 +f 1140 1141 1193 1192 +f 1141 1142 1194 1193 +f 1142 1143 1195 1194 +f 1143 1144 1196 1195 +f 1144 1145 1197 1196 +f 1145 1146 1198 1197 +f 1146 1095 1147 1198 +f 1147 1148 1200 1199 +f 1148 1149 1201 1200 +f 1149 1150 1202 1201 +f 1150 1151 1203 1202 +f 1151 1152 1204 1203 +f 1152 1153 1205 1204 +f 1153 1154 1206 1205 +f 1154 1155 1207 1206 +f 1155 1156 1208 1207 +f 1156 1157 1209 1208 +f 1157 1158 1210 1209 +f 1158 1159 1211 1210 +f 1159 1160 1212 1211 +f 1160 1161 1213 1212 +f 1161 1162 1214 1213 +f 1162 1163 1215 1214 +f 1163 1164 1216 1215 +f 1164 1165 1217 1216 +f 1165 1166 1218 1217 +f 1166 1167 1219 1218 +f 1167 1168 1220 1219 +f 1168 1169 1221 1220 +f 1169 1170 1222 1221 +f 1170 1171 1223 1222 +f 1171 1172 1224 1223 +f 1172 1173 1225 1224 +f 1173 1174 1226 1225 +f 1174 1175 1227 1226 +f 1175 1176 1228 1227 +f 1176 1177 1229 1228 +f 1177 1178 1230 1229 +f 1178 1179 1231 1230 +f 1179 1180 1232 1231 +f 1180 1181 1233 1232 +f 1181 1182 1234 1233 +f 1182 1183 1235 1234 +f 1183 1184 1236 1235 +f 1184 1185 1237 1236 +f 1185 1186 1238 1237 +f 1186 1187 1239 1238 +f 1187 1188 1240 1239 +f 1188 1189 1241 1240 +f 1189 1190 1242 1241 +f 1190 1191 1243 1242 +f 1191 1192 1244 1243 +f 1192 1193 1245 1244 +f 1193 1194 1246 1245 +f 1194 1195 1247 1246 +f 1195 1196 1248 1247 +f 1196 1197 1249 1248 +f 1197 1198 1250 1249 +f 1198 1147 1199 1250 +f 1199 1200 1252 1251 +f 1200 1201 1253 1252 +f 1201 1202 1254 1253 +f 1202 1203 1255 1254 +f 1203 1204 1256 1255 +f 1204 1205 1257 1256 +f 1205 1206 1258 1257 +f 1206 1207 1259 1258 +f 1207 1208 1260 1259 +f 1208 1209 1261 1260 +f 1209 1210 1262 1261 +f 1210 1211 1263 1262 +f 1211 1212 1264 1263 +f 1212 1213 1265 1264 +f 1213 1214 1266 1265 +f 1214 1215 1267 1266 +f 1215 1216 1268 1267 +f 1216 1217 1269 1268 +f 1217 1218 1270 1269 +f 1218 1219 1271 1270 +f 1219 1220 1272 1271 +f 1220 1221 1273 1272 +f 1221 1222 1274 1273 +f 1222 1223 1275 1274 +f 1223 1224 1276 1275 +f 1224 1225 1277 1276 +f 1225 1226 1278 1277 +f 1226 1227 1279 1278 +f 1227 1228 1280 1279 +f 1228 1229 1281 1280 +f 1229 1230 1282 1281 +f 1230 1231 1283 1282 +f 1231 1232 1284 1283 +f 1232 1233 1285 1284 +f 1233 1234 1286 1285 +f 1234 1235 1287 1286 +f 1235 1236 1288 1287 +f 1236 1237 1289 1288 +f 1237 1238 1290 1289 +f 1238 1239 1291 1290 +f 1239 1240 1292 1291 +f 1240 1241 1293 1292 +f 1241 1242 1294 1293 +f 1242 1243 1295 1294 +f 1243 1244 1296 1295 +f 1244 1245 1297 1296 +f 1245 1246 1298 1297 +f 1246 1247 1299 1298 +f 1247 1248 1300 1299 +f 1248 1249 1301 1300 +f 1249 1250 1302 1301 +f 1250 1199 1251 1302 +f 1251 1252 1304 1303 +f 1252 1253 1305 1304 +f 1253 1254 1306 1305 +f 1254 1255 1307 1306 +f 1255 1256 1308 1307 +f 1256 1257 1309 1308 +f 1257 1258 1310 1309 +f 1258 1259 1311 1310 +f 1259 1260 1312 1311 +f 1260 1261 1313 1312 +f 1261 1262 1314 1313 +f 1262 1263 1315 1314 +f 1263 1264 1316 1315 +f 1264 1265 1317 1316 +f 1265 1266 1318 1317 +f 1266 1267 1319 1318 +f 1267 1268 1320 1319 +f 1268 1269 1321 1320 +f 1269 1270 1322 1321 +f 1270 1271 1323 1322 +f 1271 1272 1324 1323 +f 1272 1273 1325 1324 +f 1273 1274 1326 1325 +f 1274 1275 1327 1326 +f 1275 1276 1328 1327 +f 1276 1277 1329 1328 +f 1277 1278 1330 1329 +f 1278 1279 1331 1330 +f 1279 1280 1332 1331 +f 1280 1281 1333 1332 +f 1281 1282 1334 1333 +f 1282 1283 1335 1334 +f 1283 1284 1336 1335 +f 1284 1285 1337 1336 +f 1285 1286 1338 1337 +f 1286 1287 1339 1338 +f 1287 1288 1340 1339 +f 1288 1289 1341 1340 +f 1289 1290 1342 1341 +f 1290 1291 1343 1342 +f 1291 1292 1344 1343 +f 1292 1293 1345 1344 +f 1293 1294 1346 1345 +f 1294 1295 1347 1346 +f 1295 1296 1348 1347 +f 1296 1297 1349 1348 +f 1297 1298 1350 1349 +f 1298 1299 1351 1350 +f 1299 1300 1352 1351 +f 1300 1301 1353 1352 +f 1301 1302 1354 1353 +f 1302 1251 1303 1354 +f 1 4 3 +f 2 1303 1304 +f 1 5 4 +f 2 1304 1305 +f 1 6 5 +f 2 1305 1306 +f 1 7 6 +f 2 1306 1307 +f 1 8 7 +f 2 1307 1308 +f 1 9 8 +f 2 1308 1309 +f 1 10 9 +f 2 1309 1310 +f 1 11 10 +f 2 1310 1311 +f 1 12 11 +f 2 1311 1312 +f 1 13 12 +f 2 1312 1313 +f 1 14 13 +f 2 1313 1314 +f 1 15 14 +f 2 1314 1315 +f 1 16 15 +f 2 1315 1316 +f 1 17 16 +f 2 1316 1317 +f 1 18 17 +f 2 1317 1318 +f 1 19 18 +f 2 1318 1319 +f 1 20 19 +f 2 1319 1320 +f 1 21 20 +f 2 1320 1321 +f 1 22 21 +f 2 1321 1322 +f 1 23 22 +f 2 1322 1323 +f 1 24 23 +f 2 1323 1324 +f 1 25 24 +f 2 1324 1325 +f 1 26 25 +f 2 1325 1326 +f 1 27 26 +f 2 1326 1327 +f 1 28 27 +f 2 1327 1328 +f 1 29 28 +f 2 1328 1329 +f 1 30 29 +f 2 1329 1330 +f 1 31 30 +f 2 1330 1331 +f 1 32 31 +f 2 1331 1332 +f 1 33 32 +f 2 1332 1333 +f 1 34 33 +f 2 1333 1334 +f 1 35 34 +f 2 1334 1335 +f 1 36 35 +f 2 1335 1336 +f 1 37 36 +f 2 1336 1337 +f 1 38 37 +f 2 1337 1338 +f 1 39 38 +f 2 1338 1339 +f 1 40 39 +f 2 1339 1340 +f 1 41 40 +f 2 1340 1341 +f 1 42 41 +f 2 1341 1342 +f 1 43 42 +f 2 1342 1343 +f 1 44 43 +f 2 1343 1344 +f 1 45 44 +f 2 1344 1345 +f 1 46 45 +f 2 1345 1346 +f 1 47 46 +f 2 1346 1347 +f 1 48 47 +f 2 1347 1348 +f 1 49 48 +f 2 1348 1349 +f 1 50 49 +f 2 1349 1350 +f 1 51 50 +f 2 1350 1351 +f 1 52 51 +f 2 1351 1352 +f 1 53 52 +f 2 1352 1353 +f 1 54 53 +f 2 1353 1354 +f 1 3 54 +f 2 1354 1303 diff --git a/data/spheres/14.obj b/data/spheres/14.obj new file mode 100644 index 0000000..cbd4c59 --- /dev/null +++ b/data/spheres/14.obj @@ -0,0 +1,3194 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 10.8119 99.4138 5.88009e-39 +v 10.7439 99.4138 1.21055 +v 10.5408 99.4138 2.40587 +v 10.2052 99.4138 3.57094 +v 9.74118 99.4138 4.6911 +v 9.15469 99.4138 5.75227 +v 8.45308 99.4138 6.7411 +v 7.64517 99.4138 7.64516 +v 6.74111 99.4138 8.45307 +v 5.75228 99.4138 9.15469 +v 4.69111 99.4138 9.74118 +v 3.57095 99.4138 10.2052 +v 2.40588 99.4138 10.5408 +v 1.21056 99.4138 10.7439 +v 1.37051e-05 99.4138 10.8119 +v -1.21053 99.4138 10.7439 +v -2.40586 99.4138 10.5408 +v -3.57093 99.4138 10.2052 +v -4.69109 99.4138 9.74119 +v -5.75226 99.4138 9.1547 +v -6.74109 99.4138 8.45309 +v -7.64515 99.4138 7.64518 +v -8.45307 99.4138 6.74112 +v -9.15468 99.4138 5.75229 +v -9.74117 99.4138 4.69113 +v -10.2052 99.4138 3.57096 +v -10.5408 99.4138 2.4059 +v -10.7439 99.4138 1.21057 +v -10.8119 99.4138 2.74101e-05 +v -10.7439 99.4138 -1.21052 +v -10.5408 99.4138 -2.40584 +v -10.2052 99.4138 -3.57092 +v -9.74119 99.4138 -4.69108 +v -9.15471 99.4138 -5.75225 +v -8.4531 99.4138 -6.74108 +v -7.64519 99.4138 -7.64514 +v -6.74113 99.4138 -8.45306 +v -5.7523 99.4138 -9.15467 +v -4.69114 99.4138 -9.74116 +v -3.57098 99.4138 -10.2052 +v -2.40591 99.4138 -10.5408 +v -1.21059 99.4138 -10.7439 +v -4.11152e-05 99.4138 -10.8119 +v 1.21051 99.4138 -10.7439 +v 2.40583 99.4138 -10.5408 +v 3.5709 99.4138 -10.2052 +v 4.69106 99.4138 -9.7412 +v 5.75224 99.4138 -9.15472 +v 6.74107 99.4138 -8.45311 +v 7.64513 99.4138 -7.6452 +v 8.45305 99.4138 -6.74114 +v 9.15467 99.4138 -5.75231 +v 9.74116 99.4138 -4.69115 +v 10.2051 99.4138 -3.57099 +v 10.5408 99.4138 -2.40592 +v 10.7439 99.4138 -1.2106 +v 21.497 97.6621 5.88009e-39 +v 21.3619 97.6621 2.4069 +v 20.9581 97.6621 4.78354 +v 20.2907 97.6621 7.10001 +v 19.3682 97.6621 9.3272 +v 18.2021 97.6621 11.4371 +v 16.8071 97.6621 13.4032 +v 15.2007 97.6621 15.2007 +v 13.4032 97.6621 16.807 +v 11.4371 97.6621 18.202 +v 9.32723 97.6621 19.3681 +v 7.10004 97.6621 20.2907 +v 4.78356 97.6621 20.958 +v 2.40693 97.6621 21.3619 +v 2.72494e-05 97.6621 21.497 +v -2.40687 97.6621 21.3619 +v -4.78351 97.6621 20.9581 +v -7.09999 97.6621 20.2907 +v -9.32718 97.6621 19.3682 +v -11.4371 97.6621 18.2021 +v -13.4031 97.6621 16.8071 +v -15.2007 97.6621 15.2007 +v -16.807 97.6621 13.4032 +v -18.202 97.6621 11.4371 +v -19.3681 97.6621 9.32725 +v -20.2907 97.6621 7.10006 +v -20.958 97.6621 4.78359 +v -21.3619 97.6621 2.40695 +v -21.497 97.6621 5.44989e-05 +v -21.3619 97.6621 -2.40685 +v -20.9581 97.6621 -4.78348 +v -20.2907 97.6621 -7.09997 +v -19.3682 97.6621 -9.32716 +v -18.2021 97.6621 -11.4371 +v -16.8071 97.6621 -13.4031 +v -15.2007 97.6621 -15.2006 +v -13.4032 97.6621 -16.807 +v -11.4372 97.6621 -18.202 +v -9.32728 97.6621 -19.3681 +v -7.10009 97.6621 -20.2907 +v -4.78361 97.6621 -20.958 +v -2.40699 97.6621 -21.3619 +v -8.17483e-05 97.6621 -21.497 +v 2.40682 97.6621 -21.3619 +v 4.78346 97.6621 -20.9581 +v 7.09993 97.6621 -20.2907 +v 9.32713 97.6621 -19.3682 +v 11.437 97.6621 -18.2021 +v 13.4031 97.6621 -16.8071 +v 15.2006 97.6621 -15.2008 +v 16.807 97.6621 -13.4033 +v 18.202 97.6621 -11.4372 +v 19.3681 97.6621 -9.3273 +v 20.2907 97.6621 -7.10011 +v 20.958 97.6621 -4.78364 +v 21.3618 97.6621 -2.407 +v 31.9301 94.7653 5.88009e-39 +v 31.7294 94.7653 3.57504 +v 31.1296 94.7653 7.10512 +v 30.1383 94.7653 10.5458 +v 28.7681 94.7653 13.854 +v 27.036 94.7653 16.9878 +v 24.964 94.7653 19.9081 +v 22.578 94.7653 22.578 +v 19.9081 94.7653 24.964 +v 16.9879 94.7653 27.036 +v 13.854 94.7653 28.768 +v 10.5459 94.7653 30.1383 +v 7.10516 94.7653 31.1296 +v 3.57508 94.7653 31.7294 +v 4.04743e-05 94.7653 31.9301 +v -3.575 94.7653 31.7294 +v -7.10508 94.7653 31.1296 +v -10.5458 94.7653 30.1383 +v -13.8539 94.7653 28.7681 +v -16.9878 94.7653 27.036 +v -19.9081 94.7653 24.964 +v -22.578 94.7653 22.5781 +v -24.9639 94.7653 19.9082 +v -27.036 94.7653 16.9879 +v -28.768 94.7653 13.854 +v -30.1383 94.7653 10.5459 +v -31.1296 94.7653 7.1052 +v -31.7293 94.7653 3.57511 +v -31.9301 94.7653 8.09487e-05 +v -31.7294 94.7653 -3.57496 +v -31.1296 94.7653 -7.10504 +v -30.1383 94.7653 -10.5458 +v -28.7681 94.7653 -13.8539 +v -27.0361 94.7653 -16.9878 +v -24.964 94.7653 -19.908 +v -22.5781 94.7653 -22.5779 +v -19.9082 94.7653 -24.9639 +v -16.9879 94.7653 -27.036 +v -13.8541 94.7653 -28.768 +v -10.546 94.7653 -30.1383 +v -7.10523 94.7653 -31.1295 +v -3.57516 94.7653 -31.7293 +v -0.000121423 94.7653 -31.9301 +v 3.57492 94.7653 -31.7294 +v 7.10501 94.7653 -31.1296 +v 10.5457 94.7653 -30.1384 +v 13.8538 94.7653 -28.7681 +v 16.9877 94.7653 -27.0361 +v 19.908 94.7653 -24.9641 +v 22.5779 94.7653 -22.5781 +v 24.9639 94.7653 -19.9082 +v 27.0359 94.7653 -16.988 +v 28.768 94.7653 -13.8541 +v 30.1383 94.7653 -10.546 +v 31.1295 94.7653 -7.10527 +v 31.7293 94.7653 -3.57519 +v 41.9889 90.7576 5.88009e-39 +v 41.7249 90.7576 4.70126 +v 40.9361 90.7576 9.3434 +v 39.6326 90.7576 13.868 +v 37.8307 90.7576 18.2183 +v 35.553 90.7576 22.3394 +v 32.8282 90.7576 26.1796 +v 29.6906 90.7576 29.6906 +v 26.1797 90.7576 32.8282 +v 22.3395 90.7576 35.553 +v 18.2183 90.7576 37.8307 +v 13.8681 90.7576 39.6326 +v 9.34345 90.7576 40.9361 +v 4.70131 90.7576 41.7249 +v 5.32247e-05 90.7576 41.9889 +v -4.70121 90.7576 41.7249 +v -9.34335 90.7576 40.9361 +v -13.868 90.7576 39.6326 +v -18.2182 90.7576 37.8307 +v -22.3394 90.7576 35.553 +v -26.1796 90.7576 32.8283 +v -29.6906 90.7576 29.6907 +v -32.8282 90.7576 26.1797 +v -35.553 90.7576 22.3395 +v -37.8306 90.7576 18.2184 +v -39.6326 90.7576 13.8681 +v -40.9361 90.7576 9.3435 +v -41.7249 90.7576 4.70136 +v -41.9889 90.7576 0.000106449 +v -41.7249 90.7576 -4.70116 +v -40.9362 90.7576 -9.3433 +v -39.6326 90.7576 -13.8679 +v -37.8307 90.7576 -18.2182 +v -35.5531 90.7576 -22.3393 +v -32.8283 90.7576 -26.1795 +v -29.6907 90.7576 -29.6905 +v -26.1797 90.7576 -32.8281 +v -22.3395 90.7576 -35.5529 +v -18.2184 90.7576 -37.8306 +v -13.8682 90.7576 -39.6326 +v -9.34354 90.7576 -40.9361 +v -4.70142 90.7576 -41.7248 +v -0.000159674 90.7576 -41.9889 +v 4.70111 90.7576 -41.7249 +v 9.34325 90.7576 -40.9362 +v 13.8679 90.7576 -39.6327 +v 18.2181 90.7576 -37.8307 +v 22.3393 90.7576 -35.5531 +v 26.1795 90.7576 -32.8283 +v 29.6905 90.7576 -29.6908 +v 32.8281 90.7576 -26.1798 +v 35.5529 90.7576 -22.3396 +v 37.8306 90.7576 -18.2185 +v 39.6325 90.7576 -13.8682 +v 40.9361 90.7576 -9.3436 +v 41.7248 90.7576 -4.70146 +v 51.5554 85.6857 5.88009e-39 +v 51.2312 85.6857 5.77236 +v 50.2628 85.6857 11.4721 +v 48.6622 85.6857 17.0276 +v 46.4498 85.6857 22.369 +v 43.6532 85.6857 27.4291 +v 40.3076 85.6857 32.1442 +v 36.4552 85.6857 36.4551 +v 32.1443 85.6857 40.3076 +v 27.4291 85.6857 43.6531 +v 22.3691 85.6857 46.4497 +v 17.0277 85.6857 48.6622 +v 11.4722 85.6857 50.2627 +v 5.77243 85.6857 51.2312 +v 6.53511e-05 85.6857 51.5554 +v -5.7723 85.6857 51.2312 +v -11.4721 85.6857 50.2628 +v -17.0276 85.6857 48.6623 +v -22.369 85.6857 46.4498 +v -27.429 85.6857 43.6532 +v -32.1442 85.6857 40.3077 +v -36.4551 85.6857 36.4552 +v -40.3075 85.6857 32.1443 +v -43.6531 85.6857 27.4292 +v -46.4497 85.6857 22.3691 +v -48.6622 85.6857 17.0278 +v -50.2627 85.6857 11.4723 +v -51.2312 85.6857 5.77249 +v -51.5554 85.6857 0.000130702 +v -51.2312 85.6857 -5.77224 +v -50.2628 85.6857 -11.472 +v -48.6623 85.6857 -17.0275 +v -46.4498 85.6857 -22.3689 +v -43.6532 85.6857 -27.429 +v -40.3077 85.6857 -32.1441 +v -36.4553 85.6857 -36.455 +v -32.1444 85.6857 -40.3075 +v -27.4292 85.6857 -43.6531 +v -22.3692 85.6857 -46.4497 +v -17.0278 85.6857 -48.6622 +v -11.4723 85.6857 -50.2627 +v -5.77256 85.6857 -51.2312 +v -0.000196053 85.6857 -51.5554 +v 5.77218 85.6857 -51.2312 +v 11.472 85.6857 -50.2628 +v 17.0275 85.6857 -48.6623 +v 22.3688 85.6857 -46.4499 +v 27.4289 85.6857 -43.6533 +v 32.1441 85.6857 -40.3077 +v 36.455 85.6857 -36.4553 +v 40.3075 85.6857 -32.1444 +v 43.653 85.6857 -27.4293 +v 46.4497 85.6857 -22.3693 +v 48.6622 85.6857 -17.0279 +v 50.2627 85.6857 -11.4724 +v 51.2312 85.6857 -5.77261 +v 60.5174 79.6093 5.88009e-39 +v 60.1369 79.6093 6.77579 +v 59.0001 79.6093 13.4664 +v 57.1214 79.6093 19.9876 +v 54.5243 79.6093 26.2575 +v 51.2415 79.6093 32.1972 +v 47.3144 79.6093 37.7319 +v 42.7923 79.6093 42.7922 +v 37.732 79.6093 47.3144 +v 32.1972 79.6093 51.2415 +v 26.2576 79.6093 54.5243 +v 19.9877 79.6093 57.1213 +v 13.4664 79.6093 59.0001 +v 6.77587 79.6093 60.1369 +v 7.67113e-05 79.6093 60.5174 +v -6.77572 79.6093 60.1369 +v -13.4663 79.6093 59.0001 +v -19.9875 79.6093 57.1214 +v -26.2574 79.6093 54.5243 +v -32.1971 79.6093 51.2416 +v -37.7319 79.6093 47.3145 +v -42.7922 79.6093 42.7923 +v -47.3143 79.6093 37.7321 +v -51.2415 79.6093 32.1973 +v -54.5242 79.6093 26.2576 +v -57.1213 79.6093 19.9877 +v -59 79.6093 13.4665 +v -60.1368 79.6093 6.77594 +v -60.5174 79.6093 0.000153423 +v -60.1369 79.6093 -6.77565 +v -59.0001 79.6093 -13.4662 +v -57.1214 79.6093 -19.9875 +v -54.5243 79.6093 -26.2574 +v -51.2416 79.6093 -32.197 +v -47.3145 79.6093 -37.7318 +v -42.7924 79.6093 -42.7921 +v -37.7321 79.6093 -47.3143 +v -32.1973 79.6093 -51.2414 +v -26.2577 79.6093 -54.5242 +v -19.9878 79.6093 -57.1213 +v -13.4666 79.6093 -59 +v -6.77603 79.6093 -60.1368 +v -0.000230134 79.6093 -60.5174 +v 6.77557 79.6093 -60.1369 +v 13.4662 79.6093 -59.0001 +v 19.9874 79.6093 -57.1214 +v 26.2573 79.6093 -54.5244 +v 32.197 79.6093 -51.2417 +v 37.7318 79.6093 -47.3146 +v 42.7921 79.6093 -42.7924 +v 47.3142 79.6093 -37.7322 +v 51.2414 79.6093 -32.1974 +v 54.5242 79.6093 -26.2578 +v 57.1213 79.6093 -19.9879 +v 59 79.6093 -13.4667 +v 60.1368 79.6093 -6.77608 +v 68.7699 72.5996 5.88009e-39 +v 68.3375 72.5996 7.69978 +v 67.0457 72.5996 15.3027 +v 64.9108 72.5996 22.7132 +v 61.9595 72.5996 29.8381 +v 58.2292 72.5996 36.5878 +v 53.7665 72.5996 42.8773 +v 48.6277 72.5996 48.6276 +v 42.8774 72.5996 53.7664 +v 36.5878 72.5996 58.2291 +v 29.8382 72.5996 61.9595 +v 22.7133 72.5996 64.9107 +v 15.3028 72.5996 67.0457 +v 7.69987 72.5996 68.3375 +v 8.71721e-05 72.5996 68.7699 +v -7.69969 72.5996 68.3375 +v -15.3026 72.5996 67.0457 +v -22.7132 72.5996 64.9108 +v -29.838 72.5996 61.9596 +v -36.5877 72.5996 58.2292 +v -42.8772 72.5996 53.7665 +v -48.6276 72.5996 48.6278 +v -53.7664 72.5996 42.8774 +v -58.2291 72.5996 36.5879 +v -61.9595 72.5996 29.8383 +v -64.9107 72.5996 22.7134 +v -67.0457 72.5996 15.3029 +v -68.3375 72.5996 7.69995 +v -68.7699 72.5996 0.000174344 +v -68.3375 72.5996 -7.69962 +v -67.0457 72.5996 -15.3026 +v -64.9108 72.5996 -22.7131 +v -61.9596 72.5996 -29.838 +v -58.2292 72.5996 -36.5876 +v -53.7666 72.5996 -42.8772 +v -48.6278 72.5996 -48.6275 +v -42.8775 72.5996 -53.7663 +v -36.588 72.5996 -58.229 +v -29.8384 72.5996 -61.9594 +v -22.7135 72.5996 -64.9107 +v -15.303 72.5996 -67.0456 +v -7.70005 72.5996 -68.3375 +v -0.000261516 72.5996 -68.7699 +v 7.69953 72.5996 -68.3375 +v 15.3025 72.5996 -67.0457 +v 22.713 72.5996 -64.9109 +v 29.8379 72.5996 -61.9597 +v 36.5876 72.5996 -58.2293 +v 42.8771 72.5996 -53.7667 +v 48.6274 72.5996 -48.6279 +v 53.7663 72.5996 -42.8776 +v 58.229 72.5996 -36.588 +v 61.9594 72.5996 -29.8384 +v 64.9107 72.5996 -22.7136 +v 67.0456 72.5996 -15.3031 +v 68.3374 72.5996 -7.7001 +v 76.2162 64.7387 5.88009e-39 +v 75.7369 64.7387 8.5335 +v 74.3053 64.7387 16.9597 +v 71.9392 64.7387 25.1726 +v 68.6684 64.7387 33.0689 +v 64.5341 64.7387 40.5494 +v 59.5882 64.7387 47.52 +v 53.893 64.7387 53.8929 +v 47.52 64.7387 59.5882 +v 40.5495 64.7387 64.534 +v 33.069 64.7387 68.6684 +v 25.1727 64.7387 71.9391 +v 16.9598 64.7387 74.3052 +v 8.53359 64.7387 75.7369 +v 9.66109e-05 64.7387 76.2162 +v -8.5334 64.7387 75.7369 +v -16.9596 64.7387 74.3053 +v -25.1725 64.7387 71.9392 +v -33.0688 64.7387 68.6684 +v -40.5493 64.7387 64.5341 +v -47.5199 64.7387 59.5883 +v -53.8929 64.7387 53.8931 +v -59.5881 64.7387 47.5201 +v -64.534 64.7387 40.5496 +v -68.6683 64.7387 33.0691 +v -71.9391 64.7387 25.1728 +v -74.3052 64.7387 16.9599 +v -75.7369 64.7387 8.53368 +v -76.2162 64.7387 0.000193222 +v -75.737 64.7387 -8.53331 +v -74.3053 64.7387 -16.9595 +v -71.9392 64.7387 -25.1724 +v -68.6685 64.7387 -33.0688 +v -64.5342 64.7387 -40.5492 +v -59.5883 64.7387 -47.5198 +v -53.8931 64.7387 -53.8928 +v -47.5202 64.7387 -59.588 +v -40.5496 64.7387 -64.5339 +v -33.0692 64.7387 -68.6683 +v -25.1729 64.7387 -71.9391 +v -16.9599 64.7387 -74.3052 +v -8.53379 64.7387 -75.7369 +v -0.000289833 64.7387 -76.2162 +v 8.53322 64.7387 -75.737 +v 16.9594 64.7387 -74.3053 +v 25.1723 64.7387 -71.9393 +v 33.0687 64.7387 -68.6685 +v 40.5492 64.7387 -64.5342 +v 47.5197 64.7387 -59.5884 +v 53.8927 64.7387 -53.8932 +v 59.588 64.7387 -47.5203 +v 64.5339 64.7387 -40.5497 +v 68.6682 64.7387 -33.0693 +v 71.939 64.7387 -25.1729 +v 74.3052 64.7387 -16.96 +v 75.7369 64.7387 -8.53385 +v 82.7689 56.1188 5.88009e-39 +v 82.2484 56.1188 9.26717 +v 80.6937 56.1188 18.4178 +v 78.1242 56.1188 27.3368 +v 74.5722 56.1188 35.912 +v 70.0824 56.1188 44.0357 +v 64.7113 56.1188 51.6055 +v 58.5265 56.1188 58.5264 +v 51.6056 56.1188 64.7113 +v 44.0357 56.1188 70.0824 +v 35.9121 56.1188 74.5721 +v 27.3369 56.1188 78.1241 +v 18.4179 56.1188 80.6936 +v 9.26727 56.1188 82.2484 +v 0.000104917 56.1188 82.7689 +v -9.26706 56.1188 82.2484 +v -18.4177 56.1188 80.6937 +v -27.3367 56.1188 78.1242 +v -35.9119 56.1188 74.5722 +v -44.0356 56.1188 70.0825 +v -51.6054 56.1188 64.7114 +v -58.5263 56.1188 58.5265 +v -64.7112 56.1188 51.6057 +v -70.0823 56.1188 44.0358 +v -74.5721 56.1188 35.9122 +v -78.1241 56.1188 27.337 +v -80.6936 56.1188 18.418 +v -82.2484 56.1188 9.26736 +v -82.7689 56.1188 0.000209834 +v -82.2485 56.1188 -9.26697 +v -80.6937 56.1188 -18.4176 +v -78.1242 56.1188 -27.3366 +v -74.5723 56.1188 -35.9118 +v -70.0825 56.1188 -44.0355 +v -64.7115 56.1188 -51.6053 +v -58.5266 56.1188 -58.5262 +v -51.6057 56.1188 -64.7111 +v -44.0359 56.1188 -70.0823 +v -35.9123 56.1188 -74.572 +v -27.3371 56.1188 -78.1241 +v -18.4181 56.1188 -80.6936 +v -9.26749 56.1188 -82.2484 +v -0.000314751 56.1188 -82.7689 +v 9.26686 56.1188 -82.2485 +v 18.4175 56.1188 -80.6937 +v 27.3365 56.1188 -78.1243 +v 35.9118 56.1188 -74.5723 +v 44.0354 56.1188 -70.0826 +v 51.6053 56.1188 -64.7115 +v 58.5262 56.1188 -58.5267 +v 64.7111 56.1188 -51.6058 +v 70.0822 56.1188 -44.036 +v 74.572 56.1188 -35.9124 +v 78.124 56.1188 -27.3372 +v 80.6936 56.1188 -18.4182 +v 82.2484 56.1188 -9.26755 +v 88.3512 46.8409 5.88009e-39 +v 87.7956 46.8409 9.89218 +v 86.136 46.8409 19.66 +v 83.3932 46.8409 29.1805 +v 79.6017 46.8409 38.3341 +v 74.8091 46.8409 47.0056 +v 69.0758 46.8409 55.086 +v 62.4737 46.8409 62.4737 +v 55.0861 46.8409 69.0757 +v 47.0057 46.8409 74.809 +v 38.3342 46.8409 79.6016 +v 29.1806 46.8409 83.3932 +v 19.6601 46.8409 86.136 +v 9.8923 46.8409 87.7956 +v 0.000111993 46.8409 88.3512 +v -9.89207 46.8409 87.7956 +v -19.6599 46.8409 86.136 +v -29.1804 46.8409 83.3932 +v -38.334 46.8409 79.6017 +v -47.0055 46.8409 74.8092 +v -55.0859 46.8409 69.0758 +v -62.4736 46.8409 62.4738 +v -69.0756 46.8409 55.0862 +v -74.809 46.8409 47.0058 +v -79.6016 46.8409 38.3343 +v -83.3931 46.8409 29.1807 +v -86.136 46.8409 19.6602 +v -87.7956 46.8409 9.8924 +v -88.3512 46.8409 0.000223986 +v -87.7957 46.8409 -9.89197 +v -86.1361 46.8409 -19.6598 +v -83.3933 46.8409 -29.1803 +v -79.6018 46.8409 -38.3339 +v -74.8092 46.8409 -47.0054 +v -69.0759 46.8409 -55.0858 +v -62.4739 46.8409 -62.4735 +v -55.0863 46.8409 -69.0756 +v -47.0059 46.8409 -74.8089 +v -38.3344 46.8409 -79.6015 +v -29.1808 46.8409 -83.3931 +v -19.6603 46.8409 -86.1359 +v -9.89253 46.8409 -87.7956 +v -0.000335979 46.8409 -88.3512 +v 9.89186 46.8409 -87.7957 +v 19.6597 46.8409 -86.1361 +v 29.1802 46.8409 -83.3933 +v 38.3338 46.8409 -79.6018 +v 47.0054 46.8409 -74.8093 +v 55.0857 46.8409 -69.076 +v 62.4734 46.8409 -62.474 +v 69.0755 46.8409 -55.0864 +v 74.8089 46.8409 -47.006 +v 79.6015 46.8409 -38.3345 +v 83.3931 46.8409 -29.1809 +v 86.1359 46.8409 -19.6604 +v 87.7956 46.8409 -9.8926 +v 92.8976 37.0139 5.88009e-39 +v 92.3135 37.0139 10.4012 +v 90.5685 37.0139 20.6717 +v 87.6845 37.0139 30.6821 +v 83.6979 37.0139 40.3067 +v 78.6587 37.0139 49.4245 +v 72.6303 37.0139 57.9207 +v 65.6886 37.0139 65.6885 +v 57.9208 37.0139 72.6303 +v 49.4246 37.0139 78.6586 +v 40.3068 37.0139 83.6978 +v 30.6822 37.0139 87.6845 +v 20.6718 37.0139 90.5685 +v 10.4013 37.0139 92.3135 +v 0.000117756 37.0139 92.8976 +v -10.4011 37.0139 92.3135 +v -20.6715 37.0139 90.5685 +v -30.682 37.0139 87.6846 +v -40.3066 37.0139 83.6979 +v -49.4244 37.0139 78.6588 +v -57.9206 37.0139 72.6304 +v -65.6884 37.0139 65.6887 +v -72.6302 37.0139 57.9209 +v -78.6586 37.0139 49.4247 +v -83.6978 37.0139 40.307 +v -87.6845 37.0139 30.6823 +v -90.5685 37.0139 20.6719 +v -92.3135 37.0139 10.4015 +v -92.8976 37.0139 0.000235512 +v -92.3135 37.0139 -10.401 +v -90.5686 37.0139 -20.6714 +v -87.6846 37.0139 -30.6819 +v -83.698 37.0139 -40.3065 +v -78.6588 37.0139 -49.4243 +v -72.6305 37.0139 -57.9205 +v -65.6888 37.0139 -65.6883 +v -57.921 37.0139 -72.6301 +v -49.4248 37.0139 -78.6585 +v -40.3071 37.0139 -83.6977 +v -30.6824 37.0139 -87.6844 +v -20.672 37.0139 -90.5684 +v -10.4016 37.0139 -92.3135 +v -0.000353269 37.0139 -92.8976 +v 10.4009 37.0139 -92.3136 +v 20.6713 37.0139 -90.5686 +v 30.6818 37.0139 -87.6847 +v 40.3064 37.0139 -83.698 +v 49.4242 37.0139 -78.6589 +v 57.9204 37.0139 -72.6306 +v 65.6883 37.0139 -65.6888 +v 72.63 37.0139 -57.921 +v 78.6585 37.0139 -49.4249 +v 83.6977 37.0139 -40.3072 +v 87.6844 37.0139 -30.6826 +v 90.5684 37.0139 -20.6721 +v 92.3135 37.0139 -10.4017 +v 96.355 26.7529 5.88009e-39 +v 95.7491 26.7529 10.7883 +v 93.9392 26.7529 21.441 +v 90.9479 26.7529 31.824 +v 86.8128 26.7529 41.8068 +v 81.5861 26.7529 51.2639 +v 75.3334 26.7529 60.0763 +v 68.1333 26.7529 68.1332 +v 60.0764 26.7529 75.3333 +v 51.264 26.7529 81.586 +v 41.8069 26.7529 86.8128 +v 31.8241 26.7529 90.9478 +v 21.4411 26.7529 93.9391 +v 10.7884 26.7529 95.7491 +v 0.000122139 26.7529 96.355 +v -10.7882 26.7529 95.7491 +v -21.4409 26.7529 93.9392 +v -31.8239 26.7529 90.9479 +v -41.8067 26.7529 86.8129 +v -51.2638 26.7529 81.5862 +v -60.0762 26.7529 75.3335 +v -68.1331 26.7529 68.1334 +v -75.3332 26.7529 60.0765 +v -81.586 26.7529 51.2641 +v -86.8127 26.7529 41.807 +v -90.9478 26.7529 31.8242 +v -93.9391 26.7529 21.4412 +v -95.7491 26.7529 10.7886 +v -96.355 26.7529 0.000244277 +v -95.7491 26.7529 -10.7881 +v -93.9392 26.7529 -21.4407 +v -90.9479 26.7529 -31.8238 +v -86.813 26.7529 -41.8066 +v -81.5862 26.7529 -51.2637 +v -75.3335 26.7529 -60.0761 +v -68.1335 26.7529 -68.133 +v -60.0766 26.7529 -75.3332 +v -51.2642 26.7529 -81.5859 +v -41.8072 26.7529 -86.8127 +v -31.8243 26.7529 -90.9477 +v -21.4413 26.7529 -93.9391 +v -10.7887 26.7529 -95.7491 +v -0.000366416 26.7529 -96.355 +v 10.788 26.7529 -95.7492 +v 21.4406 26.7529 -93.9392 +v 31.8237 26.7529 -90.948 +v 41.8065 26.7529 -86.813 +v 51.2636 26.7529 -81.5863 +v 60.076 26.7529 -75.3336 +v 68.1329 26.7529 -68.1336 +v 75.3331 26.7529 -60.0767 +v 81.5859 26.7529 -51.2643 +v 86.8126 26.7529 -41.8073 +v 90.9477 26.7529 -31.8245 +v 93.939 26.7529 -21.4414 +v 95.7491 26.7529 -10.7888 +v 98.6826 16.1783 5.88009e-39 +v 98.0621 16.1783 11.0489 +v 96.2085 16.1783 21.9589 +v 93.1449 16.1783 32.5928 +v 88.91 16.1783 42.8168 +v 83.557 16.1783 52.5023 +v 77.1532 16.1783 61.5276 +v 69.7792 16.1783 69.7791 +v 61.5277 16.1783 77.1531 +v 52.5024 16.1783 83.5569 +v 42.8169 16.1783 88.9099 +v 32.5929 16.1783 93.1449 +v 21.9591 16.1783 96.2084 +v 11.0491 16.1783 98.0621 +v 0.000125089 16.1783 98.6826 +v -11.0488 16.1783 98.0621 +v -21.9588 16.1783 96.2085 +v -32.5927 16.1783 93.1449 +v -42.8167 16.1783 88.91 +v -52.5022 16.1783 83.5571 +v -61.5275 16.1783 77.1533 +v -69.779 16.1783 69.7793 +v -77.1531 16.1783 61.5278 +v -83.5569 16.1783 52.5025 +v -88.9099 16.1783 42.817 +v -93.1448 16.1783 32.593 +v -96.2084 16.1783 21.9592 +v -98.0621 16.1783 11.0492 +v -98.6826 16.1783 0.000250178 +v -98.0622 16.1783 -11.0487 +v -96.2085 16.1783 -21.9587 +v -93.145 16.1783 -32.5926 +v -88.9101 16.1783 -42.8165 +v -83.5571 16.1783 -52.5021 +v -77.1534 16.1783 -61.5274 +v -69.7794 16.1783 -69.7789 +v -61.5279 16.1783 -77.153 +v -52.5026 16.1783 -83.5568 +v -42.8171 16.1783 -88.9098 +v -32.5931 16.1783 -93.1448 +v -21.9593 16.1783 -96.2084 +v -11.0493 16.1783 -98.0621 +v -0.000375268 16.1783 -98.6826 +v 11.0486 16.1783 -98.0622 +v 21.9586 16.1783 -96.2085 +v 32.5924 16.1783 -93.145 +v 42.8164 16.1783 -88.9102 +v 52.502 16.1783 -83.5572 +v 61.5273 16.1783 -77.1535 +v 69.7788 16.1783 -69.7795 +v 77.1529 16.1783 -61.528 +v 83.5567 16.1783 -52.5027 +v 88.9098 16.1783 -42.8172 +v 93.1447 16.1783 -32.5932 +v 96.2084 16.1783 -21.9594 +v 98.0621 16.1783 -11.0494 +v 99.8533 5.41401 5.88009e-39 +v 99.2255 5.41401 11.18 +v 97.3498 5.41401 22.2194 +v 94.2499 5.41401 32.9794 +v 89.9648 5.41401 43.3247 +v 84.5483 5.41401 53.1251 +v 78.0685 5.41401 62.2575 +v 70.607 5.41401 70.6069 +v 62.2576 5.41401 78.0684 +v 53.1252 5.41401 84.5482 +v 43.3248 5.41401 89.9647 +v 32.9796 5.41401 94.2499 +v 22.2196 5.41401 97.3498 +v 11.1801 5.41401 99.2255 +v 0.000126573 5.41401 99.8533 +v -11.1799 5.41401 99.2255 +v -22.2193 5.41401 97.3498 +v -32.9793 5.41401 94.2499 +v -43.3246 5.41401 89.9648 +v -53.125 5.41401 84.5483 +v -62.2574 5.41401 78.0686 +v -70.6068 5.41401 70.6071 +v -78.0684 5.41401 62.2577 +v -84.5481 5.41401 53.1253 +v -89.9646 5.41401 43.3249 +v -94.2498 5.41401 32.9797 +v -97.3497 5.41401 22.2197 +v -99.2254 5.41401 11.1803 +v -99.8533 5.41401 0.000253146 +v -99.2255 5.41401 -11.1798 +v -97.3499 5.41401 -22.2192 +v -94.25 5.41401 -32.9792 +v -89.9649 5.41401 -43.3245 +v -84.5484 5.41401 -53.1249 +v -78.0687 5.41401 -62.2573 +v -70.6072 5.41401 -70.6067 +v -62.2578 5.41401 -78.0683 +v -53.1254 5.41401 -84.5481 +v -43.3251 5.41401 -89.9646 +v -32.9798 5.41401 -94.2498 +v -22.2198 5.41401 -97.3497 +v -11.1804 5.41401 -99.2254 +v -0.00037972 5.41401 -99.8533 +v 11.1797 5.41401 -99.2255 +v 22.2191 5.41401 -97.3499 +v 32.9791 5.41401 -94.25 +v 43.3244 5.41401 -89.9649 +v 53.1248 5.41401 -84.5484 +v 62.2572 5.41401 -78.0688 +v 70.6067 5.41401 -70.6073 +v 78.0682 5.41401 -62.2579 +v 84.548 5.41401 -53.1255 +v 89.9645 5.41401 -43.3252 +v 94.2497 5.41401 -32.9799 +v 97.3497 5.41401 -22.2199 +v 99.2254 5.41401 -11.1805 +v 99.8533 -5.41376 5.88009e-39 +v 99.2255 -5.41376 11.18 +v 97.3498 -5.41376 22.2194 +v 94.2499 -5.41376 32.9794 +v 89.9648 -5.41376 43.3247 +v 84.5483 -5.41376 53.1251 +v 78.0685 -5.41376 62.2575 +v 70.607 -5.41376 70.6069 +v 62.2576 -5.41376 78.0684 +v 53.1253 -5.41376 84.5482 +v 43.3248 -5.41376 89.9647 +v 32.9796 -5.41376 94.2499 +v 22.2196 -5.41376 97.3498 +v 11.1801 -5.41376 99.2255 +v 0.000126573 -5.41376 99.8533 +v -11.1799 -5.41376 99.2255 +v -22.2193 -5.41376 97.3498 +v -32.9793 -5.41376 94.25 +v -43.3246 -5.41376 89.9648 +v -53.125 -5.41376 84.5483 +v -62.2574 -5.41376 78.0686 +v -70.6068 -5.41376 70.6071 +v -78.0684 -5.41376 62.2577 +v -84.5481 -5.41376 53.1254 +v -89.9647 -5.41376 43.3249 +v -94.2498 -5.41376 32.9797 +v -97.3498 -5.41376 22.2197 +v -99.2255 -5.41376 11.1803 +v -99.8533 -5.41376 0.000253146 +v -99.2255 -5.41376 -11.1798 +v -97.3499 -5.41376 -22.2192 +v -94.25 -5.41376 -32.9792 +v -89.9649 -5.41376 -43.3245 +v -84.5484 -5.41376 -53.1249 +v -78.0687 -5.41376 -62.2573 +v -70.6072 -5.41376 -70.6068 +v -62.2578 -5.41376 -78.0683 +v -53.1254 -5.41376 -84.5481 +v -43.3251 -5.41376 -89.9646 +v -32.9798 -5.41376 -94.2498 +v -22.2198 -5.41376 -97.3497 +v -11.1804 -5.41376 -99.2254 +v -0.00037972 -5.41376 -99.8533 +v 11.1797 -5.41376 -99.2255 +v 22.2191 -5.41376 -97.3499 +v 32.9791 -5.41376 -94.25 +v 43.3244 -5.41376 -89.9649 +v 53.1248 -5.41376 -84.5485 +v 62.2572 -5.41376 -78.0688 +v 70.6067 -5.41376 -70.6073 +v 78.0682 -5.41376 -62.2579 +v 84.548 -5.41376 -53.1256 +v 89.9646 -5.41376 -43.3252 +v 94.2498 -5.41376 -32.9799 +v 97.3497 -5.41376 -22.2199 +v 99.2254 -5.41376 -11.1805 +v 98.6827 -16.1781 5.88009e-39 +v 98.0622 -16.1781 11.0489 +v 96.2085 -16.1781 21.9589 +v 93.1449 -16.1781 32.5928 +v 88.91 -16.1781 42.8168 +v 83.557 -16.1781 52.5023 +v 77.1533 -16.1781 61.5276 +v 69.7792 -16.1781 69.7791 +v 61.5277 -16.1781 77.1532 +v 52.5024 -16.1781 83.557 +v 42.8169 -16.1781 88.91 +v 32.5929 -16.1781 93.1449 +v 21.9591 -16.1781 96.2085 +v 11.0491 -16.1781 98.0622 +v 0.000125089 -16.1781 98.6827 +v -11.0488 -16.1781 98.0622 +v -21.9588 -16.1781 96.2085 +v -32.5927 -16.1781 93.145 +v -42.8167 -16.1781 88.9101 +v -52.5022 -16.1781 83.5571 +v -61.5275 -16.1781 77.1533 +v -69.7791 -16.1781 69.7793 +v -77.1531 -16.1781 61.5278 +v -83.5569 -16.1781 52.5025 +v -88.9099 -16.1781 42.817 +v -93.1449 -16.1781 32.593 +v -96.2084 -16.1781 21.9592 +v -98.0621 -16.1781 11.0492 +v -98.6827 -16.1781 0.000250178 +v -98.0622 -16.1781 -11.0487 +v -96.2085 -16.1781 -21.9587 +v -93.145 -16.1781 -32.5926 +v -88.9101 -16.1781 -42.8166 +v -83.5572 -16.1781 -52.5021 +v -77.1534 -16.1781 -61.5274 +v -69.7794 -16.1781 -69.779 +v -61.5279 -16.1781 -77.153 +v -52.5026 -16.1781 -83.5568 +v -42.8171 -16.1781 -88.9099 +v -32.5931 -16.1781 -93.1448 +v -21.9593 -16.1781 -96.2084 +v -11.0493 -16.1781 -98.0621 +v -0.000375268 -16.1781 -98.6827 +v 11.0486 -16.1781 -98.0622 +v 21.9586 -16.1781 -96.2086 +v 32.5924 -16.1781 -93.1451 +v 42.8164 -16.1781 -88.9102 +v 52.502 -16.1781 -83.5572 +v 61.5273 -16.1781 -77.1535 +v 69.7789 -16.1781 -69.7795 +v 77.1529 -16.1781 -61.528 +v 83.5568 -16.1781 -52.5027 +v 88.9098 -16.1781 -42.8172 +v 93.1448 -16.1781 -32.5933 +v 96.2084 -16.1781 -21.9594 +v 98.0621 -16.1781 -11.0494 +v 96.355 -26.7527 5.88009e-39 +v 95.7492 -26.7527 10.7883 +v 93.9392 -26.7527 21.441 +v 90.9479 -26.7527 31.824 +v 86.8129 -26.7527 41.8069 +v 81.5862 -26.7527 51.2639 +v 75.3334 -26.7527 60.0763 +v 68.1333 -26.7527 68.1333 +v 60.0764 -26.7527 75.3334 +v 51.264 -26.7527 81.5861 +v 41.807 -26.7527 86.8129 +v 31.8241 -26.7527 90.9479 +v 21.4411 -26.7527 93.9392 +v 10.7885 -26.7527 95.7492 +v 0.000122139 -26.7527 96.355 +v -10.7882 -26.7527 95.7492 +v -21.4409 -26.7527 93.9392 +v -31.8239 -26.7527 90.948 +v -41.8067 -26.7527 86.813 +v -51.2638 -26.7527 81.5862 +v -60.0763 -26.7527 75.3335 +v -68.1332 -26.7527 68.1334 +v -75.3333 -26.7527 60.0765 +v -81.586 -26.7527 51.2641 +v -86.8128 -26.7527 41.8071 +v -90.9478 -26.7527 31.8242 +v -93.9392 -26.7527 21.4412 +v -95.7491 -26.7527 10.7886 +v -96.355 -26.7527 0.000244278 +v -95.7492 -26.7527 -10.7881 +v -93.9393 -26.7527 -21.4408 +v -90.948 -26.7527 -31.8238 +v -86.813 -26.7527 -41.8066 +v -81.5863 -26.7527 -51.2637 +v -75.3336 -26.7527 -60.0762 +v -68.1335 -26.7527 -68.1331 +v -60.0766 -26.7527 -75.3332 +v -51.2642 -26.7527 -81.586 +v -41.8072 -26.7527 -86.8127 +v -31.8244 -26.7527 -90.9478 +v -21.4413 -26.7527 -93.9391 +v -10.7887 -26.7527 -95.7491 +v -0.000366416 -26.7527 -96.355 +v 10.788 -26.7527 -95.7492 +v 21.4407 -26.7527 -93.9393 +v 31.8237 -26.7527 -90.948 +v 41.8065 -26.7527 -86.8131 +v 51.2636 -26.7527 -81.5863 +v 60.076 -26.7527 -75.3337 +v 68.133 -26.7527 -68.1336 +v 75.3331 -26.7527 -60.0767 +v 81.5859 -26.7527 -51.2643 +v 86.8127 -26.7527 -41.8073 +v 90.9478 -26.7527 -31.8245 +v 93.9391 -26.7527 -21.4415 +v 95.7491 -26.7527 -10.7888 +v 92.8977 -37.0137 5.88009e-39 +v 92.3136 -37.0137 10.4012 +v 90.5686 -37.0137 20.6717 +v 87.6846 -37.0137 30.6821 +v 83.698 -37.0137 40.3068 +v 78.6588 -37.0137 49.4245 +v 72.6304 -37.0137 57.9207 +v 65.6887 -37.0137 65.6886 +v 57.9208 -37.0137 72.6303 +v 49.4246 -37.0137 78.6587 +v 40.3069 -37.0137 83.6979 +v 30.6823 -37.0137 87.6846 +v 20.6718 -37.0137 90.5686 +v 10.4014 -37.0137 92.3136 +v 0.000117756 -37.0137 92.8977 +v -10.4011 -37.0137 92.3136 +v -20.6716 -37.0137 90.5686 +v -30.682 -37.0137 87.6847 +v -40.3067 -37.0137 83.698 +v -49.4244 -37.0137 78.6588 +v -57.9207 -37.0137 72.6305 +v -65.6885 -37.0137 65.6887 +v -72.6303 -37.0137 57.9209 +v -78.6587 -37.0137 49.4247 +v -83.6979 -37.0137 40.307 +v -87.6845 -37.0137 30.6824 +v -90.5685 -37.0137 20.6719 +v -92.3136 -37.0137 10.4015 +v -92.8977 -37.0137 0.000235513 +v -92.3136 -37.0137 -10.401 +v -90.5686 -37.0137 -20.6714 +v -87.6847 -37.0137 -30.6819 +v -83.6981 -37.0137 -40.3066 +v -78.6589 -37.0137 -49.4243 +v -72.6305 -37.0137 -57.9206 +v -65.6888 -37.0137 -65.6884 +v -57.921 -37.0137 -72.6302 +v -49.4248 -37.0137 -78.6586 +v -40.3071 -37.0137 -83.6978 +v -30.6825 -37.0137 -87.6845 +v -20.672 -37.0137 -90.5685 +v -10.4016 -37.0137 -92.3136 +v -0.000353269 -37.0137 -92.8977 +v 10.4009 -37.0137 -92.3136 +v 20.6714 -37.0137 -90.5687 +v 30.6818 -37.0137 -87.6847 +v 40.3065 -37.0137 -83.6981 +v 49.4243 -37.0137 -78.659 +v 57.9205 -37.0137 -72.6306 +v 65.6883 -37.0137 -65.6889 +v 72.6301 -37.0137 -57.9211 +v 78.6585 -37.0137 -49.4249 +v 83.6978 -37.0137 -40.3072 +v 87.6845 -37.0137 -30.6826 +v 90.5685 -37.0137 -20.6721 +v 92.3136 -37.0137 -10.4017 +v 88.3513 -46.8407 5.88009e-39 +v 87.7957 -46.8407 9.8922 +v 86.1361 -46.8407 19.66 +v 83.3933 -46.8407 29.1806 +v 79.6018 -46.8407 38.3342 +v 74.8092 -46.8407 47.0057 +v 69.0758 -46.8407 55.0861 +v 62.4738 -46.8407 62.4737 +v 55.0862 -46.8407 69.0758 +v 47.0058 -46.8407 74.8091 +v 38.3342 -46.8407 79.6017 +v 29.1807 -46.8407 83.3933 +v 19.6601 -46.8407 86.1361 +v 9.89231 -46.8407 87.7957 +v 0.000111993 -46.8407 88.3513 +v -9.89209 -46.8407 87.7958 +v -19.6599 -46.8407 86.1361 +v -29.1805 -46.8407 83.3933 +v -38.3341 -46.8407 79.6018 +v -47.0056 -46.8407 74.8092 +v -55.086 -46.8407 69.0759 +v -62.4737 -46.8407 62.4739 +v -69.0757 -46.8407 55.0862 +v -74.8091 -46.8407 47.0059 +v -79.6017 -46.8407 38.3344 +v -83.3932 -46.8407 29.1808 +v -86.1361 -46.8407 19.6602 +v -87.7957 -46.8407 9.89241 +v -88.3513 -46.8407 0.000223987 +v -87.7958 -46.8407 -9.89198 +v -86.1362 -46.8407 -19.6598 +v -83.3934 -46.8407 -29.1804 +v -79.6019 -46.8407 -38.334 +v -74.8093 -46.8407 -47.0055 +v -69.076 -46.8407 -55.0859 +v -62.474 -46.8407 -62.4736 +v -55.0863 -46.8407 -69.0756 +v -47.0059 -46.8407 -74.809 +v -38.3345 -46.8407 -79.6016 +v -29.1809 -46.8407 -83.3932 +v -19.6603 -46.8407 -86.1361 +v -9.89254 -46.8407 -87.7957 +v -0.00033598 -46.8407 -88.3513 +v 9.89187 -46.8407 -87.7958 +v 19.6597 -46.8407 -86.1362 +v 29.1802 -46.8407 -83.3934 +v 38.3339 -46.8407 -79.6019 +v 47.0054 -46.8407 -74.8093 +v 55.0858 -46.8407 -69.076 +v 62.4735 -46.8407 -62.4741 +v 69.0756 -46.8407 -55.0864 +v 74.809 -46.8407 -47.006 +v 79.6016 -46.8407 -38.3346 +v 83.3932 -46.8407 -29.181 +v 86.136 -46.8407 -19.6604 +v 87.7957 -46.8407 -9.89261 +v 82.769 -56.1186 5.88009e-39 +v 82.2486 -56.1186 9.26718 +v 80.6938 -56.1186 18.4178 +v 78.1243 -56.1186 27.3368 +v 74.5723 -56.1186 35.9121 +v 70.0825 -56.1186 44.0357 +v 64.7114 -56.1186 51.6056 +v 58.5266 -56.1186 58.5265 +v 51.6057 -56.1186 64.7114 +v 44.0358 -56.1186 70.0825 +v 35.9122 -56.1186 74.5723 +v 27.3369 -56.1186 78.1242 +v 18.4179 -56.1186 80.6938 +v 9.26728 -56.1186 82.2485 +v 0.000104917 -56.1186 82.769 +v -9.26708 -56.1186 82.2486 +v -18.4177 -56.1186 80.6938 +v -27.3367 -56.1186 78.1243 +v -35.912 -56.1186 74.5723 +v -44.0356 -56.1186 70.0826 +v -51.6055 -56.1186 64.7115 +v -58.5264 -56.1186 58.5266 +v -64.7113 -56.1186 51.6057 +v -70.0824 -56.1186 44.0359 +v -74.5722 -56.1186 35.9123 +v -78.1242 -56.1186 27.337 +v -80.6938 -56.1186 18.418 +v -82.2485 -56.1186 9.26738 +v -82.769 -56.1186 0.000209834 +v -82.2486 -56.1186 -9.26698 +v -80.6938 -56.1186 -18.4176 +v -78.1243 -56.1186 -27.3367 +v -74.5724 -56.1186 -35.9119 +v -70.0826 -56.1186 -44.0355 +v -64.7116 -56.1186 -51.6054 +v -58.5267 -56.1186 -58.5263 +v -51.6058 -56.1186 -64.7112 +v -44.036 -56.1186 -70.0824 +v -35.9124 -56.1186 -74.5722 +v -27.3371 -56.1186 -78.1242 +v -18.4181 -56.1186 -80.6937 +v -9.2675 -56.1186 -82.2485 +v -0.000314752 -56.1186 -82.769 +v 9.26688 -56.1186 -82.2486 +v 18.4175 -56.1186 -80.6939 +v 27.3365 -56.1186 -78.1244 +v 35.9118 -56.1186 -74.5724 +v 44.0355 -56.1186 -70.0827 +v 51.6053 -56.1186 -64.7116 +v 58.5263 -56.1186 -58.5268 +v 64.7112 -56.1186 -51.6059 +v 70.0823 -56.1186 -44.0361 +v 74.5721 -56.1186 -35.9125 +v 78.1241 -56.1186 -27.3372 +v 80.6937 -56.1186 -18.4182 +v 82.2485 -56.1186 -9.26757 +v 76.2163 -64.7385 5.88009e-39 +v 75.7371 -64.7385 8.53351 +v 74.3054 -64.7385 16.9597 +v 71.9393 -64.7385 25.1726 +v 68.6685 -64.7385 33.069 +v 64.5342 -64.7385 40.5495 +v 59.5883 -64.7385 47.5201 +v 53.8931 -64.7385 53.893 +v 47.5201 -64.7385 59.5883 +v 40.5496 -64.7385 64.5342 +v 33.0691 -64.7385 68.6685 +v 25.1727 -64.7385 71.9393 +v 16.9598 -64.7385 74.3054 +v 8.53361 -64.7385 75.7371 +v 9.66111e-05 -64.7385 76.2163 +v -8.53342 -64.7385 75.7371 +v -16.9596 -64.7385 74.3054 +v -25.1725 -64.7385 71.9394 +v -33.0689 -64.7385 68.6686 +v -40.5494 -64.7385 64.5343 +v -47.52 -64.7385 59.5884 +v -53.893 -64.7385 53.8932 +v -59.5882 -64.7385 47.5202 +v -64.5341 -64.7385 40.5497 +v -68.6685 -64.7385 33.0692 +v -71.9393 -64.7385 25.1728 +v -74.3054 -64.7385 16.9599 +v -75.7371 -64.7385 8.5337 +v -76.2163 -64.7385 0.000193222 +v -75.7371 -64.7385 -8.53333 +v -74.3055 -64.7385 -16.9595 +v -71.9394 -64.7385 -25.1725 +v -68.6686 -64.7385 -33.0688 +v -64.5343 -64.7385 -40.5493 +v -59.5885 -64.7385 -47.5199 +v -53.8932 -64.7385 -53.8929 +v -47.5203 -64.7385 -59.5882 +v -40.5497 -64.7385 -64.5341 +v -33.0693 -64.7385 -68.6684 +v -25.1729 -64.7385 -71.9392 +v -16.96 -64.7385 -74.3054 +v -8.53381 -64.7385 -75.7371 +v -0.000289833 -64.7385 -76.2163 +v 8.53324 -64.7385 -75.7371 +v 16.9595 -64.7385 -74.3055 +v 25.1724 -64.7385 -71.9394 +v 33.0687 -64.7385 -68.6687 +v 40.5493 -64.7385 -64.5344 +v 47.5198 -64.7385 -59.5885 +v 53.8928 -64.7385 -53.8933 +v 59.5881 -64.7385 -47.5204 +v 64.534 -64.7385 -40.5498 +v 68.6684 -64.7385 -33.0694 +v 71.9392 -64.7385 -25.173 +v 74.3053 -64.7385 -16.9601 +v 75.7371 -64.7385 -8.53387 +v 68.7701 -72.5994 5.88009e-39 +v 68.3377 -72.5994 7.6998 +v 67.0459 -72.5994 15.3028 +v 64.9109 -72.5994 22.7133 +v 61.9597 -72.5994 29.8382 +v 58.2293 -72.5994 36.5879 +v 53.7666 -72.5994 42.8774 +v 48.6278 -72.5994 48.6278 +v 42.8775 -72.5994 53.7666 +v 36.5879 -72.5994 58.2293 +v 29.8383 -72.5994 61.9597 +v 22.7134 -72.5994 64.9109 +v 15.3029 -72.5994 67.0459 +v 7.69989 -72.5994 68.3377 +v 8.71723e-05 -72.5994 68.7701 +v -7.69972 -72.5994 68.3377 +v -15.3027 -72.5994 67.0459 +v -22.7132 -72.5994 64.911 +v -29.8381 -72.5994 61.9598 +v -36.5878 -72.5994 58.2294 +v -42.8774 -72.5994 53.7667 +v -48.6277 -72.5994 48.6279 +v -53.7665 -72.5994 42.8775 +v -58.2292 -72.5994 36.588 +v -61.9596 -72.5994 29.8384 +v -64.9109 -72.5994 22.7135 +v -67.0458 -72.5994 15.3029 +v -68.3377 -72.5994 7.69997 +v -68.7701 -72.5994 0.000174345 +v -68.3377 -72.5994 -7.69964 +v -67.0459 -72.5994 -15.3026 +v -64.911 -72.5994 -22.7132 +v -61.9598 -72.5994 -29.838 +v -58.2294 -72.5994 -36.5877 +v -53.7667 -72.5994 -42.8773 +v -48.6279 -72.5994 -48.6276 +v -42.8776 -72.5994 -53.7665 +v -36.5881 -72.5994 -58.2292 +v -29.8384 -72.5994 -61.9596 +v -22.7135 -72.5994 -64.9109 +v -15.303 -72.5994 -67.0458 +v -7.70007 -72.5994 -68.3376 +v -0.000261517 -72.5994 -68.7701 +v 7.69955 -72.5994 -68.3377 +v 15.3025 -72.5994 -67.0459 +v 22.7131 -72.5994 -64.911 +v 29.838 -72.5994 -61.9598 +v 36.5877 -72.5994 -58.2294 +v 42.8772 -72.5994 -53.7668 +v 48.6276 -72.5994 -48.628 +v 53.7664 -72.5994 -42.8777 +v 58.2291 -72.5994 -36.5881 +v 61.9596 -72.5994 -29.8385 +v 64.9108 -72.5994 -22.7136 +v 67.0458 -72.5994 -15.3031 +v 68.3376 -72.5994 -7.70012 +v 60.5176 -79.6092 5.88009e-39 +v 60.1371 -79.6092 6.77581 +v 59.0003 -79.6092 13.4664 +v 57.1215 -79.6092 19.9877 +v 54.5245 -79.6092 26.2576 +v 51.2417 -79.6092 32.1973 +v 47.3146 -79.6092 37.7321 +v 42.7924 -79.6092 42.7924 +v 37.7321 -79.6092 47.3145 +v 32.1973 -79.6092 51.2417 +v 26.2576 -79.6092 54.5244 +v 19.9877 -79.6092 57.1215 +v 13.4665 -79.6092 59.0003 +v 6.77589 -79.6092 60.137 +v 7.67115e-05 -79.6092 60.5176 +v -6.77574 -79.6092 60.1371 +v -13.4663 -79.6092 59.0003 +v -19.9876 -79.6092 57.1216 +v -26.2575 -79.6092 54.5245 +v -32.1972 -79.6092 51.2418 +v -37.732 -79.6092 47.3146 +v -42.7923 -79.6092 42.7925 +v -47.3145 -79.6092 37.7322 +v -51.2416 -79.6092 32.1974 +v -54.5244 -79.6092 26.2577 +v -57.1215 -79.6092 19.9878 +v -59.0002 -79.6092 13.4666 +v -60.137 -79.6092 6.77596 +v -60.5176 -79.6092 0.000153423 +v -60.1371 -79.6092 -6.77567 +v -59.0003 -79.6092 -13.4663 +v -57.1216 -79.6092 -19.9875 +v -54.5245 -79.6092 -26.2574 +v -51.2418 -79.6092 -32.1971 +v -47.3147 -79.6092 -37.732 +v -42.7925 -79.6092 -42.7923 +v -37.7322 -79.6092 -47.3144 +v -32.1974 -79.6092 -51.2416 +v -26.2578 -79.6092 -54.5244 +v -19.9879 -79.6092 -57.1215 +v -13.4666 -79.6092 -59.0002 +v -6.77605 -79.6092 -60.137 +v -0.000230135 -79.6092 -60.5176 +v 6.77559 -79.6092 -60.1371 +v 13.4662 -79.6092 -59.0003 +v 19.9875 -79.6092 -57.1216 +v 26.2574 -79.6092 -54.5246 +v 32.1971 -79.6092 -51.2418 +v 37.7319 -79.6092 -47.3147 +v 42.7922 -79.6092 -42.7926 +v 47.3144 -79.6092 -37.7323 +v 51.2416 -79.6092 -32.1975 +v 54.5243 -79.6092 -26.2579 +v 57.1214 -79.6092 -19.988 +v 59.0002 -79.6092 -13.4667 +v 60.137 -79.6092 -6.7761 +v 51.5556 -85.6856 5.88009e-39 +v 51.2314 -85.6856 5.77239 +v 50.263 -85.6856 11.4722 +v 48.6624 -85.6856 17.0277 +v 46.45 -85.6856 22.3691 +v 43.6534 -85.6856 27.4292 +v 40.3078 -85.6856 32.1443 +v 36.4553 -85.6856 36.4553 +v 32.1444 -85.6856 40.3077 +v 27.4292 -85.6856 43.6533 +v 22.3692 -85.6856 46.4499 +v 17.0278 -85.6856 48.6624 +v 11.4722 -85.6856 50.2629 +v 5.77245 -85.6856 51.2314 +v 6.53513e-05 -85.6856 51.5556 +v -5.77232 -85.6856 51.2314 +v -11.4721 -85.6856 50.263 +v -17.0276 -85.6856 48.6625 +v -22.369 -85.6856 46.45 +v -27.4291 -85.6856 43.6534 +v -32.1443 -85.6856 40.3078 +v -36.4552 -85.6856 36.4554 +v -40.3077 -85.6856 32.1444 +v -43.6533 -85.6856 27.4293 +v -46.4499 -85.6856 22.3692 +v -48.6624 -85.6856 17.0278 +v -50.2629 -85.6856 11.4723 +v -51.2314 -85.6856 5.77251 +v -51.5556 -85.6856 0.000130703 +v -51.2314 -85.6856 -5.77226 +v -50.263 -85.6856 -11.4721 +v -48.6625 -85.6856 -17.0276 +v -46.45 -85.6856 -22.369 +v -43.6534 -85.6856 -27.4291 +v -40.3079 -85.6856 -32.1442 +v -36.4554 -85.6856 -36.4552 +v -32.1445 -85.6856 -40.3077 +v -27.4293 -85.6856 -43.6533 +v -22.3693 -85.6856 -46.4499 +v -17.0279 -85.6856 -48.6624 +v -11.4724 -85.6856 -50.2629 +v -5.77259 -85.6856 -51.2314 +v -0.000196054 -85.6856 -51.5556 +v 5.7722 -85.6856 -51.2314 +v 11.472 -85.6856 -50.263 +v 17.0275 -85.6856 -48.6625 +v 22.3689 -85.6856 -46.45 +v 27.429 -85.6856 -43.6535 +v 32.1442 -85.6856 -40.3079 +v 36.4551 -85.6856 -36.4554 +v 40.3076 -85.6856 -32.1445 +v 43.6532 -85.6856 -27.4294 +v 46.4498 -85.6856 -22.3693 +v 48.6623 -85.6856 -17.028 +v 50.2629 -85.6856 -11.4724 +v 51.2314 -85.6856 -5.77263 +v 41.9891 -90.7575 5.88009e-39 +v 41.7251 -90.7575 4.70128 +v 40.9363 -90.7575 9.34345 +v 39.6328 -90.7575 13.8681 +v 37.8309 -90.7575 18.2184 +v 35.5532 -90.7575 22.3395 +v 32.8284 -90.7575 26.1798 +v 29.6908 -90.7575 29.6908 +v 26.1798 -90.7575 32.8284 +v 22.3396 -90.7575 35.5532 +v 18.2184 -90.7575 37.8309 +v 13.8682 -90.7575 39.6328 +v 9.3435 -90.7575 40.9363 +v 4.70134 -90.7575 41.7251 +v 5.3225e-05 -90.7575 41.9891 +v -4.70123 -90.7575 41.7251 +v -9.3434 -90.7575 40.9364 +v -13.8681 -90.7575 39.6328 +v -18.2183 -90.7575 37.8309 +v -22.3395 -90.7575 35.5532 +v -26.1797 -90.7575 32.8284 +v -29.6907 -90.7575 29.6908 +v -32.8284 -90.7575 26.1798 +v -35.5531 -90.7575 22.3396 +v -37.8308 -90.7575 18.2185 +v -39.6328 -90.7575 13.8682 +v -40.9363 -90.7575 9.34355 +v -41.7251 -90.7575 4.70139 +v -41.9891 -90.7575 0.00010645 +v -41.7251 -90.7575 -4.70118 +v -40.9364 -90.7575 -9.34334 +v -39.6328 -90.7575 -13.868 +v -37.8309 -90.7575 -18.2183 +v -35.5533 -90.7575 -22.3394 +v -32.8285 -90.7575 -26.1797 +v -29.6909 -90.7575 -29.6907 +v -26.1799 -90.7575 -32.8283 +v -22.3397 -90.7575 -35.5531 +v -18.2185 -90.7575 -37.8308 +v -13.8683 -90.7575 -39.6328 +v -9.34359 -90.7575 -40.9363 +v -4.70145 -90.7575 -41.7251 +v -0.000159675 -90.7575 -41.9891 +v 4.70113 -90.7575 -41.7251 +v 9.3433 -90.7575 -40.9364 +v 13.868 -90.7575 -39.6329 +v 18.2182 -90.7575 -37.8309 +v 22.3394 -90.7575 -35.5533 +v 26.1796 -90.7575 -32.8285 +v 29.6906 -90.7575 -29.6909 +v 32.8283 -90.7575 -26.1799 +v 35.5531 -90.7575 -22.3397 +v 37.8308 -90.7575 -18.2186 +v 39.6327 -90.7575 -13.8683 +v 40.9363 -90.7575 -9.34365 +v 41.7251 -90.7575 -4.70148 +v 31.9304 -94.7653 5.88009e-39 +v 31.7296 -94.7653 3.57506 +v 31.1298 -94.7653 7.10517 +v 30.1385 -94.7653 10.5459 +v 28.7683 -94.7653 13.8541 +v 27.0362 -94.7653 16.988 +v 24.9642 -94.7653 19.9082 +v 22.5782 -94.7653 22.5782 +v 19.9083 -94.7653 24.9641 +v 16.988 -94.7653 27.0362 +v 13.8541 -94.7653 28.7682 +v 10.546 -94.7653 30.1385 +v 7.10521 -94.7653 31.1298 +v 3.5751 -94.7653 31.7296 +v 4.04746e-05 -94.7653 31.9304 +v -3.57502 -94.7653 31.7296 +v -7.10513 -94.7653 31.1298 +v -10.5459 -94.7653 30.1385 +v -13.854 -94.7653 28.7683 +v -16.9879 -94.7653 27.0362 +v -19.9082 -94.7653 24.9642 +v -22.5781 -94.7653 22.5782 +v -24.9641 -94.7653 19.9083 +v -27.0362 -94.7653 16.988 +v -28.7682 -94.7653 13.8541 +v -30.1385 -94.7653 10.546 +v -31.1298 -94.7653 7.10525 +v -31.7296 -94.7653 3.57514 +v -31.9304 -94.7653 8.09492e-05 +v -31.7296 -94.7653 -3.57499 +v -31.1298 -94.7653 -7.10509 +v -30.1386 -94.7653 -10.5458 +v -28.7683 -94.7653 -13.854 +v -27.0363 -94.7653 -16.9879 +v -24.9642 -94.7653 -19.9082 +v -22.5782 -94.7653 -22.5781 +v -19.9083 -94.7653 -24.9641 +v -16.9881 -94.7653 -27.0362 +v -13.8542 -94.7653 -28.7682 +v -10.546 -94.7653 -30.1385 +v -7.10528 -94.7653 -31.1298 +v -3.57519 -94.7653 -31.7296 +v -0.000121424 -94.7653 -31.9304 +v 3.57495 -94.7653 -31.7296 +v 7.10506 -94.7653 -31.1298 +v 10.5458 -94.7653 -30.1386 +v 13.8539 -94.7653 -28.7683 +v 16.9879 -94.7653 -27.0363 +v 19.9081 -94.7653 -24.9642 +v 22.5781 -94.7653 -22.5783 +v 24.9641 -94.7653 -19.9084 +v 27.0361 -94.7653 -16.9881 +v 28.7682 -94.7653 -13.8542 +v 30.1385 -94.7653 -10.5461 +v 31.1298 -94.7653 -7.10532 +v 31.7296 -94.7653 -3.57521 +v 21.4973 -97.662 5.88009e-39 +v 21.3621 -97.662 2.40693 +v 20.9583 -97.662 4.78359 +v 20.2909 -97.662 7.10009 +v 19.3684 -97.662 9.3273 +v 18.2023 -97.662 11.4372 +v 16.8072 -97.662 13.4033 +v 15.2009 -97.662 15.2008 +v 13.4033 -97.662 16.8072 +v 11.4372 -97.662 18.2022 +v 9.32733 -97.662 19.3684 +v 7.10011 -97.662 20.2909 +v 4.78361 -97.662 20.9583 +v 2.40695 -97.662 21.3621 +v 2.72497e-05 -97.662 21.4973 +v -2.4069 -97.662 21.3621 +v -4.78356 -97.662 20.9583 +v -7.10006 -97.662 20.2909 +v -9.32728 -97.662 19.3684 +v -11.4372 -97.662 18.2023 +v -13.4033 -97.662 16.8073 +v -15.2008 -97.662 15.2009 +v -16.8072 -97.662 13.4034 +v -18.2022 -97.662 11.4373 +v -19.3683 -97.662 9.32735 +v -20.2909 -97.662 7.10014 +v -20.9583 -97.662 4.78364 +v -21.3621 -97.662 2.40698 +v -21.4973 -97.662 5.44995e-05 +v -21.3621 -97.662 -2.40688 +v -20.9583 -97.662 -4.78353 +v -20.2909 -97.662 -7.10004 +v -19.3684 -97.662 -9.32726 +v -18.2023 -97.662 -11.4372 +v -16.8073 -97.662 -13.4033 +v -15.2009 -97.662 -15.2008 +v -13.4034 -97.662 -16.8072 +v -11.4373 -97.662 -18.2022 +v -9.32738 -97.662 -19.3683 +v -7.10016 -97.662 -20.2909 +v -4.78366 -97.662 -20.9583 +v -2.40701 -97.662 -21.3621 +v -8.17492e-05 -97.662 -21.4973 +v 2.40685 -97.662 -21.3621 +v 4.78351 -97.662 -20.9583 +v 7.10001 -97.662 -20.2909 +v 9.32723 -97.662 -19.3684 +v 11.4372 -97.662 -18.2023 +v 13.4032 -97.662 -16.8073 +v 15.2008 -97.662 -15.2009 +v 16.8072 -97.662 -13.4034 +v 18.2022 -97.662 -11.4373 +v 19.3683 -97.662 -9.3274 +v 20.2909 -97.662 -7.10019 +v 20.9583 -97.662 -4.78369 +v 21.3621 -97.662 -2.40703 +v 10.8121 -99.4138 5.88009e-39 +v 10.7442 -99.4138 1.21058 +v 10.5411 -99.4138 2.40593 +v 10.2054 -99.4138 3.57102 +v 9.74141 -99.4138 4.69121 +v 9.15491 -99.4138 5.75241 +v 8.45328 -99.4138 6.74126 +v 7.64535 -99.4138 7.64534 +v 6.74127 -99.4138 8.45327 +v 5.75242 -99.4138 9.1549 +v 4.69122 -99.4138 9.7414 +v 3.57104 -99.4138 10.2054 +v 2.40594 -99.4138 10.5411 +v 1.21059 -99.4138 10.7442 +v 1.37054e-05 -99.4138 10.8121 +v -1.21056 -99.4138 10.7442 +v -2.40591 -99.4138 10.5411 +v -3.57101 -99.4138 10.2054 +v -4.6912 -99.4138 9.74142 +v -5.75239 -99.4138 9.15492 +v -6.74125 -99.4138 8.45329 +v -7.64533 -99.4138 7.64536 +v -8.45327 -99.4138 6.74128 +v -9.1549 -99.4138 5.75243 +v -9.7414 -99.4138 4.69124 +v -10.2054 -99.4138 3.57105 +v -10.5411 -99.4138 2.40595 +v -10.7442 -99.4138 1.2106 +v -10.8121 -99.4138 2.74108e-05 +v -10.7442 -99.4138 -1.21055 +v -10.5411 -99.4138 -2.4059 +v -10.2054 -99.4138 -3.571 +v -9.74142 -99.4138 -4.69119 +v -9.15492 -99.4138 -5.75238 +v -8.4533 -99.4138 -6.74124 +v -7.64537 -99.4138 -7.64532 +v -6.74129 -99.4138 -8.45326 +v -5.75244 -99.4138 -9.15489 +v -4.69125 -99.4138 -9.74139 +v -3.57106 -99.4138 -10.2054 +v -2.40597 -99.4138 -10.5411 +v -1.21062 -99.4138 -10.7442 +v -4.11161e-05 -99.4138 -10.8121 +v 1.21054 -99.4138 -10.7442 +v 2.40589 -99.4138 -10.5411 +v 3.57098 -99.4138 -10.2054 +v 4.69118 -99.4138 -9.74143 +v 5.75237 -99.4138 -9.15493 +v 6.74123 -99.4138 -8.45331 +v 7.64531 -99.4138 -7.64538 +v 8.45325 -99.4138 -6.7413 +v 9.15488 -99.4138 -5.75245 +v 9.74139 -99.4138 -4.69126 +v 10.2054 -99.4138 -3.57107 +v 10.5411 -99.4138 -2.40598 +v 10.7442 -99.4138 -1.21063 +f 3 4 60 59 +f 4 5 61 60 +f 5 6 62 61 +f 6 7 63 62 +f 7 8 64 63 +f 8 9 65 64 +f 9 10 66 65 +f 10 11 67 66 +f 11 12 68 67 +f 12 13 69 68 +f 13 14 70 69 +f 14 15 71 70 +f 15 16 72 71 +f 16 17 73 72 +f 17 18 74 73 +f 18 19 75 74 +f 19 20 76 75 +f 20 21 77 76 +f 21 22 78 77 +f 22 23 79 78 +f 23 24 80 79 +f 24 25 81 80 +f 25 26 82 81 +f 26 27 83 82 +f 27 28 84 83 +f 28 29 85 84 +f 29 30 86 85 +f 30 31 87 86 +f 31 32 88 87 +f 32 33 89 88 +f 33 34 90 89 +f 34 35 91 90 +f 35 36 92 91 +f 36 37 93 92 +f 37 38 94 93 +f 38 39 95 94 +f 39 40 96 95 +f 40 41 97 96 +f 41 42 98 97 +f 42 43 99 98 +f 43 44 100 99 +f 44 45 101 100 +f 45 46 102 101 +f 46 47 103 102 +f 47 48 104 103 +f 48 49 105 104 +f 49 50 106 105 +f 50 51 107 106 +f 51 52 108 107 +f 52 53 109 108 +f 53 54 110 109 +f 54 55 111 110 +f 55 56 112 111 +f 56 57 113 112 +f 57 58 114 113 +f 58 3 59 114 +f 59 60 116 115 +f 60 61 117 116 +f 61 62 118 117 +f 62 63 119 118 +f 63 64 120 119 +f 64 65 121 120 +f 65 66 122 121 +f 66 67 123 122 +f 67 68 124 123 +f 68 69 125 124 +f 69 70 126 125 +f 70 71 127 126 +f 71 72 128 127 +f 72 73 129 128 +f 73 74 130 129 +f 74 75 131 130 +f 75 76 132 131 +f 76 77 133 132 +f 77 78 134 133 +f 78 79 135 134 +f 79 80 136 135 +f 80 81 137 136 +f 81 82 138 137 +f 82 83 139 138 +f 83 84 140 139 +f 84 85 141 140 +f 85 86 142 141 +f 86 87 143 142 +f 87 88 144 143 +f 88 89 145 144 +f 89 90 146 145 +f 90 91 147 146 +f 91 92 148 147 +f 92 93 149 148 +f 93 94 150 149 +f 94 95 151 150 +f 95 96 152 151 +f 96 97 153 152 +f 97 98 154 153 +f 98 99 155 154 +f 99 100 156 155 +f 100 101 157 156 +f 101 102 158 157 +f 102 103 159 158 +f 103 104 160 159 +f 104 105 161 160 +f 105 106 162 161 +f 106 107 163 162 +f 107 108 164 163 +f 108 109 165 164 +f 109 110 166 165 +f 110 111 167 166 +f 111 112 168 167 +f 112 113 169 168 +f 113 114 170 169 +f 114 59 115 170 +f 115 116 172 171 +f 116 117 173 172 +f 117 118 174 173 +f 118 119 175 174 +f 119 120 176 175 +f 120 121 177 176 +f 121 122 178 177 +f 122 123 179 178 +f 123 124 180 179 +f 124 125 181 180 +f 125 126 182 181 +f 126 127 183 182 +f 127 128 184 183 +f 128 129 185 184 +f 129 130 186 185 +f 130 131 187 186 +f 131 132 188 187 +f 132 133 189 188 +f 133 134 190 189 +f 134 135 191 190 +f 135 136 192 191 +f 136 137 193 192 +f 137 138 194 193 +f 138 139 195 194 +f 139 140 196 195 +f 140 141 197 196 +f 141 142 198 197 +f 142 143 199 198 +f 143 144 200 199 +f 144 145 201 200 +f 145 146 202 201 +f 146 147 203 202 +f 147 148 204 203 +f 148 149 205 204 +f 149 150 206 205 +f 150 151 207 206 +f 151 152 208 207 +f 152 153 209 208 +f 153 154 210 209 +f 154 155 211 210 +f 155 156 212 211 +f 156 157 213 212 +f 157 158 214 213 +f 158 159 215 214 +f 159 160 216 215 +f 160 161 217 216 +f 161 162 218 217 +f 162 163 219 218 +f 163 164 220 219 +f 164 165 221 220 +f 165 166 222 221 +f 166 167 223 222 +f 167 168 224 223 +f 168 169 225 224 +f 169 170 226 225 +f 170 115 171 226 +f 171 172 228 227 +f 172 173 229 228 +f 173 174 230 229 +f 174 175 231 230 +f 175 176 232 231 +f 176 177 233 232 +f 177 178 234 233 +f 178 179 235 234 +f 179 180 236 235 +f 180 181 237 236 +f 181 182 238 237 +f 182 183 239 238 +f 183 184 240 239 +f 184 185 241 240 +f 185 186 242 241 +f 186 187 243 242 +f 187 188 244 243 +f 188 189 245 244 +f 189 190 246 245 +f 190 191 247 246 +f 191 192 248 247 +f 192 193 249 248 +f 193 194 250 249 +f 194 195 251 250 +f 195 196 252 251 +f 196 197 253 252 +f 197 198 254 253 +f 198 199 255 254 +f 199 200 256 255 +f 200 201 257 256 +f 201 202 258 257 +f 202 203 259 258 +f 203 204 260 259 +f 204 205 261 260 +f 205 206 262 261 +f 206 207 263 262 +f 207 208 264 263 +f 208 209 265 264 +f 209 210 266 265 +f 210 211 267 266 +f 211 212 268 267 +f 212 213 269 268 +f 213 214 270 269 +f 214 215 271 270 +f 215 216 272 271 +f 216 217 273 272 +f 217 218 274 273 +f 218 219 275 274 +f 219 220 276 275 +f 220 221 277 276 +f 221 222 278 277 +f 222 223 279 278 +f 223 224 280 279 +f 224 225 281 280 +f 225 226 282 281 +f 226 171 227 282 +f 227 228 284 283 +f 228 229 285 284 +f 229 230 286 285 +f 230 231 287 286 +f 231 232 288 287 +f 232 233 289 288 +f 233 234 290 289 +f 234 235 291 290 +f 235 236 292 291 +f 236 237 293 292 +f 237 238 294 293 +f 238 239 295 294 +f 239 240 296 295 +f 240 241 297 296 +f 241 242 298 297 +f 242 243 299 298 +f 243 244 300 299 +f 244 245 301 300 +f 245 246 302 301 +f 246 247 303 302 +f 247 248 304 303 +f 248 249 305 304 +f 249 250 306 305 +f 250 251 307 306 +f 251 252 308 307 +f 252 253 309 308 +f 253 254 310 309 +f 254 255 311 310 +f 255 256 312 311 +f 256 257 313 312 +f 257 258 314 313 +f 258 259 315 314 +f 259 260 316 315 +f 260 261 317 316 +f 261 262 318 317 +f 262 263 319 318 +f 263 264 320 319 +f 264 265 321 320 +f 265 266 322 321 +f 266 267 323 322 +f 267 268 324 323 +f 268 269 325 324 +f 269 270 326 325 +f 270 271 327 326 +f 271 272 328 327 +f 272 273 329 328 +f 273 274 330 329 +f 274 275 331 330 +f 275 276 332 331 +f 276 277 333 332 +f 277 278 334 333 +f 278 279 335 334 +f 279 280 336 335 +f 280 281 337 336 +f 281 282 338 337 +f 282 227 283 338 +f 283 284 340 339 +f 284 285 341 340 +f 285 286 342 341 +f 286 287 343 342 +f 287 288 344 343 +f 288 289 345 344 +f 289 290 346 345 +f 290 291 347 346 +f 291 292 348 347 +f 292 293 349 348 +f 293 294 350 349 +f 294 295 351 350 +f 295 296 352 351 +f 296 297 353 352 +f 297 298 354 353 +f 298 299 355 354 +f 299 300 356 355 +f 300 301 357 356 +f 301 302 358 357 +f 302 303 359 358 +f 303 304 360 359 +f 304 305 361 360 +f 305 306 362 361 +f 306 307 363 362 +f 307 308 364 363 +f 308 309 365 364 +f 309 310 366 365 +f 310 311 367 366 +f 311 312 368 367 +f 312 313 369 368 +f 313 314 370 369 +f 314 315 371 370 +f 315 316 372 371 +f 316 317 373 372 +f 317 318 374 373 +f 318 319 375 374 +f 319 320 376 375 +f 320 321 377 376 +f 321 322 378 377 +f 322 323 379 378 +f 323 324 380 379 +f 324 325 381 380 +f 325 326 382 381 +f 326 327 383 382 +f 327 328 384 383 +f 328 329 385 384 +f 329 330 386 385 +f 330 331 387 386 +f 331 332 388 387 +f 332 333 389 388 +f 333 334 390 389 +f 334 335 391 390 +f 335 336 392 391 +f 336 337 393 392 +f 337 338 394 393 +f 338 283 339 394 +f 339 340 396 395 +f 340 341 397 396 +f 341 342 398 397 +f 342 343 399 398 +f 343 344 400 399 +f 344 345 401 400 +f 345 346 402 401 +f 346 347 403 402 +f 347 348 404 403 +f 348 349 405 404 +f 349 350 406 405 +f 350 351 407 406 +f 351 352 408 407 +f 352 353 409 408 +f 353 354 410 409 +f 354 355 411 410 +f 355 356 412 411 +f 356 357 413 412 +f 357 358 414 413 +f 358 359 415 414 +f 359 360 416 415 +f 360 361 417 416 +f 361 362 418 417 +f 362 363 419 418 +f 363 364 420 419 +f 364 365 421 420 +f 365 366 422 421 +f 366 367 423 422 +f 367 368 424 423 +f 368 369 425 424 +f 369 370 426 425 +f 370 371 427 426 +f 371 372 428 427 +f 372 373 429 428 +f 373 374 430 429 +f 374 375 431 430 +f 375 376 432 431 +f 376 377 433 432 +f 377 378 434 433 +f 378 379 435 434 +f 379 380 436 435 +f 380 381 437 436 +f 381 382 438 437 +f 382 383 439 438 +f 383 384 440 439 +f 384 385 441 440 +f 385 386 442 441 +f 386 387 443 442 +f 387 388 444 443 +f 388 389 445 444 +f 389 390 446 445 +f 390 391 447 446 +f 391 392 448 447 +f 392 393 449 448 +f 393 394 450 449 +f 394 339 395 450 +f 395 396 452 451 +f 396 397 453 452 +f 397 398 454 453 +f 398 399 455 454 +f 399 400 456 455 +f 400 401 457 456 +f 401 402 458 457 +f 402 403 459 458 +f 403 404 460 459 +f 404 405 461 460 +f 405 406 462 461 +f 406 407 463 462 +f 407 408 464 463 +f 408 409 465 464 +f 409 410 466 465 +f 410 411 467 466 +f 411 412 468 467 +f 412 413 469 468 +f 413 414 470 469 +f 414 415 471 470 +f 415 416 472 471 +f 416 417 473 472 +f 417 418 474 473 +f 418 419 475 474 +f 419 420 476 475 +f 420 421 477 476 +f 421 422 478 477 +f 422 423 479 478 +f 423 424 480 479 +f 424 425 481 480 +f 425 426 482 481 +f 426 427 483 482 +f 427 428 484 483 +f 428 429 485 484 +f 429 430 486 485 +f 430 431 487 486 +f 431 432 488 487 +f 432 433 489 488 +f 433 434 490 489 +f 434 435 491 490 +f 435 436 492 491 +f 436 437 493 492 +f 437 438 494 493 +f 438 439 495 494 +f 439 440 496 495 +f 440 441 497 496 +f 441 442 498 497 +f 442 443 499 498 +f 443 444 500 499 +f 444 445 501 500 +f 445 446 502 501 +f 446 447 503 502 +f 447 448 504 503 +f 448 449 505 504 +f 449 450 506 505 +f 450 395 451 506 +f 451 452 508 507 +f 452 453 509 508 +f 453 454 510 509 +f 454 455 511 510 +f 455 456 512 511 +f 456 457 513 512 +f 457 458 514 513 +f 458 459 515 514 +f 459 460 516 515 +f 460 461 517 516 +f 461 462 518 517 +f 462 463 519 518 +f 463 464 520 519 +f 464 465 521 520 +f 465 466 522 521 +f 466 467 523 522 +f 467 468 524 523 +f 468 469 525 524 +f 469 470 526 525 +f 470 471 527 526 +f 471 472 528 527 +f 472 473 529 528 +f 473 474 530 529 +f 474 475 531 530 +f 475 476 532 531 +f 476 477 533 532 +f 477 478 534 533 +f 478 479 535 534 +f 479 480 536 535 +f 480 481 537 536 +f 481 482 538 537 +f 482 483 539 538 +f 483 484 540 539 +f 484 485 541 540 +f 485 486 542 541 +f 486 487 543 542 +f 487 488 544 543 +f 488 489 545 544 +f 489 490 546 545 +f 490 491 547 546 +f 491 492 548 547 +f 492 493 549 548 +f 493 494 550 549 +f 494 495 551 550 +f 495 496 552 551 +f 496 497 553 552 +f 497 498 554 553 +f 498 499 555 554 +f 499 500 556 555 +f 500 501 557 556 +f 501 502 558 557 +f 502 503 559 558 +f 503 504 560 559 +f 504 505 561 560 +f 505 506 562 561 +f 506 451 507 562 +f 507 508 564 563 +f 508 509 565 564 +f 509 510 566 565 +f 510 511 567 566 +f 511 512 568 567 +f 512 513 569 568 +f 513 514 570 569 +f 514 515 571 570 +f 515 516 572 571 +f 516 517 573 572 +f 517 518 574 573 +f 518 519 575 574 +f 519 520 576 575 +f 520 521 577 576 +f 521 522 578 577 +f 522 523 579 578 +f 523 524 580 579 +f 524 525 581 580 +f 525 526 582 581 +f 526 527 583 582 +f 527 528 584 583 +f 528 529 585 584 +f 529 530 586 585 +f 530 531 587 586 +f 531 532 588 587 +f 532 533 589 588 +f 533 534 590 589 +f 534 535 591 590 +f 535 536 592 591 +f 536 537 593 592 +f 537 538 594 593 +f 538 539 595 594 +f 539 540 596 595 +f 540 541 597 596 +f 541 542 598 597 +f 542 543 599 598 +f 543 544 600 599 +f 544 545 601 600 +f 545 546 602 601 +f 546 547 603 602 +f 547 548 604 603 +f 548 549 605 604 +f 549 550 606 605 +f 550 551 607 606 +f 551 552 608 607 +f 552 553 609 608 +f 553 554 610 609 +f 554 555 611 610 +f 555 556 612 611 +f 556 557 613 612 +f 557 558 614 613 +f 558 559 615 614 +f 559 560 616 615 +f 560 561 617 616 +f 561 562 618 617 +f 562 507 563 618 +f 563 564 620 619 +f 564 565 621 620 +f 565 566 622 621 +f 566 567 623 622 +f 567 568 624 623 +f 568 569 625 624 +f 569 570 626 625 +f 570 571 627 626 +f 571 572 628 627 +f 572 573 629 628 +f 573 574 630 629 +f 574 575 631 630 +f 575 576 632 631 +f 576 577 633 632 +f 577 578 634 633 +f 578 579 635 634 +f 579 580 636 635 +f 580 581 637 636 +f 581 582 638 637 +f 582 583 639 638 +f 583 584 640 639 +f 584 585 641 640 +f 585 586 642 641 +f 586 587 643 642 +f 587 588 644 643 +f 588 589 645 644 +f 589 590 646 645 +f 590 591 647 646 +f 591 592 648 647 +f 592 593 649 648 +f 593 594 650 649 +f 594 595 651 650 +f 595 596 652 651 +f 596 597 653 652 +f 597 598 654 653 +f 598 599 655 654 +f 599 600 656 655 +f 600 601 657 656 +f 601 602 658 657 +f 602 603 659 658 +f 603 604 660 659 +f 604 605 661 660 +f 605 606 662 661 +f 606 607 663 662 +f 607 608 664 663 +f 608 609 665 664 +f 609 610 666 665 +f 610 611 667 666 +f 611 612 668 667 +f 612 613 669 668 +f 613 614 670 669 +f 614 615 671 670 +f 615 616 672 671 +f 616 617 673 672 +f 617 618 674 673 +f 618 563 619 674 +f 619 620 676 675 +f 620 621 677 676 +f 621 622 678 677 +f 622 623 679 678 +f 623 624 680 679 +f 624 625 681 680 +f 625 626 682 681 +f 626 627 683 682 +f 627 628 684 683 +f 628 629 685 684 +f 629 630 686 685 +f 630 631 687 686 +f 631 632 688 687 +f 632 633 689 688 +f 633 634 690 689 +f 634 635 691 690 +f 635 636 692 691 +f 636 637 693 692 +f 637 638 694 693 +f 638 639 695 694 +f 639 640 696 695 +f 640 641 697 696 +f 641 642 698 697 +f 642 643 699 698 +f 643 644 700 699 +f 644 645 701 700 +f 645 646 702 701 +f 646 647 703 702 +f 647 648 704 703 +f 648 649 705 704 +f 649 650 706 705 +f 650 651 707 706 +f 651 652 708 707 +f 652 653 709 708 +f 653 654 710 709 +f 654 655 711 710 +f 655 656 712 711 +f 656 657 713 712 +f 657 658 714 713 +f 658 659 715 714 +f 659 660 716 715 +f 660 661 717 716 +f 661 662 718 717 +f 662 663 719 718 +f 663 664 720 719 +f 664 665 721 720 +f 665 666 722 721 +f 666 667 723 722 +f 667 668 724 723 +f 668 669 725 724 +f 669 670 726 725 +f 670 671 727 726 +f 671 672 728 727 +f 672 673 729 728 +f 673 674 730 729 +f 674 619 675 730 +f 675 676 732 731 +f 676 677 733 732 +f 677 678 734 733 +f 678 679 735 734 +f 679 680 736 735 +f 680 681 737 736 +f 681 682 738 737 +f 682 683 739 738 +f 683 684 740 739 +f 684 685 741 740 +f 685 686 742 741 +f 686 687 743 742 +f 687 688 744 743 +f 688 689 745 744 +f 689 690 746 745 +f 690 691 747 746 +f 691 692 748 747 +f 692 693 749 748 +f 693 694 750 749 +f 694 695 751 750 +f 695 696 752 751 +f 696 697 753 752 +f 697 698 754 753 +f 698 699 755 754 +f 699 700 756 755 +f 700 701 757 756 +f 701 702 758 757 +f 702 703 759 758 +f 703 704 760 759 +f 704 705 761 760 +f 705 706 762 761 +f 706 707 763 762 +f 707 708 764 763 +f 708 709 765 764 +f 709 710 766 765 +f 710 711 767 766 +f 711 712 768 767 +f 712 713 769 768 +f 713 714 770 769 +f 714 715 771 770 +f 715 716 772 771 +f 716 717 773 772 +f 717 718 774 773 +f 718 719 775 774 +f 719 720 776 775 +f 720 721 777 776 +f 721 722 778 777 +f 722 723 779 778 +f 723 724 780 779 +f 724 725 781 780 +f 725 726 782 781 +f 726 727 783 782 +f 727 728 784 783 +f 728 729 785 784 +f 729 730 786 785 +f 730 675 731 786 +f 731 732 788 787 +f 732 733 789 788 +f 733 734 790 789 +f 734 735 791 790 +f 735 736 792 791 +f 736 737 793 792 +f 737 738 794 793 +f 738 739 795 794 +f 739 740 796 795 +f 740 741 797 796 +f 741 742 798 797 +f 742 743 799 798 +f 743 744 800 799 +f 744 745 801 800 +f 745 746 802 801 +f 746 747 803 802 +f 747 748 804 803 +f 748 749 805 804 +f 749 750 806 805 +f 750 751 807 806 +f 751 752 808 807 +f 752 753 809 808 +f 753 754 810 809 +f 754 755 811 810 +f 755 756 812 811 +f 756 757 813 812 +f 757 758 814 813 +f 758 759 815 814 +f 759 760 816 815 +f 760 761 817 816 +f 761 762 818 817 +f 762 763 819 818 +f 763 764 820 819 +f 764 765 821 820 +f 765 766 822 821 +f 766 767 823 822 +f 767 768 824 823 +f 768 769 825 824 +f 769 770 826 825 +f 770 771 827 826 +f 771 772 828 827 +f 772 773 829 828 +f 773 774 830 829 +f 774 775 831 830 +f 775 776 832 831 +f 776 777 833 832 +f 777 778 834 833 +f 778 779 835 834 +f 779 780 836 835 +f 780 781 837 836 +f 781 782 838 837 +f 782 783 839 838 +f 783 784 840 839 +f 784 785 841 840 +f 785 786 842 841 +f 786 731 787 842 +f 787 788 844 843 +f 788 789 845 844 +f 789 790 846 845 +f 790 791 847 846 +f 791 792 848 847 +f 792 793 849 848 +f 793 794 850 849 +f 794 795 851 850 +f 795 796 852 851 +f 796 797 853 852 +f 797 798 854 853 +f 798 799 855 854 +f 799 800 856 855 +f 800 801 857 856 +f 801 802 858 857 +f 802 803 859 858 +f 803 804 860 859 +f 804 805 861 860 +f 805 806 862 861 +f 806 807 863 862 +f 807 808 864 863 +f 808 809 865 864 +f 809 810 866 865 +f 810 811 867 866 +f 811 812 868 867 +f 812 813 869 868 +f 813 814 870 869 +f 814 815 871 870 +f 815 816 872 871 +f 816 817 873 872 +f 817 818 874 873 +f 818 819 875 874 +f 819 820 876 875 +f 820 821 877 876 +f 821 822 878 877 +f 822 823 879 878 +f 823 824 880 879 +f 824 825 881 880 +f 825 826 882 881 +f 826 827 883 882 +f 827 828 884 883 +f 828 829 885 884 +f 829 830 886 885 +f 830 831 887 886 +f 831 832 888 887 +f 832 833 889 888 +f 833 834 890 889 +f 834 835 891 890 +f 835 836 892 891 +f 836 837 893 892 +f 837 838 894 893 +f 838 839 895 894 +f 839 840 896 895 +f 840 841 897 896 +f 841 842 898 897 +f 842 787 843 898 +f 843 844 900 899 +f 844 845 901 900 +f 845 846 902 901 +f 846 847 903 902 +f 847 848 904 903 +f 848 849 905 904 +f 849 850 906 905 +f 850 851 907 906 +f 851 852 908 907 +f 852 853 909 908 +f 853 854 910 909 +f 854 855 911 910 +f 855 856 912 911 +f 856 857 913 912 +f 857 858 914 913 +f 858 859 915 914 +f 859 860 916 915 +f 860 861 917 916 +f 861 862 918 917 +f 862 863 919 918 +f 863 864 920 919 +f 864 865 921 920 +f 865 866 922 921 +f 866 867 923 922 +f 867 868 924 923 +f 868 869 925 924 +f 869 870 926 925 +f 870 871 927 926 +f 871 872 928 927 +f 872 873 929 928 +f 873 874 930 929 +f 874 875 931 930 +f 875 876 932 931 +f 876 877 933 932 +f 877 878 934 933 +f 878 879 935 934 +f 879 880 936 935 +f 880 881 937 936 +f 881 882 938 937 +f 882 883 939 938 +f 883 884 940 939 +f 884 885 941 940 +f 885 886 942 941 +f 886 887 943 942 +f 887 888 944 943 +f 888 889 945 944 +f 889 890 946 945 +f 890 891 947 946 +f 891 892 948 947 +f 892 893 949 948 +f 893 894 950 949 +f 894 895 951 950 +f 895 896 952 951 +f 896 897 953 952 +f 897 898 954 953 +f 898 843 899 954 +f 899 900 956 955 +f 900 901 957 956 +f 901 902 958 957 +f 902 903 959 958 +f 903 904 960 959 +f 904 905 961 960 +f 905 906 962 961 +f 906 907 963 962 +f 907 908 964 963 +f 908 909 965 964 +f 909 910 966 965 +f 910 911 967 966 +f 911 912 968 967 +f 912 913 969 968 +f 913 914 970 969 +f 914 915 971 970 +f 915 916 972 971 +f 916 917 973 972 +f 917 918 974 973 +f 918 919 975 974 +f 919 920 976 975 +f 920 921 977 976 +f 921 922 978 977 +f 922 923 979 978 +f 923 924 980 979 +f 924 925 981 980 +f 925 926 982 981 +f 926 927 983 982 +f 927 928 984 983 +f 928 929 985 984 +f 929 930 986 985 +f 930 931 987 986 +f 931 932 988 987 +f 932 933 989 988 +f 933 934 990 989 +f 934 935 991 990 +f 935 936 992 991 +f 936 937 993 992 +f 937 938 994 993 +f 938 939 995 994 +f 939 940 996 995 +f 940 941 997 996 +f 941 942 998 997 +f 942 943 999 998 +f 943 944 1000 999 +f 944 945 1001 1000 +f 945 946 1002 1001 +f 946 947 1003 1002 +f 947 948 1004 1003 +f 948 949 1005 1004 +f 949 950 1006 1005 +f 950 951 1007 1006 +f 951 952 1008 1007 +f 952 953 1009 1008 +f 953 954 1010 1009 +f 954 899 955 1010 +f 955 956 1012 1011 +f 956 957 1013 1012 +f 957 958 1014 1013 +f 958 959 1015 1014 +f 959 960 1016 1015 +f 960 961 1017 1016 +f 961 962 1018 1017 +f 962 963 1019 1018 +f 963 964 1020 1019 +f 964 965 1021 1020 +f 965 966 1022 1021 +f 966 967 1023 1022 +f 967 968 1024 1023 +f 968 969 1025 1024 +f 969 970 1026 1025 +f 970 971 1027 1026 +f 971 972 1028 1027 +f 972 973 1029 1028 +f 973 974 1030 1029 +f 974 975 1031 1030 +f 975 976 1032 1031 +f 976 977 1033 1032 +f 977 978 1034 1033 +f 978 979 1035 1034 +f 979 980 1036 1035 +f 980 981 1037 1036 +f 981 982 1038 1037 +f 982 983 1039 1038 +f 983 984 1040 1039 +f 984 985 1041 1040 +f 985 986 1042 1041 +f 986 987 1043 1042 +f 987 988 1044 1043 +f 988 989 1045 1044 +f 989 990 1046 1045 +f 990 991 1047 1046 +f 991 992 1048 1047 +f 992 993 1049 1048 +f 993 994 1050 1049 +f 994 995 1051 1050 +f 995 996 1052 1051 +f 996 997 1053 1052 +f 997 998 1054 1053 +f 998 999 1055 1054 +f 999 1000 1056 1055 +f 1000 1001 1057 1056 +f 1001 1002 1058 1057 +f 1002 1003 1059 1058 +f 1003 1004 1060 1059 +f 1004 1005 1061 1060 +f 1005 1006 1062 1061 +f 1006 1007 1063 1062 +f 1007 1008 1064 1063 +f 1008 1009 1065 1064 +f 1009 1010 1066 1065 +f 1010 955 1011 1066 +f 1011 1012 1068 1067 +f 1012 1013 1069 1068 +f 1013 1014 1070 1069 +f 1014 1015 1071 1070 +f 1015 1016 1072 1071 +f 1016 1017 1073 1072 +f 1017 1018 1074 1073 +f 1018 1019 1075 1074 +f 1019 1020 1076 1075 +f 1020 1021 1077 1076 +f 1021 1022 1078 1077 +f 1022 1023 1079 1078 +f 1023 1024 1080 1079 +f 1024 1025 1081 1080 +f 1025 1026 1082 1081 +f 1026 1027 1083 1082 +f 1027 1028 1084 1083 +f 1028 1029 1085 1084 +f 1029 1030 1086 1085 +f 1030 1031 1087 1086 +f 1031 1032 1088 1087 +f 1032 1033 1089 1088 +f 1033 1034 1090 1089 +f 1034 1035 1091 1090 +f 1035 1036 1092 1091 +f 1036 1037 1093 1092 +f 1037 1038 1094 1093 +f 1038 1039 1095 1094 +f 1039 1040 1096 1095 +f 1040 1041 1097 1096 +f 1041 1042 1098 1097 +f 1042 1043 1099 1098 +f 1043 1044 1100 1099 +f 1044 1045 1101 1100 +f 1045 1046 1102 1101 +f 1046 1047 1103 1102 +f 1047 1048 1104 1103 +f 1048 1049 1105 1104 +f 1049 1050 1106 1105 +f 1050 1051 1107 1106 +f 1051 1052 1108 1107 +f 1052 1053 1109 1108 +f 1053 1054 1110 1109 +f 1054 1055 1111 1110 +f 1055 1056 1112 1111 +f 1056 1057 1113 1112 +f 1057 1058 1114 1113 +f 1058 1059 1115 1114 +f 1059 1060 1116 1115 +f 1060 1061 1117 1116 +f 1061 1062 1118 1117 +f 1062 1063 1119 1118 +f 1063 1064 1120 1119 +f 1064 1065 1121 1120 +f 1065 1066 1122 1121 +f 1066 1011 1067 1122 +f 1067 1068 1124 1123 +f 1068 1069 1125 1124 +f 1069 1070 1126 1125 +f 1070 1071 1127 1126 +f 1071 1072 1128 1127 +f 1072 1073 1129 1128 +f 1073 1074 1130 1129 +f 1074 1075 1131 1130 +f 1075 1076 1132 1131 +f 1076 1077 1133 1132 +f 1077 1078 1134 1133 +f 1078 1079 1135 1134 +f 1079 1080 1136 1135 +f 1080 1081 1137 1136 +f 1081 1082 1138 1137 +f 1082 1083 1139 1138 +f 1083 1084 1140 1139 +f 1084 1085 1141 1140 +f 1085 1086 1142 1141 +f 1086 1087 1143 1142 +f 1087 1088 1144 1143 +f 1088 1089 1145 1144 +f 1089 1090 1146 1145 +f 1090 1091 1147 1146 +f 1091 1092 1148 1147 +f 1092 1093 1149 1148 +f 1093 1094 1150 1149 +f 1094 1095 1151 1150 +f 1095 1096 1152 1151 +f 1096 1097 1153 1152 +f 1097 1098 1154 1153 +f 1098 1099 1155 1154 +f 1099 1100 1156 1155 +f 1100 1101 1157 1156 +f 1101 1102 1158 1157 +f 1102 1103 1159 1158 +f 1103 1104 1160 1159 +f 1104 1105 1161 1160 +f 1105 1106 1162 1161 +f 1106 1107 1163 1162 +f 1107 1108 1164 1163 +f 1108 1109 1165 1164 +f 1109 1110 1166 1165 +f 1110 1111 1167 1166 +f 1111 1112 1168 1167 +f 1112 1113 1169 1168 +f 1113 1114 1170 1169 +f 1114 1115 1171 1170 +f 1115 1116 1172 1171 +f 1116 1117 1173 1172 +f 1117 1118 1174 1173 +f 1118 1119 1175 1174 +f 1119 1120 1176 1175 +f 1120 1121 1177 1176 +f 1121 1122 1178 1177 +f 1122 1067 1123 1178 +f 1123 1124 1180 1179 +f 1124 1125 1181 1180 +f 1125 1126 1182 1181 +f 1126 1127 1183 1182 +f 1127 1128 1184 1183 +f 1128 1129 1185 1184 +f 1129 1130 1186 1185 +f 1130 1131 1187 1186 +f 1131 1132 1188 1187 +f 1132 1133 1189 1188 +f 1133 1134 1190 1189 +f 1134 1135 1191 1190 +f 1135 1136 1192 1191 +f 1136 1137 1193 1192 +f 1137 1138 1194 1193 +f 1138 1139 1195 1194 +f 1139 1140 1196 1195 +f 1140 1141 1197 1196 +f 1141 1142 1198 1197 +f 1142 1143 1199 1198 +f 1143 1144 1200 1199 +f 1144 1145 1201 1200 +f 1145 1146 1202 1201 +f 1146 1147 1203 1202 +f 1147 1148 1204 1203 +f 1148 1149 1205 1204 +f 1149 1150 1206 1205 +f 1150 1151 1207 1206 +f 1151 1152 1208 1207 +f 1152 1153 1209 1208 +f 1153 1154 1210 1209 +f 1154 1155 1211 1210 +f 1155 1156 1212 1211 +f 1156 1157 1213 1212 +f 1157 1158 1214 1213 +f 1158 1159 1215 1214 +f 1159 1160 1216 1215 +f 1160 1161 1217 1216 +f 1161 1162 1218 1217 +f 1162 1163 1219 1218 +f 1163 1164 1220 1219 +f 1164 1165 1221 1220 +f 1165 1166 1222 1221 +f 1166 1167 1223 1222 +f 1167 1168 1224 1223 +f 1168 1169 1225 1224 +f 1169 1170 1226 1225 +f 1170 1171 1227 1226 +f 1171 1172 1228 1227 +f 1172 1173 1229 1228 +f 1173 1174 1230 1229 +f 1174 1175 1231 1230 +f 1175 1176 1232 1231 +f 1176 1177 1233 1232 +f 1177 1178 1234 1233 +f 1178 1123 1179 1234 +f 1179 1180 1236 1235 +f 1180 1181 1237 1236 +f 1181 1182 1238 1237 +f 1182 1183 1239 1238 +f 1183 1184 1240 1239 +f 1184 1185 1241 1240 +f 1185 1186 1242 1241 +f 1186 1187 1243 1242 +f 1187 1188 1244 1243 +f 1188 1189 1245 1244 +f 1189 1190 1246 1245 +f 1190 1191 1247 1246 +f 1191 1192 1248 1247 +f 1192 1193 1249 1248 +f 1193 1194 1250 1249 +f 1194 1195 1251 1250 +f 1195 1196 1252 1251 +f 1196 1197 1253 1252 +f 1197 1198 1254 1253 +f 1198 1199 1255 1254 +f 1199 1200 1256 1255 +f 1200 1201 1257 1256 +f 1201 1202 1258 1257 +f 1202 1203 1259 1258 +f 1203 1204 1260 1259 +f 1204 1205 1261 1260 +f 1205 1206 1262 1261 +f 1206 1207 1263 1262 +f 1207 1208 1264 1263 +f 1208 1209 1265 1264 +f 1209 1210 1266 1265 +f 1210 1211 1267 1266 +f 1211 1212 1268 1267 +f 1212 1213 1269 1268 +f 1213 1214 1270 1269 +f 1214 1215 1271 1270 +f 1215 1216 1272 1271 +f 1216 1217 1273 1272 +f 1217 1218 1274 1273 +f 1218 1219 1275 1274 +f 1219 1220 1276 1275 +f 1220 1221 1277 1276 +f 1221 1222 1278 1277 +f 1222 1223 1279 1278 +f 1223 1224 1280 1279 +f 1224 1225 1281 1280 +f 1225 1226 1282 1281 +f 1226 1227 1283 1282 +f 1227 1228 1284 1283 +f 1228 1229 1285 1284 +f 1229 1230 1286 1285 +f 1230 1231 1287 1286 +f 1231 1232 1288 1287 +f 1232 1233 1289 1288 +f 1233 1234 1290 1289 +f 1234 1179 1235 1290 +f 1235 1236 1292 1291 +f 1236 1237 1293 1292 +f 1237 1238 1294 1293 +f 1238 1239 1295 1294 +f 1239 1240 1296 1295 +f 1240 1241 1297 1296 +f 1241 1242 1298 1297 +f 1242 1243 1299 1298 +f 1243 1244 1300 1299 +f 1244 1245 1301 1300 +f 1245 1246 1302 1301 +f 1246 1247 1303 1302 +f 1247 1248 1304 1303 +f 1248 1249 1305 1304 +f 1249 1250 1306 1305 +f 1250 1251 1307 1306 +f 1251 1252 1308 1307 +f 1252 1253 1309 1308 +f 1253 1254 1310 1309 +f 1254 1255 1311 1310 +f 1255 1256 1312 1311 +f 1256 1257 1313 1312 +f 1257 1258 1314 1313 +f 1258 1259 1315 1314 +f 1259 1260 1316 1315 +f 1260 1261 1317 1316 +f 1261 1262 1318 1317 +f 1262 1263 1319 1318 +f 1263 1264 1320 1319 +f 1264 1265 1321 1320 +f 1265 1266 1322 1321 +f 1266 1267 1323 1322 +f 1267 1268 1324 1323 +f 1268 1269 1325 1324 +f 1269 1270 1326 1325 +f 1270 1271 1327 1326 +f 1271 1272 1328 1327 +f 1272 1273 1329 1328 +f 1273 1274 1330 1329 +f 1274 1275 1331 1330 +f 1275 1276 1332 1331 +f 1276 1277 1333 1332 +f 1277 1278 1334 1333 +f 1278 1279 1335 1334 +f 1279 1280 1336 1335 +f 1280 1281 1337 1336 +f 1281 1282 1338 1337 +f 1282 1283 1339 1338 +f 1283 1284 1340 1339 +f 1284 1285 1341 1340 +f 1285 1286 1342 1341 +f 1286 1287 1343 1342 +f 1287 1288 1344 1343 +f 1288 1289 1345 1344 +f 1289 1290 1346 1345 +f 1290 1235 1291 1346 +f 1291 1292 1348 1347 +f 1292 1293 1349 1348 +f 1293 1294 1350 1349 +f 1294 1295 1351 1350 +f 1295 1296 1352 1351 +f 1296 1297 1353 1352 +f 1297 1298 1354 1353 +f 1298 1299 1355 1354 +f 1299 1300 1356 1355 +f 1300 1301 1357 1356 +f 1301 1302 1358 1357 +f 1302 1303 1359 1358 +f 1303 1304 1360 1359 +f 1304 1305 1361 1360 +f 1305 1306 1362 1361 +f 1306 1307 1363 1362 +f 1307 1308 1364 1363 +f 1308 1309 1365 1364 +f 1309 1310 1366 1365 +f 1310 1311 1367 1366 +f 1311 1312 1368 1367 +f 1312 1313 1369 1368 +f 1313 1314 1370 1369 +f 1314 1315 1371 1370 +f 1315 1316 1372 1371 +f 1316 1317 1373 1372 +f 1317 1318 1374 1373 +f 1318 1319 1375 1374 +f 1319 1320 1376 1375 +f 1320 1321 1377 1376 +f 1321 1322 1378 1377 +f 1322 1323 1379 1378 +f 1323 1324 1380 1379 +f 1324 1325 1381 1380 +f 1325 1326 1382 1381 +f 1326 1327 1383 1382 +f 1327 1328 1384 1383 +f 1328 1329 1385 1384 +f 1329 1330 1386 1385 +f 1330 1331 1387 1386 +f 1331 1332 1388 1387 +f 1332 1333 1389 1388 +f 1333 1334 1390 1389 +f 1334 1335 1391 1390 +f 1335 1336 1392 1391 +f 1336 1337 1393 1392 +f 1337 1338 1394 1393 +f 1338 1339 1395 1394 +f 1339 1340 1396 1395 +f 1340 1341 1397 1396 +f 1341 1342 1398 1397 +f 1342 1343 1399 1398 +f 1343 1344 1400 1399 +f 1344 1345 1401 1400 +f 1345 1346 1402 1401 +f 1346 1291 1347 1402 +f 1347 1348 1404 1403 +f 1348 1349 1405 1404 +f 1349 1350 1406 1405 +f 1350 1351 1407 1406 +f 1351 1352 1408 1407 +f 1352 1353 1409 1408 +f 1353 1354 1410 1409 +f 1354 1355 1411 1410 +f 1355 1356 1412 1411 +f 1356 1357 1413 1412 +f 1357 1358 1414 1413 +f 1358 1359 1415 1414 +f 1359 1360 1416 1415 +f 1360 1361 1417 1416 +f 1361 1362 1418 1417 +f 1362 1363 1419 1418 +f 1363 1364 1420 1419 +f 1364 1365 1421 1420 +f 1365 1366 1422 1421 +f 1366 1367 1423 1422 +f 1367 1368 1424 1423 +f 1368 1369 1425 1424 +f 1369 1370 1426 1425 +f 1370 1371 1427 1426 +f 1371 1372 1428 1427 +f 1372 1373 1429 1428 +f 1373 1374 1430 1429 +f 1374 1375 1431 1430 +f 1375 1376 1432 1431 +f 1376 1377 1433 1432 +f 1377 1378 1434 1433 +f 1378 1379 1435 1434 +f 1379 1380 1436 1435 +f 1380 1381 1437 1436 +f 1381 1382 1438 1437 +f 1382 1383 1439 1438 +f 1383 1384 1440 1439 +f 1384 1385 1441 1440 +f 1385 1386 1442 1441 +f 1386 1387 1443 1442 +f 1387 1388 1444 1443 +f 1388 1389 1445 1444 +f 1389 1390 1446 1445 +f 1390 1391 1447 1446 +f 1391 1392 1448 1447 +f 1392 1393 1449 1448 +f 1393 1394 1450 1449 +f 1394 1395 1451 1450 +f 1395 1396 1452 1451 +f 1396 1397 1453 1452 +f 1397 1398 1454 1453 +f 1398 1399 1455 1454 +f 1399 1400 1456 1455 +f 1400 1401 1457 1456 +f 1401 1402 1458 1457 +f 1402 1347 1403 1458 +f 1403 1404 1460 1459 +f 1404 1405 1461 1460 +f 1405 1406 1462 1461 +f 1406 1407 1463 1462 +f 1407 1408 1464 1463 +f 1408 1409 1465 1464 +f 1409 1410 1466 1465 +f 1410 1411 1467 1466 +f 1411 1412 1468 1467 +f 1412 1413 1469 1468 +f 1413 1414 1470 1469 +f 1414 1415 1471 1470 +f 1415 1416 1472 1471 +f 1416 1417 1473 1472 +f 1417 1418 1474 1473 +f 1418 1419 1475 1474 +f 1419 1420 1476 1475 +f 1420 1421 1477 1476 +f 1421 1422 1478 1477 +f 1422 1423 1479 1478 +f 1423 1424 1480 1479 +f 1424 1425 1481 1480 +f 1425 1426 1482 1481 +f 1426 1427 1483 1482 +f 1427 1428 1484 1483 +f 1428 1429 1485 1484 +f 1429 1430 1486 1485 +f 1430 1431 1487 1486 +f 1431 1432 1488 1487 +f 1432 1433 1489 1488 +f 1433 1434 1490 1489 +f 1434 1435 1491 1490 +f 1435 1436 1492 1491 +f 1436 1437 1493 1492 +f 1437 1438 1494 1493 +f 1438 1439 1495 1494 +f 1439 1440 1496 1495 +f 1440 1441 1497 1496 +f 1441 1442 1498 1497 +f 1442 1443 1499 1498 +f 1443 1444 1500 1499 +f 1444 1445 1501 1500 +f 1445 1446 1502 1501 +f 1446 1447 1503 1502 +f 1447 1448 1504 1503 +f 1448 1449 1505 1504 +f 1449 1450 1506 1505 +f 1450 1451 1507 1506 +f 1451 1452 1508 1507 +f 1452 1453 1509 1508 +f 1453 1454 1510 1509 +f 1454 1455 1511 1510 +f 1455 1456 1512 1511 +f 1456 1457 1513 1512 +f 1457 1458 1514 1513 +f 1458 1403 1459 1514 +f 1459 1460 1516 1515 +f 1460 1461 1517 1516 +f 1461 1462 1518 1517 +f 1462 1463 1519 1518 +f 1463 1464 1520 1519 +f 1464 1465 1521 1520 +f 1465 1466 1522 1521 +f 1466 1467 1523 1522 +f 1467 1468 1524 1523 +f 1468 1469 1525 1524 +f 1469 1470 1526 1525 +f 1470 1471 1527 1526 +f 1471 1472 1528 1527 +f 1472 1473 1529 1528 +f 1473 1474 1530 1529 +f 1474 1475 1531 1530 +f 1475 1476 1532 1531 +f 1476 1477 1533 1532 +f 1477 1478 1534 1533 +f 1478 1479 1535 1534 +f 1479 1480 1536 1535 +f 1480 1481 1537 1536 +f 1481 1482 1538 1537 +f 1482 1483 1539 1538 +f 1483 1484 1540 1539 +f 1484 1485 1541 1540 +f 1485 1486 1542 1541 +f 1486 1487 1543 1542 +f 1487 1488 1544 1543 +f 1488 1489 1545 1544 +f 1489 1490 1546 1545 +f 1490 1491 1547 1546 +f 1491 1492 1548 1547 +f 1492 1493 1549 1548 +f 1493 1494 1550 1549 +f 1494 1495 1551 1550 +f 1495 1496 1552 1551 +f 1496 1497 1553 1552 +f 1497 1498 1554 1553 +f 1498 1499 1555 1554 +f 1499 1500 1556 1555 +f 1500 1501 1557 1556 +f 1501 1502 1558 1557 +f 1502 1503 1559 1558 +f 1503 1504 1560 1559 +f 1504 1505 1561 1560 +f 1505 1506 1562 1561 +f 1506 1507 1563 1562 +f 1507 1508 1564 1563 +f 1508 1509 1565 1564 +f 1509 1510 1566 1565 +f 1510 1511 1567 1566 +f 1511 1512 1568 1567 +f 1512 1513 1569 1568 +f 1513 1514 1570 1569 +f 1514 1459 1515 1570 +f 1 4 3 +f 2 1515 1516 +f 1 5 4 +f 2 1516 1517 +f 1 6 5 +f 2 1517 1518 +f 1 7 6 +f 2 1518 1519 +f 1 8 7 +f 2 1519 1520 +f 1 9 8 +f 2 1520 1521 +f 1 10 9 +f 2 1521 1522 +f 1 11 10 +f 2 1522 1523 +f 1 12 11 +f 2 1523 1524 +f 1 13 12 +f 2 1524 1525 +f 1 14 13 +f 2 1525 1526 +f 1 15 14 +f 2 1526 1527 +f 1 16 15 +f 2 1527 1528 +f 1 17 16 +f 2 1528 1529 +f 1 18 17 +f 2 1529 1530 +f 1 19 18 +f 2 1530 1531 +f 1 20 19 +f 2 1531 1532 +f 1 21 20 +f 2 1532 1533 +f 1 22 21 +f 2 1533 1534 +f 1 23 22 +f 2 1534 1535 +f 1 24 23 +f 2 1535 1536 +f 1 25 24 +f 2 1536 1537 +f 1 26 25 +f 2 1537 1538 +f 1 27 26 +f 2 1538 1539 +f 1 28 27 +f 2 1539 1540 +f 1 29 28 +f 2 1540 1541 +f 1 30 29 +f 2 1541 1542 +f 1 31 30 +f 2 1542 1543 +f 1 32 31 +f 2 1543 1544 +f 1 33 32 +f 2 1544 1545 +f 1 34 33 +f 2 1545 1546 +f 1 35 34 +f 2 1546 1547 +f 1 36 35 +f 2 1547 1548 +f 1 37 36 +f 2 1548 1549 +f 1 38 37 +f 2 1549 1550 +f 1 39 38 +f 2 1550 1551 +f 1 40 39 +f 2 1551 1552 +f 1 41 40 +f 2 1552 1553 +f 1 42 41 +f 2 1553 1554 +f 1 43 42 +f 2 1554 1555 +f 1 44 43 +f 2 1555 1556 +f 1 45 44 +f 2 1556 1557 +f 1 46 45 +f 2 1557 1558 +f 1 47 46 +f 2 1558 1559 +f 1 48 47 +f 2 1559 1560 +f 1 49 48 +f 2 1560 1561 +f 1 50 49 +f 2 1561 1562 +f 1 51 50 +f 2 1562 1563 +f 1 52 51 +f 2 1563 1564 +f 1 53 52 +f 2 1564 1565 +f 1 54 53 +f 2 1565 1566 +f 1 55 54 +f 2 1566 1567 +f 1 56 55 +f 2 1567 1568 +f 1 57 56 +f 2 1568 1569 +f 1 58 57 +f 2 1569 1570 +f 1 3 58 +f 2 1570 1515 diff --git a/data/spheres/15.obj b/data/spheres/15.obj new file mode 100644 index 0000000..d763c6e --- /dev/null +++ b/data/spheres/15.obj @@ -0,0 +1,3662 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 10.1168 99.4869 5.88009e-39 +v 10.0614 99.4869 1.0575 +v 9.89575 99.4869 2.1034 +v 9.62167 99.4869 3.12627 +v 9.24218 99.4869 4.11488 +v 8.76143 99.4869 5.05841 +v 8.18469 99.4869 5.94652 +v 7.51827 99.4869 6.76947 +v 6.76948 99.4869 7.51826 +v 5.94653 99.4869 8.18468 +v 5.05842 99.4869 8.76142 +v 4.11489 99.4869 9.24218 +v 3.12628 99.4869 9.62167 +v 2.10342 99.4869 9.89575 +v 1.05751 99.4869 10.0614 +v 1.1618e-05 99.4869 10.1168 +v -1.05748 99.4869 10.0614 +v -2.10339 99.4869 9.89575 +v -3.12626 99.4869 9.62168 +v -4.11487 99.4869 9.24218 +v -5.0584 99.4869 8.76143 +v -5.94651 99.4869 8.18469 +v -6.76946 99.4869 7.51828 +v -7.51825 99.4869 6.76949 +v -8.18467 99.4869 5.94654 +v -8.76142 99.4869 5.05843 +v -9.24217 99.4869 4.1149 +v -9.62167 99.4869 3.12629 +v -9.89574 99.4869 2.10343 +v -10.0614 99.4869 1.05752 +v -10.1168 99.4869 2.32359e-05 +v -10.0614 99.4869 -1.05747 +v -9.89575 99.4869 -2.10338 +v -9.62168 99.4869 -3.12625 +v -9.24219 99.4869 -4.11486 +v -8.76144 99.4869 -5.05839 +v -8.1847 99.4869 -5.9465 +v -7.51828 99.4869 -6.76945 +v -6.7695 99.4869 -7.51825 +v -5.94655 99.4869 -8.18466 +v -5.05844 99.4869 -8.76141 +v -4.11491 99.4869 -9.24216 +v -3.1263 99.4869 -9.62166 +v -2.10344 99.4869 -9.89574 +v -1.05753 99.4869 -10.0614 +v -3.36479e-05 99.4869 -10.1168 +v 1.05746 99.4869 -10.0614 +v 2.10337 99.4869 -9.89575 +v 3.12624 99.4869 -9.62168 +v 4.11485 99.4869 -9.24219 +v 5.05838 99.4869 -8.76145 +v 5.94649 99.4869 -8.18471 +v 6.76945 99.4869 -7.51829 +v 7.51824 99.4869 -6.76951 +v 8.18466 99.4869 -5.94656 +v 8.7614 99.4869 -5.05845 +v 9.24216 99.4869 -4.11493 +v 9.62166 99.4869 -3.12632 +v 9.89574 99.4869 -2.10345 +v 10.0614 99.4869 -1.05754 +v 20.1298 97.953 5.88009e-39 +v 20.0196 97.953 2.10414 +v 19.69 97.953 4.18523 +v 19.1446 97.953 6.22046 +v 18.3895 97.953 8.18754 +v 17.433 97.953 10.0649 +v 16.2854 97.953 11.832 +v 14.9594 97.953 13.4695 +v 13.4695 97.953 14.9594 +v 11.832 97.953 16.2854 +v 10.0649 97.953 17.4329 +v 8.18756 97.953 18.3895 +v 6.22048 97.953 19.1446 +v 4.18525 97.953 19.6899 +v 2.10416 97.953 20.0196 +v 2.31167e-05 97.953 20.1298 +v -2.10412 97.953 20.0196 +v -4.1852 97.953 19.69 +v -6.22044 97.953 19.1446 +v -8.18752 97.953 18.3895 +v -10.0649 97.953 17.433 +v -11.832 97.953 16.2854 +v -13.4695 97.953 14.9594 +v -14.9594 97.953 13.4695 +v -16.2854 97.953 11.8321 +v -17.4329 97.953 10.065 +v -18.3895 97.953 8.18758 +v -19.1446 97.953 6.2205 +v -19.6899 97.953 4.18527 +v -20.0196 97.953 2.10418 +v -20.1298 97.953 4.62335e-05 +v -20.0196 97.953 -2.10409 +v -19.69 97.953 -4.18518 +v -19.1446 97.953 -6.22041 +v -18.3895 97.953 -8.18749 +v -17.433 97.953 -10.0649 +v -16.2854 97.953 -11.832 +v -14.9594 97.953 -13.4694 +v -13.4695 97.953 -14.9593 +v -11.8321 97.953 -16.2853 +v -10.065 97.953 -17.4329 +v -8.1876 97.953 -18.3895 +v -6.22053 97.953 -19.1446 +v -4.1853 97.953 -19.6899 +v -2.10421 97.953 -20.0196 +v -6.69505e-05 97.953 -20.1298 +v 2.10407 97.953 -20.0196 +v 4.18516 97.953 -19.69 +v 6.22039 97.953 -19.1446 +v 8.18747 97.953 -18.3896 +v 10.0649 97.953 -17.433 +v 11.832 97.953 -16.2854 +v 13.4694 97.953 -14.9594 +v 14.9593 97.953 -13.4696 +v 16.2853 97.953 -11.8321 +v 17.4329 97.953 -10.065 +v 18.3895 97.953 -8.18763 +v 19.1446 97.953 -6.22055 +v 19.6899 97.953 -4.18531 +v 20.0196 97.953 -2.10423 +v 29.9363 95.4139 5.88009e-39 +v 29.7723 95.4139 3.12919 +v 29.2821 95.4139 6.2241 +v 28.4711 95.4139 9.25082 +v 27.3482 95.4139 12.1762 +v 25.9256 95.4139 14.9681 +v 24.219 95.4139 17.5961 +v 22.247 95.4139 20.0313 +v 20.0313 95.4139 22.247 +v 17.5961 95.4139 24.219 +v 14.9682 95.4139 25.9256 +v 12.1762 95.4139 27.3482 +v 9.25085 95.4139 28.4711 +v 6.22413 95.4139 29.2821 +v 3.12923 95.4139 29.7723 +v 3.43783e-05 95.4139 29.9363 +v -3.12916 95.4139 29.7723 +v -6.22406 95.4139 29.2821 +v -9.25078 95.4139 28.4711 +v -12.1761 95.4139 27.3482 +v -14.9681 95.4139 25.9256 +v -17.5961 95.4139 24.219 +v -20.0312 95.4139 22.247 +v -22.247 95.4139 20.0313 +v -24.2189 95.4139 17.5962 +v -25.9256 95.4139 14.9682 +v -27.3481 95.4139 12.1762 +v -28.4711 95.4139 9.25089 +v -29.2821 95.4139 6.22417 +v -29.7723 95.4139 3.12926 +v -29.9363 95.4139 6.87566e-05 +v -29.7723 95.4139 -3.12912 +v -29.2821 95.4139 -6.22403 +v -28.4711 95.4139 -9.25075 +v -27.3482 95.4139 -12.1761 +v -25.9256 95.4139 -14.9681 +v -24.219 95.4139 -17.596 +v -22.2471 95.4139 -20.0312 +v -20.0314 95.4139 -22.2469 +v -17.5962 95.4139 -24.2189 +v -14.9682 95.4139 -25.9255 +v -12.1763 95.4139 -27.3481 +v -9.25092 95.4139 -28.4711 +v -6.22421 95.4139 -29.2821 +v -3.1293 95.4139 -29.7723 +v -9.95662e-05 95.4139 -29.9363 +v 3.12909 95.4139 -29.7723 +v 6.224 95.4139 -29.2821 +v 9.25072 95.4139 -28.4711 +v 12.1761 95.4139 -27.3482 +v 14.968 95.4139 -25.9256 +v 17.596 95.4139 -24.219 +v 20.0312 95.4139 -22.2471 +v 22.2469 95.4139 -20.0314 +v 24.2189 95.4139 -17.5962 +v 25.9255 95.4139 -14.9683 +v 27.3481 95.4139 -12.1763 +v 28.4711 95.4139 -9.25096 +v 29.2821 95.4139 -6.22423 +v 29.7723 95.4139 -3.12933 +v 39.4356 91.8958 5.88009e-39 +v 39.2195 91.8958 4.12214 +v 38.5738 91.8958 8.19911 +v 37.5054 91.8958 12.1862 +v 36.0262 91.8958 16.0399 +v 34.1522 91.8958 19.7178 +v 31.904 91.8958 23.1796 +v 29.3063 91.8958 26.3875 +v 26.3876 91.8958 29.3063 +v 23.1797 91.8958 31.904 +v 19.7178 91.8958 34.1522 +v 16.0399 91.8958 36.0262 +v 12.1863 91.8958 37.5054 +v 8.19915 91.8958 38.5738 +v 4.12218 91.8958 39.2195 +v 4.52871e-05 91.8958 39.4356 +v -4.12209 91.8958 39.2195 +v -8.19906 91.8958 38.5738 +v -12.1862 91.8958 37.5055 +v -16.0398 91.8958 36.0262 +v -19.7177 91.8958 34.1522 +v -23.1796 91.8958 31.9041 +v -26.3875 91.8958 29.3064 +v -29.3063 91.8958 26.3876 +v -31.904 91.8958 23.1797 +v -34.1522 91.8958 19.7178 +v -36.0261 91.8958 16.04 +v -37.5054 91.8958 12.1863 +v -38.5738 91.8958 8.1992 +v -39.2195 91.8958 4.12222 +v -39.4356 91.8958 9.05741e-05 +v -39.2195 91.8958 -4.12204 +v -38.5738 91.8958 -8.19902 +v -37.5055 91.8958 -12.1862 +v -36.0262 91.8958 -16.0398 +v -34.1523 91.8958 -19.7177 +v -31.9041 91.8958 -23.1796 +v -29.3064 91.8958 -26.3875 +v -26.3876 91.8958 -29.3063 +v -23.1797 91.8958 -31.904 +v -19.7179 91.8958 -34.1521 +v -16.04 91.8958 -36.0261 +v -12.1864 91.8958 -37.5054 +v -8.19925 91.8958 -38.5738 +v -4.12228 91.8958 -39.2195 +v -0.00013116 91.8958 -39.4356 +v 4.122 91.8958 -39.2195 +v 8.19898 91.8958 -38.5738 +v 12.1861 91.8958 -37.5055 +v 16.0397 91.8958 -36.0262 +v 19.7176 91.8958 -34.1523 +v 23.1795 91.8958 -31.9041 +v 26.3874 91.8958 -29.3064 +v 29.3062 91.8958 -26.3877 +v 31.9039 91.8958 -23.1798 +v 34.1521 91.8958 -19.7179 +v 36.0261 91.8958 -16.0401 +v 37.5054 91.8958 -12.1864 +v 38.5738 91.8958 -8.19928 +v 39.2195 91.8958 -4.12231 +v 48.5302 87.4347 5.88009e-39 +v 48.2643 87.4347 5.07278 +v 47.4697 87.4347 10.09 +v 46.1549 87.4347 14.9966 +v 44.3345 87.4347 19.739 +v 42.0284 87.4347 24.2651 +v 39.2617 87.4347 28.5253 +v 36.065 87.4347 32.473 +v 32.473 87.4347 36.0649 +v 28.5253 87.4347 39.2617 +v 24.2651 87.4347 42.0283 +v 19.739 87.4347 44.3345 +v 14.9967 87.4347 46.1549 +v 10.09 87.4347 47.4696 +v 5.07284 87.4347 48.2643 +v 5.57311e-05 87.4347 48.5302 +v -5.07272 87.4347 48.2643 +v -10.0899 87.4347 47.4697 +v -14.9966 87.4347 46.1549 +v -19.7389 87.4347 44.3345 +v -24.265 87.4347 42.0284 +v -28.5252 87.4347 39.2618 +v -32.4729 87.4347 36.065 +v -36.0649 87.4347 32.4731 +v -39.2617 87.4347 28.5254 +v -42.0283 87.4347 24.2652 +v -44.3345 87.4347 19.7391 +v -46.1549 87.4347 14.9967 +v -47.4696 87.4347 10.0901 +v -48.2643 87.4347 5.07289 +v -48.5302 87.4347 0.000111462 +v -48.2643 87.4347 -5.07267 +v -47.4697 87.4347 -10.0899 +v -46.155 87.4347 -14.9965 +v -44.3346 87.4347 -19.7389 +v -42.0284 87.4347 -24.265 +v -39.2618 87.4347 -28.5252 +v -36.065 87.4347 -32.4729 +v -32.4731 87.4347 -36.0648 +v -28.5254 87.4347 -39.2616 +v -24.2652 87.4347 -42.0283 +v -19.7391 87.4347 -44.3344 +v -14.9968 87.4347 -46.1549 +v -10.0902 87.4347 -47.4696 +v -5.07296 87.4347 -48.2643 +v -0.000161408 87.4347 -48.5302 +v 5.07262 87.4347 -48.2643 +v 10.0898 87.4347 -47.4697 +v 14.9965 87.4347 -46.155 +v 19.7388 87.4347 -44.3346 +v 24.2649 87.4347 -42.0284 +v 28.5252 87.4347 -39.2618 +v 32.4729 87.4347 -36.0651 +v 36.0648 87.4347 -32.4732 +v 39.2616 87.4347 -28.5255 +v 42.0282 87.4347 -24.2653 +v 44.3344 87.4347 -19.7392 +v 46.1549 87.4347 -14.9969 +v 47.4696 87.4347 -10.0902 +v 48.2643 87.4347 -5.073 +v 57.1268 82.0764 5.88009e-39 +v 56.8138 82.0764 5.97137 +v 55.8784 82.0764 11.8773 +v 54.3308 82.0764 17.6531 +v 52.1879 82.0764 23.2355 +v 49.4733 82.0764 28.5634 +v 46.2166 82.0764 33.5783 +v 42.4535 82.0764 38.2253 +v 38.2253 82.0764 42.4534 +v 33.5783 82.0764 46.2165 +v 28.5634 82.0764 49.4732 +v 23.2356 82.0764 52.1879 +v 17.6532 82.0764 54.3308 +v 11.8774 82.0764 55.8784 +v 5.97144 82.0764 56.8138 +v 6.56033e-05 82.0764 57.1268 +v -5.9713 82.0764 56.8138 +v -11.8772 82.0764 55.8784 +v -17.6531 82.0764 54.3308 +v -23.2355 82.0764 52.188 +v -28.5633 82.0764 49.4733 +v -33.5782 82.0764 46.2166 +v -38.2252 82.0764 42.4535 +v -42.4534 82.0764 38.2254 +v -46.2165 82.0764 33.5784 +v -49.4732 82.0764 28.5635 +v -52.1879 82.0764 23.2357 +v -54.3308 82.0764 17.6533 +v -55.8784 82.0764 11.8775 +v -56.8138 82.0764 5.9715 +v -57.1268 82.0764 0.000131207 +v -56.8139 82.0764 -5.97124 +v -55.8785 82.0764 -11.8772 +v -54.3308 82.0764 -17.653 +v -52.188 82.0764 -23.2354 +v -49.4733 82.0764 -28.5632 +v -46.2166 82.0764 -33.5782 +v -42.4536 82.0764 -38.2252 +v -38.2254 82.0764 -42.4534 +v -33.5784 82.0764 -46.2164 +v -28.5636 82.0764 -49.4732 +v -23.2357 82.0764 -52.1878 +v -17.6533 82.0764 -54.3307 +v -11.8775 82.0764 -55.8784 +v -5.97158 82.0764 -56.8138 +v -0.00019 82.0764 -57.1268 +v 5.97118 82.0764 -56.8139 +v 11.8771 82.0764 -55.8785 +v 17.6529 82.0764 -54.3309 +v 23.2354 82.0764 -52.188 +v 28.5632 82.0764 -49.4734 +v 33.5781 82.0764 -46.2167 +v 38.2251 82.0764 -42.4536 +v 42.4533 82.0764 -38.2255 +v 46.2164 82.0764 -33.5785 +v 49.4731 82.0764 -28.5636 +v 52.1878 82.0764 -23.2358 +v 54.3307 82.0764 -17.6534 +v 55.8784 82.0764 -11.8776 +v 56.8138 82.0764 -5.97163 +v 65.1372 75.8758 5.88009e-39 +v 64.7804 75.8758 6.80869 +v 63.7138 75.8758 13.5428 +v 61.9492 75.8758 20.1285 +v 59.5058 75.8758 26.4937 +v 56.4105 75.8758 32.5686 +v 52.6971 75.8758 38.2867 +v 48.4064 75.8758 43.5853 +v 43.5853 75.8758 48.4063 +v 38.2867 75.8758 52.6971 +v 32.5686 75.8758 56.4104 +v 26.4937 75.8758 59.5058 +v 20.1286 75.8758 61.9491 +v 13.5429 75.8758 63.7138 +v 6.80877 75.8758 64.7804 +v 7.48024e-05 75.8758 65.1372 +v -6.80861 75.8758 64.7804 +v -13.5427 75.8758 63.7138 +v -20.1284 75.8758 61.9492 +v -26.4936 75.8758 59.5058 +v -32.5685 75.8758 56.4105 +v -38.2866 75.8758 52.6972 +v -43.5852 75.8758 48.4065 +v -48.4063 75.8758 43.5854 +v -52.697 75.8758 38.2868 +v -56.4104 75.8758 32.5687 +v -59.5057 75.8758 26.4938 +v -61.9491 75.8758 20.1286 +v -63.7138 75.8758 13.5429 +v -64.7804 75.8758 6.80883 +v -65.1372 75.8758 0.000149605 +v -64.7804 75.8758 -6.80854 +v -63.7138 75.8758 -13.5426 +v -61.9492 75.8758 -20.1283 +v -59.5059 75.8758 -26.4935 +v -56.4106 75.8758 -32.5684 +v -52.6972 75.8758 -38.2865 +v -48.4065 75.8758 -43.5852 +v -43.5854 75.8758 -48.4062 +v -38.2869 75.8758 -52.697 +v -32.5688 75.8758 -56.4104 +v -26.4939 75.8758 -59.5057 +v -20.1287 75.8758 -61.9491 +v -13.543 75.8758 -63.7138 +v -6.80893 75.8758 -64.7803 +v -0.000216642 75.8758 -65.1372 +v 6.80847 75.8758 -64.7804 +v 13.5426 75.8758 -63.7139 +v 20.1283 75.8758 -61.9492 +v 26.4935 75.8758 -59.5059 +v 32.5684 75.8758 -56.4106 +v 38.2865 75.8758 -52.6973 +v 43.5851 75.8758 -48.4066 +v 48.4062 75.8758 -43.5855 +v 52.6969 75.8758 -38.2869 +v 56.4103 75.8758 -32.5689 +v 59.5057 75.8758 -26.494 +v 61.9491 75.8758 -20.1288 +v 63.7137 75.8758 -13.5431 +v 64.7803 75.8758 -6.80898 +v 72.4792 68.8967 5.88009e-39 +v 72.0822 68.8967 7.57614 +v 70.8954 68.8967 15.0693 +v 68.9319 68.8967 22.3973 +v 66.2131 68.8967 29.4799 +v 62.7689 68.8967 36.2396 +v 58.637 68.8967 42.6022 +v 53.8626 68.8967 48.498 +v 48.4981 68.8967 53.8625 +v 42.6023 68.8967 58.6369 +v 36.2397 68.8967 62.7688 +v 29.48 68.8967 66.213 +v 22.3974 68.8967 68.9318 +v 15.0694 68.8967 70.8954 +v 7.57623 68.8967 72.0822 +v 8.32338e-05 68.8967 72.4792 +v -7.57605 68.8967 72.0822 +v -15.0692 68.8967 70.8954 +v -22.3972 68.8967 68.9319 +v -29.4799 68.8967 66.2131 +v -36.2395 68.8967 62.7689 +v -42.6021 68.8967 58.637 +v -48.498 68.8967 53.8627 +v -53.8625 68.8967 48.4982 +v -58.6369 68.8967 42.6023 +v -62.7688 68.8967 36.2397 +v -66.213 68.8967 29.4801 +v -68.9318 68.8967 22.3975 +v -70.8954 68.8967 15.0694 +v -72.0822 68.8967 7.5763 +v -72.4792 68.8967 0.000166468 +v -72.0822 68.8967 -7.57597 +v -70.8954 68.8967 -15.0691 +v -68.9319 68.8967 -22.3971 +v -66.2132 68.8967 -29.4798 +v -62.769 68.8967 -36.2394 +v -58.637 68.8967 -42.6021 +v -53.8627 68.8967 -48.4979 +v -48.4982 68.8967 -53.8624 +v -42.6024 68.8967 -58.6368 +v -36.2398 68.8967 -62.7687 +v -29.4802 68.8967 -66.213 +v -22.3976 68.8967 -68.9318 +v -15.0695 68.8967 -70.8953 +v -7.57641 68.8967 -72.0822 +v -0.000241061 68.8967 -72.4792 +v 7.57589 68.8967 -72.0822 +v 15.069 68.8967 -70.8954 +v 22.3971 68.8967 -68.9319 +v 29.4797 68.8967 -66.2132 +v 36.2394 68.8967 -62.769 +v 42.602 68.8967 -58.6371 +v 48.4978 68.8967 -53.8628 +v 53.8624 68.8967 -48.4983 +v 58.6367 68.8967 -42.6025 +v 62.7687 68.8967 -36.2399 +v 66.2129 68.8967 -29.4803 +v 68.9317 68.8967 -22.3976 +v 70.8953 68.8967 -15.0696 +v 72.0822 68.8967 -7.57647 +v 79.0775 61.2107 5.88009e-39 +v 78.6443 61.2107 8.26585 +v 77.3495 61.2107 16.4411 +v 75.2072 61.2107 24.4363 +v 72.2409 61.2107 32.1637 +v 68.4832 61.2107 39.5387 +v 63.9751 61.2107 46.4806 +v 58.7661 61.2107 52.9132 +v 52.9132 61.2107 58.766 +v 46.4806 61.2107 63.975 +v 39.5388 61.2107 68.4831 +v 32.1638 61.2107 72.2409 +v 24.4364 61.2107 75.2072 +v 16.4412 61.2107 77.3495 +v 8.26594 61.2107 78.6443 +v 9.08112e-05 61.2107 79.0775 +v -8.26575 61.2107 78.6443 +v -16.441 61.2107 77.3495 +v -24.4362 61.2107 75.2072 +v -32.1636 61.2107 72.241 +v -39.5387 61.2107 68.4832 +v -46.4805 61.2107 63.9751 +v -52.9131 61.2107 58.7662 +v -58.766 61.2107 52.9133 +v -63.975 61.2107 46.4807 +v -68.4831 61.2107 39.5389 +v -72.2409 61.2107 32.1639 +v -75.2071 61.2107 24.4365 +v -77.3495 61.2107 16.4413 +v -78.6443 61.2107 8.26602 +v -79.0775 61.2107 0.000181622 +v -78.6444 61.2107 -8.26566 +v -77.3495 61.2107 -16.4409 +v -75.2073 61.2107 -24.4361 +v -72.241 61.2107 -32.1635 +v -68.4833 61.2107 -39.5386 +v -63.9752 61.2107 -46.4804 +v -58.7662 61.2107 -52.913 +v -52.9134 61.2107 -58.7659 +v -46.4808 61.2107 -63.9749 +v -39.539 61.2107 -68.483 +v -32.164 61.2107 -72.2408 +v -24.4366 61.2107 -75.2071 +v -16.4414 61.2107 -77.3494 +v -8.26614 61.2107 -78.6443 +v -0.000263007 61.2107 -79.0775 +v 8.26558 61.2107 -78.6444 +v 16.4409 61.2107 -77.3496 +v 24.436 61.2107 -75.2073 +v 32.1635 61.2107 -72.241 +v 39.5385 61.2107 -68.4833 +v 46.4803 61.2107 -63.9753 +v 52.913 61.2107 -58.7663 +v 58.7658 61.2107 -52.9134 +v 63.9749 61.2107 -46.4809 +v 68.483 61.2107 -39.5391 +v 72.2408 61.2107 -32.1641 +v 75.2071 61.2107 -24.4367 +v 77.3494 61.2107 -16.4415 +v 78.6443 61.2107 -8.2662 +v 84.8644 52.8965 5.88009e-39 +v 84.3995 52.8965 8.87074 +v 83.0099 52.8965 17.6443 +v 80.7108 52.8965 26.2245 +v 77.5275 52.8965 34.5174 +v 73.4947 52.8965 42.4322 +v 68.6567 52.8965 49.882 +v 63.0666 52.8965 56.7853 +v 56.7854 52.8965 63.0665 +v 49.8821 52.8965 68.6567 +v 42.4323 52.8965 73.4947 +v 34.5175 52.8965 77.5274 +v 26.2246 52.8965 80.7108 +v 17.6444 52.8965 83.0099 +v 8.87084 52.8965 84.3995 +v 9.74567e-05 52.8965 84.8644 +v -8.87064 52.8965 84.3995 +v -17.6442 52.8965 83.0099 +v -26.2244 52.8965 80.7109 +v -34.5173 52.8965 77.5275 +v -42.4321 52.8965 73.4948 +v -49.8819 52.8965 68.6568 +v -56.7852 52.8965 63.0666 +v -63.0664 52.8965 56.7855 +v -68.6566 52.8965 49.8822 +v -73.4946 52.8965 42.4323 +v -77.5274 52.8965 34.5176 +v -80.7108 52.8965 26.2247 +v -83.0098 52.8965 17.6445 +v -84.3995 52.8965 8.87093 +v -84.8644 52.8965 0.000194913 +v -84.3995 52.8965 -8.87054 +v -83.0099 52.8965 -17.6441 +v -80.7109 52.8965 -26.2243 +v -77.5276 52.8965 -34.5172 +v -73.4948 52.8965 -42.432 +v -68.6569 52.8965 -49.8818 +v -63.0667 52.8965 -56.7852 +v -56.7855 52.8965 -63.0664 +v -49.8822 52.8965 -68.6566 +v -42.4324 52.8965 -73.4946 +v -34.5177 52.8965 -77.5274 +v -26.2248 52.8965 -80.7107 +v -17.6446 52.8965 -83.0098 +v -8.87105 52.8965 -84.3995 +v -0.000282253 52.8965 -84.8644 +v 8.87045 52.8965 -84.3995 +v 17.644 52.8965 -83.0099 +v 26.2242 52.8965 -80.7109 +v 34.5172 52.8965 -77.5276 +v 42.4319 52.8965 -73.4949 +v 49.8818 52.8965 -68.6569 +v 56.7851 52.8965 -63.0668 +v 63.0663 52.8965 -56.7856 +v 68.6565 52.8965 -49.8823 +v 73.4945 52.8965 -42.4325 +v 77.5273 52.8965 -34.5178 +v 80.7107 52.8965 -26.2249 +v 83.0098 52.8965 -17.6447 +v 84.3994 52.8965 -8.87112 +v 89.7804 44.0395 5.88009e-39 +v 89.2886 44.0395 9.3846 +v 87.8185 44.0395 18.6664 +v 85.3863 44.0395 27.7437 +v 82.0185 44.0395 36.517 +v 77.7521 44.0395 44.8902 +v 72.6339 44.0395 52.7716 +v 66.7199 44.0395 60.0748 +v 60.0749 44.0395 66.7198 +v 52.7717 44.0395 72.6338 +v 44.8903 44.0395 77.7521 +v 36.5171 44.0395 82.0185 +v 27.7438 44.0395 85.3862 +v 18.6665 44.0395 87.8185 +v 9.38471 44.0395 89.2886 +v 0.000103102 44.0395 89.7804 +v -9.3845 44.0395 89.2886 +v -18.6663 44.0395 87.8185 +v -27.7436 44.0395 85.3863 +v -36.5169 44.0395 82.0185 +v -44.8901 44.0395 77.7522 +v -52.7715 44.0395 72.634 +v -60.0747 44.0395 66.72 +v -66.7197 44.0395 60.0749 +v -72.6338 44.0395 52.7717 +v -77.752 44.0395 44.8904 +v -82.0184 44.0395 36.5172 +v -85.3862 44.0395 27.7439 +v -87.8185 44.0395 18.6666 +v -89.2886 44.0395 9.3848 +v -89.7804 44.0395 0.000206204 +v -89.2886 44.0395 -9.38439 +v -87.8185 44.0395 -18.6662 +v -85.3863 44.0395 -27.7434 +v -82.0186 44.0395 -36.5168 +v -77.7522 44.0395 -44.89 +v -72.634 44.0395 -52.7714 +v -66.72 44.0395 -60.0746 +v -60.075 44.0395 -66.7197 +v -52.7718 44.0395 -72.6337 +v -44.8905 44.0395 -77.752 +v -36.5173 44.0395 -82.0184 +v -27.744 44.0395 -85.3861 +v -18.6667 44.0395 -87.8184 +v -9.38494 44.0395 -89.2886 +v -0.000298604 44.0395 -89.7804 +v 9.3843 44.0395 -89.2886 +v 18.6661 44.0395 -87.8186 +v 27.7434 44.0395 -85.3863 +v 36.5167 44.0395 -82.0186 +v 44.8899 44.0395 -77.7523 +v 52.7713 44.0395 -72.6341 +v 60.0745 44.0395 -66.7201 +v 66.7196 44.0395 -60.0751 +v 72.6336 44.0395 -52.7719 +v 77.7519 44.0395 -44.8906 +v 82.0183 44.0395 -36.5174 +v 85.3861 44.0395 -27.7441 +v 87.8184 44.0395 -18.6668 +v 89.2885 44.0395 -9.38501 +v 93.7752 34.7306 5.88009e-39 +v 93.2615 34.7306 9.80217 +v 91.726 34.7306 19.4969 +v 89.1855 34.7306 28.9781 +v 85.6679 34.7306 38.1418 +v 81.2117 34.7306 46.8876 +v 75.8657 34.7306 55.1196 +v 69.6886 34.7306 62.7478 +v 62.7479 34.7306 69.6885 +v 55.1197 34.7306 75.8657 +v 46.8877 34.7306 81.2117 +v 38.1419 34.7306 85.6679 +v 28.9782 34.7306 89.1855 +v 19.4971 34.7306 91.726 +v 9.80228 34.7306 93.2615 +v 0.00010769 34.7306 93.7752 +v -9.80206 34.7306 93.2615 +v -19.4968 34.7306 91.726 +v -28.978 34.7306 89.1855 +v -38.1417 34.7306 85.668 +v -46.8875 34.7306 81.2118 +v -55.1195 34.7306 75.8658 +v -62.7477 34.7306 69.6887 +v -69.6884 34.7306 62.748 +v -75.8656 34.7306 55.1198 +v -81.2116 34.7306 46.8878 +v -85.6678 34.7306 38.142 +v -89.1854 34.7306 28.9783 +v -91.7259 34.7306 19.4972 +v -93.2615 34.7306 9.80238 +v -93.7752 34.7306 0.000215379 +v -93.2615 34.7306 -9.80195 +v -91.726 34.7306 -19.4967 +v -89.1856 34.7306 -28.9779 +v -85.668 34.7306 -38.1416 +v -81.2118 34.7306 -46.8874 +v -75.8659 34.7306 -55.1195 +v -69.6887 34.7306 -62.7476 +v -62.7481 34.7306 -69.6884 +v -55.1199 34.7306 -75.8655 +v -46.8879 34.7306 -81.2115 +v -38.1421 34.7306 -85.6678 +v -28.9784 34.7306 -89.1854 +v -19.4973 34.7306 -91.7259 +v -9.80252 34.7306 -93.2614 +v -0.00031189 34.7306 -93.7752 +v 9.80186 34.7306 -93.2615 +v 19.4966 34.7306 -91.726 +v 28.9778 34.7306 -89.1856 +v 38.1415 34.7306 -85.668 +v 46.8873 34.7306 -81.2119 +v 55.1194 34.7306 -75.8659 +v 62.7476 34.7306 -69.6888 +v 69.6883 34.7306 -62.7481 +v 75.8655 34.7306 -55.12 +v 81.2115 34.7306 -46.888 +v 85.6677 34.7306 -38.1422 +v 89.1854 34.7306 -28.9785 +v 91.7259 34.7306 -19.4974 +v 93.2614 34.7306 -9.80259 +v 96.8077 25.0653 5.88009e-39 +v 96.2774 25.0653 10.1192 +v 94.6922 25.0653 20.1274 +v 92.0696 25.0653 29.9152 +v 88.4382 25.0653 39.3752 +v 83.8379 25.0653 48.4038 +v 78.3191 25.0653 56.9021 +v 71.9422 25.0653 64.7769 +v 64.777 25.0653 71.9421 +v 56.9022 25.0653 78.319 +v 48.4039 25.0653 83.8379 +v 39.3753 25.0653 88.4382 +v 29.9153 25.0653 92.0695 +v 20.1275 25.0653 94.6922 +v 10.1193 25.0653 96.2774 +v 0.000111172 25.0653 96.8077 +v -10.119 25.0653 96.2774 +v -20.1273 25.0653 94.6922 +v -29.9151 25.0653 92.0696 +v -39.3751 25.0653 88.4383 +v -48.4037 25.0653 83.838 +v -56.902 25.0653 78.3192 +v -64.7769 25.0653 71.9423 +v -71.942 25.0653 64.7771 +v -78.319 25.0653 56.9023 +v -83.8378 25.0653 48.404 +v -88.4381 25.0653 39.3754 +v -92.0695 25.0653 29.9154 +v -94.6922 25.0653 20.1277 +v -96.2773 25.0653 10.1194 +v -96.8077 25.0653 0.000222344 +v -96.2774 25.0653 -10.1189 +v -94.6923 25.0653 -20.1272 +v -92.0697 25.0653 -29.915 +v -88.4383 25.0653 -39.375 +v -83.8381 25.0653 -48.4036 +v -78.3192 25.0653 -56.9019 +v -71.9423 25.0653 -64.7768 +v -64.7772 25.0653 -71.9419 +v -56.9024 25.0653 -78.3189 +v -48.4041 25.0653 -83.8378 +v -39.3755 25.0653 -88.4381 +v -29.9155 25.0653 -92.0695 +v -20.1278 25.0653 -94.6921 +v -10.1195 25.0653 -96.2773 +v -0.000321976 25.0653 -96.8077 +v 10.1188 25.0653 -96.2774 +v 20.1271 25.0653 -94.6923 +v 29.9149 25.0653 -92.0697 +v 39.3749 25.0653 -88.4384 +v 48.4035 25.0653 -83.8381 +v 56.9018 25.0653 -78.3193 +v 64.7767 25.0653 -71.9424 +v 71.9419 25.0653 -64.7773 +v 78.3188 25.0653 -56.9025 +v 83.8377 25.0653 -48.4042 +v 88.438 25.0653 -39.3756 +v 92.0694 25.0653 -29.9157 +v 94.6921 25.0653 -20.1279 +v 96.2773 25.0653 -10.1196 +v 98.8468 15.1429 5.88009e-39 +v 98.3053 15.1429 10.3323 +v 96.6868 15.1429 20.5514 +v 94.0089 15.1429 30.5453 +v 90.3011 15.1429 40.2046 +v 85.6039 15.1429 49.4234 +v 79.9688 15.1429 58.1007 +v 73.4575 15.1429 66.1414 +v 66.1415 15.1429 73.4575 +v 58.1008 15.1429 79.9687 +v 49.4235 15.1429 85.6038 +v 40.2047 15.1429 90.301 +v 30.5454 15.1429 94.0089 +v 20.5515 15.1429 96.6868 +v 10.3324 15.1429 98.3053 +v 0.000113514 15.1429 98.8468 +v -10.3322 15.1429 98.3053 +v -20.5513 15.1429 96.6868 +v -30.5452 15.1429 94.0089 +v -40.2045 15.1429 90.3011 +v -49.4233 15.1429 85.6039 +v -58.1006 15.1429 79.9689 +v -66.1413 15.1429 73.4576 +v -73.4574 15.1429 66.1416 +v -79.9687 15.1429 58.1008 +v -85.6038 15.1429 49.4236 +v -90.301 15.1429 40.2048 +v -94.0088 15.1429 30.5456 +v -96.6867 15.1429 20.5516 +v -98.3053 15.1429 10.3325 +v -98.8468 15.1429 0.000227028 +v -98.3054 15.1429 -10.3321 +v -96.6868 15.1429 -20.5512 +v -94.009 15.1429 -30.5451 +v -90.3012 15.1429 -40.2044 +v -85.604 15.1429 -49.4232 +v -79.9689 15.1429 -58.1005 +v -73.4577 15.1429 -66.1412 +v -66.1416 15.1429 -73.4573 +v -58.1009 15.1429 -79.9686 +v -49.4237 15.1429 -85.6037 +v -40.2049 15.1429 -90.3009 +v -30.5457 15.1429 -94.0088 +v -20.5518 15.1429 -96.6867 +v -10.3327 15.1429 -98.3053 +v -0.000328758 15.1429 -98.8468 +v 10.332 15.1429 -98.3054 +v 20.5511 15.1429 -96.6869 +v 30.545 15.1429 -94.009 +v 40.2043 15.1429 -90.3012 +v 49.4231 15.1429 -85.604 +v 58.1004 15.1429 -79.969 +v 66.1411 15.1429 -73.4578 +v 73.4572 15.1429 -66.1417 +v 79.9685 15.1429 -58.1011 +v 85.6036 15.1429 -49.4238 +v 90.3009 15.1429 -40.205 +v 94.0088 15.1429 -30.5458 +v 96.6867 15.1429 -20.5518 +v 98.3053 15.1429 -10.3327 +v 99.8716 5.06503 5.88009e-39 +v 99.3245 5.06503 10.4394 +v 97.6892 5.06503 20.7645 +v 94.9836 5.06503 30.862 +v 91.2373 5.06503 40.6214 +v 86.4914 5.06503 49.9358 +v 80.7979 5.06503 58.703 +v 74.2191 5.06503 66.8271 +v 66.8272 5.06503 74.2191 +v 58.7031 5.06503 80.7978 +v 49.9359 5.06503 86.4913 +v 40.6215 5.06503 91.2373 +v 30.8621 5.06503 94.9836 +v 20.7646 5.06503 97.6892 +v 10.4395 5.06503 99.3245 +v 0.000114691 5.06503 99.8716 +v -10.4393 5.06503 99.3245 +v -20.7643 5.06503 97.6892 +v -30.8619 5.06503 94.9836 +v -40.6213 5.06503 91.2373 +v -49.9357 5.06503 86.4915 +v -58.7029 5.06503 80.798 +v -66.827 5.06503 74.2192 +v -74.219 5.06503 66.8273 +v -80.7978 5.06503 58.7032 +v -86.4913 5.06503 49.936 +v -91.2372 5.06503 40.6216 +v -94.9835 5.06503 30.8622 +v -97.6892 5.06503 20.7647 +v -99.3245 5.06503 10.4396 +v -99.8716 5.06503 0.000229381 +v -99.3246 5.06503 -10.4392 +v -97.6893 5.06503 -20.7642 +v -94.9837 5.06503 -30.8618 +v -91.2374 5.06503 -40.6212 +v -86.4915 5.06503 -49.9356 +v -80.798 5.06503 -58.7029 +v -74.2193 5.06503 -66.827 +v -66.8274 5.06503 -74.2189 +v -58.7033 5.06503 -80.7977 +v -49.9361 5.06503 -86.4912 +v -40.6218 5.06503 -91.2372 +v -30.8624 5.06503 -94.9835 +v -20.7648 5.06503 -97.6891 +v -10.4398 5.06503 -99.3245 +v -0.000332167 5.06503 -99.8716 +v 10.4391 5.06503 -99.3246 +v 20.7641 5.06503 -97.6893 +v 30.8617 5.06503 -94.9837 +v 40.6211 5.06503 -91.2374 +v 49.9355 5.06503 -86.4916 +v 58.7028 5.06503 -80.7981 +v 66.8269 5.06503 -74.2194 +v 74.2188 5.06503 -66.8275 +v 80.7976 5.06503 -58.7034 +v 86.4912 5.06503 -49.9362 +v 91.2371 5.06503 -40.6219 +v 94.9834 5.06503 -30.8625 +v 97.6891 5.06503 -20.7649 +v 99.3245 5.06503 -10.4399 +v 99.8717 -5.06479 5.88009e-39 +v 99.3246 -5.06479 10.4394 +v 97.6892 -5.06479 20.7645 +v 94.9836 -5.06479 30.862 +v 91.2373 -5.06479 40.6214 +v 86.4914 -5.06479 49.9358 +v 80.7979 -5.06479 58.7031 +v 74.2191 -5.06479 66.8271 +v 66.8272 -5.06479 74.2191 +v 58.7031 -5.06479 80.7978 +v 49.9359 -5.06479 86.4914 +v 40.6215 -5.06479 91.2373 +v 30.8621 -5.06479 94.9836 +v 20.7646 -5.06479 97.6892 +v 10.4395 -5.06479 99.3245 +v 0.000114691 -5.06479 99.8717 +v -10.4393 -5.06479 99.3246 +v -20.7644 -5.06479 97.6893 +v -30.8619 -5.06479 94.9836 +v -40.6213 -5.06479 91.2374 +v -49.9357 -5.06479 86.4915 +v -58.7029 -5.06479 80.798 +v -66.827 -5.06479 74.2192 +v -74.219 -5.06479 66.8273 +v -80.7978 -5.06479 58.7032 +v -86.4913 -5.06479 49.936 +v -91.2372 -5.06479 40.6217 +v -94.9835 -5.06479 30.8622 +v -97.6892 -5.06479 20.7647 +v -99.3245 -5.06479 10.4396 +v -99.8717 -5.06479 0.000229382 +v -99.3246 -5.06479 -10.4392 +v -97.6893 -5.06479 -20.7642 +v -94.9837 -5.06479 -30.8618 +v -91.2374 -5.06479 -40.6212 +v -86.4915 -5.06479 -49.9356 +v -80.798 -5.06479 -58.7029 +v -74.2193 -5.06479 -66.827 +v -66.8274 -5.06479 -74.2189 +v -58.7033 -5.06479 -80.7977 +v -49.9361 -5.06479 -86.4912 +v -40.6218 -5.06479 -91.2372 +v -30.8624 -5.06479 -94.9835 +v -20.7648 -5.06479 -97.6891 +v -10.4398 -5.06479 -99.3245 +v -0.000332167 -5.06479 -99.8717 +v 10.4391 -5.06479 -99.3246 +v 20.7641 -5.06479 -97.6893 +v 30.8617 -5.06479 -94.9837 +v 40.6211 -5.06479 -91.2375 +v 49.9355 -5.06479 -86.4916 +v 58.7028 -5.06479 -80.7981 +v 66.8269 -5.06479 -74.2194 +v 74.2188 -5.06479 -66.8275 +v 80.7976 -5.06479 -58.7034 +v 86.4912 -5.06479 -49.9362 +v 91.2371 -5.06479 -40.6219 +v 94.9834 -5.06479 -30.8625 +v 97.6891 -5.06479 -20.7649 +v 99.3245 -5.06479 -10.4399 +v 98.8469 -15.1426 5.88009e-39 +v 98.3054 -15.1426 10.3323 +v 96.6868 -15.1426 20.5514 +v 94.0089 -15.1426 30.5453 +v 90.3011 -15.1426 40.2046 +v 85.6039 -15.1426 49.4234 +v 79.9688 -15.1426 58.1007 +v 73.4576 -15.1426 66.1414 +v 66.1415 -15.1426 73.4575 +v 58.1008 -15.1426 79.9687 +v 49.4235 -15.1426 85.6039 +v 40.2047 -15.1426 90.3011 +v 30.5454 -15.1426 94.0089 +v 20.5515 -15.1426 96.6868 +v 10.3324 -15.1426 98.3054 +v 0.000113514 -15.1426 98.8469 +v -10.3322 -15.1426 98.3054 +v -20.5513 -15.1426 96.6868 +v -30.5452 -15.1426 94.009 +v -40.2045 -15.1426 90.3012 +v -49.4233 -15.1426 85.604 +v -58.1006 -15.1426 79.9689 +v -66.1413 -15.1426 73.4576 +v -73.4574 -15.1426 66.1416 +v -79.9687 -15.1426 58.1009 +v -85.6038 -15.1426 49.4236 +v -90.301 -15.1426 40.2048 +v -94.0089 -15.1426 30.5456 +v -96.6868 -15.1426 20.5516 +v -98.3053 -15.1426 10.3325 +v -98.8469 -15.1426 0.000227028 +v -98.3054 -15.1426 -10.3321 +v -96.6869 -15.1426 -20.5512 +v -94.009 -15.1426 -30.5451 +v -90.3012 -15.1426 -40.2044 +v -85.604 -15.1426 -49.4232 +v -79.9689 -15.1426 -58.1005 +v -73.4577 -15.1426 -66.1412 +v -66.1417 -15.1426 -73.4573 +v -58.101 -15.1426 -79.9686 +v -49.4237 -15.1426 -85.6037 +v -40.2049 -15.1426 -90.301 +v -30.5457 -15.1426 -94.0088 +v -20.5518 -15.1426 -96.6867 +v -10.3327 -15.1426 -98.3053 +v -0.000328758 -15.1426 -98.8469 +v 10.332 -15.1426 -98.3054 +v 20.5511 -15.1426 -96.6869 +v 30.545 -15.1426 -94.0091 +v 40.2043 -15.1426 -90.3012 +v 49.4231 -15.1426 -85.6041 +v 58.1004 -15.1426 -79.969 +v 66.1412 -15.1426 -73.4578 +v 73.4572 -15.1426 -66.1418 +v 79.9685 -15.1426 -58.1011 +v 85.6037 -15.1426 -49.4238 +v 90.3009 -15.1426 -40.2051 +v 94.0088 -15.1426 -30.5458 +v 96.6867 -15.1426 -20.5518 +v 98.3053 -15.1426 -10.3328 +v 96.8077 -25.0651 5.88009e-39 +v 96.2774 -25.0651 10.1192 +v 94.6923 -25.0651 20.1274 +v 92.0696 -25.0651 29.9152 +v 88.4383 -25.0651 39.3752 +v 83.838 -25.0651 48.4038 +v 78.3191 -25.0651 56.9021 +v 71.9422 -25.0651 64.777 +v 64.7771 -25.0651 71.9421 +v 56.9022 -25.0651 78.3191 +v 48.4039 -25.0651 83.8379 +v 39.3753 -25.0651 88.4382 +v 29.9153 -25.0651 92.0696 +v 20.1276 -25.0651 94.6922 +v 10.1193 -25.0651 96.2774 +v 0.000111172 -25.0651 96.8077 +v -10.119 -25.0651 96.2774 +v -20.1273 -25.0651 94.6923 +v -29.9151 -25.0651 92.0697 +v -39.3751 -25.0651 88.4383 +v -48.4037 -25.0651 83.838 +v -56.902 -25.0651 78.3192 +v -64.7769 -25.0651 71.9423 +v -71.9421 -25.0651 64.7772 +v -78.319 -25.0651 56.9023 +v -83.8379 -25.0651 48.404 +v -88.4382 -25.0651 39.3754 +v -92.0696 -25.0651 29.9154 +v -94.6922 -25.0651 20.1277 +v -96.2774 -25.0651 10.1194 +v -96.8077 -25.0651 0.000222344 +v -96.2775 -25.0651 -10.1189 +v -94.6923 -25.0651 -20.1272 +v -92.0697 -25.0651 -29.915 +v -88.4384 -25.0651 -39.375 +v -83.8381 -25.0651 -48.4036 +v -78.3193 -25.0651 -56.902 +v -71.9424 -25.0651 -64.7768 +v -64.7772 -25.0651 -71.942 +v -56.9024 -25.0651 -78.3189 +v -48.4041 -25.0651 -83.8378 +v -39.3756 -25.0651 -88.4381 +v -29.9156 -25.0651 -92.0695 +v -20.1278 -25.0651 -94.6922 +v -10.1195 -25.0651 -96.2774 +v -0.000321976 -25.0651 -96.8077 +v 10.1188 -25.0651 -96.2775 +v 20.1271 -25.0651 -94.6923 +v 29.9149 -25.0651 -92.0697 +v 39.3749 -25.0651 -88.4384 +v 48.4035 -25.0651 -83.8382 +v 56.9019 -25.0651 -78.3193 +v 64.7767 -25.0651 -71.9424 +v 71.9419 -25.0651 -64.7773 +v 78.3189 -25.0651 -56.9025 +v 83.8378 -25.0651 -48.4043 +v 88.4381 -25.0651 -39.3757 +v 92.0695 -25.0651 -29.9157 +v 94.6922 -25.0651 -20.1279 +v 96.2774 -25.0651 -10.1196 +v 93.7753 -34.7304 5.88009e-39 +v 93.2616 -34.7304 9.80218 +v 91.7261 -34.7304 19.497 +v 89.1856 -34.7304 28.9781 +v 85.668 -34.7304 38.1418 +v 81.2118 -34.7304 46.8876 +v 75.8658 -34.7304 55.1197 +v 69.6886 -34.7304 62.7479 +v 62.7479 -34.7304 69.6886 +v 55.1198 -34.7304 75.8657 +v 46.8877 -34.7304 81.2117 +v 38.1419 -34.7304 85.6679 +v 28.9782 -34.7304 89.1856 +v 19.4971 -34.7304 91.726 +v 9.80229 -34.7304 93.2615 +v 0.00010769 -34.7304 93.7753 +v -9.80207 -34.7304 93.2616 +v -19.4968 -34.7304 91.7261 +v -28.978 -34.7304 89.1856 +v -38.1417 -34.7304 85.668 +v -46.8875 -34.7304 81.2118 +v -55.1196 -34.7304 75.8659 +v -62.7478 -34.7304 69.6887 +v -69.6885 -34.7304 62.748 +v -75.8657 -34.7304 55.1199 +v -81.2117 -34.7304 46.8878 +v -85.6679 -34.7304 38.142 +v -89.1855 -34.7304 28.9783 +v -91.726 -34.7304 19.4972 +v -93.2615 -34.7304 9.80239 +v -93.7753 -34.7304 0.00021538 +v -93.2616 -34.7304 -9.80196 +v -91.7261 -34.7304 -19.4967 +v -89.1857 -34.7304 -28.9779 +v -85.6681 -34.7304 -38.1416 +v -81.2119 -34.7304 -46.8874 +v -75.8659 -34.7304 -55.1195 +v -69.6888 -34.7304 -62.7477 +v -62.7481 -34.7304 -69.6884 +v -55.12 -34.7304 -75.8656 +v -46.8879 -34.7304 -81.2116 +v -38.1421 -34.7304 -85.6678 +v -28.9785 -34.7304 -89.1855 +v -19.4973 -34.7304 -91.726 +v -9.80253 -34.7304 -93.2615 +v -0.00031189 -34.7304 -93.7753 +v 9.80186 -34.7304 -93.2616 +v 19.4966 -34.7304 -91.7261 +v 28.9778 -34.7304 -89.1857 +v 38.1415 -34.7304 -85.6681 +v 46.8873 -34.7304 -81.2119 +v 55.1194 -34.7304 -75.866 +v 62.7476 -34.7304 -69.6889 +v 69.6883 -34.7304 -62.7482 +v 75.8655 -34.7304 -55.1201 +v 81.2116 -34.7304 -46.888 +v 85.6678 -34.7304 -38.1422 +v 89.1854 -34.7304 -28.9786 +v 91.726 -34.7304 -19.4974 +v 93.2615 -34.7304 -9.8026 +v 89.7805 -44.0393 5.88009e-39 +v 89.2887 -44.0393 9.38461 +v 87.8186 -44.0393 18.6664 +v 85.3864 -44.0393 27.7437 +v 82.0186 -44.0393 36.517 +v 77.7522 -44.0393 44.8902 +v 72.634 -44.0393 52.7716 +v 66.72 -44.0393 60.0749 +v 60.0749 -44.0393 66.7199 +v 52.7717 -44.0393 72.6339 +v 44.8903 -44.0393 77.7522 +v 36.5171 -44.0393 82.0186 +v 27.7438 -44.0393 85.3863 +v 18.6665 -44.0393 87.8186 +v 9.38472 -44.0393 89.2887 +v 0.000103102 -44.0393 89.7805 +v -9.38451 -44.0393 89.2887 +v -18.6663 -44.0393 87.8186 +v -27.7436 -44.0393 85.3864 +v -36.5169 -44.0393 82.0186 +v -44.8901 -44.0393 77.7523 +v -52.7715 -44.0393 72.6341 +v -60.0748 -44.0393 66.72 +v -66.7198 -44.0393 60.075 +v -72.6339 -44.0393 52.7718 +v -77.7521 -44.0393 44.8904 +v -82.0185 -44.0393 36.5172 +v -85.3863 -44.0393 27.7439 +v -87.8186 -44.0393 18.6666 +v -89.2887 -44.0393 9.38482 +v -89.7805 -44.0393 0.000206205 +v -89.2887 -44.0393 -9.38441 +v -87.8186 -44.0393 -18.6662 +v -85.3864 -44.0393 -27.7435 +v -82.0187 -44.0393 -36.5168 +v -77.7523 -44.0393 -44.89 +v -72.6341 -44.0393 -52.7715 +v -66.7201 -44.0393 -60.0747 +v -60.0751 -44.0393 -66.7197 +v -52.7719 -44.0393 -72.6338 +v -44.8905 -44.0393 -77.7521 +v -36.5173 -44.0393 -82.0185 +v -27.744 -44.0393 -85.3863 +v -18.6667 -44.0393 -87.8185 +v -9.38495 -44.0393 -89.2887 +v -0.000298604 -44.0393 -89.7805 +v 9.38431 -44.0393 -89.2887 +v 18.6661 -44.0393 -87.8187 +v 27.7434 -44.0393 -85.3865 +v 36.5167 -44.0393 -82.0187 +v 44.89 -44.0393 -77.7524 +v 52.7714 -44.0393 -72.6342 +v 60.0746 -44.0393 -66.7202 +v 66.7197 -44.0393 -60.0752 +v 72.6337 -44.0393 -52.772 +v 77.752 -44.0393 -44.8906 +v 82.0184 -44.0393 -36.5174 +v 85.3862 -44.0393 -27.7441 +v 87.8185 -44.0393 -18.6668 +v 89.2887 -44.0393 -9.38502 +v 84.8645 -52.8963 5.88009e-39 +v 84.3996 -52.8963 8.87075 +v 83.01 -52.8963 17.6443 +v 80.711 -52.8963 26.2246 +v 77.5276 -52.8963 34.5175 +v 73.4948 -52.8963 42.4322 +v 68.6569 -52.8963 49.8821 +v 63.0667 -52.8963 56.7854 +v 56.7855 -52.8963 63.0666 +v 49.8822 -52.8963 68.6568 +v 42.4323 -52.8963 73.4948 +v 34.5176 -52.8963 77.5276 +v 26.2246 -52.8963 80.7109 +v 17.6444 -52.8963 83.01 +v 8.87085 -52.8963 84.3996 +v 9.74568e-05 -52.8963 84.8645 +v -8.87065 -52.8963 84.3996 +v -17.6442 -52.8963 83.01 +v -26.2245 -52.8963 80.711 +v -34.5174 -52.8963 77.5276 +v -42.4321 -52.8963 73.4949 +v -49.882 -52.8963 68.6569 +v -56.7853 -52.8963 63.0667 +v -63.0665 -52.8963 56.7855 +v -68.6567 -52.8963 49.8822 +v -73.4947 -52.8963 42.4324 +v -77.5275 -52.8963 34.5177 +v -80.7109 -52.8963 26.2248 +v -83.01 -52.8963 17.6445 +v -84.3996 -52.8963 8.87094 +v -84.8645 -52.8963 0.000194914 +v -84.3996 -52.8963 -8.87055 +v -83.0101 -52.8963 -17.6441 +v -80.711 -52.8963 -26.2244 +v -77.5277 -52.8963 -34.5173 +v -73.4949 -52.8963 -42.432 +v -68.657 -52.8963 -49.8819 +v -63.0668 -52.8963 -56.7853 +v -56.7856 -52.8963 -63.0665 +v -49.8823 -52.8963 -68.6567 +v -42.4325 -52.8963 -73.4947 +v -34.5178 -52.8963 -77.5275 +v -26.2249 -52.8963 -80.7109 +v -17.6446 -52.8963 -83.01 +v -8.87107 -52.8963 -84.3996 +v -0.000282254 -52.8963 -84.8645 +v 8.87047 -52.8963 -84.3996 +v 17.644 -52.8963 -83.0101 +v 26.2243 -52.8963 -80.711 +v 34.5172 -52.8963 -77.5277 +v 42.432 -52.8963 -73.495 +v 49.8818 -52.8963 -68.657 +v 56.7852 -52.8963 -63.0669 +v 63.0664 -52.8963 -56.7857 +v 68.6566 -52.8963 -49.8824 +v 73.4946 -52.8963 -42.4326 +v 77.5274 -52.8963 -34.5179 +v 80.7108 -52.8963 -26.225 +v 83.0099 -52.8963 -17.6447 +v 84.3996 -52.8963 -8.87113 +v 79.0777 -61.2105 5.88009e-39 +v 78.6445 -61.2105 8.26586 +v 77.3496 -61.2105 16.4412 +v 75.2074 -61.2105 24.4363 +v 72.2411 -61.2105 32.1638 +v 68.4833 -61.2105 39.5388 +v 63.9752 -61.2105 46.4807 +v 58.7662 -61.2105 52.9133 +v 52.9133 -61.2105 58.7661 +v 46.4807 -61.2105 63.9752 +v 39.5389 -61.2105 68.4833 +v 32.1639 -61.2105 72.241 +v 24.4364 -61.2105 75.2073 +v 16.4413 -61.2105 77.3496 +v 8.26596 -61.2105 78.6445 +v 9.08114e-05 -61.2105 79.0777 +v -8.26577 -61.2105 78.6445 +v -16.4411 -61.2105 77.3497 +v -24.4362 -61.2105 75.2074 +v -32.1637 -61.2105 72.2411 +v -39.5387 -61.2105 68.4833 +v -46.4806 -61.2105 63.9753 +v -52.9132 -61.2105 58.7663 +v -58.7661 -61.2105 52.9134 +v -63.9751 -61.2105 46.4808 +v -68.4832 -61.2105 39.539 +v -72.241 -61.2105 32.1639 +v -75.2073 -61.2105 24.4365 +v -77.3496 -61.2105 16.4414 +v -78.6445 -61.2105 8.26604 +v -79.0777 -61.2105 0.000181623 +v -78.6445 -61.2105 -8.26568 +v -77.3497 -61.2105 -16.441 +v -75.2074 -61.2105 -24.4361 +v -72.2411 -61.2105 -32.1636 +v -68.4834 -61.2105 -39.5386 +v -63.9753 -61.2105 -46.4805 +v -58.7663 -61.2105 -52.9131 +v -52.9135 -61.2105 -58.766 +v -46.4809 -61.2105 -63.975 +v -39.5391 -61.2105 -68.4832 +v -32.164 -61.2105 -72.241 +v -24.4366 -61.2105 -75.2073 +v -16.4415 -61.2105 -77.3496 +v -8.26616 -61.2105 -78.6445 +v -0.000263007 -61.2105 -79.0777 +v 8.2656 -61.2105 -78.6445 +v 16.4409 -61.2105 -77.3497 +v 24.4361 -61.2105 -75.2074 +v 32.1635 -61.2105 -72.2412 +v 39.5386 -61.2105 -68.4834 +v 46.4804 -61.2105 -63.9754 +v 52.9131 -61.2105 -58.7664 +v 58.7659 -61.2105 -52.9135 +v 63.975 -61.2105 -46.481 +v 68.4831 -61.2105 -39.5392 +v 72.2409 -61.2105 -32.1641 +v 75.2072 -61.2105 -24.4367 +v 77.3496 -61.2105 -16.4415 +v 78.6444 -61.2105 -8.26622 +v 72.4794 -68.8966 5.88009e-39 +v 72.0824 -68.8966 7.57615 +v 70.8956 -68.8966 15.0693 +v 68.932 -68.8966 22.3974 +v 66.2132 -68.8966 29.48 +v 62.769 -68.8966 36.2397 +v 58.6371 -68.8966 42.6023 +v 53.8627 -68.8966 48.4982 +v 48.4982 -68.8966 53.8627 +v 42.6024 -68.8966 58.637 +v 36.2397 -68.8966 62.769 +v 29.4801 -68.8966 66.2132 +v 22.3974 -68.8966 68.932 +v 15.0694 -68.8966 70.8955 +v 7.57624 -68.8966 72.0823 +v 8.3234e-05 -68.8966 72.4794 +v -7.57607 -68.8966 72.0824 +v -15.0692 -68.8966 70.8956 +v -22.3973 -68.8966 68.932 +v -29.4799 -68.8966 66.2133 +v -36.2396 -68.8966 62.7691 +v -42.6022 -68.8966 58.6371 +v -48.4981 -68.8966 53.8628 +v -53.8626 -68.8966 48.4983 +v -58.637 -68.8966 42.6024 +v -62.7689 -68.8966 36.2398 +v -66.2132 -68.8966 29.4802 +v -68.932 -68.8966 22.3975 +v -70.8955 -68.8966 15.0695 +v -72.0823 -68.8966 7.57632 +v -72.4794 -68.8966 0.000166468 +v -72.0824 -68.8966 -7.57599 +v -70.8956 -68.8966 -15.0691 +v -68.9321 -68.8966 -22.3972 +v -66.2133 -68.8966 -29.4798 +v -62.7691 -68.8966 -36.2395 +v -58.6372 -68.8966 -42.6022 +v -53.8628 -68.8966 -48.498 +v -48.4983 -68.8966 -53.8625 +v -42.6025 -68.8966 -58.6369 +v -36.2399 -68.8966 -62.7689 +v -29.4802 -68.8966 -66.2131 +v -22.3976 -68.8966 -68.9319 +v -15.0696 -68.8966 -70.8955 +v -7.57643 -68.8966 -72.0823 +v -0.000241062 -68.8966 -72.4794 +v 7.57591 -68.8966 -72.0824 +v 15.0691 -68.8966 -70.8956 +v 22.3971 -68.8966 -68.9321 +v 29.4798 -68.8966 -66.2133 +v 36.2395 -68.8966 -62.7691 +v 42.6021 -68.8966 -58.6372 +v 48.498 -68.8966 -53.8629 +v 53.8625 -68.8966 -48.4984 +v 58.6369 -68.8966 -42.6026 +v 62.7688 -68.8966 -36.24 +v 66.2131 -68.8966 -29.4803 +v 68.9319 -68.8966 -22.3977 +v 70.8955 -68.8966 -15.0696 +v 72.0823 -68.8966 -7.57648 +v 65.1374 -75.8757 5.88009e-39 +v 64.7806 -75.8757 6.80871 +v 63.714 -75.8757 13.5428 +v 61.9493 -75.8757 20.1285 +v 59.506 -75.8757 26.4937 +v 56.4106 -75.8757 32.5687 +v 52.6973 -75.8757 38.2868 +v 48.4065 -75.8757 43.5854 +v 43.5854 -75.8757 48.4065 +v 38.2868 -75.8757 52.6972 +v 32.5687 -75.8757 56.4106 +v 26.4938 -75.8757 59.5059 +v 20.1286 -75.8757 61.9493 +v 13.5429 -75.8757 63.714 +v 6.80878 -75.8757 64.7805 +v 7.48026e-05 -75.8757 65.1374 +v -6.80863 -75.8757 64.7806 +v -13.5427 -75.8757 63.714 +v -20.1285 -75.8757 61.9494 +v -26.4937 -75.8757 59.506 +v -32.5686 -75.8757 56.4107 +v -38.2867 -75.8757 52.6973 +v -43.5853 -75.8757 48.4066 +v -48.4064 -75.8757 43.5855 +v -52.6972 -75.8757 38.2869 +v -56.4106 -75.8757 32.5688 +v -59.5059 -75.8757 26.4939 +v -61.9493 -75.8757 20.1287 +v -63.7139 -75.8757 13.543 +v -64.7805 -75.8757 6.80885 +v -65.1374 -75.8757 0.000149605 +v -64.7806 -75.8757 -6.80855 +v -63.714 -75.8757 -13.5427 +v -61.9494 -75.8757 -20.1284 +v -59.506 -75.8757 -26.4936 +v -56.4107 -75.8757 -32.5685 +v -52.6974 -75.8757 -38.2866 +v -48.4066 -75.8757 -43.5853 +v -43.5856 -75.8757 -48.4064 +v -38.287 -75.8757 -52.6971 +v -32.5689 -75.8757 -56.4105 +v -26.494 -75.8757 -59.5059 +v -20.1288 -75.8757 -61.9493 +v -13.5431 -75.8757 -63.7139 +v -6.80895 -75.8757 -64.7805 +v -0.000216643 -75.8757 -65.1374 +v 6.80849 -75.8757 -64.7806 +v 13.5426 -75.8757 -63.714 +v 20.1283 -75.8757 -61.9494 +v 26.4935 -75.8757 -59.5061 +v 32.5685 -75.8757 -56.4108 +v 38.2866 -75.8757 -52.6974 +v 43.5852 -75.8757 -48.4067 +v 48.4063 -75.8757 -43.5856 +v 52.6971 -75.8757 -38.287 +v 56.4105 -75.8757 -32.5689 +v 59.5058 -75.8757 -26.494 +v 61.9492 -75.8757 -20.1289 +v 63.7139 -75.8757 -13.5431 +v 64.7805 -75.8757 -6.809 +v 57.127 -82.0762 5.88009e-39 +v 56.814 -82.0762 5.97139 +v 55.8786 -82.0762 11.8774 +v 54.331 -82.0762 17.6532 +v 52.1881 -82.0762 23.2356 +v 49.4734 -82.0762 28.5635 +v 46.2167 -82.0762 33.5784 +v 42.4536 -82.0762 38.2254 +v 38.2254 -82.0762 42.4536 +v 33.5784 -82.0762 46.2167 +v 28.5635 -82.0762 49.4734 +v 23.2357 -82.0762 52.1881 +v 17.6533 -82.0762 54.331 +v 11.8774 -82.0762 55.8786 +v 5.97146 -82.0762 56.814 +v 6.56036e-05 -82.0762 57.127 +v -5.97132 -82.0762 56.814 +v -11.8773 -82.0762 55.8786 +v -17.6531 -82.0762 54.331 +v -23.2356 -82.0762 52.1881 +v -28.5634 -82.0762 49.4735 +v -33.5783 -82.0762 46.2168 +v -38.2253 -82.0762 42.4537 +v -42.4536 -82.0762 38.2255 +v -46.2166 -82.0762 33.5785 +v -49.4734 -82.0762 28.5636 +v -52.188 -82.0762 23.2357 +v -54.331 -82.0762 17.6533 +v -55.8786 -82.0762 11.8775 +v -56.814 -82.0762 5.97152 +v -57.127 -82.0762 0.000131207 +v -56.814 -82.0762 -5.97126 +v -55.8787 -82.0762 -11.8772 +v -54.331 -82.0762 -17.6531 +v -52.1882 -82.0762 -23.2355 +v -49.4735 -82.0762 -28.5633 +v -46.2168 -82.0762 -33.5783 +v -42.4537 -82.0762 -38.2253 +v -38.2255 -82.0762 -42.4535 +v -33.5785 -82.0762 -46.2166 +v -28.5637 -82.0762 -49.4733 +v -23.2358 -82.0762 -52.188 +v -17.6534 -82.0762 -54.3309 +v -11.8776 -82.0762 -55.8786 +v -5.97161 -82.0762 -56.814 +v -0.000190001 -82.0762 -57.127 +v 5.9712 -82.0762 -56.8141 +v 11.8772 -82.0762 -55.8787 +v 17.653 -82.0762 -54.3311 +v 23.2354 -82.0762 -52.1882 +v 28.5633 -82.0762 -49.4735 +v 33.5782 -82.0762 -46.2168 +v 38.2252 -82.0762 -42.4538 +v 42.4535 -82.0762 -38.2256 +v 46.2166 -82.0762 -33.5786 +v 49.4733 -82.0762 -28.5637 +v 52.188 -82.0762 -23.2359 +v 54.3309 -82.0762 -17.6535 +v 55.8786 -82.0762 -11.8776 +v 56.814 -82.0762 -5.97165 +v 48.5304 -87.4346 5.88009e-39 +v 48.2645 -87.4346 5.0728 +v 47.4699 -87.4346 10.09 +v 46.1551 -87.4346 14.9967 +v 44.3347 -87.4346 19.7391 +v 42.0285 -87.4346 24.2652 +v 39.2619 -87.4346 28.5254 +v 36.0651 -87.4346 32.4731 +v 32.4732 -87.4346 36.0651 +v 28.5255 -87.4346 39.2619 +v 24.2652 -87.4346 42.0285 +v 19.7391 -87.4346 44.3347 +v 14.9967 -87.4346 46.1551 +v 10.0901 -87.4346 47.4698 +v 5.07286 -87.4346 48.2645 +v 5.57314e-05 -87.4346 48.5304 +v -5.07274 -87.4346 48.2645 +v -10.09 -87.4346 47.4699 +v -14.9966 -87.4346 46.1551 +v -19.739 -87.4346 44.3347 +v -24.2651 -87.4346 42.0286 +v -28.5254 -87.4346 39.2619 +v -32.4731 -87.4346 36.0652 +v -36.065 -87.4346 32.4732 +v -39.2618 -87.4346 28.5255 +v -42.0285 -87.4346 24.2653 +v -44.3347 -87.4346 19.7392 +v -46.1551 -87.4346 14.9968 +v -47.4698 -87.4346 10.0901 +v -48.2645 -87.4346 5.07291 +v -48.5304 -87.4346 0.000111463 +v -48.2645 -87.4346 -5.07269 +v -47.4699 -87.4346 -10.0899 +v -46.1552 -87.4346 -14.9966 +v -44.3347 -87.4346 -19.739 +v -42.0286 -87.4346 -24.2651 +v -39.262 -87.4346 -28.5253 +v -36.0652 -87.4346 -32.473 +v -32.4733 -87.4346 -36.065 +v -28.5256 -87.4346 -39.2618 +v -24.2653 -87.4346 -42.0285 +v -19.7392 -87.4346 -44.3346 +v -14.9969 -87.4346 -46.1551 +v -10.0902 -87.4346 -47.4698 +v -5.07298 -87.4346 -48.2645 +v -0.000161409 -87.4346 -48.5304 +v 5.07264 -87.4346 -48.2645 +v 10.0899 -87.4346 -47.4699 +v 14.9965 -87.4346 -46.1552 +v 19.7389 -87.4346 -44.3348 +v 24.265 -87.4346 -42.0286 +v 28.5253 -87.4346 -39.262 +v 32.473 -87.4346 -36.0652 +v 36.065 -87.4346 -32.4733 +v 39.2618 -87.4346 -28.5256 +v 42.0284 -87.4346 -24.2654 +v 44.3346 -87.4346 -19.7393 +v 46.155 -87.4346 -14.9969 +v 47.4698 -87.4346 -10.0902 +v 48.2645 -87.4346 -5.07302 +v 39.4358 -91.8957 5.88009e-39 +v 39.2197 -91.8957 4.12216 +v 38.574 -91.8957 8.19915 +v 37.5057 -91.8957 12.1863 +v 36.0264 -91.8957 16.04 +v 34.1524 -91.8957 19.7179 +v 31.9042 -91.8957 23.1798 +v 29.3065 -91.8957 26.3877 +v 26.3877 -91.8957 29.3065 +v 23.1798 -91.8957 31.9042 +v 19.7179 -91.8957 34.1524 +v 16.04 -91.8957 36.0264 +v 12.1864 -91.8957 37.5056 +v 8.1992 -91.8957 38.574 +v 4.12221 -91.8957 39.2197 +v 4.52873e-05 -91.8957 39.4358 +v -4.12211 -91.8957 39.2198 +v -8.19911 -91.8957 38.574 +v -12.1863 -91.8957 37.5057 +v -16.0399 -91.8957 36.0264 +v -19.7178 -91.8957 34.1524 +v -23.1797 -91.8957 31.9043 +v -26.3876 -91.8957 29.3065 +v -29.3065 -91.8957 26.3877 +v -31.9042 -91.8957 23.1798 +v -34.1524 -91.8957 19.718 +v -36.0263 -91.8957 16.0401 +v -37.5056 -91.8957 12.1864 +v -38.574 -91.8957 8.19925 +v -39.2197 -91.8957 4.12225 +v -39.4358 -91.8957 9.05746e-05 +v -39.2198 -91.8957 -4.12207 +v -38.574 -91.8957 -8.19906 +v -37.5057 -91.8957 -12.1862 +v -36.0264 -91.8957 -16.0399 +v -34.1524 -91.8957 -19.7178 +v -31.9043 -91.8957 -23.1797 +v -29.3066 -91.8957 -26.3876 +v -26.3878 -91.8957 -29.3064 +v -23.1799 -91.8957 -31.9041 +v -19.718 -91.8957 -34.1523 +v -16.0401 -91.8957 -36.0263 +v -12.1865 -91.8957 -37.5056 +v -8.1993 -91.8957 -38.574 +v -4.12231 -91.8957 -39.2197 +v -0.000131161 -91.8957 -39.4358 +v 4.12203 -91.8957 -39.2198 +v 8.19902 -91.8957 -38.574 +v 12.1862 -91.8957 -37.5057 +v 16.0398 -91.8957 -36.0264 +v 19.7178 -91.8957 -34.1525 +v 23.1796 -91.8957 -31.9043 +v 26.3876 -91.8957 -29.3066 +v 29.3064 -91.8957 -26.3878 +v 31.9041 -91.8957 -23.1799 +v 34.1523 -91.8957 -19.718 +v 36.0263 -91.8957 -16.0401 +v 37.5056 -91.8957 -12.1865 +v 38.574 -91.8957 -8.19933 +v 39.2197 -91.8957 -4.12234 +v 29.9365 -95.4139 5.88009e-39 +v 29.7725 -95.4139 3.12922 +v 29.2823 -95.4139 6.22415 +v 28.4713 -95.4139 9.25089 +v 27.3484 -95.4139 12.1763 +v 25.9258 -95.4139 14.9682 +v 24.2192 -95.4139 17.5962 +v 22.2472 -95.4139 20.0314 +v 20.0315 -95.4139 22.2472 +v 17.5963 -95.4139 24.2191 +v 14.9683 -95.4139 25.9258 +v 12.1763 -95.4139 27.3484 +v 9.25092 -95.4139 28.4713 +v 6.22418 -95.4139 29.2823 +v 3.12925 -95.4139 29.7725 +v 3.43785e-05 -95.4139 29.9365 +v -3.12918 -95.4139 29.7725 +v -6.22411 -95.4139 29.2823 +v -9.25085 -95.4139 28.4713 +v -12.1762 -95.4139 27.3484 +v -14.9682 -95.4139 25.9258 +v -17.5962 -95.4139 24.2192 +v -20.0314 -95.4139 22.2472 +v -22.2471 -95.4139 20.0315 +v -24.2191 -95.4139 17.5963 +v -25.9258 -95.4139 14.9683 +v -27.3483 -95.4139 12.1763 +v -28.4713 -95.4139 9.25095 +v -29.2823 -95.4139 6.22422 +v -29.7725 -95.4139 3.12928 +v -29.9365 -95.4139 6.87571e-05 +v -29.7725 -95.4139 -3.12915 +v -29.2823 -95.4139 -6.22408 +v -28.4713 -95.4139 -9.25082 +v -27.3484 -95.4139 -12.1762 +v -25.9258 -95.4139 -14.9682 +v -24.2192 -95.4139 -17.5962 +v -22.2472 -95.4139 -20.0314 +v -20.0315 -95.4139 -22.2471 +v -17.5963 -95.4139 -24.2191 +v -14.9683 -95.4139 -25.9257 +v -12.1764 -95.4139 -27.3483 +v -9.25099 -95.4139 -28.4713 +v -6.22426 -95.4139 -29.2823 +v -3.12933 -95.4139 -29.7725 +v -9.95669e-05 -95.4139 -29.9365 +v 3.12912 -95.4139 -29.7725 +v 6.22405 -95.4139 -29.2824 +v 9.25079 -95.4139 -28.4714 +v 12.1762 -95.4139 -27.3484 +v 14.9682 -95.4139 -25.9258 +v 17.5961 -95.4139 -24.2192 +v 20.0313 -95.4139 -22.2472 +v 22.2471 -95.4139 -20.0315 +v 24.2191 -95.4139 -17.5963 +v 25.9257 -95.4139 -14.9684 +v 27.3483 -95.4139 -12.1764 +v 28.4713 -95.4139 -9.25103 +v 29.2823 -95.4139 -6.22428 +v 29.7725 -95.4139 -3.12935 +v 20.1301 -97.9529 5.88009e-39 +v 20.0198 -97.9529 2.10416 +v 19.6902 -97.9529 4.18528 +v 19.1448 -97.9529 6.22053 +v 18.3897 -97.9529 8.18764 +v 17.4332 -97.9529 10.065 +v 16.2856 -97.9529 11.8322 +v 14.9596 -97.9529 13.4696 +v 13.4697 -97.9529 14.9596 +v 11.8322 -97.9529 16.2856 +v 10.0651 -97.9529 17.4332 +v 8.18766 -97.9529 18.3897 +v 6.22055 -97.9529 19.1448 +v 4.1853 -97.9529 19.6902 +v 2.10419 -97.9529 20.0198 +v 2.3117e-05 -97.9529 20.1301 +v -2.10414 -97.9529 20.0198 +v -4.18525 -97.9529 19.6902 +v -6.22051 -97.9529 19.1449 +v -8.18761 -97.9529 18.3898 +v -10.065 -97.9529 17.4332 +v -11.8321 -97.9529 16.2856 +v -13.4696 -97.9529 14.9596 +v -14.9595 -97.9529 13.4697 +v -16.2856 -97.9529 11.8322 +v -17.4331 -97.9529 10.0651 +v -18.3897 -97.9529 8.18768 +v -19.1448 -97.9529 6.22058 +v -19.6902 -97.9529 4.18532 +v -20.0198 -97.9529 2.10421 +v -20.1301 -97.9529 4.6234e-05 +v -20.0198 -97.9529 -2.10412 +v -19.6902 -97.9529 -4.18523 +v -19.1449 -97.9529 -6.22049 +v -18.3898 -97.9529 -8.18759 +v -17.4332 -97.9529 -10.065 +v -16.2856 -97.9529 -11.8321 +v -14.9596 -97.9529 -13.4696 +v -13.4697 -97.9529 -14.9595 +v -11.8322 -97.9529 -16.2855 +v -10.0651 -97.9529 -17.4331 +v -8.1877 -97.9529 -18.3897 +v -6.2206 -97.9529 -19.1448 +v -4.18535 -97.9529 -19.6902 +v -2.10424 -97.9529 -20.0198 +v -6.69513e-05 -97.9529 -20.1301 +v 2.1041 -97.9529 -20.0198 +v 4.18521 -97.9529 -19.6902 +v 6.22047 -97.9529 -19.1449 +v 8.18757 -97.9529 -18.3898 +v 10.065 -97.9529 -17.4332 +v 11.8321 -97.9529 -16.2856 +v 13.4696 -97.9529 -14.9596 +v 14.9595 -97.9529 -13.4697 +v 16.2855 -97.9529 -11.8322 +v 17.4331 -97.9529 -10.0651 +v 18.3897 -97.9529 -8.18773 +v 19.1448 -97.9529 -6.22063 +v 19.6902 -97.9529 -4.18537 +v 20.0198 -97.9529 -2.10426 +v 10.1171 -99.4869 5.88009e-39 +v 10.0616 -99.4869 1.05752 +v 9.89598 -99.4869 2.10345 +v 9.6219 -99.4869 3.12634 +v 9.2424 -99.4869 4.11498 +v 8.76164 -99.4869 5.05853 +v 8.18488 -99.4869 5.94666 +v 7.51845 -99.4869 6.76963 +v 6.76964 -99.4869 7.51844 +v 5.94667 -99.4869 8.18487 +v 5.05854 -99.4869 8.76163 +v 4.11499 -99.4869 9.24239 +v 3.12635 -99.4869 9.6219 +v 2.10347 -99.4869 9.89598 +v 1.05753 -99.4869 10.0616 +v 1.16182e-05 -99.4869 10.1171 +v -1.05751 -99.4869 10.0616 +v -2.10344 -99.4869 9.89598 +v -3.12633 -99.4869 9.6219 +v -4.11497 -99.4869 9.2424 +v -5.05852 -99.4869 8.76164 +v -5.94665 -99.4869 8.18489 +v -6.76962 -99.4869 7.51846 +v -7.51843 -99.4869 6.76965 +v -8.18486 -99.4869 5.94668 +v -8.76162 -99.4869 5.05855 +v -9.24239 -99.4869 4.115 +v -9.62189 -99.4869 3.12637 +v -9.89598 -99.4869 2.10348 +v -10.0616 -99.4869 1.05754 +v -10.1171 -99.4869 2.32365e-05 +v -10.0616 -99.4869 -1.0575 +v -9.89599 -99.4869 -2.10343 +v -9.62191 -99.4869 -3.12632 +v -9.24241 -99.4869 -4.11495 +v -8.76165 -99.4869 -5.05851 +v -8.18489 -99.4869 -5.94664 +v -7.51846 -99.4869 -6.76962 +v -6.76966 -99.4869 -7.51842 +v -5.94669 -99.4869 -8.18486 +v -5.05856 -99.4869 -8.76162 +v -4.11501 -99.4869 -9.24238 +v -3.12638 -99.4869 -9.62189 +v -2.10349 -99.4869 -9.89597 +v -1.05756 -99.4869 -10.0616 +v -3.36487e-05 -99.4869 -10.1171 +v 1.05749 -99.4869 -10.0616 +v 2.10342 -99.4869 -9.89599 +v 3.12631 -99.4869 -9.62191 +v 4.11495 -99.4869 -9.24241 +v 5.0585 -99.4869 -8.76165 +v 5.94663 -99.4869 -8.1849 +v 6.76961 -99.4869 -7.51847 +v 7.51841 -99.4869 -6.76967 +v 8.18485 -99.4869 -5.9467 +v 8.76161 -99.4869 -5.05857 +v 9.24238 -99.4869 -4.11502 +v 9.62188 -99.4869 -3.12639 +v 9.89597 -99.4869 -2.1035 +v 10.0616 -99.4869 -1.05757 +f 3 4 64 63 +f 4 5 65 64 +f 5 6 66 65 +f 6 7 67 66 +f 7 8 68 67 +f 8 9 69 68 +f 9 10 70 69 +f 10 11 71 70 +f 11 12 72 71 +f 12 13 73 72 +f 13 14 74 73 +f 14 15 75 74 +f 15 16 76 75 +f 16 17 77 76 +f 17 18 78 77 +f 18 19 79 78 +f 19 20 80 79 +f 20 21 81 80 +f 21 22 82 81 +f 22 23 83 82 +f 23 24 84 83 +f 24 25 85 84 +f 25 26 86 85 +f 26 27 87 86 +f 27 28 88 87 +f 28 29 89 88 +f 29 30 90 89 +f 30 31 91 90 +f 31 32 92 91 +f 32 33 93 92 +f 33 34 94 93 +f 34 35 95 94 +f 35 36 96 95 +f 36 37 97 96 +f 37 38 98 97 +f 38 39 99 98 +f 39 40 100 99 +f 40 41 101 100 +f 41 42 102 101 +f 42 43 103 102 +f 43 44 104 103 +f 44 45 105 104 +f 45 46 106 105 +f 46 47 107 106 +f 47 48 108 107 +f 48 49 109 108 +f 49 50 110 109 +f 50 51 111 110 +f 51 52 112 111 +f 52 53 113 112 +f 53 54 114 113 +f 54 55 115 114 +f 55 56 116 115 +f 56 57 117 116 +f 57 58 118 117 +f 58 59 119 118 +f 59 60 120 119 +f 60 61 121 120 +f 61 62 122 121 +f 62 3 63 122 +f 63 64 124 123 +f 64 65 125 124 +f 65 66 126 125 +f 66 67 127 126 +f 67 68 128 127 +f 68 69 129 128 +f 69 70 130 129 +f 70 71 131 130 +f 71 72 132 131 +f 72 73 133 132 +f 73 74 134 133 +f 74 75 135 134 +f 75 76 136 135 +f 76 77 137 136 +f 77 78 138 137 +f 78 79 139 138 +f 79 80 140 139 +f 80 81 141 140 +f 81 82 142 141 +f 82 83 143 142 +f 83 84 144 143 +f 84 85 145 144 +f 85 86 146 145 +f 86 87 147 146 +f 87 88 148 147 +f 88 89 149 148 +f 89 90 150 149 +f 90 91 151 150 +f 91 92 152 151 +f 92 93 153 152 +f 93 94 154 153 +f 94 95 155 154 +f 95 96 156 155 +f 96 97 157 156 +f 97 98 158 157 +f 98 99 159 158 +f 99 100 160 159 +f 100 101 161 160 +f 101 102 162 161 +f 102 103 163 162 +f 103 104 164 163 +f 104 105 165 164 +f 105 106 166 165 +f 106 107 167 166 +f 107 108 168 167 +f 108 109 169 168 +f 109 110 170 169 +f 110 111 171 170 +f 111 112 172 171 +f 112 113 173 172 +f 113 114 174 173 +f 114 115 175 174 +f 115 116 176 175 +f 116 117 177 176 +f 117 118 178 177 +f 118 119 179 178 +f 119 120 180 179 +f 120 121 181 180 +f 121 122 182 181 +f 122 63 123 182 +f 123 124 184 183 +f 124 125 185 184 +f 125 126 186 185 +f 126 127 187 186 +f 127 128 188 187 +f 128 129 189 188 +f 129 130 190 189 +f 130 131 191 190 +f 131 132 192 191 +f 132 133 193 192 +f 133 134 194 193 +f 134 135 195 194 +f 135 136 196 195 +f 136 137 197 196 +f 137 138 198 197 +f 138 139 199 198 +f 139 140 200 199 +f 140 141 201 200 +f 141 142 202 201 +f 142 143 203 202 +f 143 144 204 203 +f 144 145 205 204 +f 145 146 206 205 +f 146 147 207 206 +f 147 148 208 207 +f 148 149 209 208 +f 149 150 210 209 +f 150 151 211 210 +f 151 152 212 211 +f 152 153 213 212 +f 153 154 214 213 +f 154 155 215 214 +f 155 156 216 215 +f 156 157 217 216 +f 157 158 218 217 +f 158 159 219 218 +f 159 160 220 219 +f 160 161 221 220 +f 161 162 222 221 +f 162 163 223 222 +f 163 164 224 223 +f 164 165 225 224 +f 165 166 226 225 +f 166 167 227 226 +f 167 168 228 227 +f 168 169 229 228 +f 169 170 230 229 +f 170 171 231 230 +f 171 172 232 231 +f 172 173 233 232 +f 173 174 234 233 +f 174 175 235 234 +f 175 176 236 235 +f 176 177 237 236 +f 177 178 238 237 +f 178 179 239 238 +f 179 180 240 239 +f 180 181 241 240 +f 181 182 242 241 +f 182 123 183 242 +f 183 184 244 243 +f 184 185 245 244 +f 185 186 246 245 +f 186 187 247 246 +f 187 188 248 247 +f 188 189 249 248 +f 189 190 250 249 +f 190 191 251 250 +f 191 192 252 251 +f 192 193 253 252 +f 193 194 254 253 +f 194 195 255 254 +f 195 196 256 255 +f 196 197 257 256 +f 197 198 258 257 +f 198 199 259 258 +f 199 200 260 259 +f 200 201 261 260 +f 201 202 262 261 +f 202 203 263 262 +f 203 204 264 263 +f 204 205 265 264 +f 205 206 266 265 +f 206 207 267 266 +f 207 208 268 267 +f 208 209 269 268 +f 209 210 270 269 +f 210 211 271 270 +f 211 212 272 271 +f 212 213 273 272 +f 213 214 274 273 +f 214 215 275 274 +f 215 216 276 275 +f 216 217 277 276 +f 217 218 278 277 +f 218 219 279 278 +f 219 220 280 279 +f 220 221 281 280 +f 221 222 282 281 +f 222 223 283 282 +f 223 224 284 283 +f 224 225 285 284 +f 225 226 286 285 +f 226 227 287 286 +f 227 228 288 287 +f 228 229 289 288 +f 229 230 290 289 +f 230 231 291 290 +f 231 232 292 291 +f 232 233 293 292 +f 233 234 294 293 +f 234 235 295 294 +f 235 236 296 295 +f 236 237 297 296 +f 237 238 298 297 +f 238 239 299 298 +f 239 240 300 299 +f 240 241 301 300 +f 241 242 302 301 +f 242 183 243 302 +f 243 244 304 303 +f 244 245 305 304 +f 245 246 306 305 +f 246 247 307 306 +f 247 248 308 307 +f 248 249 309 308 +f 249 250 310 309 +f 250 251 311 310 +f 251 252 312 311 +f 252 253 313 312 +f 253 254 314 313 +f 254 255 315 314 +f 255 256 316 315 +f 256 257 317 316 +f 257 258 318 317 +f 258 259 319 318 +f 259 260 320 319 +f 260 261 321 320 +f 261 262 322 321 +f 262 263 323 322 +f 263 264 324 323 +f 264 265 325 324 +f 265 266 326 325 +f 266 267 327 326 +f 267 268 328 327 +f 268 269 329 328 +f 269 270 330 329 +f 270 271 331 330 +f 271 272 332 331 +f 272 273 333 332 +f 273 274 334 333 +f 274 275 335 334 +f 275 276 336 335 +f 276 277 337 336 +f 277 278 338 337 +f 278 279 339 338 +f 279 280 340 339 +f 280 281 341 340 +f 281 282 342 341 +f 282 283 343 342 +f 283 284 344 343 +f 284 285 345 344 +f 285 286 346 345 +f 286 287 347 346 +f 287 288 348 347 +f 288 289 349 348 +f 289 290 350 349 +f 290 291 351 350 +f 291 292 352 351 +f 292 293 353 352 +f 293 294 354 353 +f 294 295 355 354 +f 295 296 356 355 +f 296 297 357 356 +f 297 298 358 357 +f 298 299 359 358 +f 299 300 360 359 +f 300 301 361 360 +f 301 302 362 361 +f 302 243 303 362 +f 303 304 364 363 +f 304 305 365 364 +f 305 306 366 365 +f 306 307 367 366 +f 307 308 368 367 +f 308 309 369 368 +f 309 310 370 369 +f 310 311 371 370 +f 311 312 372 371 +f 312 313 373 372 +f 313 314 374 373 +f 314 315 375 374 +f 315 316 376 375 +f 316 317 377 376 +f 317 318 378 377 +f 318 319 379 378 +f 319 320 380 379 +f 320 321 381 380 +f 321 322 382 381 +f 322 323 383 382 +f 323 324 384 383 +f 324 325 385 384 +f 325 326 386 385 +f 326 327 387 386 +f 327 328 388 387 +f 328 329 389 388 +f 329 330 390 389 +f 330 331 391 390 +f 331 332 392 391 +f 332 333 393 392 +f 333 334 394 393 +f 334 335 395 394 +f 335 336 396 395 +f 336 337 397 396 +f 337 338 398 397 +f 338 339 399 398 +f 339 340 400 399 +f 340 341 401 400 +f 341 342 402 401 +f 342 343 403 402 +f 343 344 404 403 +f 344 345 405 404 +f 345 346 406 405 +f 346 347 407 406 +f 347 348 408 407 +f 348 349 409 408 +f 349 350 410 409 +f 350 351 411 410 +f 351 352 412 411 +f 352 353 413 412 +f 353 354 414 413 +f 354 355 415 414 +f 355 356 416 415 +f 356 357 417 416 +f 357 358 418 417 +f 358 359 419 418 +f 359 360 420 419 +f 360 361 421 420 +f 361 362 422 421 +f 362 303 363 422 +f 363 364 424 423 +f 364 365 425 424 +f 365 366 426 425 +f 366 367 427 426 +f 367 368 428 427 +f 368 369 429 428 +f 369 370 430 429 +f 370 371 431 430 +f 371 372 432 431 +f 372 373 433 432 +f 373 374 434 433 +f 374 375 435 434 +f 375 376 436 435 +f 376 377 437 436 +f 377 378 438 437 +f 378 379 439 438 +f 379 380 440 439 +f 380 381 441 440 +f 381 382 442 441 +f 382 383 443 442 +f 383 384 444 443 +f 384 385 445 444 +f 385 386 446 445 +f 386 387 447 446 +f 387 388 448 447 +f 388 389 449 448 +f 389 390 450 449 +f 390 391 451 450 +f 391 392 452 451 +f 392 393 453 452 +f 393 394 454 453 +f 394 395 455 454 +f 395 396 456 455 +f 396 397 457 456 +f 397 398 458 457 +f 398 399 459 458 +f 399 400 460 459 +f 400 401 461 460 +f 401 402 462 461 +f 402 403 463 462 +f 403 404 464 463 +f 404 405 465 464 +f 405 406 466 465 +f 406 407 467 466 +f 407 408 468 467 +f 408 409 469 468 +f 409 410 470 469 +f 410 411 471 470 +f 411 412 472 471 +f 412 413 473 472 +f 413 414 474 473 +f 414 415 475 474 +f 415 416 476 475 +f 416 417 477 476 +f 417 418 478 477 +f 418 419 479 478 +f 419 420 480 479 +f 420 421 481 480 +f 421 422 482 481 +f 422 363 423 482 +f 423 424 484 483 +f 424 425 485 484 +f 425 426 486 485 +f 426 427 487 486 +f 427 428 488 487 +f 428 429 489 488 +f 429 430 490 489 +f 430 431 491 490 +f 431 432 492 491 +f 432 433 493 492 +f 433 434 494 493 +f 434 435 495 494 +f 435 436 496 495 +f 436 437 497 496 +f 437 438 498 497 +f 438 439 499 498 +f 439 440 500 499 +f 440 441 501 500 +f 441 442 502 501 +f 442 443 503 502 +f 443 444 504 503 +f 444 445 505 504 +f 445 446 506 505 +f 446 447 507 506 +f 447 448 508 507 +f 448 449 509 508 +f 449 450 510 509 +f 450 451 511 510 +f 451 452 512 511 +f 452 453 513 512 +f 453 454 514 513 +f 454 455 515 514 +f 455 456 516 515 +f 456 457 517 516 +f 457 458 518 517 +f 458 459 519 518 +f 459 460 520 519 +f 460 461 521 520 +f 461 462 522 521 +f 462 463 523 522 +f 463 464 524 523 +f 464 465 525 524 +f 465 466 526 525 +f 466 467 527 526 +f 467 468 528 527 +f 468 469 529 528 +f 469 470 530 529 +f 470 471 531 530 +f 471 472 532 531 +f 472 473 533 532 +f 473 474 534 533 +f 474 475 535 534 +f 475 476 536 535 +f 476 477 537 536 +f 477 478 538 537 +f 478 479 539 538 +f 479 480 540 539 +f 480 481 541 540 +f 481 482 542 541 +f 482 423 483 542 +f 483 484 544 543 +f 484 485 545 544 +f 485 486 546 545 +f 486 487 547 546 +f 487 488 548 547 +f 488 489 549 548 +f 489 490 550 549 +f 490 491 551 550 +f 491 492 552 551 +f 492 493 553 552 +f 493 494 554 553 +f 494 495 555 554 +f 495 496 556 555 +f 496 497 557 556 +f 497 498 558 557 +f 498 499 559 558 +f 499 500 560 559 +f 500 501 561 560 +f 501 502 562 561 +f 502 503 563 562 +f 503 504 564 563 +f 504 505 565 564 +f 505 506 566 565 +f 506 507 567 566 +f 507 508 568 567 +f 508 509 569 568 +f 509 510 570 569 +f 510 511 571 570 +f 511 512 572 571 +f 512 513 573 572 +f 513 514 574 573 +f 514 515 575 574 +f 515 516 576 575 +f 516 517 577 576 +f 517 518 578 577 +f 518 519 579 578 +f 519 520 580 579 +f 520 521 581 580 +f 521 522 582 581 +f 522 523 583 582 +f 523 524 584 583 +f 524 525 585 584 +f 525 526 586 585 +f 526 527 587 586 +f 527 528 588 587 +f 528 529 589 588 +f 529 530 590 589 +f 530 531 591 590 +f 531 532 592 591 +f 532 533 593 592 +f 533 534 594 593 +f 534 535 595 594 +f 535 536 596 595 +f 536 537 597 596 +f 537 538 598 597 +f 538 539 599 598 +f 539 540 600 599 +f 540 541 601 600 +f 541 542 602 601 +f 542 483 543 602 +f 543 544 604 603 +f 544 545 605 604 +f 545 546 606 605 +f 546 547 607 606 +f 547 548 608 607 +f 548 549 609 608 +f 549 550 610 609 +f 550 551 611 610 +f 551 552 612 611 +f 552 553 613 612 +f 553 554 614 613 +f 554 555 615 614 +f 555 556 616 615 +f 556 557 617 616 +f 557 558 618 617 +f 558 559 619 618 +f 559 560 620 619 +f 560 561 621 620 +f 561 562 622 621 +f 562 563 623 622 +f 563 564 624 623 +f 564 565 625 624 +f 565 566 626 625 +f 566 567 627 626 +f 567 568 628 627 +f 568 569 629 628 +f 569 570 630 629 +f 570 571 631 630 +f 571 572 632 631 +f 572 573 633 632 +f 573 574 634 633 +f 574 575 635 634 +f 575 576 636 635 +f 576 577 637 636 +f 577 578 638 637 +f 578 579 639 638 +f 579 580 640 639 +f 580 581 641 640 +f 581 582 642 641 +f 582 583 643 642 +f 583 584 644 643 +f 584 585 645 644 +f 585 586 646 645 +f 586 587 647 646 +f 587 588 648 647 +f 588 589 649 648 +f 589 590 650 649 +f 590 591 651 650 +f 591 592 652 651 +f 592 593 653 652 +f 593 594 654 653 +f 594 595 655 654 +f 595 596 656 655 +f 596 597 657 656 +f 597 598 658 657 +f 598 599 659 658 +f 599 600 660 659 +f 600 601 661 660 +f 601 602 662 661 +f 602 543 603 662 +f 603 604 664 663 +f 604 605 665 664 +f 605 606 666 665 +f 606 607 667 666 +f 607 608 668 667 +f 608 609 669 668 +f 609 610 670 669 +f 610 611 671 670 +f 611 612 672 671 +f 612 613 673 672 +f 613 614 674 673 +f 614 615 675 674 +f 615 616 676 675 +f 616 617 677 676 +f 617 618 678 677 +f 618 619 679 678 +f 619 620 680 679 +f 620 621 681 680 +f 621 622 682 681 +f 622 623 683 682 +f 623 624 684 683 +f 624 625 685 684 +f 625 626 686 685 +f 626 627 687 686 +f 627 628 688 687 +f 628 629 689 688 +f 629 630 690 689 +f 630 631 691 690 +f 631 632 692 691 +f 632 633 693 692 +f 633 634 694 693 +f 634 635 695 694 +f 635 636 696 695 +f 636 637 697 696 +f 637 638 698 697 +f 638 639 699 698 +f 639 640 700 699 +f 640 641 701 700 +f 641 642 702 701 +f 642 643 703 702 +f 643 644 704 703 +f 644 645 705 704 +f 645 646 706 705 +f 646 647 707 706 +f 647 648 708 707 +f 648 649 709 708 +f 649 650 710 709 +f 650 651 711 710 +f 651 652 712 711 +f 652 653 713 712 +f 653 654 714 713 +f 654 655 715 714 +f 655 656 716 715 +f 656 657 717 716 +f 657 658 718 717 +f 658 659 719 718 +f 659 660 720 719 +f 660 661 721 720 +f 661 662 722 721 +f 662 603 663 722 +f 663 664 724 723 +f 664 665 725 724 +f 665 666 726 725 +f 666 667 727 726 +f 667 668 728 727 +f 668 669 729 728 +f 669 670 730 729 +f 670 671 731 730 +f 671 672 732 731 +f 672 673 733 732 +f 673 674 734 733 +f 674 675 735 734 +f 675 676 736 735 +f 676 677 737 736 +f 677 678 738 737 +f 678 679 739 738 +f 679 680 740 739 +f 680 681 741 740 +f 681 682 742 741 +f 682 683 743 742 +f 683 684 744 743 +f 684 685 745 744 +f 685 686 746 745 +f 686 687 747 746 +f 687 688 748 747 +f 688 689 749 748 +f 689 690 750 749 +f 690 691 751 750 +f 691 692 752 751 +f 692 693 753 752 +f 693 694 754 753 +f 694 695 755 754 +f 695 696 756 755 +f 696 697 757 756 +f 697 698 758 757 +f 698 699 759 758 +f 699 700 760 759 +f 700 701 761 760 +f 701 702 762 761 +f 702 703 763 762 +f 703 704 764 763 +f 704 705 765 764 +f 705 706 766 765 +f 706 707 767 766 +f 707 708 768 767 +f 708 709 769 768 +f 709 710 770 769 +f 710 711 771 770 +f 711 712 772 771 +f 712 713 773 772 +f 713 714 774 773 +f 714 715 775 774 +f 715 716 776 775 +f 716 717 777 776 +f 717 718 778 777 +f 718 719 779 778 +f 719 720 780 779 +f 720 721 781 780 +f 721 722 782 781 +f 722 663 723 782 +f 723 724 784 783 +f 724 725 785 784 +f 725 726 786 785 +f 726 727 787 786 +f 727 728 788 787 +f 728 729 789 788 +f 729 730 790 789 +f 730 731 791 790 +f 731 732 792 791 +f 732 733 793 792 +f 733 734 794 793 +f 734 735 795 794 +f 735 736 796 795 +f 736 737 797 796 +f 737 738 798 797 +f 738 739 799 798 +f 739 740 800 799 +f 740 741 801 800 +f 741 742 802 801 +f 742 743 803 802 +f 743 744 804 803 +f 744 745 805 804 +f 745 746 806 805 +f 746 747 807 806 +f 747 748 808 807 +f 748 749 809 808 +f 749 750 810 809 +f 750 751 811 810 +f 751 752 812 811 +f 752 753 813 812 +f 753 754 814 813 +f 754 755 815 814 +f 755 756 816 815 +f 756 757 817 816 +f 757 758 818 817 +f 758 759 819 818 +f 759 760 820 819 +f 760 761 821 820 +f 761 762 822 821 +f 762 763 823 822 +f 763 764 824 823 +f 764 765 825 824 +f 765 766 826 825 +f 766 767 827 826 +f 767 768 828 827 +f 768 769 829 828 +f 769 770 830 829 +f 770 771 831 830 +f 771 772 832 831 +f 772 773 833 832 +f 773 774 834 833 +f 774 775 835 834 +f 775 776 836 835 +f 776 777 837 836 +f 777 778 838 837 +f 778 779 839 838 +f 779 780 840 839 +f 780 781 841 840 +f 781 782 842 841 +f 782 723 783 842 +f 783 784 844 843 +f 784 785 845 844 +f 785 786 846 845 +f 786 787 847 846 +f 787 788 848 847 +f 788 789 849 848 +f 789 790 850 849 +f 790 791 851 850 +f 791 792 852 851 +f 792 793 853 852 +f 793 794 854 853 +f 794 795 855 854 +f 795 796 856 855 +f 796 797 857 856 +f 797 798 858 857 +f 798 799 859 858 +f 799 800 860 859 +f 800 801 861 860 +f 801 802 862 861 +f 802 803 863 862 +f 803 804 864 863 +f 804 805 865 864 +f 805 806 866 865 +f 806 807 867 866 +f 807 808 868 867 +f 808 809 869 868 +f 809 810 870 869 +f 810 811 871 870 +f 811 812 872 871 +f 812 813 873 872 +f 813 814 874 873 +f 814 815 875 874 +f 815 816 876 875 +f 816 817 877 876 +f 817 818 878 877 +f 818 819 879 878 +f 819 820 880 879 +f 820 821 881 880 +f 821 822 882 881 +f 822 823 883 882 +f 823 824 884 883 +f 824 825 885 884 +f 825 826 886 885 +f 826 827 887 886 +f 827 828 888 887 +f 828 829 889 888 +f 829 830 890 889 +f 830 831 891 890 +f 831 832 892 891 +f 832 833 893 892 +f 833 834 894 893 +f 834 835 895 894 +f 835 836 896 895 +f 836 837 897 896 +f 837 838 898 897 +f 838 839 899 898 +f 839 840 900 899 +f 840 841 901 900 +f 841 842 902 901 +f 842 783 843 902 +f 843 844 904 903 +f 844 845 905 904 +f 845 846 906 905 +f 846 847 907 906 +f 847 848 908 907 +f 848 849 909 908 +f 849 850 910 909 +f 850 851 911 910 +f 851 852 912 911 +f 852 853 913 912 +f 853 854 914 913 +f 854 855 915 914 +f 855 856 916 915 +f 856 857 917 916 +f 857 858 918 917 +f 858 859 919 918 +f 859 860 920 919 +f 860 861 921 920 +f 861 862 922 921 +f 862 863 923 922 +f 863 864 924 923 +f 864 865 925 924 +f 865 866 926 925 +f 866 867 927 926 +f 867 868 928 927 +f 868 869 929 928 +f 869 870 930 929 +f 870 871 931 930 +f 871 872 932 931 +f 872 873 933 932 +f 873 874 934 933 +f 874 875 935 934 +f 875 876 936 935 +f 876 877 937 936 +f 877 878 938 937 +f 878 879 939 938 +f 879 880 940 939 +f 880 881 941 940 +f 881 882 942 941 +f 882 883 943 942 +f 883 884 944 943 +f 884 885 945 944 +f 885 886 946 945 +f 886 887 947 946 +f 887 888 948 947 +f 888 889 949 948 +f 889 890 950 949 +f 890 891 951 950 +f 891 892 952 951 +f 892 893 953 952 +f 893 894 954 953 +f 894 895 955 954 +f 895 896 956 955 +f 896 897 957 956 +f 897 898 958 957 +f 898 899 959 958 +f 899 900 960 959 +f 900 901 961 960 +f 901 902 962 961 +f 902 843 903 962 +f 903 904 964 963 +f 904 905 965 964 +f 905 906 966 965 +f 906 907 967 966 +f 907 908 968 967 +f 908 909 969 968 +f 909 910 970 969 +f 910 911 971 970 +f 911 912 972 971 +f 912 913 973 972 +f 913 914 974 973 +f 914 915 975 974 +f 915 916 976 975 +f 916 917 977 976 +f 917 918 978 977 +f 918 919 979 978 +f 919 920 980 979 +f 920 921 981 980 +f 921 922 982 981 +f 922 923 983 982 +f 923 924 984 983 +f 924 925 985 984 +f 925 926 986 985 +f 926 927 987 986 +f 927 928 988 987 +f 928 929 989 988 +f 929 930 990 989 +f 930 931 991 990 +f 931 932 992 991 +f 932 933 993 992 +f 933 934 994 993 +f 934 935 995 994 +f 935 936 996 995 +f 936 937 997 996 +f 937 938 998 997 +f 938 939 999 998 +f 939 940 1000 999 +f 940 941 1001 1000 +f 941 942 1002 1001 +f 942 943 1003 1002 +f 943 944 1004 1003 +f 944 945 1005 1004 +f 945 946 1006 1005 +f 946 947 1007 1006 +f 947 948 1008 1007 +f 948 949 1009 1008 +f 949 950 1010 1009 +f 950 951 1011 1010 +f 951 952 1012 1011 +f 952 953 1013 1012 +f 953 954 1014 1013 +f 954 955 1015 1014 +f 955 956 1016 1015 +f 956 957 1017 1016 +f 957 958 1018 1017 +f 958 959 1019 1018 +f 959 960 1020 1019 +f 960 961 1021 1020 +f 961 962 1022 1021 +f 962 903 963 1022 +f 963 964 1024 1023 +f 964 965 1025 1024 +f 965 966 1026 1025 +f 966 967 1027 1026 +f 967 968 1028 1027 +f 968 969 1029 1028 +f 969 970 1030 1029 +f 970 971 1031 1030 +f 971 972 1032 1031 +f 972 973 1033 1032 +f 973 974 1034 1033 +f 974 975 1035 1034 +f 975 976 1036 1035 +f 976 977 1037 1036 +f 977 978 1038 1037 +f 978 979 1039 1038 +f 979 980 1040 1039 +f 980 981 1041 1040 +f 981 982 1042 1041 +f 982 983 1043 1042 +f 983 984 1044 1043 +f 984 985 1045 1044 +f 985 986 1046 1045 +f 986 987 1047 1046 +f 987 988 1048 1047 +f 988 989 1049 1048 +f 989 990 1050 1049 +f 990 991 1051 1050 +f 991 992 1052 1051 +f 992 993 1053 1052 +f 993 994 1054 1053 +f 994 995 1055 1054 +f 995 996 1056 1055 +f 996 997 1057 1056 +f 997 998 1058 1057 +f 998 999 1059 1058 +f 999 1000 1060 1059 +f 1000 1001 1061 1060 +f 1001 1002 1062 1061 +f 1002 1003 1063 1062 +f 1003 1004 1064 1063 +f 1004 1005 1065 1064 +f 1005 1006 1066 1065 +f 1006 1007 1067 1066 +f 1007 1008 1068 1067 +f 1008 1009 1069 1068 +f 1009 1010 1070 1069 +f 1010 1011 1071 1070 +f 1011 1012 1072 1071 +f 1012 1013 1073 1072 +f 1013 1014 1074 1073 +f 1014 1015 1075 1074 +f 1015 1016 1076 1075 +f 1016 1017 1077 1076 +f 1017 1018 1078 1077 +f 1018 1019 1079 1078 +f 1019 1020 1080 1079 +f 1020 1021 1081 1080 +f 1021 1022 1082 1081 +f 1022 963 1023 1082 +f 1023 1024 1084 1083 +f 1024 1025 1085 1084 +f 1025 1026 1086 1085 +f 1026 1027 1087 1086 +f 1027 1028 1088 1087 +f 1028 1029 1089 1088 +f 1029 1030 1090 1089 +f 1030 1031 1091 1090 +f 1031 1032 1092 1091 +f 1032 1033 1093 1092 +f 1033 1034 1094 1093 +f 1034 1035 1095 1094 +f 1035 1036 1096 1095 +f 1036 1037 1097 1096 +f 1037 1038 1098 1097 +f 1038 1039 1099 1098 +f 1039 1040 1100 1099 +f 1040 1041 1101 1100 +f 1041 1042 1102 1101 +f 1042 1043 1103 1102 +f 1043 1044 1104 1103 +f 1044 1045 1105 1104 +f 1045 1046 1106 1105 +f 1046 1047 1107 1106 +f 1047 1048 1108 1107 +f 1048 1049 1109 1108 +f 1049 1050 1110 1109 +f 1050 1051 1111 1110 +f 1051 1052 1112 1111 +f 1052 1053 1113 1112 +f 1053 1054 1114 1113 +f 1054 1055 1115 1114 +f 1055 1056 1116 1115 +f 1056 1057 1117 1116 +f 1057 1058 1118 1117 +f 1058 1059 1119 1118 +f 1059 1060 1120 1119 +f 1060 1061 1121 1120 +f 1061 1062 1122 1121 +f 1062 1063 1123 1122 +f 1063 1064 1124 1123 +f 1064 1065 1125 1124 +f 1065 1066 1126 1125 +f 1066 1067 1127 1126 +f 1067 1068 1128 1127 +f 1068 1069 1129 1128 +f 1069 1070 1130 1129 +f 1070 1071 1131 1130 +f 1071 1072 1132 1131 +f 1072 1073 1133 1132 +f 1073 1074 1134 1133 +f 1074 1075 1135 1134 +f 1075 1076 1136 1135 +f 1076 1077 1137 1136 +f 1077 1078 1138 1137 +f 1078 1079 1139 1138 +f 1079 1080 1140 1139 +f 1080 1081 1141 1140 +f 1081 1082 1142 1141 +f 1082 1023 1083 1142 +f 1083 1084 1144 1143 +f 1084 1085 1145 1144 +f 1085 1086 1146 1145 +f 1086 1087 1147 1146 +f 1087 1088 1148 1147 +f 1088 1089 1149 1148 +f 1089 1090 1150 1149 +f 1090 1091 1151 1150 +f 1091 1092 1152 1151 +f 1092 1093 1153 1152 +f 1093 1094 1154 1153 +f 1094 1095 1155 1154 +f 1095 1096 1156 1155 +f 1096 1097 1157 1156 +f 1097 1098 1158 1157 +f 1098 1099 1159 1158 +f 1099 1100 1160 1159 +f 1100 1101 1161 1160 +f 1101 1102 1162 1161 +f 1102 1103 1163 1162 +f 1103 1104 1164 1163 +f 1104 1105 1165 1164 +f 1105 1106 1166 1165 +f 1106 1107 1167 1166 +f 1107 1108 1168 1167 +f 1108 1109 1169 1168 +f 1109 1110 1170 1169 +f 1110 1111 1171 1170 +f 1111 1112 1172 1171 +f 1112 1113 1173 1172 +f 1113 1114 1174 1173 +f 1114 1115 1175 1174 +f 1115 1116 1176 1175 +f 1116 1117 1177 1176 +f 1117 1118 1178 1177 +f 1118 1119 1179 1178 +f 1119 1120 1180 1179 +f 1120 1121 1181 1180 +f 1121 1122 1182 1181 +f 1122 1123 1183 1182 +f 1123 1124 1184 1183 +f 1124 1125 1185 1184 +f 1125 1126 1186 1185 +f 1126 1127 1187 1186 +f 1127 1128 1188 1187 +f 1128 1129 1189 1188 +f 1129 1130 1190 1189 +f 1130 1131 1191 1190 +f 1131 1132 1192 1191 +f 1132 1133 1193 1192 +f 1133 1134 1194 1193 +f 1134 1135 1195 1194 +f 1135 1136 1196 1195 +f 1136 1137 1197 1196 +f 1137 1138 1198 1197 +f 1138 1139 1199 1198 +f 1139 1140 1200 1199 +f 1140 1141 1201 1200 +f 1141 1142 1202 1201 +f 1142 1083 1143 1202 +f 1143 1144 1204 1203 +f 1144 1145 1205 1204 +f 1145 1146 1206 1205 +f 1146 1147 1207 1206 +f 1147 1148 1208 1207 +f 1148 1149 1209 1208 +f 1149 1150 1210 1209 +f 1150 1151 1211 1210 +f 1151 1152 1212 1211 +f 1152 1153 1213 1212 +f 1153 1154 1214 1213 +f 1154 1155 1215 1214 +f 1155 1156 1216 1215 +f 1156 1157 1217 1216 +f 1157 1158 1218 1217 +f 1158 1159 1219 1218 +f 1159 1160 1220 1219 +f 1160 1161 1221 1220 +f 1161 1162 1222 1221 +f 1162 1163 1223 1222 +f 1163 1164 1224 1223 +f 1164 1165 1225 1224 +f 1165 1166 1226 1225 +f 1166 1167 1227 1226 +f 1167 1168 1228 1227 +f 1168 1169 1229 1228 +f 1169 1170 1230 1229 +f 1170 1171 1231 1230 +f 1171 1172 1232 1231 +f 1172 1173 1233 1232 +f 1173 1174 1234 1233 +f 1174 1175 1235 1234 +f 1175 1176 1236 1235 +f 1176 1177 1237 1236 +f 1177 1178 1238 1237 +f 1178 1179 1239 1238 +f 1179 1180 1240 1239 +f 1180 1181 1241 1240 +f 1181 1182 1242 1241 +f 1182 1183 1243 1242 +f 1183 1184 1244 1243 +f 1184 1185 1245 1244 +f 1185 1186 1246 1245 +f 1186 1187 1247 1246 +f 1187 1188 1248 1247 +f 1188 1189 1249 1248 +f 1189 1190 1250 1249 +f 1190 1191 1251 1250 +f 1191 1192 1252 1251 +f 1192 1193 1253 1252 +f 1193 1194 1254 1253 +f 1194 1195 1255 1254 +f 1195 1196 1256 1255 +f 1196 1197 1257 1256 +f 1197 1198 1258 1257 +f 1198 1199 1259 1258 +f 1199 1200 1260 1259 +f 1200 1201 1261 1260 +f 1201 1202 1262 1261 +f 1202 1143 1203 1262 +f 1203 1204 1264 1263 +f 1204 1205 1265 1264 +f 1205 1206 1266 1265 +f 1206 1207 1267 1266 +f 1207 1208 1268 1267 +f 1208 1209 1269 1268 +f 1209 1210 1270 1269 +f 1210 1211 1271 1270 +f 1211 1212 1272 1271 +f 1212 1213 1273 1272 +f 1213 1214 1274 1273 +f 1214 1215 1275 1274 +f 1215 1216 1276 1275 +f 1216 1217 1277 1276 +f 1217 1218 1278 1277 +f 1218 1219 1279 1278 +f 1219 1220 1280 1279 +f 1220 1221 1281 1280 +f 1221 1222 1282 1281 +f 1222 1223 1283 1282 +f 1223 1224 1284 1283 +f 1224 1225 1285 1284 +f 1225 1226 1286 1285 +f 1226 1227 1287 1286 +f 1227 1228 1288 1287 +f 1228 1229 1289 1288 +f 1229 1230 1290 1289 +f 1230 1231 1291 1290 +f 1231 1232 1292 1291 +f 1232 1233 1293 1292 +f 1233 1234 1294 1293 +f 1234 1235 1295 1294 +f 1235 1236 1296 1295 +f 1236 1237 1297 1296 +f 1237 1238 1298 1297 +f 1238 1239 1299 1298 +f 1239 1240 1300 1299 +f 1240 1241 1301 1300 +f 1241 1242 1302 1301 +f 1242 1243 1303 1302 +f 1243 1244 1304 1303 +f 1244 1245 1305 1304 +f 1245 1246 1306 1305 +f 1246 1247 1307 1306 +f 1247 1248 1308 1307 +f 1248 1249 1309 1308 +f 1249 1250 1310 1309 +f 1250 1251 1311 1310 +f 1251 1252 1312 1311 +f 1252 1253 1313 1312 +f 1253 1254 1314 1313 +f 1254 1255 1315 1314 +f 1255 1256 1316 1315 +f 1256 1257 1317 1316 +f 1257 1258 1318 1317 +f 1258 1259 1319 1318 +f 1259 1260 1320 1319 +f 1260 1261 1321 1320 +f 1261 1262 1322 1321 +f 1262 1203 1263 1322 +f 1263 1264 1324 1323 +f 1264 1265 1325 1324 +f 1265 1266 1326 1325 +f 1266 1267 1327 1326 +f 1267 1268 1328 1327 +f 1268 1269 1329 1328 +f 1269 1270 1330 1329 +f 1270 1271 1331 1330 +f 1271 1272 1332 1331 +f 1272 1273 1333 1332 +f 1273 1274 1334 1333 +f 1274 1275 1335 1334 +f 1275 1276 1336 1335 +f 1276 1277 1337 1336 +f 1277 1278 1338 1337 +f 1278 1279 1339 1338 +f 1279 1280 1340 1339 +f 1280 1281 1341 1340 +f 1281 1282 1342 1341 +f 1282 1283 1343 1342 +f 1283 1284 1344 1343 +f 1284 1285 1345 1344 +f 1285 1286 1346 1345 +f 1286 1287 1347 1346 +f 1287 1288 1348 1347 +f 1288 1289 1349 1348 +f 1289 1290 1350 1349 +f 1290 1291 1351 1350 +f 1291 1292 1352 1351 +f 1292 1293 1353 1352 +f 1293 1294 1354 1353 +f 1294 1295 1355 1354 +f 1295 1296 1356 1355 +f 1296 1297 1357 1356 +f 1297 1298 1358 1357 +f 1298 1299 1359 1358 +f 1299 1300 1360 1359 +f 1300 1301 1361 1360 +f 1301 1302 1362 1361 +f 1302 1303 1363 1362 +f 1303 1304 1364 1363 +f 1304 1305 1365 1364 +f 1305 1306 1366 1365 +f 1306 1307 1367 1366 +f 1307 1308 1368 1367 +f 1308 1309 1369 1368 +f 1309 1310 1370 1369 +f 1310 1311 1371 1370 +f 1311 1312 1372 1371 +f 1312 1313 1373 1372 +f 1313 1314 1374 1373 +f 1314 1315 1375 1374 +f 1315 1316 1376 1375 +f 1316 1317 1377 1376 +f 1317 1318 1378 1377 +f 1318 1319 1379 1378 +f 1319 1320 1380 1379 +f 1320 1321 1381 1380 +f 1321 1322 1382 1381 +f 1322 1263 1323 1382 +f 1323 1324 1384 1383 +f 1324 1325 1385 1384 +f 1325 1326 1386 1385 +f 1326 1327 1387 1386 +f 1327 1328 1388 1387 +f 1328 1329 1389 1388 +f 1329 1330 1390 1389 +f 1330 1331 1391 1390 +f 1331 1332 1392 1391 +f 1332 1333 1393 1392 +f 1333 1334 1394 1393 +f 1334 1335 1395 1394 +f 1335 1336 1396 1395 +f 1336 1337 1397 1396 +f 1337 1338 1398 1397 +f 1338 1339 1399 1398 +f 1339 1340 1400 1399 +f 1340 1341 1401 1400 +f 1341 1342 1402 1401 +f 1342 1343 1403 1402 +f 1343 1344 1404 1403 +f 1344 1345 1405 1404 +f 1345 1346 1406 1405 +f 1346 1347 1407 1406 +f 1347 1348 1408 1407 +f 1348 1349 1409 1408 +f 1349 1350 1410 1409 +f 1350 1351 1411 1410 +f 1351 1352 1412 1411 +f 1352 1353 1413 1412 +f 1353 1354 1414 1413 +f 1354 1355 1415 1414 +f 1355 1356 1416 1415 +f 1356 1357 1417 1416 +f 1357 1358 1418 1417 +f 1358 1359 1419 1418 +f 1359 1360 1420 1419 +f 1360 1361 1421 1420 +f 1361 1362 1422 1421 +f 1362 1363 1423 1422 +f 1363 1364 1424 1423 +f 1364 1365 1425 1424 +f 1365 1366 1426 1425 +f 1366 1367 1427 1426 +f 1367 1368 1428 1427 +f 1368 1369 1429 1428 +f 1369 1370 1430 1429 +f 1370 1371 1431 1430 +f 1371 1372 1432 1431 +f 1372 1373 1433 1432 +f 1373 1374 1434 1433 +f 1374 1375 1435 1434 +f 1375 1376 1436 1435 +f 1376 1377 1437 1436 +f 1377 1378 1438 1437 +f 1378 1379 1439 1438 +f 1379 1380 1440 1439 +f 1380 1381 1441 1440 +f 1381 1382 1442 1441 +f 1382 1323 1383 1442 +f 1383 1384 1444 1443 +f 1384 1385 1445 1444 +f 1385 1386 1446 1445 +f 1386 1387 1447 1446 +f 1387 1388 1448 1447 +f 1388 1389 1449 1448 +f 1389 1390 1450 1449 +f 1390 1391 1451 1450 +f 1391 1392 1452 1451 +f 1392 1393 1453 1452 +f 1393 1394 1454 1453 +f 1394 1395 1455 1454 +f 1395 1396 1456 1455 +f 1396 1397 1457 1456 +f 1397 1398 1458 1457 +f 1398 1399 1459 1458 +f 1399 1400 1460 1459 +f 1400 1401 1461 1460 +f 1401 1402 1462 1461 +f 1402 1403 1463 1462 +f 1403 1404 1464 1463 +f 1404 1405 1465 1464 +f 1405 1406 1466 1465 +f 1406 1407 1467 1466 +f 1407 1408 1468 1467 +f 1408 1409 1469 1468 +f 1409 1410 1470 1469 +f 1410 1411 1471 1470 +f 1411 1412 1472 1471 +f 1412 1413 1473 1472 +f 1413 1414 1474 1473 +f 1414 1415 1475 1474 +f 1415 1416 1476 1475 +f 1416 1417 1477 1476 +f 1417 1418 1478 1477 +f 1418 1419 1479 1478 +f 1419 1420 1480 1479 +f 1420 1421 1481 1480 +f 1421 1422 1482 1481 +f 1422 1423 1483 1482 +f 1423 1424 1484 1483 +f 1424 1425 1485 1484 +f 1425 1426 1486 1485 +f 1426 1427 1487 1486 +f 1427 1428 1488 1487 +f 1428 1429 1489 1488 +f 1429 1430 1490 1489 +f 1430 1431 1491 1490 +f 1431 1432 1492 1491 +f 1432 1433 1493 1492 +f 1433 1434 1494 1493 +f 1434 1435 1495 1494 +f 1435 1436 1496 1495 +f 1436 1437 1497 1496 +f 1437 1438 1498 1497 +f 1438 1439 1499 1498 +f 1439 1440 1500 1499 +f 1440 1441 1501 1500 +f 1441 1442 1502 1501 +f 1442 1383 1443 1502 +f 1443 1444 1504 1503 +f 1444 1445 1505 1504 +f 1445 1446 1506 1505 +f 1446 1447 1507 1506 +f 1447 1448 1508 1507 +f 1448 1449 1509 1508 +f 1449 1450 1510 1509 +f 1450 1451 1511 1510 +f 1451 1452 1512 1511 +f 1452 1453 1513 1512 +f 1453 1454 1514 1513 +f 1454 1455 1515 1514 +f 1455 1456 1516 1515 +f 1456 1457 1517 1516 +f 1457 1458 1518 1517 +f 1458 1459 1519 1518 +f 1459 1460 1520 1519 +f 1460 1461 1521 1520 +f 1461 1462 1522 1521 +f 1462 1463 1523 1522 +f 1463 1464 1524 1523 +f 1464 1465 1525 1524 +f 1465 1466 1526 1525 +f 1466 1467 1527 1526 +f 1467 1468 1528 1527 +f 1468 1469 1529 1528 +f 1469 1470 1530 1529 +f 1470 1471 1531 1530 +f 1471 1472 1532 1531 +f 1472 1473 1533 1532 +f 1473 1474 1534 1533 +f 1474 1475 1535 1534 +f 1475 1476 1536 1535 +f 1476 1477 1537 1536 +f 1477 1478 1538 1537 +f 1478 1479 1539 1538 +f 1479 1480 1540 1539 +f 1480 1481 1541 1540 +f 1481 1482 1542 1541 +f 1482 1483 1543 1542 +f 1483 1484 1544 1543 +f 1484 1485 1545 1544 +f 1485 1486 1546 1545 +f 1486 1487 1547 1546 +f 1487 1488 1548 1547 +f 1488 1489 1549 1548 +f 1489 1490 1550 1549 +f 1490 1491 1551 1550 +f 1491 1492 1552 1551 +f 1492 1493 1553 1552 +f 1493 1494 1554 1553 +f 1494 1495 1555 1554 +f 1495 1496 1556 1555 +f 1496 1497 1557 1556 +f 1497 1498 1558 1557 +f 1498 1499 1559 1558 +f 1499 1500 1560 1559 +f 1500 1501 1561 1560 +f 1501 1502 1562 1561 +f 1502 1443 1503 1562 +f 1503 1504 1564 1563 +f 1504 1505 1565 1564 +f 1505 1506 1566 1565 +f 1506 1507 1567 1566 +f 1507 1508 1568 1567 +f 1508 1509 1569 1568 +f 1509 1510 1570 1569 +f 1510 1511 1571 1570 +f 1511 1512 1572 1571 +f 1512 1513 1573 1572 +f 1513 1514 1574 1573 +f 1514 1515 1575 1574 +f 1515 1516 1576 1575 +f 1516 1517 1577 1576 +f 1517 1518 1578 1577 +f 1518 1519 1579 1578 +f 1519 1520 1580 1579 +f 1520 1521 1581 1580 +f 1521 1522 1582 1581 +f 1522 1523 1583 1582 +f 1523 1524 1584 1583 +f 1524 1525 1585 1584 +f 1525 1526 1586 1585 +f 1526 1527 1587 1586 +f 1527 1528 1588 1587 +f 1528 1529 1589 1588 +f 1529 1530 1590 1589 +f 1530 1531 1591 1590 +f 1531 1532 1592 1591 +f 1532 1533 1593 1592 +f 1533 1534 1594 1593 +f 1534 1535 1595 1594 +f 1535 1536 1596 1595 +f 1536 1537 1597 1596 +f 1537 1538 1598 1597 +f 1538 1539 1599 1598 +f 1539 1540 1600 1599 +f 1540 1541 1601 1600 +f 1541 1542 1602 1601 +f 1542 1543 1603 1602 +f 1543 1544 1604 1603 +f 1544 1545 1605 1604 +f 1545 1546 1606 1605 +f 1546 1547 1607 1606 +f 1547 1548 1608 1607 +f 1548 1549 1609 1608 +f 1549 1550 1610 1609 +f 1550 1551 1611 1610 +f 1551 1552 1612 1611 +f 1552 1553 1613 1612 +f 1553 1554 1614 1613 +f 1554 1555 1615 1614 +f 1555 1556 1616 1615 +f 1556 1557 1617 1616 +f 1557 1558 1618 1617 +f 1558 1559 1619 1618 +f 1559 1560 1620 1619 +f 1560 1561 1621 1620 +f 1561 1562 1622 1621 +f 1562 1503 1563 1622 +f 1563 1564 1624 1623 +f 1564 1565 1625 1624 +f 1565 1566 1626 1625 +f 1566 1567 1627 1626 +f 1567 1568 1628 1627 +f 1568 1569 1629 1628 +f 1569 1570 1630 1629 +f 1570 1571 1631 1630 +f 1571 1572 1632 1631 +f 1572 1573 1633 1632 +f 1573 1574 1634 1633 +f 1574 1575 1635 1634 +f 1575 1576 1636 1635 +f 1576 1577 1637 1636 +f 1577 1578 1638 1637 +f 1578 1579 1639 1638 +f 1579 1580 1640 1639 +f 1580 1581 1641 1640 +f 1581 1582 1642 1641 +f 1582 1583 1643 1642 +f 1583 1584 1644 1643 +f 1584 1585 1645 1644 +f 1585 1586 1646 1645 +f 1586 1587 1647 1646 +f 1587 1588 1648 1647 +f 1588 1589 1649 1648 +f 1589 1590 1650 1649 +f 1590 1591 1651 1650 +f 1591 1592 1652 1651 +f 1592 1593 1653 1652 +f 1593 1594 1654 1653 +f 1594 1595 1655 1654 +f 1595 1596 1656 1655 +f 1596 1597 1657 1656 +f 1597 1598 1658 1657 +f 1598 1599 1659 1658 +f 1599 1600 1660 1659 +f 1600 1601 1661 1660 +f 1601 1602 1662 1661 +f 1602 1603 1663 1662 +f 1603 1604 1664 1663 +f 1604 1605 1665 1664 +f 1605 1606 1666 1665 +f 1606 1607 1667 1666 +f 1607 1608 1668 1667 +f 1608 1609 1669 1668 +f 1609 1610 1670 1669 +f 1610 1611 1671 1670 +f 1611 1612 1672 1671 +f 1612 1613 1673 1672 +f 1613 1614 1674 1673 +f 1614 1615 1675 1674 +f 1615 1616 1676 1675 +f 1616 1617 1677 1676 +f 1617 1618 1678 1677 +f 1618 1619 1679 1678 +f 1619 1620 1680 1679 +f 1620 1621 1681 1680 +f 1621 1622 1682 1681 +f 1622 1563 1623 1682 +f 1623 1624 1684 1683 +f 1624 1625 1685 1684 +f 1625 1626 1686 1685 +f 1626 1627 1687 1686 +f 1627 1628 1688 1687 +f 1628 1629 1689 1688 +f 1629 1630 1690 1689 +f 1630 1631 1691 1690 +f 1631 1632 1692 1691 +f 1632 1633 1693 1692 +f 1633 1634 1694 1693 +f 1634 1635 1695 1694 +f 1635 1636 1696 1695 +f 1636 1637 1697 1696 +f 1637 1638 1698 1697 +f 1638 1639 1699 1698 +f 1639 1640 1700 1699 +f 1640 1641 1701 1700 +f 1641 1642 1702 1701 +f 1642 1643 1703 1702 +f 1643 1644 1704 1703 +f 1644 1645 1705 1704 +f 1645 1646 1706 1705 +f 1646 1647 1707 1706 +f 1647 1648 1708 1707 +f 1648 1649 1709 1708 +f 1649 1650 1710 1709 +f 1650 1651 1711 1710 +f 1651 1652 1712 1711 +f 1652 1653 1713 1712 +f 1653 1654 1714 1713 +f 1654 1655 1715 1714 +f 1655 1656 1716 1715 +f 1656 1657 1717 1716 +f 1657 1658 1718 1717 +f 1658 1659 1719 1718 +f 1659 1660 1720 1719 +f 1660 1661 1721 1720 +f 1661 1662 1722 1721 +f 1662 1663 1723 1722 +f 1663 1664 1724 1723 +f 1664 1665 1725 1724 +f 1665 1666 1726 1725 +f 1666 1667 1727 1726 +f 1667 1668 1728 1727 +f 1668 1669 1729 1728 +f 1669 1670 1730 1729 +f 1670 1671 1731 1730 +f 1671 1672 1732 1731 +f 1672 1673 1733 1732 +f 1673 1674 1734 1733 +f 1674 1675 1735 1734 +f 1675 1676 1736 1735 +f 1676 1677 1737 1736 +f 1677 1678 1738 1737 +f 1678 1679 1739 1738 +f 1679 1680 1740 1739 +f 1680 1681 1741 1740 +f 1681 1682 1742 1741 +f 1682 1623 1683 1742 +f 1683 1684 1744 1743 +f 1684 1685 1745 1744 +f 1685 1686 1746 1745 +f 1686 1687 1747 1746 +f 1687 1688 1748 1747 +f 1688 1689 1749 1748 +f 1689 1690 1750 1749 +f 1690 1691 1751 1750 +f 1691 1692 1752 1751 +f 1692 1693 1753 1752 +f 1693 1694 1754 1753 +f 1694 1695 1755 1754 +f 1695 1696 1756 1755 +f 1696 1697 1757 1756 +f 1697 1698 1758 1757 +f 1698 1699 1759 1758 +f 1699 1700 1760 1759 +f 1700 1701 1761 1760 +f 1701 1702 1762 1761 +f 1702 1703 1763 1762 +f 1703 1704 1764 1763 +f 1704 1705 1765 1764 +f 1705 1706 1766 1765 +f 1706 1707 1767 1766 +f 1707 1708 1768 1767 +f 1708 1709 1769 1768 +f 1709 1710 1770 1769 +f 1710 1711 1771 1770 +f 1711 1712 1772 1771 +f 1712 1713 1773 1772 +f 1713 1714 1774 1773 +f 1714 1715 1775 1774 +f 1715 1716 1776 1775 +f 1716 1717 1777 1776 +f 1717 1718 1778 1777 +f 1718 1719 1779 1778 +f 1719 1720 1780 1779 +f 1720 1721 1781 1780 +f 1721 1722 1782 1781 +f 1722 1723 1783 1782 +f 1723 1724 1784 1783 +f 1724 1725 1785 1784 +f 1725 1726 1786 1785 +f 1726 1727 1787 1786 +f 1727 1728 1788 1787 +f 1728 1729 1789 1788 +f 1729 1730 1790 1789 +f 1730 1731 1791 1790 +f 1731 1732 1792 1791 +f 1732 1733 1793 1792 +f 1733 1734 1794 1793 +f 1734 1735 1795 1794 +f 1735 1736 1796 1795 +f 1736 1737 1797 1796 +f 1737 1738 1798 1797 +f 1738 1739 1799 1798 +f 1739 1740 1800 1799 +f 1740 1741 1801 1800 +f 1741 1742 1802 1801 +f 1742 1683 1743 1802 +f 1 4 3 +f 2 1743 1744 +f 1 5 4 +f 2 1744 1745 +f 1 6 5 +f 2 1745 1746 +f 1 7 6 +f 2 1746 1747 +f 1 8 7 +f 2 1747 1748 +f 1 9 8 +f 2 1748 1749 +f 1 10 9 +f 2 1749 1750 +f 1 11 10 +f 2 1750 1751 +f 1 12 11 +f 2 1751 1752 +f 1 13 12 +f 2 1752 1753 +f 1 14 13 +f 2 1753 1754 +f 1 15 14 +f 2 1754 1755 +f 1 16 15 +f 2 1755 1756 +f 1 17 16 +f 2 1756 1757 +f 1 18 17 +f 2 1757 1758 +f 1 19 18 +f 2 1758 1759 +f 1 20 19 +f 2 1759 1760 +f 1 21 20 +f 2 1760 1761 +f 1 22 21 +f 2 1761 1762 +f 1 23 22 +f 2 1762 1763 +f 1 24 23 +f 2 1763 1764 +f 1 25 24 +f 2 1764 1765 +f 1 26 25 +f 2 1765 1766 +f 1 27 26 +f 2 1766 1767 +f 1 28 27 +f 2 1767 1768 +f 1 29 28 +f 2 1768 1769 +f 1 30 29 +f 2 1769 1770 +f 1 31 30 +f 2 1770 1771 +f 1 32 31 +f 2 1771 1772 +f 1 33 32 +f 2 1772 1773 +f 1 34 33 +f 2 1773 1774 +f 1 35 34 +f 2 1774 1775 +f 1 36 35 +f 2 1775 1776 +f 1 37 36 +f 2 1776 1777 +f 1 38 37 +f 2 1777 1778 +f 1 39 38 +f 2 1778 1779 +f 1 40 39 +f 2 1779 1780 +f 1 41 40 +f 2 1780 1781 +f 1 42 41 +f 2 1781 1782 +f 1 43 42 +f 2 1782 1783 +f 1 44 43 +f 2 1783 1784 +f 1 45 44 +f 2 1784 1785 +f 1 46 45 +f 2 1785 1786 +f 1 47 46 +f 2 1786 1787 +f 1 48 47 +f 2 1787 1788 +f 1 49 48 +f 2 1788 1789 +f 1 50 49 +f 2 1789 1790 +f 1 51 50 +f 2 1790 1791 +f 1 52 51 +f 2 1791 1792 +f 1 53 52 +f 2 1792 1793 +f 1 54 53 +f 2 1793 1794 +f 1 55 54 +f 2 1794 1795 +f 1 56 55 +f 2 1795 1796 +f 1 57 56 +f 2 1796 1797 +f 1 58 57 +f 2 1797 1798 +f 1 59 58 +f 2 1798 1799 +f 1 60 59 +f 2 1799 1800 +f 1 61 60 +f 2 1800 1801 +f 1 62 61 +f 2 1801 1802 +f 1 3 62 +f 2 1802 1743 diff --git a/data/spheres/16.obj b/data/spheres/16.obj new file mode 100644 index 0000000..ff60039 --- /dev/null +++ b/data/spheres/16.obj @@ -0,0 +1,4162 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 9.5056 99.5472 5.88009e-39 +v 9.45983 99.5472 0.931711 +v 9.32295 99.5472 1.85445 +v 9.09629 99.5472 2.75933 +v 8.78203 99.5472 3.63763 +v 8.38319 99.5472 4.4809 +v 7.90362 99.5472 5.28102 +v 7.34793 99.5472 6.03028 +v 6.72148 99.5472 6.72147 +v 6.03029 99.5472 7.34792 +v 5.28103 99.5472 7.90361 +v 4.48091 99.5472 8.38318 +v 3.63764 99.5472 8.78202 +v 2.75934 99.5472 9.09629 +v 1.85446 99.5472 9.32295 +v 0.931722 99.5472 9.45982 +v 1.09161e-05 99.5472 9.5056 +v -0.9317 99.5472 9.45983 +v -1.85444 99.5472 9.32295 +v -2.75932 99.5472 9.09629 +v -3.63762 99.5472 8.78203 +v -4.48089 99.5472 8.38319 +v -5.28101 99.5472 7.90362 +v -6.03027 99.5472 7.34794 +v -6.72146 99.5472 6.72148 +v -7.34791 99.5472 6.0303 +v -7.90361 99.5472 5.28104 +v -8.38318 99.5472 4.48092 +v -8.78202 99.5472 3.63765 +v -9.09628 99.5472 2.75935 +v -9.32295 99.5472 1.85447 +v -9.45982 99.5472 0.931734 +v -9.5056 99.5472 2.18321e-05 +v -9.45983 99.5472 -0.93169 +v -9.32295 99.5472 -1.85443 +v -9.0963 99.5472 -2.75931 +v -8.78204 99.5472 -3.63761 +v -8.3832 99.5472 -4.48089 +v -7.90363 99.5472 -5.281 +v -7.34794 99.5472 -6.03027 +v -6.72149 99.5472 -6.72145 +v -6.03031 99.5472 -7.34791 +v -5.28105 99.5472 -7.9036 +v -4.48094 99.5472 -8.38317 +v -3.63766 99.5472 -8.78202 +v -2.75936 99.5472 -9.09628 +v -1.85448 99.5472 -9.32294 +v -0.931746 99.5472 -9.45982 +v -3.1615e-05 99.5472 -9.5056 +v 0.931678 99.5472 -9.45983 +v 1.85442 99.5472 -9.32296 +v 2.7593 99.5472 -9.0963 +v 3.6376 99.5472 -8.78204 +v 4.48088 99.5472 -8.38321 +v 5.28099 99.5472 -7.90364 +v 6.03026 99.5472 -7.34795 +v 6.72145 99.5472 -6.7215 +v 7.3479 99.5472 -6.03032 +v 7.90359 99.5472 -5.28106 +v 8.38317 99.5472 -4.48094 +v 8.78201 99.5472 -3.63767 +v 9.09628 99.5472 -2.75937 +v 9.32294 99.5472 -1.85449 +v 9.45982 99.5472 -0.931753 +v 18.9251 98.1929 5.88009e-39 +v 18.834 98.1929 1.85498 +v 18.5615 98.1929 3.6921 +v 18.1102 98.1929 5.49367 +v 17.4845 98.1929 7.24232 +v 16.6905 98.1929 8.92123 +v 15.7357 98.1929 10.5142 +v 14.6293 98.1929 12.006 +v 13.3821 98.1929 13.3821 +v 12.006 98.1929 14.6293 +v 10.5142 98.1929 15.7356 +v 8.92125 98.1929 16.6905 +v 7.24234 98.1929 17.4845 +v 5.49369 98.1929 18.1102 +v 3.69212 98.1929 18.5615 +v 1.85501 98.1929 18.834 +v 2.17332e-05 98.1929 18.9251 +v -1.85496 98.1929 18.834 +v -3.69208 98.1929 18.5615 +v -5.49364 98.1929 18.1102 +v -7.2423 98.1929 17.4845 +v -8.92121 98.1929 16.6905 +v -10.5142 98.1929 15.7357 +v -12.0059 98.1929 14.6293 +v -13.3821 98.1929 13.3821 +v -14.6293 98.1929 12.006 +v -15.7356 98.1929 10.5143 +v -16.6904 98.1929 8.92127 +v -17.4845 98.1929 7.24236 +v -18.1102 98.1929 5.49371 +v -18.5615 98.1929 3.69215 +v -18.834 98.1929 1.85503 +v -18.9251 98.1929 4.34665e-05 +v -18.834 98.1929 -1.85494 +v -18.5615 98.1929 -3.69206 +v -18.1102 98.1929 -5.49363 +v -17.4845 98.1929 -7.24228 +v -16.6905 98.1929 -8.92119 +v -15.7357 98.1929 -10.5142 +v -14.6293 98.1929 -12.0059 +v -13.3821 98.1929 -13.382 +v -12.006 98.1929 -14.6293 +v -10.5143 98.1929 -15.7356 +v -8.92129 98.1929 -16.6904 +v -7.24238 98.1929 -17.4845 +v -5.49373 98.1929 -18.1102 +v -3.69217 98.1929 -18.5615 +v -1.85505 98.1929 -18.834 +v -6.29437e-05 98.1929 -18.9251 +v 1.85492 98.1929 -18.834 +v 3.69204 98.1929 -18.5615 +v 5.49361 98.1929 -18.1102 +v 7.24226 98.1929 -17.4845 +v 8.92117 98.1929 -16.6905 +v 10.5142 98.1929 -15.7357 +v 12.0059 98.1929 -14.6294 +v 13.382 98.1929 -13.3821 +v 14.6293 98.1929 -12.006 +v 15.7356 98.1929 -10.5143 +v 16.6904 98.1929 -8.9213 +v 17.4845 98.1929 -7.2424 +v 18.1102 98.1929 -5.49375 +v 18.5615 98.1929 -3.69219 +v 18.834 98.1929 -1.85507 +v 28.1732 95.9493 5.88009e-39 +v 28.0376 95.9493 2.76146 +v 27.6319 95.9493 5.49632 +v 26.9601 95.9493 8.17825 +v 26.0287 95.9493 10.7814 +v 24.8466 95.9493 13.2808 +v 23.4252 95.9493 15.6522 +v 21.7782 95.9493 17.8729 +v 19.9215 95.9493 19.9215 +v 17.8729 95.9493 21.7782 +v 15.6522 95.9493 23.4252 +v 13.2808 95.9493 24.8466 +v 10.7815 95.9493 26.0287 +v 8.17828 95.9493 26.9601 +v 5.49635 95.9493 27.6319 +v 2.76149 95.9493 28.0376 +v 3.23536e-05 95.9493 28.1732 +v -2.76143 95.9493 28.0376 +v -5.49629 95.9493 27.6319 +v -8.17822 95.9493 26.9601 +v -10.7814 95.9493 26.0287 +v -13.2807 95.9493 24.8466 +v -15.6522 95.9493 23.4252 +v -17.8729 95.9493 21.7782 +v -19.9215 95.9493 19.9215 +v -21.7782 95.9493 17.873 +v -23.4252 95.9493 15.6523 +v -24.8465 95.9493 13.2808 +v -26.0287 95.9493 10.7815 +v -26.9601 95.9493 8.17832 +v -27.6319 95.9493 5.49638 +v -28.0376 95.9493 2.76153 +v -28.1732 95.9493 6.47072e-05 +v -28.0376 95.9493 -2.7614 +v -27.6319 95.9493 -5.49626 +v -26.9601 95.9493 -8.17819 +v -26.0287 95.9493 -10.7814 +v -24.8466 95.9493 -13.2807 +v -23.4252 95.9493 -15.6521 +v -21.7783 95.9493 -17.8729 +v -19.9215 95.9493 -19.9214 +v -17.873 95.9493 -21.7782 +v -15.6523 95.9493 -23.4251 +v -13.2809 95.9493 -24.8465 +v -10.7815 95.9493 -26.0286 +v -8.17834 95.9493 -26.9601 +v -5.49642 95.9493 -27.6319 +v -2.76156 95.9493 -28.0376 +v -9.37024e-05 95.9493 -28.1732 +v 2.76136 95.9493 -28.0376 +v 5.49622 95.9493 -27.6319 +v 8.17817 95.9493 -26.9601 +v 10.7813 95.9493 -26.0287 +v 13.2807 95.9493 -24.8466 +v 15.6521 95.9493 -23.4253 +v 17.8728 95.9493 -21.7783 +v 19.9214 95.9493 -19.9216 +v 21.7781 95.9493 -17.873 +v 23.4251 95.9493 -15.6523 +v 24.8465 95.9493 -13.2809 +v 26.0286 95.9493 -10.7815 +v 26.9601 95.9493 -8.17838 +v 27.6319 95.9493 -5.49645 +v 28.0376 95.9493 -2.76158 +v 37.1662 92.8368 5.88009e-39 +v 36.9873 92.8368 3.64292 +v 36.4521 92.8368 7.25076 +v 35.5659 92.8368 10.7888 +v 34.3371 92.8368 14.2229 +v 32.7777 92.8368 17.52 +v 30.9026 92.8368 20.6484 +v 28.7299 92.8368 23.578 +v 26.2805 92.8368 26.2805 +v 23.578 92.8368 28.7299 +v 20.6485 92.8368 30.9026 +v 17.5201 92.8368 32.7777 +v 14.2229 92.8368 34.3371 +v 10.7888 92.8368 35.5658 +v 7.25081 92.8368 36.4521 +v 3.64297 92.8368 36.9872 +v 4.2681e-05 92.8368 37.1662 +v -3.64288 92.8368 36.9873 +v -7.25072 92.8368 36.4521 +v -10.7887 92.8368 35.5659 +v -14.2228 92.8368 34.3371 +v -17.52 92.8368 32.7777 +v -20.6484 92.8368 30.9026 +v -23.5779 92.8368 28.7299 +v -26.2804 92.8368 26.2805 +v -28.7298 92.8368 23.5781 +v -30.9025 92.8368 20.6485 +v -32.7776 92.8368 17.5201 +v -34.3371 92.8368 14.223 +v -35.5658 92.8368 10.7889 +v -36.4521 92.8368 7.25085 +v -36.9872 92.8368 3.64301 +v -37.1662 92.8368 8.5362e-05 +v -36.9873 92.8368 -3.64284 +v -36.4521 92.8368 -7.25068 +v -35.5659 92.8368 -10.7887 +v -34.3371 92.8368 -14.2228 +v -32.7777 92.8368 -17.5199 +v -30.9026 92.8368 -20.6484 +v -28.7299 92.8368 -23.5779 +v -26.2806 92.8368 -26.2804 +v -23.5781 92.8368 -28.7298 +v -20.6485 92.8368 -30.9025 +v -17.5201 92.8368 -32.7776 +v -14.223 92.8368 -34.3371 +v -10.7889 92.8368 -35.5658 +v -7.25089 92.8368 -36.4521 +v -3.64306 92.8368 -36.9872 +v -0.000123612 92.8368 -37.1662 +v 3.6428 92.8368 -36.9873 +v 7.25063 92.8368 -36.4521 +v 10.7887 92.8368 -35.5659 +v 14.2228 92.8368 -34.3372 +v 17.5199 92.8368 -32.7777 +v 20.6483 92.8368 -30.9027 +v 23.5779 92.8368 -28.73 +v 26.2804 92.8368 -26.2806 +v 28.7298 92.8368 -23.5781 +v 30.9025 92.8368 -20.6486 +v 32.7776 92.8368 -17.5202 +v 34.337 92.8368 -14.223 +v 35.5658 92.8368 -10.7889 +v 36.452 92.8368 -7.25094 +v 36.9872 92.8368 -3.64309 +v 45.8226 88.8836 5.88009e-39 +v 45.602 88.8836 4.4914 +v 44.9422 88.8836 8.93954 +v 43.8495 88.8836 13.3016 +v 42.3346 88.8836 17.5355 +v 40.412 88.8836 21.6006 +v 38.1001 88.8836 25.4577 +v 35.4214 88.8836 29.0695 +v 32.4015 88.8836 32.4015 +v 29.0696 88.8836 35.4213 +v 25.4577 88.8836 38.1001 +v 21.6007 88.8836 40.4119 +v 17.5356 88.8836 42.3346 +v 13.3016 88.8836 43.8495 +v 8.93959 88.8836 44.9421 +v 4.49145 88.8836 45.602 +v 5.26219e-05 88.8836 45.8226 +v -4.49135 88.8836 45.602 +v -8.93949 88.8836 44.9422 +v -13.3015 88.8836 43.8495 +v -17.5355 88.8836 42.3346 +v -21.6006 88.8836 40.412 +v -25.4576 88.8836 38.1002 +v -29.0695 88.8836 35.4214 +v -32.4014 88.8836 32.4015 +v -35.4213 88.8836 29.0696 +v -38.1001 88.8836 25.4578 +v -40.4119 88.8836 21.6007 +v -42.3345 88.8836 17.5356 +v -43.8495 88.8836 13.3017 +v -44.9421 88.8836 8.93965 +v -45.602 88.8836 4.49151 +v -45.8226 88.8836 0.000105244 +v -45.602 88.8836 -4.4913 +v -44.9422 88.8836 -8.93944 +v -43.8495 88.8836 -13.3015 +v -42.3346 88.8836 -17.5354 +v -40.412 88.8836 -21.6005 +v -38.1002 88.8836 -25.4576 +v -35.4214 88.8836 -29.0695 +v -32.4016 88.8836 -32.4014 +v -29.0697 88.8836 -35.4213 +v -25.4578 88.8836 -38.1 +v -21.6008 88.8836 -40.4119 +v -17.5357 88.8836 -42.3345 +v -13.3017 88.8836 -43.8495 +v -8.9397 88.8836 -44.9421 +v -4.49157 88.8836 -45.602 +v -0.000152403 88.8836 -45.8226 +v 4.49124 88.8836 -45.602 +v 8.93938 88.8836 -44.9422 +v 13.3015 88.8836 -43.8496 +v 17.5354 88.8836 -42.3346 +v 21.6005 88.8836 -40.412 +v 25.4575 88.8836 -38.1002 +v 29.0694 88.8836 -35.4215 +v 32.4014 88.8836 -32.4016 +v 35.4212 88.8836 -29.0697 +v 38.1 88.8836 -25.4578 +v 40.4119 88.8836 -21.6008 +v 42.3345 88.8836 -17.5357 +v 43.8495 88.8836 -13.3018 +v 44.9421 88.8836 -8.93976 +v 45.602 88.8836 -4.4916 +v 54.064 84.1254 5.88009e-39 +v 53.8037 84.1254 5.2992 +v 53.0252 84.1254 10.5474 +v 51.7361 84.1254 15.694 +v 49.9487 84.1254 20.6894 +v 47.6802 84.1254 25.4856 +v 44.9526 84.1254 30.0364 +v 41.7921 84.1254 34.2978 +v 38.2291 84.1254 38.229 +v 34.2979 84.1254 41.792 +v 30.0364 84.1254 44.9526 +v 25.4857 84.1254 47.6802 +v 20.6895 84.1254 49.9486 +v 15.694 84.1254 51.736 +v 10.5474 84.1254 53.0252 +v 5.29926 84.1254 53.8037 +v 6.20861e-05 84.1254 54.064 +v -5.29914 84.1254 53.8037 +v -10.5473 84.1254 53.0252 +v -15.6939 84.1254 51.7361 +v -20.6893 84.1254 49.9487 +v -25.4855 84.1254 47.6803 +v -30.0363 84.1254 44.9527 +v -34.2978 84.1254 41.7921 +v -38.229 84.1254 38.2291 +v -41.792 84.1254 34.2979 +v -44.9526 84.1254 30.0365 +v -47.6802 84.1254 25.4857 +v -49.9486 84.1254 20.6895 +v -51.736 84.1254 15.6941 +v -53.0252 84.1254 10.5475 +v -53.8037 84.1254 5.29933 +v -54.064 84.1254 0.000124172 +v -53.8037 84.1254 -5.29908 +v -53.0252 84.1254 -10.5472 +v -51.7361 84.1254 -15.6938 +v -49.9487 84.1254 -20.6893 +v -47.6803 84.1254 -25.4855 +v -44.9527 84.1254 -30.0362 +v -41.7922 84.1254 -34.2978 +v -38.2292 84.1254 -38.2289 +v -34.298 84.1254 -41.792 +v -30.0365 84.1254 -44.9525 +v -25.4858 84.1254 -47.6801 +v -20.6896 84.1254 -49.9486 +v -15.6941 84.1254 -51.736 +v -10.5476 84.1254 -53.0252 +v -5.2994 84.1254 -53.8037 +v -0.000179814 84.1254 -54.064 +v 5.29901 84.1254 -53.8037 +v 10.5472 84.1254 -53.0253 +v 15.6938 84.1254 -51.7361 +v 20.6892 84.1254 -49.9487 +v 25.4854 84.1254 -47.6803 +v 30.0362 84.1254 -44.9527 +v 34.2977 84.1254 -41.7922 +v 38.2289 84.1254 -38.2292 +v 41.7919 84.1254 -34.298 +v 44.9525 84.1254 -30.0366 +v 47.6801 84.1254 -25.4858 +v 49.9486 84.1254 -20.6896 +v 51.736 84.1254 -15.6942 +v 53.0252 84.1254 -10.5476 +v 53.8037 84.1254 -5.29944 +v 61.8159 78.6053 5.88009e-39 +v 61.5182 78.6053 6.05901 +v 60.6281 78.6053 12.0597 +v 59.1541 78.6053 17.9442 +v 57.1104 78.6053 23.6559 +v 54.5167 78.6053 29.1398 +v 51.398 78.6053 34.343 +v 47.7843 78.6053 39.2155 +v 43.7104 78.6053 43.7104 +v 39.2156 78.6053 47.7843 +v 34.3431 78.6053 51.398 +v 29.1398 78.6053 54.5167 +v 23.656 78.6053 57.1104 +v 17.9443 78.6053 59.1541 +v 12.0597 78.6053 60.6281 +v 6.05908 78.6053 61.5182 +v 7.09882e-05 78.6053 61.8159 +v -6.05894 78.6053 61.5182 +v -12.0596 78.6053 60.6281 +v -17.9441 78.6053 59.1541 +v -23.6558 78.6053 57.1104 +v -29.1397 78.6053 54.5168 +v -34.343 78.6053 51.3981 +v -39.2155 78.6053 47.7844 +v -43.7103 78.6053 43.7105 +v -47.7842 78.6053 39.2157 +v -51.3979 78.6053 34.3431 +v -54.5167 78.6053 29.1399 +v -57.1104 78.6053 23.656 +v -59.154 78.6053 17.9443 +v -60.6281 78.6053 12.0598 +v -61.5182 78.6053 6.05916 +v -61.8159 78.6053 0.000141976 +v -61.5182 78.6053 -6.05887 +v -60.6281 78.6053 -12.0595 +v -59.1541 78.6053 -17.9441 +v -57.1105 78.6053 -23.6558 +v -54.5168 78.6053 -29.1397 +v -51.3981 78.6053 -34.3429 +v -47.7844 78.6053 -39.2154 +v -43.7105 78.6053 -43.7103 +v -39.2157 78.6053 -47.7842 +v -34.3432 78.6053 -51.3979 +v -29.14 78.6053 -54.5166 +v -23.6561 78.6053 -57.1103 +v -17.9444 78.6053 -59.154 +v -12.0599 78.6053 -60.628 +v -6.05924 78.6053 -61.5182 +v -0.000205596 78.6053 -61.8159 +v 6.0588 78.6053 -61.5182 +v 12.0595 78.6053 -60.6281 +v 17.944 78.6053 -59.1541 +v 23.6557 78.6053 -57.1105 +v 29.1396 78.6053 -54.5168 +v 34.3428 78.6053 -51.3981 +v 39.2154 78.6053 -47.7845 +v 43.7102 78.6053 -43.7106 +v 47.7841 78.6053 -39.2158 +v 51.3979 78.6053 -34.3433 +v 54.5166 78.6053 -29.14 +v 57.1103 78.6053 -23.6561 +v 59.154 78.6053 -17.9445 +v 60.628 78.6053 -12.06 +v 61.5182 78.6053 -6.05928 +v 69.0079 72.3734 5.88009e-39 +v 68.6756 72.3734 6.76395 +v 67.6819 72.3734 13.4628 +v 66.0364 72.3734 20.0319 +v 63.755 72.3734 26.4081 +v 60.8595 72.3734 32.5301 +v 57.378 72.3734 38.3387 +v 53.3438 72.3734 43.7781 +v 48.796 72.3734 48.7959 +v 43.7782 72.3734 53.3438 +v 38.3388 72.3734 57.3779 +v 32.5301 72.3734 60.8595 +v 26.4082 72.3734 63.7549 +v 20.032 72.3734 66.0364 +v 13.4628 72.3734 67.6819 +v 6.76403 72.3734 68.6756 +v 7.92474e-05 72.3734 69.0079 +v -6.76387 72.3734 68.6756 +v -13.4627 72.3734 67.6819 +v -20.0318 72.3734 66.0364 +v -26.4081 72.3734 63.755 +v -32.53 72.3734 60.8595 +v -38.3386 72.3734 57.378 +v -43.778 72.3734 53.3439 +v -48.7958 72.3734 48.796 +v -53.3437 72.3734 43.7782 +v -57.3779 72.3734 38.3388 +v -60.8594 72.3734 32.5302 +v -63.7549 72.3734 26.4083 +v -66.0364 72.3734 20.0321 +v -67.6819 72.3734 13.4629 +v -68.6756 72.3734 6.76411 +v -69.0079 72.3734 0.000158495 +v -68.6756 72.3734 -6.7638 +v -67.6819 72.3734 -13.4626 +v -66.0365 72.3734 -20.0318 +v -63.755 72.3734 -26.408 +v -60.8596 72.3734 -32.5299 +v -57.378 72.3734 -38.3386 +v -53.3439 72.3734 -43.778 +v -48.7961 72.3734 -48.7958 +v -43.7783 72.3734 -53.3437 +v -38.3389 72.3734 -57.3778 +v -32.5303 72.3734 -60.8594 +v -26.4084 72.3734 -63.7549 +v -20.0321 72.3734 -66.0363 +v -13.463 72.3734 -67.6818 +v -6.7642 72.3734 -68.6755 +v -0.000229516 72.3734 -69.0079 +v 6.76371 72.3734 -68.6756 +v 13.4625 72.3734 -67.6819 +v 20.0317 72.3734 -66.0365 +v 26.4079 72.3734 -63.755 +v 32.5298 72.3734 -60.8596 +v 38.3385 72.3734 -57.3781 +v 43.7779 72.3734 -53.344 +v 48.7957 72.3734 -48.7961 +v 53.3436 72.3734 -43.7783 +v 57.3778 72.3734 -38.339 +v 60.8594 72.3734 -32.5303 +v 63.7548 72.3734 -26.4084 +v 66.0363 72.3734 -20.0322 +v 67.6818 72.3734 -13.4631 +v 68.6755 72.3734 -6.76425 +v 75.5749 65.4861 5.88009e-39 +v 75.211 65.4861 7.40763 +v 74.1228 65.4861 14.7439 +v 72.3207 65.4861 21.9382 +v 69.8221 65.4861 28.9212 +v 66.6511 65.4861 35.6257 +v 62.8383 65.4861 41.9871 +v 58.4202 65.4861 47.9442 +v 53.4396 65.4861 53.4395 +v 47.9443 65.4861 58.4202 +v 41.9872 65.4861 62.8382 +v 35.6258 65.4861 66.6511 +v 28.9213 65.4861 69.8221 +v 21.9383 65.4861 72.3207 +v 14.744 65.4861 74.1227 +v 7.40772 65.4861 75.211 +v 8.67888e-05 65.4861 75.5749 +v -7.40754 65.4861 75.211 +v -14.7438 65.4861 74.1228 +v -21.9381 65.4861 72.3207 +v -28.9212 65.4861 69.8222 +v -35.6257 65.4861 66.6512 +v -41.9871 65.4861 62.8383 +v -47.9441 65.4861 58.4203 +v -53.4394 65.4861 53.4396 +v -58.4201 65.4861 47.9443 +v -62.8382 65.4861 41.9873 +v -66.6511 65.4861 35.6259 +v -69.8221 65.4861 28.9214 +v -72.3206 65.4861 21.9384 +v -74.1227 65.4861 14.7441 +v -75.211 65.4861 7.40781 +v -75.5749 65.4861 0.000173578 +v -75.211 65.4861 -7.40747 +v -74.1228 65.4861 -14.7438 +v -72.3207 65.4861 -21.9381 +v -69.8222 65.4861 -28.9211 +v -66.6512 65.4861 -35.6256 +v -62.8384 65.4861 -41.987 +v -58.4203 65.4861 -47.9441 +v -53.4397 65.4861 -53.4394 +v -47.9444 65.4861 -58.4201 +v -41.9874 65.4861 -62.8381 +v -35.626 65.4861 -66.651 +v -28.9215 65.4861 -69.822 +v -21.9385 65.4861 -72.3206 +v -14.7442 65.4861 -74.1227 +v -7.40791 65.4861 -75.211 +v -0.000251357 65.4861 -75.5749 +v 7.40737 65.4861 -75.211 +v 14.7437 65.4861 -74.1228 +v 21.938 65.4861 -72.3208 +v 28.921 65.4861 -69.8222 +v 35.6255 65.4861 -66.6513 +v 41.9869 65.4861 -62.8384 +v 47.944 65.4861 -58.4204 +v 53.4393 65.4861 -53.4397 +v 58.42 65.4861 -47.9445 +v 62.8381 65.4861 -41.9874 +v 66.651 65.4861 -35.626 +v 69.822 65.4861 -28.9216 +v 72.3206 65.4861 -21.9386 +v 74.1227 65.4861 -14.7443 +v 75.211 65.4861 -7.40797 +v 81.4576 58.0057 5.88009e-39 +v 81.0653 58.0057 7.98423 +v 79.8924 58.0057 15.8916 +v 77.95 58.0057 23.6459 +v 75.257 58.0057 31.1724 +v 71.8392 58.0057 38.3988 +v 67.7295 58.0057 45.2554 +v 62.9676 58.0057 51.6761 +v 57.5992 58.0057 57.5992 +v 51.6762 58.0057 62.9675 +v 45.2554 58.0057 67.7294 +v 38.3989 58.0057 71.8391 +v 31.1725 58.0057 75.2569 +v 23.646 58.0057 77.95 +v 15.8917 58.0057 79.8923 +v 7.98432 58.0057 81.0653 +v 9.35443e-05 58.0057 81.4576 +v -7.98414 58.0057 81.0653 +v -15.8915 58.0057 79.8924 +v -23.6458 58.0057 77.9501 +v -31.1723 58.0057 75.257 +v -38.3987 58.0057 71.8392 +v -45.2553 58.0057 67.7295 +v -51.676 58.0057 62.9676 +v -57.5991 58.0057 57.5993 +v -62.9674 58.0057 51.6762 +v -67.7294 58.0057 45.2555 +v -71.8391 58.0057 38.399 +v -75.2569 58.0057 31.1726 +v -77.95 58.0057 23.646 +v -79.8923 58.0057 15.8918 +v -81.0653 58.0057 7.98443 +v -81.4576 58.0057 0.000187089 +v -81.0653 58.0057 -7.98405 +v -79.8924 58.0057 -15.8914 +v -77.9501 58.0057 -23.6457 +v -75.257 58.0057 -31.1723 +v -71.8392 58.0057 -38.3986 +v -67.7296 58.0057 -45.2552 +v -62.9677 58.0057 -51.6759 +v -57.5994 58.0057 -57.599 +v -51.6763 58.0057 -62.9674 +v -45.2556 58.0057 -67.7293 +v -38.3991 58.0057 -71.839 +v -31.1727 58.0057 -75.2569 +v -23.6461 58.0057 -77.9499 +v -15.8919 58.0057 -79.8923 +v -7.98453 58.0057 -81.0653 +v -0.000270923 58.0057 -81.4576 +v 7.98395 58.0057 -81.0653 +v 15.8913 58.0057 -79.8924 +v 23.6456 58.0057 -77.9501 +v 31.1722 58.0057 -75.2571 +v 38.3985 58.0057 -71.8393 +v 45.2551 58.0057 -67.7297 +v 51.6759 58.0057 -62.9677 +v 57.599 58.0057 -57.5994 +v 62.9673 58.0057 -51.6764 +v 67.7293 58.0057 -45.2557 +v 71.839 58.0057 -38.3991 +v 75.2568 58.0057 -31.1728 +v 77.9499 58.0057 -23.6462 +v 79.8923 58.0057 -15.892 +v 81.0653 58.0057 -7.98459 +v 86.6025 50.0001 5.88009e-39 +v 86.1855 50.0001 8.48852 +v 84.9385 50.0001 16.8953 +v 82.8734 50.0001 25.1394 +v 80.0103 50.0001 33.1413 +v 76.3766 50.0001 40.8241 +v 72.0074 50.0001 48.1137 +v 66.9447 50.0001 54.94 +v 61.2373 50.0001 61.2372 +v 54.9401 50.0001 66.9446 +v 48.1138 50.0001 72.0073 +v 40.8242 50.0001 76.3766 +v 33.1414 50.0001 80.0103 +v 25.1395 50.0001 82.8734 +v 16.8954 50.0001 84.9384 +v 8.48862 50.0001 86.1855 +v 9.94527e-05 50.0001 86.6025 +v -8.48842 50.0001 86.1855 +v -16.8952 50.0001 84.9385 +v -25.1393 50.0001 82.8735 +v -33.1412 50.0001 80.0103 +v -40.824 50.0001 76.3766 +v -48.1137 50.0001 72.0074 +v -54.9399 50.0001 66.9447 +v -61.2371 50.0001 61.2373 +v -66.9445 50.0001 54.9402 +v -72.0073 50.0001 48.1139 +v -76.3765 50.0001 40.8243 +v -80.0102 50.0001 33.1415 +v -82.8734 50.0001 25.1396 +v -84.9384 50.0001 16.8955 +v -86.1855 50.0001 8.48873 +v -86.6025 50.0001 0.000198905 +v -86.1855 50.0001 -8.48833 +v -84.9385 50.0001 -16.8951 +v -82.8735 50.0001 -25.1392 +v -80.0104 50.0001 -33.1411 +v -76.3767 50.0001 -40.8239 +v -72.0075 50.0001 -48.1136 +v -66.9448 50.0001 -54.9399 +v -61.2374 50.0001 -61.237 +v -54.9402 50.0001 -66.9445 +v -48.114 50.0001 -72.0072 +v -40.8244 50.0001 -76.3764 +v -33.1416 50.0001 -80.0102 +v -25.1396 50.0001 -82.8733 +v -16.8956 50.0001 -84.9384 +v -8.48884 50.0001 -86.1855 +v -0.000288034 50.0001 -86.6025 +v 8.48823 50.0001 -86.1855 +v 16.895 50.0001 -84.9385 +v 25.1391 50.0001 -82.8735 +v 33.1411 50.0001 -80.0104 +v 40.8238 50.0001 -76.3767 +v 48.1135 50.0001 -72.0075 +v 54.9398 50.0001 -66.9448 +v 61.237 50.0001 -61.2375 +v 66.9444 50.0001 -54.9403 +v 72.0071 50.0001 -48.1141 +v 76.3764 50.0001 -40.8244 +v 80.0101 50.0001 -33.1417 +v 82.8733 50.0001 -25.1397 +v 84.9384 50.0001 -16.8957 +v 86.1854 50.0001 -8.48891 +v 90.9632 41.5416 5.88009e-39 +v 90.5252 41.5416 8.91594 +v 89.2153 41.5416 17.746 +v 87.0463 41.5416 26.4052 +v 84.039 41.5416 34.8101 +v 80.2224 41.5416 42.8797 +v 75.6331 41.5416 50.5364 +v 70.3155 41.5416 57.7064 +v 64.3207 41.5416 64.3206 +v 57.7065 41.5416 70.3154 +v 50.5365 41.5416 75.6331 +v 42.8798 41.5416 80.2223 +v 34.8102 41.5416 84.039 +v 26.4053 41.5416 87.0463 +v 17.7461 41.5416 89.2153 +v 8.91605 41.5416 90.5251 +v 0.00010446 41.5416 90.9632 +v -8.91584 41.5416 90.5252 +v -17.7459 41.5416 89.2154 +v -26.4051 41.5416 87.0464 +v -34.81 41.5416 84.0391 +v -42.8796 41.5416 80.2224 +v -50.5363 41.5416 75.6332 +v -57.7063 41.5416 70.3156 +v -64.3206 41.5416 64.3208 +v -70.3154 41.5416 57.7066 +v -75.633 41.5416 50.5366 +v -80.2223 41.5416 42.8799 +v -84.0389 41.5416 34.8103 +v -87.0463 41.5416 26.4054 +v -89.2153 41.5416 17.7462 +v -90.5251 41.5416 8.91616 +v -90.9632 41.5416 0.000208921 +v -90.5252 41.5416 -8.91574 +v -89.2154 41.5416 -17.7458 +v -87.0464 41.5416 -26.405 +v -84.0391 41.5416 -34.8099 +v -80.2225 41.5416 -42.8795 +v -75.6332 41.5416 -50.5362 +v -70.3156 41.5416 -57.7062 +v -64.3209 41.5416 -64.3205 +v -57.7066 41.5416 -70.3153 +v -50.5367 41.5416 -75.6329 +v -42.88 41.5416 -80.2222 +v -34.8103 41.5416 -84.0389 +v -26.4055 41.5416 -87.0462 +v -17.7463 41.5416 -89.2153 +v -8.91628 41.5416 -90.5251 +v -0.000302538 41.5416 -90.9632 +v 8.91563 41.5416 -90.5252 +v 17.7457 41.5416 -89.2154 +v 26.4049 41.5416 -87.0464 +v 34.8098 41.5416 -84.0391 +v 42.8794 41.5416 -80.2225 +v 50.5361 41.5416 -75.6333 +v 57.7062 41.5416 -70.3157 +v 64.3204 41.5416 -64.3209 +v 70.3152 41.5416 -57.7067 +v 75.6329 41.5416 -50.5368 +v 80.2222 41.5416 -42.8801 +v 84.0389 41.5416 -34.8105 +v 87.0462 41.5416 -26.4056 +v 89.2152 41.5416 -17.7465 +v 90.5251 41.5416 -8.91635 +v 94.5001 32.7069 5.88009e-39 +v 94.045 32.7069 9.26262 +v 92.6843 32.7069 18.436 +v 90.4309 32.7069 27.4319 +v 87.3067 32.7069 36.1636 +v 83.3416 32.7069 44.547 +v 78.5739 32.7069 52.5014 +v 73.0496 32.7069 59.9502 +v 66.8217 32.7069 66.8216 +v 59.9502 32.7069 73.0495 +v 52.5015 32.7069 78.5739 +v 44.5471 32.7069 83.3416 +v 36.1637 32.7069 87.3066 +v 27.432 32.7069 90.4309 +v 18.4361 32.7069 92.6842 +v 9.26273 32.7069 94.045 +v 0.000108522 32.7069 94.5001 +v -9.26251 32.7069 94.045 +v -18.4359 32.7069 92.6843 +v -27.4318 32.7069 90.431 +v -36.1635 32.7069 87.3067 +v -44.5469 32.7069 83.3417 +v -52.5013 32.7069 78.574 +v -59.9501 32.7069 73.0496 +v -66.8215 32.7069 66.8217 +v -73.0494 32.7069 59.9503 +v -78.5738 32.7069 52.5016 +v -83.3415 32.7069 44.5472 +v -87.3066 32.7069 36.1638 +v -90.4309 32.7069 27.4321 +v -92.6842 32.7069 18.4362 +v -94.045 32.7069 9.26285 +v -94.5001 32.7069 0.000217044 +v -94.045 32.7069 -9.26241 +v -92.6843 32.7069 -18.4358 +v -90.431 32.7069 -27.4317 +v -87.3068 32.7069 -36.1634 +v -83.3417 32.7069 -44.5468 +v -78.5741 32.7069 -52.5012 +v -73.0497 32.7069 -59.95 +v -66.8218 32.7069 -66.8214 +v -59.9504 32.7069 -73.0494 +v -52.5017 32.7069 -78.5738 +v -44.5473 32.7069 -83.3415 +v -36.1639 32.7069 -87.3066 +v -27.4322 32.7069 -90.4308 +v -18.4364 32.7069 -92.6842 +v -9.26296 32.7069 -94.045 +v -0.000314301 32.7069 -94.5001 +v 9.26229 32.7069 -94.045 +v 18.4357 32.7069 -92.6843 +v 27.4316 32.7069 -90.431 +v 36.1633 32.7069 -87.3068 +v 44.5467 32.7069 -83.3418 +v 52.5011 32.7069 -78.5741 +v 59.9499 32.7069 -73.0498 +v 66.8214 32.7069 -66.8219 +v 73.0493 32.7069 -59.9505 +v 78.5737 32.7069 -52.5018 +v 83.3414 32.7069 -44.5474 +v 87.3065 32.7069 -36.164 +v 90.4308 32.7069 -27.4323 +v 92.6842 32.7069 -18.4365 +v 94.045 32.7069 -9.26304 +v 97.1811 23.576 5.88009e-39 +v 96.7132 23.576 9.52541 +v 95.3138 23.576 18.9591 +v 92.9966 23.576 28.2102 +v 89.7837 23.576 37.1896 +v 85.7061 23.576 45.8108 +v 80.8032 23.576 53.9909 +v 75.1221 23.576 61.651 +v 68.7175 23.576 68.7174 +v 61.6511 23.576 75.122 +v 53.991 23.576 80.8031 +v 45.8109 23.576 85.7061 +v 37.1897 23.576 89.7836 +v 28.2103 23.576 92.9965 +v 18.9592 23.576 95.3138 +v 9.52552 23.576 96.7132 +v 0.000111601 23.576 97.1811 +v -9.5253 23.576 96.7132 +v -18.959 23.576 95.3138 +v -28.2101 23.576 92.9966 +v -37.1895 23.576 89.7837 +v -45.8107 23.576 85.7062 +v -53.9908 23.576 80.8032 +v -61.6509 23.576 75.1221 +v -68.7173 23.576 68.7176 +v -75.1219 23.576 61.6512 +v -80.8031 23.576 53.9911 +v -85.706 23.576 45.811 +v -89.7836 23.576 37.1898 +v -92.9965 23.576 28.2104 +v -95.3138 23.576 18.9593 +v -96.7132 23.576 9.52564 +v -97.1811 23.576 0.000223202 +v -96.7132 23.576 -9.5252 +v -95.3139 23.576 -18.9589 +v -92.9966 23.576 -28.21 +v -89.7838 23.576 -37.1894 +v -85.7062 23.576 -45.8106 +v -80.8033 23.576 -53.9907 +v -75.1222 23.576 -61.6509 +v -68.7176 23.576 -68.7172 +v -61.6513 23.576 -75.1218 +v -53.9912 23.576 -80.803 +v -45.8111 23.576 -85.706 +v -37.1899 23.576 -89.7835 +v -28.2105 23.576 -92.9965 +v -18.9594 23.576 -95.3138 +v -9.52577 23.576 -96.7131 +v -0.000323218 23.576 -97.1811 +v 9.52508 23.576 -96.7132 +v 18.9587 23.576 -95.3139 +v 28.2099 23.576 -92.9966 +v 37.1893 23.576 -89.7838 +v 45.8105 23.576 -85.7063 +v 53.9906 23.576 -80.8034 +v 61.6508 23.576 -75.1223 +v 68.7172 23.576 -68.7177 +v 75.1218 23.576 -61.6514 +v 80.8029 23.576 -53.9913 +v 85.7059 23.576 -45.8112 +v 89.7835 23.576 -37.19 +v 92.9964 23.576 -28.2106 +v 95.3137 23.576 -18.9595 +v 96.7131 23.576 -9.52584 +v 98.9821 14.2316 5.88009e-39 +v 98.5055 14.2316 9.70194 +v 97.0802 14.2316 19.3104 +v 94.72 14.2316 28.733 +v 91.4476 14.2316 37.8788 +v 87.2945 14.2316 46.6598 +v 82.3007 14.2316 54.9915 +v 76.5143 14.2316 62.7936 +v 69.991 14.2316 69.9909 +v 62.7937 14.2316 76.5142 +v 54.9916 14.2316 82.3006 +v 46.6599 14.2316 87.2944 +v 37.8789 14.2316 91.4475 +v 28.7331 14.2316 94.72 +v 19.3106 14.2316 97.0802 +v 9.70205 14.2316 98.5055 +v 0.000113669 14.2316 98.9821 +v -9.70182 14.2316 98.5055 +v -19.3103 14.2316 97.0802 +v -28.7329 14.2316 94.72 +v -37.8787 14.2316 91.4476 +v -46.6597 14.2316 87.2945 +v -54.9914 14.2316 82.3007 +v -62.7935 14.2316 76.5143 +v -69.9908 14.2316 69.9911 +v -76.5141 14.2316 62.7937 +v -82.3005 14.2316 54.9917 +v -87.2943 14.2316 46.66 +v -91.4475 14.2316 37.879 +v -94.7199 14.2316 28.7332 +v -97.0802 14.2316 19.3107 +v -98.5055 14.2316 9.70218 +v -98.9821 14.2316 0.000227339 +v -98.5055 14.2316 -9.70172 +v -97.0803 14.2316 -19.3102 +v -94.7201 14.2316 -28.7328 +v -91.4477 14.2316 -37.8786 +v -87.2946 14.2316 -46.6596 +v -82.3008 14.2316 -54.9913 +v -76.5144 14.2316 -62.7934 +v -69.9911 14.2316 -69.9907 +v -62.7938 14.2316 -76.514 +v -54.9918 14.2316 -82.3005 +v -46.6601 14.2316 -87.2943 +v -37.8791 14.2316 -91.4474 +v -28.7333 14.2316 -94.7199 +v -19.3108 14.2316 -97.0802 +v -9.7023 14.2316 -98.5055 +v -0.000329208 14.2316 -98.9821 +v 9.7016 14.2316 -98.5055 +v 19.3101 14.2316 -97.0803 +v 28.7327 14.2316 -94.7201 +v 37.8785 14.2316 -91.4477 +v 46.6595 14.2316 -87.2946 +v 54.9912 14.2316 -82.3009 +v 62.7933 14.2316 -76.5145 +v 69.9907 14.2316 -69.9912 +v 76.514 14.2316 -62.7939 +v 82.3004 14.2316 -54.9919 +v 87.2943 14.2316 -46.6602 +v 91.4474 14.2316 -37.8792 +v 94.7199 14.2316 -28.7334 +v 97.0801 14.2316 -19.3109 +v 98.5055 14.2316 -9.70238 +v 99.8867 4.75831 5.88009e-39 +v 99.4057 4.75831 9.7906 +v 97.9674 4.75831 19.4869 +v 95.5856 4.75831 28.9956 +v 92.2833 4.75831 38.225 +v 88.0922 4.75831 47.0862 +v 83.0528 4.75831 55.4941 +v 77.2135 4.75831 63.3674 +v 70.6306 4.75831 70.6305 +v 63.3675 4.75831 77.2134 +v 55.4942 4.75831 83.0527 +v 47.0863 4.75831 88.0922 +v 38.2251 4.75831 92.2833 +v 28.9957 4.75831 95.5856 +v 19.487 4.75831 97.9674 +v 9.79072 4.75831 99.4057 +v 0.000114708 4.75831 99.8867 +v -9.79049 4.75831 99.4058 +v -19.4868 4.75831 97.9675 +v -28.9955 4.75831 95.5857 +v -38.2249 4.75831 92.2834 +v -47.0861 4.75831 88.0923 +v -55.494 4.75831 83.0529 +v -63.3673 4.75831 77.2136 +v -70.6305 4.75831 70.6307 +v -77.2134 4.75831 63.3676 +v -83.0527 4.75831 55.4942 +v -88.0921 4.75831 47.0865 +v -92.2832 4.75831 38.2252 +v -95.5856 4.75831 28.9958 +v -97.9674 4.75831 19.4871 +v -99.4057 4.75831 9.79084 +v -99.8867 4.75831 0.000229416 +v -99.4058 4.75831 -9.79039 +v -97.9675 4.75831 -19.4867 +v -95.5857 4.75831 -28.9954 +v -92.2834 4.75831 -38.2248 +v -88.0923 4.75831 -47.0861 +v -83.0529 4.75831 -55.4939 +v -77.2137 4.75831 -63.3673 +v -70.6308 4.75831 -70.6304 +v -63.3677 4.75831 -77.2133 +v -55.4943 4.75831 -83.0526 +v -47.0866 4.75831 -88.0921 +v -38.2253 4.75831 -92.2832 +v -28.9959 4.75831 -95.5855 +v -19.4873 4.75831 -97.9674 +v -9.79097 4.75831 -99.4057 +v -0.000332217 4.75831 -99.8867 +v 9.79026 4.75831 -99.4058 +v 19.4866 4.75831 -97.9675 +v 28.9953 4.75831 -95.5857 +v 38.2247 4.75831 -92.2834 +v 47.0859 4.75831 -88.0924 +v 55.4938 4.75831 -83.053 +v 63.3672 4.75831 -77.2137 +v 70.6303 4.75831 -70.6309 +v 77.2132 4.75831 -63.3678 +v 83.0525 4.75831 -55.4945 +v 88.092 4.75831 -47.0866 +v 92.2831 4.75831 -38.2254 +v 95.5855 4.75831 -28.996 +v 97.9673 4.75831 -19.4874 +v 99.4057 4.75831 -9.79105 +v 99.8867 -4.75807 5.88009e-39 +v 99.4058 -4.75807 9.79061 +v 97.9674 -4.75807 19.4869 +v 95.5857 -4.75807 28.9956 +v 92.2833 -4.75807 38.225 +v 88.0923 -4.75807 47.0863 +v 83.0528 -4.75807 55.4941 +v 77.2135 -4.75807 63.3674 +v 70.6306 -4.75807 70.6306 +v 63.3675 -4.75807 77.2135 +v 55.4942 -4.75807 83.0527 +v 47.0863 -4.75807 88.0922 +v 38.2251 -4.75807 92.2833 +v 28.9957 -4.75807 95.5856 +v 19.487 -4.75807 97.9674 +v 9.79072 -4.75807 99.4057 +v 0.000114708 -4.75807 99.8867 +v -9.79049 -4.75807 99.4058 +v -19.4868 -4.75807 97.9675 +v -28.9955 -4.75807 95.5857 +v -38.2249 -4.75807 92.2834 +v -47.0861 -4.75807 88.0923 +v -55.494 -4.75807 83.0529 +v -63.3673 -4.75807 77.2136 +v -70.6305 -4.75807 70.6307 +v -77.2134 -4.75807 63.3676 +v -83.0527 -4.75807 55.4943 +v -88.0921 -4.75807 47.0865 +v -92.2832 -4.75807 38.2252 +v -95.5856 -4.75807 28.9958 +v -97.9674 -4.75807 19.4871 +v -99.4057 -4.75807 9.79084 +v -99.8867 -4.75807 0.000229416 +v -99.4058 -4.75807 -9.79039 +v -97.9675 -4.75807 -19.4867 +v -95.5857 -4.75807 -28.9954 +v -92.2834 -4.75807 -38.2248 +v -88.0924 -4.75807 -47.0861 +v -83.0529 -4.75807 -55.4939 +v -77.2137 -4.75807 -63.3673 +v -70.6308 -4.75807 -70.6304 +v -63.3677 -4.75807 -77.2133 +v -55.4944 -4.75807 -83.0526 +v -47.0866 -4.75807 -88.0921 +v -38.2253 -4.75807 -92.2832 +v -28.9959 -4.75807 -95.5856 +v -19.4873 -4.75807 -97.9674 +v -9.79097 -4.75807 -99.4057 +v -0.000332217 -4.75807 -99.8867 +v 9.79026 -4.75807 -99.4058 +v 19.4866 -4.75807 -97.9675 +v 28.9953 -4.75807 -95.5858 +v 38.2247 -4.75807 -92.2835 +v 47.0859 -4.75807 -88.0924 +v 55.4938 -4.75807 -83.053 +v 63.3672 -4.75807 -77.2137 +v 70.6303 -4.75807 -70.6309 +v 77.2132 -4.75807 -63.3678 +v 83.0526 -4.75807 -55.4945 +v 88.092 -4.75807 -47.0866 +v 92.2831 -4.75807 -38.2254 +v 95.5855 -4.75807 -28.996 +v 97.9674 -4.75807 -19.4874 +v 99.4057 -4.75807 -9.79105 +v 98.9822 -14.2314 5.88009e-39 +v 98.5055 -14.2314 9.70194 +v 97.0803 -14.2314 19.3104 +v 94.72 -14.2314 28.733 +v 91.4476 -14.2314 37.8788 +v 87.2945 -14.2314 46.6598 +v 82.3007 -14.2314 54.9915 +v 76.5143 -14.2314 62.7936 +v 69.991 -14.2314 69.9909 +v 62.7937 -14.2314 76.5142 +v 54.9916 -14.2314 82.3006 +v 46.6599 -14.2314 87.2944 +v 37.8789 -14.2314 91.4476 +v 28.7331 -14.2314 94.72 +v 19.3106 -14.2314 97.0802 +v 9.70205 -14.2314 98.5055 +v 0.000113669 -14.2314 98.9822 +v -9.70183 -14.2314 98.5055 +v -19.3103 -14.2314 97.0803 +v -28.7329 -14.2314 94.7201 +v -37.8787 -14.2314 91.4476 +v -46.6597 -14.2314 87.2945 +v -54.9914 -14.2314 82.3007 +v -62.7935 -14.2314 76.5144 +v -69.9908 -14.2314 69.9911 +v -76.5141 -14.2314 62.7938 +v -82.3006 -14.2314 54.9917 +v -87.2944 -14.2314 46.66 +v -91.4475 -14.2314 37.879 +v -94.72 -14.2314 28.7332 +v -97.0802 -14.2314 19.3107 +v -98.5055 -14.2314 9.70218 +v -98.9822 -14.2314 0.000227339 +v -98.5056 -14.2314 -9.70173 +v -97.0803 -14.2314 -19.3102 +v -94.7201 -14.2314 -28.7328 +v -91.4477 -14.2314 -37.8786 +v -87.2946 -14.2314 -46.6596 +v -82.3008 -14.2314 -54.9913 +v -76.5144 -14.2314 -62.7934 +v -69.9912 -14.2314 -69.9908 +v -62.7938 -14.2314 -76.5141 +v -54.9918 -14.2314 -82.3005 +v -46.6602 -14.2314 -87.2943 +v -37.8791 -14.2314 -91.4475 +v -28.7333 -14.2314 -94.7199 +v -19.3108 -14.2314 -97.0802 +v -9.7023 -14.2314 -98.5055 +v -0.000329208 -14.2314 -98.9822 +v 9.7016 -14.2314 -98.5056 +v 19.3101 -14.2314 -97.0803 +v 28.7327 -14.2314 -94.7201 +v 37.8785 -14.2314 -91.4477 +v 46.6595 -14.2314 -87.2947 +v 54.9912 -14.2314 -82.3009 +v 62.7933 -14.2314 -76.5145 +v 69.9907 -14.2314 -69.9912 +v 76.514 -14.2314 -62.7939 +v 82.3004 -14.2314 -54.9919 +v 87.2943 -14.2314 -46.6602 +v 91.4474 -14.2314 -37.8792 +v 94.7199 -14.2314 -28.7334 +v 97.0802 -14.2314 -19.3109 +v 98.5055 -14.2314 -9.70238 +v 97.1812 -23.5758 5.88009e-39 +v 96.7132 -23.5758 9.52542 +v 95.3139 -23.5758 18.9591 +v 92.9966 -23.5758 28.2102 +v 89.7837 -23.5758 37.1896 +v 85.7062 -23.5758 45.8109 +v 80.8032 -23.5758 53.9909 +v 75.1221 -23.5758 61.6511 +v 68.7175 -23.5758 68.7174 +v 61.6511 -23.5758 75.122 +v 53.991 -23.5758 80.8032 +v 45.811 -23.5758 85.7061 +v 37.1897 -23.5758 89.7837 +v 28.2103 -23.5758 92.9966 +v 18.9592 -23.5758 95.3139 +v 9.52553 -23.5758 96.7132 +v 0.000111601 -23.5758 97.1812 +v -9.5253 -23.5758 96.7132 +v -18.959 -23.5758 95.3139 +v -28.2101 -23.5758 92.9966 +v -37.1895 -23.5758 89.7838 +v -45.8108 -23.5758 85.7062 +v -53.9909 -23.5758 80.8033 +v -61.651 -23.5758 75.1222 +v -68.7174 -23.5758 68.7176 +v -75.122 -23.5758 61.6512 +v -80.8031 -23.5758 53.9911 +v -85.7061 -23.5758 45.8111 +v -89.7836 -23.5758 37.1898 +v -92.9965 -23.5758 28.2104 +v -95.3138 -23.5758 18.9593 +v -96.7132 -23.5758 9.52565 +v -97.1812 -23.5758 0.000223202 +v -96.7133 -23.5758 -9.5252 +v -95.3139 -23.5758 -18.9589 +v -92.9967 -23.5758 -28.21 +v -89.7838 -23.5758 -37.1894 +v -85.7063 -23.5758 -45.8107 +v -80.8034 -23.5758 -53.9908 +v -75.1222 -23.5758 -61.6509 +v -68.7177 -23.5758 -68.7173 +v -61.6513 -23.5758 -75.1219 +v -53.9912 -23.5758 -80.803 +v -45.8112 -23.5758 -85.706 +v -37.1899 -23.5758 -89.7836 +v -28.2105 -23.5758 -92.9965 +v -18.9594 -23.5758 -95.3138 +v -9.52577 -23.5758 -96.7132 +v -0.000323218 -23.5758 -97.1812 +v 9.52508 -23.5758 -96.7133 +v 18.9588 -23.5758 -95.3139 +v 28.2099 -23.5758 -92.9967 +v 37.1893 -23.5758 -89.7839 +v 45.8106 -23.5758 -85.7063 +v 53.9907 -23.5758 -80.8034 +v 61.6508 -23.5758 -75.1223 +v 68.7172 -23.5758 -68.7178 +v 75.1218 -23.5758 -61.6514 +v 80.803 -23.5758 -53.9913 +v 85.706 -23.5758 -45.8112 +v 89.7836 -23.5758 -37.19 +v 92.9965 -23.5758 -28.2106 +v 95.3138 -23.5758 -18.9596 +v 96.7132 -23.5758 -9.52585 +v 94.5001 -32.7067 5.88009e-39 +v 94.0451 -32.7067 9.26263 +v 92.6843 -32.7067 18.436 +v 90.431 -32.7067 27.4319 +v 87.3067 -32.7067 36.1636 +v 83.3417 -32.7067 44.547 +v 78.574 -32.7067 52.5014 +v 73.0496 -32.7067 59.9502 +v 66.8217 -32.7067 66.8216 +v 59.9503 -32.7067 73.0495 +v 52.5015 -32.7067 78.5739 +v 44.5471 -32.7067 83.3416 +v 36.1637 -32.7067 87.3067 +v 27.432 -32.7067 90.431 +v 18.4362 -32.7067 92.6843 +v 9.26273 -32.7067 94.0451 +v 0.000108522 -32.7067 94.5001 +v -9.26252 -32.7067 94.0451 +v -18.4359 -32.7067 92.6844 +v -27.4318 -32.7067 90.431 +v -36.1635 -32.7067 87.3068 +v -44.5469 -32.7067 83.3417 +v -52.5013 -32.7067 78.5741 +v -59.9501 -32.7067 73.0497 +v -66.8216 -32.7067 66.8218 +v -73.0495 -32.7067 59.9504 +v -78.5739 -32.7067 52.5016 +v -83.3416 -32.7067 44.5472 +v -87.3067 -32.7067 36.1638 +v -90.4309 -32.7067 27.4321 +v -92.6843 -32.7067 18.4363 +v -94.0451 -32.7067 9.26285 +v -94.5001 -32.7067 0.000217044 +v -94.0451 -32.7067 -9.26242 +v -92.6844 -32.7067 -18.4358 +v -90.4311 -32.7067 -27.4317 +v -87.3068 -32.7067 -36.1634 +v -83.3418 -32.7067 -44.5468 +v -78.5741 -32.7067 -52.5012 +v -73.0498 -32.7067 -59.95 +v -66.8219 -32.7067 -66.8215 +v -59.9505 -32.7067 -73.0494 +v -52.5017 -32.7067 -78.5738 +v -44.5473 -32.7067 -83.3415 +v -36.1639 -32.7067 -87.3066 +v -27.4322 -32.7067 -90.4309 +v -18.4364 -32.7067 -92.6843 +v -9.26297 -32.7067 -94.0451 +v -0.000314301 -32.7067 -94.5001 +v 9.2623 -32.7067 -94.0451 +v 18.4357 -32.7067 -92.6844 +v 27.4316 -32.7067 -90.4311 +v 36.1633 -32.7067 -87.3069 +v 44.5467 -32.7067 -83.3418 +v 52.5011 -32.7067 -78.5742 +v 59.95 -32.7067 -73.0498 +v 66.8214 -32.7067 -66.8219 +v 73.0493 -32.7067 -59.9506 +v 78.5738 -32.7067 -52.5018 +v 83.3415 -32.7067 -44.5474 +v 87.3066 -32.7067 -36.164 +v 90.4309 -32.7067 -27.4323 +v 92.6842 -32.7067 -18.4365 +v 94.045 -32.7067 -9.26305 +v 90.9633 -41.5414 5.88009e-39 +v 90.5253 -41.5414 8.91595 +v 89.2154 -41.5414 17.746 +v 87.0464 -41.5414 26.4052 +v 84.0391 -41.5414 34.8101 +v 80.2225 -41.5414 42.8798 +v 75.6332 -41.5414 50.5364 +v 70.3156 -41.5414 57.7064 +v 64.3208 -41.5414 64.3207 +v 57.7065 -41.5414 70.3155 +v 50.5365 -41.5414 75.6332 +v 42.8798 -41.5414 80.2224 +v 34.8102 -41.5414 84.0391 +v 26.4053 -41.5414 87.0464 +v 17.7461 -41.5414 89.2154 +v 8.91606 -41.5414 90.5252 +v 0.000104461 -41.5414 90.9633 +v -8.91585 -41.5414 90.5253 +v -17.7459 -41.5414 89.2155 +v -26.4051 -41.5414 87.0465 +v -34.81 -41.5414 84.0391 +v -42.8797 -41.5414 80.2225 +v -50.5364 -41.5414 75.6333 +v -57.7064 -41.5414 70.3157 +v -64.3206 -41.5414 64.3208 +v -70.3154 -41.5414 57.7066 +v -75.6331 -41.5414 50.5366 +v -80.2224 -41.5414 42.8799 +v -84.039 -41.5414 34.8103 +v -87.0464 -41.5414 26.4054 +v -89.2154 -41.5414 17.7462 +v -90.5252 -41.5414 8.91617 +v -90.9633 -41.5414 0.000208921 +v -90.5253 -41.5414 -8.91575 +v -89.2155 -41.5414 -17.7458 +v -87.0465 -41.5414 -26.405 +v -84.0392 -41.5414 -34.8099 +v -80.2225 -41.5414 -42.8796 +v -75.6333 -41.5414 -50.5363 +v -70.3157 -41.5414 -57.7063 +v -64.3209 -41.5414 -64.3205 +v -57.7067 -41.5414 -70.3154 +v -50.5367 -41.5414 -75.633 +v -42.8801 -41.5414 -80.2223 +v -34.8104 -41.5414 -84.039 +v -26.4055 -41.5414 -87.0463 +v -17.7464 -41.5414 -89.2154 +v -8.91629 -41.5414 -90.5252 +v -0.000302538 -41.5414 -90.9633 +v 8.91564 -41.5414 -90.5253 +v 17.7457 -41.5414 -89.2155 +v 26.4049 -41.5414 -87.0465 +v 34.8098 -41.5414 -84.0392 +v 42.8795 -41.5414 -80.2226 +v 50.5362 -41.5414 -75.6334 +v 57.7062 -41.5414 -70.3158 +v 64.3205 -41.5414 -64.321 +v 70.3153 -41.5414 -57.7068 +v 75.633 -41.5414 -50.5368 +v 80.2223 -41.5414 -42.8801 +v 84.0389 -41.5414 -34.8105 +v 87.0463 -41.5414 -26.4056 +v 89.2153 -41.5414 -17.7465 +v 90.5252 -41.5414 -8.91636 +v 86.6026 -49.9999 5.88009e-39 +v 86.1856 -49.9999 8.48853 +v 84.9386 -49.9999 16.8953 +v 82.8736 -49.9999 25.1394 +v 80.0104 -49.9999 33.1414 +v 76.3767 -49.9999 40.8242 +v 72.0075 -49.9999 48.1138 +v 66.9448 -49.9999 54.9401 +v 61.2373 -49.9999 61.2373 +v 54.9402 -49.9999 66.9447 +v 48.1139 -49.9999 72.0074 +v 40.8243 -49.9999 76.3767 +v 33.1415 -49.9999 80.0104 +v 25.1395 -49.9999 82.8735 +v 16.8954 -49.9999 84.9386 +v 8.48863 -49.9999 86.1856 +v 9.94529e-05 -49.9999 86.6026 +v -8.48844 -49.9999 86.1856 +v -16.8952 -49.9999 84.9386 +v -25.1393 -49.9999 82.8736 +v -33.1413 -49.9999 80.0104 +v -40.8241 -49.9999 76.3768 +v -48.1137 -49.9999 72.0075 +v -54.94 -49.9999 66.9448 +v -61.2372 -49.9999 61.2374 +v -66.9446 -49.9999 54.9402 +v -72.0074 -49.9999 48.114 +v -76.3766 -49.9999 40.8243 +v -80.0103 -49.9999 33.1415 +v -82.8735 -49.9999 25.1396 +v -84.9385 -49.9999 16.8955 +v -86.1856 -49.9999 8.48874 +v -86.6026 -49.9999 0.000198906 +v -86.1856 -49.9999 -8.48835 +v -84.9386 -49.9999 -16.8951 +v -82.8736 -49.9999 -25.1392 +v -80.0105 -49.9999 -33.1412 +v -76.3768 -49.9999 -40.824 +v -72.0076 -49.9999 -48.1136 +v -66.9449 -49.9999 -54.9399 +v -61.2375 -49.9999 -61.2371 +v -54.9403 -49.9999 -66.9446 +v -48.1141 -49.9999 -72.0073 +v -40.8244 -49.9999 -76.3766 +v -33.1416 -49.9999 -80.0103 +v -25.1397 -49.9999 -82.8735 +v -16.8956 -49.9999 -84.9385 +v -8.48885 -49.9999 -86.1856 +v -0.000288035 -49.9999 -86.6026 +v 8.48824 -49.9999 -86.1856 +v 16.895 -49.9999 -84.9386 +v 25.1391 -49.9999 -82.8736 +v 33.1411 -49.9999 -80.0105 +v 40.8239 -49.9999 -76.3769 +v 48.1135 -49.9999 -72.0076 +v 54.9399 -49.9999 -66.9449 +v 61.2371 -49.9999 -61.2375 +v 66.9445 -49.9999 -54.9404 +v 72.0072 -49.9999 -48.1142 +v 76.3765 -49.9999 -40.8245 +v 80.0102 -49.9999 -33.1417 +v 82.8734 -49.9999 -25.1398 +v 84.9385 -49.9999 -16.8957 +v 86.1856 -49.9999 -8.48892 +v 81.4577 -58.0056 5.88009e-39 +v 81.0654 -58.0056 7.98424 +v 79.8925 -58.0056 15.8916 +v 77.9501 -58.0056 23.6459 +v 75.2571 -58.0056 31.1725 +v 71.8393 -58.0056 38.3989 +v 67.7296 -58.0056 45.2554 +v 62.9677 -58.0056 51.6762 +v 57.5993 -58.0056 57.5993 +v 51.6763 -58.0056 62.9676 +v 45.2555 -58.0056 67.7296 +v 38.3989 -58.0056 71.8392 +v 31.1726 -58.0056 75.2571 +v 23.646 -58.0056 77.9501 +v 15.8917 -58.0056 79.8925 +v 7.98434 -58.0056 81.0654 +v 9.35445e-05 -58.0056 81.4577 +v -7.98415 -58.0056 81.0655 +v -15.8915 -58.0056 79.8925 +v -23.6458 -58.0056 77.9502 +v -31.1724 -58.0056 75.2571 +v -38.3988 -58.0056 71.8393 +v -45.2554 -58.0056 67.7297 +v -51.6761 -58.0056 62.9677 +v -57.5992 -58.0056 57.5994 +v -62.9675 -58.0056 51.6763 +v -67.7295 -58.0056 45.2556 +v -71.8392 -58.0056 38.399 +v -75.257 -58.0056 31.1727 +v -77.9501 -58.0056 23.6461 +v -79.8925 -58.0056 15.8918 +v -81.0654 -58.0056 7.98444 +v -81.4577 -58.0056 0.000187089 +v -81.0655 -58.0056 -7.98407 +v -79.8925 -58.0056 -15.8914 +v -77.9502 -58.0056 -23.6457 +v -75.2572 -58.0056 -31.1723 +v -71.8394 -58.0056 -38.3987 +v -67.7297 -58.0056 -45.2553 +v -62.9678 -58.0056 -51.676 +v -57.5995 -58.0056 -57.5991 +v -51.6764 -58.0056 -62.9675 +v -45.2557 -58.0056 -67.7295 +v -38.3991 -58.0056 -71.8391 +v -31.1727 -58.0056 -75.257 +v -23.6462 -58.0056 -77.9501 +v -15.8919 -58.0056 -79.8924 +v -7.98454 -58.0056 -81.0654 +v -0.000270923 -58.0056 -81.4577 +v 7.98396 -58.0056 -81.0655 +v 15.8913 -58.0056 -79.8926 +v 23.6457 -58.0056 -77.9502 +v 31.1722 -58.0056 -75.2572 +v 38.3986 -58.0056 -71.8394 +v 45.2552 -58.0056 -67.7298 +v 51.676 -58.0056 -62.9678 +v 57.5991 -58.0056 -57.5995 +v 62.9674 -58.0056 -51.6765 +v 67.7294 -58.0056 -45.2558 +v 71.8391 -58.0056 -38.3992 +v 75.257 -58.0056 -31.1728 +v 77.95 -58.0056 -23.6463 +v 79.8924 -58.0056 -15.892 +v 81.0654 -58.0056 -7.98461 +v 75.5751 -65.4859 5.88009e-39 +v 75.2112 -65.4859 7.40765 +v 74.1229 -65.4859 14.744 +v 72.3208 -65.4859 21.9383 +v 69.8223 -65.4859 28.9213 +v 66.6513 -65.4859 35.6258 +v 62.8384 -65.4859 41.9872 +v 58.4203 -65.4859 47.9443 +v 53.4397 -65.4859 53.4396 +v 47.9444 -65.4859 58.4203 +v 41.9873 -65.4859 62.8383 +v 35.6259 -65.4859 66.6512 +v 28.9214 -65.4859 69.8222 +v 21.9384 -65.4859 72.3208 +v 14.744 -65.4859 74.1229 +v 7.40773 -65.4859 75.2112 +v 8.6789e-05 -65.4859 75.5751 +v -7.40756 -65.4859 75.2112 +v -14.7439 -65.4859 74.1229 +v -21.9382 -65.4859 72.3209 +v -28.9212 -65.4859 69.8223 +v -35.6257 -65.4859 66.6513 +v -41.9872 -65.4859 62.8384 +v -47.9442 -65.4859 58.4204 +v -53.4396 -65.4859 53.4397 +v -58.4202 -65.4859 47.9444 +v -62.8383 -65.4859 41.9874 +v -66.6512 -65.4859 35.626 +v -69.8222 -65.4859 28.9215 +v -72.3208 -65.4859 21.9384 +v -74.1229 -65.4859 14.7441 +v -75.2111 -65.4859 7.40783 +v -75.5751 -65.4859 0.000173578 +v -75.2112 -65.4859 -7.40748 +v -74.123 -65.4859 -14.7438 +v -72.3209 -65.4859 -21.9381 +v -69.8223 -65.4859 -28.9211 +v -66.6514 -65.4859 -35.6257 +v -62.8385 -65.4859 -41.9871 +v -58.4205 -65.4859 -47.9442 +v -53.4398 -65.4859 -53.4395 +v -47.9445 -65.4859 -58.4202 +v -41.9875 -65.4859 -62.8382 +v -35.6261 -65.4859 -66.6511 +v -28.9215 -65.4859 -69.8222 +v -21.9385 -65.4859 -72.3208 +v -14.7442 -65.4859 -74.1229 +v -7.40792 -65.4859 -75.2111 +v -0.000251358 -65.4859 -75.5751 +v 7.40739 -65.4859 -75.2112 +v 14.7437 -65.4859 -74.123 +v 21.938 -65.4859 -72.3209 +v 28.9211 -65.4859 -69.8224 +v 35.6256 -65.4859 -66.6514 +v 41.987 -65.4859 -62.8385 +v 47.9441 -65.4859 -58.4205 +v 53.4394 -65.4859 -53.4399 +v 58.4201 -65.4859 -47.9446 +v 62.8382 -65.4859 -41.9875 +v 66.6511 -65.4859 -35.6261 +v 69.8221 -65.4859 -28.9216 +v 72.3207 -65.4859 -21.9386 +v 74.1228 -65.4859 -14.7443 +v 75.2111 -65.4859 -7.40798 +v 69.008 -72.3733 5.88009e-39 +v 68.6758 -72.3733 6.76397 +v 67.6821 -72.3733 13.4628 +v 66.0366 -72.3733 20.032 +v 63.7551 -72.3733 26.4082 +v 60.8597 -72.3733 32.5301 +v 57.3781 -72.3733 38.3388 +v 53.344 -72.3733 43.7782 +v 48.7961 -72.3733 48.796 +v 43.7783 -72.3733 53.3439 +v 38.3389 -72.3733 57.3781 +v 32.5302 -72.3733 60.8596 +v 26.4083 -72.3733 63.7551 +v 20.032 -72.3733 66.0366 +v 13.4629 -72.3733 67.6821 +v 6.76404 -72.3733 68.6757 +v 7.92476e-05 -72.3733 69.008 +v -6.76389 -72.3733 68.6758 +v -13.4627 -72.3733 67.6821 +v -20.0319 -72.3733 66.0366 +v -26.4081 -72.3733 63.7552 +v -32.5301 -72.3733 60.8597 +v -38.3387 -72.3733 57.3781 +v -43.7781 -72.3733 53.344 +v -48.796 -72.3733 48.7961 +v -53.3439 -72.3733 43.7783 +v -57.378 -72.3733 38.3389 +v -60.8596 -72.3733 32.5303 +v -63.7551 -72.3733 26.4084 +v -66.0365 -72.3733 20.0321 +v -67.682 -72.3733 13.4629 +v -68.6757 -72.3733 6.76413 +v -69.008 -72.3733 0.000158495 +v -68.6758 -72.3733 -6.76382 +v -67.6821 -72.3733 -13.4626 +v -66.0366 -72.3733 -20.0318 +v -63.7552 -72.3733 -26.4081 +v -60.8597 -72.3733 -32.53 +v -57.3782 -72.3733 -38.3387 +v -53.3441 -72.3733 -43.7781 +v -48.7962 -72.3733 -48.7959 +v -43.7784 -72.3733 -53.3438 +v -38.339 -72.3733 -57.378 +v -32.5304 -72.3733 -60.8596 +v -26.4084 -72.3733 -63.755 +v -20.0322 -72.3733 -66.0365 +v -13.463 -72.3733 -67.682 +v -6.76422 -72.3733 -68.6757 +v -0.000229516 -72.3733 -69.008 +v 6.76373 -72.3733 -68.6758 +v 13.4625 -72.3733 -67.6821 +v 20.0317 -72.3733 -66.0366 +v 26.408 -72.3733 -63.7552 +v 32.5299 -72.3733 -60.8598 +v 38.3386 -72.3733 -57.3782 +v 43.778 -72.3733 -53.3441 +v 48.7959 -72.3733 -48.7962 +v 53.3438 -72.3733 -43.7785 +v 57.3779 -72.3733 -38.3391 +v 60.8595 -72.3733 -32.5304 +v 63.755 -72.3733 -26.4085 +v 66.0365 -72.3733 -20.0323 +v 67.682 -72.3733 -13.4631 +v 68.6757 -72.3733 -6.76427 +v 61.816 -78.6052 5.88009e-39 +v 61.5184 -78.6052 6.05903 +v 60.6283 -78.6052 12.0597 +v 59.1543 -78.6052 17.9442 +v 57.1106 -78.6052 23.656 +v 54.5169 -78.6052 29.1399 +v 51.3982 -78.6052 34.3431 +v 47.7845 -78.6052 39.2157 +v 43.7106 -78.6052 43.7105 +v 39.2157 -78.6052 47.7844 +v 34.3432 -78.6052 51.3981 +v 29.1399 -78.6052 54.5169 +v 23.656 -78.6052 57.1106 +v 17.9443 -78.6052 59.1543 +v 12.0598 -78.6052 60.6283 +v 6.0591 -78.6052 61.5184 +v 7.09884e-05 -78.6052 61.816 +v -6.05896 -78.6052 61.5184 +v -12.0596 -78.6052 60.6283 +v -17.9442 -78.6052 59.1543 +v -23.6559 -78.6052 57.1106 +v -29.1398 -78.6052 54.5169 +v -34.3431 -78.6052 51.3982 +v -39.2156 -78.6052 47.7845 +v -43.7105 -78.6052 43.7106 +v -47.7844 -78.6052 39.2158 +v -51.3981 -78.6052 34.3433 +v -54.5168 -78.6052 29.14 +v -57.1105 -78.6052 23.6561 +v -59.1542 -78.6052 17.9444 +v -60.6282 -78.6052 12.0598 +v -61.5184 -78.6052 6.05918 +v -61.816 -78.6052 0.000141977 +v -61.5184 -78.6052 -6.05889 +v -60.6283 -78.6052 -12.0596 +v -59.1543 -78.6052 -17.9441 +v -57.1106 -78.6052 -23.6558 +v -54.517 -78.6052 -29.1397 +v -51.3983 -78.6052 -34.343 +v -47.7846 -78.6052 -39.2156 +v -43.7107 -78.6052 -43.7104 +v -39.2158 -78.6052 -47.7843 +v -34.3433 -78.6052 -51.3981 +v -29.1401 -78.6052 -54.5168 +v -23.6561 -78.6052 -57.1105 +v -17.9444 -78.6052 -59.1542 +v -12.0599 -78.6052 -60.6282 +v -6.05925 -78.6052 -61.5184 +v -0.000205596 -78.6052 -61.816 +v 6.05882 -78.6052 -61.5184 +v 12.0595 -78.6052 -60.6283 +v 17.944 -78.6052 -59.1543 +v 23.6558 -78.6052 -57.1107 +v 29.1397 -78.6052 -54.517 +v 34.3429 -78.6052 -51.3983 +v 39.2155 -78.6052 -47.7846 +v 43.7104 -78.6052 -43.7107 +v 47.7843 -78.6052 -39.2159 +v 51.398 -78.6052 -34.3434 +v 54.5168 -78.6052 -29.1401 +v 57.1105 -78.6052 -23.6562 +v 59.1542 -78.6052 -17.9445 +v 60.6282 -78.6052 -12.06 +v 61.5184 -78.6052 -6.0593 +v 54.0642 -84.1253 5.88009e-39 +v 53.8039 -84.1253 5.29922 +v 53.0254 -84.1253 10.5474 +v 51.7363 -84.1253 15.694 +v 49.9488 -84.1253 20.6895 +v 47.6804 -84.1253 25.4857 +v 44.9528 -84.1253 30.0365 +v 41.7922 -84.1253 34.298 +v 38.2292 -84.1253 38.2292 +v 34.298 -84.1253 41.7922 +v 30.0365 -84.1253 44.9528 +v 25.4857 -84.1253 47.6804 +v 20.6895 -84.1253 49.9488 +v 15.6941 -84.1253 51.7362 +v 10.5475 -84.1253 53.0254 +v 5.29928 -84.1253 53.8039 +v 6.20864e-05 -84.1253 54.0642 +v -5.29916 -84.1253 53.8039 +v -10.5473 -84.1253 53.0254 +v -15.6939 -84.1253 51.7363 +v -20.6894 -84.1253 49.9489 +v -25.4856 -84.1253 47.6804 +v -30.0364 -84.1253 44.9528 +v -34.2979 -84.1253 41.7923 +v -38.2291 -84.1253 38.2293 +v -41.7922 -84.1253 34.2981 +v -44.9527 -84.1253 30.0366 +v -47.6804 -84.1253 25.4858 +v -49.9488 -84.1253 20.6896 +v -51.7362 -84.1253 15.6941 +v -53.0254 -84.1253 10.5475 +v -53.8039 -84.1253 5.29935 +v -54.0642 -84.1253 0.000124173 +v -53.8039 -84.1253 -5.2991 +v -53.0254 -84.1253 -10.5473 +v -51.7363 -84.1253 -15.6939 +v -49.9489 -84.1253 -20.6894 +v -47.6805 -84.1253 -25.4856 +v -44.9529 -84.1253 -30.0364 +v -41.7923 -84.1253 -34.2979 +v -38.2293 -84.1253 -38.2291 +v -34.2981 -84.1253 -41.7921 +v -30.0366 -84.1253 -44.9527 +v -25.4859 -84.1253 -47.6803 +v -20.6896 -84.1253 -49.9488 +v -15.6942 -84.1253 -51.7362 +v -10.5476 -84.1253 -53.0254 +v -5.29942 -84.1253 -53.8039 +v -0.000179814 -84.1253 -54.0642 +v 5.29903 -84.1253 -53.8039 +v 10.5472 -84.1253 -53.0254 +v 15.6938 -84.1253 -51.7363 +v 20.6893 -84.1253 -49.9489 +v 25.4855 -84.1253 -47.6805 +v 30.0363 -84.1253 -44.9529 +v 34.2978 -84.1253 -41.7924 +v 38.229 -84.1253 -38.2293 +v 41.7921 -84.1253 -34.2982 +v 44.9526 -84.1253 -30.0367 +v 47.6803 -84.1253 -25.4859 +v 49.9488 -84.1253 -20.6897 +v 51.7362 -84.1253 -15.6943 +v 53.0254 -84.1253 -10.5477 +v 53.8039 -84.1253 -5.29946 +v 45.8228 -88.8835 5.88009e-39 +v 45.6022 -88.8835 4.49142 +v 44.9424 -88.8835 8.93958 +v 43.8497 -88.8835 13.3017 +v 42.3348 -88.8835 17.5356 +v 40.4121 -88.8835 21.6007 +v 38.1003 -88.8835 25.4578 +v 35.4215 -88.8835 29.0697 +v 32.4017 -88.8835 32.4016 +v 29.0697 -88.8835 35.4215 +v 25.4578 -88.8835 38.1003 +v 21.6008 -88.8835 40.4121 +v 17.5357 -88.8835 42.3348 +v 13.3017 -88.8835 43.8497 +v 8.93964 -88.8835 44.9424 +v 4.49147 -88.8835 45.6022 +v 5.26221e-05 -88.8835 45.8228 +v -4.49137 -88.8835 45.6022 +v -8.93953 -88.8835 44.9424 +v -13.3016 -88.8835 43.8497 +v -17.5356 -88.8835 42.3348 +v -21.6007 -88.8835 40.4122 +v -25.4577 -88.8835 38.1003 +v -29.0696 -88.8835 35.4216 +v -32.4016 -88.8835 32.4017 +v -35.4215 -88.8835 29.0698 +v -38.1002 -88.8835 25.4579 +v -40.4121 -88.8835 21.6008 +v -42.3347 -88.8835 17.5357 +v -43.8497 -88.8835 13.3018 +v -44.9423 -88.8835 8.93969 +v -45.6022 -88.8835 4.49153 +v -45.8228 -88.8835 0.000105244 +v -45.6022 -88.8835 -4.49132 +v -44.9424 -88.8835 -8.93948 +v -43.8498 -88.8835 -13.3016 +v -42.3348 -88.8835 -17.5355 +v -40.4122 -88.8835 -21.6006 +v -38.1004 -88.8835 -25.4577 +v -35.4216 -88.8835 -29.0696 +v -32.4017 -88.8835 -32.4015 +v -29.0698 -88.8835 -35.4214 +v -25.4579 -88.8835 -38.1002 +v -21.6009 -88.8835 -40.4121 +v -17.5358 -88.8835 -42.3347 +v -13.3018 -88.8835 -43.8497 +v -8.93974 -88.8835 -44.9423 +v -4.49159 -88.8835 -45.6022 +v -0.000152404 -88.8835 -45.8228 +v 4.49126 -88.8835 -45.6022 +v 8.93942 -88.8835 -44.9424 +v 13.3015 -88.8835 -43.8498 +v 17.5355 -88.8835 -42.3348 +v 21.6006 -88.8835 -40.4122 +v 25.4576 -88.8835 -38.1004 +v 29.0696 -88.8835 -35.4216 +v 32.4015 -88.8835 -32.4018 +v 35.4214 -88.8835 -29.0698 +v 38.1002 -88.8835 -25.458 +v 40.412 -88.8835 -21.6009 +v 42.3347 -88.8835 -17.5358 +v 43.8497 -88.8835 -13.3019 +v 44.9423 -88.8835 -8.9398 +v 45.6022 -88.8835 -4.49162 +v 37.1665 -92.8367 5.88009e-39 +v 36.9875 -92.8367 3.64295 +v 36.4523 -92.8367 7.25081 +v 35.5661 -92.8367 10.7888 +v 34.3373 -92.8367 14.223 +v 32.7779 -92.8367 17.5201 +v 30.9028 -92.8367 20.6486 +v 28.7301 -92.8367 23.5781 +v 26.2807 -92.8367 26.2806 +v 23.5782 -92.8367 28.73 +v 20.6486 -92.8367 30.9028 +v 17.5202 -92.8367 32.7779 +v 14.223 -92.8367 34.3373 +v 10.7889 -92.8367 35.5661 +v 7.25085 -92.8367 36.4523 +v 3.64299 -92.8367 36.9875 +v 4.26813e-05 -92.8367 37.1665 +v -3.6429 -92.8367 36.9875 +v -7.25077 -92.8367 36.4523 +v -10.7888 -92.8367 35.5661 +v -14.2229 -92.8367 34.3373 +v -17.5201 -92.8367 32.7779 +v -20.6485 -92.8367 30.9028 +v -23.5781 -92.8367 28.7301 +v -26.2806 -92.8367 26.2807 +v -28.73 -92.8367 23.5782 +v -30.9027 -92.8367 20.6486 +v -32.7779 -92.8367 17.5202 +v -34.3373 -92.8367 14.2231 +v -35.5661 -92.8367 10.7889 +v -36.4523 -92.8367 7.25089 +v -36.9875 -92.8367 3.64304 +v -37.1665 -92.8367 8.53625e-05 +v -36.9875 -92.8367 -3.64287 +v -36.4523 -92.8367 -7.25073 +v -35.5661 -92.8367 -10.7888 +v -34.3374 -92.8367 -14.2229 +v -32.7779 -92.8367 -17.5201 +v -30.9028 -92.8367 -20.6485 +v -28.7301 -92.8367 -23.5781 +v -26.2807 -92.8367 -26.2806 +v -23.5782 -92.8367 -28.73 +v -20.6487 -92.8367 -30.9027 +v -17.5203 -92.8367 -32.7778 +v -14.2231 -92.8367 -34.3373 +v -10.789 -92.8367 -35.566 +v -7.25094 -92.8367 -36.4523 +v -3.64308 -92.8367 -36.9875 +v -0.000123613 -92.8367 -37.1665 +v 3.64282 -92.8367 -36.9875 +v 7.25068 -92.8367 -36.4523 +v 10.7887 -92.8367 -35.5661 +v 14.2229 -92.8367 -34.3374 +v 17.52 -92.8367 -32.778 +v 20.6485 -92.8367 -30.9029 +v 23.578 -92.8367 -28.7301 +v 26.2805 -92.8367 -26.2808 +v 28.73 -92.8367 -23.5783 +v 30.9027 -92.8367 -20.6487 +v 32.7778 -92.8367 -17.5203 +v 34.3373 -92.8367 -14.2231 +v 35.566 -92.8367 -10.789 +v 36.4523 -92.8367 -7.25099 +v 36.9875 -92.8367 -3.64311 +v 28.1735 -95.9492 5.88009e-39 +v 28.0378 -95.9492 2.76148 +v 27.6321 -95.9492 5.49637 +v 26.9603 -95.9492 8.17832 +v 26.0289 -95.9492 10.7815 +v 24.8468 -95.9492 13.2809 +v 23.4254 -95.9492 15.6523 +v 21.7784 -95.9492 17.873 +v 19.9217 -95.9492 19.9216 +v 17.8731 -95.9492 21.7784 +v 15.6524 -95.9492 23.4254 +v 13.2809 -95.9492 24.8468 +v 10.7815 -95.9492 26.0289 +v 8.17835 -95.9492 26.9603 +v 5.4964 -95.9492 27.6321 +v 2.76151 -95.9492 28.0378 +v 3.23539e-05 -95.9492 28.1735 +v -2.76145 -95.9492 28.0378 +v -5.49633 -95.9492 27.6321 +v -8.17829 -95.9492 26.9603 +v -10.7815 -95.9492 26.0289 +v -13.2808 -95.9492 24.8468 +v -15.6523 -95.9492 23.4254 +v -17.873 -95.9492 21.7784 +v -19.9216 -95.9492 19.9217 +v -21.7784 -95.9492 17.8731 +v -23.4254 -95.9492 15.6524 +v -24.8468 -95.9492 13.2809 +v -26.0289 -95.9492 10.7816 +v -26.9603 -95.9492 8.17838 +v -27.6321 -95.9492 5.49643 +v -28.0378 -95.9492 2.76155 +v -28.1735 -95.9492 6.47078e-05 +v -28.0378 -95.9492 -2.76142 +v -27.6321 -95.9492 -5.4963 +v -26.9603 -95.9492 -8.17826 +v -26.0289 -95.9492 -10.7815 +v -24.8468 -95.9492 -13.2808 +v -23.4254 -95.9492 -15.6523 +v -21.7784 -95.9492 -17.873 +v -19.9217 -95.9492 -19.9216 +v -17.8731 -95.9492 -21.7783 +v -15.6524 -95.9492 -23.4253 +v -13.281 -95.9492 -24.8467 +v -10.7816 -95.9492 -26.0289 +v -8.17841 -95.9492 -26.9603 +v -5.49646 -95.9492 -27.6321 +v -2.76158 -95.9492 -28.0378 +v -9.37031e-05 -95.9492 -28.1735 +v 2.76138 -95.9492 -28.0378 +v 5.49627 -95.9492 -27.6321 +v 8.17823 -95.9492 -26.9604 +v 10.7814 -95.9492 -26.0289 +v 13.2808 -95.9492 -24.8468 +v 15.6522 -95.9492 -23.4254 +v 17.873 -95.9492 -21.7785 +v 19.9216 -95.9492 -19.9217 +v 21.7783 -95.9492 -17.8731 +v 23.4253 -95.9492 -15.6524 +v 24.8467 -95.9492 -13.281 +v 26.0288 -95.9492 -10.7816 +v 26.9603 -95.9492 -8.17845 +v 27.6321 -95.9492 -5.4965 +v 28.0378 -95.9492 -2.76161 +v 18.9253 -98.1928 5.88009e-39 +v 18.8342 -98.1928 1.85501 +v 18.5617 -98.1928 3.69215 +v 18.1104 -98.1928 5.49373 +v 17.4847 -98.1928 7.24241 +v 16.6907 -98.1928 8.92134 +v 15.7358 -98.1928 10.5143 +v 14.6295 -98.1928 12.0061 +v 13.3822 -98.1928 13.3822 +v 12.0061 -98.1928 14.6295 +v 10.5144 -98.1928 15.7358 +v 8.92135 -98.1928 16.6906 +v 7.24243 -98.1928 17.4847 +v 5.49375 -98.1928 18.1104 +v 3.69217 -98.1928 18.5617 +v 1.85503 -98.1928 18.8342 +v 2.17335e-05 -98.1928 18.9253 +v -1.85498 -98.1928 18.8342 +v -3.69213 -98.1928 18.5617 +v -5.49371 -98.1928 18.1104 +v -7.24239 -98.1928 17.4847 +v -8.92132 -98.1928 16.6907 +v -10.5143 -98.1928 15.7359 +v -12.0061 -98.1928 14.6295 +v -13.3822 -98.1928 13.3823 +v -14.6295 -98.1928 12.0061 +v -15.7358 -98.1928 10.5144 +v -16.6906 -98.1928 8.92138 +v -17.4847 -98.1928 7.24245 +v -18.1104 -98.1928 5.49377 +v -18.5617 -98.1928 3.69219 +v -18.8342 -98.1928 1.85505 +v -18.9253 -98.1928 4.3467e-05 +v -18.8342 -98.1928 -1.85496 +v -18.5617 -98.1928 -3.6921 +v -18.1104 -98.1928 -5.49369 +v -17.4847 -98.1928 -7.24237 +v -16.6907 -98.1928 -8.9213 +v -15.7359 -98.1928 -10.5143 +v -14.6295 -98.1928 -12.0061 +v -13.3823 -98.1928 -13.3822 +v -12.0061 -98.1928 -14.6294 +v -10.5144 -98.1928 -15.7358 +v -8.9214 -98.1928 -16.6906 +v -7.24246 -98.1928 -17.4847 +v -5.49379 -98.1928 -18.1104 +v -3.69221 -98.1928 -18.5617 +v -1.85508 -98.1928 -18.8342 +v -6.29444e-05 -98.1928 -18.9253 +v 1.85494 -98.1928 -18.8342 +v 3.69208 -98.1928 -18.5617 +v 5.49367 -98.1928 -18.1104 +v 7.24235 -98.1928 -17.4848 +v 8.92128 -98.1928 -16.6907 +v 10.5143 -98.1928 -15.7359 +v 12.0061 -98.1928 -14.6295 +v 13.3822 -98.1928 -13.3823 +v 14.6294 -98.1928 -12.0062 +v 15.7358 -98.1928 -10.5144 +v 16.6906 -98.1928 -8.92141 +v 17.4847 -98.1928 -7.24249 +v 18.1104 -98.1928 -5.49382 +v 18.5617 -98.1928 -3.69224 +v 18.8342 -98.1928 -1.85509 +v 9.50584 -99.5472 5.88009e-39 +v 9.46006 -99.5472 0.931734 +v 9.32319 -99.5472 1.8545 +v 9.09652 -99.5472 2.7594 +v 8.78225 -99.5472 3.63772 +v 8.3834 -99.5472 4.48102 +v 7.90382 -99.5472 5.28116 +v 7.34811 -99.5472 6.03044 +v 6.72165 -99.5472 6.72164 +v 6.03044 -99.5472 7.34811 +v 5.28117 -99.5472 7.90381 +v 4.48103 -99.5472 8.3834 +v 3.63773 -99.5472 8.78225 +v 2.75941 -99.5472 9.09652 +v 1.85451 -99.5472 9.32318 +v 0.931745 -99.5472 9.46006 +v 1.09163e-05 -99.5472 9.50584 +v -0.931723 -99.5472 9.46007 +v -1.85448 -99.5472 9.32319 +v -2.75939 -99.5472 9.09652 +v -3.63771 -99.5472 8.78225 +v -4.48101 -99.5472 8.38341 +v -5.28115 -99.5472 7.90382 +v -6.03043 -99.5472 7.34812 +v -6.72163 -99.5472 6.72165 +v -7.3481 -99.5472 6.03045 +v -7.90381 -99.5472 5.28117 +v -8.38339 -99.5472 4.48104 +v -8.78224 -99.5472 3.63774 +v -9.09651 -99.5472 2.75942 +v -9.32318 -99.5472 1.85452 +v -9.46006 -99.5472 0.931757 +v -9.50584 -99.5472 2.18327e-05 +v -9.46007 -99.5472 -0.931714 +v -9.32319 -99.5472 -1.85447 +v -9.09653 -99.5472 -2.75938 +v -8.78226 -99.5472 -3.6377 +v -8.38341 -99.5472 -4.481 +v -7.90383 -99.5472 -5.28114 +v -7.34813 -99.5472 -6.03042 +v -6.72166 -99.5472 -6.72162 +v -6.03046 -99.5472 -7.34809 +v -5.28118 -99.5472 -7.9038 +v -4.48105 -99.5472 -8.38339 +v -3.63775 -99.5472 -8.78224 +v -2.75943 -99.5472 -9.09651 +v -1.85453 -99.5472 -9.32318 +v -0.931769 -99.5472 -9.46006 +v -3.16158e-05 -99.5472 -9.50584 +v 0.931702 -99.5472 -9.46007 +v 1.85446 -99.5472 -9.32319 +v 2.75937 -99.5472 -9.09653 +v 3.63769 -99.5472 -8.78226 +v 4.48099 -99.5472 -8.38342 +v 5.28113 -99.5472 -7.90384 +v 6.03041 -99.5472 -7.34813 +v 6.72162 -99.5472 -6.72167 +v 7.34809 -99.5472 -6.03047 +v 7.90379 -99.5472 -5.28119 +v 8.38338 -99.5472 -4.48105 +v 8.78223 -99.5472 -3.63776 +v 9.09651 -99.5472 -2.75944 +v 9.32318 -99.5472 -1.85454 +v 9.46006 -99.5472 -0.931777 +f 3 4 68 67 +f 4 5 69 68 +f 5 6 70 69 +f 6 7 71 70 +f 7 8 72 71 +f 8 9 73 72 +f 9 10 74 73 +f 10 11 75 74 +f 11 12 76 75 +f 12 13 77 76 +f 13 14 78 77 +f 14 15 79 78 +f 15 16 80 79 +f 16 17 81 80 +f 17 18 82 81 +f 18 19 83 82 +f 19 20 84 83 +f 20 21 85 84 +f 21 22 86 85 +f 22 23 87 86 +f 23 24 88 87 +f 24 25 89 88 +f 25 26 90 89 +f 26 27 91 90 +f 27 28 92 91 +f 28 29 93 92 +f 29 30 94 93 +f 30 31 95 94 +f 31 32 96 95 +f 32 33 97 96 +f 33 34 98 97 +f 34 35 99 98 +f 35 36 100 99 +f 36 37 101 100 +f 37 38 102 101 +f 38 39 103 102 +f 39 40 104 103 +f 40 41 105 104 +f 41 42 106 105 +f 42 43 107 106 +f 43 44 108 107 +f 44 45 109 108 +f 45 46 110 109 +f 46 47 111 110 +f 47 48 112 111 +f 48 49 113 112 +f 49 50 114 113 +f 50 51 115 114 +f 51 52 116 115 +f 52 53 117 116 +f 53 54 118 117 +f 54 55 119 118 +f 55 56 120 119 +f 56 57 121 120 +f 57 58 122 121 +f 58 59 123 122 +f 59 60 124 123 +f 60 61 125 124 +f 61 62 126 125 +f 62 63 127 126 +f 63 64 128 127 +f 64 65 129 128 +f 65 66 130 129 +f 66 3 67 130 +f 67 68 132 131 +f 68 69 133 132 +f 69 70 134 133 +f 70 71 135 134 +f 71 72 136 135 +f 72 73 137 136 +f 73 74 138 137 +f 74 75 139 138 +f 75 76 140 139 +f 76 77 141 140 +f 77 78 142 141 +f 78 79 143 142 +f 79 80 144 143 +f 80 81 145 144 +f 81 82 146 145 +f 82 83 147 146 +f 83 84 148 147 +f 84 85 149 148 +f 85 86 150 149 +f 86 87 151 150 +f 87 88 152 151 +f 88 89 153 152 +f 89 90 154 153 +f 90 91 155 154 +f 91 92 156 155 +f 92 93 157 156 +f 93 94 158 157 +f 94 95 159 158 +f 95 96 160 159 +f 96 97 161 160 +f 97 98 162 161 +f 98 99 163 162 +f 99 100 164 163 +f 100 101 165 164 +f 101 102 166 165 +f 102 103 167 166 +f 103 104 168 167 +f 104 105 169 168 +f 105 106 170 169 +f 106 107 171 170 +f 107 108 172 171 +f 108 109 173 172 +f 109 110 174 173 +f 110 111 175 174 +f 111 112 176 175 +f 112 113 177 176 +f 113 114 178 177 +f 114 115 179 178 +f 115 116 180 179 +f 116 117 181 180 +f 117 118 182 181 +f 118 119 183 182 +f 119 120 184 183 +f 120 121 185 184 +f 121 122 186 185 +f 122 123 187 186 +f 123 124 188 187 +f 124 125 189 188 +f 125 126 190 189 +f 126 127 191 190 +f 127 128 192 191 +f 128 129 193 192 +f 129 130 194 193 +f 130 67 131 194 +f 131 132 196 195 +f 132 133 197 196 +f 133 134 198 197 +f 134 135 199 198 +f 135 136 200 199 +f 136 137 201 200 +f 137 138 202 201 +f 138 139 203 202 +f 139 140 204 203 +f 140 141 205 204 +f 141 142 206 205 +f 142 143 207 206 +f 143 144 208 207 +f 144 145 209 208 +f 145 146 210 209 +f 146 147 211 210 +f 147 148 212 211 +f 148 149 213 212 +f 149 150 214 213 +f 150 151 215 214 +f 151 152 216 215 +f 152 153 217 216 +f 153 154 218 217 +f 154 155 219 218 +f 155 156 220 219 +f 156 157 221 220 +f 157 158 222 221 +f 158 159 223 222 +f 159 160 224 223 +f 160 161 225 224 +f 161 162 226 225 +f 162 163 227 226 +f 163 164 228 227 +f 164 165 229 228 +f 165 166 230 229 +f 166 167 231 230 +f 167 168 232 231 +f 168 169 233 232 +f 169 170 234 233 +f 170 171 235 234 +f 171 172 236 235 +f 172 173 237 236 +f 173 174 238 237 +f 174 175 239 238 +f 175 176 240 239 +f 176 177 241 240 +f 177 178 242 241 +f 178 179 243 242 +f 179 180 244 243 +f 180 181 245 244 +f 181 182 246 245 +f 182 183 247 246 +f 183 184 248 247 +f 184 185 249 248 +f 185 186 250 249 +f 186 187 251 250 +f 187 188 252 251 +f 188 189 253 252 +f 189 190 254 253 +f 190 191 255 254 +f 191 192 256 255 +f 192 193 257 256 +f 193 194 258 257 +f 194 131 195 258 +f 195 196 260 259 +f 196 197 261 260 +f 197 198 262 261 +f 198 199 263 262 +f 199 200 264 263 +f 200 201 265 264 +f 201 202 266 265 +f 202 203 267 266 +f 203 204 268 267 +f 204 205 269 268 +f 205 206 270 269 +f 206 207 271 270 +f 207 208 272 271 +f 208 209 273 272 +f 209 210 274 273 +f 210 211 275 274 +f 211 212 276 275 +f 212 213 277 276 +f 213 214 278 277 +f 214 215 279 278 +f 215 216 280 279 +f 216 217 281 280 +f 217 218 282 281 +f 218 219 283 282 +f 219 220 284 283 +f 220 221 285 284 +f 221 222 286 285 +f 222 223 287 286 +f 223 224 288 287 +f 224 225 289 288 +f 225 226 290 289 +f 226 227 291 290 +f 227 228 292 291 +f 228 229 293 292 +f 229 230 294 293 +f 230 231 295 294 +f 231 232 296 295 +f 232 233 297 296 +f 233 234 298 297 +f 234 235 299 298 +f 235 236 300 299 +f 236 237 301 300 +f 237 238 302 301 +f 238 239 303 302 +f 239 240 304 303 +f 240 241 305 304 +f 241 242 306 305 +f 242 243 307 306 +f 243 244 308 307 +f 244 245 309 308 +f 245 246 310 309 +f 246 247 311 310 +f 247 248 312 311 +f 248 249 313 312 +f 249 250 314 313 +f 250 251 315 314 +f 251 252 316 315 +f 252 253 317 316 +f 253 254 318 317 +f 254 255 319 318 +f 255 256 320 319 +f 256 257 321 320 +f 257 258 322 321 +f 258 195 259 322 +f 259 260 324 323 +f 260 261 325 324 +f 261 262 326 325 +f 262 263 327 326 +f 263 264 328 327 +f 264 265 329 328 +f 265 266 330 329 +f 266 267 331 330 +f 267 268 332 331 +f 268 269 333 332 +f 269 270 334 333 +f 270 271 335 334 +f 271 272 336 335 +f 272 273 337 336 +f 273 274 338 337 +f 274 275 339 338 +f 275 276 340 339 +f 276 277 341 340 +f 277 278 342 341 +f 278 279 343 342 +f 279 280 344 343 +f 280 281 345 344 +f 281 282 346 345 +f 282 283 347 346 +f 283 284 348 347 +f 284 285 349 348 +f 285 286 350 349 +f 286 287 351 350 +f 287 288 352 351 +f 288 289 353 352 +f 289 290 354 353 +f 290 291 355 354 +f 291 292 356 355 +f 292 293 357 356 +f 293 294 358 357 +f 294 295 359 358 +f 295 296 360 359 +f 296 297 361 360 +f 297 298 362 361 +f 298 299 363 362 +f 299 300 364 363 +f 300 301 365 364 +f 301 302 366 365 +f 302 303 367 366 +f 303 304 368 367 +f 304 305 369 368 +f 305 306 370 369 +f 306 307 371 370 +f 307 308 372 371 +f 308 309 373 372 +f 309 310 374 373 +f 310 311 375 374 +f 311 312 376 375 +f 312 313 377 376 +f 313 314 378 377 +f 314 315 379 378 +f 315 316 380 379 +f 316 317 381 380 +f 317 318 382 381 +f 318 319 383 382 +f 319 320 384 383 +f 320 321 385 384 +f 321 322 386 385 +f 322 259 323 386 +f 323 324 388 387 +f 324 325 389 388 +f 325 326 390 389 +f 326 327 391 390 +f 327 328 392 391 +f 328 329 393 392 +f 329 330 394 393 +f 330 331 395 394 +f 331 332 396 395 +f 332 333 397 396 +f 333 334 398 397 +f 334 335 399 398 +f 335 336 400 399 +f 336 337 401 400 +f 337 338 402 401 +f 338 339 403 402 +f 339 340 404 403 +f 340 341 405 404 +f 341 342 406 405 +f 342 343 407 406 +f 343 344 408 407 +f 344 345 409 408 +f 345 346 410 409 +f 346 347 411 410 +f 347 348 412 411 +f 348 349 413 412 +f 349 350 414 413 +f 350 351 415 414 +f 351 352 416 415 +f 352 353 417 416 +f 353 354 418 417 +f 354 355 419 418 +f 355 356 420 419 +f 356 357 421 420 +f 357 358 422 421 +f 358 359 423 422 +f 359 360 424 423 +f 360 361 425 424 +f 361 362 426 425 +f 362 363 427 426 +f 363 364 428 427 +f 364 365 429 428 +f 365 366 430 429 +f 366 367 431 430 +f 367 368 432 431 +f 368 369 433 432 +f 369 370 434 433 +f 370 371 435 434 +f 371 372 436 435 +f 372 373 437 436 +f 373 374 438 437 +f 374 375 439 438 +f 375 376 440 439 +f 376 377 441 440 +f 377 378 442 441 +f 378 379 443 442 +f 379 380 444 443 +f 380 381 445 444 +f 381 382 446 445 +f 382 383 447 446 +f 383 384 448 447 +f 384 385 449 448 +f 385 386 450 449 +f 386 323 387 450 +f 387 388 452 451 +f 388 389 453 452 +f 389 390 454 453 +f 390 391 455 454 +f 391 392 456 455 +f 392 393 457 456 +f 393 394 458 457 +f 394 395 459 458 +f 395 396 460 459 +f 396 397 461 460 +f 397 398 462 461 +f 398 399 463 462 +f 399 400 464 463 +f 400 401 465 464 +f 401 402 466 465 +f 402 403 467 466 +f 403 404 468 467 +f 404 405 469 468 +f 405 406 470 469 +f 406 407 471 470 +f 407 408 472 471 +f 408 409 473 472 +f 409 410 474 473 +f 410 411 475 474 +f 411 412 476 475 +f 412 413 477 476 +f 413 414 478 477 +f 414 415 479 478 +f 415 416 480 479 +f 416 417 481 480 +f 417 418 482 481 +f 418 419 483 482 +f 419 420 484 483 +f 420 421 485 484 +f 421 422 486 485 +f 422 423 487 486 +f 423 424 488 487 +f 424 425 489 488 +f 425 426 490 489 +f 426 427 491 490 +f 427 428 492 491 +f 428 429 493 492 +f 429 430 494 493 +f 430 431 495 494 +f 431 432 496 495 +f 432 433 497 496 +f 433 434 498 497 +f 434 435 499 498 +f 435 436 500 499 +f 436 437 501 500 +f 437 438 502 501 +f 438 439 503 502 +f 439 440 504 503 +f 440 441 505 504 +f 441 442 506 505 +f 442 443 507 506 +f 443 444 508 507 +f 444 445 509 508 +f 445 446 510 509 +f 446 447 511 510 +f 447 448 512 511 +f 448 449 513 512 +f 449 450 514 513 +f 450 387 451 514 +f 451 452 516 515 +f 452 453 517 516 +f 453 454 518 517 +f 454 455 519 518 +f 455 456 520 519 +f 456 457 521 520 +f 457 458 522 521 +f 458 459 523 522 +f 459 460 524 523 +f 460 461 525 524 +f 461 462 526 525 +f 462 463 527 526 +f 463 464 528 527 +f 464 465 529 528 +f 465 466 530 529 +f 466 467 531 530 +f 467 468 532 531 +f 468 469 533 532 +f 469 470 534 533 +f 470 471 535 534 +f 471 472 536 535 +f 472 473 537 536 +f 473 474 538 537 +f 474 475 539 538 +f 475 476 540 539 +f 476 477 541 540 +f 477 478 542 541 +f 478 479 543 542 +f 479 480 544 543 +f 480 481 545 544 +f 481 482 546 545 +f 482 483 547 546 +f 483 484 548 547 +f 484 485 549 548 +f 485 486 550 549 +f 486 487 551 550 +f 487 488 552 551 +f 488 489 553 552 +f 489 490 554 553 +f 490 491 555 554 +f 491 492 556 555 +f 492 493 557 556 +f 493 494 558 557 +f 494 495 559 558 +f 495 496 560 559 +f 496 497 561 560 +f 497 498 562 561 +f 498 499 563 562 +f 499 500 564 563 +f 500 501 565 564 +f 501 502 566 565 +f 502 503 567 566 +f 503 504 568 567 +f 504 505 569 568 +f 505 506 570 569 +f 506 507 571 570 +f 507 508 572 571 +f 508 509 573 572 +f 509 510 574 573 +f 510 511 575 574 +f 511 512 576 575 +f 512 513 577 576 +f 513 514 578 577 +f 514 451 515 578 +f 515 516 580 579 +f 516 517 581 580 +f 517 518 582 581 +f 518 519 583 582 +f 519 520 584 583 +f 520 521 585 584 +f 521 522 586 585 +f 522 523 587 586 +f 523 524 588 587 +f 524 525 589 588 +f 525 526 590 589 +f 526 527 591 590 +f 527 528 592 591 +f 528 529 593 592 +f 529 530 594 593 +f 530 531 595 594 +f 531 532 596 595 +f 532 533 597 596 +f 533 534 598 597 +f 534 535 599 598 +f 535 536 600 599 +f 536 537 601 600 +f 537 538 602 601 +f 538 539 603 602 +f 539 540 604 603 +f 540 541 605 604 +f 541 542 606 605 +f 542 543 607 606 +f 543 544 608 607 +f 544 545 609 608 +f 545 546 610 609 +f 546 547 611 610 +f 547 548 612 611 +f 548 549 613 612 +f 549 550 614 613 +f 550 551 615 614 +f 551 552 616 615 +f 552 553 617 616 +f 553 554 618 617 +f 554 555 619 618 +f 555 556 620 619 +f 556 557 621 620 +f 557 558 622 621 +f 558 559 623 622 +f 559 560 624 623 +f 560 561 625 624 +f 561 562 626 625 +f 562 563 627 626 +f 563 564 628 627 +f 564 565 629 628 +f 565 566 630 629 +f 566 567 631 630 +f 567 568 632 631 +f 568 569 633 632 +f 569 570 634 633 +f 570 571 635 634 +f 571 572 636 635 +f 572 573 637 636 +f 573 574 638 637 +f 574 575 639 638 +f 575 576 640 639 +f 576 577 641 640 +f 577 578 642 641 +f 578 515 579 642 +f 579 580 644 643 +f 580 581 645 644 +f 581 582 646 645 +f 582 583 647 646 +f 583 584 648 647 +f 584 585 649 648 +f 585 586 650 649 +f 586 587 651 650 +f 587 588 652 651 +f 588 589 653 652 +f 589 590 654 653 +f 590 591 655 654 +f 591 592 656 655 +f 592 593 657 656 +f 593 594 658 657 +f 594 595 659 658 +f 595 596 660 659 +f 596 597 661 660 +f 597 598 662 661 +f 598 599 663 662 +f 599 600 664 663 +f 600 601 665 664 +f 601 602 666 665 +f 602 603 667 666 +f 603 604 668 667 +f 604 605 669 668 +f 605 606 670 669 +f 606 607 671 670 +f 607 608 672 671 +f 608 609 673 672 +f 609 610 674 673 +f 610 611 675 674 +f 611 612 676 675 +f 612 613 677 676 +f 613 614 678 677 +f 614 615 679 678 +f 615 616 680 679 +f 616 617 681 680 +f 617 618 682 681 +f 618 619 683 682 +f 619 620 684 683 +f 620 621 685 684 +f 621 622 686 685 +f 622 623 687 686 +f 623 624 688 687 +f 624 625 689 688 +f 625 626 690 689 +f 626 627 691 690 +f 627 628 692 691 +f 628 629 693 692 +f 629 630 694 693 +f 630 631 695 694 +f 631 632 696 695 +f 632 633 697 696 +f 633 634 698 697 +f 634 635 699 698 +f 635 636 700 699 +f 636 637 701 700 +f 637 638 702 701 +f 638 639 703 702 +f 639 640 704 703 +f 640 641 705 704 +f 641 642 706 705 +f 642 579 643 706 +f 643 644 708 707 +f 644 645 709 708 +f 645 646 710 709 +f 646 647 711 710 +f 647 648 712 711 +f 648 649 713 712 +f 649 650 714 713 +f 650 651 715 714 +f 651 652 716 715 +f 652 653 717 716 +f 653 654 718 717 +f 654 655 719 718 +f 655 656 720 719 +f 656 657 721 720 +f 657 658 722 721 +f 658 659 723 722 +f 659 660 724 723 +f 660 661 725 724 +f 661 662 726 725 +f 662 663 727 726 +f 663 664 728 727 +f 664 665 729 728 +f 665 666 730 729 +f 666 667 731 730 +f 667 668 732 731 +f 668 669 733 732 +f 669 670 734 733 +f 670 671 735 734 +f 671 672 736 735 +f 672 673 737 736 +f 673 674 738 737 +f 674 675 739 738 +f 675 676 740 739 +f 676 677 741 740 +f 677 678 742 741 +f 678 679 743 742 +f 679 680 744 743 +f 680 681 745 744 +f 681 682 746 745 +f 682 683 747 746 +f 683 684 748 747 +f 684 685 749 748 +f 685 686 750 749 +f 686 687 751 750 +f 687 688 752 751 +f 688 689 753 752 +f 689 690 754 753 +f 690 691 755 754 +f 691 692 756 755 +f 692 693 757 756 +f 693 694 758 757 +f 694 695 759 758 +f 695 696 760 759 +f 696 697 761 760 +f 697 698 762 761 +f 698 699 763 762 +f 699 700 764 763 +f 700 701 765 764 +f 701 702 766 765 +f 702 703 767 766 +f 703 704 768 767 +f 704 705 769 768 +f 705 706 770 769 +f 706 643 707 770 +f 707 708 772 771 +f 708 709 773 772 +f 709 710 774 773 +f 710 711 775 774 +f 711 712 776 775 +f 712 713 777 776 +f 713 714 778 777 +f 714 715 779 778 +f 715 716 780 779 +f 716 717 781 780 +f 717 718 782 781 +f 718 719 783 782 +f 719 720 784 783 +f 720 721 785 784 +f 721 722 786 785 +f 722 723 787 786 +f 723 724 788 787 +f 724 725 789 788 +f 725 726 790 789 +f 726 727 791 790 +f 727 728 792 791 +f 728 729 793 792 +f 729 730 794 793 +f 730 731 795 794 +f 731 732 796 795 +f 732 733 797 796 +f 733 734 798 797 +f 734 735 799 798 +f 735 736 800 799 +f 736 737 801 800 +f 737 738 802 801 +f 738 739 803 802 +f 739 740 804 803 +f 740 741 805 804 +f 741 742 806 805 +f 742 743 807 806 +f 743 744 808 807 +f 744 745 809 808 +f 745 746 810 809 +f 746 747 811 810 +f 747 748 812 811 +f 748 749 813 812 +f 749 750 814 813 +f 750 751 815 814 +f 751 752 816 815 +f 752 753 817 816 +f 753 754 818 817 +f 754 755 819 818 +f 755 756 820 819 +f 756 757 821 820 +f 757 758 822 821 +f 758 759 823 822 +f 759 760 824 823 +f 760 761 825 824 +f 761 762 826 825 +f 762 763 827 826 +f 763 764 828 827 +f 764 765 829 828 +f 765 766 830 829 +f 766 767 831 830 +f 767 768 832 831 +f 768 769 833 832 +f 769 770 834 833 +f 770 707 771 834 +f 771 772 836 835 +f 772 773 837 836 +f 773 774 838 837 +f 774 775 839 838 +f 775 776 840 839 +f 776 777 841 840 +f 777 778 842 841 +f 778 779 843 842 +f 779 780 844 843 +f 780 781 845 844 +f 781 782 846 845 +f 782 783 847 846 +f 783 784 848 847 +f 784 785 849 848 +f 785 786 850 849 +f 786 787 851 850 +f 787 788 852 851 +f 788 789 853 852 +f 789 790 854 853 +f 790 791 855 854 +f 791 792 856 855 +f 792 793 857 856 +f 793 794 858 857 +f 794 795 859 858 +f 795 796 860 859 +f 796 797 861 860 +f 797 798 862 861 +f 798 799 863 862 +f 799 800 864 863 +f 800 801 865 864 +f 801 802 866 865 +f 802 803 867 866 +f 803 804 868 867 +f 804 805 869 868 +f 805 806 870 869 +f 806 807 871 870 +f 807 808 872 871 +f 808 809 873 872 +f 809 810 874 873 +f 810 811 875 874 +f 811 812 876 875 +f 812 813 877 876 +f 813 814 878 877 +f 814 815 879 878 +f 815 816 880 879 +f 816 817 881 880 +f 817 818 882 881 +f 818 819 883 882 +f 819 820 884 883 +f 820 821 885 884 +f 821 822 886 885 +f 822 823 887 886 +f 823 824 888 887 +f 824 825 889 888 +f 825 826 890 889 +f 826 827 891 890 +f 827 828 892 891 +f 828 829 893 892 +f 829 830 894 893 +f 830 831 895 894 +f 831 832 896 895 +f 832 833 897 896 +f 833 834 898 897 +f 834 771 835 898 +f 835 836 900 899 +f 836 837 901 900 +f 837 838 902 901 +f 838 839 903 902 +f 839 840 904 903 +f 840 841 905 904 +f 841 842 906 905 +f 842 843 907 906 +f 843 844 908 907 +f 844 845 909 908 +f 845 846 910 909 +f 846 847 911 910 +f 847 848 912 911 +f 848 849 913 912 +f 849 850 914 913 +f 850 851 915 914 +f 851 852 916 915 +f 852 853 917 916 +f 853 854 918 917 +f 854 855 919 918 +f 855 856 920 919 +f 856 857 921 920 +f 857 858 922 921 +f 858 859 923 922 +f 859 860 924 923 +f 860 861 925 924 +f 861 862 926 925 +f 862 863 927 926 +f 863 864 928 927 +f 864 865 929 928 +f 865 866 930 929 +f 866 867 931 930 +f 867 868 932 931 +f 868 869 933 932 +f 869 870 934 933 +f 870 871 935 934 +f 871 872 936 935 +f 872 873 937 936 +f 873 874 938 937 +f 874 875 939 938 +f 875 876 940 939 +f 876 877 941 940 +f 877 878 942 941 +f 878 879 943 942 +f 879 880 944 943 +f 880 881 945 944 +f 881 882 946 945 +f 882 883 947 946 +f 883 884 948 947 +f 884 885 949 948 +f 885 886 950 949 +f 886 887 951 950 +f 887 888 952 951 +f 888 889 953 952 +f 889 890 954 953 +f 890 891 955 954 +f 891 892 956 955 +f 892 893 957 956 +f 893 894 958 957 +f 894 895 959 958 +f 895 896 960 959 +f 896 897 961 960 +f 897 898 962 961 +f 898 835 899 962 +f 899 900 964 963 +f 900 901 965 964 +f 901 902 966 965 +f 902 903 967 966 +f 903 904 968 967 +f 904 905 969 968 +f 905 906 970 969 +f 906 907 971 970 +f 907 908 972 971 +f 908 909 973 972 +f 909 910 974 973 +f 910 911 975 974 +f 911 912 976 975 +f 912 913 977 976 +f 913 914 978 977 +f 914 915 979 978 +f 915 916 980 979 +f 916 917 981 980 +f 917 918 982 981 +f 918 919 983 982 +f 919 920 984 983 +f 920 921 985 984 +f 921 922 986 985 +f 922 923 987 986 +f 923 924 988 987 +f 924 925 989 988 +f 925 926 990 989 +f 926 927 991 990 +f 927 928 992 991 +f 928 929 993 992 +f 929 930 994 993 +f 930 931 995 994 +f 931 932 996 995 +f 932 933 997 996 +f 933 934 998 997 +f 934 935 999 998 +f 935 936 1000 999 +f 936 937 1001 1000 +f 937 938 1002 1001 +f 938 939 1003 1002 +f 939 940 1004 1003 +f 940 941 1005 1004 +f 941 942 1006 1005 +f 942 943 1007 1006 +f 943 944 1008 1007 +f 944 945 1009 1008 +f 945 946 1010 1009 +f 946 947 1011 1010 +f 947 948 1012 1011 +f 948 949 1013 1012 +f 949 950 1014 1013 +f 950 951 1015 1014 +f 951 952 1016 1015 +f 952 953 1017 1016 +f 953 954 1018 1017 +f 954 955 1019 1018 +f 955 956 1020 1019 +f 956 957 1021 1020 +f 957 958 1022 1021 +f 958 959 1023 1022 +f 959 960 1024 1023 +f 960 961 1025 1024 +f 961 962 1026 1025 +f 962 899 963 1026 +f 963 964 1028 1027 +f 964 965 1029 1028 +f 965 966 1030 1029 +f 966 967 1031 1030 +f 967 968 1032 1031 +f 968 969 1033 1032 +f 969 970 1034 1033 +f 970 971 1035 1034 +f 971 972 1036 1035 +f 972 973 1037 1036 +f 973 974 1038 1037 +f 974 975 1039 1038 +f 975 976 1040 1039 +f 976 977 1041 1040 +f 977 978 1042 1041 +f 978 979 1043 1042 +f 979 980 1044 1043 +f 980 981 1045 1044 +f 981 982 1046 1045 +f 982 983 1047 1046 +f 983 984 1048 1047 +f 984 985 1049 1048 +f 985 986 1050 1049 +f 986 987 1051 1050 +f 987 988 1052 1051 +f 988 989 1053 1052 +f 989 990 1054 1053 +f 990 991 1055 1054 +f 991 992 1056 1055 +f 992 993 1057 1056 +f 993 994 1058 1057 +f 994 995 1059 1058 +f 995 996 1060 1059 +f 996 997 1061 1060 +f 997 998 1062 1061 +f 998 999 1063 1062 +f 999 1000 1064 1063 +f 1000 1001 1065 1064 +f 1001 1002 1066 1065 +f 1002 1003 1067 1066 +f 1003 1004 1068 1067 +f 1004 1005 1069 1068 +f 1005 1006 1070 1069 +f 1006 1007 1071 1070 +f 1007 1008 1072 1071 +f 1008 1009 1073 1072 +f 1009 1010 1074 1073 +f 1010 1011 1075 1074 +f 1011 1012 1076 1075 +f 1012 1013 1077 1076 +f 1013 1014 1078 1077 +f 1014 1015 1079 1078 +f 1015 1016 1080 1079 +f 1016 1017 1081 1080 +f 1017 1018 1082 1081 +f 1018 1019 1083 1082 +f 1019 1020 1084 1083 +f 1020 1021 1085 1084 +f 1021 1022 1086 1085 +f 1022 1023 1087 1086 +f 1023 1024 1088 1087 +f 1024 1025 1089 1088 +f 1025 1026 1090 1089 +f 1026 963 1027 1090 +f 1027 1028 1092 1091 +f 1028 1029 1093 1092 +f 1029 1030 1094 1093 +f 1030 1031 1095 1094 +f 1031 1032 1096 1095 +f 1032 1033 1097 1096 +f 1033 1034 1098 1097 +f 1034 1035 1099 1098 +f 1035 1036 1100 1099 +f 1036 1037 1101 1100 +f 1037 1038 1102 1101 +f 1038 1039 1103 1102 +f 1039 1040 1104 1103 +f 1040 1041 1105 1104 +f 1041 1042 1106 1105 +f 1042 1043 1107 1106 +f 1043 1044 1108 1107 +f 1044 1045 1109 1108 +f 1045 1046 1110 1109 +f 1046 1047 1111 1110 +f 1047 1048 1112 1111 +f 1048 1049 1113 1112 +f 1049 1050 1114 1113 +f 1050 1051 1115 1114 +f 1051 1052 1116 1115 +f 1052 1053 1117 1116 +f 1053 1054 1118 1117 +f 1054 1055 1119 1118 +f 1055 1056 1120 1119 +f 1056 1057 1121 1120 +f 1057 1058 1122 1121 +f 1058 1059 1123 1122 +f 1059 1060 1124 1123 +f 1060 1061 1125 1124 +f 1061 1062 1126 1125 +f 1062 1063 1127 1126 +f 1063 1064 1128 1127 +f 1064 1065 1129 1128 +f 1065 1066 1130 1129 +f 1066 1067 1131 1130 +f 1067 1068 1132 1131 +f 1068 1069 1133 1132 +f 1069 1070 1134 1133 +f 1070 1071 1135 1134 +f 1071 1072 1136 1135 +f 1072 1073 1137 1136 +f 1073 1074 1138 1137 +f 1074 1075 1139 1138 +f 1075 1076 1140 1139 +f 1076 1077 1141 1140 +f 1077 1078 1142 1141 +f 1078 1079 1143 1142 +f 1079 1080 1144 1143 +f 1080 1081 1145 1144 +f 1081 1082 1146 1145 +f 1082 1083 1147 1146 +f 1083 1084 1148 1147 +f 1084 1085 1149 1148 +f 1085 1086 1150 1149 +f 1086 1087 1151 1150 +f 1087 1088 1152 1151 +f 1088 1089 1153 1152 +f 1089 1090 1154 1153 +f 1090 1027 1091 1154 +f 1091 1092 1156 1155 +f 1092 1093 1157 1156 +f 1093 1094 1158 1157 +f 1094 1095 1159 1158 +f 1095 1096 1160 1159 +f 1096 1097 1161 1160 +f 1097 1098 1162 1161 +f 1098 1099 1163 1162 +f 1099 1100 1164 1163 +f 1100 1101 1165 1164 +f 1101 1102 1166 1165 +f 1102 1103 1167 1166 +f 1103 1104 1168 1167 +f 1104 1105 1169 1168 +f 1105 1106 1170 1169 +f 1106 1107 1171 1170 +f 1107 1108 1172 1171 +f 1108 1109 1173 1172 +f 1109 1110 1174 1173 +f 1110 1111 1175 1174 +f 1111 1112 1176 1175 +f 1112 1113 1177 1176 +f 1113 1114 1178 1177 +f 1114 1115 1179 1178 +f 1115 1116 1180 1179 +f 1116 1117 1181 1180 +f 1117 1118 1182 1181 +f 1118 1119 1183 1182 +f 1119 1120 1184 1183 +f 1120 1121 1185 1184 +f 1121 1122 1186 1185 +f 1122 1123 1187 1186 +f 1123 1124 1188 1187 +f 1124 1125 1189 1188 +f 1125 1126 1190 1189 +f 1126 1127 1191 1190 +f 1127 1128 1192 1191 +f 1128 1129 1193 1192 +f 1129 1130 1194 1193 +f 1130 1131 1195 1194 +f 1131 1132 1196 1195 +f 1132 1133 1197 1196 +f 1133 1134 1198 1197 +f 1134 1135 1199 1198 +f 1135 1136 1200 1199 +f 1136 1137 1201 1200 +f 1137 1138 1202 1201 +f 1138 1139 1203 1202 +f 1139 1140 1204 1203 +f 1140 1141 1205 1204 +f 1141 1142 1206 1205 +f 1142 1143 1207 1206 +f 1143 1144 1208 1207 +f 1144 1145 1209 1208 +f 1145 1146 1210 1209 +f 1146 1147 1211 1210 +f 1147 1148 1212 1211 +f 1148 1149 1213 1212 +f 1149 1150 1214 1213 +f 1150 1151 1215 1214 +f 1151 1152 1216 1215 +f 1152 1153 1217 1216 +f 1153 1154 1218 1217 +f 1154 1091 1155 1218 +f 1155 1156 1220 1219 +f 1156 1157 1221 1220 +f 1157 1158 1222 1221 +f 1158 1159 1223 1222 +f 1159 1160 1224 1223 +f 1160 1161 1225 1224 +f 1161 1162 1226 1225 +f 1162 1163 1227 1226 +f 1163 1164 1228 1227 +f 1164 1165 1229 1228 +f 1165 1166 1230 1229 +f 1166 1167 1231 1230 +f 1167 1168 1232 1231 +f 1168 1169 1233 1232 +f 1169 1170 1234 1233 +f 1170 1171 1235 1234 +f 1171 1172 1236 1235 +f 1172 1173 1237 1236 +f 1173 1174 1238 1237 +f 1174 1175 1239 1238 +f 1175 1176 1240 1239 +f 1176 1177 1241 1240 +f 1177 1178 1242 1241 +f 1178 1179 1243 1242 +f 1179 1180 1244 1243 +f 1180 1181 1245 1244 +f 1181 1182 1246 1245 +f 1182 1183 1247 1246 +f 1183 1184 1248 1247 +f 1184 1185 1249 1248 +f 1185 1186 1250 1249 +f 1186 1187 1251 1250 +f 1187 1188 1252 1251 +f 1188 1189 1253 1252 +f 1189 1190 1254 1253 +f 1190 1191 1255 1254 +f 1191 1192 1256 1255 +f 1192 1193 1257 1256 +f 1193 1194 1258 1257 +f 1194 1195 1259 1258 +f 1195 1196 1260 1259 +f 1196 1197 1261 1260 +f 1197 1198 1262 1261 +f 1198 1199 1263 1262 +f 1199 1200 1264 1263 +f 1200 1201 1265 1264 +f 1201 1202 1266 1265 +f 1202 1203 1267 1266 +f 1203 1204 1268 1267 +f 1204 1205 1269 1268 +f 1205 1206 1270 1269 +f 1206 1207 1271 1270 +f 1207 1208 1272 1271 +f 1208 1209 1273 1272 +f 1209 1210 1274 1273 +f 1210 1211 1275 1274 +f 1211 1212 1276 1275 +f 1212 1213 1277 1276 +f 1213 1214 1278 1277 +f 1214 1215 1279 1278 +f 1215 1216 1280 1279 +f 1216 1217 1281 1280 +f 1217 1218 1282 1281 +f 1218 1155 1219 1282 +f 1219 1220 1284 1283 +f 1220 1221 1285 1284 +f 1221 1222 1286 1285 +f 1222 1223 1287 1286 +f 1223 1224 1288 1287 +f 1224 1225 1289 1288 +f 1225 1226 1290 1289 +f 1226 1227 1291 1290 +f 1227 1228 1292 1291 +f 1228 1229 1293 1292 +f 1229 1230 1294 1293 +f 1230 1231 1295 1294 +f 1231 1232 1296 1295 +f 1232 1233 1297 1296 +f 1233 1234 1298 1297 +f 1234 1235 1299 1298 +f 1235 1236 1300 1299 +f 1236 1237 1301 1300 +f 1237 1238 1302 1301 +f 1238 1239 1303 1302 +f 1239 1240 1304 1303 +f 1240 1241 1305 1304 +f 1241 1242 1306 1305 +f 1242 1243 1307 1306 +f 1243 1244 1308 1307 +f 1244 1245 1309 1308 +f 1245 1246 1310 1309 +f 1246 1247 1311 1310 +f 1247 1248 1312 1311 +f 1248 1249 1313 1312 +f 1249 1250 1314 1313 +f 1250 1251 1315 1314 +f 1251 1252 1316 1315 +f 1252 1253 1317 1316 +f 1253 1254 1318 1317 +f 1254 1255 1319 1318 +f 1255 1256 1320 1319 +f 1256 1257 1321 1320 +f 1257 1258 1322 1321 +f 1258 1259 1323 1322 +f 1259 1260 1324 1323 +f 1260 1261 1325 1324 +f 1261 1262 1326 1325 +f 1262 1263 1327 1326 +f 1263 1264 1328 1327 +f 1264 1265 1329 1328 +f 1265 1266 1330 1329 +f 1266 1267 1331 1330 +f 1267 1268 1332 1331 +f 1268 1269 1333 1332 +f 1269 1270 1334 1333 +f 1270 1271 1335 1334 +f 1271 1272 1336 1335 +f 1272 1273 1337 1336 +f 1273 1274 1338 1337 +f 1274 1275 1339 1338 +f 1275 1276 1340 1339 +f 1276 1277 1341 1340 +f 1277 1278 1342 1341 +f 1278 1279 1343 1342 +f 1279 1280 1344 1343 +f 1280 1281 1345 1344 +f 1281 1282 1346 1345 +f 1282 1219 1283 1346 +f 1283 1284 1348 1347 +f 1284 1285 1349 1348 +f 1285 1286 1350 1349 +f 1286 1287 1351 1350 +f 1287 1288 1352 1351 +f 1288 1289 1353 1352 +f 1289 1290 1354 1353 +f 1290 1291 1355 1354 +f 1291 1292 1356 1355 +f 1292 1293 1357 1356 +f 1293 1294 1358 1357 +f 1294 1295 1359 1358 +f 1295 1296 1360 1359 +f 1296 1297 1361 1360 +f 1297 1298 1362 1361 +f 1298 1299 1363 1362 +f 1299 1300 1364 1363 +f 1300 1301 1365 1364 +f 1301 1302 1366 1365 +f 1302 1303 1367 1366 +f 1303 1304 1368 1367 +f 1304 1305 1369 1368 +f 1305 1306 1370 1369 +f 1306 1307 1371 1370 +f 1307 1308 1372 1371 +f 1308 1309 1373 1372 +f 1309 1310 1374 1373 +f 1310 1311 1375 1374 +f 1311 1312 1376 1375 +f 1312 1313 1377 1376 +f 1313 1314 1378 1377 +f 1314 1315 1379 1378 +f 1315 1316 1380 1379 +f 1316 1317 1381 1380 +f 1317 1318 1382 1381 +f 1318 1319 1383 1382 +f 1319 1320 1384 1383 +f 1320 1321 1385 1384 +f 1321 1322 1386 1385 +f 1322 1323 1387 1386 +f 1323 1324 1388 1387 +f 1324 1325 1389 1388 +f 1325 1326 1390 1389 +f 1326 1327 1391 1390 +f 1327 1328 1392 1391 +f 1328 1329 1393 1392 +f 1329 1330 1394 1393 +f 1330 1331 1395 1394 +f 1331 1332 1396 1395 +f 1332 1333 1397 1396 +f 1333 1334 1398 1397 +f 1334 1335 1399 1398 +f 1335 1336 1400 1399 +f 1336 1337 1401 1400 +f 1337 1338 1402 1401 +f 1338 1339 1403 1402 +f 1339 1340 1404 1403 +f 1340 1341 1405 1404 +f 1341 1342 1406 1405 +f 1342 1343 1407 1406 +f 1343 1344 1408 1407 +f 1344 1345 1409 1408 +f 1345 1346 1410 1409 +f 1346 1283 1347 1410 +f 1347 1348 1412 1411 +f 1348 1349 1413 1412 +f 1349 1350 1414 1413 +f 1350 1351 1415 1414 +f 1351 1352 1416 1415 +f 1352 1353 1417 1416 +f 1353 1354 1418 1417 +f 1354 1355 1419 1418 +f 1355 1356 1420 1419 +f 1356 1357 1421 1420 +f 1357 1358 1422 1421 +f 1358 1359 1423 1422 +f 1359 1360 1424 1423 +f 1360 1361 1425 1424 +f 1361 1362 1426 1425 +f 1362 1363 1427 1426 +f 1363 1364 1428 1427 +f 1364 1365 1429 1428 +f 1365 1366 1430 1429 +f 1366 1367 1431 1430 +f 1367 1368 1432 1431 +f 1368 1369 1433 1432 +f 1369 1370 1434 1433 +f 1370 1371 1435 1434 +f 1371 1372 1436 1435 +f 1372 1373 1437 1436 +f 1373 1374 1438 1437 +f 1374 1375 1439 1438 +f 1375 1376 1440 1439 +f 1376 1377 1441 1440 +f 1377 1378 1442 1441 +f 1378 1379 1443 1442 +f 1379 1380 1444 1443 +f 1380 1381 1445 1444 +f 1381 1382 1446 1445 +f 1382 1383 1447 1446 +f 1383 1384 1448 1447 +f 1384 1385 1449 1448 +f 1385 1386 1450 1449 +f 1386 1387 1451 1450 +f 1387 1388 1452 1451 +f 1388 1389 1453 1452 +f 1389 1390 1454 1453 +f 1390 1391 1455 1454 +f 1391 1392 1456 1455 +f 1392 1393 1457 1456 +f 1393 1394 1458 1457 +f 1394 1395 1459 1458 +f 1395 1396 1460 1459 +f 1396 1397 1461 1460 +f 1397 1398 1462 1461 +f 1398 1399 1463 1462 +f 1399 1400 1464 1463 +f 1400 1401 1465 1464 +f 1401 1402 1466 1465 +f 1402 1403 1467 1466 +f 1403 1404 1468 1467 +f 1404 1405 1469 1468 +f 1405 1406 1470 1469 +f 1406 1407 1471 1470 +f 1407 1408 1472 1471 +f 1408 1409 1473 1472 +f 1409 1410 1474 1473 +f 1410 1347 1411 1474 +f 1411 1412 1476 1475 +f 1412 1413 1477 1476 +f 1413 1414 1478 1477 +f 1414 1415 1479 1478 +f 1415 1416 1480 1479 +f 1416 1417 1481 1480 +f 1417 1418 1482 1481 +f 1418 1419 1483 1482 +f 1419 1420 1484 1483 +f 1420 1421 1485 1484 +f 1421 1422 1486 1485 +f 1422 1423 1487 1486 +f 1423 1424 1488 1487 +f 1424 1425 1489 1488 +f 1425 1426 1490 1489 +f 1426 1427 1491 1490 +f 1427 1428 1492 1491 +f 1428 1429 1493 1492 +f 1429 1430 1494 1493 +f 1430 1431 1495 1494 +f 1431 1432 1496 1495 +f 1432 1433 1497 1496 +f 1433 1434 1498 1497 +f 1434 1435 1499 1498 +f 1435 1436 1500 1499 +f 1436 1437 1501 1500 +f 1437 1438 1502 1501 +f 1438 1439 1503 1502 +f 1439 1440 1504 1503 +f 1440 1441 1505 1504 +f 1441 1442 1506 1505 +f 1442 1443 1507 1506 +f 1443 1444 1508 1507 +f 1444 1445 1509 1508 +f 1445 1446 1510 1509 +f 1446 1447 1511 1510 +f 1447 1448 1512 1511 +f 1448 1449 1513 1512 +f 1449 1450 1514 1513 +f 1450 1451 1515 1514 +f 1451 1452 1516 1515 +f 1452 1453 1517 1516 +f 1453 1454 1518 1517 +f 1454 1455 1519 1518 +f 1455 1456 1520 1519 +f 1456 1457 1521 1520 +f 1457 1458 1522 1521 +f 1458 1459 1523 1522 +f 1459 1460 1524 1523 +f 1460 1461 1525 1524 +f 1461 1462 1526 1525 +f 1462 1463 1527 1526 +f 1463 1464 1528 1527 +f 1464 1465 1529 1528 +f 1465 1466 1530 1529 +f 1466 1467 1531 1530 +f 1467 1468 1532 1531 +f 1468 1469 1533 1532 +f 1469 1470 1534 1533 +f 1470 1471 1535 1534 +f 1471 1472 1536 1535 +f 1472 1473 1537 1536 +f 1473 1474 1538 1537 +f 1474 1411 1475 1538 +f 1475 1476 1540 1539 +f 1476 1477 1541 1540 +f 1477 1478 1542 1541 +f 1478 1479 1543 1542 +f 1479 1480 1544 1543 +f 1480 1481 1545 1544 +f 1481 1482 1546 1545 +f 1482 1483 1547 1546 +f 1483 1484 1548 1547 +f 1484 1485 1549 1548 +f 1485 1486 1550 1549 +f 1486 1487 1551 1550 +f 1487 1488 1552 1551 +f 1488 1489 1553 1552 +f 1489 1490 1554 1553 +f 1490 1491 1555 1554 +f 1491 1492 1556 1555 +f 1492 1493 1557 1556 +f 1493 1494 1558 1557 +f 1494 1495 1559 1558 +f 1495 1496 1560 1559 +f 1496 1497 1561 1560 +f 1497 1498 1562 1561 +f 1498 1499 1563 1562 +f 1499 1500 1564 1563 +f 1500 1501 1565 1564 +f 1501 1502 1566 1565 +f 1502 1503 1567 1566 +f 1503 1504 1568 1567 +f 1504 1505 1569 1568 +f 1505 1506 1570 1569 +f 1506 1507 1571 1570 +f 1507 1508 1572 1571 +f 1508 1509 1573 1572 +f 1509 1510 1574 1573 +f 1510 1511 1575 1574 +f 1511 1512 1576 1575 +f 1512 1513 1577 1576 +f 1513 1514 1578 1577 +f 1514 1515 1579 1578 +f 1515 1516 1580 1579 +f 1516 1517 1581 1580 +f 1517 1518 1582 1581 +f 1518 1519 1583 1582 +f 1519 1520 1584 1583 +f 1520 1521 1585 1584 +f 1521 1522 1586 1585 +f 1522 1523 1587 1586 +f 1523 1524 1588 1587 +f 1524 1525 1589 1588 +f 1525 1526 1590 1589 +f 1526 1527 1591 1590 +f 1527 1528 1592 1591 +f 1528 1529 1593 1592 +f 1529 1530 1594 1593 +f 1530 1531 1595 1594 +f 1531 1532 1596 1595 +f 1532 1533 1597 1596 +f 1533 1534 1598 1597 +f 1534 1535 1599 1598 +f 1535 1536 1600 1599 +f 1536 1537 1601 1600 +f 1537 1538 1602 1601 +f 1538 1475 1539 1602 +f 1539 1540 1604 1603 +f 1540 1541 1605 1604 +f 1541 1542 1606 1605 +f 1542 1543 1607 1606 +f 1543 1544 1608 1607 +f 1544 1545 1609 1608 +f 1545 1546 1610 1609 +f 1546 1547 1611 1610 +f 1547 1548 1612 1611 +f 1548 1549 1613 1612 +f 1549 1550 1614 1613 +f 1550 1551 1615 1614 +f 1551 1552 1616 1615 +f 1552 1553 1617 1616 +f 1553 1554 1618 1617 +f 1554 1555 1619 1618 +f 1555 1556 1620 1619 +f 1556 1557 1621 1620 +f 1557 1558 1622 1621 +f 1558 1559 1623 1622 +f 1559 1560 1624 1623 +f 1560 1561 1625 1624 +f 1561 1562 1626 1625 +f 1562 1563 1627 1626 +f 1563 1564 1628 1627 +f 1564 1565 1629 1628 +f 1565 1566 1630 1629 +f 1566 1567 1631 1630 +f 1567 1568 1632 1631 +f 1568 1569 1633 1632 +f 1569 1570 1634 1633 +f 1570 1571 1635 1634 +f 1571 1572 1636 1635 +f 1572 1573 1637 1636 +f 1573 1574 1638 1637 +f 1574 1575 1639 1638 +f 1575 1576 1640 1639 +f 1576 1577 1641 1640 +f 1577 1578 1642 1641 +f 1578 1579 1643 1642 +f 1579 1580 1644 1643 +f 1580 1581 1645 1644 +f 1581 1582 1646 1645 +f 1582 1583 1647 1646 +f 1583 1584 1648 1647 +f 1584 1585 1649 1648 +f 1585 1586 1650 1649 +f 1586 1587 1651 1650 +f 1587 1588 1652 1651 +f 1588 1589 1653 1652 +f 1589 1590 1654 1653 +f 1590 1591 1655 1654 +f 1591 1592 1656 1655 +f 1592 1593 1657 1656 +f 1593 1594 1658 1657 +f 1594 1595 1659 1658 +f 1595 1596 1660 1659 +f 1596 1597 1661 1660 +f 1597 1598 1662 1661 +f 1598 1599 1663 1662 +f 1599 1600 1664 1663 +f 1600 1601 1665 1664 +f 1601 1602 1666 1665 +f 1602 1539 1603 1666 +f 1603 1604 1668 1667 +f 1604 1605 1669 1668 +f 1605 1606 1670 1669 +f 1606 1607 1671 1670 +f 1607 1608 1672 1671 +f 1608 1609 1673 1672 +f 1609 1610 1674 1673 +f 1610 1611 1675 1674 +f 1611 1612 1676 1675 +f 1612 1613 1677 1676 +f 1613 1614 1678 1677 +f 1614 1615 1679 1678 +f 1615 1616 1680 1679 +f 1616 1617 1681 1680 +f 1617 1618 1682 1681 +f 1618 1619 1683 1682 +f 1619 1620 1684 1683 +f 1620 1621 1685 1684 +f 1621 1622 1686 1685 +f 1622 1623 1687 1686 +f 1623 1624 1688 1687 +f 1624 1625 1689 1688 +f 1625 1626 1690 1689 +f 1626 1627 1691 1690 +f 1627 1628 1692 1691 +f 1628 1629 1693 1692 +f 1629 1630 1694 1693 +f 1630 1631 1695 1694 +f 1631 1632 1696 1695 +f 1632 1633 1697 1696 +f 1633 1634 1698 1697 +f 1634 1635 1699 1698 +f 1635 1636 1700 1699 +f 1636 1637 1701 1700 +f 1637 1638 1702 1701 +f 1638 1639 1703 1702 +f 1639 1640 1704 1703 +f 1640 1641 1705 1704 +f 1641 1642 1706 1705 +f 1642 1643 1707 1706 +f 1643 1644 1708 1707 +f 1644 1645 1709 1708 +f 1645 1646 1710 1709 +f 1646 1647 1711 1710 +f 1647 1648 1712 1711 +f 1648 1649 1713 1712 +f 1649 1650 1714 1713 +f 1650 1651 1715 1714 +f 1651 1652 1716 1715 +f 1652 1653 1717 1716 +f 1653 1654 1718 1717 +f 1654 1655 1719 1718 +f 1655 1656 1720 1719 +f 1656 1657 1721 1720 +f 1657 1658 1722 1721 +f 1658 1659 1723 1722 +f 1659 1660 1724 1723 +f 1660 1661 1725 1724 +f 1661 1662 1726 1725 +f 1662 1663 1727 1726 +f 1663 1664 1728 1727 +f 1664 1665 1729 1728 +f 1665 1666 1730 1729 +f 1666 1603 1667 1730 +f 1667 1668 1732 1731 +f 1668 1669 1733 1732 +f 1669 1670 1734 1733 +f 1670 1671 1735 1734 +f 1671 1672 1736 1735 +f 1672 1673 1737 1736 +f 1673 1674 1738 1737 +f 1674 1675 1739 1738 +f 1675 1676 1740 1739 +f 1676 1677 1741 1740 +f 1677 1678 1742 1741 +f 1678 1679 1743 1742 +f 1679 1680 1744 1743 +f 1680 1681 1745 1744 +f 1681 1682 1746 1745 +f 1682 1683 1747 1746 +f 1683 1684 1748 1747 +f 1684 1685 1749 1748 +f 1685 1686 1750 1749 +f 1686 1687 1751 1750 +f 1687 1688 1752 1751 +f 1688 1689 1753 1752 +f 1689 1690 1754 1753 +f 1690 1691 1755 1754 +f 1691 1692 1756 1755 +f 1692 1693 1757 1756 +f 1693 1694 1758 1757 +f 1694 1695 1759 1758 +f 1695 1696 1760 1759 +f 1696 1697 1761 1760 +f 1697 1698 1762 1761 +f 1698 1699 1763 1762 +f 1699 1700 1764 1763 +f 1700 1701 1765 1764 +f 1701 1702 1766 1765 +f 1702 1703 1767 1766 +f 1703 1704 1768 1767 +f 1704 1705 1769 1768 +f 1705 1706 1770 1769 +f 1706 1707 1771 1770 +f 1707 1708 1772 1771 +f 1708 1709 1773 1772 +f 1709 1710 1774 1773 +f 1710 1711 1775 1774 +f 1711 1712 1776 1775 +f 1712 1713 1777 1776 +f 1713 1714 1778 1777 +f 1714 1715 1779 1778 +f 1715 1716 1780 1779 +f 1716 1717 1781 1780 +f 1717 1718 1782 1781 +f 1718 1719 1783 1782 +f 1719 1720 1784 1783 +f 1720 1721 1785 1784 +f 1721 1722 1786 1785 +f 1722 1723 1787 1786 +f 1723 1724 1788 1787 +f 1724 1725 1789 1788 +f 1725 1726 1790 1789 +f 1726 1727 1791 1790 +f 1727 1728 1792 1791 +f 1728 1729 1793 1792 +f 1729 1730 1794 1793 +f 1730 1667 1731 1794 +f 1731 1732 1796 1795 +f 1732 1733 1797 1796 +f 1733 1734 1798 1797 +f 1734 1735 1799 1798 +f 1735 1736 1800 1799 +f 1736 1737 1801 1800 +f 1737 1738 1802 1801 +f 1738 1739 1803 1802 +f 1739 1740 1804 1803 +f 1740 1741 1805 1804 +f 1741 1742 1806 1805 +f 1742 1743 1807 1806 +f 1743 1744 1808 1807 +f 1744 1745 1809 1808 +f 1745 1746 1810 1809 +f 1746 1747 1811 1810 +f 1747 1748 1812 1811 +f 1748 1749 1813 1812 +f 1749 1750 1814 1813 +f 1750 1751 1815 1814 +f 1751 1752 1816 1815 +f 1752 1753 1817 1816 +f 1753 1754 1818 1817 +f 1754 1755 1819 1818 +f 1755 1756 1820 1819 +f 1756 1757 1821 1820 +f 1757 1758 1822 1821 +f 1758 1759 1823 1822 +f 1759 1760 1824 1823 +f 1760 1761 1825 1824 +f 1761 1762 1826 1825 +f 1762 1763 1827 1826 +f 1763 1764 1828 1827 +f 1764 1765 1829 1828 +f 1765 1766 1830 1829 +f 1766 1767 1831 1830 +f 1767 1768 1832 1831 +f 1768 1769 1833 1832 +f 1769 1770 1834 1833 +f 1770 1771 1835 1834 +f 1771 1772 1836 1835 +f 1772 1773 1837 1836 +f 1773 1774 1838 1837 +f 1774 1775 1839 1838 +f 1775 1776 1840 1839 +f 1776 1777 1841 1840 +f 1777 1778 1842 1841 +f 1778 1779 1843 1842 +f 1779 1780 1844 1843 +f 1780 1781 1845 1844 +f 1781 1782 1846 1845 +f 1782 1783 1847 1846 +f 1783 1784 1848 1847 +f 1784 1785 1849 1848 +f 1785 1786 1850 1849 +f 1786 1787 1851 1850 +f 1787 1788 1852 1851 +f 1788 1789 1853 1852 +f 1789 1790 1854 1853 +f 1790 1791 1855 1854 +f 1791 1792 1856 1855 +f 1792 1793 1857 1856 +f 1793 1794 1858 1857 +f 1794 1731 1795 1858 +f 1795 1796 1860 1859 +f 1796 1797 1861 1860 +f 1797 1798 1862 1861 +f 1798 1799 1863 1862 +f 1799 1800 1864 1863 +f 1800 1801 1865 1864 +f 1801 1802 1866 1865 +f 1802 1803 1867 1866 +f 1803 1804 1868 1867 +f 1804 1805 1869 1868 +f 1805 1806 1870 1869 +f 1806 1807 1871 1870 +f 1807 1808 1872 1871 +f 1808 1809 1873 1872 +f 1809 1810 1874 1873 +f 1810 1811 1875 1874 +f 1811 1812 1876 1875 +f 1812 1813 1877 1876 +f 1813 1814 1878 1877 +f 1814 1815 1879 1878 +f 1815 1816 1880 1879 +f 1816 1817 1881 1880 +f 1817 1818 1882 1881 +f 1818 1819 1883 1882 +f 1819 1820 1884 1883 +f 1820 1821 1885 1884 +f 1821 1822 1886 1885 +f 1822 1823 1887 1886 +f 1823 1824 1888 1887 +f 1824 1825 1889 1888 +f 1825 1826 1890 1889 +f 1826 1827 1891 1890 +f 1827 1828 1892 1891 +f 1828 1829 1893 1892 +f 1829 1830 1894 1893 +f 1830 1831 1895 1894 +f 1831 1832 1896 1895 +f 1832 1833 1897 1896 +f 1833 1834 1898 1897 +f 1834 1835 1899 1898 +f 1835 1836 1900 1899 +f 1836 1837 1901 1900 +f 1837 1838 1902 1901 +f 1838 1839 1903 1902 +f 1839 1840 1904 1903 +f 1840 1841 1905 1904 +f 1841 1842 1906 1905 +f 1842 1843 1907 1906 +f 1843 1844 1908 1907 +f 1844 1845 1909 1908 +f 1845 1846 1910 1909 +f 1846 1847 1911 1910 +f 1847 1848 1912 1911 +f 1848 1849 1913 1912 +f 1849 1850 1914 1913 +f 1850 1851 1915 1914 +f 1851 1852 1916 1915 +f 1852 1853 1917 1916 +f 1853 1854 1918 1917 +f 1854 1855 1919 1918 +f 1855 1856 1920 1919 +f 1856 1857 1921 1920 +f 1857 1858 1922 1921 +f 1858 1795 1859 1922 +f 1859 1860 1924 1923 +f 1860 1861 1925 1924 +f 1861 1862 1926 1925 +f 1862 1863 1927 1926 +f 1863 1864 1928 1927 +f 1864 1865 1929 1928 +f 1865 1866 1930 1929 +f 1866 1867 1931 1930 +f 1867 1868 1932 1931 +f 1868 1869 1933 1932 +f 1869 1870 1934 1933 +f 1870 1871 1935 1934 +f 1871 1872 1936 1935 +f 1872 1873 1937 1936 +f 1873 1874 1938 1937 +f 1874 1875 1939 1938 +f 1875 1876 1940 1939 +f 1876 1877 1941 1940 +f 1877 1878 1942 1941 +f 1878 1879 1943 1942 +f 1879 1880 1944 1943 +f 1880 1881 1945 1944 +f 1881 1882 1946 1945 +f 1882 1883 1947 1946 +f 1883 1884 1948 1947 +f 1884 1885 1949 1948 +f 1885 1886 1950 1949 +f 1886 1887 1951 1950 +f 1887 1888 1952 1951 +f 1888 1889 1953 1952 +f 1889 1890 1954 1953 +f 1890 1891 1955 1954 +f 1891 1892 1956 1955 +f 1892 1893 1957 1956 +f 1893 1894 1958 1957 +f 1894 1895 1959 1958 +f 1895 1896 1960 1959 +f 1896 1897 1961 1960 +f 1897 1898 1962 1961 +f 1898 1899 1963 1962 +f 1899 1900 1964 1963 +f 1900 1901 1965 1964 +f 1901 1902 1966 1965 +f 1902 1903 1967 1966 +f 1903 1904 1968 1967 +f 1904 1905 1969 1968 +f 1905 1906 1970 1969 +f 1906 1907 1971 1970 +f 1907 1908 1972 1971 +f 1908 1909 1973 1972 +f 1909 1910 1974 1973 +f 1910 1911 1975 1974 +f 1911 1912 1976 1975 +f 1912 1913 1977 1976 +f 1913 1914 1978 1977 +f 1914 1915 1979 1978 +f 1915 1916 1980 1979 +f 1916 1917 1981 1980 +f 1917 1918 1982 1981 +f 1918 1919 1983 1982 +f 1919 1920 1984 1983 +f 1920 1921 1985 1984 +f 1921 1922 1986 1985 +f 1922 1859 1923 1986 +f 1923 1924 1988 1987 +f 1924 1925 1989 1988 +f 1925 1926 1990 1989 +f 1926 1927 1991 1990 +f 1927 1928 1992 1991 +f 1928 1929 1993 1992 +f 1929 1930 1994 1993 +f 1930 1931 1995 1994 +f 1931 1932 1996 1995 +f 1932 1933 1997 1996 +f 1933 1934 1998 1997 +f 1934 1935 1999 1998 +f 1935 1936 2000 1999 +f 1936 1937 2001 2000 +f 1937 1938 2002 2001 +f 1938 1939 2003 2002 +f 1939 1940 2004 2003 +f 1940 1941 2005 2004 +f 1941 1942 2006 2005 +f 1942 1943 2007 2006 +f 1943 1944 2008 2007 +f 1944 1945 2009 2008 +f 1945 1946 2010 2009 +f 1946 1947 2011 2010 +f 1947 1948 2012 2011 +f 1948 1949 2013 2012 +f 1949 1950 2014 2013 +f 1950 1951 2015 2014 +f 1951 1952 2016 2015 +f 1952 1953 2017 2016 +f 1953 1954 2018 2017 +f 1954 1955 2019 2018 +f 1955 1956 2020 2019 +f 1956 1957 2021 2020 +f 1957 1958 2022 2021 +f 1958 1959 2023 2022 +f 1959 1960 2024 2023 +f 1960 1961 2025 2024 +f 1961 1962 2026 2025 +f 1962 1963 2027 2026 +f 1963 1964 2028 2027 +f 1964 1965 2029 2028 +f 1965 1966 2030 2029 +f 1966 1967 2031 2030 +f 1967 1968 2032 2031 +f 1968 1969 2033 2032 +f 1969 1970 2034 2033 +f 1970 1971 2035 2034 +f 1971 1972 2036 2035 +f 1972 1973 2037 2036 +f 1973 1974 2038 2037 +f 1974 1975 2039 2038 +f 1975 1976 2040 2039 +f 1976 1977 2041 2040 +f 1977 1978 2042 2041 +f 1978 1979 2043 2042 +f 1979 1980 2044 2043 +f 1980 1981 2045 2044 +f 1981 1982 2046 2045 +f 1982 1983 2047 2046 +f 1983 1984 2048 2047 +f 1984 1985 2049 2048 +f 1985 1986 2050 2049 +f 1986 1923 1987 2050 +f 1 4 3 +f 2 1987 1988 +f 1 5 4 +f 2 1988 1989 +f 1 6 5 +f 2 1989 1990 +f 1 7 6 +f 2 1990 1991 +f 1 8 7 +f 2 1991 1992 +f 1 9 8 +f 2 1992 1993 +f 1 10 9 +f 2 1993 1994 +f 1 11 10 +f 2 1994 1995 +f 1 12 11 +f 2 1995 1996 +f 1 13 12 +f 2 1996 1997 +f 1 14 13 +f 2 1997 1998 +f 1 15 14 +f 2 1998 1999 +f 1 16 15 +f 2 1999 2000 +f 1 17 16 +f 2 2000 2001 +f 1 18 17 +f 2 2001 2002 +f 1 19 18 +f 2 2002 2003 +f 1 20 19 +f 2 2003 2004 +f 1 21 20 +f 2 2004 2005 +f 1 22 21 +f 2 2005 2006 +f 1 23 22 +f 2 2006 2007 +f 1 24 23 +f 2 2007 2008 +f 1 25 24 +f 2 2008 2009 +f 1 26 25 +f 2 2009 2010 +f 1 27 26 +f 2 2010 2011 +f 1 28 27 +f 2 2011 2012 +f 1 29 28 +f 2 2012 2013 +f 1 30 29 +f 2 2013 2014 +f 1 31 30 +f 2 2014 2015 +f 1 32 31 +f 2 2015 2016 +f 1 33 32 +f 2 2016 2017 +f 1 34 33 +f 2 2017 2018 +f 1 35 34 +f 2 2018 2019 +f 1 36 35 +f 2 2019 2020 +f 1 37 36 +f 2 2020 2021 +f 1 38 37 +f 2 2021 2022 +f 1 39 38 +f 2 2022 2023 +f 1 40 39 +f 2 2023 2024 +f 1 41 40 +f 2 2024 2025 +f 1 42 41 +f 2 2025 2026 +f 1 43 42 +f 2 2026 2027 +f 1 44 43 +f 2 2027 2028 +f 1 45 44 +f 2 2028 2029 +f 1 46 45 +f 2 2029 2030 +f 1 47 46 +f 2 2030 2031 +f 1 48 47 +f 2 2031 2032 +f 1 49 48 +f 2 2032 2033 +f 1 50 49 +f 2 2033 2034 +f 1 51 50 +f 2 2034 2035 +f 1 52 51 +f 2 2035 2036 +f 1 53 52 +f 2 2036 2037 +f 1 54 53 +f 2 2037 2038 +f 1 55 54 +f 2 2038 2039 +f 1 56 55 +f 2 2039 2040 +f 1 57 56 +f 2 2040 2041 +f 1 58 57 +f 2 2041 2042 +f 1 59 58 +f 2 2042 2043 +f 1 60 59 +f 2 2043 2044 +f 1 61 60 +f 2 2044 2045 +f 1 62 61 +f 2 2045 2046 +f 1 63 62 +f 2 2046 2047 +f 1 64 63 +f 2 2047 2048 +f 1 65 64 +f 2 2048 2049 +f 1 66 65 +f 2 2049 2050 +f 1 3 66 +f 2 2050 1987 diff --git a/data/spheres/17.obj b/data/spheres/17.obj new file mode 100644 index 0000000..74664cd --- /dev/null +++ b/data/spheres/17.obj @@ -0,0 +1,4694 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 8.96392 99.5974 5.88009e-39 +v 8.92569 99.5974 0.827086 +v 8.8113 99.5974 1.64712 +v 8.62173 99.5974 2.45309 +v 8.35861 99.5974 3.23814 +v 8.02418 99.5974 3.99556 +v 7.62128 99.5974 4.71889 +v 7.15337 99.5974 5.40197 +v 6.62442 99.5974 6.03895 +v 6.03896 99.5974 6.62442 +v 5.40198 99.5974 7.15336 +v 4.7189 99.5974 7.62128 +v 3.99557 99.5974 8.02417 +v 3.23815 99.5974 8.35861 +v 2.4531 99.5974 8.62173 +v 1.64713 99.5974 8.81129 +v 0.827096 99.5974 8.92568 +v 1.0294e-05 99.5974 8.96392 +v -0.827076 99.5974 8.92569 +v -1.64711 99.5974 8.8113 +v -2.45308 99.5974 8.62174 +v -3.23813 99.5974 8.35861 +v -3.99555 99.5974 8.02418 +v -4.71889 99.5974 7.62129 +v -5.40196 99.5974 7.15337 +v -6.03894 99.5974 6.62443 +v -6.62441 99.5974 6.03897 +v -7.15336 99.5974 5.40198 +v -7.62127 99.5974 4.71891 +v -8.02417 99.5974 3.99558 +v -8.3586 99.5974 3.23816 +v -8.62173 99.5974 2.45311 +v -8.81129 99.5974 1.64714 +v -8.92568 99.5974 0.827108 +v -8.96392 99.5974 2.0588e-05 +v -8.92569 99.5974 -0.827067 +v -8.8113 99.5974 -1.6471 +v -8.62174 99.5974 -2.45307 +v -8.35862 99.5974 -3.23812 +v -8.02419 99.5974 -3.99554 +v -7.62129 99.5974 -4.71888 +v -7.15338 99.5974 -5.40195 +v -6.62444 99.5974 -6.03894 +v -6.03898 99.5974 -6.6244 +v -5.40199 99.5974 -7.15335 +v -4.71892 99.5974 -7.62127 +v -3.99559 99.5974 -8.02416 +v -3.23817 99.5974 -8.3586 +v -2.45312 99.5974 -8.62172 +v -1.64715 99.5974 -8.81129 +v -0.827119 99.5974 -8.92568 +v -2.98134e-05 99.5974 -8.96392 +v 0.827055 99.5974 -8.92569 +v 1.64708 99.5974 -8.8113 +v 2.45306 99.5974 -8.62174 +v 3.23811 99.5974 -8.35862 +v 3.99553 99.5974 -8.02419 +v 4.71887 99.5974 -7.6213 +v 5.40194 99.5974 -7.15339 +v 6.03893 99.5974 -6.62444 +v 6.6244 99.5974 -6.03898 +v 7.15334 99.5974 -5.402 +v 7.62126 99.5974 -4.71893 +v 8.02416 99.5974 -3.9956 +v 8.3586 99.5974 -3.23818 +v 8.62172 99.5974 -2.45313 +v 8.81129 99.5974 -1.64716 +v 8.92568 99.5974 -0.827126 +v 17.8557 98.393 5.88009e-39 +v 17.7795 98.393 1.64751 +v 17.5517 98.393 3.28097 +v 17.174 98.393 4.88643 +v 16.6499 98.393 6.45021 +v 15.9837 98.393 7.95895 +v 15.1812 98.393 9.3998 +v 14.2491 98.393 10.7604 +v 13.1955 98.393 12.0293 +v 12.0293 98.393 13.1955 +v 10.7605 98.393 14.2491 +v 9.39981 98.393 15.1812 +v 7.95897 98.393 15.9837 +v 6.45023 98.393 16.6499 +v 4.88645 98.393 17.174 +v 3.28099 98.393 17.5516 +v 1.64753 98.393 17.7795 +v 2.05051e-05 98.393 17.8557 +v -1.64749 98.393 17.7795 +v -3.28095 98.393 17.5517 +v -4.88641 98.393 17.1741 +v -6.45019 98.393 16.6499 +v -7.95894 98.393 15.9838 +v -9.39978 98.393 15.1812 +v -10.7604 98.393 14.2492 +v -12.0293 98.393 13.1955 +v -13.1955 98.393 12.0293 +v -14.2491 98.393 10.7605 +v -15.1812 98.393 9.39983 +v -15.9837 98.393 7.95899 +v -16.6499 98.393 6.45025 +v -17.174 98.393 4.88647 +v -17.5516 98.393 3.28101 +v -17.7795 98.393 1.64756 +v -17.8557 98.393 4.10103e-05 +v -17.7795 98.393 -1.64747 +v -17.5517 98.393 -3.28093 +v -17.1741 98.393 -4.88639 +v -16.6499 98.393 -6.45017 +v -15.9838 98.393 -7.95892 +v -15.1812 98.393 -9.39976 +v -14.2492 98.393 -10.7604 +v -13.1955 98.393 -12.0293 +v -12.0293 98.393 -13.1955 +v -10.7605 98.393 -14.2491 +v -9.39985 98.393 -15.1812 +v -7.95901 98.393 -15.9837 +v -6.45027 98.393 -16.6499 +v -4.88649 98.393 -17.174 +v -3.28103 98.393 -17.5516 +v -1.64758 98.393 -17.7795 +v -5.93868e-05 98.393 -17.8557 +v 1.64745 98.393 -17.7795 +v 3.28091 98.393 -17.5517 +v 4.88638 98.393 -17.1741 +v 6.45015 98.393 -16.6499 +v 7.9589 98.393 -15.9838 +v 9.39974 98.393 -15.1812 +v 10.7604 98.393 -14.2492 +v 12.0292 98.393 -13.1956 +v 13.1955 98.393 -12.0293 +v 14.2491 98.393 -10.7605 +v 15.1812 98.393 -9.39986 +v 15.9837 98.393 -7.95903 +v 16.6499 98.393 -6.45029 +v 17.174 98.393 -4.88652 +v 17.5516 98.393 -3.28105 +v 17.7795 98.393 -1.64759 +v 26.6037 96.3963 5.88009e-39 +v 26.4902 96.3963 2.45467 +v 26.1507 96.3963 4.88841 +v 25.5881 96.3963 7.28043 +v 24.8072 96.3963 9.61035 +v 23.8146 96.3963 11.8583 +v 22.6189 96.3963 14.005 +v 21.2302 96.3963 16.0323 +v 19.6604 96.3963 17.9228 +v 17.9228 96.3963 19.6603 +v 16.0323 96.3963 21.2302 +v 14.005 96.3963 22.6189 +v 11.8583 96.3963 23.8146 +v 9.61037 96.3963 24.8072 +v 7.28046 96.3963 25.5881 +v 4.88844 96.3963 26.1507 +v 2.45471 96.3963 26.4902 +v 3.05512e-05 96.3963 26.6037 +v -2.45464 96.3963 26.4902 +v -4.88838 96.3963 26.1507 +v -7.2804 96.3963 25.5881 +v -9.61032 96.3963 24.8072 +v -11.8582 96.3963 23.8146 +v -14.005 96.3963 22.6189 +v -16.0323 96.3963 21.2302 +v -17.9227 96.3963 19.6604 +v -19.6603 96.3963 17.9228 +v -21.2302 96.3963 16.0323 +v -22.6189 96.3963 14.0051 +v -23.8146 96.3963 11.8583 +v -24.8072 96.3963 9.6104 +v -25.5881 96.3963 7.28049 +v -26.1507 96.3963 4.88847 +v -26.4902 96.3963 2.45474 +v -26.6037 96.3963 6.11023e-05 +v -26.4902 96.3963 -2.45462 +v -26.1507 96.3963 -4.88835 +v -25.5881 96.3963 -7.28037 +v -24.8072 96.3963 -9.61029 +v -23.8147 96.3963 -11.8582 +v -22.6189 96.3963 -14.005 +v -21.2302 96.3963 -16.0322 +v -19.6604 96.3963 -17.9227 +v -17.9228 96.3963 -19.6603 +v -16.0324 96.3963 -21.2301 +v -14.0051 96.3963 -22.6188 +v -11.8583 96.3963 -23.8146 +v -9.61043 96.3963 -24.8071 +v -7.28052 96.3963 -25.5881 +v -4.8885 96.3963 -26.1507 +v -2.45477 96.3963 -26.4902 +v -8.84821e-05 96.3963 -26.6037 +v 2.45458 96.3963 -26.4902 +v 4.88831 96.3963 -26.1507 +v 7.28035 96.3963 -25.5881 +v 9.61026 96.3963 -24.8072 +v 11.8582 96.3963 -23.8147 +v 14.0049 96.3963 -22.6189 +v 16.0322 96.3963 -21.2303 +v 17.9227 96.3963 -19.6604 +v 19.6603 96.3963 -17.9229 +v 21.2301 96.3963 -16.0324 +v 22.6188 96.3963 -14.0051 +v 23.8146 96.3963 -11.8584 +v 24.8071 96.3963 -9.61046 +v 25.5881 96.3963 -7.28055 +v 26.1507 96.3963 -4.88853 +v 26.4902 96.3963 -2.45479 +v 35.1375 93.6235 5.88009e-39 +v 34.9876 93.6235 3.24207 +v 34.5392 93.6235 6.45649 +v 33.7961 93.6235 9.61582 +v 32.7647 93.6235 12.6931 +v 31.4538 93.6235 15.6621 +v 29.8745 93.6235 18.4975 +v 28.0403 93.6235 21.175 +v 25.9669 93.6235 23.6719 +v 23.672 93.6235 25.9669 +v 21.1751 93.6235 28.0403 +v 18.4975 93.6235 29.8745 +v 15.6621 93.6235 31.4538 +v 12.6931 93.6235 32.7647 +v 9.61585 93.6235 33.7961 +v 6.45653 93.6235 34.5392 +v 3.24211 93.6235 34.9876 +v 4.03512e-05 93.6235 35.1375 +v -3.24203 93.6235 34.9876 +v -6.45645 93.6235 34.5392 +v -9.61578 93.6235 33.7961 +v -12.6931 93.6235 32.7647 +v -15.6621 93.6235 31.4538 +v -18.4974 93.6235 29.8745 +v -21.175 93.6235 28.0403 +v -23.6719 93.6235 25.9669 +v -25.9669 93.6235 23.672 +v -28.0403 93.6235 21.1751 +v -29.8744 93.6235 18.4975 +v -31.4537 93.6235 15.6622 +v -32.7647 93.6235 12.6932 +v -33.7961 93.6235 9.61589 +v -34.5392 93.6235 6.45657 +v -34.9876 93.6235 3.24216 +v -35.1375 93.6235 8.07024e-05 +v -34.9876 93.6235 -3.242 +v -34.5392 93.6235 -6.45641 +v -33.7961 93.6235 -9.61573 +v -32.7647 93.6235 -12.693 +v -31.4538 93.6235 -15.662 +v -29.8745 93.6235 -18.4974 +v -28.0404 93.6235 -21.175 +v -25.967 93.6235 -23.6719 +v -23.672 93.6235 -25.9668 +v -21.1751 93.6235 -28.0402 +v -18.4976 93.6235 -29.8744 +v -15.6622 93.6235 -31.4537 +v -12.6932 93.6235 -32.7647 +v -9.61593 93.6235 -33.7961 +v -6.45661 93.6235 -34.5392 +v -3.2422 93.6235 -34.9876 +v -0.000116865 93.6235 -35.1375 +v 3.24195 93.6235 -34.9876 +v 6.45636 93.6235 -34.5392 +v 9.61571 93.6235 -33.7961 +v 12.693 93.6235 -32.7648 +v 15.662 93.6235 -31.4538 +v 18.4974 93.6235 -29.8745 +v 21.1749 93.6235 -28.0404 +v 23.6719 93.6235 -25.967 +v 25.9668 93.6235 -23.6721 +v 28.0402 93.6235 -21.1752 +v 29.8744 93.6235 -18.4976 +v 31.4537 93.6235 -15.6622 +v 32.7646 93.6235 -12.6933 +v 33.7961 93.6235 -9.61597 +v 34.5391 93.6235 -6.45665 +v 34.9876 93.6235 -3.24223 +v 43.3883 90.0969 5.88009e-39 +v 43.2033 90.0969 4.00337 +v 42.6496 90.0969 7.97258 +v 41.732 90.0969 11.8738 +v 40.4584 90.0969 15.6737 +v 38.8397 90.0969 19.3398 +v 36.8895 90.0969 22.841 +v 34.6247 90.0969 26.1473 +v 32.0644 90.0969 29.2305 +v 29.2306 90.0969 32.0644 +v 26.1473 90.0969 34.6246 +v 22.841 90.0969 36.8895 +v 19.3399 90.0969 38.8396 +v 15.6737 90.0969 40.4584 +v 11.8738 90.0969 41.732 +v 7.97263 90.0969 42.6496 +v 4.00342 90.0969 43.2033 +v 4.98264e-05 90.0969 43.3883 +v -4.00332 90.0969 43.2033 +v -7.97253 90.0969 42.6496 +v -11.8737 90.0969 41.732 +v -15.6736 90.0969 40.4584 +v -19.3398 90.0969 38.8397 +v -22.841 90.0969 36.8895 +v -26.1473 90.0969 34.6247 +v -29.2305 90.0969 32.0644 +v -32.0643 90.0969 29.2306 +v -34.6246 90.0969 26.1474 +v -36.8895 90.0969 22.8411 +v -38.8396 90.0969 19.3399 +v -40.4584 90.0969 15.6738 +v -41.732 90.0969 11.8739 +v -42.6496 90.0969 7.97268 +v -43.2032 90.0969 4.00347 +v -43.3883 90.0969 9.96527e-05 +v -43.2033 90.0969 -4.00327 +v -42.6496 90.0969 -7.97248 +v -41.7321 90.0969 -11.8737 +v -40.4585 90.0969 -15.6736 +v -38.8397 90.0969 -19.3398 +v -36.8896 90.0969 -22.8409 +v -34.6247 90.0969 -26.1472 +v -32.0645 90.0969 -29.2304 +v -29.2306 90.0969 -32.0643 +v -26.1474 90.0969 -34.6246 +v -22.8411 90.0969 -36.8894 +v -19.34 90.0969 -38.8396 +v -15.6738 90.0969 -40.4584 +v -11.8739 90.0969 -41.732 +v -7.97273 90.0969 -42.6495 +v -4.00353 90.0969 -43.2032 +v -0.000144307 90.0969 -43.3883 +v 4.00322 90.0969 -43.2033 +v 7.97243 90.0969 -42.6496 +v 11.8736 90.0969 -41.7321 +v 15.6735 90.0969 -40.4585 +v 19.3397 90.0969 -38.8397 +v 22.8409 90.0969 -36.8896 +v 26.1472 90.0969 -34.6248 +v 29.2304 90.0969 -32.0645 +v 32.0643 90.0969 -29.2307 +v 34.6245 90.0969 -26.1475 +v 36.8894 90.0969 -22.8412 +v 38.8396 90.0969 -19.34 +v 40.4584 90.0969 -15.6739 +v 41.732 90.0969 -11.874 +v 42.6495 90.0969 -7.97279 +v 43.2032 90.0969 -4.00356 +v 51.2899 85.8449 5.88009e-39 +v 51.0711 85.8449 4.73243 +v 50.4166 85.8449 9.42449 +v 49.3319 85.8449 14.0361 +v 47.8264 85.8449 18.528 +v 45.9128 85.8449 22.8619 +v 43.6076 85.8449 27.0006 +v 40.9302 85.8449 30.909 +v 37.9037 85.8449 34.5538 +v 34.5538 85.8449 37.9037 +v 30.9091 85.8449 40.9302 +v 27.0007 85.8449 43.6075 +v 22.8619 85.8449 45.9128 +v 18.5281 85.8449 47.8264 +v 14.0362 85.8449 49.3319 +v 9.42454 85.8449 50.4166 +v 4.73249 85.8449 51.0711 +v 5.89004e-05 85.8449 51.2899 +v -4.73237 85.8449 51.0711 +v -9.42443 85.8449 50.4166 +v -14.0361 85.8449 49.332 +v -18.528 85.8449 47.8264 +v -22.8618 85.8449 45.9129 +v -27.0006 85.8449 43.6076 +v -30.909 85.8449 40.9303 +v -34.5537 85.8449 37.9038 +v -37.9036 85.8449 34.5538 +v -40.9302 85.8449 30.9091 +v -43.6075 85.8449 27.0007 +v -45.9128 85.8449 22.862 +v -47.8264 85.8449 18.5281 +v -49.3319 85.8449 14.0362 +v -50.4166 85.8449 9.4246 +v -51.0711 85.8449 4.73255 +v -51.2899 85.8449 0.000117801 +v -51.0711 85.8449 -4.73232 +v -50.4166 85.8449 -9.42437 +v -49.332 85.8449 -14.036 +v -47.8265 85.8449 -18.5279 +v -45.9129 85.8449 -22.8618 +v -43.6076 85.8449 -27.0005 +v -40.9303 85.8449 -30.9089 +v -37.9038 85.8449 -34.5537 +v -34.5539 85.8449 -37.9036 +v -30.9092 85.8449 -40.9301 +v -27.0008 85.8449 -43.6075 +v -22.862 85.8449 -45.9128 +v -18.5282 85.8449 -47.8263 +v -14.0363 85.8449 -49.3319 +v -9.42467 85.8449 -50.4166 +v -4.73262 85.8449 -51.0711 +v -0.000170587 85.8449 -51.2899 +v 4.73225 85.8449 -51.0711 +v 9.42431 85.8449 -50.4166 +v 14.036 85.8449 -49.332 +v 18.5279 85.8449 -47.8265 +v 22.8617 85.8449 -45.9129 +v 27.0005 85.8449 -43.6077 +v 30.9089 85.8449 -40.9303 +v 34.5536 85.8449 -37.9038 +v 37.9035 85.8449 -34.5539 +v 40.9301 85.8449 -30.9092 +v 43.6074 85.8449 -27.0008 +v 45.9127 85.8449 -22.8621 +v 47.8263 85.8449 -18.5283 +v 49.3319 85.8449 -14.0364 +v 50.4165 85.8449 -9.42473 +v 51.0711 85.8449 -4.73266 +v 58.7785 80.9017 5.88009e-39 +v 58.5277 80.9017 5.42339 +v 57.7777 80.9017 10.8005 +v 56.5347 80.9017 16.0855 +v 54.8093 80.9017 21.2332 +v 52.6164 80.9017 26.1998 +v 49.9745 80.9017 30.9429 +v 46.9063 80.9017 35.4219 +v 43.4378 80.9017 39.5988 +v 39.5988 80.9017 43.4378 +v 35.422 80.9017 46.9062 +v 30.9429 80.9017 49.9745 +v 26.1999 80.9017 52.6163 +v 21.2333 80.9017 54.8093 +v 16.0856 80.9017 56.5346 +v 10.8006 80.9017 57.7777 +v 5.42346 80.9017 58.5277 +v 6.75001e-05 80.9017 58.7785 +v -5.42332 80.9017 58.5278 +v -10.8004 80.9017 57.7777 +v -16.0854 80.9017 56.5347 +v -21.2332 80.9017 54.8093 +v -26.1997 80.9017 52.6164 +v -30.9428 80.9017 49.9745 +v -35.4219 80.9017 46.9063 +v -39.5987 80.9017 43.4379 +v -43.4378 80.9017 39.5989 +v -46.9062 80.9017 35.422 +v -49.9744 80.9017 30.943 +v -52.6163 80.9017 26.1999 +v -54.8093 80.9017 21.2334 +v -56.5346 80.9017 16.0856 +v -57.7776 80.9017 10.8006 +v -58.5277 80.9017 5.42353 +v -58.7785 80.9017 0.000135 +v -58.5278 80.9017 -5.42326 +v -57.7777 80.9017 -10.8004 +v -56.5347 80.9017 -16.0853 +v -54.8094 80.9017 -21.2331 +v -52.6164 80.9017 -26.1997 +v -49.9746 80.9017 -30.9428 +v -46.9063 80.9017 -35.4218 +v -43.4379 80.9017 -39.5987 +v -39.5989 80.9017 -43.4377 +v -35.4221 80.9017 -46.9061 +v -30.943 80.9017 -49.9744 +v -26.2 80.9017 -52.6163 +v -21.2334 80.9017 -54.8092 +v -16.0857 80.9017 -56.5346 +v -10.8007 80.9017 -57.7776 +v -5.42361 80.9017 -58.5277 +v -0.000195493 80.9017 -58.7785 +v 5.42319 80.9017 -58.5278 +v 10.8003 80.9017 -57.7777 +v 16.0853 80.9017 -56.5347 +v 21.233 80.9017 -54.8094 +v 26.1996 80.9017 -52.6164 +v 30.9427 80.9017 -49.9746 +v 35.4218 80.9017 -46.9064 +v 39.5986 80.9017 -43.438 +v 43.4377 80.9017 -39.599 +v 46.9061 80.9017 -35.4222 +v 49.9744 80.9017 -30.9431 +v 52.6162 80.9017 -26.2 +v 54.8092 80.9017 -21.2335 +v 56.5346 80.9017 -16.0858 +v 57.7776 80.9017 -10.8008 +v 58.5277 80.9017 -5.42365 +v 65.7938 75.3072 5.88009e-39 +v 65.5132 75.3072 6.07068 +v 64.6736 75.3072 12.0896 +v 63.2822 75.3072 18.0053 +v 61.3509 75.3072 23.7675 +v 58.8962 75.3072 29.3268 +v 55.9391 75.3072 34.636 +v 52.5046 75.3072 39.6496 +v 48.6223 75.3072 44.325 +v 44.325 75.3072 48.6222 +v 39.6497 75.3072 52.5046 +v 34.636 75.3072 55.939 +v 29.3269 75.3072 58.8962 +v 23.7675 75.3072 61.3509 +v 18.0054 75.3072 63.2822 +v 12.0897 75.3072 64.6736 +v 6.07076 75.3072 65.5132 +v 7.55564e-05 75.3072 65.7938 +v -6.07061 75.3072 65.5132 +v -12.0895 75.3072 64.6736 +v -18.0053 75.3072 63.2822 +v -23.7674 75.3072 61.351 +v -29.3267 75.3072 58.8963 +v -34.6359 75.3072 55.9391 +v -39.6496 75.3072 52.5047 +v -44.3249 75.3072 48.6223 +v -48.6222 75.3072 44.3251 +v -52.5045 75.3072 39.6497 +v -55.939 75.3072 34.6361 +v -58.8962 75.3072 29.327 +v -61.3509 75.3072 23.7676 +v -63.2822 75.3072 18.0055 +v -64.6735 75.3072 12.0897 +v -65.5132 75.3072 6.07084 +v -65.7938 75.3072 0.000151113 +v -65.5132 75.3072 -6.07054 +v -64.6736 75.3072 -12.0894 +v -63.2822 75.3072 -18.0052 +v -61.351 75.3072 -23.7673 +v -58.8963 75.3072 -29.3267 +v -55.9391 75.3072 -34.6358 +v -52.5047 75.3072 -39.6495 +v -48.6224 75.3072 -44.3249 +v -44.3252 75.3072 -48.6221 +v -39.6498 75.3072 -52.5045 +v -34.6362 75.3072 -55.9389 +v -29.327 75.3072 -58.8961 +v -23.7677 75.3072 -61.3508 +v -18.0055 75.3072 -63.2821 +v -12.0898 75.3072 -64.6735 +v -6.07093 75.3072 -65.5131 +v -0.000218826 75.3072 -65.7938 +v 6.07046 75.3072 -65.5132 +v 12.0893 75.3072 -64.6736 +v 18.0051 75.3072 -63.2823 +v 23.7673 75.3072 -61.351 +v 29.3266 75.3072 -58.8963 +v 34.6358 75.3072 -55.9392 +v 39.6494 75.3072 -52.5048 +v 44.3248 75.3072 -48.6224 +v 48.622 75.3072 -44.3252 +v 52.5044 75.3072 -39.6499 +v 55.9389 75.3072 -34.6362 +v 58.8961 75.3072 -29.3271 +v 61.3508 75.3072 -23.7677 +v 63.2821 75.3072 -18.0056 +v 64.6735 75.3072 -12.0899 +v 65.5131 75.3072 -6.07098 +v 72.2794 69.1063 5.88009e-39 +v 71.9711 69.1063 6.6691 +v 71.0488 69.1063 13.2813 +v 69.5202 69.1063 19.7802 +v 67.3986 69.1063 26.1103 +v 64.7019 69.1063 32.2177 +v 61.4532 69.1063 38.0502 +v 57.6803 69.1063 43.5581 +v 53.4152 69.1063 48.6943 +v 48.6944 69.1063 53.4151 +v 43.5581 69.1063 57.6802 +v 38.0503 69.1063 61.4532 +v 32.2178 69.1063 64.7019 +v 26.1104 69.1063 67.3986 +v 19.7803 69.1063 69.5202 +v 13.2814 69.1063 71.0487 +v 6.66918 69.1063 71.9711 +v 8.30044e-05 69.1063 72.2794 +v -6.66902 69.1063 71.9711 +v -13.2812 69.1063 71.0488 +v -19.7801 69.1063 69.5202 +v -26.1103 69.1063 67.3986 +v -32.2176 69.1063 64.702 +v -38.0501 69.1063 61.4533 +v -43.558 69.1063 57.6803 +v -48.6942 69.1063 53.4152 +v -53.4151 69.1063 48.6944 +v -57.6802 69.1063 43.5582 +v -61.4531 69.1063 38.0503 +v -64.7018 69.1063 32.2179 +v -67.3985 69.1063 26.1105 +v -69.5202 69.1063 19.7803 +v -71.0487 69.1063 13.2815 +v -71.9711 69.1063 6.66927 +v -72.2794 69.1063 0.000166009 +v -71.9711 69.1063 -6.66894 +v -71.0488 69.1063 -13.2811 +v -69.5203 69.1063 -19.78 +v -67.3986 69.1063 -26.1102 +v -64.702 69.1063 -32.2176 +v -61.4533 69.1063 -38.0501 +v -57.6804 69.1063 -43.5579 +v -53.4153 69.1063 -48.6942 +v -48.6945 69.1063 -53.415 +v -43.5583 69.1063 -57.6801 +v -38.0504 69.1063 -61.4531 +v -32.2179 69.1063 -64.7018 +v -26.1106 69.1063 -67.3985 +v -19.7804 69.1063 -69.5202 +v -13.2816 69.1063 -71.0487 +v -6.66937 69.1063 -71.9711 +v -0.000240397 69.1063 -72.2794 +v 6.66885 69.1063 -71.9711 +v 13.281 69.1063 -71.0488 +v 19.78 69.1063 -69.5203 +v 26.1101 69.1063 -67.3987 +v 32.2175 69.1063 -64.702 +v 38.05 69.1063 -61.4534 +v 43.5579 69.1063 -57.6804 +v 48.6941 69.1063 -53.4153 +v 53.415 69.1063 -48.6946 +v 57.6801 69.1063 -43.5583 +v 61.4531 69.1063 -38.0505 +v 64.7018 69.1063 -32.218 +v 67.3985 69.1063 -26.1106 +v 69.5201 69.1063 -19.7805 +v 71.0487 69.1063 -13.2816 +v 71.9711 69.1063 -6.66942 +v 78.1831 62.349 5.88009e-39 +v 77.8496 62.349 7.21382 +v 76.8519 62.349 14.3661 +v 75.1985 62.349 21.3958 +v 72.9036 62.349 28.243 +v 69.9867 62.349 34.8492 +v 66.4726 62.349 41.1581 +v 62.3915 62.349 47.1158 +v 57.778 62.349 52.6716 +v 52.6717 62.349 57.778 +v 47.1159 62.349 62.3914 +v 41.1581 62.349 66.4726 +v 34.8493 62.349 69.9866 +v 28.2431 62.349 72.9035 +v 21.3959 62.349 75.1985 +v 14.3662 62.349 76.8519 +v 7.21391 62.349 77.8496 +v 8.9784e-05 62.349 78.1831 +v -7.21373 62.349 77.8496 +v -14.366 62.349 76.8519 +v -21.3957 62.349 75.1985 +v -28.2429 62.349 72.9036 +v -34.8491 62.349 69.9867 +v -41.158 62.349 66.4727 +v -47.1157 62.349 62.3915 +v -52.6715 62.349 57.7781 +v -57.7779 62.349 52.6717 +v -62.3914 62.349 47.116 +v -66.4725 62.349 41.1582 +v -69.9866 62.349 34.8494 +v -72.9035 62.349 28.2431 +v -75.1985 62.349 21.396 +v -76.8519 62.349 14.3663 +v -77.8496 62.349 7.21401 +v -78.1831 62.349 0.000179568 +v -77.8496 62.349 -7.21365 +v -76.8519 62.349 -14.3659 +v -75.1986 62.349 -21.3956 +v -72.9036 62.349 -28.2428 +v -69.9867 62.349 -34.849 +v -66.4727 62.349 -41.1579 +v -62.3916 62.349 -47.1157 +v -57.7782 62.349 -52.6715 +v -52.6718 62.349 -57.7779 +v -47.116 62.349 -62.3913 +v -41.1583 62.349 -66.4725 +v -34.8494 62.349 -69.9865 +v -28.2432 62.349 -72.9035 +v -21.3961 62.349 -75.1984 +v -14.3664 62.349 -76.8518 +v -7.21411 62.349 -77.8496 +v -0.000260032 62.349 -78.1831 +v 7.21355 62.349 -77.8496 +v 14.3658 62.349 -76.8519 +v 21.3956 62.349 -75.1986 +v 28.2427 62.349 -72.9037 +v 34.8489 62.349 -69.9868 +v 41.1578 62.349 -66.4728 +v 47.1156 62.349 -62.3917 +v 52.6714 62.349 -57.7782 +v 57.7778 62.349 -52.6719 +v 62.3913 62.349 -47.1161 +v 66.4725 62.349 -41.1584 +v 69.9865 62.349 -34.8495 +v 72.9035 62.349 -28.2433 +v 75.1984 62.349 -21.3962 +v 76.8518 62.349 -14.3665 +v 77.8496 62.349 -7.21417 +v 83.4573 55.0898 5.88009e-39 +v 83.1013 55.0898 7.70046 +v 82.0363 55.0898 15.3352 +v 80.2714 55.0898 22.8392 +v 77.8216 55.0898 30.1482 +v 74.7079 55.0898 37.2001 +v 70.9568 55.0898 43.9346 +v 66.6004 55.0898 50.2942 +v 61.6757 55.0898 56.2248 +v 56.2248 55.0898 61.6756 +v 50.2943 55.0898 66.6003 +v 43.9347 55.0898 70.9568 +v 37.2002 55.0898 74.7079 +v 30.1483 55.0898 77.8216 +v 22.8392 55.0898 80.2713 +v 15.3353 55.0898 82.0362 +v 7.70056 55.0898 83.1013 +v 9.58408e-05 55.0898 83.4573 +v -7.70037 55.0898 83.1013 +v -15.3351 55.0898 82.0363 +v -22.8391 55.0898 80.2714 +v -30.1481 55.0898 77.8216 +v -37.2 55.0898 74.708 +v -43.9345 55.0898 70.9569 +v -50.2941 55.0898 66.6004 +v -56.2247 55.0898 61.6758 +v -61.6756 55.0898 56.2249 +v -66.6003 55.0898 50.2944 +v -70.9567 55.0898 43.9347 +v -74.7078 55.0898 37.2003 +v -77.8215 55.0898 30.1484 +v -80.2713 55.0898 22.8393 +v -82.0362 55.0898 15.3354 +v -83.1012 55.0898 7.70066 +v -83.4573 55.0898 0.000191682 +v -83.1013 55.0898 -7.70028 +v -82.0363 55.0898 -15.335 +v -80.2714 55.0898 -22.839 +v -77.8217 55.0898 -30.148 +v -74.708 55.0898 -37.1999 +v -70.9569 55.0898 -43.9344 +v -66.6005 55.0898 -50.2941 +v -61.6758 55.0898 -56.2246 +v -56.225 55.0898 -61.6755 +v -50.2944 55.0898 -66.6002 +v -43.9348 55.0898 -70.9567 +v -37.2003 55.0898 -74.7078 +v -30.1485 55.0898 -77.8215 +v -22.8394 55.0898 -80.2713 +v -15.3355 55.0898 -82.0362 +v -7.70077 55.0898 -83.1012 +v -0.000277574 55.0898 -83.4573 +v 7.70017 55.0898 -83.1013 +v 15.3349 55.0898 -82.0363 +v 22.8389 55.0898 -80.2714 +v 30.148 55.0898 -77.8217 +v 37.1998 55.0898 -74.708 +v 43.9343 55.0898 -70.957 +v 50.294 55.0898 -66.6006 +v 56.2246 55.0898 -61.6759 +v 61.6754 55.0898 -56.2251 +v 66.6001 55.0898 -50.2945 +v 70.9566 55.0898 -43.9349 +v 74.7077 55.0898 -37.2004 +v 77.8215 55.0898 -30.1486 +v 80.2713 55.0898 -22.8395 +v 82.0362 55.0898 -15.3356 +v 83.1012 55.0898 -7.70083 +v 88.0595 47.3869 5.88009e-39 +v 87.6839 47.3869 8.1251 +v 86.5601 47.3869 16.1809 +v 84.6979 47.3869 24.0986 +v 82.1131 47.3869 31.8107 +v 78.8277 47.3869 39.2515 +v 74.8697 47.3869 46.3573 +v 70.273 47.3869 53.0677 +v 65.0768 47.3869 59.3253 +v 59.3254 47.3869 65.0767 +v 53.0678 47.3869 70.273 +v 46.3574 47.3869 74.8697 +v 39.2516 47.3869 78.8276 +v 31.8108 47.3869 82.113 +v 24.0987 47.3869 84.6979 +v 16.181 47.3869 86.5601 +v 8.1252 47.3869 87.6839 +v 0.000101126 47.3869 88.0595 +v -8.125 47.3869 87.6839 +v -16.1808 47.3869 86.5602 +v -24.0985 47.3869 84.6979 +v -31.8106 47.3869 82.1131 +v -39.2514 47.3869 78.8277 +v -46.3573 47.3869 74.8698 +v -53.0676 47.3869 70.2731 +v -59.3252 47.3869 65.0769 +v -65.0767 47.3869 59.3254 +v -70.2729 47.3869 53.0678 +v -74.8696 47.3869 46.3575 +v -78.8276 47.3869 39.2517 +v -82.113 47.3869 31.8109 +v -84.6979 47.3869 24.0988 +v -86.5601 47.3869 16.1811 +v -87.6839 47.3869 8.12531 +v -88.0595 47.3869 0.000202252 +v -87.6839 47.3869 -8.12491 +v -86.5602 47.3869 -16.1807 +v -84.698 47.3869 -24.0984 +v -82.1131 47.3869 -31.8106 +v -78.8277 47.3869 -39.2513 +v -74.8698 47.3869 -46.3572 +v -70.2732 47.3869 -53.0675 +v -65.0769 47.3869 -59.3251 +v -59.3255 47.3869 -65.0766 +v -53.0679 47.3869 -70.2729 +v -46.3576 47.3869 -74.8696 +v -39.2517 47.3869 -78.8275 +v -31.811 47.3869 -82.113 +v -24.0989 47.3869 -84.6978 +v -16.1812 47.3869 -86.5601 +v -8.12542 47.3869 -87.6838 +v -0.00029288 47.3869 -88.0595 +v 8.1248 47.3869 -87.6839 +v 16.1806 47.3869 -86.5602 +v 24.0983 47.3869 -84.698 +v 31.8105 47.3869 -82.1132 +v 39.2512 47.3869 -78.8278 +v 46.3571 47.3869 -74.8699 +v 53.0674 47.3869 -70.2732 +v 59.3251 47.3869 -65.077 +v 65.0765 47.3869 -59.3256 +v 70.2728 47.3869 -53.068 +v 74.8695 47.3869 -46.3577 +v 78.8275 47.3869 -39.2518 +v 82.1129 47.3869 -31.8111 +v 84.6978 47.3869 -24.099 +v 86.5601 47.3869 -16.1813 +v 87.6838 47.3869 -8.12549 +v 91.9527 39.3026 5.88009e-39 +v 91.5605 39.3026 8.48432 +v 90.3871 39.3026 16.8963 +v 88.4425 39.3026 25.164 +v 85.7434 39.3026 33.2171 +v 82.3127 39.3026 40.9868 +v 78.1798 39.3026 48.4068 +v 73.3799 39.3026 55.4139 +v 67.9539 39.3026 61.9481 +v 61.9482 39.3026 67.9539 +v 55.414 39.3026 73.3798 +v 48.4069 39.3026 78.1798 +v 40.9869 39.3026 82.3127 +v 33.2172 39.3026 85.7433 +v 25.1641 39.3026 88.4425 +v 16.8964 39.3026 90.3871 +v 8.48443 39.3026 91.5605 +v 0.000105597 39.3026 91.9527 +v -8.48422 39.3026 91.5605 +v -16.8962 39.3026 90.3871 +v -25.1639 39.3026 88.4425 +v -33.217 39.3026 85.7434 +v -40.9867 39.3026 82.3128 +v -48.4068 39.3026 78.1799 +v -55.4138 39.3026 73.38 +v -61.948 39.3026 67.954 +v -67.9538 39.3026 61.9483 +v -73.3798 39.3026 55.414 +v -78.1797 39.3026 48.407 +v -82.3126 39.3026 40.987 +v -85.7433 39.3026 33.2173 +v -88.4425 39.3026 25.1642 +v -90.387 39.3026 16.8965 +v -91.5605 39.3026 8.48454 +v -91.9527 39.3026 0.000211194 +v -91.5605 39.3026 -8.48412 +v -90.3871 39.3026 -16.8961 +v -88.4426 39.3026 -25.1638 +v -85.7435 39.3026 -33.2169 +v -82.3128 39.3026 -40.9867 +v -78.1799 39.3026 -48.4067 +v -73.38 39.3026 -55.4137 +v -67.9541 39.3026 -61.948 +v -61.9484 39.3026 -67.9537 +v -55.4141 39.3026 -73.3797 +v -48.4071 39.3026 -78.1796 +v -40.9871 39.3026 -82.3126 +v -33.2174 39.3026 -85.7433 +v -25.1643 39.3026 -88.4424 +v -16.8966 39.3026 -90.387 +v -8.48466 39.3026 -91.5605 +v -0.000305829 39.3026 -91.9527 +v 8.48401 39.3026 -91.5605 +v 16.8959 39.3026 -90.3871 +v 25.1638 39.3026 -88.4426 +v 33.2169 39.3026 -85.7435 +v 40.9866 39.3026 -82.3129 +v 48.4066 39.3026 -78.18 +v 55.4136 39.3026 -73.3801 +v 61.9479 39.3026 -67.9541 +v 67.9536 39.3026 -61.9484 +v 73.3796 39.3026 -55.4142 +v 78.1796 39.3026 -48.4072 +v 82.3126 39.3026 -40.9872 +v 85.7432 39.3026 -33.2175 +v 88.4424 39.3026 -25.1645 +v 90.387 39.3026 -16.8967 +v 91.5605 39.3026 -8.48473 +v 95.1056 30.9018 5.88009e-39 +v 94.6999 30.9018 8.77523 +v 93.4863 30.9018 17.4756 +v 91.475 30.9018 26.0269 +v 88.6834 30.9018 34.3561 +v 85.1351 30.9018 42.3922 +v 80.8605 30.9018 50.0666 +v 75.896 30.9018 57.3139 +v 70.2839 30.9018 64.0722 +v 64.0723 30.9018 70.2839 +v 57.314 30.9018 75.8959 +v 50.0667 30.9018 80.8604 +v 42.3923 30.9018 85.135 +v 34.3562 30.9018 88.6833 +v 26.027 30.9018 91.475 +v 17.4757 30.9018 93.4863 +v 8.77534 30.9018 94.6999 +v 0.000109218 30.9018 95.1056 +v -8.77512 30.9018 94.6999 +v -17.4755 30.9018 93.4863 +v -26.0268 30.9018 91.4751 +v -34.356 30.9018 88.6834 +v -42.3921 30.9018 85.1351 +v -50.0665 30.9018 80.8605 +v -57.3138 30.9018 75.896 +v -64.0721 30.9018 70.284 +v -70.2838 30.9018 64.0724 +v -75.8958 30.9018 57.3141 +v -80.8603 30.9018 50.0668 +v -85.135 30.9018 42.3924 +v -88.6833 30.9018 34.3563 +v -91.475 30.9018 26.0271 +v -93.4862 30.9018 17.4758 +v -94.6999 30.9018 8.77546 +v -95.1056 30.9018 0.000218435 +v -94.6999 30.9018 -8.77503 +v -93.4863 30.9018 -17.4754 +v -91.4751 30.9018 -26.0266 +v -88.6834 30.9018 -34.3559 +v -85.1352 30.9018 -42.392 +v -80.8606 30.9018 -50.0664 +v -75.8961 30.9018 -57.3137 +v -70.2841 30.9018 -64.072 +v -64.0724 30.9018 -70.2837 +v -57.3142 30.9018 -75.8958 +v -50.0669 30.9018 -80.8603 +v -42.3925 30.9018 -85.1349 +v -34.3564 30.9018 -88.6832 +v -26.0272 30.9018 -91.4749 +v -17.4759 30.9018 -93.4862 +v -8.77558 30.9018 -94.6999 +v -0.000316315 30.9018 -95.1056 +v 8.77491 30.9018 -94.7 +v 17.4753 30.9018 -93.4863 +v 26.0266 30.9018 -91.4751 +v 34.3558 30.9018 -88.6835 +v 42.3919 30.9018 -85.1352 +v 50.0663 30.9018 -80.8606 +v 57.3136 30.9018 -75.8962 +v 64.072 30.9018 -70.2841 +v 70.2836 30.9018 -64.0725 +v 75.8957 30.9018 -57.3143 +v 80.8602 30.9018 -50.067 +v 85.1349 30.9018 -42.3926 +v 88.6832 30.9018 -34.3565 +v 91.4749 30.9018 -26.0273 +v 93.4862 30.9018 -17.4761 +v 94.6999 30.9018 -8.77566 +v 97.4928 22.2522 5.88009e-39 +v 97.0769 22.2522 8.99549 +v 95.8328 22.2522 17.9142 +v 93.771 22.2522 26.6801 +v 90.9093 22.2522 35.2184 +v 87.272 22.2522 43.4562 +v 82.89 22.2522 51.3233 +v 77.8009 22.2522 58.7525 +v 72.0481 22.2522 65.6804 +v 65.6805 22.2522 72.048 +v 58.7526 22.2522 77.8009 +v 51.3234 22.2522 82.89 +v 43.4563 22.2522 87.2719 +v 35.2185 22.2522 90.9093 +v 26.6803 22.2522 93.771 +v 17.9143 22.2522 95.8327 +v 8.9956 22.2522 97.0769 +v 0.000111959 22.2522 97.4928 +v -8.99538 22.2522 97.0769 +v -17.9141 22.2522 95.8328 +v -26.68 22.2522 93.7711 +v -35.2183 22.2522 90.9093 +v -43.4561 22.2522 87.272 +v -51.3232 22.2522 82.8901 +v -58.7524 22.2522 77.801 +v -65.6803 22.2522 72.0481 +v -72.0479 22.2522 65.6806 +v -77.8008 22.2522 58.7527 +v -82.8899 22.2522 51.3235 +v -87.2719 22.2522 43.4564 +v -90.9092 22.2522 35.2186 +v -93.771 22.2522 26.6803 +v -95.8327 22.2522 17.9145 +v -97.0769 22.2522 8.99573 +v -97.4928 22.2522 0.000223918 +v -97.0769 22.2522 -8.99528 +v -95.8328 22.2522 -17.914 +v -93.7711 22.2522 -26.6799 +v -90.9094 22.2522 -35.2182 +v -87.2721 22.2522 -43.456 +v -82.8902 22.2522 -51.3231 +v -77.8011 22.2522 -58.7523 +v -72.0482 22.2522 -65.6802 +v -65.6807 22.2522 -72.0478 +v -58.7528 22.2522 -77.8007 +v -51.3236 22.2522 -82.8899 +v -43.4565 22.2522 -87.2718 +v -35.2187 22.2522 -90.9092 +v -26.6805 22.2522 -93.771 +v -17.9146 22.2522 -95.8327 +v -8.99585 22.2522 -97.0769 +v -0.000324255 22.2522 -97.4928 +v 8.99516 22.2522 -97.0769 +v 17.9139 22.2522 -95.8328 +v 26.6798 22.2522 -93.7711 +v 35.2181 22.2522 -90.9094 +v 43.4559 22.2522 -87.2721 +v 51.323 22.2522 -82.8902 +v 58.7522 22.2522 -77.8012 +v 65.6802 22.2522 -72.0483 +v 72.0478 22.2522 -65.6807 +v 77.8007 22.2522 -58.7528 +v 82.8898 22.2522 -51.3237 +v 87.2718 22.2522 -43.4566 +v 90.9091 22.2522 -35.2188 +v 93.7709 22.2522 -26.6806 +v 95.8327 22.2522 -17.9147 +v 97.0768 22.2522 -8.99593 +v 99.095 13.4234 5.88009e-39 +v 98.6722 13.4234 9.14332 +v 97.4077 13.4234 18.2086 +v 95.3121 13.4234 27.1186 +v 92.4033 13.4234 35.7972 +v 88.7062 13.4234 44.1704 +v 84.2523 13.4234 52.1667 +v 79.0795 13.4234 59.718 +v 73.2321 13.4234 66.7598 +v 66.7599 13.4234 73.232 +v 59.7181 13.4234 79.0794 +v 52.1668 13.4234 84.2522 +v 44.1705 13.4234 88.7061 +v 35.7973 13.4234 92.4033 +v 27.1187 13.4234 95.312 +v 18.2087 13.4234 97.4077 +v 9.14344 13.4234 98.6722 +v 0.000113799 13.4234 99.095 +v -9.14321 13.4234 98.6722 +v -18.2085 13.4234 97.4077 +v -27.1185 13.4234 95.3121 +v -35.7971 13.4234 92.4034 +v -44.1703 13.4234 88.7062 +v -52.1667 13.4234 84.2523 +v -59.7179 13.4234 79.0796 +v -66.7597 13.4234 73.2322 +v -73.2319 13.4234 66.76 +v -79.0794 13.4234 59.7182 +v -84.2521 13.4234 52.1669 +v -88.7061 13.4234 44.1706 +v -92.4032 13.4234 35.7974 +v -95.312 13.4234 27.1188 +v -97.4076 13.4234 18.2089 +v -98.6722 13.4234 9.14356 +v -99.095 13.4234 0.000227598 +v -98.6723 13.4234 -9.14311 +v -97.4077 13.4234 -18.2084 +v -95.3121 13.4234 -27.1184 +v -92.4034 13.4234 -35.797 +v -88.7063 13.4234 -44.1702 +v -84.2524 13.4234 -52.1665 +v -79.0797 13.4234 -59.7178 +v -73.2323 13.4234 -66.7596 +v -66.76 13.4234 -73.2319 +v -59.7183 13.4234 -79.0793 +v -52.167 13.4234 -84.2521 +v -44.1707 13.4234 -88.706 +v -35.7975 13.4234 -92.4032 +v -27.1189 13.4234 -95.312 +v -18.209 13.4234 -97.4076 +v -9.14369 13.4234 -98.6722 +v -0.000329583 13.4234 -99.095 +v 9.14298 13.4234 -98.6723 +v 18.2083 13.4234 -97.4078 +v 27.1183 13.4234 -95.3122 +v 35.7969 13.4234 -92.4034 +v 44.1701 13.4234 -88.7063 +v 52.1664 13.4234 -84.2524 +v 59.7177 13.4234 -79.0797 +v 66.7596 13.4234 -73.2323 +v 73.2318 13.4234 -66.7601 +v 79.0792 13.4234 -59.7184 +v 84.252 13.4234 -52.1671 +v 88.706 13.4234 -44.1708 +v 92.4031 13.4234 -35.7976 +v 95.312 13.4234 -27.1191 +v 97.4076 13.4234 -18.2091 +v 98.6722 13.4234 -9.14376 +v 99.8993 4.4866 5.88009e-39 +v 99.4731 4.4866 9.21754 +v 98.1983 4.4866 18.3564 +v 96.0857 4.4866 27.3387 +v 93.1533 4.4866 36.0878 +v 89.4262 4.4866 44.5289 +v 84.9361 4.4866 52.5902 +v 79.7214 4.4866 60.2027 +v 73.8265 4.4866 67.3017 +v 67.3018 4.4866 73.8264 +v 60.2028 4.4866 79.7213 +v 52.5903 4.4866 84.9361 +v 44.529 4.4866 89.4261 +v 36.0879 4.4866 93.1533 +v 27.3388 4.4866 96.0857 +v 18.3565 4.4866 98.1983 +v 9.21765 4.4866 99.4731 +v 0.000114723 4.4866 99.8993 +v -9.21742 4.4866 99.4732 +v -18.3563 4.4866 98.1983 +v -27.3386 4.4866 96.0857 +v -36.0877 4.4866 93.1534 +v -44.5288 4.4866 89.4263 +v -52.5901 4.4866 84.9362 +v -60.2026 4.4866 79.7215 +v -67.3016 4.4866 73.8266 +v -73.8264 4.4866 67.3018 +v -79.7213 4.4866 60.2029 +v -84.936 4.4866 52.5904 +v -89.4261 4.4866 44.5291 +v -93.1533 4.4866 36.088 +v -96.0857 4.4866 27.3389 +v -98.1983 4.4866 18.3567 +v -99.4731 4.4866 9.21778 +v -99.8993 4.4866 0.000229445 +v -99.4732 4.4866 -9.21732 +v -98.1984 4.4866 -18.3562 +v -96.0858 4.4866 -27.3385 +v -93.1534 4.4866 -36.0876 +v -89.4263 4.4866 -44.5287 +v -84.9362 4.4866 -52.59 +v -79.7215 4.4866 -60.2025 +v -73.8267 4.4866 -67.3015 +v -67.3019 4.4866 -73.8263 +v -60.203 4.4866 -79.7212 +v -52.5905 4.4866 -84.9359 +v -44.5292 4.4866 -89.4261 +v -36.0881 4.4866 -93.1532 +v -27.3391 4.4866 -96.0856 +v -18.3568 4.4866 -98.1983 +v -9.2179 4.4866 -99.4731 +v -0.000332259 4.4866 -99.8993 +v 9.2172 4.4866 -99.4732 +v 18.3561 4.4866 -98.1984 +v 27.3384 4.4866 -96.0858 +v 36.0875 4.4866 -93.1535 +v 44.5286 4.4866 -89.4264 +v 52.5899 4.4866 -84.9363 +v 60.2024 4.4866 -79.7216 +v 67.3014 4.4866 -73.8267 +v 73.8262 4.4866 -67.302 +v 79.7211 4.4866 -60.2031 +v 84.9359 4.4866 -52.5905 +v 89.426 4.4866 -44.5293 +v 93.1532 4.4866 -36.0882 +v 96.0856 4.4866 -27.3392 +v 98.1982 4.4866 -18.3569 +v 99.4731 4.4866 -9.21798 +v 99.8993 -4.48636 5.88009e-39 +v 99.4732 -4.48636 9.21754 +v 98.1983 -4.48636 18.3564 +v 96.0857 -4.48636 27.3387 +v 93.1533 -4.48636 36.0878 +v 89.4262 -4.48636 44.5289 +v 84.9361 -4.48636 52.5902 +v 79.7214 -4.48636 60.2028 +v 73.8265 -4.48636 67.3017 +v 67.3018 -4.48636 73.8264 +v 60.2028 -4.48636 79.7213 +v 52.5903 -4.48636 84.9361 +v 44.529 -4.48636 89.4262 +v 36.0879 -4.48636 93.1533 +v 27.3388 -4.48636 96.0857 +v 18.3566 -4.48636 98.1983 +v 9.21765 -4.48636 99.4732 +v 0.000114723 -4.48636 99.8993 +v -9.21743 -4.48636 99.4732 +v -18.3563 -4.48636 98.1984 +v -27.3386 -4.48636 96.0858 +v -36.0877 -4.48636 93.1534 +v -44.5288 -4.48636 89.4263 +v -52.5901 -4.48636 84.9362 +v -60.2027 -4.48636 79.7215 +v -67.3016 -4.48636 73.8266 +v -73.8264 -4.48636 67.3019 +v -79.7213 -4.48636 60.2029 +v -84.936 -4.48636 52.5904 +v -89.4261 -4.48636 44.5291 +v -93.1533 -4.48636 36.088 +v -96.0857 -4.48636 27.3389 +v -98.1983 -4.48636 18.3567 +v -99.4731 -4.48636 9.21778 +v -99.8993 -4.48636 0.000229445 +v -99.4732 -4.48636 -9.21732 +v -98.1984 -4.48636 -18.3562 +v -96.0858 -4.48636 -27.3385 +v -93.1534 -4.48636 -36.0876 +v -89.4263 -4.48636 -44.5287 +v -84.9362 -4.48636 -52.59 +v -79.7215 -4.48636 -60.2026 +v -73.8267 -4.48636 -67.3015 +v -67.3019 -4.48636 -73.8263 +v -60.203 -4.48636 -79.7212 +v -52.5905 -4.48636 -84.9359 +v -44.5292 -4.48636 -89.4261 +v -36.0881 -4.48636 -93.1532 +v -27.3391 -4.48636 -96.0856 +v -18.3568 -4.48636 -98.1983 +v -9.21791 -4.48636 -99.4731 +v -0.000332259 -4.48636 -99.8993 +v 9.2172 -4.48636 -99.4732 +v 18.3561 -4.48636 -98.1984 +v 27.3384 -4.48636 -96.0858 +v 36.0875 -4.48636 -93.1535 +v 44.5286 -4.48636 -89.4264 +v 52.5899 -4.48636 -84.9363 +v 60.2025 -4.48636 -79.7216 +v 67.3014 -4.48636 -73.8267 +v 73.8262 -4.48636 -67.302 +v 79.7211 -4.48636 -60.2031 +v 84.9359 -4.48636 -52.5905 +v 89.426 -4.48636 -44.5293 +v 93.1532 -4.48636 -36.0882 +v 96.0856 -4.48636 -27.3392 +v 98.1982 -4.48636 -18.3569 +v 99.4731 -4.48636 -9.21798 +v 99.095 -13.4232 5.88009e-39 +v 98.6723 -13.4232 9.14333 +v 97.4077 -13.4232 18.2086 +v 95.3121 -13.4232 27.1186 +v 92.4033 -13.4232 35.7972 +v 88.7062 -13.4232 44.1704 +v 84.2523 -13.4232 52.1668 +v 79.0795 -13.4232 59.718 +v 73.2321 -13.4232 66.7598 +v 66.7599 -13.4232 73.232 +v 59.7181 -13.4232 79.0795 +v 52.1669 -13.4232 84.2522 +v 44.1705 -13.4232 88.7062 +v 35.7973 -13.4232 92.4033 +v 27.1187 -13.4232 95.3121 +v 18.2088 -13.4232 97.4077 +v 9.14344 -13.4232 98.6723 +v 0.000113799 -13.4232 99.095 +v -9.14321 -13.4232 98.6723 +v -18.2085 -13.4232 97.4077 +v -27.1185 -13.4232 95.3121 +v -35.7971 -13.4232 92.4034 +v -44.1703 -13.4232 88.7063 +v -52.1667 -13.4232 84.2523 +v -59.7179 -13.4232 79.0796 +v -66.7597 -13.4232 73.2322 +v -73.232 -13.4232 66.76 +v -79.0794 -13.4232 59.7182 +v -84.2522 -13.4232 52.167 +v -88.7061 -13.4232 44.1706 +v -92.4033 -13.4232 35.7974 +v -95.312 -13.4232 27.1188 +v -97.4077 -13.4232 18.2089 +v -98.6722 -13.4232 9.14356 +v -99.095 -13.4232 0.000227598 +v -98.6723 -13.4232 -9.14311 +v -97.4078 -13.4232 -18.2084 +v -95.3122 -13.4232 -27.1184 +v -92.4034 -13.4232 -35.797 +v -88.7063 -13.4232 -44.1702 +v -84.2524 -13.4232 -52.1666 +v -79.0797 -13.4232 -59.7178 +v -73.2323 -13.4232 -66.7597 +v -66.7601 -13.4232 -73.2319 +v -59.7183 -13.4232 -79.0793 +v -52.1671 -13.4232 -84.2521 +v -44.1707 -13.4232 -88.7061 +v -35.7975 -13.4232 -92.4032 +v -27.1189 -13.4232 -95.312 +v -18.209 -13.4232 -97.4077 +v -9.14369 -13.4232 -98.6722 +v -0.000329584 -13.4232 -99.095 +v 9.14299 -13.4232 -98.6723 +v 18.2083 -13.4232 -97.4078 +v 27.1183 -13.4232 -95.3122 +v 35.7969 -13.4232 -92.4035 +v 44.1701 -13.4232 -88.7064 +v 52.1665 -13.4232 -84.2525 +v 59.7177 -13.4232 -79.0798 +v 66.7596 -13.4232 -73.2323 +v 73.2318 -13.4232 -66.7602 +v 79.0793 -13.4232 -59.7184 +v 84.2521 -13.4232 -52.1671 +v 88.706 -13.4232 -44.1708 +v 92.4032 -13.4232 -35.7976 +v 95.312 -13.4232 -27.1191 +v 97.4076 -13.4232 -18.2091 +v 98.6722 -13.4232 -9.14377 +v 97.4928 -22.252 5.88009e-39 +v 97.0769 -22.252 8.9955 +v 95.8328 -22.252 17.9142 +v 93.7711 -22.252 26.6802 +v 90.9094 -22.252 35.2184 +v 87.272 -22.252 43.4563 +v 82.8901 -22.252 51.3233 +v 77.801 -22.252 58.7525 +v 72.0481 -22.252 65.6805 +v 65.6805 -22.252 72.048 +v 58.7526 -22.252 77.8009 +v 51.3234 -22.252 82.89 +v 43.4564 -22.252 87.272 +v 35.2185 -22.252 90.9093 +v 26.6803 -22.252 93.7711 +v 17.9144 -22.252 95.8328 +v 8.99561 -22.252 97.0769 +v 0.000111959 -22.252 97.4928 +v -8.99538 -22.252 97.0769 +v -17.9141 -22.252 95.8328 +v -26.68 -22.252 93.7711 +v -35.2183 -22.252 90.9094 +v -43.4562 -22.252 87.2721 +v -51.3232 -22.252 82.8901 +v -58.7524 -22.252 77.801 +v -65.6804 -22.252 72.0482 +v -72.048 -22.252 65.6806 +v -77.8008 -22.252 58.7527 +v -82.89 -22.252 51.3235 +v -87.2719 -22.252 43.4565 +v -90.9093 -22.252 35.2187 +v -93.771 -22.252 26.6804 +v -95.8328 -22.252 17.9145 +v -97.0769 -22.252 8.99573 +v -97.4928 -22.252 0.000223918 +v -97.077 -22.252 -8.99529 +v -95.8329 -22.252 -17.914 +v -93.7712 -22.252 -26.6799 +v -90.9094 -22.252 -35.2182 +v -87.2721 -22.252 -43.4561 +v -82.8902 -22.252 -51.3231 +v -77.8011 -22.252 -58.7523 +v -72.0482 -22.252 -65.6803 +v -65.6807 -22.252 -72.0479 +v -58.7528 -22.252 -77.8008 +v -51.3236 -22.252 -82.8899 +v -43.4565 -22.252 -87.2719 +v -35.2187 -22.252 -90.9092 +v -26.6805 -22.252 -93.771 +v -17.9146 -22.252 -95.8328 +v -8.99585 -22.252 -97.0769 +v -0.000324255 -22.252 -97.4928 +v 8.99516 -22.252 -97.077 +v 17.9139 -22.252 -95.8329 +v 26.6799 -22.252 -93.7712 +v 35.2181 -22.252 -90.9095 +v 43.456 -22.252 -87.2722 +v 51.323 -22.252 -82.8903 +v 58.7522 -22.252 -77.8012 +v 65.6802 -22.252 -72.0483 +v 72.0478 -22.252 -65.6808 +v 77.8007 -22.252 -58.7529 +v 82.8899 -22.252 -51.3237 +v 87.2718 -22.252 -43.4566 +v 90.9092 -22.252 -35.2189 +v 93.771 -22.252 -26.6806 +v 95.8327 -22.252 -17.9147 +v 97.0769 -22.252 -8.99593 +v 95.1057 -30.9016 5.88009e-39 +v 94.7 -30.9016 8.77524 +v 93.4863 -30.9016 17.4756 +v 91.4751 -30.9016 26.0269 +v 88.6834 -30.9016 34.3561 +v 85.1351 -30.9016 42.3922 +v 80.8605 -30.9016 50.0667 +v 75.896 -30.9016 57.314 +v 70.284 -30.9016 64.0723 +v 64.0723 -30.9016 70.2839 +v 57.314 -30.9016 75.8959 +v 50.0668 -30.9016 80.8605 +v 42.3923 -30.9016 85.1351 +v 34.3562 -30.9016 88.6834 +v 26.027 -30.9016 91.4751 +v 17.4757 -30.9016 93.4863 +v 8.77535 -30.9016 94.7 +v 0.000109218 -30.9016 95.1057 +v -8.77513 -30.9016 94.7 +v -17.4755 -30.9016 93.4864 +v -26.0268 -30.9016 91.4751 +v -34.356 -30.9016 88.6835 +v -42.3921 -30.9016 85.1352 +v -50.0666 -30.9016 80.8606 +v -57.3139 -30.9016 75.8961 +v -64.0722 -30.9016 70.2841 +v -70.2838 -30.9016 64.0724 +v -75.8959 -30.9016 57.3141 +v -80.8604 -30.9016 50.0669 +v -85.135 -30.9016 42.3924 +v -88.6833 -30.9016 34.3563 +v -91.475 -30.9016 26.0271 +v -93.4863 -30.9016 17.4758 +v -94.7 -30.9016 8.77547 +v -95.1057 -30.9016 0.000218435 +v -94.7 -30.9016 -8.77503 +v -93.4864 -30.9016 -17.4754 +v -91.4752 -30.9016 -26.0267 +v -88.6835 -30.9016 -34.3559 +v -85.1352 -30.9016 -42.392 +v -80.8606 -30.9016 -50.0665 +v -75.8961 -30.9016 -57.3138 +v -70.2841 -30.9016 -64.0721 +v -64.0725 -30.9016 -70.2838 +v -57.3142 -30.9016 -75.8958 +v -50.067 -30.9016 -80.8603 +v -42.3925 -30.9016 -85.135 +v -34.3564 -30.9016 -88.6833 +v -26.0272 -30.9016 -91.475 +v -17.4759 -30.9016 -93.4863 +v -8.77559 -30.9016 -94.7 +v -0.000316315 -30.9016 -95.1057 +v 8.77491 -30.9016 -94.7 +v 17.4753 -30.9016 -93.4864 +v 26.0266 -30.9016 -91.4752 +v 34.3558 -30.9016 -88.6835 +v 42.3919 -30.9016 -85.1353 +v 50.0664 -30.9016 -80.8607 +v 57.3137 -30.9016 -75.8962 +v 64.072 -30.9016 -70.2842 +v 70.2837 -30.9016 -64.0726 +v 75.8957 -30.9016 -57.3143 +v 80.8603 -30.9016 -50.067 +v 85.135 -30.9016 -42.3926 +v 88.6833 -30.9016 -34.3565 +v 91.475 -30.9016 -26.0273 +v 93.4863 -30.9016 -17.4761 +v 94.7 -30.9016 -8.77566 +v 91.9528 -39.3024 5.88009e-39 +v 91.5606 -39.3024 8.48433 +v 90.3872 -39.3024 16.8963 +v 88.4426 -39.3024 25.1641 +v 85.7435 -39.3024 33.2172 +v 82.3128 -39.3024 40.9869 +v 78.1799 -39.3024 48.4069 +v 73.38 -39.3024 55.4139 +v 67.954 -39.3024 61.9482 +v 61.9483 -39.3024 67.9539 +v 55.414 -39.3024 73.3799 +v 48.407 -39.3024 78.1798 +v 40.987 -39.3024 82.3128 +v 33.2173 -39.3024 85.7434 +v 25.1642 -39.3024 88.4426 +v 16.8964 -39.3024 90.3871 +v 8.48444 -39.3024 91.5606 +v 0.000105597 -39.3024 91.9528 +v -8.48423 -39.3024 91.5606 +v -16.8962 -39.3024 90.3872 +v -25.164 -39.3024 88.4426 +v -33.2171 -39.3024 85.7435 +v -40.9868 -39.3024 82.3129 +v -48.4068 -39.3024 78.1799 +v -55.4138 -39.3024 73.38 +v -61.9481 -39.3024 67.9541 +v -67.9539 -39.3024 61.9483 +v -73.3799 -39.3024 55.4141 +v -78.1798 -39.3024 48.4071 +v -82.3127 -39.3024 40.9871 +v -85.7434 -39.3024 33.2174 +v -88.4425 -39.3024 25.1643 +v -90.3871 -39.3024 16.8965 +v -91.5606 -39.3024 8.48455 +v -91.9528 -39.3024 0.000211194 +v -91.5606 -39.3024 -8.48413 +v -90.3872 -39.3024 -16.8961 +v -88.4427 -39.3024 -25.1639 +v -85.7436 -39.3024 -33.217 +v -82.3129 -39.3024 -40.9867 +v -78.18 -39.3024 -48.4067 +v -73.3801 -39.3024 -55.4137 +v -67.9541 -39.3024 -61.948 +v -61.9484 -39.3024 -67.9538 +v -55.4142 -39.3024 -73.3798 +v -48.4072 -39.3024 -78.1797 +v -40.9871 -39.3024 -82.3127 +v -33.2175 -39.3024 -85.7434 +v -25.1644 -39.3024 -88.4425 +v -16.8966 -39.3024 -90.3871 +v -8.48467 -39.3024 -91.5605 +v -0.000305829 -39.3024 -91.9528 +v 8.48402 -39.3024 -91.5606 +v 16.896 -39.3024 -90.3872 +v 25.1638 -39.3024 -88.4427 +v 33.2169 -39.3024 -85.7436 +v 40.9866 -39.3024 -82.313 +v 48.4066 -39.3024 -78.1801 +v 55.4137 -39.3024 -73.3802 +v 61.948 -39.3024 -67.9542 +v 67.9537 -39.3024 -61.9485 +v 73.3797 -39.3024 -55.4143 +v 78.1797 -39.3024 -48.4072 +v 82.3126 -39.3024 -40.9872 +v 85.7433 -39.3024 -33.2176 +v 88.4425 -39.3024 -25.1645 +v 90.3871 -39.3024 -16.8967 +v 91.5605 -39.3024 -8.48474 +v 88.0596 -47.3867 5.88009e-39 +v 87.684 -47.3867 8.12511 +v 86.5602 -47.3867 16.1809 +v 84.698 -47.3867 24.0986 +v 82.1132 -47.3867 31.8108 +v 78.8278 -47.3867 39.2515 +v 74.8698 -47.3867 46.3574 +v 70.2731 -47.3867 53.0677 +v 65.0769 -47.3867 59.3253 +v 59.3254 -47.3867 65.0768 +v 53.0678 -47.3867 70.2731 +v 46.3575 -47.3867 74.8698 +v 39.2516 -47.3867 78.8277 +v 31.8109 -47.3867 82.1131 +v 24.0987 -47.3867 84.698 +v 16.181 -47.3867 86.5602 +v 8.12521 -47.3867 87.684 +v 0.000101126 -47.3867 88.0596 +v -8.12501 -47.3867 87.684 +v -16.1808 -47.3867 86.5603 +v -24.0985 -47.3867 84.698 +v -31.8107 -47.3867 82.1132 +v -39.2514 -47.3867 78.8278 +v -46.3573 -47.3867 74.8699 +v -53.0677 -47.3867 70.2732 +v -59.3253 -47.3867 65.077 +v -65.0767 -47.3867 59.3255 +v -70.273 -47.3867 53.0679 +v -74.8697 -47.3867 46.3576 +v -78.8277 -47.3867 39.2517 +v -82.1131 -47.3867 31.811 +v -84.698 -47.3867 24.0988 +v -86.5602 -47.3867 16.1811 +v -87.684 -47.3867 8.12532 +v -88.0596 -47.3867 0.000202252 +v -87.684 -47.3867 -8.12492 +v -86.5603 -47.3867 -16.1807 +v -84.6981 -47.3867 -24.0984 +v -82.1132 -47.3867 -31.8106 +v -78.8278 -47.3867 -39.2514 +v -74.8699 -47.3867 -46.3572 +v -70.2732 -47.3867 -53.0676 +v -65.077 -47.3867 -59.3252 +v -59.3256 -47.3867 -65.0767 +v -53.068 -47.3867 -70.2729 +v -46.3577 -47.3867 -74.8697 +v -39.2518 -47.3867 -78.8276 +v -31.8111 -47.3867 -82.1131 +v -24.0989 -47.3867 -84.6979 +v -16.1812 -47.3867 -86.5602 +v -8.12543 -47.3867 -87.6839 +v -0.000292881 -47.3867 -88.0596 +v 8.12481 -47.3867 -87.684 +v 16.1806 -47.3867 -86.5603 +v 24.0984 -47.3867 -84.6981 +v 31.8105 -47.3867 -82.1133 +v 39.2513 -47.3867 -78.8279 +v 46.3571 -47.3867 -74.87 +v 53.0675 -47.3867 -70.2733 +v 59.3251 -47.3867 -65.0771 +v 65.0766 -47.3867 -59.3256 +v 70.2729 -47.3867 -53.0681 +v 74.8696 -47.3867 -46.3577 +v 78.8276 -47.3867 -39.2519 +v 82.113 -47.3867 -31.8112 +v 84.6979 -47.3867 -24.099 +v 86.5602 -47.3867 -16.1813 +v 87.6839 -47.3867 -8.1255 +v 83.4574 -55.0896 5.88009e-39 +v 83.1014 -55.0896 7.70047 +v 82.0364 -55.0896 15.3352 +v 80.2715 -55.0896 22.8392 +v 77.8217 -55.0896 30.1483 +v 74.708 -55.0896 37.2001 +v 70.9569 -55.0896 43.9346 +v 66.6005 -55.0896 50.2943 +v 61.6758 -55.0896 56.2249 +v 56.2249 -55.0896 61.6757 +v 50.2944 -55.0896 66.6004 +v 43.9347 -55.0896 70.9569 +v 37.2002 -55.0896 74.708 +v 30.1484 -55.0896 77.8217 +v 22.8393 -55.0896 80.2715 +v 15.3353 -55.0896 82.0364 +v 7.70057 -55.0896 83.1014 +v 9.58409e-05 -55.0896 83.4574 +v -7.70038 -55.0896 83.1014 +v -15.3352 -55.0896 82.0364 +v -22.8391 -55.0896 80.2715 +v -30.1482 -55.0896 77.8218 +v -37.2001 -55.0896 74.7081 +v -43.9346 -55.0896 70.957 +v -50.2942 -55.0896 66.6005 +v -56.2248 -55.0896 61.6759 +v -61.6757 -55.0896 56.225 +v -66.6004 -55.0896 50.2944 +v -70.9568 -55.0896 43.9348 +v -74.7079 -55.0896 37.2003 +v -77.8217 -55.0896 30.1484 +v -80.2714 -55.0896 22.8394 +v -82.0364 -55.0896 15.3354 +v -83.1014 -55.0896 7.70067 +v -83.4574 -55.0896 0.000191682 +v -83.1014 -55.0896 -7.70029 +v -82.0364 -55.0896 -15.3351 +v -80.2715 -55.0896 -22.839 +v -77.8218 -55.0896 -30.1481 +v -74.7081 -55.0896 -37.2 +v -70.957 -55.0896 -43.9345 +v -66.6006 -55.0896 -50.2941 +v -61.6759 -55.0896 -56.2247 +v -56.2251 -55.0896 -61.6756 +v -50.2945 -55.0896 -66.6003 +v -43.9349 -55.0896 -70.9568 +v -37.2004 -55.0896 -74.7079 +v -30.1485 -55.0896 -77.8216 +v -22.8395 -55.0896 -80.2714 +v -15.3355 -55.0896 -82.0363 +v -7.70078 -55.0896 -83.1014 +v -0.000277574 -55.0896 -83.4574 +v 7.70019 -55.0896 -83.1014 +v 15.335 -55.0896 -82.0364 +v 22.8389 -55.0896 -80.2716 +v 30.148 -55.0896 -77.8218 +v 37.1999 -55.0896 -74.7081 +v 43.9344 -55.0896 -70.9571 +v 50.294 -55.0896 -66.6007 +v 56.2247 -55.0896 -61.676 +v 61.6755 -55.0896 -56.2251 +v 66.6002 -55.0896 -50.2946 +v 70.9567 -55.0896 -43.9349 +v 74.7079 -55.0896 -37.2005 +v 77.8216 -55.0896 -30.1486 +v 80.2714 -55.0896 -22.8396 +v 82.0363 -55.0896 -15.3356 +v 83.1014 -55.0896 -7.70084 +v 78.1833 -62.3488 5.88009e-39 +v 77.8497 -62.3488 7.21384 +v 76.852 -62.3488 14.3661 +v 75.1987 -62.3488 21.3958 +v 72.9037 -62.3488 28.243 +v 69.9868 -62.3488 34.8493 +v 66.4728 -62.3488 41.1582 +v 62.3916 -62.3488 47.1159 +v 57.7782 -62.3488 52.6717 +v 52.6718 -62.3488 57.7781 +v 47.116 -62.3488 62.3916 +v 41.1582 -62.3488 66.4727 +v 34.8493 -62.3488 69.9868 +v 28.2431 -62.3488 72.9037 +v 21.3959 -62.3488 75.1986 +v 14.3662 -62.3488 76.852 +v 7.21392 -62.3488 77.8497 +v 8.97842e-05 -62.3488 78.1833 +v -7.21375 -62.3488 77.8498 +v -14.366 -62.3488 76.8521 +v -21.3958 -62.3488 75.1987 +v -28.2429 -62.3488 72.9038 +v -34.8492 -62.3488 69.9868 +v -41.1581 -62.3488 66.4728 +v -47.1158 -62.3488 62.3917 +v -52.6716 -62.3488 57.7782 +v -57.778 -62.3488 52.6718 +v -62.3915 -62.3488 47.116 +v -66.4727 -62.3488 41.1583 +v -69.9867 -62.3488 34.8494 +v -72.9037 -62.3488 28.2432 +v -75.1986 -62.3488 21.396 +v -76.852 -62.3488 14.3663 +v -77.8497 -62.3488 7.21402 +v -78.1833 -62.3488 0.000179568 +v -77.8498 -62.3488 -7.21367 +v -76.8521 -62.3488 -14.3659 +v -75.1987 -62.3488 -21.3957 +v -72.9038 -62.3488 -28.2429 +v -69.9869 -62.3488 -34.8491 +v -66.4729 -62.3488 -41.158 +v -62.3917 -62.3488 -47.1158 +v -57.7783 -62.3488 -52.6716 +v -52.6719 -62.3488 -57.778 +v -47.1161 -62.3488 -62.3914 +v -41.1584 -62.3488 -66.4726 +v -34.8495 -62.3488 -69.9867 +v -28.2433 -62.3488 -72.9036 +v -21.3961 -62.3488 -75.1986 +v -14.3664 -62.3488 -76.852 +v -7.21412 -62.3488 -77.8497 +v -0.000260032 -62.3488 -78.1833 +v 7.21357 -62.3488 -77.8498 +v 14.3659 -62.3488 -76.8521 +v 21.3956 -62.3488 -75.1987 +v 28.2428 -62.3488 -72.9038 +v 34.849 -62.3488 -69.9869 +v 41.1579 -62.3488 -66.4729 +v 47.1157 -62.3488 -62.3918 +v 52.6715 -62.3488 -57.7783 +v 57.7779 -62.3488 -52.672 +v 62.3914 -62.3488 -47.1162 +v 66.4726 -62.3488 -41.1584 +v 69.9866 -62.3488 -34.8496 +v 72.9036 -62.3488 -28.2434 +v 75.1986 -62.3488 -21.3962 +v 76.852 -62.3488 -14.3665 +v 77.8497 -62.3488 -7.21418 +v 72.2796 -69.1061 5.88009e-39 +v 71.9713 -69.1061 6.66912 +v 71.0489 -69.1061 13.2813 +v 69.5204 -69.1061 19.7802 +v 67.3987 -69.1061 26.1104 +v 64.7021 -69.1061 32.2178 +v 61.4534 -69.1061 38.0503 +v 57.6804 -69.1061 43.5582 +v 53.4153 -69.1061 48.6944 +v 48.6945 -69.1061 53.4152 +v 43.5582 -69.1061 57.6803 +v 38.0504 -69.1061 61.4533 +v 32.2178 -69.1061 64.702 +v 26.1105 -69.1061 67.3987 +v 19.7803 -69.1061 69.5204 +v 13.2814 -69.1061 71.0489 +v 6.6692 -69.1061 71.9713 +v 8.30046e-05 -69.1061 72.2796 +v -6.66903 -69.1061 71.9713 +v -13.2813 -69.1061 71.0489 +v -19.7802 -69.1061 69.5204 +v -26.1103 -69.1061 67.3988 +v -32.2177 -69.1061 64.7021 +v -38.0502 -69.1061 61.4534 +v -43.5581 -69.1061 57.6804 +v -48.6944 -69.1061 53.4154 +v -53.4152 -69.1061 48.6945 +v -57.6803 -69.1061 43.5583 +v -61.4533 -69.1061 38.0504 +v -64.702 -69.1061 32.2179 +v -67.3987 -69.1061 26.1105 +v -69.5203 -69.1061 19.7804 +v -71.0489 -69.1061 13.2815 +v -71.9713 -69.1061 6.66929 +v -72.2796 -69.1061 0.000166009 +v -71.9713 -69.1061 -6.66896 +v -71.0489 -69.1061 -13.2812 +v -69.5204 -69.1061 -19.7801 +v -67.3988 -69.1061 -26.1102 +v -64.7021 -69.1061 -32.2176 +v -61.4535 -69.1061 -38.0501 +v -57.6805 -69.1061 -43.558 +v -53.4154 -69.1061 -48.6943 +v -48.6946 -69.1061 -53.4151 +v -43.5584 -69.1061 -57.6802 +v -38.0505 -69.1061 -61.4532 +v -32.218 -69.1061 -64.702 +v -26.1106 -69.1061 -67.3986 +v -19.7805 -69.1061 -69.5203 +v -13.2816 -69.1061 -71.0489 +v -6.66938 -69.1061 -71.9712 +v -0.000240397 -69.1061 -72.2796 +v 6.66887 -69.1061 -71.9713 +v 13.2811 -69.1061 -71.049 +v 19.78 -69.1061 -69.5204 +v 26.1102 -69.1061 -67.3988 +v 32.2175 -69.1061 -64.7022 +v 38.0501 -69.1061 -61.4535 +v 43.558 -69.1061 -57.6805 +v 48.6942 -69.1061 -53.4155 +v 53.4151 -69.1061 -48.6947 +v 57.6802 -69.1061 -43.5584 +v 61.4532 -69.1061 -38.0505 +v 64.7019 -69.1061 -32.2181 +v 67.3986 -69.1061 -26.1107 +v 69.5203 -69.1061 -19.7806 +v 71.0488 -69.1061 -13.2817 +v 71.9712 -69.1061 -6.66944 +v 65.794 -75.307 5.88009e-39 +v 65.5134 -75.307 6.0707 +v 64.6737 -75.307 12.0896 +v 63.2824 -75.307 18.0054 +v 61.3511 -75.307 23.7675 +v 58.8964 -75.307 29.3269 +v 55.9392 -75.307 34.6361 +v 52.5048 -75.307 39.6497 +v 48.6224 -75.307 44.3251 +v 44.3252 -75.307 48.6223 +v 39.6498 -75.307 52.5047 +v 34.6361 -75.307 55.9392 +v 29.327 -75.307 58.8964 +v 23.7676 -75.307 61.3511 +v 18.0054 -75.307 63.2824 +v 12.0897 -75.307 64.6737 +v 6.07078 -75.307 65.5133 +v 7.55566e-05 -75.307 65.794 +v -6.07063 -75.307 65.5134 +v -12.0895 -75.307 64.6738 +v -18.0053 -75.307 63.2824 +v -23.7675 -75.307 61.3511 +v -29.3268 -75.307 58.8964 +v -34.636 -75.307 55.9392 +v -39.6497 -75.307 52.5048 +v -44.3251 -75.307 48.6224 +v -48.6223 -75.307 44.3252 +v -52.5047 -75.307 39.6498 +v -55.9391 -75.307 34.6362 +v -58.8963 -75.307 29.327 +v -61.351 -75.307 23.7677 +v -63.2823 -75.307 18.0055 +v -64.6737 -75.307 12.0898 +v -65.5133 -75.307 6.07086 +v -65.794 -75.307 0.000151113 +v -65.5134 -75.307 -6.07056 +v -64.6738 -75.307 -12.0895 +v -63.2824 -75.307 -18.0052 +v -61.3512 -75.307 -23.7674 +v -58.8965 -75.307 -29.3268 +v -55.9393 -75.307 -34.6359 +v -52.5049 -75.307 -39.6496 +v -48.6225 -75.307 -44.325 +v -44.3253 -75.307 -48.6222 +v -39.6499 -75.307 -52.5046 +v -34.6363 -75.307 -55.9391 +v -29.3271 -75.307 -58.8963 +v -23.7677 -75.307 -61.351 +v -18.0056 -75.307 -63.2823 +v -12.0898 -75.307 -64.6737 +v -6.07094 -75.307 -65.5133 +v -0.000218827 -75.307 -65.794 +v 6.07048 -75.307 -65.5134 +v 12.0894 -75.307 -64.6738 +v 18.0052 -75.307 -63.2824 +v 23.7673 -75.307 -61.3512 +v 29.3267 -75.307 -58.8965 +v 34.6359 -75.307 -55.9393 +v 39.6495 -75.307 -52.5049 +v 44.325 -75.307 -48.6225 +v 48.6222 -75.307 -44.3253 +v 52.5046 -75.307 -39.65 +v 55.9391 -75.307 -34.6363 +v 58.8963 -75.307 -29.3272 +v 61.351 -75.307 -23.7678 +v 63.2823 -75.307 -18.0057 +v 64.6737 -75.307 -12.0899 +v 65.5133 -75.307 -6.07099 +v 58.7787 -80.9016 5.88009e-39 +v 58.5279 -80.9016 5.42341 +v 57.7779 -80.9016 10.8005 +v 56.5348 -80.9016 16.0855 +v 54.8095 -80.9016 21.2333 +v 52.6165 -80.9016 26.1999 +v 49.9746 -80.9016 30.943 +v 46.9064 -80.9016 35.422 +v 43.438 -80.9016 39.5989 +v 39.599 -80.9016 43.4379 +v 35.4221 -80.9016 46.9064 +v 30.943 -80.9016 49.9746 +v 26.2 -80.9016 52.6165 +v 21.2334 -80.9016 54.8095 +v 16.0856 -80.9016 56.5348 +v 10.8006 -80.9016 57.7778 +v 5.42348 -80.9016 58.5279 +v 6.75003e-05 -80.9016 58.7787 +v -5.42334 -80.9016 58.5279 +v -10.8005 -80.9016 57.7779 +v -16.0855 -80.9016 56.5349 +v -21.2332 -80.9016 54.8095 +v -26.1998 -80.9016 52.6166 +v -30.9429 -80.9016 49.9747 +v -35.422 -80.9016 46.9065 +v -39.5989 -80.9016 43.438 +v -43.4379 -80.9016 39.599 +v -46.9063 -80.9016 35.4221 +v -49.9746 -80.9016 30.9431 +v -52.6165 -80.9016 26.2 +v -54.8094 -80.9016 21.2334 +v -56.5348 -80.9016 16.0857 +v -57.7778 -80.9016 10.8007 +v -58.5279 -80.9016 5.42355 +v -58.7787 -80.9016 0.000135001 +v -58.5279 -80.9016 -5.42328 +v -57.7779 -80.9016 -10.8004 +v -56.5349 -80.9016 -16.0854 +v -54.8095 -80.9016 -21.2332 +v -52.6166 -80.9016 -26.1998 +v -49.9747 -80.9016 -30.9429 +v -46.9065 -80.9016 -35.4219 +v -43.4381 -80.9016 -39.5988 +v -39.5991 -80.9016 -43.4379 +v -35.4222 -80.9016 -46.9063 +v -30.9431 -80.9016 -49.9745 +v -26.2001 -80.9016 -52.6164 +v -21.2335 -80.9016 -54.8094 +v -16.0857 -80.9016 -56.5348 +v -10.8008 -80.9016 -57.7778 +v -5.42362 -80.9016 -58.5279 +v -0.000195494 -80.9016 -58.7787 +v 5.42321 -80.9016 -58.528 +v 10.8003 -80.9016 -57.7779 +v 16.0854 -80.9016 -56.5349 +v 21.2331 -80.9016 -54.8096 +v 26.1997 -80.9016 -52.6166 +v 30.9428 -80.9016 -49.9748 +v 35.4219 -80.9016 -46.9065 +v 39.5988 -80.9016 -43.4381 +v 43.4378 -80.9016 -39.5991 +v 46.9062 -80.9016 -35.4223 +v 49.9745 -80.9016 -30.9432 +v 52.6164 -80.9016 -26.2001 +v 54.8094 -80.9016 -21.2335 +v 56.5348 -80.9016 -16.0858 +v 57.7778 -80.9016 -10.8008 +v 58.5279 -80.9016 -5.42367 +v 51.2901 -85.8448 5.88009e-39 +v 51.0713 -85.8448 4.73245 +v 50.4168 -85.8448 9.42453 +v 49.3321 -85.8448 14.0362 +v 47.8266 -85.8448 18.5281 +v 45.913 -85.8448 22.862 +v 43.6077 -85.8448 27.0007 +v 40.9304 -85.8448 30.9092 +v 37.9039 -85.8448 34.5539 +v 34.5539 -85.8448 37.9038 +v 30.9092 -85.8448 40.9304 +v 27.0008 -85.8448 43.6077 +v 22.862 -85.8448 45.913 +v 18.5282 -85.8448 47.8266 +v 14.0363 -85.8448 49.3321 +v 9.42458 -85.8448 50.4168 +v 4.73251 -85.8448 51.0713 +v 5.89006e-05 -85.8448 51.2901 +v -4.73239 -85.8448 51.0713 +v -9.42447 -85.8448 50.4168 +v -14.0361 -85.8448 49.3322 +v -18.5281 -85.8448 47.8266 +v -22.8619 -85.8448 45.9131 +v -27.0007 -85.8448 43.6078 +v -30.9091 -85.8448 40.9304 +v -34.5539 -85.8448 37.9039 +v -37.9038 -85.8448 34.554 +v -40.9303 -85.8448 30.9093 +v -43.6077 -85.8448 27.0008 +v -45.913 -85.8448 22.8621 +v -47.8266 -85.8448 18.5282 +v -49.3321 -85.8448 14.0363 +v -50.4168 -85.8448 9.42464 +v -51.0713 -85.8448 4.73257 +v -51.2901 -85.8448 0.000117801 +v -51.0713 -85.8448 -4.73234 +v -50.4168 -85.8448 -9.42441 +v -49.3322 -85.8448 -14.0361 +v -47.8266 -85.8448 -18.528 +v -45.9131 -85.8448 -22.8619 +v -43.6078 -85.8448 -27.0006 +v -40.9305 -85.8448 -30.9091 +v -37.9039 -85.8448 -34.5538 +v -34.554 -85.8448 -37.9037 +v -30.9093 -85.8448 -40.9303 +v -27.0009 -85.8448 -43.6076 +v -22.8621 -85.8448 -45.913 +v -18.5283 -85.8448 -47.8265 +v -14.0364 -85.8448 -49.3321 +v -9.4247 -85.8448 -50.4168 +v -4.73264 -85.8448 -51.0713 +v -0.000170588 -85.8448 -51.2901 +v 4.73227 -85.8448 -51.0713 +v 9.42435 -85.8448 -50.4168 +v 14.036 -85.8448 -49.3322 +v 18.528 -85.8448 -47.8267 +v 22.8618 -85.8448 -45.9131 +v 27.0006 -85.8448 -43.6078 +v 30.909 -85.8448 -40.9305 +v 34.5538 -85.8448 -37.904 +v 37.9037 -85.8448 -34.5541 +v 40.9303 -85.8448 -30.9094 +v 43.6076 -85.8448 -27.0009 +v 45.9129 -85.8448 -22.8622 +v 47.8265 -85.8448 -18.5283 +v 49.3321 -85.8448 -14.0364 +v 50.4167 -85.8448 -9.42477 +v 51.0713 -85.8448 -4.73268 +v 43.3886 -90.0968 5.88009e-39 +v 43.2035 -90.0968 4.00339 +v 42.6498 -90.0968 7.97262 +v 41.7322 -90.0968 11.8738 +v 40.4586 -90.0968 15.6737 +v 38.8398 -90.0968 19.3399 +v 36.8897 -90.0968 22.8411 +v 34.6248 -90.0968 26.1474 +v 32.0645 -90.0968 29.2307 +v 29.2307 -90.0968 32.0645 +v 26.1475 -90.0968 34.6248 +v 22.8412 -90.0968 36.8897 +v 19.34 -90.0968 38.8398 +v 15.6738 -90.0968 40.4586 +v 11.8739 -90.0968 41.7322 +v 7.97267 -90.0968 42.6498 +v 4.00344 -90.0968 43.2035 +v 4.98266e-05 -90.0968 43.3886 +v -4.00334 -90.0968 43.2035 +v -7.97257 -90.0968 42.6498 +v -11.8738 -90.0968 41.7322 +v -15.6737 -90.0968 40.4586 +v -19.3399 -90.0968 38.8399 +v -22.8411 -90.0968 36.8897 +v -26.1474 -90.0968 34.6249 +v -29.2306 -90.0968 32.0646 +v -32.0645 -90.0968 29.2307 +v -34.6248 -90.0968 26.1475 +v -36.8896 -90.0968 22.8412 +v -38.8398 -90.0968 19.34 +v -40.4586 -90.0968 15.6738 +v -41.7322 -90.0968 11.8739 +v -42.6498 -90.0968 7.97272 +v -43.2035 -90.0968 4.00349 +v -43.3886 -90.0968 9.96532e-05 +v -43.2035 -90.0968 -4.00329 +v -42.6498 -90.0968 -7.97252 +v -41.7323 -90.0968 -11.8737 +v -40.4587 -90.0968 -15.6736 +v -38.8399 -90.0968 -19.3398 +v -36.8898 -90.0968 -22.841 +v -34.6249 -90.0968 -26.1473 +v -32.0646 -90.0968 -29.2306 +v -29.2308 -90.0968 -32.0644 +v -26.1475 -90.0968 -34.6247 +v -22.8412 -90.0968 -36.8896 +v -19.3401 -90.0968 -38.8398 +v -15.6739 -90.0968 -40.4586 +v -11.874 -90.0968 -41.7322 +v -7.97277 -90.0968 -42.6498 +v -4.00355 -90.0968 -43.2035 +v -0.000144308 -90.0968 -43.3886 +v 4.00324 -90.0968 -43.2035 +v 7.97247 -90.0968 -42.6498 +v 11.8737 -90.0968 -41.7323 +v 15.6736 -90.0968 -40.4587 +v 19.3398 -90.0968 -38.8399 +v 22.841 -90.0968 -36.8898 +v 26.1473 -90.0968 -34.6249 +v 29.2306 -90.0968 -32.0646 +v 32.0644 -90.0968 -29.2308 +v 34.6247 -90.0968 -26.1476 +v 36.8896 -90.0968 -22.8413 +v 38.8398 -90.0968 -19.3401 +v 40.4586 -90.0968 -15.6739 +v 41.7322 -90.0968 -11.874 +v 42.6497 -90.0968 -7.97283 +v 43.2034 -90.0968 -4.00358 +v 35.1377 -93.6234 5.88009e-39 +v 34.9878 -93.6234 3.24209 +v 34.5394 -93.6234 6.45653 +v 33.7963 -93.6234 9.61588 +v 32.7649 -93.6234 12.6932 +v 31.454 -93.6234 15.6622 +v 29.8747 -93.6234 18.4976 +v 28.0405 -93.6234 21.1752 +v 25.9671 -93.6234 23.6721 +v 23.6721 -93.6234 25.9671 +v 21.1752 -93.6234 28.0405 +v 18.4976 -93.6234 29.8747 +v 15.6622 -93.6234 31.454 +v 12.6932 -93.6234 32.7649 +v 9.61592 -93.6234 33.7963 +v 6.45657 -93.6234 34.5394 +v 3.24213 -93.6234 34.9878 +v 4.03515e-05 -93.6234 35.1377 +v -3.24205 -93.6234 34.9878 +v -6.45649 -93.6234 34.5394 +v -9.61584 -93.6234 33.7963 +v -12.6932 -93.6234 32.7649 +v -15.6622 -93.6234 31.454 +v -18.4976 -93.6234 29.8747 +v -21.1751 -93.6234 28.0405 +v -23.6721 -93.6234 25.9671 +v -25.967 -93.6234 23.6722 +v -28.0404 -93.6234 21.1752 +v -29.8746 -93.6234 18.4977 +v -31.4539 -93.6234 15.6623 +v -32.7649 -93.6234 12.6933 +v -33.7963 -93.6234 9.61595 +v -34.5394 -93.6234 6.45661 +v -34.9878 -93.6234 3.24218 +v -35.1377 -93.6234 8.07029e-05 +v -34.9878 -93.6234 -3.24202 +v -34.5394 -93.6234 -6.45645 +v -33.7964 -93.6234 -9.6158 +v -32.7649 -93.6234 -12.6931 +v -31.454 -93.6234 -15.6621 +v -29.8747 -93.6234 -18.4975 +v -28.0405 -93.6234 -21.1751 +v -25.9671 -93.6234 -23.672 +v -23.6722 -93.6234 -25.967 +v -21.1753 -93.6234 -28.0404 +v -18.4977 -93.6234 -29.8746 +v -15.6623 -93.6234 -31.4539 +v -12.6933 -93.6234 -32.7649 +v -9.61599 -93.6234 -33.7963 +v -6.45665 -93.6234 -34.5394 +v -3.24222 -93.6234 -34.9878 +v -0.000116866 -93.6234 -35.1377 +v 3.24197 -93.6234 -34.9878 +v 6.45641 -93.6234 -34.5394 +v 9.61577 -93.6234 -33.7964 +v 12.6931 -93.6234 -32.765 +v 15.6621 -93.6234 -31.454 +v 18.4975 -93.6234 -29.8747 +v 21.1751 -93.6234 -28.0406 +v 23.672 -93.6234 -25.9672 +v 25.967 -93.6234 -23.6722 +v 28.0404 -93.6234 -21.1753 +v 29.8746 -93.6234 -18.4977 +v 31.4539 -93.6234 -15.6623 +v 32.7649 -93.6234 -12.6933 +v 33.7963 -93.6234 -9.61604 +v 34.5394 -93.6234 -6.4567 +v 34.9878 -93.6234 -3.24225 +v 26.6039 -96.3962 5.88009e-39 +v 26.4904 -96.3962 2.4547 +v 26.1509 -96.3962 4.88845 +v 25.5883 -96.3962 7.2805 +v 24.8074 -96.3962 9.61043 +v 23.8148 -96.3962 11.8584 +v 22.6191 -96.3962 14.0051 +v 21.2304 -96.3962 16.0324 +v 19.6605 -96.3962 17.9229 +v 17.9229 -96.3962 19.6605 +v 16.0324 -96.3962 21.2304 +v 14.0052 -96.3962 22.6191 +v 11.8584 -96.3962 23.8148 +v 9.61046 -96.3962 24.8074 +v 7.28053 -96.3962 25.5883 +v 4.88848 -96.3962 26.1509 +v 2.45473 -96.3962 26.4904 +v 3.05514e-05 -96.3962 26.6039 +v -2.45467 -96.3962 26.4904 +v -4.88842 -96.3962 26.1509 +v -7.28047 -96.3962 25.5883 +v -9.6104 -96.3962 24.8074 +v -11.8583 -96.3962 23.8148 +v -14.0051 -96.3962 22.6191 +v -16.0324 -96.3962 21.2304 +v -17.9229 -96.3962 19.6605 +v -19.6605 -96.3962 17.923 +v -21.2303 -96.3962 16.0325 +v -22.6191 -96.3962 14.0052 +v -23.8148 -96.3962 11.8584 +v -24.8074 -96.3962 9.61049 +v -25.5883 -96.3962 7.28055 +v -26.1509 -96.3962 4.88851 +v -26.4904 -96.3962 2.45476 +v -26.6039 -96.3962 6.11028e-05 +v -26.4904 -96.3962 -2.45464 +v -26.1509 -96.3962 -4.88839 +v -25.5883 -96.3962 -7.28043 +v -24.8074 -96.3962 -9.61037 +v -23.8149 -96.3962 -11.8583 +v -22.6191 -96.3962 -14.0051 +v -21.2304 -96.3962 -16.0324 +v -19.6606 -96.3962 -17.9229 +v -17.923 -96.3962 -19.6605 +v -16.0325 -96.3962 -21.2303 +v -14.0052 -96.3962 -22.619 +v -11.8584 -96.3962 -23.8148 +v -9.61051 -96.3962 -24.8074 +v -7.28058 -96.3962 -25.5883 +v -4.88854 -96.3962 -26.1509 +v -2.45479 -96.3962 -26.4904 +v -8.84828e-05 -96.3962 -26.6039 +v 2.4546 -96.3962 -26.4904 +v 4.88836 -96.3962 -26.1509 +v 7.28041 -96.3962 -25.5883 +v 9.61035 -96.3962 -24.8074 +v 11.8583 -96.3962 -23.8149 +v 14.0051 -96.3962 -22.6191 +v 16.0323 -96.3962 -21.2304 +v 17.9229 -96.3962 -19.6606 +v 19.6604 -96.3962 -17.923 +v 21.2303 -96.3962 -16.0325 +v 22.619 -96.3962 -14.0052 +v 23.8148 -96.3962 -11.8585 +v 24.8074 -96.3962 -9.61054 +v 25.5883 -96.3962 -7.28062 +v 26.1509 -96.3962 -4.88858 +v 26.4904 -96.3962 -2.45481 +v 17.8559 -98.3929 5.88009e-39 +v 17.7797 -98.3929 1.64753 +v 17.5519 -98.3929 3.28101 +v 17.1743 -98.3929 4.8865 +v 16.6501 -98.3929 6.45029 +v 15.9839 -98.3929 7.95905 +v 15.1814 -98.3929 9.39991 +v 14.2493 -98.3929 10.7606 +v 13.1957 -98.3929 12.0294 +v 12.0294 -98.3929 13.1957 +v 10.7606 -98.3929 14.2493 +v 9.39993 -98.3929 15.1814 +v 7.95907 -98.3929 15.9839 +v 6.45031 -98.3929 16.6501 +v 4.88652 -98.3929 17.1743 +v 3.28103 -98.3929 17.5519 +v 1.64755 -98.3929 17.7797 +v 2.05054e-05 -98.3929 17.8559 +v -1.64751 -98.3929 17.7797 +v -3.28099 -98.3929 17.5519 +v -4.88648 -98.3929 17.1743 +v -6.45027 -98.3929 16.6501 +v -7.95904 -98.3929 15.984 +v -9.3999 -98.3929 15.1814 +v -10.7606 -98.3929 14.2493 +v -12.0294 -98.3929 13.1957 +v -13.1956 -98.3929 12.0295 +v -14.2493 -98.3929 10.7606 +v -15.1814 -98.3929 9.39995 +v -15.9839 -98.3929 7.95909 +v -16.6501 -98.3929 6.45033 +v -17.1743 -98.3929 4.88653 +v -17.5519 -98.3929 3.28105 +v -17.7797 -98.3929 1.64758 +v -17.8559 -98.3929 4.10108e-05 +v -17.7797 -98.3929 -1.64749 +v -17.5519 -98.3929 -3.28097 +v -17.1743 -98.3929 -4.88645 +v -16.6501 -98.3929 -6.45025 +v -15.984 -98.3929 -7.95902 +v -15.1814 -98.3929 -9.39988 +v -14.2493 -98.3929 -10.7605 +v -13.1957 -98.3929 -12.0294 +v -12.0295 -98.3929 -13.1956 +v -10.7606 -98.3929 -14.2493 +v -9.39997 -98.3929 -15.1814 +v -7.95911 -98.3929 -15.9839 +v -6.45035 -98.3929 -16.6501 +v -4.88655 -98.3929 -17.1742 +v -3.28107 -98.3929 -17.5519 +v -1.6476 -98.3929 -17.7797 +v -5.93876e-05 -98.3929 -17.8559 +v 1.64747 -98.3929 -17.7797 +v 3.28095 -98.3929 -17.5519 +v 4.88644 -98.3929 -17.1743 +v 6.45023 -98.3929 -16.6502 +v 7.959 -98.3929 -15.984 +v 9.39986 -98.3929 -15.1814 +v 10.7605 -98.3929 -14.2494 +v 12.0294 -98.3929 -13.1957 +v 13.1956 -98.3929 -12.0295 +v 14.2493 -98.3929 -10.7606 +v 15.1814 -98.3929 -9.39998 +v 15.9839 -98.3929 -7.95913 +v 16.6501 -98.3929 -6.45037 +v 17.1742 -98.3929 -4.88658 +v 17.5519 -98.3929 -3.2811 +v 17.7797 -98.3929 -1.64761 +v 8.96416 -99.5974 5.88009e-39 +v 8.92592 -99.5974 0.827108 +v 8.81153 -99.5974 1.64716 +v 8.62196 -99.5974 2.45316 +v 8.35883 -99.5974 3.23823 +v 8.02439 -99.5974 3.99567 +v 7.62149 -99.5974 4.71902 +v 7.15356 -99.5974 5.40211 +v 6.6246 -99.5974 6.03911 +v 6.03912 -99.5974 6.62459 +v 5.40212 -99.5974 7.15355 +v 4.71903 -99.5974 7.62148 +v 3.99568 -99.5974 8.02439 +v 3.23824 -99.5974 8.35883 +v 2.45317 -99.5974 8.62196 +v 1.64717 -99.5974 8.81153 +v 0.827118 -99.5974 8.92592 +v 1.02943e-05 -99.5974 8.96416 +v -0.827098 -99.5974 8.92592 +v -1.64715 -99.5974 8.81153 +v -2.45315 -99.5974 8.62197 +v -3.23822 -99.5974 8.35884 +v -3.99566 -99.5974 8.02439 +v -4.71901 -99.5974 7.62149 +v -5.4021 -99.5974 7.15356 +v -6.03911 -99.5974 6.62461 +v -6.62459 -99.5974 6.03913 +v -7.15355 -99.5974 5.40213 +v -7.62148 -99.5974 4.71904 +v -8.02438 -99.5974 3.99569 +v -8.35883 -99.5974 3.23825 +v -8.62196 -99.5974 2.45318 +v -8.81153 -99.5974 1.64718 +v -8.92592 -99.5974 0.82713 +v -8.96416 -99.5974 2.05886e-05 +v -8.92593 -99.5974 -0.827089 +v -8.81153 -99.5974 -1.64714 +v -8.62197 -99.5974 -2.45314 +v -8.35884 -99.5974 -3.23821 +v -8.0244 -99.5974 -3.99565 +v -7.6215 -99.5974 -4.719 +v -7.15357 -99.5974 -5.40209 +v -6.62461 -99.5974 -6.0391 +v -6.03914 -99.5974 -6.62458 +v -5.40214 -99.5974 -7.15354 +v -4.71905 -99.5974 -7.62147 +v -3.99569 -99.5974 -8.02438 +v -3.23825 -99.5974 -8.35882 +v -2.45319 -99.5974 -8.62195 +v -1.64719 -99.5974 -8.81153 +v -0.827141 -99.5974 -8.92592 +v -2.98142e-05 -99.5974 -8.96416 +v 0.827077 -99.5974 -8.92593 +v 1.64713 -99.5974 -8.81154 +v 2.45313 -99.5974 -8.62197 +v 3.2382 -99.5974 -8.35884 +v 3.99564 -99.5974 -8.0244 +v 4.71899 -99.5974 -7.6215 +v 5.40209 -99.5974 -7.15358 +v 6.03909 -99.5974 -6.62462 +v 6.62457 -99.5974 -6.03914 +v 7.15353 -99.5974 -5.40215 +v 7.62147 -99.5974 -4.71905 +v 8.02437 -99.5974 -3.9957 +v 8.35882 -99.5974 -3.23827 +v 8.62195 -99.5974 -2.4532 +v 8.81152 -99.5974 -1.6472 +v 8.92592 -99.5974 -0.827148 +f 3 4 72 71 +f 4 5 73 72 +f 5 6 74 73 +f 6 7 75 74 +f 7 8 76 75 +f 8 9 77 76 +f 9 10 78 77 +f 10 11 79 78 +f 11 12 80 79 +f 12 13 81 80 +f 13 14 82 81 +f 14 15 83 82 +f 15 16 84 83 +f 16 17 85 84 +f 17 18 86 85 +f 18 19 87 86 +f 19 20 88 87 +f 20 21 89 88 +f 21 22 90 89 +f 22 23 91 90 +f 23 24 92 91 +f 24 25 93 92 +f 25 26 94 93 +f 26 27 95 94 +f 27 28 96 95 +f 28 29 97 96 +f 29 30 98 97 +f 30 31 99 98 +f 31 32 100 99 +f 32 33 101 100 +f 33 34 102 101 +f 34 35 103 102 +f 35 36 104 103 +f 36 37 105 104 +f 37 38 106 105 +f 38 39 107 106 +f 39 40 108 107 +f 40 41 109 108 +f 41 42 110 109 +f 42 43 111 110 +f 43 44 112 111 +f 44 45 113 112 +f 45 46 114 113 +f 46 47 115 114 +f 47 48 116 115 +f 48 49 117 116 +f 49 50 118 117 +f 50 51 119 118 +f 51 52 120 119 +f 52 53 121 120 +f 53 54 122 121 +f 54 55 123 122 +f 55 56 124 123 +f 56 57 125 124 +f 57 58 126 125 +f 58 59 127 126 +f 59 60 128 127 +f 60 61 129 128 +f 61 62 130 129 +f 62 63 131 130 +f 63 64 132 131 +f 64 65 133 132 +f 65 66 134 133 +f 66 67 135 134 +f 67 68 136 135 +f 68 69 137 136 +f 69 70 138 137 +f 70 3 71 138 +f 71 72 140 139 +f 72 73 141 140 +f 73 74 142 141 +f 74 75 143 142 +f 75 76 144 143 +f 76 77 145 144 +f 77 78 146 145 +f 78 79 147 146 +f 79 80 148 147 +f 80 81 149 148 +f 81 82 150 149 +f 82 83 151 150 +f 83 84 152 151 +f 84 85 153 152 +f 85 86 154 153 +f 86 87 155 154 +f 87 88 156 155 +f 88 89 157 156 +f 89 90 158 157 +f 90 91 159 158 +f 91 92 160 159 +f 92 93 161 160 +f 93 94 162 161 +f 94 95 163 162 +f 95 96 164 163 +f 96 97 165 164 +f 97 98 166 165 +f 98 99 167 166 +f 99 100 168 167 +f 100 101 169 168 +f 101 102 170 169 +f 102 103 171 170 +f 103 104 172 171 +f 104 105 173 172 +f 105 106 174 173 +f 106 107 175 174 +f 107 108 176 175 +f 108 109 177 176 +f 109 110 178 177 +f 110 111 179 178 +f 111 112 180 179 +f 112 113 181 180 +f 113 114 182 181 +f 114 115 183 182 +f 115 116 184 183 +f 116 117 185 184 +f 117 118 186 185 +f 118 119 187 186 +f 119 120 188 187 +f 120 121 189 188 +f 121 122 190 189 +f 122 123 191 190 +f 123 124 192 191 +f 124 125 193 192 +f 125 126 194 193 +f 126 127 195 194 +f 127 128 196 195 +f 128 129 197 196 +f 129 130 198 197 +f 130 131 199 198 +f 131 132 200 199 +f 132 133 201 200 +f 133 134 202 201 +f 134 135 203 202 +f 135 136 204 203 +f 136 137 205 204 +f 137 138 206 205 +f 138 71 139 206 +f 139 140 208 207 +f 140 141 209 208 +f 141 142 210 209 +f 142 143 211 210 +f 143 144 212 211 +f 144 145 213 212 +f 145 146 214 213 +f 146 147 215 214 +f 147 148 216 215 +f 148 149 217 216 +f 149 150 218 217 +f 150 151 219 218 +f 151 152 220 219 +f 152 153 221 220 +f 153 154 222 221 +f 154 155 223 222 +f 155 156 224 223 +f 156 157 225 224 +f 157 158 226 225 +f 158 159 227 226 +f 159 160 228 227 +f 160 161 229 228 +f 161 162 230 229 +f 162 163 231 230 +f 163 164 232 231 +f 164 165 233 232 +f 165 166 234 233 +f 166 167 235 234 +f 167 168 236 235 +f 168 169 237 236 +f 169 170 238 237 +f 170 171 239 238 +f 171 172 240 239 +f 172 173 241 240 +f 173 174 242 241 +f 174 175 243 242 +f 175 176 244 243 +f 176 177 245 244 +f 177 178 246 245 +f 178 179 247 246 +f 179 180 248 247 +f 180 181 249 248 +f 181 182 250 249 +f 182 183 251 250 +f 183 184 252 251 +f 184 185 253 252 +f 185 186 254 253 +f 186 187 255 254 +f 187 188 256 255 +f 188 189 257 256 +f 189 190 258 257 +f 190 191 259 258 +f 191 192 260 259 +f 192 193 261 260 +f 193 194 262 261 +f 194 195 263 262 +f 195 196 264 263 +f 196 197 265 264 +f 197 198 266 265 +f 198 199 267 266 +f 199 200 268 267 +f 200 201 269 268 +f 201 202 270 269 +f 202 203 271 270 +f 203 204 272 271 +f 204 205 273 272 +f 205 206 274 273 +f 206 139 207 274 +f 207 208 276 275 +f 208 209 277 276 +f 209 210 278 277 +f 210 211 279 278 +f 211 212 280 279 +f 212 213 281 280 +f 213 214 282 281 +f 214 215 283 282 +f 215 216 284 283 +f 216 217 285 284 +f 217 218 286 285 +f 218 219 287 286 +f 219 220 288 287 +f 220 221 289 288 +f 221 222 290 289 +f 222 223 291 290 +f 223 224 292 291 +f 224 225 293 292 +f 225 226 294 293 +f 226 227 295 294 +f 227 228 296 295 +f 228 229 297 296 +f 229 230 298 297 +f 230 231 299 298 +f 231 232 300 299 +f 232 233 301 300 +f 233 234 302 301 +f 234 235 303 302 +f 235 236 304 303 +f 236 237 305 304 +f 237 238 306 305 +f 238 239 307 306 +f 239 240 308 307 +f 240 241 309 308 +f 241 242 310 309 +f 242 243 311 310 +f 243 244 312 311 +f 244 245 313 312 +f 245 246 314 313 +f 246 247 315 314 +f 247 248 316 315 +f 248 249 317 316 +f 249 250 318 317 +f 250 251 319 318 +f 251 252 320 319 +f 252 253 321 320 +f 253 254 322 321 +f 254 255 323 322 +f 255 256 324 323 +f 256 257 325 324 +f 257 258 326 325 +f 258 259 327 326 +f 259 260 328 327 +f 260 261 329 328 +f 261 262 330 329 +f 262 263 331 330 +f 263 264 332 331 +f 264 265 333 332 +f 265 266 334 333 +f 266 267 335 334 +f 267 268 336 335 +f 268 269 337 336 +f 269 270 338 337 +f 270 271 339 338 +f 271 272 340 339 +f 272 273 341 340 +f 273 274 342 341 +f 274 207 275 342 +f 275 276 344 343 +f 276 277 345 344 +f 277 278 346 345 +f 278 279 347 346 +f 279 280 348 347 +f 280 281 349 348 +f 281 282 350 349 +f 282 283 351 350 +f 283 284 352 351 +f 284 285 353 352 +f 285 286 354 353 +f 286 287 355 354 +f 287 288 356 355 +f 288 289 357 356 +f 289 290 358 357 +f 290 291 359 358 +f 291 292 360 359 +f 292 293 361 360 +f 293 294 362 361 +f 294 295 363 362 +f 295 296 364 363 +f 296 297 365 364 +f 297 298 366 365 +f 298 299 367 366 +f 299 300 368 367 +f 300 301 369 368 +f 301 302 370 369 +f 302 303 371 370 +f 303 304 372 371 +f 304 305 373 372 +f 305 306 374 373 +f 306 307 375 374 +f 307 308 376 375 +f 308 309 377 376 +f 309 310 378 377 +f 310 311 379 378 +f 311 312 380 379 +f 312 313 381 380 +f 313 314 382 381 +f 314 315 383 382 +f 315 316 384 383 +f 316 317 385 384 +f 317 318 386 385 +f 318 319 387 386 +f 319 320 388 387 +f 320 321 389 388 +f 321 322 390 389 +f 322 323 391 390 +f 323 324 392 391 +f 324 325 393 392 +f 325 326 394 393 +f 326 327 395 394 +f 327 328 396 395 +f 328 329 397 396 +f 329 330 398 397 +f 330 331 399 398 +f 331 332 400 399 +f 332 333 401 400 +f 333 334 402 401 +f 334 335 403 402 +f 335 336 404 403 +f 336 337 405 404 +f 337 338 406 405 +f 338 339 407 406 +f 339 340 408 407 +f 340 341 409 408 +f 341 342 410 409 +f 342 275 343 410 +f 343 344 412 411 +f 344 345 413 412 +f 345 346 414 413 +f 346 347 415 414 +f 347 348 416 415 +f 348 349 417 416 +f 349 350 418 417 +f 350 351 419 418 +f 351 352 420 419 +f 352 353 421 420 +f 353 354 422 421 +f 354 355 423 422 +f 355 356 424 423 +f 356 357 425 424 +f 357 358 426 425 +f 358 359 427 426 +f 359 360 428 427 +f 360 361 429 428 +f 361 362 430 429 +f 362 363 431 430 +f 363 364 432 431 +f 364 365 433 432 +f 365 366 434 433 +f 366 367 435 434 +f 367 368 436 435 +f 368 369 437 436 +f 369 370 438 437 +f 370 371 439 438 +f 371 372 440 439 +f 372 373 441 440 +f 373 374 442 441 +f 374 375 443 442 +f 375 376 444 443 +f 376 377 445 444 +f 377 378 446 445 +f 378 379 447 446 +f 379 380 448 447 +f 380 381 449 448 +f 381 382 450 449 +f 382 383 451 450 +f 383 384 452 451 +f 384 385 453 452 +f 385 386 454 453 +f 386 387 455 454 +f 387 388 456 455 +f 388 389 457 456 +f 389 390 458 457 +f 390 391 459 458 +f 391 392 460 459 +f 392 393 461 460 +f 393 394 462 461 +f 394 395 463 462 +f 395 396 464 463 +f 396 397 465 464 +f 397 398 466 465 +f 398 399 467 466 +f 399 400 468 467 +f 400 401 469 468 +f 401 402 470 469 +f 402 403 471 470 +f 403 404 472 471 +f 404 405 473 472 +f 405 406 474 473 +f 406 407 475 474 +f 407 408 476 475 +f 408 409 477 476 +f 409 410 478 477 +f 410 343 411 478 +f 411 412 480 479 +f 412 413 481 480 +f 413 414 482 481 +f 414 415 483 482 +f 415 416 484 483 +f 416 417 485 484 +f 417 418 486 485 +f 418 419 487 486 +f 419 420 488 487 +f 420 421 489 488 +f 421 422 490 489 +f 422 423 491 490 +f 423 424 492 491 +f 424 425 493 492 +f 425 426 494 493 +f 426 427 495 494 +f 427 428 496 495 +f 428 429 497 496 +f 429 430 498 497 +f 430 431 499 498 +f 431 432 500 499 +f 432 433 501 500 +f 433 434 502 501 +f 434 435 503 502 +f 435 436 504 503 +f 436 437 505 504 +f 437 438 506 505 +f 438 439 507 506 +f 439 440 508 507 +f 440 441 509 508 +f 441 442 510 509 +f 442 443 511 510 +f 443 444 512 511 +f 444 445 513 512 +f 445 446 514 513 +f 446 447 515 514 +f 447 448 516 515 +f 448 449 517 516 +f 449 450 518 517 +f 450 451 519 518 +f 451 452 520 519 +f 452 453 521 520 +f 453 454 522 521 +f 454 455 523 522 +f 455 456 524 523 +f 456 457 525 524 +f 457 458 526 525 +f 458 459 527 526 +f 459 460 528 527 +f 460 461 529 528 +f 461 462 530 529 +f 462 463 531 530 +f 463 464 532 531 +f 464 465 533 532 +f 465 466 534 533 +f 466 467 535 534 +f 467 468 536 535 +f 468 469 537 536 +f 469 470 538 537 +f 470 471 539 538 +f 471 472 540 539 +f 472 473 541 540 +f 473 474 542 541 +f 474 475 543 542 +f 475 476 544 543 +f 476 477 545 544 +f 477 478 546 545 +f 478 411 479 546 +f 479 480 548 547 +f 480 481 549 548 +f 481 482 550 549 +f 482 483 551 550 +f 483 484 552 551 +f 484 485 553 552 +f 485 486 554 553 +f 486 487 555 554 +f 487 488 556 555 +f 488 489 557 556 +f 489 490 558 557 +f 490 491 559 558 +f 491 492 560 559 +f 492 493 561 560 +f 493 494 562 561 +f 494 495 563 562 +f 495 496 564 563 +f 496 497 565 564 +f 497 498 566 565 +f 498 499 567 566 +f 499 500 568 567 +f 500 501 569 568 +f 501 502 570 569 +f 502 503 571 570 +f 503 504 572 571 +f 504 505 573 572 +f 505 506 574 573 +f 506 507 575 574 +f 507 508 576 575 +f 508 509 577 576 +f 509 510 578 577 +f 510 511 579 578 +f 511 512 580 579 +f 512 513 581 580 +f 513 514 582 581 +f 514 515 583 582 +f 515 516 584 583 +f 516 517 585 584 +f 517 518 586 585 +f 518 519 587 586 +f 519 520 588 587 +f 520 521 589 588 +f 521 522 590 589 +f 522 523 591 590 +f 523 524 592 591 +f 524 525 593 592 +f 525 526 594 593 +f 526 527 595 594 +f 527 528 596 595 +f 528 529 597 596 +f 529 530 598 597 +f 530 531 599 598 +f 531 532 600 599 +f 532 533 601 600 +f 533 534 602 601 +f 534 535 603 602 +f 535 536 604 603 +f 536 537 605 604 +f 537 538 606 605 +f 538 539 607 606 +f 539 540 608 607 +f 540 541 609 608 +f 541 542 610 609 +f 542 543 611 610 +f 543 544 612 611 +f 544 545 613 612 +f 545 546 614 613 +f 546 479 547 614 +f 547 548 616 615 +f 548 549 617 616 +f 549 550 618 617 +f 550 551 619 618 +f 551 552 620 619 +f 552 553 621 620 +f 553 554 622 621 +f 554 555 623 622 +f 555 556 624 623 +f 556 557 625 624 +f 557 558 626 625 +f 558 559 627 626 +f 559 560 628 627 +f 560 561 629 628 +f 561 562 630 629 +f 562 563 631 630 +f 563 564 632 631 +f 564 565 633 632 +f 565 566 634 633 +f 566 567 635 634 +f 567 568 636 635 +f 568 569 637 636 +f 569 570 638 637 +f 570 571 639 638 +f 571 572 640 639 +f 572 573 641 640 +f 573 574 642 641 +f 574 575 643 642 +f 575 576 644 643 +f 576 577 645 644 +f 577 578 646 645 +f 578 579 647 646 +f 579 580 648 647 +f 580 581 649 648 +f 581 582 650 649 +f 582 583 651 650 +f 583 584 652 651 +f 584 585 653 652 +f 585 586 654 653 +f 586 587 655 654 +f 587 588 656 655 +f 588 589 657 656 +f 589 590 658 657 +f 590 591 659 658 +f 591 592 660 659 +f 592 593 661 660 +f 593 594 662 661 +f 594 595 663 662 +f 595 596 664 663 +f 596 597 665 664 +f 597 598 666 665 +f 598 599 667 666 +f 599 600 668 667 +f 600 601 669 668 +f 601 602 670 669 +f 602 603 671 670 +f 603 604 672 671 +f 604 605 673 672 +f 605 606 674 673 +f 606 607 675 674 +f 607 608 676 675 +f 608 609 677 676 +f 609 610 678 677 +f 610 611 679 678 +f 611 612 680 679 +f 612 613 681 680 +f 613 614 682 681 +f 614 547 615 682 +f 615 616 684 683 +f 616 617 685 684 +f 617 618 686 685 +f 618 619 687 686 +f 619 620 688 687 +f 620 621 689 688 +f 621 622 690 689 +f 622 623 691 690 +f 623 624 692 691 +f 624 625 693 692 +f 625 626 694 693 +f 626 627 695 694 +f 627 628 696 695 +f 628 629 697 696 +f 629 630 698 697 +f 630 631 699 698 +f 631 632 700 699 +f 632 633 701 700 +f 633 634 702 701 +f 634 635 703 702 +f 635 636 704 703 +f 636 637 705 704 +f 637 638 706 705 +f 638 639 707 706 +f 639 640 708 707 +f 640 641 709 708 +f 641 642 710 709 +f 642 643 711 710 +f 643 644 712 711 +f 644 645 713 712 +f 645 646 714 713 +f 646 647 715 714 +f 647 648 716 715 +f 648 649 717 716 +f 649 650 718 717 +f 650 651 719 718 +f 651 652 720 719 +f 652 653 721 720 +f 653 654 722 721 +f 654 655 723 722 +f 655 656 724 723 +f 656 657 725 724 +f 657 658 726 725 +f 658 659 727 726 +f 659 660 728 727 +f 660 661 729 728 +f 661 662 730 729 +f 662 663 731 730 +f 663 664 732 731 +f 664 665 733 732 +f 665 666 734 733 +f 666 667 735 734 +f 667 668 736 735 +f 668 669 737 736 +f 669 670 738 737 +f 670 671 739 738 +f 671 672 740 739 +f 672 673 741 740 +f 673 674 742 741 +f 674 675 743 742 +f 675 676 744 743 +f 676 677 745 744 +f 677 678 746 745 +f 678 679 747 746 +f 679 680 748 747 +f 680 681 749 748 +f 681 682 750 749 +f 682 615 683 750 +f 683 684 752 751 +f 684 685 753 752 +f 685 686 754 753 +f 686 687 755 754 +f 687 688 756 755 +f 688 689 757 756 +f 689 690 758 757 +f 690 691 759 758 +f 691 692 760 759 +f 692 693 761 760 +f 693 694 762 761 +f 694 695 763 762 +f 695 696 764 763 +f 696 697 765 764 +f 697 698 766 765 +f 698 699 767 766 +f 699 700 768 767 +f 700 701 769 768 +f 701 702 770 769 +f 702 703 771 770 +f 703 704 772 771 +f 704 705 773 772 +f 705 706 774 773 +f 706 707 775 774 +f 707 708 776 775 +f 708 709 777 776 +f 709 710 778 777 +f 710 711 779 778 +f 711 712 780 779 +f 712 713 781 780 +f 713 714 782 781 +f 714 715 783 782 +f 715 716 784 783 +f 716 717 785 784 +f 717 718 786 785 +f 718 719 787 786 +f 719 720 788 787 +f 720 721 789 788 +f 721 722 790 789 +f 722 723 791 790 +f 723 724 792 791 +f 724 725 793 792 +f 725 726 794 793 +f 726 727 795 794 +f 727 728 796 795 +f 728 729 797 796 +f 729 730 798 797 +f 730 731 799 798 +f 731 732 800 799 +f 732 733 801 800 +f 733 734 802 801 +f 734 735 803 802 +f 735 736 804 803 +f 736 737 805 804 +f 737 738 806 805 +f 738 739 807 806 +f 739 740 808 807 +f 740 741 809 808 +f 741 742 810 809 +f 742 743 811 810 +f 743 744 812 811 +f 744 745 813 812 +f 745 746 814 813 +f 746 747 815 814 +f 747 748 816 815 +f 748 749 817 816 +f 749 750 818 817 +f 750 683 751 818 +f 751 752 820 819 +f 752 753 821 820 +f 753 754 822 821 +f 754 755 823 822 +f 755 756 824 823 +f 756 757 825 824 +f 757 758 826 825 +f 758 759 827 826 +f 759 760 828 827 +f 760 761 829 828 +f 761 762 830 829 +f 762 763 831 830 +f 763 764 832 831 +f 764 765 833 832 +f 765 766 834 833 +f 766 767 835 834 +f 767 768 836 835 +f 768 769 837 836 +f 769 770 838 837 +f 770 771 839 838 +f 771 772 840 839 +f 772 773 841 840 +f 773 774 842 841 +f 774 775 843 842 +f 775 776 844 843 +f 776 777 845 844 +f 777 778 846 845 +f 778 779 847 846 +f 779 780 848 847 +f 780 781 849 848 +f 781 782 850 849 +f 782 783 851 850 +f 783 784 852 851 +f 784 785 853 852 +f 785 786 854 853 +f 786 787 855 854 +f 787 788 856 855 +f 788 789 857 856 +f 789 790 858 857 +f 790 791 859 858 +f 791 792 860 859 +f 792 793 861 860 +f 793 794 862 861 +f 794 795 863 862 +f 795 796 864 863 +f 796 797 865 864 +f 797 798 866 865 +f 798 799 867 866 +f 799 800 868 867 +f 800 801 869 868 +f 801 802 870 869 +f 802 803 871 870 +f 803 804 872 871 +f 804 805 873 872 +f 805 806 874 873 +f 806 807 875 874 +f 807 808 876 875 +f 808 809 877 876 +f 809 810 878 877 +f 810 811 879 878 +f 811 812 880 879 +f 812 813 881 880 +f 813 814 882 881 +f 814 815 883 882 +f 815 816 884 883 +f 816 817 885 884 +f 817 818 886 885 +f 818 751 819 886 +f 819 820 888 887 +f 820 821 889 888 +f 821 822 890 889 +f 822 823 891 890 +f 823 824 892 891 +f 824 825 893 892 +f 825 826 894 893 +f 826 827 895 894 +f 827 828 896 895 +f 828 829 897 896 +f 829 830 898 897 +f 830 831 899 898 +f 831 832 900 899 +f 832 833 901 900 +f 833 834 902 901 +f 834 835 903 902 +f 835 836 904 903 +f 836 837 905 904 +f 837 838 906 905 +f 838 839 907 906 +f 839 840 908 907 +f 840 841 909 908 +f 841 842 910 909 +f 842 843 911 910 +f 843 844 912 911 +f 844 845 913 912 +f 845 846 914 913 +f 846 847 915 914 +f 847 848 916 915 +f 848 849 917 916 +f 849 850 918 917 +f 850 851 919 918 +f 851 852 920 919 +f 852 853 921 920 +f 853 854 922 921 +f 854 855 923 922 +f 855 856 924 923 +f 856 857 925 924 +f 857 858 926 925 +f 858 859 927 926 +f 859 860 928 927 +f 860 861 929 928 +f 861 862 930 929 +f 862 863 931 930 +f 863 864 932 931 +f 864 865 933 932 +f 865 866 934 933 +f 866 867 935 934 +f 867 868 936 935 +f 868 869 937 936 +f 869 870 938 937 +f 870 871 939 938 +f 871 872 940 939 +f 872 873 941 940 +f 873 874 942 941 +f 874 875 943 942 +f 875 876 944 943 +f 876 877 945 944 +f 877 878 946 945 +f 878 879 947 946 +f 879 880 948 947 +f 880 881 949 948 +f 881 882 950 949 +f 882 883 951 950 +f 883 884 952 951 +f 884 885 953 952 +f 885 886 954 953 +f 886 819 887 954 +f 887 888 956 955 +f 888 889 957 956 +f 889 890 958 957 +f 890 891 959 958 +f 891 892 960 959 +f 892 893 961 960 +f 893 894 962 961 +f 894 895 963 962 +f 895 896 964 963 +f 896 897 965 964 +f 897 898 966 965 +f 898 899 967 966 +f 899 900 968 967 +f 900 901 969 968 +f 901 902 970 969 +f 902 903 971 970 +f 903 904 972 971 +f 904 905 973 972 +f 905 906 974 973 +f 906 907 975 974 +f 907 908 976 975 +f 908 909 977 976 +f 909 910 978 977 +f 910 911 979 978 +f 911 912 980 979 +f 912 913 981 980 +f 913 914 982 981 +f 914 915 983 982 +f 915 916 984 983 +f 916 917 985 984 +f 917 918 986 985 +f 918 919 987 986 +f 919 920 988 987 +f 920 921 989 988 +f 921 922 990 989 +f 922 923 991 990 +f 923 924 992 991 +f 924 925 993 992 +f 925 926 994 993 +f 926 927 995 994 +f 927 928 996 995 +f 928 929 997 996 +f 929 930 998 997 +f 930 931 999 998 +f 931 932 1000 999 +f 932 933 1001 1000 +f 933 934 1002 1001 +f 934 935 1003 1002 +f 935 936 1004 1003 +f 936 937 1005 1004 +f 937 938 1006 1005 +f 938 939 1007 1006 +f 939 940 1008 1007 +f 940 941 1009 1008 +f 941 942 1010 1009 +f 942 943 1011 1010 +f 943 944 1012 1011 +f 944 945 1013 1012 +f 945 946 1014 1013 +f 946 947 1015 1014 +f 947 948 1016 1015 +f 948 949 1017 1016 +f 949 950 1018 1017 +f 950 951 1019 1018 +f 951 952 1020 1019 +f 952 953 1021 1020 +f 953 954 1022 1021 +f 954 887 955 1022 +f 955 956 1024 1023 +f 956 957 1025 1024 +f 957 958 1026 1025 +f 958 959 1027 1026 +f 959 960 1028 1027 +f 960 961 1029 1028 +f 961 962 1030 1029 +f 962 963 1031 1030 +f 963 964 1032 1031 +f 964 965 1033 1032 +f 965 966 1034 1033 +f 966 967 1035 1034 +f 967 968 1036 1035 +f 968 969 1037 1036 +f 969 970 1038 1037 +f 970 971 1039 1038 +f 971 972 1040 1039 +f 972 973 1041 1040 +f 973 974 1042 1041 +f 974 975 1043 1042 +f 975 976 1044 1043 +f 976 977 1045 1044 +f 977 978 1046 1045 +f 978 979 1047 1046 +f 979 980 1048 1047 +f 980 981 1049 1048 +f 981 982 1050 1049 +f 982 983 1051 1050 +f 983 984 1052 1051 +f 984 985 1053 1052 +f 985 986 1054 1053 +f 986 987 1055 1054 +f 987 988 1056 1055 +f 988 989 1057 1056 +f 989 990 1058 1057 +f 990 991 1059 1058 +f 991 992 1060 1059 +f 992 993 1061 1060 +f 993 994 1062 1061 +f 994 995 1063 1062 +f 995 996 1064 1063 +f 996 997 1065 1064 +f 997 998 1066 1065 +f 998 999 1067 1066 +f 999 1000 1068 1067 +f 1000 1001 1069 1068 +f 1001 1002 1070 1069 +f 1002 1003 1071 1070 +f 1003 1004 1072 1071 +f 1004 1005 1073 1072 +f 1005 1006 1074 1073 +f 1006 1007 1075 1074 +f 1007 1008 1076 1075 +f 1008 1009 1077 1076 +f 1009 1010 1078 1077 +f 1010 1011 1079 1078 +f 1011 1012 1080 1079 +f 1012 1013 1081 1080 +f 1013 1014 1082 1081 +f 1014 1015 1083 1082 +f 1015 1016 1084 1083 +f 1016 1017 1085 1084 +f 1017 1018 1086 1085 +f 1018 1019 1087 1086 +f 1019 1020 1088 1087 +f 1020 1021 1089 1088 +f 1021 1022 1090 1089 +f 1022 955 1023 1090 +f 1023 1024 1092 1091 +f 1024 1025 1093 1092 +f 1025 1026 1094 1093 +f 1026 1027 1095 1094 +f 1027 1028 1096 1095 +f 1028 1029 1097 1096 +f 1029 1030 1098 1097 +f 1030 1031 1099 1098 +f 1031 1032 1100 1099 +f 1032 1033 1101 1100 +f 1033 1034 1102 1101 +f 1034 1035 1103 1102 +f 1035 1036 1104 1103 +f 1036 1037 1105 1104 +f 1037 1038 1106 1105 +f 1038 1039 1107 1106 +f 1039 1040 1108 1107 +f 1040 1041 1109 1108 +f 1041 1042 1110 1109 +f 1042 1043 1111 1110 +f 1043 1044 1112 1111 +f 1044 1045 1113 1112 +f 1045 1046 1114 1113 +f 1046 1047 1115 1114 +f 1047 1048 1116 1115 +f 1048 1049 1117 1116 +f 1049 1050 1118 1117 +f 1050 1051 1119 1118 +f 1051 1052 1120 1119 +f 1052 1053 1121 1120 +f 1053 1054 1122 1121 +f 1054 1055 1123 1122 +f 1055 1056 1124 1123 +f 1056 1057 1125 1124 +f 1057 1058 1126 1125 +f 1058 1059 1127 1126 +f 1059 1060 1128 1127 +f 1060 1061 1129 1128 +f 1061 1062 1130 1129 +f 1062 1063 1131 1130 +f 1063 1064 1132 1131 +f 1064 1065 1133 1132 +f 1065 1066 1134 1133 +f 1066 1067 1135 1134 +f 1067 1068 1136 1135 +f 1068 1069 1137 1136 +f 1069 1070 1138 1137 +f 1070 1071 1139 1138 +f 1071 1072 1140 1139 +f 1072 1073 1141 1140 +f 1073 1074 1142 1141 +f 1074 1075 1143 1142 +f 1075 1076 1144 1143 +f 1076 1077 1145 1144 +f 1077 1078 1146 1145 +f 1078 1079 1147 1146 +f 1079 1080 1148 1147 +f 1080 1081 1149 1148 +f 1081 1082 1150 1149 +f 1082 1083 1151 1150 +f 1083 1084 1152 1151 +f 1084 1085 1153 1152 +f 1085 1086 1154 1153 +f 1086 1087 1155 1154 +f 1087 1088 1156 1155 +f 1088 1089 1157 1156 +f 1089 1090 1158 1157 +f 1090 1023 1091 1158 +f 1091 1092 1160 1159 +f 1092 1093 1161 1160 +f 1093 1094 1162 1161 +f 1094 1095 1163 1162 +f 1095 1096 1164 1163 +f 1096 1097 1165 1164 +f 1097 1098 1166 1165 +f 1098 1099 1167 1166 +f 1099 1100 1168 1167 +f 1100 1101 1169 1168 +f 1101 1102 1170 1169 +f 1102 1103 1171 1170 +f 1103 1104 1172 1171 +f 1104 1105 1173 1172 +f 1105 1106 1174 1173 +f 1106 1107 1175 1174 +f 1107 1108 1176 1175 +f 1108 1109 1177 1176 +f 1109 1110 1178 1177 +f 1110 1111 1179 1178 +f 1111 1112 1180 1179 +f 1112 1113 1181 1180 +f 1113 1114 1182 1181 +f 1114 1115 1183 1182 +f 1115 1116 1184 1183 +f 1116 1117 1185 1184 +f 1117 1118 1186 1185 +f 1118 1119 1187 1186 +f 1119 1120 1188 1187 +f 1120 1121 1189 1188 +f 1121 1122 1190 1189 +f 1122 1123 1191 1190 +f 1123 1124 1192 1191 +f 1124 1125 1193 1192 +f 1125 1126 1194 1193 +f 1126 1127 1195 1194 +f 1127 1128 1196 1195 +f 1128 1129 1197 1196 +f 1129 1130 1198 1197 +f 1130 1131 1199 1198 +f 1131 1132 1200 1199 +f 1132 1133 1201 1200 +f 1133 1134 1202 1201 +f 1134 1135 1203 1202 +f 1135 1136 1204 1203 +f 1136 1137 1205 1204 +f 1137 1138 1206 1205 +f 1138 1139 1207 1206 +f 1139 1140 1208 1207 +f 1140 1141 1209 1208 +f 1141 1142 1210 1209 +f 1142 1143 1211 1210 +f 1143 1144 1212 1211 +f 1144 1145 1213 1212 +f 1145 1146 1214 1213 +f 1146 1147 1215 1214 +f 1147 1148 1216 1215 +f 1148 1149 1217 1216 +f 1149 1150 1218 1217 +f 1150 1151 1219 1218 +f 1151 1152 1220 1219 +f 1152 1153 1221 1220 +f 1153 1154 1222 1221 +f 1154 1155 1223 1222 +f 1155 1156 1224 1223 +f 1156 1157 1225 1224 +f 1157 1158 1226 1225 +f 1158 1091 1159 1226 +f 1159 1160 1228 1227 +f 1160 1161 1229 1228 +f 1161 1162 1230 1229 +f 1162 1163 1231 1230 +f 1163 1164 1232 1231 +f 1164 1165 1233 1232 +f 1165 1166 1234 1233 +f 1166 1167 1235 1234 +f 1167 1168 1236 1235 +f 1168 1169 1237 1236 +f 1169 1170 1238 1237 +f 1170 1171 1239 1238 +f 1171 1172 1240 1239 +f 1172 1173 1241 1240 +f 1173 1174 1242 1241 +f 1174 1175 1243 1242 +f 1175 1176 1244 1243 +f 1176 1177 1245 1244 +f 1177 1178 1246 1245 +f 1178 1179 1247 1246 +f 1179 1180 1248 1247 +f 1180 1181 1249 1248 +f 1181 1182 1250 1249 +f 1182 1183 1251 1250 +f 1183 1184 1252 1251 +f 1184 1185 1253 1252 +f 1185 1186 1254 1253 +f 1186 1187 1255 1254 +f 1187 1188 1256 1255 +f 1188 1189 1257 1256 +f 1189 1190 1258 1257 +f 1190 1191 1259 1258 +f 1191 1192 1260 1259 +f 1192 1193 1261 1260 +f 1193 1194 1262 1261 +f 1194 1195 1263 1262 +f 1195 1196 1264 1263 +f 1196 1197 1265 1264 +f 1197 1198 1266 1265 +f 1198 1199 1267 1266 +f 1199 1200 1268 1267 +f 1200 1201 1269 1268 +f 1201 1202 1270 1269 +f 1202 1203 1271 1270 +f 1203 1204 1272 1271 +f 1204 1205 1273 1272 +f 1205 1206 1274 1273 +f 1206 1207 1275 1274 +f 1207 1208 1276 1275 +f 1208 1209 1277 1276 +f 1209 1210 1278 1277 +f 1210 1211 1279 1278 +f 1211 1212 1280 1279 +f 1212 1213 1281 1280 +f 1213 1214 1282 1281 +f 1214 1215 1283 1282 +f 1215 1216 1284 1283 +f 1216 1217 1285 1284 +f 1217 1218 1286 1285 +f 1218 1219 1287 1286 +f 1219 1220 1288 1287 +f 1220 1221 1289 1288 +f 1221 1222 1290 1289 +f 1222 1223 1291 1290 +f 1223 1224 1292 1291 +f 1224 1225 1293 1292 +f 1225 1226 1294 1293 +f 1226 1159 1227 1294 +f 1227 1228 1296 1295 +f 1228 1229 1297 1296 +f 1229 1230 1298 1297 +f 1230 1231 1299 1298 +f 1231 1232 1300 1299 +f 1232 1233 1301 1300 +f 1233 1234 1302 1301 +f 1234 1235 1303 1302 +f 1235 1236 1304 1303 +f 1236 1237 1305 1304 +f 1237 1238 1306 1305 +f 1238 1239 1307 1306 +f 1239 1240 1308 1307 +f 1240 1241 1309 1308 +f 1241 1242 1310 1309 +f 1242 1243 1311 1310 +f 1243 1244 1312 1311 +f 1244 1245 1313 1312 +f 1245 1246 1314 1313 +f 1246 1247 1315 1314 +f 1247 1248 1316 1315 +f 1248 1249 1317 1316 +f 1249 1250 1318 1317 +f 1250 1251 1319 1318 +f 1251 1252 1320 1319 +f 1252 1253 1321 1320 +f 1253 1254 1322 1321 +f 1254 1255 1323 1322 +f 1255 1256 1324 1323 +f 1256 1257 1325 1324 +f 1257 1258 1326 1325 +f 1258 1259 1327 1326 +f 1259 1260 1328 1327 +f 1260 1261 1329 1328 +f 1261 1262 1330 1329 +f 1262 1263 1331 1330 +f 1263 1264 1332 1331 +f 1264 1265 1333 1332 +f 1265 1266 1334 1333 +f 1266 1267 1335 1334 +f 1267 1268 1336 1335 +f 1268 1269 1337 1336 +f 1269 1270 1338 1337 +f 1270 1271 1339 1338 +f 1271 1272 1340 1339 +f 1272 1273 1341 1340 +f 1273 1274 1342 1341 +f 1274 1275 1343 1342 +f 1275 1276 1344 1343 +f 1276 1277 1345 1344 +f 1277 1278 1346 1345 +f 1278 1279 1347 1346 +f 1279 1280 1348 1347 +f 1280 1281 1349 1348 +f 1281 1282 1350 1349 +f 1282 1283 1351 1350 +f 1283 1284 1352 1351 +f 1284 1285 1353 1352 +f 1285 1286 1354 1353 +f 1286 1287 1355 1354 +f 1287 1288 1356 1355 +f 1288 1289 1357 1356 +f 1289 1290 1358 1357 +f 1290 1291 1359 1358 +f 1291 1292 1360 1359 +f 1292 1293 1361 1360 +f 1293 1294 1362 1361 +f 1294 1227 1295 1362 +f 1295 1296 1364 1363 +f 1296 1297 1365 1364 +f 1297 1298 1366 1365 +f 1298 1299 1367 1366 +f 1299 1300 1368 1367 +f 1300 1301 1369 1368 +f 1301 1302 1370 1369 +f 1302 1303 1371 1370 +f 1303 1304 1372 1371 +f 1304 1305 1373 1372 +f 1305 1306 1374 1373 +f 1306 1307 1375 1374 +f 1307 1308 1376 1375 +f 1308 1309 1377 1376 +f 1309 1310 1378 1377 +f 1310 1311 1379 1378 +f 1311 1312 1380 1379 +f 1312 1313 1381 1380 +f 1313 1314 1382 1381 +f 1314 1315 1383 1382 +f 1315 1316 1384 1383 +f 1316 1317 1385 1384 +f 1317 1318 1386 1385 +f 1318 1319 1387 1386 +f 1319 1320 1388 1387 +f 1320 1321 1389 1388 +f 1321 1322 1390 1389 +f 1322 1323 1391 1390 +f 1323 1324 1392 1391 +f 1324 1325 1393 1392 +f 1325 1326 1394 1393 +f 1326 1327 1395 1394 +f 1327 1328 1396 1395 +f 1328 1329 1397 1396 +f 1329 1330 1398 1397 +f 1330 1331 1399 1398 +f 1331 1332 1400 1399 +f 1332 1333 1401 1400 +f 1333 1334 1402 1401 +f 1334 1335 1403 1402 +f 1335 1336 1404 1403 +f 1336 1337 1405 1404 +f 1337 1338 1406 1405 +f 1338 1339 1407 1406 +f 1339 1340 1408 1407 +f 1340 1341 1409 1408 +f 1341 1342 1410 1409 +f 1342 1343 1411 1410 +f 1343 1344 1412 1411 +f 1344 1345 1413 1412 +f 1345 1346 1414 1413 +f 1346 1347 1415 1414 +f 1347 1348 1416 1415 +f 1348 1349 1417 1416 +f 1349 1350 1418 1417 +f 1350 1351 1419 1418 +f 1351 1352 1420 1419 +f 1352 1353 1421 1420 +f 1353 1354 1422 1421 +f 1354 1355 1423 1422 +f 1355 1356 1424 1423 +f 1356 1357 1425 1424 +f 1357 1358 1426 1425 +f 1358 1359 1427 1426 +f 1359 1360 1428 1427 +f 1360 1361 1429 1428 +f 1361 1362 1430 1429 +f 1362 1295 1363 1430 +f 1363 1364 1432 1431 +f 1364 1365 1433 1432 +f 1365 1366 1434 1433 +f 1366 1367 1435 1434 +f 1367 1368 1436 1435 +f 1368 1369 1437 1436 +f 1369 1370 1438 1437 +f 1370 1371 1439 1438 +f 1371 1372 1440 1439 +f 1372 1373 1441 1440 +f 1373 1374 1442 1441 +f 1374 1375 1443 1442 +f 1375 1376 1444 1443 +f 1376 1377 1445 1444 +f 1377 1378 1446 1445 +f 1378 1379 1447 1446 +f 1379 1380 1448 1447 +f 1380 1381 1449 1448 +f 1381 1382 1450 1449 +f 1382 1383 1451 1450 +f 1383 1384 1452 1451 +f 1384 1385 1453 1452 +f 1385 1386 1454 1453 +f 1386 1387 1455 1454 +f 1387 1388 1456 1455 +f 1388 1389 1457 1456 +f 1389 1390 1458 1457 +f 1390 1391 1459 1458 +f 1391 1392 1460 1459 +f 1392 1393 1461 1460 +f 1393 1394 1462 1461 +f 1394 1395 1463 1462 +f 1395 1396 1464 1463 +f 1396 1397 1465 1464 +f 1397 1398 1466 1465 +f 1398 1399 1467 1466 +f 1399 1400 1468 1467 +f 1400 1401 1469 1468 +f 1401 1402 1470 1469 +f 1402 1403 1471 1470 +f 1403 1404 1472 1471 +f 1404 1405 1473 1472 +f 1405 1406 1474 1473 +f 1406 1407 1475 1474 +f 1407 1408 1476 1475 +f 1408 1409 1477 1476 +f 1409 1410 1478 1477 +f 1410 1411 1479 1478 +f 1411 1412 1480 1479 +f 1412 1413 1481 1480 +f 1413 1414 1482 1481 +f 1414 1415 1483 1482 +f 1415 1416 1484 1483 +f 1416 1417 1485 1484 +f 1417 1418 1486 1485 +f 1418 1419 1487 1486 +f 1419 1420 1488 1487 +f 1420 1421 1489 1488 +f 1421 1422 1490 1489 +f 1422 1423 1491 1490 +f 1423 1424 1492 1491 +f 1424 1425 1493 1492 +f 1425 1426 1494 1493 +f 1426 1427 1495 1494 +f 1427 1428 1496 1495 +f 1428 1429 1497 1496 +f 1429 1430 1498 1497 +f 1430 1363 1431 1498 +f 1431 1432 1500 1499 +f 1432 1433 1501 1500 +f 1433 1434 1502 1501 +f 1434 1435 1503 1502 +f 1435 1436 1504 1503 +f 1436 1437 1505 1504 +f 1437 1438 1506 1505 +f 1438 1439 1507 1506 +f 1439 1440 1508 1507 +f 1440 1441 1509 1508 +f 1441 1442 1510 1509 +f 1442 1443 1511 1510 +f 1443 1444 1512 1511 +f 1444 1445 1513 1512 +f 1445 1446 1514 1513 +f 1446 1447 1515 1514 +f 1447 1448 1516 1515 +f 1448 1449 1517 1516 +f 1449 1450 1518 1517 +f 1450 1451 1519 1518 +f 1451 1452 1520 1519 +f 1452 1453 1521 1520 +f 1453 1454 1522 1521 +f 1454 1455 1523 1522 +f 1455 1456 1524 1523 +f 1456 1457 1525 1524 +f 1457 1458 1526 1525 +f 1458 1459 1527 1526 +f 1459 1460 1528 1527 +f 1460 1461 1529 1528 +f 1461 1462 1530 1529 +f 1462 1463 1531 1530 +f 1463 1464 1532 1531 +f 1464 1465 1533 1532 +f 1465 1466 1534 1533 +f 1466 1467 1535 1534 +f 1467 1468 1536 1535 +f 1468 1469 1537 1536 +f 1469 1470 1538 1537 +f 1470 1471 1539 1538 +f 1471 1472 1540 1539 +f 1472 1473 1541 1540 +f 1473 1474 1542 1541 +f 1474 1475 1543 1542 +f 1475 1476 1544 1543 +f 1476 1477 1545 1544 +f 1477 1478 1546 1545 +f 1478 1479 1547 1546 +f 1479 1480 1548 1547 +f 1480 1481 1549 1548 +f 1481 1482 1550 1549 +f 1482 1483 1551 1550 +f 1483 1484 1552 1551 +f 1484 1485 1553 1552 +f 1485 1486 1554 1553 +f 1486 1487 1555 1554 +f 1487 1488 1556 1555 +f 1488 1489 1557 1556 +f 1489 1490 1558 1557 +f 1490 1491 1559 1558 +f 1491 1492 1560 1559 +f 1492 1493 1561 1560 +f 1493 1494 1562 1561 +f 1494 1495 1563 1562 +f 1495 1496 1564 1563 +f 1496 1497 1565 1564 +f 1497 1498 1566 1565 +f 1498 1431 1499 1566 +f 1499 1500 1568 1567 +f 1500 1501 1569 1568 +f 1501 1502 1570 1569 +f 1502 1503 1571 1570 +f 1503 1504 1572 1571 +f 1504 1505 1573 1572 +f 1505 1506 1574 1573 +f 1506 1507 1575 1574 +f 1507 1508 1576 1575 +f 1508 1509 1577 1576 +f 1509 1510 1578 1577 +f 1510 1511 1579 1578 +f 1511 1512 1580 1579 +f 1512 1513 1581 1580 +f 1513 1514 1582 1581 +f 1514 1515 1583 1582 +f 1515 1516 1584 1583 +f 1516 1517 1585 1584 +f 1517 1518 1586 1585 +f 1518 1519 1587 1586 +f 1519 1520 1588 1587 +f 1520 1521 1589 1588 +f 1521 1522 1590 1589 +f 1522 1523 1591 1590 +f 1523 1524 1592 1591 +f 1524 1525 1593 1592 +f 1525 1526 1594 1593 +f 1526 1527 1595 1594 +f 1527 1528 1596 1595 +f 1528 1529 1597 1596 +f 1529 1530 1598 1597 +f 1530 1531 1599 1598 +f 1531 1532 1600 1599 +f 1532 1533 1601 1600 +f 1533 1534 1602 1601 +f 1534 1535 1603 1602 +f 1535 1536 1604 1603 +f 1536 1537 1605 1604 +f 1537 1538 1606 1605 +f 1538 1539 1607 1606 +f 1539 1540 1608 1607 +f 1540 1541 1609 1608 +f 1541 1542 1610 1609 +f 1542 1543 1611 1610 +f 1543 1544 1612 1611 +f 1544 1545 1613 1612 +f 1545 1546 1614 1613 +f 1546 1547 1615 1614 +f 1547 1548 1616 1615 +f 1548 1549 1617 1616 +f 1549 1550 1618 1617 +f 1550 1551 1619 1618 +f 1551 1552 1620 1619 +f 1552 1553 1621 1620 +f 1553 1554 1622 1621 +f 1554 1555 1623 1622 +f 1555 1556 1624 1623 +f 1556 1557 1625 1624 +f 1557 1558 1626 1625 +f 1558 1559 1627 1626 +f 1559 1560 1628 1627 +f 1560 1561 1629 1628 +f 1561 1562 1630 1629 +f 1562 1563 1631 1630 +f 1563 1564 1632 1631 +f 1564 1565 1633 1632 +f 1565 1566 1634 1633 +f 1566 1499 1567 1634 +f 1567 1568 1636 1635 +f 1568 1569 1637 1636 +f 1569 1570 1638 1637 +f 1570 1571 1639 1638 +f 1571 1572 1640 1639 +f 1572 1573 1641 1640 +f 1573 1574 1642 1641 +f 1574 1575 1643 1642 +f 1575 1576 1644 1643 +f 1576 1577 1645 1644 +f 1577 1578 1646 1645 +f 1578 1579 1647 1646 +f 1579 1580 1648 1647 +f 1580 1581 1649 1648 +f 1581 1582 1650 1649 +f 1582 1583 1651 1650 +f 1583 1584 1652 1651 +f 1584 1585 1653 1652 +f 1585 1586 1654 1653 +f 1586 1587 1655 1654 +f 1587 1588 1656 1655 +f 1588 1589 1657 1656 +f 1589 1590 1658 1657 +f 1590 1591 1659 1658 +f 1591 1592 1660 1659 +f 1592 1593 1661 1660 +f 1593 1594 1662 1661 +f 1594 1595 1663 1662 +f 1595 1596 1664 1663 +f 1596 1597 1665 1664 +f 1597 1598 1666 1665 +f 1598 1599 1667 1666 +f 1599 1600 1668 1667 +f 1600 1601 1669 1668 +f 1601 1602 1670 1669 +f 1602 1603 1671 1670 +f 1603 1604 1672 1671 +f 1604 1605 1673 1672 +f 1605 1606 1674 1673 +f 1606 1607 1675 1674 +f 1607 1608 1676 1675 +f 1608 1609 1677 1676 +f 1609 1610 1678 1677 +f 1610 1611 1679 1678 +f 1611 1612 1680 1679 +f 1612 1613 1681 1680 +f 1613 1614 1682 1681 +f 1614 1615 1683 1682 +f 1615 1616 1684 1683 +f 1616 1617 1685 1684 +f 1617 1618 1686 1685 +f 1618 1619 1687 1686 +f 1619 1620 1688 1687 +f 1620 1621 1689 1688 +f 1621 1622 1690 1689 +f 1622 1623 1691 1690 +f 1623 1624 1692 1691 +f 1624 1625 1693 1692 +f 1625 1626 1694 1693 +f 1626 1627 1695 1694 +f 1627 1628 1696 1695 +f 1628 1629 1697 1696 +f 1629 1630 1698 1697 +f 1630 1631 1699 1698 +f 1631 1632 1700 1699 +f 1632 1633 1701 1700 +f 1633 1634 1702 1701 +f 1634 1567 1635 1702 +f 1635 1636 1704 1703 +f 1636 1637 1705 1704 +f 1637 1638 1706 1705 +f 1638 1639 1707 1706 +f 1639 1640 1708 1707 +f 1640 1641 1709 1708 +f 1641 1642 1710 1709 +f 1642 1643 1711 1710 +f 1643 1644 1712 1711 +f 1644 1645 1713 1712 +f 1645 1646 1714 1713 +f 1646 1647 1715 1714 +f 1647 1648 1716 1715 +f 1648 1649 1717 1716 +f 1649 1650 1718 1717 +f 1650 1651 1719 1718 +f 1651 1652 1720 1719 +f 1652 1653 1721 1720 +f 1653 1654 1722 1721 +f 1654 1655 1723 1722 +f 1655 1656 1724 1723 +f 1656 1657 1725 1724 +f 1657 1658 1726 1725 +f 1658 1659 1727 1726 +f 1659 1660 1728 1727 +f 1660 1661 1729 1728 +f 1661 1662 1730 1729 +f 1662 1663 1731 1730 +f 1663 1664 1732 1731 +f 1664 1665 1733 1732 +f 1665 1666 1734 1733 +f 1666 1667 1735 1734 +f 1667 1668 1736 1735 +f 1668 1669 1737 1736 +f 1669 1670 1738 1737 +f 1670 1671 1739 1738 +f 1671 1672 1740 1739 +f 1672 1673 1741 1740 +f 1673 1674 1742 1741 +f 1674 1675 1743 1742 +f 1675 1676 1744 1743 +f 1676 1677 1745 1744 +f 1677 1678 1746 1745 +f 1678 1679 1747 1746 +f 1679 1680 1748 1747 +f 1680 1681 1749 1748 +f 1681 1682 1750 1749 +f 1682 1683 1751 1750 +f 1683 1684 1752 1751 +f 1684 1685 1753 1752 +f 1685 1686 1754 1753 +f 1686 1687 1755 1754 +f 1687 1688 1756 1755 +f 1688 1689 1757 1756 +f 1689 1690 1758 1757 +f 1690 1691 1759 1758 +f 1691 1692 1760 1759 +f 1692 1693 1761 1760 +f 1693 1694 1762 1761 +f 1694 1695 1763 1762 +f 1695 1696 1764 1763 +f 1696 1697 1765 1764 +f 1697 1698 1766 1765 +f 1698 1699 1767 1766 +f 1699 1700 1768 1767 +f 1700 1701 1769 1768 +f 1701 1702 1770 1769 +f 1702 1635 1703 1770 +f 1703 1704 1772 1771 +f 1704 1705 1773 1772 +f 1705 1706 1774 1773 +f 1706 1707 1775 1774 +f 1707 1708 1776 1775 +f 1708 1709 1777 1776 +f 1709 1710 1778 1777 +f 1710 1711 1779 1778 +f 1711 1712 1780 1779 +f 1712 1713 1781 1780 +f 1713 1714 1782 1781 +f 1714 1715 1783 1782 +f 1715 1716 1784 1783 +f 1716 1717 1785 1784 +f 1717 1718 1786 1785 +f 1718 1719 1787 1786 +f 1719 1720 1788 1787 +f 1720 1721 1789 1788 +f 1721 1722 1790 1789 +f 1722 1723 1791 1790 +f 1723 1724 1792 1791 +f 1724 1725 1793 1792 +f 1725 1726 1794 1793 +f 1726 1727 1795 1794 +f 1727 1728 1796 1795 +f 1728 1729 1797 1796 +f 1729 1730 1798 1797 +f 1730 1731 1799 1798 +f 1731 1732 1800 1799 +f 1732 1733 1801 1800 +f 1733 1734 1802 1801 +f 1734 1735 1803 1802 +f 1735 1736 1804 1803 +f 1736 1737 1805 1804 +f 1737 1738 1806 1805 +f 1738 1739 1807 1806 +f 1739 1740 1808 1807 +f 1740 1741 1809 1808 +f 1741 1742 1810 1809 +f 1742 1743 1811 1810 +f 1743 1744 1812 1811 +f 1744 1745 1813 1812 +f 1745 1746 1814 1813 +f 1746 1747 1815 1814 +f 1747 1748 1816 1815 +f 1748 1749 1817 1816 +f 1749 1750 1818 1817 +f 1750 1751 1819 1818 +f 1751 1752 1820 1819 +f 1752 1753 1821 1820 +f 1753 1754 1822 1821 +f 1754 1755 1823 1822 +f 1755 1756 1824 1823 +f 1756 1757 1825 1824 +f 1757 1758 1826 1825 +f 1758 1759 1827 1826 +f 1759 1760 1828 1827 +f 1760 1761 1829 1828 +f 1761 1762 1830 1829 +f 1762 1763 1831 1830 +f 1763 1764 1832 1831 +f 1764 1765 1833 1832 +f 1765 1766 1834 1833 +f 1766 1767 1835 1834 +f 1767 1768 1836 1835 +f 1768 1769 1837 1836 +f 1769 1770 1838 1837 +f 1770 1703 1771 1838 +f 1771 1772 1840 1839 +f 1772 1773 1841 1840 +f 1773 1774 1842 1841 +f 1774 1775 1843 1842 +f 1775 1776 1844 1843 +f 1776 1777 1845 1844 +f 1777 1778 1846 1845 +f 1778 1779 1847 1846 +f 1779 1780 1848 1847 +f 1780 1781 1849 1848 +f 1781 1782 1850 1849 +f 1782 1783 1851 1850 +f 1783 1784 1852 1851 +f 1784 1785 1853 1852 +f 1785 1786 1854 1853 +f 1786 1787 1855 1854 +f 1787 1788 1856 1855 +f 1788 1789 1857 1856 +f 1789 1790 1858 1857 +f 1790 1791 1859 1858 +f 1791 1792 1860 1859 +f 1792 1793 1861 1860 +f 1793 1794 1862 1861 +f 1794 1795 1863 1862 +f 1795 1796 1864 1863 +f 1796 1797 1865 1864 +f 1797 1798 1866 1865 +f 1798 1799 1867 1866 +f 1799 1800 1868 1867 +f 1800 1801 1869 1868 +f 1801 1802 1870 1869 +f 1802 1803 1871 1870 +f 1803 1804 1872 1871 +f 1804 1805 1873 1872 +f 1805 1806 1874 1873 +f 1806 1807 1875 1874 +f 1807 1808 1876 1875 +f 1808 1809 1877 1876 +f 1809 1810 1878 1877 +f 1810 1811 1879 1878 +f 1811 1812 1880 1879 +f 1812 1813 1881 1880 +f 1813 1814 1882 1881 +f 1814 1815 1883 1882 +f 1815 1816 1884 1883 +f 1816 1817 1885 1884 +f 1817 1818 1886 1885 +f 1818 1819 1887 1886 +f 1819 1820 1888 1887 +f 1820 1821 1889 1888 +f 1821 1822 1890 1889 +f 1822 1823 1891 1890 +f 1823 1824 1892 1891 +f 1824 1825 1893 1892 +f 1825 1826 1894 1893 +f 1826 1827 1895 1894 +f 1827 1828 1896 1895 +f 1828 1829 1897 1896 +f 1829 1830 1898 1897 +f 1830 1831 1899 1898 +f 1831 1832 1900 1899 +f 1832 1833 1901 1900 +f 1833 1834 1902 1901 +f 1834 1835 1903 1902 +f 1835 1836 1904 1903 +f 1836 1837 1905 1904 +f 1837 1838 1906 1905 +f 1838 1771 1839 1906 +f 1839 1840 1908 1907 +f 1840 1841 1909 1908 +f 1841 1842 1910 1909 +f 1842 1843 1911 1910 +f 1843 1844 1912 1911 +f 1844 1845 1913 1912 +f 1845 1846 1914 1913 +f 1846 1847 1915 1914 +f 1847 1848 1916 1915 +f 1848 1849 1917 1916 +f 1849 1850 1918 1917 +f 1850 1851 1919 1918 +f 1851 1852 1920 1919 +f 1852 1853 1921 1920 +f 1853 1854 1922 1921 +f 1854 1855 1923 1922 +f 1855 1856 1924 1923 +f 1856 1857 1925 1924 +f 1857 1858 1926 1925 +f 1858 1859 1927 1926 +f 1859 1860 1928 1927 +f 1860 1861 1929 1928 +f 1861 1862 1930 1929 +f 1862 1863 1931 1930 +f 1863 1864 1932 1931 +f 1864 1865 1933 1932 +f 1865 1866 1934 1933 +f 1866 1867 1935 1934 +f 1867 1868 1936 1935 +f 1868 1869 1937 1936 +f 1869 1870 1938 1937 +f 1870 1871 1939 1938 +f 1871 1872 1940 1939 +f 1872 1873 1941 1940 +f 1873 1874 1942 1941 +f 1874 1875 1943 1942 +f 1875 1876 1944 1943 +f 1876 1877 1945 1944 +f 1877 1878 1946 1945 +f 1878 1879 1947 1946 +f 1879 1880 1948 1947 +f 1880 1881 1949 1948 +f 1881 1882 1950 1949 +f 1882 1883 1951 1950 +f 1883 1884 1952 1951 +f 1884 1885 1953 1952 +f 1885 1886 1954 1953 +f 1886 1887 1955 1954 +f 1887 1888 1956 1955 +f 1888 1889 1957 1956 +f 1889 1890 1958 1957 +f 1890 1891 1959 1958 +f 1891 1892 1960 1959 +f 1892 1893 1961 1960 +f 1893 1894 1962 1961 +f 1894 1895 1963 1962 +f 1895 1896 1964 1963 +f 1896 1897 1965 1964 +f 1897 1898 1966 1965 +f 1898 1899 1967 1966 +f 1899 1900 1968 1967 +f 1900 1901 1969 1968 +f 1901 1902 1970 1969 +f 1902 1903 1971 1970 +f 1903 1904 1972 1971 +f 1904 1905 1973 1972 +f 1905 1906 1974 1973 +f 1906 1839 1907 1974 +f 1907 1908 1976 1975 +f 1908 1909 1977 1976 +f 1909 1910 1978 1977 +f 1910 1911 1979 1978 +f 1911 1912 1980 1979 +f 1912 1913 1981 1980 +f 1913 1914 1982 1981 +f 1914 1915 1983 1982 +f 1915 1916 1984 1983 +f 1916 1917 1985 1984 +f 1917 1918 1986 1985 +f 1918 1919 1987 1986 +f 1919 1920 1988 1987 +f 1920 1921 1989 1988 +f 1921 1922 1990 1989 +f 1922 1923 1991 1990 +f 1923 1924 1992 1991 +f 1924 1925 1993 1992 +f 1925 1926 1994 1993 +f 1926 1927 1995 1994 +f 1927 1928 1996 1995 +f 1928 1929 1997 1996 +f 1929 1930 1998 1997 +f 1930 1931 1999 1998 +f 1931 1932 2000 1999 +f 1932 1933 2001 2000 +f 1933 1934 2002 2001 +f 1934 1935 2003 2002 +f 1935 1936 2004 2003 +f 1936 1937 2005 2004 +f 1937 1938 2006 2005 +f 1938 1939 2007 2006 +f 1939 1940 2008 2007 +f 1940 1941 2009 2008 +f 1941 1942 2010 2009 +f 1942 1943 2011 2010 +f 1943 1944 2012 2011 +f 1944 1945 2013 2012 +f 1945 1946 2014 2013 +f 1946 1947 2015 2014 +f 1947 1948 2016 2015 +f 1948 1949 2017 2016 +f 1949 1950 2018 2017 +f 1950 1951 2019 2018 +f 1951 1952 2020 2019 +f 1952 1953 2021 2020 +f 1953 1954 2022 2021 +f 1954 1955 2023 2022 +f 1955 1956 2024 2023 +f 1956 1957 2025 2024 +f 1957 1958 2026 2025 +f 1958 1959 2027 2026 +f 1959 1960 2028 2027 +f 1960 1961 2029 2028 +f 1961 1962 2030 2029 +f 1962 1963 2031 2030 +f 1963 1964 2032 2031 +f 1964 1965 2033 2032 +f 1965 1966 2034 2033 +f 1966 1967 2035 2034 +f 1967 1968 2036 2035 +f 1968 1969 2037 2036 +f 1969 1970 2038 2037 +f 1970 1971 2039 2038 +f 1971 1972 2040 2039 +f 1972 1973 2041 2040 +f 1973 1974 2042 2041 +f 1974 1907 1975 2042 +f 1975 1976 2044 2043 +f 1976 1977 2045 2044 +f 1977 1978 2046 2045 +f 1978 1979 2047 2046 +f 1979 1980 2048 2047 +f 1980 1981 2049 2048 +f 1981 1982 2050 2049 +f 1982 1983 2051 2050 +f 1983 1984 2052 2051 +f 1984 1985 2053 2052 +f 1985 1986 2054 2053 +f 1986 1987 2055 2054 +f 1987 1988 2056 2055 +f 1988 1989 2057 2056 +f 1989 1990 2058 2057 +f 1990 1991 2059 2058 +f 1991 1992 2060 2059 +f 1992 1993 2061 2060 +f 1993 1994 2062 2061 +f 1994 1995 2063 2062 +f 1995 1996 2064 2063 +f 1996 1997 2065 2064 +f 1997 1998 2066 2065 +f 1998 1999 2067 2066 +f 1999 2000 2068 2067 +f 2000 2001 2069 2068 +f 2001 2002 2070 2069 +f 2002 2003 2071 2070 +f 2003 2004 2072 2071 +f 2004 2005 2073 2072 +f 2005 2006 2074 2073 +f 2006 2007 2075 2074 +f 2007 2008 2076 2075 +f 2008 2009 2077 2076 +f 2009 2010 2078 2077 +f 2010 2011 2079 2078 +f 2011 2012 2080 2079 +f 2012 2013 2081 2080 +f 2013 2014 2082 2081 +f 2014 2015 2083 2082 +f 2015 2016 2084 2083 +f 2016 2017 2085 2084 +f 2017 2018 2086 2085 +f 2018 2019 2087 2086 +f 2019 2020 2088 2087 +f 2020 2021 2089 2088 +f 2021 2022 2090 2089 +f 2022 2023 2091 2090 +f 2023 2024 2092 2091 +f 2024 2025 2093 2092 +f 2025 2026 2094 2093 +f 2026 2027 2095 2094 +f 2027 2028 2096 2095 +f 2028 2029 2097 2096 +f 2029 2030 2098 2097 +f 2030 2031 2099 2098 +f 2031 2032 2100 2099 +f 2032 2033 2101 2100 +f 2033 2034 2102 2101 +f 2034 2035 2103 2102 +f 2035 2036 2104 2103 +f 2036 2037 2105 2104 +f 2037 2038 2106 2105 +f 2038 2039 2107 2106 +f 2039 2040 2108 2107 +f 2040 2041 2109 2108 +f 2041 2042 2110 2109 +f 2042 1975 2043 2110 +f 2043 2044 2112 2111 +f 2044 2045 2113 2112 +f 2045 2046 2114 2113 +f 2046 2047 2115 2114 +f 2047 2048 2116 2115 +f 2048 2049 2117 2116 +f 2049 2050 2118 2117 +f 2050 2051 2119 2118 +f 2051 2052 2120 2119 +f 2052 2053 2121 2120 +f 2053 2054 2122 2121 +f 2054 2055 2123 2122 +f 2055 2056 2124 2123 +f 2056 2057 2125 2124 +f 2057 2058 2126 2125 +f 2058 2059 2127 2126 +f 2059 2060 2128 2127 +f 2060 2061 2129 2128 +f 2061 2062 2130 2129 +f 2062 2063 2131 2130 +f 2063 2064 2132 2131 +f 2064 2065 2133 2132 +f 2065 2066 2134 2133 +f 2066 2067 2135 2134 +f 2067 2068 2136 2135 +f 2068 2069 2137 2136 +f 2069 2070 2138 2137 +f 2070 2071 2139 2138 +f 2071 2072 2140 2139 +f 2072 2073 2141 2140 +f 2073 2074 2142 2141 +f 2074 2075 2143 2142 +f 2075 2076 2144 2143 +f 2076 2077 2145 2144 +f 2077 2078 2146 2145 +f 2078 2079 2147 2146 +f 2079 2080 2148 2147 +f 2080 2081 2149 2148 +f 2081 2082 2150 2149 +f 2082 2083 2151 2150 +f 2083 2084 2152 2151 +f 2084 2085 2153 2152 +f 2085 2086 2154 2153 +f 2086 2087 2155 2154 +f 2087 2088 2156 2155 +f 2088 2089 2157 2156 +f 2089 2090 2158 2157 +f 2090 2091 2159 2158 +f 2091 2092 2160 2159 +f 2092 2093 2161 2160 +f 2093 2094 2162 2161 +f 2094 2095 2163 2162 +f 2095 2096 2164 2163 +f 2096 2097 2165 2164 +f 2097 2098 2166 2165 +f 2098 2099 2167 2166 +f 2099 2100 2168 2167 +f 2100 2101 2169 2168 +f 2101 2102 2170 2169 +f 2102 2103 2171 2170 +f 2103 2104 2172 2171 +f 2104 2105 2173 2172 +f 2105 2106 2174 2173 +f 2106 2107 2175 2174 +f 2107 2108 2176 2175 +f 2108 2109 2177 2176 +f 2109 2110 2178 2177 +f 2110 2043 2111 2178 +f 2111 2112 2180 2179 +f 2112 2113 2181 2180 +f 2113 2114 2182 2181 +f 2114 2115 2183 2182 +f 2115 2116 2184 2183 +f 2116 2117 2185 2184 +f 2117 2118 2186 2185 +f 2118 2119 2187 2186 +f 2119 2120 2188 2187 +f 2120 2121 2189 2188 +f 2121 2122 2190 2189 +f 2122 2123 2191 2190 +f 2123 2124 2192 2191 +f 2124 2125 2193 2192 +f 2125 2126 2194 2193 +f 2126 2127 2195 2194 +f 2127 2128 2196 2195 +f 2128 2129 2197 2196 +f 2129 2130 2198 2197 +f 2130 2131 2199 2198 +f 2131 2132 2200 2199 +f 2132 2133 2201 2200 +f 2133 2134 2202 2201 +f 2134 2135 2203 2202 +f 2135 2136 2204 2203 +f 2136 2137 2205 2204 +f 2137 2138 2206 2205 +f 2138 2139 2207 2206 +f 2139 2140 2208 2207 +f 2140 2141 2209 2208 +f 2141 2142 2210 2209 +f 2142 2143 2211 2210 +f 2143 2144 2212 2211 +f 2144 2145 2213 2212 +f 2145 2146 2214 2213 +f 2146 2147 2215 2214 +f 2147 2148 2216 2215 +f 2148 2149 2217 2216 +f 2149 2150 2218 2217 +f 2150 2151 2219 2218 +f 2151 2152 2220 2219 +f 2152 2153 2221 2220 +f 2153 2154 2222 2221 +f 2154 2155 2223 2222 +f 2155 2156 2224 2223 +f 2156 2157 2225 2224 +f 2157 2158 2226 2225 +f 2158 2159 2227 2226 +f 2159 2160 2228 2227 +f 2160 2161 2229 2228 +f 2161 2162 2230 2229 +f 2162 2163 2231 2230 +f 2163 2164 2232 2231 +f 2164 2165 2233 2232 +f 2165 2166 2234 2233 +f 2166 2167 2235 2234 +f 2167 2168 2236 2235 +f 2168 2169 2237 2236 +f 2169 2170 2238 2237 +f 2170 2171 2239 2238 +f 2171 2172 2240 2239 +f 2172 2173 2241 2240 +f 2173 2174 2242 2241 +f 2174 2175 2243 2242 +f 2175 2176 2244 2243 +f 2176 2177 2245 2244 +f 2177 2178 2246 2245 +f 2178 2111 2179 2246 +f 2179 2180 2248 2247 +f 2180 2181 2249 2248 +f 2181 2182 2250 2249 +f 2182 2183 2251 2250 +f 2183 2184 2252 2251 +f 2184 2185 2253 2252 +f 2185 2186 2254 2253 +f 2186 2187 2255 2254 +f 2187 2188 2256 2255 +f 2188 2189 2257 2256 +f 2189 2190 2258 2257 +f 2190 2191 2259 2258 +f 2191 2192 2260 2259 +f 2192 2193 2261 2260 +f 2193 2194 2262 2261 +f 2194 2195 2263 2262 +f 2195 2196 2264 2263 +f 2196 2197 2265 2264 +f 2197 2198 2266 2265 +f 2198 2199 2267 2266 +f 2199 2200 2268 2267 +f 2200 2201 2269 2268 +f 2201 2202 2270 2269 +f 2202 2203 2271 2270 +f 2203 2204 2272 2271 +f 2204 2205 2273 2272 +f 2205 2206 2274 2273 +f 2206 2207 2275 2274 +f 2207 2208 2276 2275 +f 2208 2209 2277 2276 +f 2209 2210 2278 2277 +f 2210 2211 2279 2278 +f 2211 2212 2280 2279 +f 2212 2213 2281 2280 +f 2213 2214 2282 2281 +f 2214 2215 2283 2282 +f 2215 2216 2284 2283 +f 2216 2217 2285 2284 +f 2217 2218 2286 2285 +f 2218 2219 2287 2286 +f 2219 2220 2288 2287 +f 2220 2221 2289 2288 +f 2221 2222 2290 2289 +f 2222 2223 2291 2290 +f 2223 2224 2292 2291 +f 2224 2225 2293 2292 +f 2225 2226 2294 2293 +f 2226 2227 2295 2294 +f 2227 2228 2296 2295 +f 2228 2229 2297 2296 +f 2229 2230 2298 2297 +f 2230 2231 2299 2298 +f 2231 2232 2300 2299 +f 2232 2233 2301 2300 +f 2233 2234 2302 2301 +f 2234 2235 2303 2302 +f 2235 2236 2304 2303 +f 2236 2237 2305 2304 +f 2237 2238 2306 2305 +f 2238 2239 2307 2306 +f 2239 2240 2308 2307 +f 2240 2241 2309 2308 +f 2241 2242 2310 2309 +f 2242 2243 2311 2310 +f 2243 2244 2312 2311 +f 2244 2245 2313 2312 +f 2245 2246 2314 2313 +f 2246 2179 2247 2314 +f 1 4 3 +f 2 2247 2248 +f 1 5 4 +f 2 2248 2249 +f 1 6 5 +f 2 2249 2250 +f 1 7 6 +f 2 2250 2251 +f 1 8 7 +f 2 2251 2252 +f 1 9 8 +f 2 2252 2253 +f 1 10 9 +f 2 2253 2254 +f 1 11 10 +f 2 2254 2255 +f 1 12 11 +f 2 2255 2256 +f 1 13 12 +f 2 2256 2257 +f 1 14 13 +f 2 2257 2258 +f 1 15 14 +f 2 2258 2259 +f 1 16 15 +f 2 2259 2260 +f 1 17 16 +f 2 2260 2261 +f 1 18 17 +f 2 2261 2262 +f 1 19 18 +f 2 2262 2263 +f 1 20 19 +f 2 2263 2264 +f 1 21 20 +f 2 2264 2265 +f 1 22 21 +f 2 2265 2266 +f 1 23 22 +f 2 2266 2267 +f 1 24 23 +f 2 2267 2268 +f 1 25 24 +f 2 2268 2269 +f 1 26 25 +f 2 2269 2270 +f 1 27 26 +f 2 2270 2271 +f 1 28 27 +f 2 2271 2272 +f 1 29 28 +f 2 2272 2273 +f 1 30 29 +f 2 2273 2274 +f 1 31 30 +f 2 2274 2275 +f 1 32 31 +f 2 2275 2276 +f 1 33 32 +f 2 2276 2277 +f 1 34 33 +f 2 2277 2278 +f 1 35 34 +f 2 2278 2279 +f 1 36 35 +f 2 2279 2280 +f 1 37 36 +f 2 2280 2281 +f 1 38 37 +f 2 2281 2282 +f 1 39 38 +f 2 2282 2283 +f 1 40 39 +f 2 2283 2284 +f 1 41 40 +f 2 2284 2285 +f 1 42 41 +f 2 2285 2286 +f 1 43 42 +f 2 2286 2287 +f 1 44 43 +f 2 2287 2288 +f 1 45 44 +f 2 2288 2289 +f 1 46 45 +f 2 2289 2290 +f 1 47 46 +f 2 2290 2291 +f 1 48 47 +f 2 2291 2292 +f 1 49 48 +f 2 2292 2293 +f 1 50 49 +f 2 2293 2294 +f 1 51 50 +f 2 2294 2295 +f 1 52 51 +f 2 2295 2296 +f 1 53 52 +f 2 2296 2297 +f 1 54 53 +f 2 2297 2298 +f 1 55 54 +f 2 2298 2299 +f 1 56 55 +f 2 2299 2300 +f 1 57 56 +f 2 2300 2301 +f 1 58 57 +f 2 2301 2302 +f 1 59 58 +f 2 2302 2303 +f 1 60 59 +f 2 2303 2304 +f 1 61 60 +f 2 2304 2305 +f 1 62 61 +f 2 2305 2306 +f 1 63 62 +f 2 2306 2307 +f 1 64 63 +f 2 2307 2308 +f 1 65 64 +f 2 2308 2309 +f 1 66 65 +f 2 2309 2310 +f 1 67 66 +f 2 2310 2311 +f 1 68 67 +f 2 2311 2312 +f 1 69 68 +f 2 2312 2313 +f 1 70 69 +f 2 2313 2314 +f 1 3 70 +f 2 2314 2247 diff --git a/data/spheres/18.obj b/data/spheres/18.obj new file mode 100644 index 0000000..a77136d --- /dev/null +++ b/data/spheres/18.obj @@ -0,0 +1,5258 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 8.48059 99.6397 5.88009e-39 +v 8.44831 99.6397 0.739131 +v 8.35175 99.6397 1.47264 +v 8.19162 99.6397 2.19494 +v 7.96914 99.6397 2.90053 +v 7.68602 99.6397 3.58405 +v 7.3444 99.6397 4.24029 +v 6.94689 99.6397 4.86426 +v 6.49651 99.6397 5.45121 +v 5.99668 99.6397 5.99668 +v 5.45122 99.6397 6.4965 +v 4.86427 99.6397 6.94689 +v 4.2403 99.6397 7.3444 +v 3.58406 99.6397 7.68602 +v 2.90054 99.6397 7.96914 +v 2.19495 99.6397 8.19162 +v 1.47265 99.6397 8.35175 +v 0.73914 99.6397 8.44831 +v 9.73895e-06 99.6397 8.48059 +v -0.739122 99.6397 8.44832 +v -1.47263 99.6397 8.35175 +v -2.19493 99.6397 8.19162 +v -2.90052 99.6397 7.96915 +v -3.58404 99.6397 7.68603 +v -4.24028 99.6397 7.34441 +v -4.86425 99.6397 6.9469 +v -5.4512 99.6397 6.49651 +v -5.99667 99.6397 5.99669 +v -6.4965 99.6397 5.45123 +v -6.94688 99.6397 4.86428 +v -7.34439 99.6397 4.24031 +v -7.68601 99.6397 3.58407 +v -7.96914 99.6397 2.90055 +v -8.19161 99.6397 2.19495 +v -8.35174 99.6397 1.47266 +v -8.44831 99.6397 0.739151 +v -8.48059 99.6397 1.94779e-05 +v -8.44832 99.6397 -0.739112 +v -8.35175 99.6397 -1.47262 +v -8.19162 99.6397 -2.19492 +v -7.96915 99.6397 -2.90051 +v -7.68603 99.6397 -3.58403 +v -7.34441 99.6397 -4.24027 +v -6.9469 99.6397 -4.86425 +v -6.49652 99.6397 -5.4512 +v -5.9967 99.6397 -5.99666 +v -5.45123 99.6397 -6.49649 +v -4.86428 99.6397 -6.94688 +v -4.24031 99.6397 -7.34439 +v -3.58408 99.6397 -7.68601 +v -2.90056 99.6397 -7.96913 +v -2.19496 99.6397 -8.19161 +v -1.47267 99.6397 -8.35174 +v -0.73916 99.6397 -8.44831 +v -2.82059e-05 99.6397 -8.48059 +v 0.739104 99.6397 -8.44832 +v 1.47261 99.6397 -8.35175 +v 2.19491 99.6397 -8.19162 +v 2.9005 99.6397 -7.96915 +v 3.58402 99.6397 -7.68604 +v 4.24026 99.6397 -7.34442 +v 4.86424 99.6397 -6.94691 +v 5.45119 99.6397 -6.49653 +v 5.99666 99.6397 -5.9967 +v 6.49648 99.6397 -5.45124 +v 6.94687 99.6397 -4.86429 +v 7.34439 99.6397 -4.24032 +v 7.68601 99.6397 -3.58408 +v 7.96913 99.6397 -2.90056 +v 8.19161 99.6397 -2.19497 +v 8.35174 99.6397 -1.47268 +v 8.44831 99.6397 -0.73917 +v 16.9001 98.5616 5.88009e-39 +v 16.8358 98.5616 1.47294 +v 16.6433 98.5616 2.93466 +v 16.3242 98.5616 4.37406 +v 15.8809 98.5616 5.78016 +v 15.3167 98.5616 7.14227 +v 14.6359 98.5616 8.45003 +v 13.8437 98.5616 9.69348 +v 12.9462 98.5616 10.8631 +v 11.9502 98.5616 11.9501 +v 10.8632 98.5616 12.9462 +v 9.69349 98.5616 13.8437 +v 8.45005 98.5616 14.6359 +v 7.14229 98.5616 15.3167 +v 5.78018 98.5616 15.8809 +v 4.37408 98.5616 16.3242 +v 2.93468 98.5616 16.6433 +v 1.47296 98.5616 16.8358 +v 1.94077e-05 98.5616 16.9001 +v -1.47292 98.5616 16.8358 +v -2.93464 98.5616 16.6433 +v -4.37404 98.5616 16.3242 +v -5.78014 98.5616 15.8809 +v -7.14226 98.5616 15.3167 +v -8.45002 98.5616 14.6359 +v -9.69346 98.5616 13.8437 +v -10.8631 98.5616 12.9462 +v -11.9501 98.5616 11.9502 +v -12.9462 98.5616 10.8632 +v -13.8437 98.5616 9.69351 +v -14.6359 98.5616 8.45006 +v -15.3167 98.5616 7.14231 +v -15.8809 98.5616 5.7802 +v -16.3242 98.5616 4.37409 +v -16.6433 98.5616 2.9347 +v -16.8358 98.5616 1.47298 +v -16.9001 98.5616 3.88155e-05 +v -16.8358 98.5616 -1.4729 +v -16.6433 98.5616 -2.93463 +v -16.3242 98.5616 -4.37402 +v -15.8809 98.5616 -5.78012 +v -15.3167 98.5616 -7.14224 +v -14.6359 98.5616 -8.45 +v -13.8438 98.5616 -9.69345 +v -12.9462 98.5616 -10.8631 +v -11.9502 98.5616 -11.9501 +v -10.8632 98.5616 -12.9462 +v -9.69352 98.5616 -13.8437 +v -8.45008 98.5616 -14.6359 +v -7.14233 98.5616 -15.3166 +v -5.78022 98.5616 -15.8809 +v -4.37411 98.5616 -16.3242 +v -2.93472 98.5616 -16.6433 +v -1.47299 98.5616 -16.8358 +v -5.62085e-05 98.5616 -16.9001 +v 1.47288 98.5616 -16.8358 +v 2.93461 98.5616 -16.6433 +v 4.374 98.5616 -16.3242 +v 5.78011 98.5616 -15.8809 +v 7.14222 98.5616 -15.3167 +v 8.44998 98.5616 -14.6359 +v 9.69343 98.5616 -13.8438 +v 10.8631 98.5616 -12.9462 +v 11.9501 98.5616 -11.9502 +v 12.9462 98.5616 -10.8632 +v 13.8437 98.5616 -9.69354 +v 14.6359 98.5616 -8.45009 +v 15.3166 98.5616 -7.14234 +v 15.8808 98.5616 -5.78023 +v 16.3242 98.5616 -4.37413 +v 16.6433 98.5616 -2.93474 +v 16.8358 98.5616 -1.47302 +v 25.1978 96.7733 5.88009e-39 +v 25.1019 96.7733 2.19613 +v 24.815 96.7733 4.37555 +v 24.3392 96.7733 6.52166 +v 23.6782 96.7733 8.61814 +v 22.837 96.7733 10.649 +v 21.8219 96.7733 12.5989 +v 20.6408 96.7733 14.4528 +v 19.3026 96.7733 16.1968 +v 17.8175 96.7733 17.8175 +v 16.1968 96.7733 19.3026 +v 14.4529 96.7733 20.6408 +v 12.5989 96.7733 21.8219 +v 10.6491 96.7733 22.8369 +v 8.61817 96.7733 23.6782 +v 6.52169 96.7733 24.3392 +v 4.37557 96.7733 24.815 +v 2.19616 96.7733 25.1019 +v 2.89367e-05 96.7733 25.1978 +v -2.1961 96.7733 25.1019 +v -4.37552 96.7733 24.815 +v -6.52164 96.7733 24.3392 +v -8.61812 96.7733 23.6782 +v -10.649 96.7733 22.837 +v -12.5989 96.7733 21.8219 +v -14.4528 96.7733 20.6408 +v -16.1968 96.7733 19.3027 +v -17.8175 96.7733 17.8176 +v -19.3026 96.7733 16.1969 +v -20.6408 96.7733 14.4529 +v -21.8219 96.7733 12.5989 +v -22.8369 96.7733 10.6491 +v -23.6782 96.7733 8.6182 +v -24.3392 96.7733 6.52172 +v -24.815 96.7733 4.3756 +v -25.1019 96.7733 2.19619 +v -25.1978 96.7733 5.78733e-05 +v -25.1019 96.7733 -2.19607 +v -24.815 96.7733 -4.37549 +v -24.3392 96.7733 -6.52161 +v -23.6782 96.7733 -8.61809 +v -22.837 96.7733 -10.649 +v -21.822 96.7733 -12.5988 +v -20.6409 96.7733 -14.4528 +v -19.3027 96.7733 -16.1968 +v -17.8176 96.7733 -17.8175 +v -16.1969 96.7733 -19.3026 +v -14.4529 96.7733 -20.6408 +v -12.599 96.7733 -21.8219 +v -10.6491 96.7733 -22.8369 +v -8.61823 96.7733 -23.6781 +v -6.52175 96.7733 -24.3392 +v -4.37563 96.7733 -24.815 +v -2.19621 96.7733 -25.1019 +v -8.38062e-05 96.7733 -25.1978 +v 2.19605 96.7733 -25.1019 +v 4.37547 96.7733 -24.815 +v 6.52159 96.7733 -24.3392 +v 8.61807 96.7733 -23.6782 +v 10.649 96.7733 -22.837 +v 12.5988 96.7733 -21.822 +v 14.4528 96.7733 -20.6409 +v 16.1968 96.7733 -19.3027 +v 17.8175 96.7733 -17.8176 +v 19.3026 96.7733 -16.1969 +v 20.6408 96.7733 -14.4529 +v 21.8219 96.7733 -12.599 +v 22.8369 96.7733 -10.6491 +v 23.6781 96.7733 -8.61825 +v 24.3392 96.7733 -6.52177 +v 24.815 96.7733 -4.37566 +v 25.1019 96.7733 -2.19625 +v 33.314 94.2878 5.88009e-39 +v 33.1872 94.2878 2.9035 +v 32.8078 94.2878 5.7849 +v 32.1788 94.2878 8.62228 +v 31.3049 94.2878 11.394 +v 30.1927 94.2878 14.0791 +v 28.8507 94.2878 16.657 +v 27.2892 94.2878 19.1081 +v 25.52 94.2878 21.4138 +v 23.5565 94.2878 23.5565 +v 21.4138 94.2878 25.52 +v 19.1081 94.2878 27.2892 +v 16.657 94.2878 28.8507 +v 14.0791 94.2878 30.1927 +v 11.3941 94.2878 31.3049 +v 8.62232 94.2878 32.1788 +v 5.78494 94.2878 32.8078 +v 2.90354 94.2878 33.1872 +v 3.82571e-05 94.2878 33.314 +v -2.90346 94.2878 33.1872 +v -5.78486 94.2878 32.8078 +v -8.62224 94.2878 32.1788 +v -11.394 94.2878 31.3049 +v -14.079 94.2878 30.1927 +v -16.6569 94.2878 28.8508 +v -19.1081 94.2878 27.2892 +v -21.4138 94.2878 25.52 +v -23.5565 94.2878 23.5566 +v -25.5199 94.2878 21.4138 +v -27.2892 94.2878 19.1081 +v -28.8507 94.2878 16.657 +v -30.1927 94.2878 14.0791 +v -31.3049 94.2878 11.3941 +v -32.1788 94.2878 8.62235 +v -32.8078 94.2878 5.78497 +v -33.1872 94.2878 2.90358 +v -33.314 94.2878 7.65143e-05 +v -33.1872 94.2878 -2.90343 +v -32.8079 94.2878 -5.78483 +v -32.1788 94.2878 -8.62221 +v -31.3049 94.2878 -11.394 +v -30.1927 94.2878 -14.079 +v -28.8508 94.2878 -16.6569 +v -27.2892 94.2878 -19.108 +v -25.52 94.2878 -21.4137 +v -23.5566 94.2878 -23.5565 +v -21.4139 94.2878 -25.5199 +v -19.1082 94.2878 -27.2891 +v -16.6571 94.2878 -28.8507 +v -14.0792 94.2878 -30.1926 +v -11.3941 94.2878 -31.3048 +v -8.62239 94.2878 -32.1788 +v -5.78502 94.2878 -32.8078 +v -2.90361 94.2878 -33.1872 +v -0.0001108 94.2878 -33.314 +v 2.90339 94.2878 -33.1872 +v 5.7848 94.2878 -32.8079 +v 8.62218 94.2878 -32.1788 +v 11.3939 94.2878 -31.3049 +v 14.079 94.2878 -30.1928 +v 16.6569 94.2878 -28.8508 +v 19.108 94.2878 -27.2893 +v 21.4137 94.2878 -25.5201 +v 23.5564 94.2878 -23.5566 +v 25.5199 94.2878 -21.4139 +v 27.2891 94.2878 -19.1082 +v 28.8507 94.2878 -16.6571 +v 30.1926 94.2878 -14.0792 +v 31.3048 94.2878 -11.3942 +v 32.1788 94.2878 -8.62242 +v 32.8078 94.2878 -5.78506 +v 33.1872 94.2878 -2.90365 +v 41.1901 91.1229 5.88009e-39 +v 41.0334 91.1229 3.58995 +v 40.5643 91.1229 7.15258 +v 39.7866 91.1229 10.6608 +v 38.706 91.1229 14.0878 +v 37.3309 91.1229 17.4077 +v 35.6717 91.1229 20.595 +v 33.741 91.1229 23.6257 +v 31.5535 91.1229 26.4765 +v 29.1258 91.1229 29.1258 +v 26.4765 91.1229 31.5534 +v 23.6257 91.1229 33.7409 +v 20.5951 91.1229 35.6717 +v 17.4077 91.1229 37.3309 +v 14.0879 91.1229 38.706 +v 10.6608 91.1229 39.7866 +v 7.15263 91.1229 40.5643 +v 3.58999 91.1229 41.0333 +v 4.73019e-05 91.1229 41.1901 +v -3.58991 91.1229 41.0334 +v -7.15253 91.1229 40.5643 +v -10.6607 91.1229 39.7866 +v -14.0878 91.1229 38.706 +v -17.4076 91.1229 37.3309 +v -20.595 91.1229 35.6717 +v -23.6256 91.1229 33.741 +v -26.4764 91.1229 31.5535 +v -29.1257 91.1229 29.1258 +v -31.5534 91.1229 26.4765 +v -33.7409 91.1229 23.6257 +v -35.6716 91.1229 20.5951 +v -37.3309 91.1229 17.4078 +v -38.706 91.1229 14.0879 +v -39.7866 91.1229 10.6609 +v -40.5643 91.1229 7.15267 +v -41.0333 91.1229 3.59005 +v -41.1901 91.1229 9.46039e-05 +v -41.0334 91.1229 -3.58986 +v -40.5643 91.1229 -7.15249 +v -39.7866 91.1229 -10.6607 +v -38.7061 91.1229 -14.0877 +v -37.3309 91.1229 -17.4076 +v -35.6717 91.1229 -20.595 +v -33.741 91.1229 -23.6256 +v -31.5535 91.1229 -26.4764 +v -29.1259 91.1229 -29.1257 +v -26.4766 91.1229 -31.5534 +v -23.6258 91.1229 -33.7409 +v -20.5951 91.1229 -35.6716 +v -17.4078 91.1229 -37.3308 +v -14.088 91.1229 -38.706 +v -10.6609 91.1229 -39.7865 +v -7.15272 91.1229 -40.5643 +v -3.59009 91.1229 -41.0333 +v -0.000136996 91.1229 -41.1901 +v 3.58982 91.1229 -41.0334 +v 7.15245 91.1229 -40.5643 +v 10.6606 91.1229 -39.7866 +v 14.0877 91.1229 -38.7061 +v 17.4075 91.1229 -37.331 +v 20.5949 91.1229 -35.6717 +v 23.6255 91.1229 -33.741 +v 26.4764 91.1229 -31.5535 +v 29.1257 91.1229 -29.1259 +v 31.5533 91.1229 -26.4766 +v 33.7409 91.1229 -23.6258 +v 35.6716 91.1229 -20.5952 +v 37.3308 91.1229 -17.4078 +v 38.706 91.1229 -14.088 +v 39.7865 91.1229 -10.6609 +v 40.5643 91.1229 -7.15277 +v 41.0333 91.1229 -3.59014 +v 48.7695 87.3014 5.88009e-39 +v 48.5839 87.3014 4.25054 +v 48.0285 87.3014 8.46872 +v 47.1077 87.3014 12.6225 +v 45.8283 87.3014 16.6801 +v 44.2001 87.3014 20.6109 +v 42.2356 87.3014 24.3847 +v 39.9496 87.3014 27.973 +v 37.3596 87.3014 31.3484 +v 34.4852 87.3014 34.4852 +v 31.3484 87.3014 37.3596 +v 27.973 87.3014 39.9496 +v 24.3848 87.3014 42.2356 +v 20.6109 87.3014 44.2001 +v 16.6802 87.3014 45.8283 +v 12.6225 87.3014 47.1077 +v 8.46878 87.3014 48.0285 +v 4.25059 87.3014 48.5839 +v 5.60059e-05 87.3014 48.7695 +v -4.25048 87.3014 48.5839 +v -8.46867 87.3014 48.0286 +v -12.6224 87.3014 47.1077 +v -16.6801 87.3014 45.8283 +v -20.6108 87.3014 44.2002 +v -24.3847 87.3014 42.2356 +v -27.9729 87.3014 39.9496 +v -31.3483 87.3014 37.3596 +v -34.4852 87.3014 34.4853 +v -37.3595 87.3014 31.3485 +v -39.9496 87.3014 27.9731 +v -42.2355 87.3014 24.3848 +v -44.2001 87.3014 20.611 +v -45.8283 87.3014 16.6802 +v -47.1077 87.3014 12.6226 +v -48.0285 87.3014 8.46883 +v -48.5839 87.3014 4.25065 +v -48.7695 87.3014 0.000112012 +v -48.5839 87.3014 -4.25043 +v -48.0286 87.3014 -8.46862 +v -47.1077 87.3014 -12.6224 +v -45.8283 87.3014 -16.68 +v -44.2002 87.3014 -20.6108 +v -42.2357 87.3014 -24.3846 +v -39.9497 87.3014 -27.9729 +v -37.3597 87.3014 -31.3483 +v -34.4853 87.3014 -34.4851 +v -31.3485 87.3014 -37.3595 +v -27.9731 87.3014 -39.9495 +v -24.3848 87.3014 -42.2355 +v -20.611 87.3014 -44.2001 +v -16.6803 87.3014 -45.8283 +v -12.6226 87.3014 -47.1076 +v -8.46889 87.3014 -48.0285 +v -4.2507 87.3014 -48.5839 +v -0.000162204 87.3014 -48.7695 +v 4.25038 87.3014 -48.5839 +v 8.46857 87.3014 -48.0286 +v 12.6223 87.3014 -47.1077 +v 16.68 87.3014 -45.8284 +v 20.6107 87.3014 -44.2002 +v 24.3846 87.3014 -42.2357 +v 27.9729 87.3014 -39.9497 +v 31.3483 87.3014 -37.3597 +v 34.4851 87.3014 -34.4854 +v 37.3595 87.3014 -31.3486 +v 39.9495 87.3014 -27.9732 +v 42.2355 87.3014 -24.3849 +v 44.2001 87.3014 -20.611 +v 45.8282 87.3014 -16.6803 +v 47.1076 87.3014 -12.6227 +v 48.0285 87.3014 -8.46895 +v 48.5839 87.3014 -4.25076 +v 55.9974 82.851 5.88009e-39 +v 55.7844 82.851 4.8805 +v 55.1467 82.851 9.72385 +v 54.0894 82.851 14.4932 +v 52.6204 82.851 19.1522 +v 50.7509 82.851 23.6655 +v 48.4952 82.851 27.9987 +v 45.8704 82.851 32.1188 +v 42.8965 82.851 35.9944 +v 39.5962 82.851 39.5961 +v 35.9945 82.851 42.8965 +v 32.1188 82.851 45.8704 +v 27.9988 82.851 48.4952 +v 23.6656 82.851 50.7509 +v 19.1523 82.851 52.6204 +v 14.4933 82.851 54.0894 +v 9.72391 82.851 55.1467 +v 4.88056 82.851 55.7843 +v 6.43064e-05 82.851 55.9974 +v -4.88043 82.851 55.7844 +v -9.72378 82.851 55.1467 +v -14.4931 82.851 54.0894 +v -19.1522 82.851 52.6204 +v -23.6655 82.851 50.7509 +v -27.9987 82.851 48.4952 +v -32.1187 82.851 45.8705 +v -35.9944 82.851 42.8966 +v -39.5961 82.851 39.5962 +v -42.8965 82.851 35.9945 +v -45.8704 82.851 32.1189 +v -48.4952 82.851 27.9988 +v -50.7509 82.851 23.6656 +v -52.6203 82.851 19.1524 +v -54.0893 82.851 14.4933 +v -55.1467 82.851 9.72396 +v -55.7843 82.851 4.88063 +v -55.9974 82.851 0.000128613 +v -55.7844 82.851 -4.88037 +v -55.1467 82.851 -9.72373 +v -54.0894 82.851 -14.4931 +v -52.6204 82.851 -19.1521 +v -50.751 82.851 -23.6654 +v -48.4953 82.851 -27.9986 +v -45.8705 82.851 -32.1187 +v -42.8966 82.851 -35.9943 +v -39.5963 82.851 -39.5961 +v -35.9946 82.851 -42.8964 +v -32.1189 82.851 -45.8703 +v -27.9989 82.851 -48.4951 +v -23.6657 82.851 -50.7508 +v -19.1524 82.851 -52.6203 +v -14.4934 82.851 -54.0893 +v -9.72404 82.851 -55.1467 +v -4.88068 82.851 -55.7843 +v -0.000186244 82.851 -55.9974 +v 4.88031 82.851 -55.7844 +v 9.72367 82.851 -55.1467 +v 14.493 82.851 -54.0894 +v 19.1521 82.851 -52.6204 +v 23.6653 82.851 -50.751 +v 27.9985 82.851 -48.4953 +v 32.1186 82.851 -45.8705 +v 35.9943 82.851 -42.8967 +v 39.596 82.851 -39.5963 +v 42.8964 82.851 -35.9946 +v 45.8703 82.851 -32.119 +v 48.4951 82.851 -27.9989 +v 50.7508 82.851 -23.6657 +v 52.6203 82.851 -19.1525 +v 54.0893 82.851 -14.4934 +v 55.1467 82.851 -9.7241 +v 55.7843 82.851 -4.88075 +v 62.822 77.8036 5.88009e-39 +v 62.5829 77.8036 5.47529 +v 61.8676 77.8036 10.9089 +v 60.6814 77.8036 16.2595 +v 59.0333 77.8036 21.4864 +v 56.936 77.8036 26.5497 +v 54.4054 77.8036 31.411 +v 51.4608 77.8036 36.0332 +v 48.1244 77.8036 40.3812 +v 44.4219 77.8036 44.4218 +v 40.3812 77.8036 48.1244 +v 36.0332 77.8036 51.4607 +v 31.411 77.8036 54.4054 +v 26.5498 77.8036 56.936 +v 21.4864 77.8036 59.0333 +v 16.2596 77.8036 60.6813 +v 10.909 77.8036 61.8675 +v 5.47536 77.8036 62.5829 +v 7.21436e-05 77.8036 62.822 +v -5.47522 77.8036 62.5829 +v -10.9088 77.8036 61.8676 +v -16.2594 77.8036 60.6814 +v -21.4863 77.8036 59.0334 +v -26.5496 77.8036 56.9361 +v -31.4109 77.8036 54.4055 +v -36.0331 77.8036 51.4608 +v -40.3811 77.8036 48.1245 +v -44.4218 77.8036 44.4219 +v -48.1243 77.8036 40.3813 +v -51.4607 77.8036 36.0333 +v -54.4054 77.8036 31.4111 +v -56.936 77.8036 26.5498 +v -59.0333 77.8036 21.4865 +v -60.6813 77.8036 16.2596 +v -61.8675 77.8036 10.909 +v -62.5829 77.8036 5.47544 +v -62.822 77.8036 0.000144287 +v -62.5829 77.8036 -5.47515 +v -61.8676 77.8036 -10.9088 +v -60.6814 77.8036 -16.2594 +v -59.0334 77.8036 -21.4862 +v -56.9361 77.8036 -26.5496 +v -54.4055 77.8036 -31.4108 +v -51.4608 77.8036 -36.0331 +v -48.1245 77.8036 -40.3811 +v -44.422 77.8036 -44.4217 +v -40.3813 77.8036 -48.1243 +v -36.0333 77.8036 -51.4606 +v -31.4111 77.8036 -54.4053 +v -26.5499 77.8036 -56.9359 +v -21.4866 77.8036 -59.0333 +v -16.2597 77.8036 -60.6813 +v -10.9091 77.8036 -61.8675 +v -5.4755 77.8036 -62.5829 +v -0.000208942 77.8036 -62.822 +v 5.47509 77.8036 -62.5829 +v 10.9087 77.8036 -61.8676 +v 16.2593 77.8036 -60.6814 +v 21.4862 77.8036 -59.0334 +v 26.5495 77.8036 -56.9361 +v 31.4108 77.8036 -54.4055 +v 36.033 77.8036 -51.4609 +v 40.381 77.8036 -48.1246 +v 44.4217 77.8036 -44.422 +v 48.1243 77.8036 -40.3814 +v 51.4606 77.8036 -36.0334 +v 54.4053 77.8036 -31.4112 +v 56.9359 77.8036 -26.5499 +v 59.0332 77.8036 -21.4866 +v 60.6813 77.8036 -16.2598 +v 61.8675 77.8036 -10.9092 +v 62.5829 77.8036 -5.47558 +v 69.1938 72.1956 5.88009e-39 +v 68.9305 72.1956 6.03064 +v 68.1426 72.1956 12.0154 +v 66.8361 72.1956 17.9087 +v 65.021 72.1956 23.6657 +v 62.7109 72.1956 29.2426 +v 59.9236 72.1956 34.5969 +v 56.6803 72.1956 39.6879 +v 53.0056 72.1956 44.4769 +v 48.9275 72.1956 48.9274 +v 44.477 72.1956 53.0055 +v 39.688 72.1956 56.6802 +v 34.597 72.1956 59.9236 +v 29.2426 72.1956 62.7109 +v 23.6657 72.1956 65.0209 +v 17.9087 72.1956 66.8361 +v 12.0155 72.1956 68.1426 +v 6.03071 72.1956 68.9305 +v 7.94609e-05 72.1956 69.1938 +v -6.03056 72.1956 68.9305 +v -12.0153 72.1956 68.1426 +v -17.9086 72.1956 66.8361 +v -23.6656 72.1956 65.021 +v -29.2425 72.1956 62.711 +v -34.5968 72.1956 59.9237 +v -39.6879 72.1956 56.6803 +v -44.4769 72.1956 53.0056 +v -48.9274 72.1956 48.9275 +v -53.0055 72.1956 44.477 +v -56.6802 72.1956 39.6881 +v -59.9236 72.1956 34.597 +v -62.7109 72.1956 29.2427 +v -65.0209 72.1956 23.6658 +v -66.8361 72.1956 17.9088 +v -68.1426 72.1956 12.0155 +v -68.9305 72.1956 6.0308 +v -69.1938 72.1956 0.000158922 +v -68.9305 72.1956 -6.03048 +v -68.1427 72.1956 -12.0152 +v -66.8362 72.1956 -17.9085 +v -65.021 72.1956 -23.6655 +v -62.711 72.1956 -29.2424 +v -59.9237 72.1956 -34.5968 +v -56.6804 72.1956 -39.6878 +v -53.0057 72.1956 -44.4768 +v -48.9276 72.1956 -48.9273 +v -44.4771 72.1956 -53.0054 +v -39.6881 72.1956 -56.6802 +v -34.5971 72.1956 -59.9235 +v -29.2428 72.1956 -62.7108 +v -23.6659 72.1956 -65.0209 +v -17.9089 72.1956 -66.8361 +v -12.0156 72.1956 -68.1426 +v -6.03087 72.1956 -68.9305 +v -0.000230134 72.1956 -69.1938 +v 6.03041 72.1956 -68.9306 +v 12.0152 72.1956 -68.1427 +v 17.9085 72.1956 -66.8362 +v 23.6655 72.1956 -65.021 +v 29.2423 72.1956 -62.711 +v 34.5967 72.1956 -59.9238 +v 39.6877 72.1956 -56.6804 +v 44.4767 72.1956 -53.0057 +v 48.9272 72.1956 -48.9276 +v 53.0054 72.1956 -44.4772 +v 56.6801 72.1956 -39.6882 +v 59.9235 72.1956 -34.5972 +v 62.7108 72.1956 -29.2428 +v 65.0208 72.1956 -23.666 +v 66.836 72.1956 -17.909 +v 68.1426 72.1956 -12.0157 +v 68.9305 72.1956 -6.03096 +v 75.0672 66.0675 5.88009e-39 +v 74.7815 66.0675 6.54253 +v 73.9268 66.0675 13.0353 +v 72.5093 66.0675 19.4288 +v 70.5401 66.0675 25.6745 +v 68.034 66.0675 31.7247 +v 65.0101 66.0675 37.5336 +v 61.4915 66.0675 43.0567 +v 57.5048 66.0675 48.2522 +v 53.0805 66.0675 53.0805 +v 48.2523 66.0675 57.5048 +v 43.0568 66.0675 61.4914 +v 37.5336 66.0675 65.0101 +v 31.7248 66.0675 68.034 +v 25.6745 66.0675 70.5401 +v 19.4289 66.0675 72.5093 +v 13.0354 66.0675 73.9267 +v 6.54261 66.0675 74.7815 +v 8.62058e-05 66.0675 75.0672 +v -6.54245 66.0675 74.7815 +v -13.0352 66.0675 73.9268 +v -19.4287 66.0675 72.5094 +v -25.6744 66.0675 70.5401 +v -31.7247 66.0675 68.034 +v -37.5335 66.0675 65.0101 +v -43.0567 66.0675 61.4915 +v -48.2522 66.0675 57.5049 +v -53.0804 66.0675 53.0806 +v -57.5047 66.0675 48.2524 +v -61.4914 66.0675 43.0569 +v -65.01 66.0675 37.5337 +v -68.0339 66.0675 31.7249 +v -70.54 66.0675 25.6746 +v -72.5093 66.0675 19.429 +v -73.9267 66.0675 13.0354 +v -74.7815 66.0675 6.54271 +v -75.0672 66.0675 0.000172412 +v -74.7815 66.0675 -6.54236 +v -73.9268 66.0675 -13.0351 +v -72.5094 66.0675 -19.4286 +v -70.5401 66.0675 -25.6743 +v -68.0341 66.0675 -31.7246 +v -65.0102 66.0675 -37.5334 +v -61.4916 66.0675 -43.0566 +v -57.5049 66.0675 -48.2521 +v -53.0807 66.0675 -53.0804 +v -48.2524 66.0675 -57.5047 +v -43.0569 66.0675 -61.4913 +v -37.5338 66.0675 -65.01 +v -31.725 66.0675 -68.0339 +v -25.6747 66.0675 -70.54 +v -19.4291 66.0675 -72.5093 +v -13.0355 66.0675 -73.9267 +v -6.54278 66.0675 -74.7815 +v -0.000249669 66.0675 -75.0672 +v 6.54229 66.0675 -74.7816 +v 13.035 66.0675 -73.9268 +v 19.4286 66.0675 -72.5094 +v 25.6742 66.0675 -70.5402 +v 31.7245 66.0675 -68.0341 +v 37.5333 66.0675 -65.0102 +v 43.0565 66.0675 -61.4916 +v 48.252 66.0675 -57.505 +v 53.0803 66.0675 -53.0807 +v 57.5046 66.0675 -48.2525 +v 61.4913 66.0675 -43.057 +v 65.0099 66.0675 -37.5339 +v 68.0338 66.0675 -31.725 +v 70.54 66.0675 -25.6748 +v 72.5093 66.0675 -19.4291 +v 73.9267 66.0675 -13.0356 +v 74.7815 66.0675 -6.54288 +v 80.3997 59.4634 5.88009e-39 +v 80.0937 59.4634 7.00729 +v 79.1782 59.4634 13.9612 +v 77.6601 59.4634 20.809 +v 75.551 59.4634 27.4983 +v 72.8669 59.4634 33.9783 +v 69.6282 59.4634 40.1998 +v 65.8596 59.4634 46.1153 +v 61.5897 59.4634 51.6799 +v 56.8512 59.4634 56.8511 +v 51.68 59.4634 61.5897 +v 46.1154 59.4634 65.8595 +v 40.1999 59.4634 69.6281 +v 33.9784 59.4634 72.8668 +v 27.4984 59.4634 75.551 +v 20.809 59.4634 77.6601 +v 13.9613 59.4634 79.1782 +v 7.00737 59.4634 80.0937 +v 9.23295e-05 59.4634 80.3997 +v -7.0072 59.4634 80.0937 +v -13.9612 59.4634 79.1782 +v -20.8089 59.4634 77.6601 +v -27.4982 59.4634 75.551 +v -33.9783 59.4634 72.8669 +v -40.1997 59.4634 69.6282 +v -46.1152 59.4634 65.8596 +v -51.6798 59.4634 61.5898 +v -56.8511 59.4634 56.8512 +v -61.5896 59.4634 51.68 +v -65.8595 59.4634 46.1155 +v -69.6281 59.4634 40.2 +v -72.8668 59.4634 33.9785 +v -75.5509 59.4634 27.4985 +v -77.6601 59.4634 20.8091 +v -79.1782 59.4634 13.9614 +v -80.0937 59.4634 7.00748 +v -80.3997 59.4634 0.000184659 +v -80.0937 59.4634 -7.00711 +v -79.1783 59.4634 -13.9611 +v -77.6602 59.4634 -20.8088 +v -75.551 59.4634 -27.4981 +v -72.8669 59.4634 -33.9782 +v -69.6283 59.4634 -40.1997 +v -65.8597 59.4634 -46.1152 +v -61.5899 59.4634 -51.6797 +v -56.8513 59.4634 -56.851 +v -51.6801 59.4634 -61.5896 +v -46.1155 59.4634 -65.8594 +v -40.2 59.4634 -69.6281 +v -33.9786 59.4634 -72.8667 +v -27.4986 59.4634 -75.5509 +v -20.8092 59.4634 -77.66 +v -13.9615 59.4634 -79.1782 +v -7.00756 59.4634 -80.0937 +v -0.000267404 59.4634 -80.3997 +v 7.00703 59.4634 -80.0938 +v 13.961 59.4634 -79.1783 +v 20.8087 59.4634 -77.6602 +v 27.4981 59.4634 -75.5511 +v 33.9781 59.4634 -72.867 +v 40.1996 59.4634 -69.6283 +v 46.1151 59.4634 -65.8597 +v 51.6797 59.4634 -61.5899 +v 56.8509 59.4634 -56.8514 +v 61.5895 59.4634 -51.6802 +v 65.8594 59.4634 -46.1156 +v 69.628 59.4634 -40.2001 +v 72.8667 59.4634 -33.9787 +v 75.5509 59.4634 -27.4986 +v 77.66 59.4634 -20.8093 +v 79.1782 59.4634 -13.9616 +v 80.0937 59.4634 -7.00766 +v 85.1529 52.4308 5.88009e-39 +v 84.8288 52.4308 7.42156 +v 83.8592 52.4308 14.7866 +v 82.2514 52.4308 22.0392 +v 80.0175 52.4308 29.124 +v 77.1747 52.4308 35.9871 +v 73.7446 52.4308 42.5764 +v 69.7532 52.4308 48.8417 +v 65.2309 52.4308 54.7352 +v 60.2122 52.4308 60.2121 +v 54.7353 52.4308 65.2309 +v 48.8417 52.4308 69.7531 +v 42.5765 52.4308 73.7445 +v 35.9872 52.4308 77.1747 +v 29.1241 52.4308 80.0175 +v 22.0393 52.4308 82.2513 +v 14.7867 52.4308 83.8592 +v 7.42165 52.4308 84.8288 +v 9.7788e-05 52.4308 85.1529 +v -7.42146 52.4308 84.8289 +v -14.7865 52.4308 83.8592 +v -22.0391 52.4308 82.2514 +v -29.1239 52.4308 80.0176 +v -35.9871 52.4308 77.1748 +v -42.5763 52.4308 73.7446 +v -48.8416 52.4308 69.7532 +v -54.7351 52.4308 65.231 +v -60.2121 52.4308 60.2123 +v -65.2308 52.4308 54.7353 +v -69.7531 52.4308 48.8418 +v -73.7445 52.4308 42.5766 +v -77.1746 52.4308 35.9873 +v -80.0175 52.4308 29.1242 +v -82.2513 52.4308 22.0394 +v -83.8592 52.4308 14.7868 +v -84.8288 52.4308 7.42176 +v -85.1529 52.4308 0.000195576 +v -84.8289 52.4308 -7.42137 +v -83.8592 52.4308 -14.7864 +v -82.2514 52.4308 -22.039 +v -80.0176 52.4308 -29.1238 +v -77.1748 52.4308 -35.987 +v -73.7447 52.4308 -42.5762 +v -69.7533 52.4308 -48.8415 +v -65.231 52.4308 -54.735 +v -60.2123 52.4308 -60.212 +v -54.7354 52.4308 -65.2307 +v -48.8419 52.4308 -69.753 +v -42.5766 52.4308 -73.7444 +v -35.9874 52.4308 -77.1746 +v -29.1243 52.4308 -80.0174 +v -22.0395 52.4308 -82.2513 +v -14.7869 52.4308 -83.8592 +v -7.42184 52.4308 -84.8288 +v -0.000283213 52.4308 -85.1529 +v 7.42128 52.4308 -84.8289 +v 14.7864 52.4308 -83.8593 +v 22.0389 52.4308 -82.2514 +v 29.1237 52.4308 -80.0176 +v 35.9869 52.4308 -77.1749 +v 42.5761 52.4308 -73.7447 +v 48.8414 52.4308 -69.7533 +v 54.735 52.4308 -65.2311 +v 60.2119 52.4308 -60.2124 +v 65.2307 52.4308 -54.7355 +v 69.753 52.4308 -48.842 +v 73.7444 52.4308 -42.5767 +v 77.1746 52.4308 -35.9875 +v 80.0174 52.4308 -29.1243 +v 82.2513 52.4308 -22.0395 +v 83.8591 52.4308 -14.787 +v 84.8288 52.4308 -7.42195 +v 89.2925 45.0205 5.88009e-39 +v 88.9528 45.0205 7.78235 +v 87.936 45.0205 15.5055 +v 86.25 45.0205 23.1106 +v 83.9076 45.0205 30.5398 +v 80.9265 45.0205 37.7366 +v 77.3296 45.0205 44.6462 +v 73.1442 45.0205 51.2161 +v 68.4021 45.0205 57.3961 +v 63.1394 45.0205 63.1393 +v 57.3962 45.0205 68.402 +v 51.2162 45.0205 73.1441 +v 44.6463 45.0205 77.3296 +v 37.7367 45.0205 80.9265 +v 30.5399 45.0205 83.9075 +v 23.1107 45.0205 86.25 +v 15.5056 45.0205 87.936 +v 7.78245 45.0205 88.9528 +v 0.000102542 45.0205 89.2925 +v -7.78225 45.0205 88.9528 +v -15.5054 45.0205 87.936 +v -23.1105 45.0205 86.25 +v -30.5397 45.0205 83.9076 +v -37.7366 45.0205 80.9266 +v -44.6462 45.0205 77.3297 +v -51.216 45.0205 73.1443 +v -57.396 45.0205 68.4022 +v -63.1393 45.0205 63.1395 +v -68.402 45.0205 57.3963 +v -73.1441 45.0205 51.2162 +v -77.3295 45.0205 44.6464 +v -80.9265 45.0205 37.7368 +v -83.9075 45.0205 30.54 +v -86.2499 45.0205 23.1108 +v -87.936 45.0205 15.5057 +v -88.9527 45.0205 7.78256 +v -89.2925 45.0205 0.000205084 +v -88.9528 45.0205 -7.78215 +v -87.936 45.0205 -15.5053 +v -86.25 45.0205 -23.1104 +v -83.9076 45.0205 -30.5396 +v -80.9266 45.0205 -37.7365 +v -77.3297 45.0205 -44.6461 +v -73.1443 45.0205 -51.2159 +v -68.4022 45.0205 -57.396 +v -63.1395 45.0205 -63.1392 +v -57.3963 45.0205 -68.4019 +v -51.2163 45.0205 -73.144 +v -44.6465 45.0205 -77.3295 +v -37.7369 45.0205 -80.9264 +v -30.5401 45.0205 -83.9074 +v -23.1109 45.0205 -86.2499 +v -15.5058 45.0205 -87.9359 +v -7.78265 45.0205 -88.9527 +v -0.000296981 45.0205 -89.2925 +v 7.78206 45.0205 -88.9528 +v 15.5052 45.0205 -87.9361 +v 23.1103 45.0205 -86.2501 +v 30.5396 45.0205 -83.9077 +v 37.7363 45.0205 -80.9267 +v 44.646 45.0205 -77.3298 +v 51.2158 45.0205 -73.1444 +v 57.3959 45.0205 -68.4023 +v 63.1391 45.0205 -63.1396 +v 68.4018 45.0205 -57.3964 +v 73.144 45.0205 -51.2164 +v 77.3294 45.0205 -44.6466 +v 80.9264 45.0205 -37.737 +v 83.9074 45.0205 -30.5402 +v 86.2499 45.0205 -23.111 +v 87.9359 45.0205 -15.5059 +v 88.9527 45.0205 -7.78277 +v 92.7889 37.2857 5.88009e-39 +v 92.4358 37.2857 8.08708 +v 91.3792 37.2857 16.1126 +v 89.6272 37.2857 24.0155 +v 87.193 37.2857 31.7356 +v 84.0953 37.2857 39.2142 +v 80.3575 37.2857 46.3944 +v 76.0082 37.2857 53.2215 +v 71.0804 37.2857 59.6435 +v 65.6117 37.2857 65.6116 +v 59.6436 37.2857 71.0804 +v 53.2216 37.2857 76.0082 +v 46.3945 37.2857 80.3575 +v 39.2143 37.2857 84.0952 +v 31.7357 37.2857 87.193 +v 24.0156 37.2857 89.6271 +v 16.1127 37.2857 91.3792 +v 8.08718 37.2857 92.4358 +v 0.000106557 37.2857 92.7889 +v -8.08698 37.2857 92.4358 +v -16.1125 37.2857 91.3792 +v -24.0154 37.2857 89.6272 +v -31.7355 37.2857 87.1931 +v -39.2142 37.2857 84.0953 +v -46.3943 37.2857 80.3576 +v -53.2214 37.2857 76.0083 +v -59.6434 37.2857 71.0805 +v -65.6115 37.2857 65.6117 +v -71.0803 37.2857 59.6437 +v -76.0081 37.2857 53.2216 +v -80.3574 37.2857 46.3946 +v -84.0952 37.2857 39.2144 +v -87.193 37.2857 31.7358 +v -89.6271 37.2857 24.0157 +v -91.3792 37.2857 16.1128 +v -92.4358 37.2857 8.08729 +v -92.7889 37.2857 0.000213114 +v -92.4358 37.2857 -8.08687 +v -91.3792 37.2857 -16.1124 +v -89.6272 37.2857 -24.0153 +v -87.1931 37.2857 -31.7354 +v -84.0954 37.2857 -39.2141 +v -80.3576 37.2857 -46.3942 +v -76.0083 37.2857 -53.2213 +v -71.0806 37.2857 -59.6433 +v -65.6118 37.2857 -65.6115 +v -59.6437 37.2857 -71.0802 +v -53.2217 37.2857 -76.008 +v -46.3947 37.2857 -80.3574 +v -39.2145 37.2857 -84.0952 +v -31.7359 37.2857 -87.1929 +v -24.0158 37.2857 -89.6271 +v -16.1129 37.2857 -91.3792 +v -8.08739 37.2857 -92.4358 +v -0.00030861 37.2857 -92.7889 +v 8.08677 37.2857 -92.4358 +v 16.1123 37.2857 -91.3793 +v 24.0152 37.2857 -89.6273 +v 31.7354 37.2857 -87.1931 +v 39.2139 37.2857 -84.0954 +v 46.3941 37.2857 -80.3577 +v 53.2212 37.2857 -76.0084 +v 59.6433 37.2857 -71.0806 +v 65.6114 37.2857 -65.6119 +v 71.0802 37.2857 -59.6438 +v 76.008 37.2857 -53.2218 +v 80.3573 37.2857 -46.3948 +v 84.0951 37.2857 -39.2146 +v 87.1929 37.2857 -31.736 +v 89.6271 37.2857 -24.0159 +v 91.3791 37.2857 -16.113 +v 92.4357 37.2857 -8.08751 +v 95.6166 29.2824 5.88009e-39 +v 95.2528 29.2824 8.33353 +v 94.164 29.2824 16.6036 +v 92.3586 29.2824 24.7474 +v 89.8503 29.2824 32.7028 +v 86.6581 29.2824 40.4093 +v 82.8065 29.2824 47.8083 +v 78.3246 29.2824 54.8434 +v 73.2466 29.2824 61.4612 +v 67.6112 29.2824 67.6111 +v 61.4612 29.2824 73.2466 +v 54.8435 29.2824 78.3245 +v 47.8084 29.2824 82.8064 +v 40.4094 29.2824 86.6581 +v 32.7029 29.2824 89.8502 +v 24.7475 29.2824 92.3586 +v 16.6038 29.2824 94.164 +v 8.33364 29.2824 95.2528 +v 0.000109804 29.2824 95.6166 +v -8.33343 29.2824 95.2528 +v -16.6035 29.2824 94.164 +v -24.7473 29.2824 92.3586 +v -32.7027 29.2824 89.8503 +v -40.4092 29.2824 86.6582 +v -47.8082 29.2824 82.8065 +v -54.8433 29.2824 78.3247 +v -61.4611 29.2824 73.2467 +v -67.6111 29.2824 67.6113 +v -73.2465 29.2824 61.4613 +v -78.3245 29.2824 54.8436 +v -82.8064 29.2824 47.8085 +v -86.658 29.2824 40.4095 +v -89.8502 29.2824 32.703 +v -92.3585 29.2824 24.7476 +v -94.164 29.2824 16.6038 +v -95.2528 29.2824 8.33376 +v -95.6166 29.2824 0.000219609 +v -95.2528 29.2824 -8.33332 +v -94.1641 29.2824 -16.6034 +v -92.3586 29.2824 -24.7472 +v -89.8503 29.2824 -32.7026 +v -86.6582 29.2824 -40.4091 +v -82.8066 29.2824 -47.8081 +v -78.3247 29.2824 -54.8432 +v -73.2468 29.2824 -61.461 +v -67.6114 29.2824 -67.611 +v -61.4614 29.2824 -73.2464 +v -54.8437 29.2824 -78.3244 +v -47.8086 29.2824 -82.8063 +v -40.4096 29.2824 -86.658 +v -32.7031 29.2824 -89.8502 +v -24.7477 29.2824 -92.3585 +v -16.604 29.2824 -94.164 +v -8.33385 29.2824 -95.2528 +v -0.000318015 29.2824 -95.6166 +v 8.33322 29.2824 -95.2528 +v 16.6033 29.2824 -94.1641 +v 24.7471 29.2824 -92.3587 +v 32.7025 29.2824 -89.8504 +v 40.409 29.2824 -86.6583 +v 47.808 29.2824 -82.8066 +v 54.8431 29.2824 -78.3248 +v 61.4609 29.2824 -73.2468 +v 67.6109 29.2824 -67.6114 +v 73.2464 29.2824 -61.4615 +v 78.3243 29.2824 -54.8438 +v 82.8063 29.2824 -47.8087 +v 86.658 29.2824 -40.4097 +v 89.8501 29.2824 -32.7032 +v 92.3585 29.2824 -24.7478 +v 94.1639 29.2824 -16.6041 +v 95.2528 29.2824 -8.33398 +v 97.7555 21.068 5.88009e-39 +v 97.3835 21.068 8.51995 +v 96.2704 21.068 16.9751 +v 94.4246 21.068 25.301 +v 91.8601 21.068 33.4343 +v 88.5966 21.068 41.3132 +v 84.6588 21.068 48.8777 +v 80.0766 21.068 56.0702 +v 74.8851 21.068 62.836 +v 69.1236 21.068 69.1235 +v 62.8361 21.068 74.885 +v 56.0703 21.068 80.0766 +v 48.8778 21.068 84.6587 +v 41.3133 21.068 88.5965 +v 33.4344 21.068 91.8601 +v 25.3011 21.068 94.4245 +v 16.9752 21.068 96.2704 +v 8.52005 21.068 97.3835 +v 0.000112261 21.068 97.7555 +v -8.51984 21.068 97.3835 +v -16.9749 21.068 96.2704 +v -25.3009 21.068 94.4246 +v -33.4342 21.068 91.8602 +v -41.3131 21.068 88.5966 +v -48.8776 21.068 84.6588 +v -56.0701 21.068 80.0767 +v -62.8359 21.068 74.8852 +v -69.1235 21.068 69.1237 +v -74.885 21.068 62.8362 +v -80.0765 21.068 56.0704 +v -84.6587 21.068 48.8779 +v -88.5965 21.068 41.3134 +v -91.8601 21.068 33.4345 +v -94.4245 21.068 25.3012 +v -96.2703 21.068 16.9753 +v -97.3835 21.068 8.52017 +v -97.7555 21.068 0.000224521 +v -97.3835 21.068 -8.51973 +v -96.2704 21.068 -16.9748 +v -94.4246 21.068 -25.3008 +v -91.8602 21.068 -33.4341 +v -88.5967 21.068 -41.313 +v -84.6589 21.068 -48.8775 +v -80.0768 21.068 -56.07 +v -74.8852 21.068 -62.8358 +v -69.1238 21.068 -69.1234 +v -62.8362 21.068 -74.8849 +v -56.0705 21.068 -80.0765 +v -48.878 21.068 -84.6586 +v -41.3135 21.068 -88.5964 +v -33.4347 21.068 -91.86 +v -25.3013 21.068 -94.4245 +v -16.9754 21.068 -96.2703 +v -8.52028 21.068 -97.3835 +v -0.000325128 21.068 -97.7555 +v 8.51963 21.068 -97.3835 +v 16.9747 21.068 -96.2704 +v 25.3007 21.068 -94.4247 +v 33.434 21.068 -91.8602 +v 41.3129 21.068 -88.5967 +v 48.8774 21.068 -84.6589 +v 56.0699 21.068 -80.0768 +v 62.8357 21.068 -74.8853 +v 69.1233 21.068 -69.1238 +v 74.8848 21.068 -62.8363 +v 80.0764 21.068 -56.0706 +v 84.6586 21.068 -48.8781 +v 88.5964 21.068 -41.3136 +v 91.86 21.068 -33.4347 +v 94.4245 21.068 -25.3014 +v 96.2703 21.068 -16.9755 +v 97.3835 21.068 -8.5204 +v 99.19 12.7019 5.88009e-39 +v 98.8126 12.7019 8.64497 +v 97.6831 12.7019 17.2242 +v 95.8102 12.7019 25.6723 +v 93.2082 12.7019 33.925 +v 89.8967 12.7019 41.9195 +v 85.9011 12.7019 49.595 +v 81.2517 12.7019 56.893 +v 75.984 12.7019 63.7581 +v 70.138 12.7019 70.1379 +v 63.7582 12.7019 75.9839 +v 56.8931 12.7019 81.2517 +v 49.5951 12.7019 85.9011 +v 41.9196 12.7019 89.8967 +v 33.9251 12.7019 93.2081 +v 25.6724 12.7019 95.8102 +v 17.2243 12.7019 97.6831 +v 8.64508 12.7019 98.8126 +v 0.000113908 12.7019 99.19 +v -8.64487 12.7019 98.8126 +v -17.224 12.7019 97.6831 +v -25.6721 12.7019 95.8102 +v -33.9249 12.7019 93.2082 +v -41.9194 12.7019 89.8968 +v -49.5949 12.7019 85.9012 +v -56.8929 12.7019 81.2518 +v -63.758 12.7019 75.9841 +v -70.1378 12.7019 70.1381 +v -75.9839 12.7019 63.7583 +v -81.2516 12.7019 56.8932 +v -85.901 12.7019 49.5952 +v -89.8966 12.7019 41.9197 +v -93.2081 12.7019 33.9252 +v -95.8102 12.7019 25.6725 +v -97.6831 12.7019 17.2244 +v -98.8126 12.7019 8.64521 +v -99.19 12.7019 0.000227816 +v -98.8126 12.7019 -8.64475 +v -97.6832 12.7019 -17.2239 +v -95.8103 12.7019 -25.672 +v -93.2082 12.7019 -33.9247 +v -89.8968 12.7019 -41.9193 +v -85.9012 12.7019 -49.5948 +v -81.2519 12.7019 -56.8928 +v -75.9841 12.7019 -63.7579 +v -70.1381 12.7019 -70.1378 +v -63.7583 12.7019 -75.9838 +v -56.8933 12.7019 -81.2516 +v -49.5953 12.7019 -85.901 +v -41.9198 12.7019 -89.8966 +v -33.9253 12.7019 -93.208 +v -25.6726 12.7019 -95.8101 +v -17.2245 12.7019 -97.6831 +v -8.64531 12.7019 -98.8126 +v -0.0003299 12.7019 -99.19 +v 8.64465 12.7019 -98.8126 +v 17.2238 12.7019 -97.6832 +v 25.6719 12.7019 -95.8103 +v 33.9247 12.7019 -93.2083 +v 41.9192 12.7019 -89.8969 +v 49.5947 12.7019 -85.9013 +v 56.8927 12.7019 -81.2519 +v 63.7578 12.7019 -75.9842 +v 70.1377 12.7019 -70.1382 +v 75.9837 12.7019 -63.7584 +v 81.2515 12.7019 -56.8934 +v 85.9009 12.7019 -49.5954 +v 89.8965 12.7019 -41.9199 +v 93.208 12.7019 -33.9254 +v 95.8101 12.7019 -25.6727 +v 97.683 12.7019 -17.2246 +v 98.8125 12.7019 -8.64543 +v 99.9099 4.24424 5.88009e-39 +v 99.5297 4.24424 8.70771 +v 98.392 4.24424 17.3492 +v 96.5055 4.24424 25.8586 +v 93.8846 4.24424 34.1712 +v 90.5491 4.24424 42.2237 +v 86.5245 4.24424 49.9549 +v 81.8414 4.24424 57.3059 +v 76.5354 4.24424 64.2208 +v 70.647 4.24424 70.6469 +v 64.2209 4.24424 76.5354 +v 57.306 4.24424 81.8414 +v 49.955 4.24424 86.5245 +v 42.2238 4.24424 90.5491 +v 34.1713 4.24424 93.8846 +v 25.8587 4.24424 96.5055 +v 17.3493 4.24424 98.392 +v 8.70782 4.24424 99.5297 +v 0.000114735 4.24424 99.9099 +v -8.7076 4.24424 99.5297 +v -17.349 4.24424 98.3921 +v -25.8585 4.24424 96.5056 +v -34.1711 4.24424 93.8846 +v -42.2236 4.24424 90.5492 +v -49.9548 4.24424 86.5246 +v -57.3058 4.24424 81.8415 +v -64.2207 4.24424 76.5355 +v -70.6468 4.24424 70.6471 +v -76.5353 4.24424 64.221 +v -81.8413 4.24424 57.3061 +v -86.5244 4.24424 49.9551 +v -90.549 4.24424 42.2239 +v -93.8845 4.24424 34.1714 +v -96.5055 4.24424 25.8588 +v -98.392 4.24424 17.3494 +v -99.5297 4.24424 8.70795 +v -99.9099 4.24424 0.000229469 +v -99.5297 4.24424 -8.70749 +v -98.3921 4.24424 -17.3489 +v -96.5056 4.24424 -25.8584 +v -93.8847 4.24424 -34.171 +v -90.5492 4.24424 -42.2235 +v -86.5246 4.24424 -49.9547 +v -81.8415 4.24424 -57.3057 +v -76.5356 4.24424 -64.2206 +v -70.6471 4.24424 -70.6468 +v -64.221 4.24424 -76.5352 +v -57.3062 4.24424 -81.8412 +v -49.9552 4.24424 -86.5244 +v -42.224 4.24424 -90.549 +v -34.1715 4.24424 -93.8845 +v -25.8589 4.24424 -96.5055 +v -17.3495 4.24424 -98.392 +v -8.70805 4.24424 -99.5297 +v -0.000332294 4.24424 -99.9099 +v 8.70739 4.24424 -99.5297 +v 17.3488 4.24424 -98.3921 +v 25.8583 4.24424 -96.5056 +v 34.1709 4.24424 -93.8847 +v 42.2234 4.24424 -90.5493 +v 49.9546 4.24424 -86.5247 +v 57.3056 4.24424 -81.8416 +v 64.2205 4.24424 -76.5357 +v 70.6467 4.24424 -70.6472 +v 76.5352 4.24424 -64.2211 +v 81.8412 4.24424 -57.3063 +v 86.5243 4.24424 -49.9553 +v 90.5489 4.24424 -42.2241 +v 93.8844 4.24424 -34.1716 +v 96.5054 4.24424 -25.859 +v 98.392 4.24424 -17.3496 +v 99.5297 4.24424 -8.70818 +v 99.9099 -4.244 5.88009e-39 +v 99.5297 -4.244 8.70772 +v 98.3921 -4.244 17.3492 +v 96.5056 -4.244 25.8586 +v 93.8846 -4.244 34.1712 +v 90.5491 -4.244 42.2237 +v 86.5245 -4.244 49.9549 +v 81.8414 -4.244 57.3059 +v 76.5355 -4.244 64.2208 +v 70.647 -4.244 70.6469 +v 64.2209 -4.244 76.5354 +v 57.306 -4.244 81.8414 +v 49.955 -4.244 86.5245 +v 42.2238 -4.244 90.5491 +v 34.1713 -4.244 93.8846 +v 25.8587 -4.244 96.5055 +v 17.3493 -4.244 98.392 +v 8.70782 -4.244 99.5297 +v 0.000114735 -4.244 99.9099 +v -8.70761 -4.244 99.5297 +v -17.349 -4.244 98.3921 +v -25.8585 -4.244 96.5056 +v -34.1711 -4.244 93.8846 +v -42.2236 -4.244 90.5492 +v -49.9548 -4.244 86.5246 +v -57.3058 -4.244 81.8415 +v -64.2207 -4.244 76.5355 +v -70.6469 -4.244 70.6471 +v -76.5353 -4.244 64.221 +v -81.8413 -4.244 57.3061 +v -86.5244 -4.244 49.9551 +v -90.549 -4.244 42.2239 +v -93.8845 -4.244 34.1714 +v -96.5055 -4.244 25.8588 +v -98.392 -4.244 17.3494 +v -99.5297 -4.244 8.70795 +v -99.9099 -4.244 0.000229469 +v -99.5297 -4.244 -8.70749 +v -98.3921 -4.244 -17.3489 +v -96.5056 -4.244 -25.8584 +v -93.8847 -4.244 -34.171 +v -90.5492 -4.244 -42.2235 +v -86.5247 -4.244 -49.9547 +v -81.8416 -4.244 -57.3057 +v -76.5356 -4.244 -64.2206 +v -70.6472 -4.244 -70.6468 +v -64.2211 -4.244 -76.5353 +v -57.3062 -4.244 -81.8412 +v -49.9552 -4.244 -86.5244 +v -42.224 -4.244 -90.549 +v -34.1715 -4.244 -93.8845 +v -25.8589 -4.244 -96.5055 +v -17.3495 -4.244 -98.392 +v -8.70805 -4.244 -99.5297 +v -0.000332294 -4.244 -99.9099 +v 8.70739 -4.244 -99.5297 +v 17.3488 -4.244 -98.3921 +v 25.8583 -4.244 -96.5056 +v 34.1709 -4.244 -93.8847 +v 42.2234 -4.244 -90.5493 +v 49.9546 -4.244 -86.5247 +v 57.3056 -4.244 -81.8416 +v 64.2206 -4.244 -76.5357 +v 70.6467 -4.244 -70.6472 +v 76.5352 -4.244 -64.2212 +v 81.8412 -4.244 -57.3063 +v 86.5243 -4.244 -49.9553 +v 90.549 -4.244 -42.2241 +v 93.8845 -4.244 -34.1716 +v 96.5055 -4.244 -25.859 +v 98.392 -4.244 -17.3496 +v 99.5297 -4.244 -8.70818 +v 99.1901 -12.7016 5.88009e-39 +v 98.8126 -12.7016 8.64498 +v 97.6831 -12.7016 17.2242 +v 95.8102 -12.7016 25.6723 +v 93.2082 -12.7016 33.925 +v 89.8967 -12.7016 41.9195 +v 85.9011 -12.7016 49.595 +v 81.2518 -12.7016 56.893 +v 75.984 -12.7016 63.7581 +v 70.138 -12.7016 70.1379 +v 63.7582 -12.7016 75.984 +v 56.8931 -12.7016 81.2517 +v 49.5951 -12.7016 85.9011 +v 41.9196 -12.7016 89.8967 +v 33.9251 -12.7016 93.2081 +v 25.6724 -12.7016 95.8102 +v 17.2243 -12.7016 97.6831 +v 8.64508 -12.7016 98.8126 +v 0.000113908 -12.7016 99.1901 +v -8.64487 -12.7016 98.8126 +v -17.224 -12.7016 97.6832 +v -25.6722 -12.7016 95.8103 +v -33.9249 -12.7016 93.2082 +v -41.9194 -12.7016 89.8968 +v -49.5949 -12.7016 85.9012 +v -56.893 -12.7016 81.2518 +v -63.758 -12.7016 75.9841 +v -70.1378 -12.7016 70.1381 +v -75.9839 -12.7016 63.7583 +v -81.2516 -12.7016 56.8932 +v -85.901 -12.7016 49.5952 +v -89.8966 -12.7016 41.9197 +v -93.2081 -12.7016 33.9252 +v -95.8102 -12.7016 25.6725 +v -97.6831 -12.7016 17.2244 +v -98.8126 -12.7016 8.64521 +v -99.1901 -12.7016 0.000227816 +v -98.8126 -12.7016 -8.64476 +v -97.6832 -12.7016 -17.2239 +v -95.8103 -12.7016 -25.6721 +v -93.2083 -12.7016 -33.9248 +v -89.8968 -12.7016 -41.9193 +v -85.9012 -12.7016 -49.5948 +v -81.2519 -12.7016 -56.8929 +v -75.9842 -12.7016 -63.7579 +v -70.1382 -12.7016 -70.1378 +v -63.7584 -12.7016 -75.9838 +v -56.8933 -12.7016 -81.2516 +v -49.5953 -12.7016 -85.901 +v -41.9198 -12.7016 -89.8966 +v -33.9253 -12.7016 -93.2081 +v -25.6726 -12.7016 -95.8102 +v -17.2245 -12.7016 -97.6831 +v -8.64531 -12.7016 -98.8126 +v -0.0003299 -12.7016 -99.1901 +v 8.64465 -12.7016 -98.8126 +v 17.2238 -12.7016 -97.6832 +v 25.672 -12.7016 -95.8103 +v 33.9247 -12.7016 -93.2083 +v 41.9192 -12.7016 -89.8969 +v 49.5947 -12.7016 -85.9013 +v 56.8928 -12.7016 -81.252 +v 63.7578 -12.7016 -75.9842 +v 70.1377 -12.7016 -70.1382 +v 75.9837 -12.7016 -63.7584 +v 81.2515 -12.7016 -56.8934 +v 85.9009 -12.7016 -49.5954 +v 89.8966 -12.7016 -41.9199 +v 93.208 -12.7016 -33.9254 +v 95.8101 -12.7016 -25.6727 +v 97.6831 -12.7016 -17.2246 +v 98.8126 -12.7016 -8.64544 +v 97.7556 -21.0678 5.88009e-39 +v 97.3836 -21.0678 8.51995 +v 96.2704 -21.0678 16.9751 +v 94.4246 -21.0678 25.301 +v 91.8602 -21.0678 33.4343 +v 88.5966 -21.0678 41.3133 +v 84.6588 -21.0678 48.8777 +v 80.0767 -21.0678 56.0702 +v 74.8851 -21.0678 62.836 +v 69.1237 -21.0678 69.1236 +v 62.8361 -21.0678 74.8851 +v 56.0703 -21.0678 80.0766 +v 48.8778 -21.0678 84.6588 +v 41.3134 -21.0678 88.5966 +v 33.4344 -21.0678 91.8601 +v 25.3011 -21.0678 94.4246 +v 16.9752 -21.0678 96.2704 +v 8.52006 -21.0678 97.3836 +v 0.000112261 -21.0678 97.7556 +v -8.51984 -21.0678 97.3836 +v -16.9749 -21.0678 96.2704 +v -25.3009 -21.0678 94.4246 +v -33.4342 -21.0678 91.8602 +v -41.3132 -21.0678 88.5967 +v -48.8777 -21.0678 84.6589 +v -56.0702 -21.0678 80.0768 +v -62.8359 -21.0678 74.8852 +v -69.1235 -21.0678 69.1237 +v -74.885 -21.0678 62.8362 +v -80.0766 -21.0678 56.0704 +v -84.6587 -21.0678 48.8779 +v -88.5965 -21.0678 41.3135 +v -91.8601 -21.0678 33.4346 +v -94.4246 -21.0678 25.3012 +v -96.2704 -21.0678 16.9753 +v -97.3835 -21.0678 8.52018 +v -97.7556 -21.0678 0.000224521 +v -97.3836 -21.0678 -8.51973 +v -96.2705 -21.0678 -16.9748 +v -94.4247 -21.0678 -25.3008 +v -91.8603 -21.0678 -33.4341 +v -88.5967 -21.0678 -41.313 +v -84.6589 -21.0678 -48.8776 +v -80.0768 -21.0678 -56.0701 +v -74.8853 -21.0678 -62.8359 +v -69.1238 -21.0678 -69.1234 +v -62.8363 -21.0678 -74.8849 +v -56.0705 -21.0678 -80.0765 +v -48.878 -21.0678 -84.6587 +v -41.3136 -21.0678 -88.5965 +v -33.4347 -21.0678 -91.8601 +v -25.3013 -21.0678 -94.4245 +v -16.9754 -21.0678 -96.2704 +v -8.52028 -21.0678 -97.3835 +v -0.000325129 -21.0678 -97.7556 +v 8.51963 -21.0678 -97.3836 +v 16.9748 -21.0678 -96.2705 +v 25.3007 -21.0678 -94.4247 +v 33.4341 -21.0678 -91.8603 +v 41.3129 -21.0678 -88.5968 +v 48.8774 -21.0678 -84.659 +v 56.07 -21.0678 -80.0769 +v 62.8358 -21.0678 -74.8853 +v 69.1233 -21.0678 -69.1239 +v 74.8848 -21.0678 -62.8364 +v 80.0764 -21.0678 -56.0706 +v 84.6586 -21.0678 -48.8781 +v 88.5965 -21.0678 -41.3136 +v 91.86 -21.0678 -33.4347 +v 94.4245 -21.0678 -25.3014 +v 96.2703 -21.0678 -16.9755 +v 97.3835 -21.0678 -8.5204 +v 95.6167 -29.2821 5.88009e-39 +v 95.2529 -29.2821 8.33354 +v 94.1641 -29.2821 16.6037 +v 92.3587 -29.2821 24.7474 +v 89.8503 -29.2821 32.7028 +v 86.6582 -29.2821 40.4093 +v 82.8065 -29.2821 47.8083 +v 78.3247 -29.2821 54.8435 +v 73.2467 -29.2821 61.4612 +v 67.6113 -29.2821 67.6112 +v 61.4613 -29.2821 73.2466 +v 54.8435 -29.2821 78.3246 +v 47.8084 -29.2821 82.8065 +v 40.4094 -29.2821 86.6581 +v 32.7029 -29.2821 89.8503 +v 24.7475 -29.2821 92.3586 +v 16.6038 -29.2821 94.1641 +v 8.33364 -29.2821 95.2529 +v 0.000109804 -29.2821 95.6167 +v -8.33344 -29.2821 95.2529 +v -16.6035 -29.2821 94.1641 +v -24.7473 -29.2821 92.3587 +v -32.7027 -29.2821 89.8504 +v -40.4093 -29.2821 86.6582 +v -47.8082 -29.2821 82.8066 +v -54.8434 -29.2821 78.3247 +v -61.4611 -29.2821 73.2468 +v -67.6111 -29.2821 67.6113 +v -73.2466 -29.2821 61.4614 +v -78.3245 -29.2821 54.8436 +v -82.8064 -29.2821 47.8085 +v -86.6581 -29.2821 40.4095 +v -89.8503 -29.2821 32.703 +v -92.3586 -29.2821 24.7476 +v -94.164 -29.2821 16.6039 +v -95.2528 -29.2821 8.33376 +v -95.6167 -29.2821 0.000219609 +v -95.2529 -29.2821 -8.33333 +v -94.1641 -29.2821 -16.6034 +v -92.3587 -29.2821 -24.7472 +v -89.8504 -29.2821 -32.7026 +v -86.6583 -29.2821 -40.4091 +v -82.8066 -29.2821 -47.8081 +v -78.3248 -29.2821 -54.8433 +v -73.2468 -29.2821 -61.461 +v -67.6114 -29.2821 -67.611 +v -61.4614 -29.2821 -73.2465 +v -54.8437 -29.2821 -78.3245 +v -47.8086 -29.2821 -82.8064 +v -40.4096 -29.2821 -86.658 +v -32.7031 -29.2821 -89.8502 +v -24.7477 -29.2821 -92.3586 +v -16.604 -29.2821 -94.164 +v -8.33386 -29.2821 -95.2528 +v -0.000318015 -29.2821 -95.6167 +v 8.33323 -29.2821 -95.2529 +v 16.6034 -29.2821 -94.1641 +v 24.7471 -29.2821 -92.3587 +v 32.7025 -29.2821 -89.8504 +v 40.409 -29.2821 -86.6583 +v 47.808 -29.2821 -82.8067 +v 54.8432 -29.2821 -78.3248 +v 61.4609 -29.2821 -73.2469 +v 67.611 -29.2821 -67.6115 +v 73.2464 -29.2821 -61.4615 +v 78.3244 -29.2821 -54.8438 +v 82.8063 -29.2821 -47.8087 +v 86.658 -29.2821 -40.4097 +v 89.8502 -29.2821 -32.7032 +v 92.3586 -29.2821 -24.7478 +v 94.164 -29.2821 -16.6041 +v 95.2528 -29.2821 -8.33398 +v 92.789 -37.2855 5.88009e-39 +v 92.4359 -37.2855 8.08709 +v 91.3793 -37.2855 16.1126 +v 89.6273 -37.2855 24.0155 +v 87.1931 -37.2855 31.7357 +v 84.0954 -37.2855 39.2143 +v 80.3576 -37.2855 46.3945 +v 76.0083 -37.2855 53.2215 +v 71.0805 -37.2855 59.6436 +v 65.6117 -37.2855 65.6117 +v 59.6436 -37.2855 71.0804 +v 53.2216 -37.2855 76.0082 +v 46.3945 -37.2855 80.3576 +v 39.2144 -37.2855 84.0953 +v 31.7358 -37.2855 87.1931 +v 24.0156 -37.2855 89.6272 +v 16.1127 -37.2855 91.3793 +v 8.08718 -37.2855 92.4359 +v 0.000106557 -37.2855 92.789 +v -8.08698 -37.2855 92.4359 +v -16.1125 -37.2855 91.3793 +v -24.0154 -37.2855 89.6273 +v -31.7356 -37.2855 87.1931 +v -39.2142 -37.2855 84.0954 +v -46.3944 -37.2855 80.3577 +v -53.2214 -37.2855 76.0084 +v -59.6435 -37.2855 71.0806 +v -65.6116 -37.2855 65.6118 +v -71.0804 -37.2855 59.6437 +v -76.0082 -37.2855 53.2217 +v -80.3575 -37.2855 46.3946 +v -84.0953 -37.2855 39.2145 +v -87.193 -37.2855 31.7359 +v -89.6272 -37.2855 24.0157 +v -91.3793 -37.2855 16.1128 +v -92.4359 -37.2855 8.0873 +v -92.789 -37.2855 0.000213114 +v -92.4359 -37.2855 -8.08688 +v -91.3793 -37.2855 -16.1124 +v -89.6273 -37.2855 -24.0153 +v -87.1932 -37.2855 -31.7355 +v -84.0955 -37.2855 -39.2141 +v -80.3577 -37.2855 -46.3943 +v -76.0084 -37.2855 -53.2214 +v -71.0806 -37.2855 -59.6434 +v -65.6119 -37.2855 -65.6115 +v -59.6438 -37.2855 -71.0803 +v -53.2218 -37.2855 -76.0081 +v -46.3947 -37.2855 -80.3575 +v -39.2146 -37.2855 -84.0952 +v -31.736 -37.2855 -87.193 +v -24.0158 -37.2855 -89.6272 +v -16.1129 -37.2855 -91.3792 +v -8.0874 -37.2855 -92.4358 +v -0.00030861 -37.2855 -92.789 +v 8.08678 -37.2855 -92.4359 +v 16.1123 -37.2855 -91.3793 +v 24.0152 -37.2855 -89.6273 +v 31.7354 -37.2855 -87.1932 +v 39.214 -37.2855 -84.0955 +v 46.3942 -37.2855 -80.3578 +v 53.2213 -37.2855 -76.0085 +v 59.6433 -37.2855 -71.0807 +v 65.6114 -37.2855 -65.612 +v 71.0802 -37.2855 -59.6439 +v 76.0081 -37.2855 -53.2219 +v 80.3574 -37.2855 -46.3948 +v 84.0952 -37.2855 -39.2146 +v 87.193 -37.2855 -31.736 +v 89.6272 -37.2855 -24.0159 +v 91.3792 -37.2855 -16.1131 +v 92.4358 -37.2855 -8.08751 +v 89.2926 -45.0202 5.88009e-39 +v 88.9529 -45.0202 7.78236 +v 87.9361 -45.0202 15.5055 +v 86.2501 -45.0202 23.1106 +v 83.9077 -45.0202 30.5399 +v 80.9266 -45.0202 37.7367 +v 77.3297 -45.0202 44.6463 +v 73.1443 -45.0202 51.2161 +v 68.4022 -45.0202 57.3962 +v 63.1395 -45.0202 63.1394 +v 57.3963 -45.0202 68.4021 +v 51.2162 -45.0202 73.1442 +v 44.6464 -45.0202 77.3297 +v 37.7368 -45.0202 80.9266 +v 30.54 -45.0202 83.9076 +v 23.1107 -45.0202 86.2501 +v 15.5056 -45.0202 87.9361 +v 7.78246 -45.0202 88.9529 +v 0.000102542 -45.0202 89.2926 +v -7.78226 -45.0202 88.9529 +v -15.5054 -45.0202 87.9361 +v -23.1105 -45.0202 86.2501 +v -30.5398 -45.0202 83.9077 +v -37.7366 -45.0202 80.9267 +v -44.6462 -45.0202 77.3298 +v -51.216 -45.0202 73.1443 +v -57.3961 -45.0202 68.4022 +v -63.1393 -45.0202 63.1395 +v -68.402 -45.0202 57.3963 +v -73.1442 -45.0202 51.2163 +v -77.3296 -45.0202 44.6465 +v -80.9266 -45.0202 37.7369 +v -83.9076 -45.0202 30.5401 +v -86.25 -45.0202 23.1108 +v -87.9361 -45.0202 15.5057 +v -88.9528 -45.0202 7.78257 +v -89.2926 -45.0202 0.000205084 +v -88.9529 -45.0202 -7.78216 +v -87.9361 -45.0202 -15.5053 +v -86.2501 -45.0202 -23.1104 +v -83.9077 -45.0202 -30.5397 +v -80.9267 -45.0202 -37.7365 +v -77.3298 -45.0202 -44.6461 +v -73.1444 -45.0202 -51.216 +v -68.4023 -45.0202 -57.396 +v -63.1396 -45.0202 -63.1393 +v -57.3964 -45.0202 -68.402 +v -51.2164 -45.0202 -73.1441 +v -44.6465 -45.0202 -77.3296 +v -37.737 -45.0202 -80.9265 +v -30.5402 -45.0202 -83.9075 +v -23.1109 -45.0202 -86.25 +v -15.5058 -45.0202 -87.936 +v -7.78266 -45.0202 -88.9528 +v -0.000296982 -45.0202 -89.2926 +v 7.78207 -45.0202 -88.9529 +v 15.5052 -45.0202 -87.9361 +v 23.1103 -45.0202 -86.2502 +v 30.5396 -45.0202 -83.9077 +v 37.7364 -45.0202 -80.9268 +v 44.646 -45.0202 -77.3299 +v 51.2159 -45.0202 -73.1445 +v 57.3959 -45.0202 -68.4024 +v 63.1392 -45.0202 -63.1397 +v 68.4019 -45.0202 -57.3965 +v 73.1441 -45.0202 -51.2164 +v 77.3295 -45.0202 -44.6466 +v 80.9265 -45.0202 -37.737 +v 83.9075 -45.0202 -30.5402 +v 86.25 -45.0202 -23.111 +v 87.936 -45.0202 -15.5059 +v 88.9528 -45.0202 -7.78277 +v 85.153 -52.4306 5.88009e-39 +v 84.829 -52.4306 7.42157 +v 83.8593 -52.4306 14.7867 +v 82.2515 -52.4306 22.0392 +v 80.0177 -52.4306 29.124 +v 77.1748 -52.4306 35.9872 +v 73.7447 -52.4306 42.5765 +v 69.7533 -52.4306 48.8417 +v 65.231 -52.4306 54.7353 +v 60.2123 -52.4306 60.2122 +v 54.7353 -52.4306 65.2309 +v 48.8418 -52.4306 69.7532 +v 42.5765 -52.4306 73.7446 +v 35.9873 -52.4306 77.1748 +v 29.1241 -52.4306 80.0176 +v 22.0393 -52.4306 82.2515 +v 14.7867 -52.4306 83.8593 +v 7.42166 -52.4306 84.829 +v 9.77881e-05 -52.4306 85.153 +v -7.42147 -52.4306 84.829 +v -14.7866 -52.4306 83.8594 +v -22.0391 -52.4306 82.2515 +v -29.1239 -52.4306 80.0177 +v -35.9871 -52.4306 77.1749 +v -42.5764 -52.4306 73.7447 +v -48.8416 -52.4306 69.7533 +v -54.7352 -52.4306 65.2311 +v -60.2122 -52.4306 60.2124 +v -65.2309 -52.4306 54.7354 +v -69.7532 -52.4306 48.8419 +v -73.7446 -52.4306 42.5766 +v -77.1748 -52.4306 35.9874 +v -80.0176 -52.4306 29.1242 +v -82.2514 -52.4306 22.0394 +v -83.8593 -52.4306 14.7868 +v -84.8289 -52.4306 7.42177 +v -85.153 -52.4306 0.000195576 +v -84.829 -52.4306 -7.42138 +v -83.8594 -52.4306 -14.7865 +v -82.2515 -52.4306 -22.039 +v -80.0177 -52.4306 -29.1238 +v -77.1749 -52.4306 -35.987 +v -73.7448 -52.4306 -42.5763 +v -69.7534 -52.4306 -48.8416 +v -65.2311 -52.4306 -54.7351 +v -60.2124 -52.4306 -60.2121 +v -54.7355 -52.4306 -65.2308 +v -48.8419 -52.4306 -69.7531 +v -42.5767 -52.4306 -73.7445 +v -35.9875 -52.4306 -77.1747 +v -29.1243 -52.4306 -80.0175 +v -22.0395 -52.4306 -82.2514 +v -14.7869 -52.4306 -83.8593 +v -7.42185 -52.4306 -84.8289 +v -0.000283213 -52.4306 -85.153 +v 7.42129 -52.4306 -84.829 +v 14.7864 -52.4306 -83.8594 +v 22.0389 -52.4306 -82.2516 +v 29.1238 -52.4306 -80.0177 +v 35.9869 -52.4306 -77.175 +v 42.5762 -52.4306 -73.7448 +v 48.8415 -52.4306 -69.7534 +v 54.735 -52.4306 -65.2312 +v 60.212 -52.4306 -60.2125 +v 65.2308 -52.4306 -54.7356 +v 69.7531 -52.4306 -48.842 +v 73.7445 -52.4306 -42.5768 +v 77.1747 -52.4306 -35.9875 +v 80.0175 -52.4306 -29.1244 +v 82.2514 -52.4306 -22.0396 +v 83.8593 -52.4306 -14.787 +v 84.8289 -52.4306 -7.42196 +v 80.3998 -59.4632 5.88009e-39 +v 80.0939 -59.4632 7.0073 +v 79.1784 -59.4632 13.9613 +v 77.6603 -59.4632 20.809 +v 75.5511 -59.4632 27.4983 +v 72.867 -59.4632 33.9784 +v 69.6283 -59.4632 40.1999 +v 65.8597 -59.4632 46.1154 +v 61.5899 -59.4632 51.68 +v 56.8513 -59.4632 56.8512 +v 51.68 -59.4632 61.5898 +v 46.1155 -59.4632 65.8596 +v 40.2 -59.4632 69.6283 +v 33.9785 -59.4632 72.867 +v 27.4984 -59.4632 75.5511 +v 20.8091 -59.4632 77.6602 +v 13.9614 -59.4632 79.1784 +v 7.00739 -59.4632 80.0939 +v 9.23297e-05 -59.4632 80.3998 +v -7.00721 -59.4632 80.0939 +v -13.9612 -59.4632 79.1784 +v -20.8089 -59.4632 77.6603 +v -27.4983 -59.4632 75.5512 +v -33.9783 -59.4632 72.867 +v -40.1998 -59.4632 69.6283 +v -46.1153 -59.4632 65.8597 +v -51.6799 -59.4632 61.5899 +v -56.8512 -59.4632 56.8514 +v -61.5897 -59.4632 51.6801 +v -65.8596 -59.4632 46.1156 +v -69.6282 -59.4632 40.2 +v -72.8669 -59.4632 33.9786 +v -75.5511 -59.4632 27.4985 +v -77.6602 -59.4632 20.8092 +v -79.1783 -59.4632 13.9614 +v -80.0939 -59.4632 7.00749 +v -80.3998 -59.4632 0.000184659 +v -80.0939 -59.4632 -7.00712 +v -79.1784 -59.4632 -13.9611 +v -77.6603 -59.4632 -20.8088 +v -75.5512 -59.4632 -27.4982 +v -72.8671 -59.4632 -33.9782 +v -69.6284 -59.4632 -40.1997 +v -65.8598 -59.4632 -46.1153 +v -61.59 -59.4632 -51.6798 +v -56.8514 -59.4632 -56.8511 +v -51.6802 -59.4632 -61.5897 +v -46.1156 -59.4632 -65.8596 +v -40.2001 -59.4632 -69.6282 +v -33.9787 -59.4632 -72.8669 +v -27.4986 -59.4632 -75.551 +v -20.8093 -59.4632 -77.6602 +v -13.9615 -59.4632 -79.1783 +v -7.00757 -59.4632 -80.0938 +v -0.000267405 -59.4632 -80.3998 +v 7.00704 -59.4632 -80.0939 +v 13.961 -59.4632 -79.1784 +v 20.8087 -59.4632 -77.6603 +v 27.4981 -59.4632 -75.5512 +v 33.9781 -59.4632 -72.8671 +v 40.1996 -59.4632 -69.6284 +v 46.1152 -59.4632 -65.8599 +v 51.6798 -59.4632 -61.59 +v 56.851 -59.4632 -56.8515 +v 61.5896 -59.4632 -51.6803 +v 65.8595 -59.4632 -46.1157 +v 69.6281 -59.4632 -40.2002 +v 72.8668 -59.4632 -33.9787 +v 75.551 -59.4632 -27.4987 +v 77.6602 -59.4632 -20.8093 +v 79.1783 -59.4632 -13.9616 +v 80.0938 -59.4632 -7.00767 +v 75.0674 -66.0673 5.88009e-39 +v 74.7817 -66.0673 6.54255 +v 73.9269 -66.0673 13.0353 +v 72.5095 -66.0673 19.4288 +v 70.5402 -66.0673 25.6745 +v 68.0341 -66.0673 31.7248 +v 65.0102 -66.0673 37.5337 +v 61.4916 -66.0673 43.0568 +v 57.505 -66.0673 48.2523 +v 53.0807 -66.0673 53.0806 +v 48.2524 -66.0673 57.5049 +v 43.0569 -66.0673 61.4915 +v 37.5337 -66.0673 65.0102 +v 31.7249 -66.0673 68.0341 +v 25.6746 -66.0673 70.5402 +v 19.4289 -66.0673 72.5095 +v 13.0354 -66.0673 73.9269 +v 6.54263 -66.0673 74.7817 +v 8.6206e-05 -66.0673 75.0674 +v -6.54246 -66.0673 74.7817 +v -13.0352 -66.0673 73.9269 +v -19.4288 -66.0673 72.5095 +v -25.6745 -66.0673 70.5403 +v -31.7247 -66.0673 68.0342 +v -37.5336 -66.0673 65.0103 +v -43.0568 -66.0673 61.4916 +v -48.2523 -66.0673 57.505 +v -53.0805 -66.0673 53.0807 +v -57.5048 -66.0673 48.2525 +v -61.4915 -66.0673 43.057 +v -65.0102 -66.0673 37.5338 +v -68.0341 -66.0673 31.725 +v -70.5402 -66.0673 25.6747 +v -72.5095 -66.0673 19.429 +v -73.9269 -66.0673 13.0355 +v -74.7817 -66.0673 6.54272 +v -75.0674 -66.0673 0.000172412 +v -74.7817 -66.0673 -6.54238 +v -73.9269 -66.0673 -13.0351 +v -72.5095 -66.0673 -19.4287 +v -70.5403 -66.0673 -25.6744 +v -68.0342 -66.0673 -31.7247 +v -65.0103 -66.0673 -37.5335 +v -61.4917 -66.0673 -43.0567 +v -57.5051 -66.0673 -48.2522 +v -53.0808 -66.0673 -53.0805 +v -48.2525 -66.0673 -57.5048 +v -43.057 -66.0673 -61.4915 +v -37.5339 -66.0673 -65.0101 +v -31.7251 -66.0673 -68.034 +v -25.6748 -66.0673 -70.5402 +v -19.4291 -66.0673 -72.5094 +v -13.0356 -66.0673 -73.9269 +v -6.5428 -66.0673 -74.7817 +v -0.000249669 -66.0673 -75.0674 +v 6.5423 -66.0673 -74.7817 +v 13.0351 -66.0673 -73.927 +v 19.4286 -66.0673 -72.5096 +v 25.6743 -66.0673 -70.5403 +v 31.7246 -66.0673 -68.0342 +v 37.5334 -66.0673 -65.0104 +v 43.0566 -66.0673 -61.4917 +v 48.2521 -66.0673 -57.5051 +v 53.0804 -66.0673 -53.0808 +v 57.5047 -66.0673 -48.2526 +v 61.4914 -66.0673 -43.0571 +v 65.0101 -66.0673 -37.5339 +v 68.034 -66.0673 -31.7251 +v 70.5401 -66.0673 -25.6748 +v 72.5094 -66.0673 -19.4292 +v 73.9268 -66.0673 -13.0356 +v 74.7817 -66.0673 -6.54289 +v 69.194 -72.1955 5.88009e-39 +v 68.9307 -72.1955 6.03065 +v 68.1428 -72.1955 12.0154 +v 66.8363 -72.1955 17.9087 +v 65.0211 -72.1955 23.6657 +v 62.7111 -72.1955 29.2426 +v 59.9238 -72.1955 34.597 +v 56.6804 -72.1955 39.688 +v 53.0057 -72.1955 44.477 +v 48.9276 -72.1955 48.9275 +v 44.4771 -72.1955 53.0057 +v 39.6881 -72.1955 56.6804 +v 34.597 -72.1955 59.9238 +v 29.2427 -72.1955 62.7111 +v 23.6658 -72.1955 65.0211 +v 17.9088 -72.1955 66.8363 +v 12.0155 -72.1955 68.1428 +v 6.03073 -72.1955 68.9307 +v 7.94611e-05 -72.1955 69.194 +v -6.03058 -72.1955 68.9307 +v -12.0153 -72.1955 68.1428 +v -17.9086 -72.1955 66.8363 +v -23.6657 -72.1955 65.0211 +v -29.2426 -72.1955 62.7111 +v -34.5969 -72.1955 59.9238 +v -39.688 -72.1955 56.6805 +v -44.477 -72.1955 53.0058 +v -48.9275 -72.1955 48.9276 +v -53.0056 -72.1955 44.4771 +v -56.6804 -72.1955 39.6882 +v -59.9237 -72.1955 34.5971 +v -62.711 -72.1955 29.2428 +v -65.0211 -72.1955 23.6659 +v -66.8363 -72.1955 17.9089 +v -68.1428 -72.1955 12.0156 +v -68.9307 -72.1955 6.03081 +v -69.194 -72.1955 0.000158922 +v -68.9307 -72.1955 -6.0305 +v -68.1428 -72.1955 -12.0153 +v -66.8363 -72.1955 -17.9086 +v -65.0212 -72.1955 -23.6656 +v -62.7112 -72.1955 -29.2425 +v -59.9239 -72.1955 -34.5969 +v -56.6805 -72.1955 -39.6879 +v -53.0058 -72.1955 -44.4769 +v -48.9277 -72.1955 -48.9274 +v -44.4772 -72.1955 -53.0056 +v -39.6882 -72.1955 -56.6803 +v -34.5972 -72.1955 -59.9237 +v -29.2429 -72.1955 -62.711 +v -23.666 -72.1955 -65.021 +v -17.9089 -72.1955 -66.8362 +v -12.0156 -72.1955 -68.1428 +v -6.03088 -72.1955 -68.9307 +v -0.000230135 -72.1955 -69.194 +v 6.03043 -72.1955 -68.9307 +v 12.0152 -72.1955 -68.1428 +v 17.9085 -72.1955 -66.8363 +v 23.6655 -72.1955 -65.0212 +v 29.2424 -72.1955 -62.7112 +v 34.5968 -72.1955 -59.9239 +v 39.6878 -72.1955 -56.6806 +v 44.4768 -72.1955 -53.0059 +v 48.9274 -72.1955 -48.9277 +v 53.0055 -72.1955 -44.4773 +v 56.6803 -72.1955 -39.6883 +v 59.9236 -72.1955 -34.5972 +v 62.711 -72.1955 -29.2429 +v 65.021 -72.1955 -23.666 +v 66.8362 -72.1955 -17.909 +v 68.1427 -72.1955 -12.0157 +v 68.9307 -72.1955 -6.03097 +v 62.8221 -77.8035 5.88009e-39 +v 62.5831 -77.8035 5.47531 +v 61.8677 -77.8035 10.9089 +v 60.6815 -77.8035 16.2596 +v 59.0335 -77.8035 21.4864 +v 56.9362 -77.8035 26.5498 +v 54.4056 -77.8035 31.4111 +v 51.4609 -77.8035 36.0333 +v 48.1246 -77.8035 40.3813 +v 44.422 -77.8035 44.4219 +v 40.3813 -77.8035 48.1245 +v 36.0333 -77.8035 51.4609 +v 31.4111 -77.8035 54.4056 +v 26.5498 -77.8035 56.9362 +v 21.4865 -77.8035 59.0335 +v 16.2596 -77.8035 60.6815 +v 10.909 -77.8035 61.8677 +v 5.47537 -77.8035 62.5831 +v 7.21438e-05 -77.8035 62.8221 +v -5.47524 -77.8035 62.5831 +v -10.9089 -77.8035 61.8678 +v -16.2595 -77.8035 60.6816 +v -21.4864 -77.8035 59.0335 +v -26.5497 -77.8035 56.9362 +v -31.411 -77.8035 54.4056 +v -36.0332 -77.8035 51.4609 +v -40.3812 -77.8035 48.1246 +v -44.4219 -77.8035 44.422 +v -48.1245 -77.8035 40.3814 +v -51.4608 -77.8035 36.0334 +v -54.4055 -77.8035 31.4112 +v -56.9361 -77.8035 26.5499 +v -59.0335 -77.8035 21.4866 +v -60.6815 -77.8035 16.2597 +v -61.8677 -77.8035 10.9091 +v -62.5831 -77.8035 5.47545 +v -62.8221 -77.8035 0.000144288 +v -62.5831 -77.8035 -5.47517 +v -61.8678 -77.8035 -10.9088 +v -60.6816 -77.8035 -16.2594 +v -59.0336 -77.8035 -21.4863 +v -56.9363 -77.8035 -26.5496 +v -54.4057 -77.8035 -31.4109 +v -51.461 -77.8035 -36.0332 +v -48.1247 -77.8035 -40.3812 +v -44.4221 -77.8035 -44.4218 +v -40.3814 -77.8035 -48.1244 +v -36.0334 -77.8035 -51.4608 +v -31.4112 -77.8035 -54.4055 +v -26.55 -77.8035 -56.9361 +v -21.4866 -77.8035 -59.0334 +v -16.2598 -77.8035 -60.6815 +v -10.9092 -77.8035 -61.8677 +v -5.47552 -77.8035 -62.5831 +v -0.000208942 -77.8035 -62.8221 +v 5.4751 -77.8035 -62.5831 +v 10.9087 -77.8035 -61.8678 +v 16.2594 -77.8035 -60.6816 +v 21.4862 -77.8035 -59.0336 +v 26.5496 -77.8035 -56.9363 +v 31.4109 -77.8035 -54.4057 +v 36.0331 -77.8035 -51.461 +v 40.3811 -77.8035 -48.1247 +v 44.4218 -77.8035 -44.4221 +v 48.1244 -77.8035 -40.3815 +v 51.4607 -77.8035 -36.0335 +v 54.4054 -77.8035 -31.4113 +v 56.9361 -77.8035 -26.55 +v 59.0334 -77.8035 -21.4867 +v 60.6815 -77.8035 -16.2598 +v 61.8677 -77.8035 -10.9092 +v 62.5831 -77.8035 -5.4756 +v 55.9976 -82.8509 5.88009e-39 +v 55.7846 -82.8509 4.88051 +v 55.1469 -82.8509 9.72388 +v 54.0896 -82.8509 14.4932 +v 52.6206 -82.8509 19.1523 +v 50.7511 -82.8509 23.6656 +v 48.4954 -82.8509 27.9988 +v 45.8706 -82.8509 32.1189 +v 42.8967 -82.8509 35.9946 +v 39.5963 -82.8509 39.5963 +v 35.9946 -82.8509 42.8967 +v 32.119 -82.8509 45.8706 +v 27.9989 -82.8509 48.4954 +v 23.6657 -82.8509 50.7511 +v 19.1524 -82.8509 52.6206 +v 14.4933 -82.8509 54.0896 +v 9.72394 -82.8509 55.1469 +v 4.88057 -82.8509 55.7846 +v 6.43067e-05 -82.8509 55.9976 +v -4.88045 -82.8509 55.7846 +v -9.72382 -82.8509 55.1469 +v -14.4932 -82.8509 54.0896 +v -19.1523 -82.8509 52.6206 +v -23.6656 -82.8509 50.7511 +v -27.9988 -82.8509 48.4954 +v -32.1189 -82.8509 45.8706 +v -35.9945 -82.8509 42.8967 +v -39.5962 -82.8509 39.5964 +v -42.8966 -82.8509 35.9947 +v -45.8705 -82.8509 32.119 +v -48.4953 -82.8509 27.9989 +v -50.7511 -82.8509 23.6657 +v -52.6205 -82.8509 19.1524 +v -54.0895 -82.8509 14.4934 +v -55.1469 -82.8509 9.724 +v -55.7845 -82.8509 4.88064 +v -55.9976 -82.8509 0.000128613 +v -55.7846 -82.8509 -4.88039 +v -55.1469 -82.8509 -9.72376 +v -54.0896 -82.8509 -14.4931 +v -52.6206 -82.8509 -19.1522 +v -50.7512 -82.8509 -23.6655 +v -48.4955 -82.8509 -27.9987 +v -45.8707 -82.8509 -32.1188 +v -42.8968 -82.8509 -35.9945 +v -39.5964 -82.8509 -39.5962 +v -35.9947 -82.8509 -42.8966 +v -32.1191 -82.8509 -45.8705 +v -27.999 -82.8509 -48.4953 +v -23.6658 -82.8509 -50.751 +v -19.1525 -82.8509 -52.6205 +v -14.4934 -82.8509 -54.0895 +v -9.72407 -82.8509 -55.1469 +v -4.8807 -82.8509 -55.7845 +v -0.000186245 -82.8509 -55.9976 +v 4.88033 -82.8509 -55.7846 +v 9.7237 -82.8509 -55.1469 +v 14.4931 -82.8509 -54.0896 +v 19.1521 -82.8509 -52.6206 +v 23.6654 -82.8509 -50.7512 +v 27.9986 -82.8509 -48.4955 +v 32.1188 -82.8509 -45.8707 +v 35.9944 -82.8509 -42.8968 +v 39.5962 -82.8509 -39.5965 +v 42.8965 -82.8509 -35.9948 +v 45.8705 -82.8509 -32.1191 +v 48.4953 -82.8509 -27.999 +v 50.751 -82.8509 -23.6658 +v 52.6205 -82.8509 -19.1525 +v 54.0895 -82.8509 -14.4935 +v 55.1469 -82.8509 -9.72414 +v 55.7845 -82.8509 -4.88077 +v 48.7697 -87.3013 5.88009e-39 +v 48.5841 -87.3013 4.25055 +v 48.0287 -87.3013 8.46876 +v 47.1079 -87.3013 12.6225 +v 45.8285 -87.3013 16.6802 +v 44.2003 -87.3013 20.6109 +v 42.2358 -87.3013 24.3848 +v 39.9498 -87.3013 27.9731 +v 37.3597 -87.3013 31.3485 +v 34.4854 -87.3013 34.4853 +v 31.3486 -87.3013 37.3597 +v 27.9732 -87.3013 39.9498 +v 24.3849 -87.3013 42.2358 +v 20.611 -87.3013 44.2003 +v 16.6802 -87.3013 45.8285 +v 12.6226 -87.3013 47.1079 +v 8.46881 -87.3013 48.0287 +v 4.25061 -87.3013 48.5841 +v 5.60062e-05 -87.3013 48.7697 +v -4.2505 -87.3013 48.5841 +v -8.4687 -87.3013 48.0288 +v -12.6225 -87.3013 47.1079 +v -16.6801 -87.3013 45.8285 +v -20.6109 -87.3013 44.2004 +v -24.3848 -87.3013 42.2358 +v -27.9731 -87.3013 39.9498 +v -31.3485 -87.3013 37.3598 +v -34.4853 -87.3013 34.4854 +v -37.3597 -87.3013 31.3486 +v -39.9497 -87.3013 27.9732 +v -42.2357 -87.3013 24.3849 +v -44.2003 -87.3013 20.611 +v -45.8285 -87.3013 16.6803 +v -47.1079 -87.3013 12.6226 +v -48.0287 -87.3013 8.46886 +v -48.5841 -87.3013 4.25067 +v -48.7697 -87.3013 0.000112012 +v -48.5841 -87.3013 -4.25044 +v -48.0288 -87.3013 -8.46865 +v -47.1079 -87.3013 -12.6224 +v -45.8285 -87.3013 -16.6801 +v -44.2004 -87.3013 -20.6108 +v -42.2358 -87.3013 -24.3847 +v -39.9498 -87.3013 -27.973 +v -37.3598 -87.3013 -31.3484 +v -34.4855 -87.3013 -34.4853 +v -31.3486 -87.3013 -37.3596 +v -27.9732 -87.3013 -39.9497 +v -24.3849 -87.3013 -42.2357 +v -20.6111 -87.3013 -44.2003 +v -16.6804 -87.3013 -45.8284 +v -12.6227 -87.3013 -47.1078 +v -8.46892 -87.3013 -48.0287 +v -4.25072 -87.3013 -48.5841 +v -0.000162205 -87.3013 -48.7697 +v 4.25039 -87.3013 -48.5841 +v 8.4686 -87.3013 -48.0288 +v 12.6224 -87.3013 -47.1079 +v 16.6801 -87.3013 -45.8286 +v 20.6108 -87.3013 -44.2004 +v 24.3847 -87.3013 -42.2359 +v 27.973 -87.3013 -39.9499 +v 31.3484 -87.3013 -37.3599 +v 34.4852 -87.3013 -34.4855 +v 37.3596 -87.3013 -31.3487 +v 39.9497 -87.3013 -27.9733 +v 42.2357 -87.3013 -24.385 +v 44.2002 -87.3013 -20.6111 +v 45.8284 -87.3013 -16.6804 +v 47.1078 -87.3013 -12.6227 +v 48.0287 -87.3013 -8.46898 +v 48.5841 -87.3013 -4.25078 +v 41.1903 -91.1228 5.88009e-39 +v 41.0336 -91.1228 3.58997 +v 40.5645 -91.1228 7.15262 +v 39.7868 -91.1228 10.6608 +v 38.7062 -91.1228 14.0879 +v 37.3311 -91.1228 17.4078 +v 35.6719 -91.1228 20.5951 +v 33.7411 -91.1228 23.6258 +v 31.5536 -91.1228 26.4766 +v 29.126 -91.1228 29.1259 +v 26.4766 -91.1228 31.5536 +v 23.6258 -91.1228 33.7411 +v 20.5952 -91.1228 35.6718 +v 17.4078 -91.1228 37.3311 +v 14.0879 -91.1228 38.7062 +v 10.6609 -91.1228 39.7868 +v 7.15266 -91.1228 40.5645 +v 3.59001 -91.1228 41.0336 +v 4.73022e-05 -91.1228 41.1903 +v -3.58992 -91.1228 41.0336 +v -7.15257 -91.1228 40.5646 +v -10.6608 -91.1228 39.7868 +v -14.0879 -91.1228 38.7063 +v -17.4077 -91.1228 37.3311 +v -20.5951 -91.1228 35.6719 +v -23.6257 -91.1228 33.7412 +v -26.4766 -91.1228 31.5537 +v -29.1259 -91.1228 29.126 +v -31.5536 -91.1228 26.4767 +v -33.7411 -91.1228 23.6259 +v -35.6718 -91.1228 20.5952 +v -37.3311 -91.1228 17.4079 +v -38.7062 -91.1228 14.088 +v -39.7868 -91.1228 10.6609 +v -40.5645 -91.1228 7.15271 +v -41.0336 -91.1228 3.59007 +v -41.1903 -91.1228 9.46044e-05 +v -41.0336 -91.1228 -3.58988 +v -40.5646 -91.1228 -7.15253 +v -39.7868 -91.1228 -10.6607 +v -38.7063 -91.1228 -14.0878 +v -37.3312 -91.1228 -17.4077 +v -35.6719 -91.1228 -20.5951 +v -33.7412 -91.1228 -23.6257 +v -31.5537 -91.1228 -26.4765 +v -29.126 -91.1228 -29.1259 +v -26.4767 -91.1228 -31.5535 +v -23.6259 -91.1228 -33.7411 +v -20.5953 -91.1228 -35.6718 +v -17.4079 -91.1228 -37.331 +v -14.088 -91.1228 -38.7062 +v -10.661 -91.1228 -39.7868 +v -7.15276 -91.1228 -40.5645 +v -3.59011 -91.1228 -41.0336 +v -0.000136996 -91.1228 -41.1903 +v 3.58984 -91.1228 -41.0336 +v 7.15249 -91.1228 -40.5646 +v 10.6607 -91.1228 -39.7868 +v 14.0878 -91.1228 -38.7063 +v 17.4076 -91.1228 -37.3312 +v 20.595 -91.1228 -35.6719 +v 23.6257 -91.1228 -33.7412 +v 26.4765 -91.1228 -31.5537 +v 29.1258 -91.1228 -29.1261 +v 31.5535 -91.1228 -26.4767 +v 33.741 -91.1228 -23.6259 +v 35.6718 -91.1228 -20.5953 +v 37.331 -91.1228 -17.4079 +v 38.7062 -91.1228 -14.0881 +v 39.7867 -91.1228 -10.661 +v 40.5645 -91.1228 -7.15281 +v 41.0336 -91.1228 -3.59016 +v 33.3142 -94.2877 5.88009e-39 +v 33.1874 -94.2877 2.90352 +v 32.8081 -94.2877 5.78494 +v 32.179 -94.2877 8.62234 +v 31.3051 -94.2877 11.3941 +v 30.1929 -94.2877 14.0792 +v 28.8509 -94.2877 16.6571 +v 27.2894 -94.2877 19.1082 +v 25.5202 -94.2877 21.4139 +v 23.5567 -94.2877 23.5567 +v 21.414 -94.2877 25.5201 +v 19.1083 -94.2877 27.2894 +v 16.6571 -94.2877 28.8509 +v 14.0792 -94.2877 30.1929 +v 11.3942 -94.2877 31.3051 +v 8.62238 -94.2877 32.179 +v 5.78498 -94.2877 32.8081 +v 2.90356 -94.2877 33.1874 +v 3.82574e-05 -94.2877 33.3142 +v -2.90348 -94.2877 33.1874 +v -5.78491 -94.2877 32.8081 +v -8.6223 -94.2877 32.179 +v -11.3941 -94.2877 31.3051 +v -14.0791 -94.2877 30.1929 +v -16.6571 -94.2877 28.851 +v -19.1082 -94.2877 27.2894 +v -21.4139 -94.2877 25.5202 +v -23.5567 -94.2877 23.5567 +v -25.5201 -94.2877 21.414 +v -27.2894 -94.2877 19.1083 +v -28.8509 -94.2877 16.6572 +v -30.1929 -94.2877 14.0792 +v -31.3051 -94.2877 11.3942 +v -32.179 -94.2877 8.62241 +v -32.8081 -94.2877 5.78501 +v -33.1874 -94.2877 2.9036 +v -33.3142 -94.2877 7.65148e-05 +v -33.1874 -94.2877 -2.90345 +v -32.8081 -94.2877 -5.78487 +v -32.1791 -94.2877 -8.62227 +v -31.3051 -94.2877 -11.394 +v -30.1929 -94.2877 -14.0791 +v -28.851 -94.2877 -16.657 +v -27.2894 -94.2877 -19.1082 +v -25.5202 -94.2877 -21.4139 +v -23.5568 -94.2877 -23.5566 +v -21.414 -94.2877 -25.5201 +v -19.1083 -94.2877 -27.2893 +v -16.6572 -94.2877 -28.8509 +v -14.0793 -94.2877 -30.1929 +v -11.3942 -94.2877 -31.3051 +v -8.62245 -94.2877 -32.179 +v -5.78506 -94.2877 -32.8081 +v -2.90363 -94.2877 -33.1874 +v -0.000110801 -94.2877 -33.3142 +v 2.90341 -94.2877 -33.1874 +v 5.78484 -94.2877 -32.8081 +v 8.62224 -94.2877 -32.1791 +v 11.394 -94.2877 -31.3051 +v 14.0791 -94.2877 -30.193 +v 16.657 -94.2877 -28.851 +v 19.1081 -94.2877 -27.2895 +v 21.4138 -94.2877 -25.5202 +v 23.5566 -94.2877 -23.5568 +v 25.5201 -94.2877 -21.414 +v 27.2893 -94.2877 -19.1083 +v 28.8509 -94.2877 -16.6572 +v 30.1929 -94.2877 -14.0793 +v 31.3051 -94.2877 -11.3943 +v 32.179 -94.2877 -8.62248 +v 32.808 -94.2877 -5.7851 +v 33.1874 -94.2877 -2.90367 +v 25.198 -96.7732 5.88009e-39 +v 25.1021 -96.7732 2.19615 +v 24.8152 -96.7732 4.37559 +v 24.3394 -96.7732 6.52172 +v 23.6784 -96.7732 8.61822 +v 22.8372 -96.7732 10.6491 +v 21.8221 -96.7732 12.599 +v 20.641 -96.7732 14.453 +v 19.3028 -96.7732 16.197 +v 17.8177 -96.7732 17.8177 +v 16.197 -96.7732 19.3028 +v 14.453 -96.7732 20.641 +v 12.599 -96.7732 21.8221 +v 10.6492 -96.7732 22.8371 +v 8.61825 -96.7732 23.6784 +v 6.52175 -96.7732 24.3394 +v 4.37561 -96.7732 24.8152 +v 2.19618 -96.7732 25.1021 +v 2.89369e-05 -96.7732 25.198 +v -2.19612 -96.7732 25.1021 +v -4.37556 -96.7732 24.8152 +v -6.52169 -96.7732 24.3394 +v -8.6182 -96.7732 23.6784 +v -10.6491 -96.7732 22.8372 +v -12.599 -96.7732 21.8221 +v -14.453 -96.7732 20.641 +v -16.1969 -96.7732 19.3028 +v -17.8177 -96.7732 17.8177 +v -19.3028 -96.7732 16.197 +v -20.641 -96.7732 14.453 +v -21.8221 -96.7732 12.599 +v -22.8371 -96.7732 10.6492 +v -23.6784 -96.7732 8.61827 +v -24.3394 -96.7732 6.52177 +v -24.8152 -96.7732 4.37564 +v -25.1021 -96.7732 2.19621 +v -25.198 -96.7732 5.78739e-05 +v -25.1021 -96.7732 -2.19609 +v -24.8152 -96.7732 -4.37553 +v -24.3394 -96.7732 -6.52167 +v -23.6784 -96.7732 -8.61817 +v -22.8372 -96.7732 -10.6491 +v -21.8222 -96.7732 -12.5989 +v -20.641 -96.7732 -14.4529 +v -19.3028 -96.7732 -16.1969 +v -17.8177 -96.7732 -17.8176 +v -16.197 -96.7732 -19.3028 +v -14.453 -96.7732 -20.641 +v -12.5991 -96.7732 -21.8221 +v -10.6492 -96.7732 -22.8371 +v -8.6183 -96.7732 -23.6784 +v -6.5218 -96.7732 -24.3394 +v -4.37567 -96.7732 -24.8152 +v -2.19623 -96.7732 -25.1021 +v -8.3807e-05 -96.7732 -25.198 +v 2.19607 -96.7732 -25.1021 +v 4.37551 -96.7732 -24.8152 +v 6.52164 -96.7732 -24.3394 +v 8.61815 -96.7732 -23.6784 +v 10.6491 -96.7732 -22.8372 +v 12.5989 -96.7732 -21.8222 +v 14.4529 -96.7732 -20.6411 +v 16.1969 -96.7732 -19.3029 +v 17.8176 -96.7732 -17.8178 +v 19.3027 -96.7732 -16.197 +v 20.6409 -96.7732 -14.4531 +v 21.8221 -96.7732 -12.5991 +v 22.8371 -96.7732 -10.6492 +v 23.6784 -96.7732 -8.61832 +v 24.3394 -96.7732 -6.52182 +v 24.8152 -96.7732 -4.3757 +v 25.1021 -96.7732 -2.19627 +v 16.9003 -98.5616 5.88009e-39 +v 16.836 -98.5616 1.47296 +v 16.6436 -98.5616 2.93471 +v 16.3244 -98.5616 4.37412 +v 15.8811 -98.5616 5.78024 +v 15.3169 -98.5616 7.14237 +v 14.6361 -98.5616 8.45015 +v 13.8439 -98.5616 9.69361 +v 12.9464 -98.5616 10.8633 +v 11.9503 -98.5616 11.9503 +v 10.8633 -98.5616 12.9464 +v 9.69363 -98.5616 13.8439 +v 8.45016 -98.5616 14.6361 +v 7.14239 -98.5616 15.3169 +v 5.78026 -98.5616 15.8811 +v 4.37414 -98.5616 16.3244 +v 2.93472 -98.5616 16.6435 +v 1.47298 -98.5616 16.836 +v 1.9408e-05 -98.5616 16.9003 +v -1.47294 -98.5616 16.836 +v -2.93469 -98.5616 16.6436 +v -4.3741 -98.5616 16.3244 +v -5.78022 -98.5616 15.8811 +v -7.14236 -98.5616 15.3169 +v -8.45013 -98.5616 14.6361 +v -9.69359 -98.5616 13.8439 +v -10.8633 -98.5616 12.9464 +v -11.9503 -98.5616 11.9503 +v -12.9464 -98.5616 10.8633 +v -13.8439 -98.5616 9.69364 +v -14.6361 -98.5616 8.45018 +v -15.3169 -98.5616 7.14241 +v -15.8811 -98.5616 5.78028 +v -16.3244 -98.5616 4.37415 +v -16.6435 -98.5616 2.93474 +v -16.836 -98.5616 1.473 +v -16.9003 -98.5616 3.8816e-05 +v -16.836 -98.5616 -1.47292 +v -16.6436 -98.5616 -2.93467 +v -16.3245 -98.5616 -4.37408 +v -15.8811 -98.5616 -5.7802 +v -15.3169 -98.5616 -7.14234 +v -14.6361 -98.5616 -8.45011 +v -13.8439 -98.5616 -9.69358 +v -12.9464 -98.5616 -10.8633 +v -11.9504 -98.5616 -11.9503 +v -10.8633 -98.5616 -12.9464 +v -9.69365 -98.5616 -13.8439 +v -8.45019 -98.5616 -14.6361 +v -7.14243 -98.5616 -15.3169 +v -5.7803 -98.5616 -15.8811 +v -4.37417 -98.5616 -16.3244 +v -2.93476 -98.5616 -16.6435 +v -1.47301 -98.5616 -16.836 +v -5.62093e-05 -98.5616 -16.9003 +v 1.4729 -98.5616 -16.836 +v 2.93465 -98.5616 -16.6436 +v 4.37407 -98.5616 -16.3245 +v 5.78019 -98.5616 -15.8811 +v 7.14232 -98.5616 -15.3169 +v 8.4501 -98.5616 -14.6361 +v 9.69356 -98.5616 -13.844 +v 10.8633 -98.5616 -12.9464 +v 11.9503 -98.5616 -11.9504 +v 12.9463 -98.5616 -10.8634 +v 13.8439 -98.5616 -9.69367 +v 14.6361 -98.5616 -8.45021 +v 15.3168 -98.5616 -7.14244 +v 15.8811 -98.5616 -5.78031 +v 16.3244 -98.5616 -4.37419 +v 16.6435 -98.5616 -2.93478 +v 16.836 -98.5616 -1.47304 +v 8.48083 -99.6397 5.88009e-39 +v 8.44856 -99.6397 0.739153 +v 8.35199 -99.6397 1.47268 +v 8.19185 -99.6397 2.195 +v 7.96938 -99.6397 2.90061 +v 7.68624 -99.6397 3.58415 +v 7.34462 -99.6397 4.24041 +v 6.94709 -99.6397 4.8644 +v 6.4967 -99.6397 5.45137 +v 5.99686 -99.6397 5.99685 +v 5.45138 -99.6397 6.49669 +v 4.86441 -99.6397 6.94709 +v 4.24042 -99.6397 7.34461 +v 3.58416 -99.6397 7.68624 +v 2.90062 -99.6397 7.96937 +v 2.19501 -99.6397 8.19185 +v 1.47269 -99.6397 8.35199 +v 0.739162 -99.6397 8.44856 +v 9.73923e-06 -99.6397 8.48083 +v -0.739143 -99.6397 8.44856 +v -1.47267 -99.6397 8.35199 +v -2.19499 -99.6397 8.19186 +v -2.9006 -99.6397 7.96938 +v -3.58414 -99.6397 7.68625 +v -4.24041 -99.6397 7.34462 +v -4.86439 -99.6397 6.9471 +v -5.45136 -99.6397 6.4967 +v -5.99684 -99.6397 5.99686 +v -6.49668 -99.6397 5.45138 +v -6.94708 -99.6397 4.86442 +v -7.34461 -99.6397 4.24043 +v -7.68624 -99.6397 3.58417 +v -7.96937 -99.6397 2.90063 +v -8.19185 -99.6397 2.19502 +v -8.35198 -99.6397 1.4727 +v -8.44856 -99.6397 0.739172 +v -8.48083 -99.6397 1.94785e-05 +v -8.44856 -99.6397 -0.739134 +v -8.35199 -99.6397 -1.47266 +v -8.19186 -99.6397 -2.19498 +v -7.96938 -99.6397 -2.90059 +v -7.68625 -99.6397 -3.58413 +v -7.34463 -99.6397 -4.2404 +v -6.9471 -99.6397 -4.86439 +v -6.49671 -99.6397 -5.45136 +v -5.99687 -99.6397 -5.99684 +v -5.45139 -99.6397 -6.49668 +v -4.86442 -99.6397 -6.94708 +v -4.24044 -99.6397 -7.3446 +v -3.58418 -99.6397 -7.68623 +v -2.90064 -99.6397 -7.96937 +v -2.19503 -99.6397 -8.19185 +v -1.47271 -99.6397 -8.35198 +v -0.739181 -99.6397 -8.44856 +v -2.82067e-05 -99.6397 -8.48083 +v 0.739125 -99.6397 -8.44856 +v 1.47265 -99.6397 -8.35199 +v 2.19497 -99.6397 -8.19186 +v 2.90059 -99.6397 -7.96938 +v 3.58412 -99.6397 -7.68626 +v 4.24039 -99.6397 -7.34463 +v 4.86438 -99.6397 -6.94711 +v 5.45135 -99.6397 -6.49672 +v 5.99683 -99.6397 -5.99688 +v 6.49667 -99.6397 -5.4514 +v 6.94707 -99.6397 -4.86443 +v 7.3446 -99.6397 -4.24045 +v 7.68623 -99.6397 -3.58419 +v 7.96936 -99.6397 -2.90065 +v 8.19184 -99.6397 -2.19503 +v 8.35198 -99.6397 -1.47272 +v 8.44856 -99.6397 -0.739192 +f 3 4 76 75 +f 4 5 77 76 +f 5 6 78 77 +f 6 7 79 78 +f 7 8 80 79 +f 8 9 81 80 +f 9 10 82 81 +f 10 11 83 82 +f 11 12 84 83 +f 12 13 85 84 +f 13 14 86 85 +f 14 15 87 86 +f 15 16 88 87 +f 16 17 89 88 +f 17 18 90 89 +f 18 19 91 90 +f 19 20 92 91 +f 20 21 93 92 +f 21 22 94 93 +f 22 23 95 94 +f 23 24 96 95 +f 24 25 97 96 +f 25 26 98 97 +f 26 27 99 98 +f 27 28 100 99 +f 28 29 101 100 +f 29 30 102 101 +f 30 31 103 102 +f 31 32 104 103 +f 32 33 105 104 +f 33 34 106 105 +f 34 35 107 106 +f 35 36 108 107 +f 36 37 109 108 +f 37 38 110 109 +f 38 39 111 110 +f 39 40 112 111 +f 40 41 113 112 +f 41 42 114 113 +f 42 43 115 114 +f 43 44 116 115 +f 44 45 117 116 +f 45 46 118 117 +f 46 47 119 118 +f 47 48 120 119 +f 48 49 121 120 +f 49 50 122 121 +f 50 51 123 122 +f 51 52 124 123 +f 52 53 125 124 +f 53 54 126 125 +f 54 55 127 126 +f 55 56 128 127 +f 56 57 129 128 +f 57 58 130 129 +f 58 59 131 130 +f 59 60 132 131 +f 60 61 133 132 +f 61 62 134 133 +f 62 63 135 134 +f 63 64 136 135 +f 64 65 137 136 +f 65 66 138 137 +f 66 67 139 138 +f 67 68 140 139 +f 68 69 141 140 +f 69 70 142 141 +f 70 71 143 142 +f 71 72 144 143 +f 72 73 145 144 +f 73 74 146 145 +f 74 3 75 146 +f 75 76 148 147 +f 76 77 149 148 +f 77 78 150 149 +f 78 79 151 150 +f 79 80 152 151 +f 80 81 153 152 +f 81 82 154 153 +f 82 83 155 154 +f 83 84 156 155 +f 84 85 157 156 +f 85 86 158 157 +f 86 87 159 158 +f 87 88 160 159 +f 88 89 161 160 +f 89 90 162 161 +f 90 91 163 162 +f 91 92 164 163 +f 92 93 165 164 +f 93 94 166 165 +f 94 95 167 166 +f 95 96 168 167 +f 96 97 169 168 +f 97 98 170 169 +f 98 99 171 170 +f 99 100 172 171 +f 100 101 173 172 +f 101 102 174 173 +f 102 103 175 174 +f 103 104 176 175 +f 104 105 177 176 +f 105 106 178 177 +f 106 107 179 178 +f 107 108 180 179 +f 108 109 181 180 +f 109 110 182 181 +f 110 111 183 182 +f 111 112 184 183 +f 112 113 185 184 +f 113 114 186 185 +f 114 115 187 186 +f 115 116 188 187 +f 116 117 189 188 +f 117 118 190 189 +f 118 119 191 190 +f 119 120 192 191 +f 120 121 193 192 +f 121 122 194 193 +f 122 123 195 194 +f 123 124 196 195 +f 124 125 197 196 +f 125 126 198 197 +f 126 127 199 198 +f 127 128 200 199 +f 128 129 201 200 +f 129 130 202 201 +f 130 131 203 202 +f 131 132 204 203 +f 132 133 205 204 +f 133 134 206 205 +f 134 135 207 206 +f 135 136 208 207 +f 136 137 209 208 +f 137 138 210 209 +f 138 139 211 210 +f 139 140 212 211 +f 140 141 213 212 +f 141 142 214 213 +f 142 143 215 214 +f 143 144 216 215 +f 144 145 217 216 +f 145 146 218 217 +f 146 75 147 218 +f 147 148 220 219 +f 148 149 221 220 +f 149 150 222 221 +f 150 151 223 222 +f 151 152 224 223 +f 152 153 225 224 +f 153 154 226 225 +f 154 155 227 226 +f 155 156 228 227 +f 156 157 229 228 +f 157 158 230 229 +f 158 159 231 230 +f 159 160 232 231 +f 160 161 233 232 +f 161 162 234 233 +f 162 163 235 234 +f 163 164 236 235 +f 164 165 237 236 +f 165 166 238 237 +f 166 167 239 238 +f 167 168 240 239 +f 168 169 241 240 +f 169 170 242 241 +f 170 171 243 242 +f 171 172 244 243 +f 172 173 245 244 +f 173 174 246 245 +f 174 175 247 246 +f 175 176 248 247 +f 176 177 249 248 +f 177 178 250 249 +f 178 179 251 250 +f 179 180 252 251 +f 180 181 253 252 +f 181 182 254 253 +f 182 183 255 254 +f 183 184 256 255 +f 184 185 257 256 +f 185 186 258 257 +f 186 187 259 258 +f 187 188 260 259 +f 188 189 261 260 +f 189 190 262 261 +f 190 191 263 262 +f 191 192 264 263 +f 192 193 265 264 +f 193 194 266 265 +f 194 195 267 266 +f 195 196 268 267 +f 196 197 269 268 +f 197 198 270 269 +f 198 199 271 270 +f 199 200 272 271 +f 200 201 273 272 +f 201 202 274 273 +f 202 203 275 274 +f 203 204 276 275 +f 204 205 277 276 +f 205 206 278 277 +f 206 207 279 278 +f 207 208 280 279 +f 208 209 281 280 +f 209 210 282 281 +f 210 211 283 282 +f 211 212 284 283 +f 212 213 285 284 +f 213 214 286 285 +f 214 215 287 286 +f 215 216 288 287 +f 216 217 289 288 +f 217 218 290 289 +f 218 147 219 290 +f 219 220 292 291 +f 220 221 293 292 +f 221 222 294 293 +f 222 223 295 294 +f 223 224 296 295 +f 224 225 297 296 +f 225 226 298 297 +f 226 227 299 298 +f 227 228 300 299 +f 228 229 301 300 +f 229 230 302 301 +f 230 231 303 302 +f 231 232 304 303 +f 232 233 305 304 +f 233 234 306 305 +f 234 235 307 306 +f 235 236 308 307 +f 236 237 309 308 +f 237 238 310 309 +f 238 239 311 310 +f 239 240 312 311 +f 240 241 313 312 +f 241 242 314 313 +f 242 243 315 314 +f 243 244 316 315 +f 244 245 317 316 +f 245 246 318 317 +f 246 247 319 318 +f 247 248 320 319 +f 248 249 321 320 +f 249 250 322 321 +f 250 251 323 322 +f 251 252 324 323 +f 252 253 325 324 +f 253 254 326 325 +f 254 255 327 326 +f 255 256 328 327 +f 256 257 329 328 +f 257 258 330 329 +f 258 259 331 330 +f 259 260 332 331 +f 260 261 333 332 +f 261 262 334 333 +f 262 263 335 334 +f 263 264 336 335 +f 264 265 337 336 +f 265 266 338 337 +f 266 267 339 338 +f 267 268 340 339 +f 268 269 341 340 +f 269 270 342 341 +f 270 271 343 342 +f 271 272 344 343 +f 272 273 345 344 +f 273 274 346 345 +f 274 275 347 346 +f 275 276 348 347 +f 276 277 349 348 +f 277 278 350 349 +f 278 279 351 350 +f 279 280 352 351 +f 280 281 353 352 +f 281 282 354 353 +f 282 283 355 354 +f 283 284 356 355 +f 284 285 357 356 +f 285 286 358 357 +f 286 287 359 358 +f 287 288 360 359 +f 288 289 361 360 +f 289 290 362 361 +f 290 219 291 362 +f 291 292 364 363 +f 292 293 365 364 +f 293 294 366 365 +f 294 295 367 366 +f 295 296 368 367 +f 296 297 369 368 +f 297 298 370 369 +f 298 299 371 370 +f 299 300 372 371 +f 300 301 373 372 +f 301 302 374 373 +f 302 303 375 374 +f 303 304 376 375 +f 304 305 377 376 +f 305 306 378 377 +f 306 307 379 378 +f 307 308 380 379 +f 308 309 381 380 +f 309 310 382 381 +f 310 311 383 382 +f 311 312 384 383 +f 312 313 385 384 +f 313 314 386 385 +f 314 315 387 386 +f 315 316 388 387 +f 316 317 389 388 +f 317 318 390 389 +f 318 319 391 390 +f 319 320 392 391 +f 320 321 393 392 +f 321 322 394 393 +f 322 323 395 394 +f 323 324 396 395 +f 324 325 397 396 +f 325 326 398 397 +f 326 327 399 398 +f 327 328 400 399 +f 328 329 401 400 +f 329 330 402 401 +f 330 331 403 402 +f 331 332 404 403 +f 332 333 405 404 +f 333 334 406 405 +f 334 335 407 406 +f 335 336 408 407 +f 336 337 409 408 +f 337 338 410 409 +f 338 339 411 410 +f 339 340 412 411 +f 340 341 413 412 +f 341 342 414 413 +f 342 343 415 414 +f 343 344 416 415 +f 344 345 417 416 +f 345 346 418 417 +f 346 347 419 418 +f 347 348 420 419 +f 348 349 421 420 +f 349 350 422 421 +f 350 351 423 422 +f 351 352 424 423 +f 352 353 425 424 +f 353 354 426 425 +f 354 355 427 426 +f 355 356 428 427 +f 356 357 429 428 +f 357 358 430 429 +f 358 359 431 430 +f 359 360 432 431 +f 360 361 433 432 +f 361 362 434 433 +f 362 291 363 434 +f 363 364 436 435 +f 364 365 437 436 +f 365 366 438 437 +f 366 367 439 438 +f 367 368 440 439 +f 368 369 441 440 +f 369 370 442 441 +f 370 371 443 442 +f 371 372 444 443 +f 372 373 445 444 +f 373 374 446 445 +f 374 375 447 446 +f 375 376 448 447 +f 376 377 449 448 +f 377 378 450 449 +f 378 379 451 450 +f 379 380 452 451 +f 380 381 453 452 +f 381 382 454 453 +f 382 383 455 454 +f 383 384 456 455 +f 384 385 457 456 +f 385 386 458 457 +f 386 387 459 458 +f 387 388 460 459 +f 388 389 461 460 +f 389 390 462 461 +f 390 391 463 462 +f 391 392 464 463 +f 392 393 465 464 +f 393 394 466 465 +f 394 395 467 466 +f 395 396 468 467 +f 396 397 469 468 +f 397 398 470 469 +f 398 399 471 470 +f 399 400 472 471 +f 400 401 473 472 +f 401 402 474 473 +f 402 403 475 474 +f 403 404 476 475 +f 404 405 477 476 +f 405 406 478 477 +f 406 407 479 478 +f 407 408 480 479 +f 408 409 481 480 +f 409 410 482 481 +f 410 411 483 482 +f 411 412 484 483 +f 412 413 485 484 +f 413 414 486 485 +f 414 415 487 486 +f 415 416 488 487 +f 416 417 489 488 +f 417 418 490 489 +f 418 419 491 490 +f 419 420 492 491 +f 420 421 493 492 +f 421 422 494 493 +f 422 423 495 494 +f 423 424 496 495 +f 424 425 497 496 +f 425 426 498 497 +f 426 427 499 498 +f 427 428 500 499 +f 428 429 501 500 +f 429 430 502 501 +f 430 431 503 502 +f 431 432 504 503 +f 432 433 505 504 +f 433 434 506 505 +f 434 363 435 506 +f 435 436 508 507 +f 436 437 509 508 +f 437 438 510 509 +f 438 439 511 510 +f 439 440 512 511 +f 440 441 513 512 +f 441 442 514 513 +f 442 443 515 514 +f 443 444 516 515 +f 444 445 517 516 +f 445 446 518 517 +f 446 447 519 518 +f 447 448 520 519 +f 448 449 521 520 +f 449 450 522 521 +f 450 451 523 522 +f 451 452 524 523 +f 452 453 525 524 +f 453 454 526 525 +f 454 455 527 526 +f 455 456 528 527 +f 456 457 529 528 +f 457 458 530 529 +f 458 459 531 530 +f 459 460 532 531 +f 460 461 533 532 +f 461 462 534 533 +f 462 463 535 534 +f 463 464 536 535 +f 464 465 537 536 +f 465 466 538 537 +f 466 467 539 538 +f 467 468 540 539 +f 468 469 541 540 +f 469 470 542 541 +f 470 471 543 542 +f 471 472 544 543 +f 472 473 545 544 +f 473 474 546 545 +f 474 475 547 546 +f 475 476 548 547 +f 476 477 549 548 +f 477 478 550 549 +f 478 479 551 550 +f 479 480 552 551 +f 480 481 553 552 +f 481 482 554 553 +f 482 483 555 554 +f 483 484 556 555 +f 484 485 557 556 +f 485 486 558 557 +f 486 487 559 558 +f 487 488 560 559 +f 488 489 561 560 +f 489 490 562 561 +f 490 491 563 562 +f 491 492 564 563 +f 492 493 565 564 +f 493 494 566 565 +f 494 495 567 566 +f 495 496 568 567 +f 496 497 569 568 +f 497 498 570 569 +f 498 499 571 570 +f 499 500 572 571 +f 500 501 573 572 +f 501 502 574 573 +f 502 503 575 574 +f 503 504 576 575 +f 504 505 577 576 +f 505 506 578 577 +f 506 435 507 578 +f 507 508 580 579 +f 508 509 581 580 +f 509 510 582 581 +f 510 511 583 582 +f 511 512 584 583 +f 512 513 585 584 +f 513 514 586 585 +f 514 515 587 586 +f 515 516 588 587 +f 516 517 589 588 +f 517 518 590 589 +f 518 519 591 590 +f 519 520 592 591 +f 520 521 593 592 +f 521 522 594 593 +f 522 523 595 594 +f 523 524 596 595 +f 524 525 597 596 +f 525 526 598 597 +f 526 527 599 598 +f 527 528 600 599 +f 528 529 601 600 +f 529 530 602 601 +f 530 531 603 602 +f 531 532 604 603 +f 532 533 605 604 +f 533 534 606 605 +f 534 535 607 606 +f 535 536 608 607 +f 536 537 609 608 +f 537 538 610 609 +f 538 539 611 610 +f 539 540 612 611 +f 540 541 613 612 +f 541 542 614 613 +f 542 543 615 614 +f 543 544 616 615 +f 544 545 617 616 +f 545 546 618 617 +f 546 547 619 618 +f 547 548 620 619 +f 548 549 621 620 +f 549 550 622 621 +f 550 551 623 622 +f 551 552 624 623 +f 552 553 625 624 +f 553 554 626 625 +f 554 555 627 626 +f 555 556 628 627 +f 556 557 629 628 +f 557 558 630 629 +f 558 559 631 630 +f 559 560 632 631 +f 560 561 633 632 +f 561 562 634 633 +f 562 563 635 634 +f 563 564 636 635 +f 564 565 637 636 +f 565 566 638 637 +f 566 567 639 638 +f 567 568 640 639 +f 568 569 641 640 +f 569 570 642 641 +f 570 571 643 642 +f 571 572 644 643 +f 572 573 645 644 +f 573 574 646 645 +f 574 575 647 646 +f 575 576 648 647 +f 576 577 649 648 +f 577 578 650 649 +f 578 507 579 650 +f 579 580 652 651 +f 580 581 653 652 +f 581 582 654 653 +f 582 583 655 654 +f 583 584 656 655 +f 584 585 657 656 +f 585 586 658 657 +f 586 587 659 658 +f 587 588 660 659 +f 588 589 661 660 +f 589 590 662 661 +f 590 591 663 662 +f 591 592 664 663 +f 592 593 665 664 +f 593 594 666 665 +f 594 595 667 666 +f 595 596 668 667 +f 596 597 669 668 +f 597 598 670 669 +f 598 599 671 670 +f 599 600 672 671 +f 600 601 673 672 +f 601 602 674 673 +f 602 603 675 674 +f 603 604 676 675 +f 604 605 677 676 +f 605 606 678 677 +f 606 607 679 678 +f 607 608 680 679 +f 608 609 681 680 +f 609 610 682 681 +f 610 611 683 682 +f 611 612 684 683 +f 612 613 685 684 +f 613 614 686 685 +f 614 615 687 686 +f 615 616 688 687 +f 616 617 689 688 +f 617 618 690 689 +f 618 619 691 690 +f 619 620 692 691 +f 620 621 693 692 +f 621 622 694 693 +f 622 623 695 694 +f 623 624 696 695 +f 624 625 697 696 +f 625 626 698 697 +f 626 627 699 698 +f 627 628 700 699 +f 628 629 701 700 +f 629 630 702 701 +f 630 631 703 702 +f 631 632 704 703 +f 632 633 705 704 +f 633 634 706 705 +f 634 635 707 706 +f 635 636 708 707 +f 636 637 709 708 +f 637 638 710 709 +f 638 639 711 710 +f 639 640 712 711 +f 640 641 713 712 +f 641 642 714 713 +f 642 643 715 714 +f 643 644 716 715 +f 644 645 717 716 +f 645 646 718 717 +f 646 647 719 718 +f 647 648 720 719 +f 648 649 721 720 +f 649 650 722 721 +f 650 579 651 722 +f 651 652 724 723 +f 652 653 725 724 +f 653 654 726 725 +f 654 655 727 726 +f 655 656 728 727 +f 656 657 729 728 +f 657 658 730 729 +f 658 659 731 730 +f 659 660 732 731 +f 660 661 733 732 +f 661 662 734 733 +f 662 663 735 734 +f 663 664 736 735 +f 664 665 737 736 +f 665 666 738 737 +f 666 667 739 738 +f 667 668 740 739 +f 668 669 741 740 +f 669 670 742 741 +f 670 671 743 742 +f 671 672 744 743 +f 672 673 745 744 +f 673 674 746 745 +f 674 675 747 746 +f 675 676 748 747 +f 676 677 749 748 +f 677 678 750 749 +f 678 679 751 750 +f 679 680 752 751 +f 680 681 753 752 +f 681 682 754 753 +f 682 683 755 754 +f 683 684 756 755 +f 684 685 757 756 +f 685 686 758 757 +f 686 687 759 758 +f 687 688 760 759 +f 688 689 761 760 +f 689 690 762 761 +f 690 691 763 762 +f 691 692 764 763 +f 692 693 765 764 +f 693 694 766 765 +f 694 695 767 766 +f 695 696 768 767 +f 696 697 769 768 +f 697 698 770 769 +f 698 699 771 770 +f 699 700 772 771 +f 700 701 773 772 +f 701 702 774 773 +f 702 703 775 774 +f 703 704 776 775 +f 704 705 777 776 +f 705 706 778 777 +f 706 707 779 778 +f 707 708 780 779 +f 708 709 781 780 +f 709 710 782 781 +f 710 711 783 782 +f 711 712 784 783 +f 712 713 785 784 +f 713 714 786 785 +f 714 715 787 786 +f 715 716 788 787 +f 716 717 789 788 +f 717 718 790 789 +f 718 719 791 790 +f 719 720 792 791 +f 720 721 793 792 +f 721 722 794 793 +f 722 651 723 794 +f 723 724 796 795 +f 724 725 797 796 +f 725 726 798 797 +f 726 727 799 798 +f 727 728 800 799 +f 728 729 801 800 +f 729 730 802 801 +f 730 731 803 802 +f 731 732 804 803 +f 732 733 805 804 +f 733 734 806 805 +f 734 735 807 806 +f 735 736 808 807 +f 736 737 809 808 +f 737 738 810 809 +f 738 739 811 810 +f 739 740 812 811 +f 740 741 813 812 +f 741 742 814 813 +f 742 743 815 814 +f 743 744 816 815 +f 744 745 817 816 +f 745 746 818 817 +f 746 747 819 818 +f 747 748 820 819 +f 748 749 821 820 +f 749 750 822 821 +f 750 751 823 822 +f 751 752 824 823 +f 752 753 825 824 +f 753 754 826 825 +f 754 755 827 826 +f 755 756 828 827 +f 756 757 829 828 +f 757 758 830 829 +f 758 759 831 830 +f 759 760 832 831 +f 760 761 833 832 +f 761 762 834 833 +f 762 763 835 834 +f 763 764 836 835 +f 764 765 837 836 +f 765 766 838 837 +f 766 767 839 838 +f 767 768 840 839 +f 768 769 841 840 +f 769 770 842 841 +f 770 771 843 842 +f 771 772 844 843 +f 772 773 845 844 +f 773 774 846 845 +f 774 775 847 846 +f 775 776 848 847 +f 776 777 849 848 +f 777 778 850 849 +f 778 779 851 850 +f 779 780 852 851 +f 780 781 853 852 +f 781 782 854 853 +f 782 783 855 854 +f 783 784 856 855 +f 784 785 857 856 +f 785 786 858 857 +f 786 787 859 858 +f 787 788 860 859 +f 788 789 861 860 +f 789 790 862 861 +f 790 791 863 862 +f 791 792 864 863 +f 792 793 865 864 +f 793 794 866 865 +f 794 723 795 866 +f 795 796 868 867 +f 796 797 869 868 +f 797 798 870 869 +f 798 799 871 870 +f 799 800 872 871 +f 800 801 873 872 +f 801 802 874 873 +f 802 803 875 874 +f 803 804 876 875 +f 804 805 877 876 +f 805 806 878 877 +f 806 807 879 878 +f 807 808 880 879 +f 808 809 881 880 +f 809 810 882 881 +f 810 811 883 882 +f 811 812 884 883 +f 812 813 885 884 +f 813 814 886 885 +f 814 815 887 886 +f 815 816 888 887 +f 816 817 889 888 +f 817 818 890 889 +f 818 819 891 890 +f 819 820 892 891 +f 820 821 893 892 +f 821 822 894 893 +f 822 823 895 894 +f 823 824 896 895 +f 824 825 897 896 +f 825 826 898 897 +f 826 827 899 898 +f 827 828 900 899 +f 828 829 901 900 +f 829 830 902 901 +f 830 831 903 902 +f 831 832 904 903 +f 832 833 905 904 +f 833 834 906 905 +f 834 835 907 906 +f 835 836 908 907 +f 836 837 909 908 +f 837 838 910 909 +f 838 839 911 910 +f 839 840 912 911 +f 840 841 913 912 +f 841 842 914 913 +f 842 843 915 914 +f 843 844 916 915 +f 844 845 917 916 +f 845 846 918 917 +f 846 847 919 918 +f 847 848 920 919 +f 848 849 921 920 +f 849 850 922 921 +f 850 851 923 922 +f 851 852 924 923 +f 852 853 925 924 +f 853 854 926 925 +f 854 855 927 926 +f 855 856 928 927 +f 856 857 929 928 +f 857 858 930 929 +f 858 859 931 930 +f 859 860 932 931 +f 860 861 933 932 +f 861 862 934 933 +f 862 863 935 934 +f 863 864 936 935 +f 864 865 937 936 +f 865 866 938 937 +f 866 795 867 938 +f 867 868 940 939 +f 868 869 941 940 +f 869 870 942 941 +f 870 871 943 942 +f 871 872 944 943 +f 872 873 945 944 +f 873 874 946 945 +f 874 875 947 946 +f 875 876 948 947 +f 876 877 949 948 +f 877 878 950 949 +f 878 879 951 950 +f 879 880 952 951 +f 880 881 953 952 +f 881 882 954 953 +f 882 883 955 954 +f 883 884 956 955 +f 884 885 957 956 +f 885 886 958 957 +f 886 887 959 958 +f 887 888 960 959 +f 888 889 961 960 +f 889 890 962 961 +f 890 891 963 962 +f 891 892 964 963 +f 892 893 965 964 +f 893 894 966 965 +f 894 895 967 966 +f 895 896 968 967 +f 896 897 969 968 +f 897 898 970 969 +f 898 899 971 970 +f 899 900 972 971 +f 900 901 973 972 +f 901 902 974 973 +f 902 903 975 974 +f 903 904 976 975 +f 904 905 977 976 +f 905 906 978 977 +f 906 907 979 978 +f 907 908 980 979 +f 908 909 981 980 +f 909 910 982 981 +f 910 911 983 982 +f 911 912 984 983 +f 912 913 985 984 +f 913 914 986 985 +f 914 915 987 986 +f 915 916 988 987 +f 916 917 989 988 +f 917 918 990 989 +f 918 919 991 990 +f 919 920 992 991 +f 920 921 993 992 +f 921 922 994 993 +f 922 923 995 994 +f 923 924 996 995 +f 924 925 997 996 +f 925 926 998 997 +f 926 927 999 998 +f 927 928 1000 999 +f 928 929 1001 1000 +f 929 930 1002 1001 +f 930 931 1003 1002 +f 931 932 1004 1003 +f 932 933 1005 1004 +f 933 934 1006 1005 +f 934 935 1007 1006 +f 935 936 1008 1007 +f 936 937 1009 1008 +f 937 938 1010 1009 +f 938 867 939 1010 +f 939 940 1012 1011 +f 940 941 1013 1012 +f 941 942 1014 1013 +f 942 943 1015 1014 +f 943 944 1016 1015 +f 944 945 1017 1016 +f 945 946 1018 1017 +f 946 947 1019 1018 +f 947 948 1020 1019 +f 948 949 1021 1020 +f 949 950 1022 1021 +f 950 951 1023 1022 +f 951 952 1024 1023 +f 952 953 1025 1024 +f 953 954 1026 1025 +f 954 955 1027 1026 +f 955 956 1028 1027 +f 956 957 1029 1028 +f 957 958 1030 1029 +f 958 959 1031 1030 +f 959 960 1032 1031 +f 960 961 1033 1032 +f 961 962 1034 1033 +f 962 963 1035 1034 +f 963 964 1036 1035 +f 964 965 1037 1036 +f 965 966 1038 1037 +f 966 967 1039 1038 +f 967 968 1040 1039 +f 968 969 1041 1040 +f 969 970 1042 1041 +f 970 971 1043 1042 +f 971 972 1044 1043 +f 972 973 1045 1044 +f 973 974 1046 1045 +f 974 975 1047 1046 +f 975 976 1048 1047 +f 976 977 1049 1048 +f 977 978 1050 1049 +f 978 979 1051 1050 +f 979 980 1052 1051 +f 980 981 1053 1052 +f 981 982 1054 1053 +f 982 983 1055 1054 +f 983 984 1056 1055 +f 984 985 1057 1056 +f 985 986 1058 1057 +f 986 987 1059 1058 +f 987 988 1060 1059 +f 988 989 1061 1060 +f 989 990 1062 1061 +f 990 991 1063 1062 +f 991 992 1064 1063 +f 992 993 1065 1064 +f 993 994 1066 1065 +f 994 995 1067 1066 +f 995 996 1068 1067 +f 996 997 1069 1068 +f 997 998 1070 1069 +f 998 999 1071 1070 +f 999 1000 1072 1071 +f 1000 1001 1073 1072 +f 1001 1002 1074 1073 +f 1002 1003 1075 1074 +f 1003 1004 1076 1075 +f 1004 1005 1077 1076 +f 1005 1006 1078 1077 +f 1006 1007 1079 1078 +f 1007 1008 1080 1079 +f 1008 1009 1081 1080 +f 1009 1010 1082 1081 +f 1010 939 1011 1082 +f 1011 1012 1084 1083 +f 1012 1013 1085 1084 +f 1013 1014 1086 1085 +f 1014 1015 1087 1086 +f 1015 1016 1088 1087 +f 1016 1017 1089 1088 +f 1017 1018 1090 1089 +f 1018 1019 1091 1090 +f 1019 1020 1092 1091 +f 1020 1021 1093 1092 +f 1021 1022 1094 1093 +f 1022 1023 1095 1094 +f 1023 1024 1096 1095 +f 1024 1025 1097 1096 +f 1025 1026 1098 1097 +f 1026 1027 1099 1098 +f 1027 1028 1100 1099 +f 1028 1029 1101 1100 +f 1029 1030 1102 1101 +f 1030 1031 1103 1102 +f 1031 1032 1104 1103 +f 1032 1033 1105 1104 +f 1033 1034 1106 1105 +f 1034 1035 1107 1106 +f 1035 1036 1108 1107 +f 1036 1037 1109 1108 +f 1037 1038 1110 1109 +f 1038 1039 1111 1110 +f 1039 1040 1112 1111 +f 1040 1041 1113 1112 +f 1041 1042 1114 1113 +f 1042 1043 1115 1114 +f 1043 1044 1116 1115 +f 1044 1045 1117 1116 +f 1045 1046 1118 1117 +f 1046 1047 1119 1118 +f 1047 1048 1120 1119 +f 1048 1049 1121 1120 +f 1049 1050 1122 1121 +f 1050 1051 1123 1122 +f 1051 1052 1124 1123 +f 1052 1053 1125 1124 +f 1053 1054 1126 1125 +f 1054 1055 1127 1126 +f 1055 1056 1128 1127 +f 1056 1057 1129 1128 +f 1057 1058 1130 1129 +f 1058 1059 1131 1130 +f 1059 1060 1132 1131 +f 1060 1061 1133 1132 +f 1061 1062 1134 1133 +f 1062 1063 1135 1134 +f 1063 1064 1136 1135 +f 1064 1065 1137 1136 +f 1065 1066 1138 1137 +f 1066 1067 1139 1138 +f 1067 1068 1140 1139 +f 1068 1069 1141 1140 +f 1069 1070 1142 1141 +f 1070 1071 1143 1142 +f 1071 1072 1144 1143 +f 1072 1073 1145 1144 +f 1073 1074 1146 1145 +f 1074 1075 1147 1146 +f 1075 1076 1148 1147 +f 1076 1077 1149 1148 +f 1077 1078 1150 1149 +f 1078 1079 1151 1150 +f 1079 1080 1152 1151 +f 1080 1081 1153 1152 +f 1081 1082 1154 1153 +f 1082 1011 1083 1154 +f 1083 1084 1156 1155 +f 1084 1085 1157 1156 +f 1085 1086 1158 1157 +f 1086 1087 1159 1158 +f 1087 1088 1160 1159 +f 1088 1089 1161 1160 +f 1089 1090 1162 1161 +f 1090 1091 1163 1162 +f 1091 1092 1164 1163 +f 1092 1093 1165 1164 +f 1093 1094 1166 1165 +f 1094 1095 1167 1166 +f 1095 1096 1168 1167 +f 1096 1097 1169 1168 +f 1097 1098 1170 1169 +f 1098 1099 1171 1170 +f 1099 1100 1172 1171 +f 1100 1101 1173 1172 +f 1101 1102 1174 1173 +f 1102 1103 1175 1174 +f 1103 1104 1176 1175 +f 1104 1105 1177 1176 +f 1105 1106 1178 1177 +f 1106 1107 1179 1178 +f 1107 1108 1180 1179 +f 1108 1109 1181 1180 +f 1109 1110 1182 1181 +f 1110 1111 1183 1182 +f 1111 1112 1184 1183 +f 1112 1113 1185 1184 +f 1113 1114 1186 1185 +f 1114 1115 1187 1186 +f 1115 1116 1188 1187 +f 1116 1117 1189 1188 +f 1117 1118 1190 1189 +f 1118 1119 1191 1190 +f 1119 1120 1192 1191 +f 1120 1121 1193 1192 +f 1121 1122 1194 1193 +f 1122 1123 1195 1194 +f 1123 1124 1196 1195 +f 1124 1125 1197 1196 +f 1125 1126 1198 1197 +f 1126 1127 1199 1198 +f 1127 1128 1200 1199 +f 1128 1129 1201 1200 +f 1129 1130 1202 1201 +f 1130 1131 1203 1202 +f 1131 1132 1204 1203 +f 1132 1133 1205 1204 +f 1133 1134 1206 1205 +f 1134 1135 1207 1206 +f 1135 1136 1208 1207 +f 1136 1137 1209 1208 +f 1137 1138 1210 1209 +f 1138 1139 1211 1210 +f 1139 1140 1212 1211 +f 1140 1141 1213 1212 +f 1141 1142 1214 1213 +f 1142 1143 1215 1214 +f 1143 1144 1216 1215 +f 1144 1145 1217 1216 +f 1145 1146 1218 1217 +f 1146 1147 1219 1218 +f 1147 1148 1220 1219 +f 1148 1149 1221 1220 +f 1149 1150 1222 1221 +f 1150 1151 1223 1222 +f 1151 1152 1224 1223 +f 1152 1153 1225 1224 +f 1153 1154 1226 1225 +f 1154 1083 1155 1226 +f 1155 1156 1228 1227 +f 1156 1157 1229 1228 +f 1157 1158 1230 1229 +f 1158 1159 1231 1230 +f 1159 1160 1232 1231 +f 1160 1161 1233 1232 +f 1161 1162 1234 1233 +f 1162 1163 1235 1234 +f 1163 1164 1236 1235 +f 1164 1165 1237 1236 +f 1165 1166 1238 1237 +f 1166 1167 1239 1238 +f 1167 1168 1240 1239 +f 1168 1169 1241 1240 +f 1169 1170 1242 1241 +f 1170 1171 1243 1242 +f 1171 1172 1244 1243 +f 1172 1173 1245 1244 +f 1173 1174 1246 1245 +f 1174 1175 1247 1246 +f 1175 1176 1248 1247 +f 1176 1177 1249 1248 +f 1177 1178 1250 1249 +f 1178 1179 1251 1250 +f 1179 1180 1252 1251 +f 1180 1181 1253 1252 +f 1181 1182 1254 1253 +f 1182 1183 1255 1254 +f 1183 1184 1256 1255 +f 1184 1185 1257 1256 +f 1185 1186 1258 1257 +f 1186 1187 1259 1258 +f 1187 1188 1260 1259 +f 1188 1189 1261 1260 +f 1189 1190 1262 1261 +f 1190 1191 1263 1262 +f 1191 1192 1264 1263 +f 1192 1193 1265 1264 +f 1193 1194 1266 1265 +f 1194 1195 1267 1266 +f 1195 1196 1268 1267 +f 1196 1197 1269 1268 +f 1197 1198 1270 1269 +f 1198 1199 1271 1270 +f 1199 1200 1272 1271 +f 1200 1201 1273 1272 +f 1201 1202 1274 1273 +f 1202 1203 1275 1274 +f 1203 1204 1276 1275 +f 1204 1205 1277 1276 +f 1205 1206 1278 1277 +f 1206 1207 1279 1278 +f 1207 1208 1280 1279 +f 1208 1209 1281 1280 +f 1209 1210 1282 1281 +f 1210 1211 1283 1282 +f 1211 1212 1284 1283 +f 1212 1213 1285 1284 +f 1213 1214 1286 1285 +f 1214 1215 1287 1286 +f 1215 1216 1288 1287 +f 1216 1217 1289 1288 +f 1217 1218 1290 1289 +f 1218 1219 1291 1290 +f 1219 1220 1292 1291 +f 1220 1221 1293 1292 +f 1221 1222 1294 1293 +f 1222 1223 1295 1294 +f 1223 1224 1296 1295 +f 1224 1225 1297 1296 +f 1225 1226 1298 1297 +f 1226 1155 1227 1298 +f 1227 1228 1300 1299 +f 1228 1229 1301 1300 +f 1229 1230 1302 1301 +f 1230 1231 1303 1302 +f 1231 1232 1304 1303 +f 1232 1233 1305 1304 +f 1233 1234 1306 1305 +f 1234 1235 1307 1306 +f 1235 1236 1308 1307 +f 1236 1237 1309 1308 +f 1237 1238 1310 1309 +f 1238 1239 1311 1310 +f 1239 1240 1312 1311 +f 1240 1241 1313 1312 +f 1241 1242 1314 1313 +f 1242 1243 1315 1314 +f 1243 1244 1316 1315 +f 1244 1245 1317 1316 +f 1245 1246 1318 1317 +f 1246 1247 1319 1318 +f 1247 1248 1320 1319 +f 1248 1249 1321 1320 +f 1249 1250 1322 1321 +f 1250 1251 1323 1322 +f 1251 1252 1324 1323 +f 1252 1253 1325 1324 +f 1253 1254 1326 1325 +f 1254 1255 1327 1326 +f 1255 1256 1328 1327 +f 1256 1257 1329 1328 +f 1257 1258 1330 1329 +f 1258 1259 1331 1330 +f 1259 1260 1332 1331 +f 1260 1261 1333 1332 +f 1261 1262 1334 1333 +f 1262 1263 1335 1334 +f 1263 1264 1336 1335 +f 1264 1265 1337 1336 +f 1265 1266 1338 1337 +f 1266 1267 1339 1338 +f 1267 1268 1340 1339 +f 1268 1269 1341 1340 +f 1269 1270 1342 1341 +f 1270 1271 1343 1342 +f 1271 1272 1344 1343 +f 1272 1273 1345 1344 +f 1273 1274 1346 1345 +f 1274 1275 1347 1346 +f 1275 1276 1348 1347 +f 1276 1277 1349 1348 +f 1277 1278 1350 1349 +f 1278 1279 1351 1350 +f 1279 1280 1352 1351 +f 1280 1281 1353 1352 +f 1281 1282 1354 1353 +f 1282 1283 1355 1354 +f 1283 1284 1356 1355 +f 1284 1285 1357 1356 +f 1285 1286 1358 1357 +f 1286 1287 1359 1358 +f 1287 1288 1360 1359 +f 1288 1289 1361 1360 +f 1289 1290 1362 1361 +f 1290 1291 1363 1362 +f 1291 1292 1364 1363 +f 1292 1293 1365 1364 +f 1293 1294 1366 1365 +f 1294 1295 1367 1366 +f 1295 1296 1368 1367 +f 1296 1297 1369 1368 +f 1297 1298 1370 1369 +f 1298 1227 1299 1370 +f 1299 1300 1372 1371 +f 1300 1301 1373 1372 +f 1301 1302 1374 1373 +f 1302 1303 1375 1374 +f 1303 1304 1376 1375 +f 1304 1305 1377 1376 +f 1305 1306 1378 1377 +f 1306 1307 1379 1378 +f 1307 1308 1380 1379 +f 1308 1309 1381 1380 +f 1309 1310 1382 1381 +f 1310 1311 1383 1382 +f 1311 1312 1384 1383 +f 1312 1313 1385 1384 +f 1313 1314 1386 1385 +f 1314 1315 1387 1386 +f 1315 1316 1388 1387 +f 1316 1317 1389 1388 +f 1317 1318 1390 1389 +f 1318 1319 1391 1390 +f 1319 1320 1392 1391 +f 1320 1321 1393 1392 +f 1321 1322 1394 1393 +f 1322 1323 1395 1394 +f 1323 1324 1396 1395 +f 1324 1325 1397 1396 +f 1325 1326 1398 1397 +f 1326 1327 1399 1398 +f 1327 1328 1400 1399 +f 1328 1329 1401 1400 +f 1329 1330 1402 1401 +f 1330 1331 1403 1402 +f 1331 1332 1404 1403 +f 1332 1333 1405 1404 +f 1333 1334 1406 1405 +f 1334 1335 1407 1406 +f 1335 1336 1408 1407 +f 1336 1337 1409 1408 +f 1337 1338 1410 1409 +f 1338 1339 1411 1410 +f 1339 1340 1412 1411 +f 1340 1341 1413 1412 +f 1341 1342 1414 1413 +f 1342 1343 1415 1414 +f 1343 1344 1416 1415 +f 1344 1345 1417 1416 +f 1345 1346 1418 1417 +f 1346 1347 1419 1418 +f 1347 1348 1420 1419 +f 1348 1349 1421 1420 +f 1349 1350 1422 1421 +f 1350 1351 1423 1422 +f 1351 1352 1424 1423 +f 1352 1353 1425 1424 +f 1353 1354 1426 1425 +f 1354 1355 1427 1426 +f 1355 1356 1428 1427 +f 1356 1357 1429 1428 +f 1357 1358 1430 1429 +f 1358 1359 1431 1430 +f 1359 1360 1432 1431 +f 1360 1361 1433 1432 +f 1361 1362 1434 1433 +f 1362 1363 1435 1434 +f 1363 1364 1436 1435 +f 1364 1365 1437 1436 +f 1365 1366 1438 1437 +f 1366 1367 1439 1438 +f 1367 1368 1440 1439 +f 1368 1369 1441 1440 +f 1369 1370 1442 1441 +f 1370 1299 1371 1442 +f 1371 1372 1444 1443 +f 1372 1373 1445 1444 +f 1373 1374 1446 1445 +f 1374 1375 1447 1446 +f 1375 1376 1448 1447 +f 1376 1377 1449 1448 +f 1377 1378 1450 1449 +f 1378 1379 1451 1450 +f 1379 1380 1452 1451 +f 1380 1381 1453 1452 +f 1381 1382 1454 1453 +f 1382 1383 1455 1454 +f 1383 1384 1456 1455 +f 1384 1385 1457 1456 +f 1385 1386 1458 1457 +f 1386 1387 1459 1458 +f 1387 1388 1460 1459 +f 1388 1389 1461 1460 +f 1389 1390 1462 1461 +f 1390 1391 1463 1462 +f 1391 1392 1464 1463 +f 1392 1393 1465 1464 +f 1393 1394 1466 1465 +f 1394 1395 1467 1466 +f 1395 1396 1468 1467 +f 1396 1397 1469 1468 +f 1397 1398 1470 1469 +f 1398 1399 1471 1470 +f 1399 1400 1472 1471 +f 1400 1401 1473 1472 +f 1401 1402 1474 1473 +f 1402 1403 1475 1474 +f 1403 1404 1476 1475 +f 1404 1405 1477 1476 +f 1405 1406 1478 1477 +f 1406 1407 1479 1478 +f 1407 1408 1480 1479 +f 1408 1409 1481 1480 +f 1409 1410 1482 1481 +f 1410 1411 1483 1482 +f 1411 1412 1484 1483 +f 1412 1413 1485 1484 +f 1413 1414 1486 1485 +f 1414 1415 1487 1486 +f 1415 1416 1488 1487 +f 1416 1417 1489 1488 +f 1417 1418 1490 1489 +f 1418 1419 1491 1490 +f 1419 1420 1492 1491 +f 1420 1421 1493 1492 +f 1421 1422 1494 1493 +f 1422 1423 1495 1494 +f 1423 1424 1496 1495 +f 1424 1425 1497 1496 +f 1425 1426 1498 1497 +f 1426 1427 1499 1498 +f 1427 1428 1500 1499 +f 1428 1429 1501 1500 +f 1429 1430 1502 1501 +f 1430 1431 1503 1502 +f 1431 1432 1504 1503 +f 1432 1433 1505 1504 +f 1433 1434 1506 1505 +f 1434 1435 1507 1506 +f 1435 1436 1508 1507 +f 1436 1437 1509 1508 +f 1437 1438 1510 1509 +f 1438 1439 1511 1510 +f 1439 1440 1512 1511 +f 1440 1441 1513 1512 +f 1441 1442 1514 1513 +f 1442 1371 1443 1514 +f 1443 1444 1516 1515 +f 1444 1445 1517 1516 +f 1445 1446 1518 1517 +f 1446 1447 1519 1518 +f 1447 1448 1520 1519 +f 1448 1449 1521 1520 +f 1449 1450 1522 1521 +f 1450 1451 1523 1522 +f 1451 1452 1524 1523 +f 1452 1453 1525 1524 +f 1453 1454 1526 1525 +f 1454 1455 1527 1526 +f 1455 1456 1528 1527 +f 1456 1457 1529 1528 +f 1457 1458 1530 1529 +f 1458 1459 1531 1530 +f 1459 1460 1532 1531 +f 1460 1461 1533 1532 +f 1461 1462 1534 1533 +f 1462 1463 1535 1534 +f 1463 1464 1536 1535 +f 1464 1465 1537 1536 +f 1465 1466 1538 1537 +f 1466 1467 1539 1538 +f 1467 1468 1540 1539 +f 1468 1469 1541 1540 +f 1469 1470 1542 1541 +f 1470 1471 1543 1542 +f 1471 1472 1544 1543 +f 1472 1473 1545 1544 +f 1473 1474 1546 1545 +f 1474 1475 1547 1546 +f 1475 1476 1548 1547 +f 1476 1477 1549 1548 +f 1477 1478 1550 1549 +f 1478 1479 1551 1550 +f 1479 1480 1552 1551 +f 1480 1481 1553 1552 +f 1481 1482 1554 1553 +f 1482 1483 1555 1554 +f 1483 1484 1556 1555 +f 1484 1485 1557 1556 +f 1485 1486 1558 1557 +f 1486 1487 1559 1558 +f 1487 1488 1560 1559 +f 1488 1489 1561 1560 +f 1489 1490 1562 1561 +f 1490 1491 1563 1562 +f 1491 1492 1564 1563 +f 1492 1493 1565 1564 +f 1493 1494 1566 1565 +f 1494 1495 1567 1566 +f 1495 1496 1568 1567 +f 1496 1497 1569 1568 +f 1497 1498 1570 1569 +f 1498 1499 1571 1570 +f 1499 1500 1572 1571 +f 1500 1501 1573 1572 +f 1501 1502 1574 1573 +f 1502 1503 1575 1574 +f 1503 1504 1576 1575 +f 1504 1505 1577 1576 +f 1505 1506 1578 1577 +f 1506 1507 1579 1578 +f 1507 1508 1580 1579 +f 1508 1509 1581 1580 +f 1509 1510 1582 1581 +f 1510 1511 1583 1582 +f 1511 1512 1584 1583 +f 1512 1513 1585 1584 +f 1513 1514 1586 1585 +f 1514 1443 1515 1586 +f 1515 1516 1588 1587 +f 1516 1517 1589 1588 +f 1517 1518 1590 1589 +f 1518 1519 1591 1590 +f 1519 1520 1592 1591 +f 1520 1521 1593 1592 +f 1521 1522 1594 1593 +f 1522 1523 1595 1594 +f 1523 1524 1596 1595 +f 1524 1525 1597 1596 +f 1525 1526 1598 1597 +f 1526 1527 1599 1598 +f 1527 1528 1600 1599 +f 1528 1529 1601 1600 +f 1529 1530 1602 1601 +f 1530 1531 1603 1602 +f 1531 1532 1604 1603 +f 1532 1533 1605 1604 +f 1533 1534 1606 1605 +f 1534 1535 1607 1606 +f 1535 1536 1608 1607 +f 1536 1537 1609 1608 +f 1537 1538 1610 1609 +f 1538 1539 1611 1610 +f 1539 1540 1612 1611 +f 1540 1541 1613 1612 +f 1541 1542 1614 1613 +f 1542 1543 1615 1614 +f 1543 1544 1616 1615 +f 1544 1545 1617 1616 +f 1545 1546 1618 1617 +f 1546 1547 1619 1618 +f 1547 1548 1620 1619 +f 1548 1549 1621 1620 +f 1549 1550 1622 1621 +f 1550 1551 1623 1622 +f 1551 1552 1624 1623 +f 1552 1553 1625 1624 +f 1553 1554 1626 1625 +f 1554 1555 1627 1626 +f 1555 1556 1628 1627 +f 1556 1557 1629 1628 +f 1557 1558 1630 1629 +f 1558 1559 1631 1630 +f 1559 1560 1632 1631 +f 1560 1561 1633 1632 +f 1561 1562 1634 1633 +f 1562 1563 1635 1634 +f 1563 1564 1636 1635 +f 1564 1565 1637 1636 +f 1565 1566 1638 1637 +f 1566 1567 1639 1638 +f 1567 1568 1640 1639 +f 1568 1569 1641 1640 +f 1569 1570 1642 1641 +f 1570 1571 1643 1642 +f 1571 1572 1644 1643 +f 1572 1573 1645 1644 +f 1573 1574 1646 1645 +f 1574 1575 1647 1646 +f 1575 1576 1648 1647 +f 1576 1577 1649 1648 +f 1577 1578 1650 1649 +f 1578 1579 1651 1650 +f 1579 1580 1652 1651 +f 1580 1581 1653 1652 +f 1581 1582 1654 1653 +f 1582 1583 1655 1654 +f 1583 1584 1656 1655 +f 1584 1585 1657 1656 +f 1585 1586 1658 1657 +f 1586 1515 1587 1658 +f 1587 1588 1660 1659 +f 1588 1589 1661 1660 +f 1589 1590 1662 1661 +f 1590 1591 1663 1662 +f 1591 1592 1664 1663 +f 1592 1593 1665 1664 +f 1593 1594 1666 1665 +f 1594 1595 1667 1666 +f 1595 1596 1668 1667 +f 1596 1597 1669 1668 +f 1597 1598 1670 1669 +f 1598 1599 1671 1670 +f 1599 1600 1672 1671 +f 1600 1601 1673 1672 +f 1601 1602 1674 1673 +f 1602 1603 1675 1674 +f 1603 1604 1676 1675 +f 1604 1605 1677 1676 +f 1605 1606 1678 1677 +f 1606 1607 1679 1678 +f 1607 1608 1680 1679 +f 1608 1609 1681 1680 +f 1609 1610 1682 1681 +f 1610 1611 1683 1682 +f 1611 1612 1684 1683 +f 1612 1613 1685 1684 +f 1613 1614 1686 1685 +f 1614 1615 1687 1686 +f 1615 1616 1688 1687 +f 1616 1617 1689 1688 +f 1617 1618 1690 1689 +f 1618 1619 1691 1690 +f 1619 1620 1692 1691 +f 1620 1621 1693 1692 +f 1621 1622 1694 1693 +f 1622 1623 1695 1694 +f 1623 1624 1696 1695 +f 1624 1625 1697 1696 +f 1625 1626 1698 1697 +f 1626 1627 1699 1698 +f 1627 1628 1700 1699 +f 1628 1629 1701 1700 +f 1629 1630 1702 1701 +f 1630 1631 1703 1702 +f 1631 1632 1704 1703 +f 1632 1633 1705 1704 +f 1633 1634 1706 1705 +f 1634 1635 1707 1706 +f 1635 1636 1708 1707 +f 1636 1637 1709 1708 +f 1637 1638 1710 1709 +f 1638 1639 1711 1710 +f 1639 1640 1712 1711 +f 1640 1641 1713 1712 +f 1641 1642 1714 1713 +f 1642 1643 1715 1714 +f 1643 1644 1716 1715 +f 1644 1645 1717 1716 +f 1645 1646 1718 1717 +f 1646 1647 1719 1718 +f 1647 1648 1720 1719 +f 1648 1649 1721 1720 +f 1649 1650 1722 1721 +f 1650 1651 1723 1722 +f 1651 1652 1724 1723 +f 1652 1653 1725 1724 +f 1653 1654 1726 1725 +f 1654 1655 1727 1726 +f 1655 1656 1728 1727 +f 1656 1657 1729 1728 +f 1657 1658 1730 1729 +f 1658 1587 1659 1730 +f 1659 1660 1732 1731 +f 1660 1661 1733 1732 +f 1661 1662 1734 1733 +f 1662 1663 1735 1734 +f 1663 1664 1736 1735 +f 1664 1665 1737 1736 +f 1665 1666 1738 1737 +f 1666 1667 1739 1738 +f 1667 1668 1740 1739 +f 1668 1669 1741 1740 +f 1669 1670 1742 1741 +f 1670 1671 1743 1742 +f 1671 1672 1744 1743 +f 1672 1673 1745 1744 +f 1673 1674 1746 1745 +f 1674 1675 1747 1746 +f 1675 1676 1748 1747 +f 1676 1677 1749 1748 +f 1677 1678 1750 1749 +f 1678 1679 1751 1750 +f 1679 1680 1752 1751 +f 1680 1681 1753 1752 +f 1681 1682 1754 1753 +f 1682 1683 1755 1754 +f 1683 1684 1756 1755 +f 1684 1685 1757 1756 +f 1685 1686 1758 1757 +f 1686 1687 1759 1758 +f 1687 1688 1760 1759 +f 1688 1689 1761 1760 +f 1689 1690 1762 1761 +f 1690 1691 1763 1762 +f 1691 1692 1764 1763 +f 1692 1693 1765 1764 +f 1693 1694 1766 1765 +f 1694 1695 1767 1766 +f 1695 1696 1768 1767 +f 1696 1697 1769 1768 +f 1697 1698 1770 1769 +f 1698 1699 1771 1770 +f 1699 1700 1772 1771 +f 1700 1701 1773 1772 +f 1701 1702 1774 1773 +f 1702 1703 1775 1774 +f 1703 1704 1776 1775 +f 1704 1705 1777 1776 +f 1705 1706 1778 1777 +f 1706 1707 1779 1778 +f 1707 1708 1780 1779 +f 1708 1709 1781 1780 +f 1709 1710 1782 1781 +f 1710 1711 1783 1782 +f 1711 1712 1784 1783 +f 1712 1713 1785 1784 +f 1713 1714 1786 1785 +f 1714 1715 1787 1786 +f 1715 1716 1788 1787 +f 1716 1717 1789 1788 +f 1717 1718 1790 1789 +f 1718 1719 1791 1790 +f 1719 1720 1792 1791 +f 1720 1721 1793 1792 +f 1721 1722 1794 1793 +f 1722 1723 1795 1794 +f 1723 1724 1796 1795 +f 1724 1725 1797 1796 +f 1725 1726 1798 1797 +f 1726 1727 1799 1798 +f 1727 1728 1800 1799 +f 1728 1729 1801 1800 +f 1729 1730 1802 1801 +f 1730 1659 1731 1802 +f 1731 1732 1804 1803 +f 1732 1733 1805 1804 +f 1733 1734 1806 1805 +f 1734 1735 1807 1806 +f 1735 1736 1808 1807 +f 1736 1737 1809 1808 +f 1737 1738 1810 1809 +f 1738 1739 1811 1810 +f 1739 1740 1812 1811 +f 1740 1741 1813 1812 +f 1741 1742 1814 1813 +f 1742 1743 1815 1814 +f 1743 1744 1816 1815 +f 1744 1745 1817 1816 +f 1745 1746 1818 1817 +f 1746 1747 1819 1818 +f 1747 1748 1820 1819 +f 1748 1749 1821 1820 +f 1749 1750 1822 1821 +f 1750 1751 1823 1822 +f 1751 1752 1824 1823 +f 1752 1753 1825 1824 +f 1753 1754 1826 1825 +f 1754 1755 1827 1826 +f 1755 1756 1828 1827 +f 1756 1757 1829 1828 +f 1757 1758 1830 1829 +f 1758 1759 1831 1830 +f 1759 1760 1832 1831 +f 1760 1761 1833 1832 +f 1761 1762 1834 1833 +f 1762 1763 1835 1834 +f 1763 1764 1836 1835 +f 1764 1765 1837 1836 +f 1765 1766 1838 1837 +f 1766 1767 1839 1838 +f 1767 1768 1840 1839 +f 1768 1769 1841 1840 +f 1769 1770 1842 1841 +f 1770 1771 1843 1842 +f 1771 1772 1844 1843 +f 1772 1773 1845 1844 +f 1773 1774 1846 1845 +f 1774 1775 1847 1846 +f 1775 1776 1848 1847 +f 1776 1777 1849 1848 +f 1777 1778 1850 1849 +f 1778 1779 1851 1850 +f 1779 1780 1852 1851 +f 1780 1781 1853 1852 +f 1781 1782 1854 1853 +f 1782 1783 1855 1854 +f 1783 1784 1856 1855 +f 1784 1785 1857 1856 +f 1785 1786 1858 1857 +f 1786 1787 1859 1858 +f 1787 1788 1860 1859 +f 1788 1789 1861 1860 +f 1789 1790 1862 1861 +f 1790 1791 1863 1862 +f 1791 1792 1864 1863 +f 1792 1793 1865 1864 +f 1793 1794 1866 1865 +f 1794 1795 1867 1866 +f 1795 1796 1868 1867 +f 1796 1797 1869 1868 +f 1797 1798 1870 1869 +f 1798 1799 1871 1870 +f 1799 1800 1872 1871 +f 1800 1801 1873 1872 +f 1801 1802 1874 1873 +f 1802 1731 1803 1874 +f 1803 1804 1876 1875 +f 1804 1805 1877 1876 +f 1805 1806 1878 1877 +f 1806 1807 1879 1878 +f 1807 1808 1880 1879 +f 1808 1809 1881 1880 +f 1809 1810 1882 1881 +f 1810 1811 1883 1882 +f 1811 1812 1884 1883 +f 1812 1813 1885 1884 +f 1813 1814 1886 1885 +f 1814 1815 1887 1886 +f 1815 1816 1888 1887 +f 1816 1817 1889 1888 +f 1817 1818 1890 1889 +f 1818 1819 1891 1890 +f 1819 1820 1892 1891 +f 1820 1821 1893 1892 +f 1821 1822 1894 1893 +f 1822 1823 1895 1894 +f 1823 1824 1896 1895 +f 1824 1825 1897 1896 +f 1825 1826 1898 1897 +f 1826 1827 1899 1898 +f 1827 1828 1900 1899 +f 1828 1829 1901 1900 +f 1829 1830 1902 1901 +f 1830 1831 1903 1902 +f 1831 1832 1904 1903 +f 1832 1833 1905 1904 +f 1833 1834 1906 1905 +f 1834 1835 1907 1906 +f 1835 1836 1908 1907 +f 1836 1837 1909 1908 +f 1837 1838 1910 1909 +f 1838 1839 1911 1910 +f 1839 1840 1912 1911 +f 1840 1841 1913 1912 +f 1841 1842 1914 1913 +f 1842 1843 1915 1914 +f 1843 1844 1916 1915 +f 1844 1845 1917 1916 +f 1845 1846 1918 1917 +f 1846 1847 1919 1918 +f 1847 1848 1920 1919 +f 1848 1849 1921 1920 +f 1849 1850 1922 1921 +f 1850 1851 1923 1922 +f 1851 1852 1924 1923 +f 1852 1853 1925 1924 +f 1853 1854 1926 1925 +f 1854 1855 1927 1926 +f 1855 1856 1928 1927 +f 1856 1857 1929 1928 +f 1857 1858 1930 1929 +f 1858 1859 1931 1930 +f 1859 1860 1932 1931 +f 1860 1861 1933 1932 +f 1861 1862 1934 1933 +f 1862 1863 1935 1934 +f 1863 1864 1936 1935 +f 1864 1865 1937 1936 +f 1865 1866 1938 1937 +f 1866 1867 1939 1938 +f 1867 1868 1940 1939 +f 1868 1869 1941 1940 +f 1869 1870 1942 1941 +f 1870 1871 1943 1942 +f 1871 1872 1944 1943 +f 1872 1873 1945 1944 +f 1873 1874 1946 1945 +f 1874 1803 1875 1946 +f 1875 1876 1948 1947 +f 1876 1877 1949 1948 +f 1877 1878 1950 1949 +f 1878 1879 1951 1950 +f 1879 1880 1952 1951 +f 1880 1881 1953 1952 +f 1881 1882 1954 1953 +f 1882 1883 1955 1954 +f 1883 1884 1956 1955 +f 1884 1885 1957 1956 +f 1885 1886 1958 1957 +f 1886 1887 1959 1958 +f 1887 1888 1960 1959 +f 1888 1889 1961 1960 +f 1889 1890 1962 1961 +f 1890 1891 1963 1962 +f 1891 1892 1964 1963 +f 1892 1893 1965 1964 +f 1893 1894 1966 1965 +f 1894 1895 1967 1966 +f 1895 1896 1968 1967 +f 1896 1897 1969 1968 +f 1897 1898 1970 1969 +f 1898 1899 1971 1970 +f 1899 1900 1972 1971 +f 1900 1901 1973 1972 +f 1901 1902 1974 1973 +f 1902 1903 1975 1974 +f 1903 1904 1976 1975 +f 1904 1905 1977 1976 +f 1905 1906 1978 1977 +f 1906 1907 1979 1978 +f 1907 1908 1980 1979 +f 1908 1909 1981 1980 +f 1909 1910 1982 1981 +f 1910 1911 1983 1982 +f 1911 1912 1984 1983 +f 1912 1913 1985 1984 +f 1913 1914 1986 1985 +f 1914 1915 1987 1986 +f 1915 1916 1988 1987 +f 1916 1917 1989 1988 +f 1917 1918 1990 1989 +f 1918 1919 1991 1990 +f 1919 1920 1992 1991 +f 1920 1921 1993 1992 +f 1921 1922 1994 1993 +f 1922 1923 1995 1994 +f 1923 1924 1996 1995 +f 1924 1925 1997 1996 +f 1925 1926 1998 1997 +f 1926 1927 1999 1998 +f 1927 1928 2000 1999 +f 1928 1929 2001 2000 +f 1929 1930 2002 2001 +f 1930 1931 2003 2002 +f 1931 1932 2004 2003 +f 1932 1933 2005 2004 +f 1933 1934 2006 2005 +f 1934 1935 2007 2006 +f 1935 1936 2008 2007 +f 1936 1937 2009 2008 +f 1937 1938 2010 2009 +f 1938 1939 2011 2010 +f 1939 1940 2012 2011 +f 1940 1941 2013 2012 +f 1941 1942 2014 2013 +f 1942 1943 2015 2014 +f 1943 1944 2016 2015 +f 1944 1945 2017 2016 +f 1945 1946 2018 2017 +f 1946 1875 1947 2018 +f 1947 1948 2020 2019 +f 1948 1949 2021 2020 +f 1949 1950 2022 2021 +f 1950 1951 2023 2022 +f 1951 1952 2024 2023 +f 1952 1953 2025 2024 +f 1953 1954 2026 2025 +f 1954 1955 2027 2026 +f 1955 1956 2028 2027 +f 1956 1957 2029 2028 +f 1957 1958 2030 2029 +f 1958 1959 2031 2030 +f 1959 1960 2032 2031 +f 1960 1961 2033 2032 +f 1961 1962 2034 2033 +f 1962 1963 2035 2034 +f 1963 1964 2036 2035 +f 1964 1965 2037 2036 +f 1965 1966 2038 2037 +f 1966 1967 2039 2038 +f 1967 1968 2040 2039 +f 1968 1969 2041 2040 +f 1969 1970 2042 2041 +f 1970 1971 2043 2042 +f 1971 1972 2044 2043 +f 1972 1973 2045 2044 +f 1973 1974 2046 2045 +f 1974 1975 2047 2046 +f 1975 1976 2048 2047 +f 1976 1977 2049 2048 +f 1977 1978 2050 2049 +f 1978 1979 2051 2050 +f 1979 1980 2052 2051 +f 1980 1981 2053 2052 +f 1981 1982 2054 2053 +f 1982 1983 2055 2054 +f 1983 1984 2056 2055 +f 1984 1985 2057 2056 +f 1985 1986 2058 2057 +f 1986 1987 2059 2058 +f 1987 1988 2060 2059 +f 1988 1989 2061 2060 +f 1989 1990 2062 2061 +f 1990 1991 2063 2062 +f 1991 1992 2064 2063 +f 1992 1993 2065 2064 +f 1993 1994 2066 2065 +f 1994 1995 2067 2066 +f 1995 1996 2068 2067 +f 1996 1997 2069 2068 +f 1997 1998 2070 2069 +f 1998 1999 2071 2070 +f 1999 2000 2072 2071 +f 2000 2001 2073 2072 +f 2001 2002 2074 2073 +f 2002 2003 2075 2074 +f 2003 2004 2076 2075 +f 2004 2005 2077 2076 +f 2005 2006 2078 2077 +f 2006 2007 2079 2078 +f 2007 2008 2080 2079 +f 2008 2009 2081 2080 +f 2009 2010 2082 2081 +f 2010 2011 2083 2082 +f 2011 2012 2084 2083 +f 2012 2013 2085 2084 +f 2013 2014 2086 2085 +f 2014 2015 2087 2086 +f 2015 2016 2088 2087 +f 2016 2017 2089 2088 +f 2017 2018 2090 2089 +f 2018 1947 2019 2090 +f 2019 2020 2092 2091 +f 2020 2021 2093 2092 +f 2021 2022 2094 2093 +f 2022 2023 2095 2094 +f 2023 2024 2096 2095 +f 2024 2025 2097 2096 +f 2025 2026 2098 2097 +f 2026 2027 2099 2098 +f 2027 2028 2100 2099 +f 2028 2029 2101 2100 +f 2029 2030 2102 2101 +f 2030 2031 2103 2102 +f 2031 2032 2104 2103 +f 2032 2033 2105 2104 +f 2033 2034 2106 2105 +f 2034 2035 2107 2106 +f 2035 2036 2108 2107 +f 2036 2037 2109 2108 +f 2037 2038 2110 2109 +f 2038 2039 2111 2110 +f 2039 2040 2112 2111 +f 2040 2041 2113 2112 +f 2041 2042 2114 2113 +f 2042 2043 2115 2114 +f 2043 2044 2116 2115 +f 2044 2045 2117 2116 +f 2045 2046 2118 2117 +f 2046 2047 2119 2118 +f 2047 2048 2120 2119 +f 2048 2049 2121 2120 +f 2049 2050 2122 2121 +f 2050 2051 2123 2122 +f 2051 2052 2124 2123 +f 2052 2053 2125 2124 +f 2053 2054 2126 2125 +f 2054 2055 2127 2126 +f 2055 2056 2128 2127 +f 2056 2057 2129 2128 +f 2057 2058 2130 2129 +f 2058 2059 2131 2130 +f 2059 2060 2132 2131 +f 2060 2061 2133 2132 +f 2061 2062 2134 2133 +f 2062 2063 2135 2134 +f 2063 2064 2136 2135 +f 2064 2065 2137 2136 +f 2065 2066 2138 2137 +f 2066 2067 2139 2138 +f 2067 2068 2140 2139 +f 2068 2069 2141 2140 +f 2069 2070 2142 2141 +f 2070 2071 2143 2142 +f 2071 2072 2144 2143 +f 2072 2073 2145 2144 +f 2073 2074 2146 2145 +f 2074 2075 2147 2146 +f 2075 2076 2148 2147 +f 2076 2077 2149 2148 +f 2077 2078 2150 2149 +f 2078 2079 2151 2150 +f 2079 2080 2152 2151 +f 2080 2081 2153 2152 +f 2081 2082 2154 2153 +f 2082 2083 2155 2154 +f 2083 2084 2156 2155 +f 2084 2085 2157 2156 +f 2085 2086 2158 2157 +f 2086 2087 2159 2158 +f 2087 2088 2160 2159 +f 2088 2089 2161 2160 +f 2089 2090 2162 2161 +f 2090 2019 2091 2162 +f 2091 2092 2164 2163 +f 2092 2093 2165 2164 +f 2093 2094 2166 2165 +f 2094 2095 2167 2166 +f 2095 2096 2168 2167 +f 2096 2097 2169 2168 +f 2097 2098 2170 2169 +f 2098 2099 2171 2170 +f 2099 2100 2172 2171 +f 2100 2101 2173 2172 +f 2101 2102 2174 2173 +f 2102 2103 2175 2174 +f 2103 2104 2176 2175 +f 2104 2105 2177 2176 +f 2105 2106 2178 2177 +f 2106 2107 2179 2178 +f 2107 2108 2180 2179 +f 2108 2109 2181 2180 +f 2109 2110 2182 2181 +f 2110 2111 2183 2182 +f 2111 2112 2184 2183 +f 2112 2113 2185 2184 +f 2113 2114 2186 2185 +f 2114 2115 2187 2186 +f 2115 2116 2188 2187 +f 2116 2117 2189 2188 +f 2117 2118 2190 2189 +f 2118 2119 2191 2190 +f 2119 2120 2192 2191 +f 2120 2121 2193 2192 +f 2121 2122 2194 2193 +f 2122 2123 2195 2194 +f 2123 2124 2196 2195 +f 2124 2125 2197 2196 +f 2125 2126 2198 2197 +f 2126 2127 2199 2198 +f 2127 2128 2200 2199 +f 2128 2129 2201 2200 +f 2129 2130 2202 2201 +f 2130 2131 2203 2202 +f 2131 2132 2204 2203 +f 2132 2133 2205 2204 +f 2133 2134 2206 2205 +f 2134 2135 2207 2206 +f 2135 2136 2208 2207 +f 2136 2137 2209 2208 +f 2137 2138 2210 2209 +f 2138 2139 2211 2210 +f 2139 2140 2212 2211 +f 2140 2141 2213 2212 +f 2141 2142 2214 2213 +f 2142 2143 2215 2214 +f 2143 2144 2216 2215 +f 2144 2145 2217 2216 +f 2145 2146 2218 2217 +f 2146 2147 2219 2218 +f 2147 2148 2220 2219 +f 2148 2149 2221 2220 +f 2149 2150 2222 2221 +f 2150 2151 2223 2222 +f 2151 2152 2224 2223 +f 2152 2153 2225 2224 +f 2153 2154 2226 2225 +f 2154 2155 2227 2226 +f 2155 2156 2228 2227 +f 2156 2157 2229 2228 +f 2157 2158 2230 2229 +f 2158 2159 2231 2230 +f 2159 2160 2232 2231 +f 2160 2161 2233 2232 +f 2161 2162 2234 2233 +f 2162 2091 2163 2234 +f 2163 2164 2236 2235 +f 2164 2165 2237 2236 +f 2165 2166 2238 2237 +f 2166 2167 2239 2238 +f 2167 2168 2240 2239 +f 2168 2169 2241 2240 +f 2169 2170 2242 2241 +f 2170 2171 2243 2242 +f 2171 2172 2244 2243 +f 2172 2173 2245 2244 +f 2173 2174 2246 2245 +f 2174 2175 2247 2246 +f 2175 2176 2248 2247 +f 2176 2177 2249 2248 +f 2177 2178 2250 2249 +f 2178 2179 2251 2250 +f 2179 2180 2252 2251 +f 2180 2181 2253 2252 +f 2181 2182 2254 2253 +f 2182 2183 2255 2254 +f 2183 2184 2256 2255 +f 2184 2185 2257 2256 +f 2185 2186 2258 2257 +f 2186 2187 2259 2258 +f 2187 2188 2260 2259 +f 2188 2189 2261 2260 +f 2189 2190 2262 2261 +f 2190 2191 2263 2262 +f 2191 2192 2264 2263 +f 2192 2193 2265 2264 +f 2193 2194 2266 2265 +f 2194 2195 2267 2266 +f 2195 2196 2268 2267 +f 2196 2197 2269 2268 +f 2197 2198 2270 2269 +f 2198 2199 2271 2270 +f 2199 2200 2272 2271 +f 2200 2201 2273 2272 +f 2201 2202 2274 2273 +f 2202 2203 2275 2274 +f 2203 2204 2276 2275 +f 2204 2205 2277 2276 +f 2205 2206 2278 2277 +f 2206 2207 2279 2278 +f 2207 2208 2280 2279 +f 2208 2209 2281 2280 +f 2209 2210 2282 2281 +f 2210 2211 2283 2282 +f 2211 2212 2284 2283 +f 2212 2213 2285 2284 +f 2213 2214 2286 2285 +f 2214 2215 2287 2286 +f 2215 2216 2288 2287 +f 2216 2217 2289 2288 +f 2217 2218 2290 2289 +f 2218 2219 2291 2290 +f 2219 2220 2292 2291 +f 2220 2221 2293 2292 +f 2221 2222 2294 2293 +f 2222 2223 2295 2294 +f 2223 2224 2296 2295 +f 2224 2225 2297 2296 +f 2225 2226 2298 2297 +f 2226 2227 2299 2298 +f 2227 2228 2300 2299 +f 2228 2229 2301 2300 +f 2229 2230 2302 2301 +f 2230 2231 2303 2302 +f 2231 2232 2304 2303 +f 2232 2233 2305 2304 +f 2233 2234 2306 2305 +f 2234 2163 2235 2306 +f 2235 2236 2308 2307 +f 2236 2237 2309 2308 +f 2237 2238 2310 2309 +f 2238 2239 2311 2310 +f 2239 2240 2312 2311 +f 2240 2241 2313 2312 +f 2241 2242 2314 2313 +f 2242 2243 2315 2314 +f 2243 2244 2316 2315 +f 2244 2245 2317 2316 +f 2245 2246 2318 2317 +f 2246 2247 2319 2318 +f 2247 2248 2320 2319 +f 2248 2249 2321 2320 +f 2249 2250 2322 2321 +f 2250 2251 2323 2322 +f 2251 2252 2324 2323 +f 2252 2253 2325 2324 +f 2253 2254 2326 2325 +f 2254 2255 2327 2326 +f 2255 2256 2328 2327 +f 2256 2257 2329 2328 +f 2257 2258 2330 2329 +f 2258 2259 2331 2330 +f 2259 2260 2332 2331 +f 2260 2261 2333 2332 +f 2261 2262 2334 2333 +f 2262 2263 2335 2334 +f 2263 2264 2336 2335 +f 2264 2265 2337 2336 +f 2265 2266 2338 2337 +f 2266 2267 2339 2338 +f 2267 2268 2340 2339 +f 2268 2269 2341 2340 +f 2269 2270 2342 2341 +f 2270 2271 2343 2342 +f 2271 2272 2344 2343 +f 2272 2273 2345 2344 +f 2273 2274 2346 2345 +f 2274 2275 2347 2346 +f 2275 2276 2348 2347 +f 2276 2277 2349 2348 +f 2277 2278 2350 2349 +f 2278 2279 2351 2350 +f 2279 2280 2352 2351 +f 2280 2281 2353 2352 +f 2281 2282 2354 2353 +f 2282 2283 2355 2354 +f 2283 2284 2356 2355 +f 2284 2285 2357 2356 +f 2285 2286 2358 2357 +f 2286 2287 2359 2358 +f 2287 2288 2360 2359 +f 2288 2289 2361 2360 +f 2289 2290 2362 2361 +f 2290 2291 2363 2362 +f 2291 2292 2364 2363 +f 2292 2293 2365 2364 +f 2293 2294 2366 2365 +f 2294 2295 2367 2366 +f 2295 2296 2368 2367 +f 2296 2297 2369 2368 +f 2297 2298 2370 2369 +f 2298 2299 2371 2370 +f 2299 2300 2372 2371 +f 2300 2301 2373 2372 +f 2301 2302 2374 2373 +f 2302 2303 2375 2374 +f 2303 2304 2376 2375 +f 2304 2305 2377 2376 +f 2305 2306 2378 2377 +f 2306 2235 2307 2378 +f 2307 2308 2380 2379 +f 2308 2309 2381 2380 +f 2309 2310 2382 2381 +f 2310 2311 2383 2382 +f 2311 2312 2384 2383 +f 2312 2313 2385 2384 +f 2313 2314 2386 2385 +f 2314 2315 2387 2386 +f 2315 2316 2388 2387 +f 2316 2317 2389 2388 +f 2317 2318 2390 2389 +f 2318 2319 2391 2390 +f 2319 2320 2392 2391 +f 2320 2321 2393 2392 +f 2321 2322 2394 2393 +f 2322 2323 2395 2394 +f 2323 2324 2396 2395 +f 2324 2325 2397 2396 +f 2325 2326 2398 2397 +f 2326 2327 2399 2398 +f 2327 2328 2400 2399 +f 2328 2329 2401 2400 +f 2329 2330 2402 2401 +f 2330 2331 2403 2402 +f 2331 2332 2404 2403 +f 2332 2333 2405 2404 +f 2333 2334 2406 2405 +f 2334 2335 2407 2406 +f 2335 2336 2408 2407 +f 2336 2337 2409 2408 +f 2337 2338 2410 2409 +f 2338 2339 2411 2410 +f 2339 2340 2412 2411 +f 2340 2341 2413 2412 +f 2341 2342 2414 2413 +f 2342 2343 2415 2414 +f 2343 2344 2416 2415 +f 2344 2345 2417 2416 +f 2345 2346 2418 2417 +f 2346 2347 2419 2418 +f 2347 2348 2420 2419 +f 2348 2349 2421 2420 +f 2349 2350 2422 2421 +f 2350 2351 2423 2422 +f 2351 2352 2424 2423 +f 2352 2353 2425 2424 +f 2353 2354 2426 2425 +f 2354 2355 2427 2426 +f 2355 2356 2428 2427 +f 2356 2357 2429 2428 +f 2357 2358 2430 2429 +f 2358 2359 2431 2430 +f 2359 2360 2432 2431 +f 2360 2361 2433 2432 +f 2361 2362 2434 2433 +f 2362 2363 2435 2434 +f 2363 2364 2436 2435 +f 2364 2365 2437 2436 +f 2365 2366 2438 2437 +f 2366 2367 2439 2438 +f 2367 2368 2440 2439 +f 2368 2369 2441 2440 +f 2369 2370 2442 2441 +f 2370 2371 2443 2442 +f 2371 2372 2444 2443 +f 2372 2373 2445 2444 +f 2373 2374 2446 2445 +f 2374 2375 2447 2446 +f 2375 2376 2448 2447 +f 2376 2377 2449 2448 +f 2377 2378 2450 2449 +f 2378 2307 2379 2450 +f 2379 2380 2452 2451 +f 2380 2381 2453 2452 +f 2381 2382 2454 2453 +f 2382 2383 2455 2454 +f 2383 2384 2456 2455 +f 2384 2385 2457 2456 +f 2385 2386 2458 2457 +f 2386 2387 2459 2458 +f 2387 2388 2460 2459 +f 2388 2389 2461 2460 +f 2389 2390 2462 2461 +f 2390 2391 2463 2462 +f 2391 2392 2464 2463 +f 2392 2393 2465 2464 +f 2393 2394 2466 2465 +f 2394 2395 2467 2466 +f 2395 2396 2468 2467 +f 2396 2397 2469 2468 +f 2397 2398 2470 2469 +f 2398 2399 2471 2470 +f 2399 2400 2472 2471 +f 2400 2401 2473 2472 +f 2401 2402 2474 2473 +f 2402 2403 2475 2474 +f 2403 2404 2476 2475 +f 2404 2405 2477 2476 +f 2405 2406 2478 2477 +f 2406 2407 2479 2478 +f 2407 2408 2480 2479 +f 2408 2409 2481 2480 +f 2409 2410 2482 2481 +f 2410 2411 2483 2482 +f 2411 2412 2484 2483 +f 2412 2413 2485 2484 +f 2413 2414 2486 2485 +f 2414 2415 2487 2486 +f 2415 2416 2488 2487 +f 2416 2417 2489 2488 +f 2417 2418 2490 2489 +f 2418 2419 2491 2490 +f 2419 2420 2492 2491 +f 2420 2421 2493 2492 +f 2421 2422 2494 2493 +f 2422 2423 2495 2494 +f 2423 2424 2496 2495 +f 2424 2425 2497 2496 +f 2425 2426 2498 2497 +f 2426 2427 2499 2498 +f 2427 2428 2500 2499 +f 2428 2429 2501 2500 +f 2429 2430 2502 2501 +f 2430 2431 2503 2502 +f 2431 2432 2504 2503 +f 2432 2433 2505 2504 +f 2433 2434 2506 2505 +f 2434 2435 2507 2506 +f 2435 2436 2508 2507 +f 2436 2437 2509 2508 +f 2437 2438 2510 2509 +f 2438 2439 2511 2510 +f 2439 2440 2512 2511 +f 2440 2441 2513 2512 +f 2441 2442 2514 2513 +f 2442 2443 2515 2514 +f 2443 2444 2516 2515 +f 2444 2445 2517 2516 +f 2445 2446 2518 2517 +f 2446 2447 2519 2518 +f 2447 2448 2520 2519 +f 2448 2449 2521 2520 +f 2449 2450 2522 2521 +f 2450 2379 2451 2522 +f 2451 2452 2524 2523 +f 2452 2453 2525 2524 +f 2453 2454 2526 2525 +f 2454 2455 2527 2526 +f 2455 2456 2528 2527 +f 2456 2457 2529 2528 +f 2457 2458 2530 2529 +f 2458 2459 2531 2530 +f 2459 2460 2532 2531 +f 2460 2461 2533 2532 +f 2461 2462 2534 2533 +f 2462 2463 2535 2534 +f 2463 2464 2536 2535 +f 2464 2465 2537 2536 +f 2465 2466 2538 2537 +f 2466 2467 2539 2538 +f 2467 2468 2540 2539 +f 2468 2469 2541 2540 +f 2469 2470 2542 2541 +f 2470 2471 2543 2542 +f 2471 2472 2544 2543 +f 2472 2473 2545 2544 +f 2473 2474 2546 2545 +f 2474 2475 2547 2546 +f 2475 2476 2548 2547 +f 2476 2477 2549 2548 +f 2477 2478 2550 2549 +f 2478 2479 2551 2550 +f 2479 2480 2552 2551 +f 2480 2481 2553 2552 +f 2481 2482 2554 2553 +f 2482 2483 2555 2554 +f 2483 2484 2556 2555 +f 2484 2485 2557 2556 +f 2485 2486 2558 2557 +f 2486 2487 2559 2558 +f 2487 2488 2560 2559 +f 2488 2489 2561 2560 +f 2489 2490 2562 2561 +f 2490 2491 2563 2562 +f 2491 2492 2564 2563 +f 2492 2493 2565 2564 +f 2493 2494 2566 2565 +f 2494 2495 2567 2566 +f 2495 2496 2568 2567 +f 2496 2497 2569 2568 +f 2497 2498 2570 2569 +f 2498 2499 2571 2570 +f 2499 2500 2572 2571 +f 2500 2501 2573 2572 +f 2501 2502 2574 2573 +f 2502 2503 2575 2574 +f 2503 2504 2576 2575 +f 2504 2505 2577 2576 +f 2505 2506 2578 2577 +f 2506 2507 2579 2578 +f 2507 2508 2580 2579 +f 2508 2509 2581 2580 +f 2509 2510 2582 2581 +f 2510 2511 2583 2582 +f 2511 2512 2584 2583 +f 2512 2513 2585 2584 +f 2513 2514 2586 2585 +f 2514 2515 2587 2586 +f 2515 2516 2588 2587 +f 2516 2517 2589 2588 +f 2517 2518 2590 2589 +f 2518 2519 2591 2590 +f 2519 2520 2592 2591 +f 2520 2521 2593 2592 +f 2521 2522 2594 2593 +f 2522 2451 2523 2594 +f 1 4 3 +f 2 2523 2524 +f 1 5 4 +f 2 2524 2525 +f 1 6 5 +f 2 2525 2526 +f 1 7 6 +f 2 2526 2527 +f 1 8 7 +f 2 2527 2528 +f 1 9 8 +f 2 2528 2529 +f 1 10 9 +f 2 2529 2530 +f 1 11 10 +f 2 2530 2531 +f 1 12 11 +f 2 2531 2532 +f 1 13 12 +f 2 2532 2533 +f 1 14 13 +f 2 2533 2534 +f 1 15 14 +f 2 2534 2535 +f 1 16 15 +f 2 2535 2536 +f 1 17 16 +f 2 2536 2537 +f 1 18 17 +f 2 2537 2538 +f 1 19 18 +f 2 2538 2539 +f 1 20 19 +f 2 2539 2540 +f 1 21 20 +f 2 2540 2541 +f 1 22 21 +f 2 2541 2542 +f 1 23 22 +f 2 2542 2543 +f 1 24 23 +f 2 2543 2544 +f 1 25 24 +f 2 2544 2545 +f 1 26 25 +f 2 2545 2546 +f 1 27 26 +f 2 2546 2547 +f 1 28 27 +f 2 2547 2548 +f 1 29 28 +f 2 2548 2549 +f 1 30 29 +f 2 2549 2550 +f 1 31 30 +f 2 2550 2551 +f 1 32 31 +f 2 2551 2552 +f 1 33 32 +f 2 2552 2553 +f 1 34 33 +f 2 2553 2554 +f 1 35 34 +f 2 2554 2555 +f 1 36 35 +f 2 2555 2556 +f 1 37 36 +f 2 2556 2557 +f 1 38 37 +f 2 2557 2558 +f 1 39 38 +f 2 2558 2559 +f 1 40 39 +f 2 2559 2560 +f 1 41 40 +f 2 2560 2561 +f 1 42 41 +f 2 2561 2562 +f 1 43 42 +f 2 2562 2563 +f 1 44 43 +f 2 2563 2564 +f 1 45 44 +f 2 2564 2565 +f 1 46 45 +f 2 2565 2566 +f 1 47 46 +f 2 2566 2567 +f 1 48 47 +f 2 2567 2568 +f 1 49 48 +f 2 2568 2569 +f 1 50 49 +f 2 2569 2570 +f 1 51 50 +f 2 2570 2571 +f 1 52 51 +f 2 2571 2572 +f 1 53 52 +f 2 2572 2573 +f 1 54 53 +f 2 2573 2574 +f 1 55 54 +f 2 2574 2575 +f 1 56 55 +f 2 2575 2576 +f 1 57 56 +f 2 2576 2577 +f 1 58 57 +f 2 2577 2578 +f 1 59 58 +f 2 2578 2579 +f 1 60 59 +f 2 2579 2580 +f 1 61 60 +f 2 2580 2581 +f 1 62 61 +f 2 2581 2582 +f 1 63 62 +f 2 2582 2583 +f 1 64 63 +f 2 2583 2584 +f 1 65 64 +f 2 2584 2585 +f 1 66 65 +f 2 2585 2586 +f 1 67 66 +f 2 2586 2587 +f 1 68 67 +f 2 2587 2588 +f 1 69 68 +f 2 2588 2589 +f 1 70 69 +f 2 2589 2590 +f 1 71 70 +f 2 2590 2591 +f 1 72 71 +f 2 2591 2592 +f 1 73 72 +f 2 2592 2593 +f 1 74 73 +f 2 2593 2594 +f 1 3 74 +f 2 2594 2523 diff --git a/data/spheres/19.obj b/data/spheres/19.obj new file mode 100644 index 0000000..c6739b0 --- /dev/null +++ b/data/spheres/19.obj @@ -0,0 +1,5854 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 8.04665 99.6757 5.88009e-39 +v 8.01917 99.6757 0.664487 +v 7.93691 99.6757 1.32443 +v 7.80043 99.6757 1.97533 +v 7.61066 99.6757 2.61274 +v 7.36891 99.6757 3.2323 +v 7.07682 99.6757 3.82978 +v 6.73639 99.6757 4.4011 +v 6.34994 99.6757 4.94235 +v 5.92012 99.6757 5.44985 +v 5.44985 99.6757 5.92011 +v 4.94236 99.6757 6.34994 +v 4.40111 99.6757 6.73638 +v 3.82979 99.6757 7.07682 +v 3.23231 99.6757 7.36891 +v 2.61275 99.6757 7.61066 +v 1.97534 99.6757 7.80042 +v 1.32444 99.6757 7.9369 +v 0.664496 99.6757 8.01917 +v 9.24063e-06 99.6757 8.04665 +v -0.664477 99.6757 8.01917 +v -1.32443 99.6757 7.93691 +v -1.97533 99.6757 7.80043 +v -2.61273 99.6757 7.61066 +v -3.23229 99.6757 7.36891 +v -3.82977 99.6757 7.07682 +v -4.40109 99.6757 6.73639 +v -4.94234 99.6757 6.34995 +v -5.44984 99.6757 5.92012 +v -5.9201 99.6757 5.44986 +v -6.34993 99.6757 4.94237 +v -6.73638 99.6757 4.40111 +v -7.07681 99.6757 3.8298 +v -7.3689 99.6757 3.23232 +v -7.61066 99.6757 2.61276 +v -7.80042 99.6757 1.97535 +v -7.9369 99.6757 1.32445 +v -8.01917 99.6757 0.664504 +v -8.04665 99.6757 1.84813e-05 +v -8.01917 99.6757 -0.664467 +v -7.93691 99.6757 -1.32442 +v -7.80043 99.6757 -1.97532 +v -7.61067 99.6757 -2.61272 +v -7.36892 99.6757 -3.23228 +v -7.07683 99.6757 -3.82976 +v -6.7364 99.6757 -4.40108 +v -6.34995 99.6757 -4.94234 +v -5.92013 99.6757 -5.44983 +v -5.44987 99.6757 -5.9201 +v -4.94237 99.6757 -6.34992 +v -4.40112 99.6757 -6.73637 +v -3.82981 99.6757 -7.07681 +v -3.23233 99.6757 -7.3689 +v -2.61277 99.6757 -7.61065 +v -1.97536 99.6757 -7.80042 +v -1.32446 99.6757 -7.9369 +v -0.664514 99.6757 -8.01917 +v -2.67626e-05 99.6757 -8.04665 +v 0.664461 99.6757 -8.01917 +v 1.32441 99.6757 -7.93691 +v 1.97531 99.6757 -7.80043 +v 2.61272 99.6757 -7.61067 +v 3.23227 99.6757 -7.36892 +v 3.82975 99.6757 -7.07683 +v 4.40107 99.6757 -6.7364 +v 4.94233 99.6757 -6.34996 +v 5.44983 99.6757 -5.92013 +v 5.92009 99.6757 -5.44987 +v 6.34992 99.6757 -4.94238 +v 6.73637 99.6757 -4.40113 +v 7.0768 99.6757 -3.82981 +v 7.36889 99.6757 -3.23234 +v 7.61065 99.6757 -2.61278 +v 7.80042 99.6757 -1.97537 +v 7.9369 99.6757 -1.32447 +v 8.01916 99.6757 -0.664524 +v 16.0411 98.705 5.88009e-39 +v 15.9863 98.705 1.32466 +v 15.8223 98.705 2.64028 +v 15.5503 98.705 3.93786 +v 15.172 98.705 5.20854 +v 14.69 98.705 6.44364 +v 14.1077 98.705 7.63472 +v 13.4291 98.705 8.77365 +v 12.6587 98.705 9.85265 +v 11.8018 98.705 10.8643 +v 10.8644 98.705 11.8018 +v 9.85267 98.705 12.6587 +v 8.77367 98.705 13.4291 +v 7.63474 98.705 14.1077 +v 6.44366 98.705 14.69 +v 5.20856 98.705 15.172 +v 3.93788 98.705 15.5503 +v 2.6403 98.705 15.8223 +v 1.32468 98.705 15.9863 +v 1.84213e-05 98.705 16.0411 +v -1.32465 98.705 15.9863 +v -2.64026 98.705 15.8223 +v -3.93784 98.705 15.5503 +v -5.20852 98.705 15.172 +v -6.44362 98.705 14.69 +v -7.63471 98.705 14.1078 +v -8.77364 98.705 13.4291 +v -9.85264 98.705 12.6587 +v -10.8643 98.705 11.8019 +v -11.8018 98.705 10.8644 +v -12.6587 98.705 9.85268 +v -13.4291 98.705 8.77369 +v -14.1077 98.705 7.63476 +v -14.69 98.705 6.44367 +v -15.172 98.705 5.20857 +v -15.5503 98.705 3.9379 +v -15.8223 98.705 2.64032 +v -15.9863 98.705 1.3247 +v -16.0411 98.705 3.68426e-05 +v -15.9863 98.705 -1.32463 +v -15.8223 98.705 -2.64024 +v -15.5503 98.705 -3.93782 +v -15.172 98.705 -5.2085 +v -14.69 98.705 -6.4436 +v -14.1078 98.705 -7.63469 +v -13.4291 98.705 -8.77362 +v -12.6587 98.705 -9.85262 +v -11.8019 98.705 -10.8643 +v -10.8644 98.705 -11.8018 +v -9.85269 98.705 -12.6587 +v -8.7737 98.705 -13.4291 +v -7.63477 98.705 -14.1077 +v -6.44369 98.705 -14.69 +v -5.20859 98.705 -15.1719 +v -3.93792 98.705 -15.5502 +v -2.64034 98.705 -15.8223 +v -1.32472 98.705 -15.9863 +v -5.33517e-05 98.705 -16.0411 +v 1.32461 98.705 -15.9863 +v 2.64022 98.705 -15.8223 +v 3.9378 98.705 -15.5503 +v 5.20849 98.705 -15.172 +v 6.44358 98.705 -14.6901 +v 7.63467 98.705 -14.1078 +v 8.77361 98.705 -13.4291 +v 9.85261 98.705 -12.6587 +v 10.8643 98.705 -11.8019 +v 11.8018 98.705 -10.8644 +v 12.6587 98.705 -9.85271 +v 13.429 98.705 -8.77371 +v 14.1077 98.705 -7.63479 +v 14.69 98.705 -6.44371 +v 15.1719 98.705 -5.20861 +v 15.5502 98.705 -3.93793 +v 15.8223 98.705 -2.64035 +v 15.9863 98.705 -1.32474 +v 23.9315 97.0942 5.88009e-39 +v 23.8498 97.0942 1.97625 +v 23.6052 97.0942 3.939 +v 23.1993 97.0942 5.87484 +v 22.6349 97.0942 7.77056 +v 21.9159 97.0942 9.61319 +v 21.0472 97.0942 11.3902 +v 20.0347 97.0942 13.0893 +v 18.8854 97.0942 14.6991 +v 17.607 97.0942 16.2084 +v 16.2084 97.0942 17.607 +v 14.6991 97.0942 18.8853 +v 13.0893 97.0942 20.0347 +v 11.3902 97.0942 21.0472 +v 9.61321 97.0942 21.9159 +v 7.77058 97.0942 22.6349 +v 5.87487 97.0942 23.1992 +v 3.93903 97.0942 23.6052 +v 1.97628 97.0942 23.8498 +v 2.74825e-05 97.0942 23.9315 +v -1.97622 97.0942 23.8498 +v -3.93897 97.0942 23.6052 +v -5.87482 97.0942 23.1993 +v -7.77053 97.0942 22.6349 +v -9.61316 97.0942 21.9159 +v -11.3901 97.0942 21.0472 +v -13.0893 97.0942 20.0347 +v -14.699 97.0942 18.8854 +v -16.2084 97.0942 17.607 +v -17.607 97.0942 16.2084 +v -18.8853 97.0942 14.6991 +v -20.0347 97.0942 13.0894 +v -21.0471 97.0942 11.3902 +v -21.9159 97.0942 9.61323 +v -22.6349 97.0942 7.77061 +v -23.1992 97.0942 5.8749 +v -23.6051 97.0942 3.93905 +v -23.8498 97.0942 1.9763 +v -23.9315 97.0942 5.49651e-05 +v -23.8498 97.0942 -1.97619 +v -23.6052 97.0942 -3.93895 +v -23.1993 97.0942 -5.87479 +v -22.6349 97.0942 -7.7705 +v -21.9159 97.0942 -9.61313 +v -21.0472 97.0942 -11.3901 +v -20.0347 97.0942 -13.0893 +v -18.8854 97.0942 -14.699 +v -17.6071 97.0942 -16.2083 +v -16.2084 97.0942 -17.607 +v -14.6991 97.0942 -18.8853 +v -13.0894 97.0942 -20.0347 +v -11.3902 97.0942 -21.0471 +v -9.61326 97.0942 -21.9158 +v -7.77063 97.0942 -22.6348 +v -5.87493 97.0942 -23.1992 +v -3.93908 97.0942 -23.6051 +v -1.97633 97.0942 -23.8498 +v -7.95948e-05 97.0942 -23.9315 +v 1.97617 97.0942 -23.8498 +v 3.93892 97.0942 -23.6052 +v 5.87476 97.0942 -23.1993 +v 7.77048 97.0942 -22.6349 +v 9.61311 97.0942 -21.9159 +v 11.3901 97.0942 -21.0472 +v 13.0892 97.0942 -20.0347 +v 14.699 97.0942 -18.8854 +v 16.2083 97.0942 -17.6071 +v 17.6069 97.0942 -16.2085 +v 18.8853 97.0942 -14.6991 +v 20.0346 97.0942 -13.0894 +v 21.0471 97.0942 -11.3903 +v 21.9158 97.0942 -9.61329 +v 22.6348 97.0942 -7.77066 +v 23.1992 97.0942 -5.87495 +v 23.6051 97.0942 -3.9391 +v 23.8498 97.0942 -1.97636 +v 31.6668 94.8537 5.88009e-39 +v 31.5586 94.8537 2.61502 +v 31.2349 94.8537 5.21218 +v 30.6978 94.8537 7.77373 +v 29.951 94.8537 10.2822 +v 28.9996 94.8537 12.7204 +v 27.8501 94.8537 15.0717 +v 26.5104 94.8537 17.3201 +v 24.9895 94.8537 19.4501 +v 23.298 94.8537 21.4473 +v 21.4473 94.8537 23.298 +v 19.4502 94.8537 24.9895 +v 17.3201 94.8537 26.5104 +v 15.0717 94.8537 27.8501 +v 12.7204 94.8537 28.9996 +v 10.2822 94.8537 29.951 +v 7.77376 94.8537 30.6978 +v 5.21221 94.8537 31.2349 +v 2.61506 94.8537 31.5586 +v 3.63655e-05 94.8537 31.6668 +v -2.61498 94.8537 31.5586 +v -5.21214 94.8537 31.2349 +v -7.77369 94.8537 30.6978 +v -10.2821 94.8537 29.951 +v -12.7204 94.8537 28.9996 +v -15.0717 94.8537 27.8501 +v -17.32 94.8537 26.5104 +v -19.4501 94.8537 24.9896 +v -21.4473 94.8537 23.298 +v -23.298 94.8537 21.4474 +v -24.9895 94.8537 19.4502 +v -26.5103 94.8537 17.3201 +v -27.8501 94.8537 15.0718 +v -28.9996 94.8537 12.7205 +v -29.951 94.8537 10.2822 +v -30.6978 94.8537 7.7738 +v -31.2349 94.8537 5.21225 +v -31.5586 94.8537 2.61509 +v -31.6668 94.8537 7.27311e-05 +v -31.5586 94.8537 -2.61494 +v -31.2349 94.8537 -5.2121 +v -30.6978 94.8537 -7.77366 +v -29.951 94.8537 -10.2821 +v -28.9996 94.8537 -12.7203 +v -27.8501 94.8537 -15.0716 +v -26.5104 94.8537 -17.32 +v -24.9896 94.8537 -19.4501 +v -23.2981 94.8537 -21.4473 +v -21.4474 94.8537 -23.2979 +v -19.4502 94.8537 -24.9895 +v -17.3202 94.8537 -26.5103 +v -15.0718 94.8537 -27.85 +v -12.7205 94.8537 -28.9995 +v -10.2823 94.8537 -29.951 +v -7.77384 94.8537 -30.6978 +v -5.21229 94.8537 -31.2349 +v -2.61513 94.8537 -31.5586 +v -0.000105322 94.8537 -31.6668 +v 2.61492 94.8537 -31.5586 +v 5.21207 94.8537 -31.2349 +v 7.77362 94.8537 -30.6978 +v 10.2821 94.8537 -29.951 +v 12.7203 94.8537 -28.9996 +v 15.0716 94.8537 -27.8502 +v 17.32 94.8537 -26.5104 +v 19.45 94.8537 -24.9896 +v 21.4472 94.8537 -23.2981 +v 23.2979 94.8537 -21.4474 +v 24.9895 94.8537 -19.4502 +v 26.5103 94.8537 -17.3202 +v 27.85 94.8537 -15.0718 +v 28.9995 94.8537 -12.7205 +v 29.9509 94.8537 -10.2823 +v 30.6977 94.8537 -7.77387 +v 31.2349 94.8537 -5.21231 +v 31.5586 94.8537 -2.61517 +v 39.1966 91.998 5.88009e-39 +v 39.0628 91.998 3.23683 +v 38.662 91.998 6.45155 +v 37.9972 91.998 9.6222 +v 37.0729 91.998 12.7271 +v 35.8952 91.998 15.7451 +v 34.4724 91.998 18.6555 +v 32.8141 91.998 21.4385 +v 30.9317 91.998 24.0751 +v 28.8379 91.998 26.5471 +v 26.5472 91.998 28.8379 +v 24.0751 91.998 30.9316 +v 21.4385 91.998 32.8141 +v 18.6556 91.998 34.4724 +v 15.7451 91.998 35.8952 +v 12.7272 91.998 37.0728 +v 9.62224 91.998 37.9972 +v 6.45159 91.998 38.662 +v 3.23687 91.998 39.0628 +v 4.50127e-05 91.998 39.1966 +v -3.23678 91.998 39.0628 +v -6.4515 91.998 38.662 +v -9.62215 91.998 37.9972 +v -12.7271 91.998 37.0729 +v -15.7451 91.998 35.8953 +v -18.6555 91.998 34.4724 +v -21.4385 91.998 32.8141 +v -24.075 91.998 30.9317 +v -26.5471 91.998 28.8379 +v -28.8379 91.998 26.5472 +v -30.9316 91.998 24.0751 +v -32.8141 91.998 21.4386 +v -34.4724 91.998 18.6556 +v -35.8952 91.998 15.7452 +v -37.0728 91.998 12.7272 +v -37.9972 91.998 9.62229 +v -38.662 91.998 6.45164 +v -39.0627 91.998 3.23691 +v -39.1966 91.998 9.00254e-05 +v -39.0628 91.998 -3.23674 +v -38.6621 91.998 -6.45146 +v -37.9972 91.998 -9.62212 +v -37.0729 91.998 -12.727 +v -35.8953 91.998 -15.745 +v -34.4725 91.998 -18.6554 +v -32.8142 91.998 -21.4384 +v -30.9317 91.998 -24.075 +v -28.838 91.998 -26.5471 +v -26.5472 91.998 -28.8378 +v -24.0752 91.998 -30.9316 +v -21.4386 91.998 -32.814 +v -18.6556 91.998 -34.4724 +v -15.7452 91.998 -35.8952 +v -12.7272 91.998 -37.0728 +v -9.62234 91.998 -37.9972 +v -6.45169 91.998 -38.662 +v -3.23696 91.998 -39.0627 +v -0.000130365 91.998 -39.1966 +v 3.2367 91.998 -39.0628 +v 6.45141 91.998 -38.6621 +v 9.62207 91.998 -37.9973 +v 12.727 91.998 -37.0729 +v 15.745 91.998 -35.8953 +v 18.6554 91.998 -34.4725 +v 21.4384 91.998 -32.8142 +v 24.075 91.998 -30.9317 +v 26.547 91.998 -28.838 +v 28.8378 91.998 -26.5473 +v 30.9316 91.998 -24.0752 +v 32.814 91.998 -21.4387 +v 34.4723 91.998 -18.6557 +v 35.8952 91.998 -15.7453 +v 37.0728 91.998 -12.7273 +v 37.9972 91.998 -9.62237 +v 38.662 91.998 -6.45172 +v 39.0627 91.998 -3.23701 +v 46.4723 88.5456 5.88009e-39 +v 46.3136 88.5456 3.83765 +v 45.8385 88.5456 7.64908 +v 45.0502 88.5456 11.4083 +v 43.9543 88.5456 15.0895 +v 42.5581 88.5456 18.6677 +v 40.8712 88.5456 22.1183 +v 38.9051 88.5456 25.4179 +v 36.6732 88.5456 28.5439 +v 34.1908 88.5456 31.4748 +v 31.4748 88.5456 34.1908 +v 28.5439 88.5456 36.6731 +v 25.418 88.5456 38.905 +v 22.1184 88.5456 40.8711 +v 18.6677 88.5456 42.5581 +v 15.0896 88.5456 43.9543 +v 11.4083 88.5456 45.0502 +v 7.64913 88.5456 45.8385 +v 3.8377 88.5456 46.3136 +v 5.33679e-05 88.5456 46.4723 +v -3.83759 88.5456 46.3136 +v -7.64903 88.5456 45.8385 +v -11.4082 88.5456 45.0503 +v -15.0895 88.5456 43.9543 +v -18.6676 88.5456 42.5581 +v -22.1183 88.5456 40.8712 +v -25.4179 88.5456 38.9051 +v -28.5438 88.5456 36.6732 +v -31.4748 88.5456 34.1908 +v -34.1907 88.5456 31.4749 +v -36.6731 88.5456 28.5439 +v -38.905 88.5456 25.418 +v -40.8711 88.5456 22.1184 +v -42.558 88.5456 18.6678 +v -43.9543 88.5456 15.0896 +v -45.0502 88.5456 11.4084 +v -45.8384 88.5456 7.64919 +v -46.3136 88.5456 3.83775 +v -46.4723 88.5456 0.000106736 +v -46.3136 88.5456 -3.83754 +v -45.8385 88.5456 -7.64898 +v -45.0503 88.5456 -11.4082 +v -43.9543 88.5456 -15.0894 +v -42.5581 88.5456 -18.6676 +v -40.8712 88.5456 -22.1183 +v -38.9051 88.5456 -25.4178 +v -36.6732 88.5456 -28.5438 +v -34.1909 88.5456 -31.4747 +v -31.4749 88.5456 -34.1907 +v -28.544 88.5456 -36.6731 +v -25.418 88.5456 -38.905 +v -22.1185 88.5456 -40.8711 +v -18.6678 88.5456 -42.558 +v -15.0897 88.5456 -43.9542 +v -11.4084 88.5456 -45.0502 +v -7.64924 88.5456 -45.8384 +v -3.83781 88.5456 -46.3135 +v -0.000154564 88.5456 -46.4723 +v 3.8375 88.5456 -46.3136 +v 7.64892 88.5456 -45.8385 +v 11.4081 88.5456 -45.0503 +v 15.0894 88.5456 -43.9543 +v 18.6675 88.5456 -42.5582 +v 22.1182 88.5456 -40.8712 +v 25.4178 88.5456 -38.9051 +v 28.5437 88.5456 -36.6733 +v 31.4747 88.5456 -34.1909 +v 34.1906 88.5456 -31.475 +v 36.673 88.5456 -28.544 +v 38.9049 88.5456 -25.4181 +v 40.8711 88.5456 -22.1185 +v 42.558 88.5456 -18.6679 +v 43.9542 88.5456 -15.0897 +v 45.0502 88.5456 -11.4085 +v 45.8384 88.5456 -7.64928 +v 46.3135 88.5456 -3.83787 +v 53.4465 84.519 5.88009e-39 +v 53.264 84.519 4.41358 +v 52.7176 84.519 8.79701 +v 51.8111 84.519 13.1203 +v 50.5507 84.519 17.3541 +v 48.9449 84.519 21.4692 +v 47.0048 84.519 25.4377 +v 44.7437 84.519 29.2325 +v 42.1769 84.519 32.8275 +v 39.3219 84.519 36.1983 +v 36.1984 84.519 39.3219 +v 32.8276 84.519 42.1768 +v 29.2325 84.519 44.7436 +v 25.4378 84.519 47.0048 +v 21.4693 84.519 48.9449 +v 17.3541 84.519 50.5507 +v 13.1204 84.519 51.8111 +v 8.79707 84.519 52.7176 +v 4.41364 84.519 53.264 +v 6.1377e-05 84.519 53.4465 +v -4.41352 84.519 53.264 +v -8.79695 84.519 52.7176 +v -13.1203 84.519 51.8111 +v -17.354 84.519 50.5507 +v -21.4692 84.519 48.945 +v -25.4377 84.519 47.0049 +v -29.2324 84.519 44.7437 +v -32.8275 84.519 42.1769 +v -36.1983 84.519 39.322 +v -39.3218 84.519 36.1984 +v -42.1768 84.519 32.8276 +v -44.7436 84.519 29.2326 +v -47.0048 84.519 25.4378 +v -48.9449 84.519 21.4693 +v -50.5506 84.519 17.3542 +v -51.8111 84.519 13.1205 +v -52.7176 84.519 8.79713 +v -53.264 84.519 4.41369 +v -53.4465 84.519 0.000122754 +v -53.264 84.519 -4.41345 +v -52.7176 84.519 -8.79689 +v -51.8111 84.519 -13.1202 +v -50.5507 84.519 -17.3539 +v -48.945 84.519 -21.4691 +v -47.0049 84.519 -25.4376 +v -44.7437 84.519 -29.2324 +v -42.1769 84.519 -32.8274 +v -39.322 84.519 -36.1982 +v -36.1985 84.519 -39.3218 +v -32.8277 84.519 -42.1767 +v -29.2326 84.519 -44.7436 +v -25.4379 84.519 -47.0048 +v -21.4694 84.519 -48.9449 +v -17.3542 84.519 -50.5506 +v -13.1205 84.519 -51.8111 +v -8.79719 84.519 -52.7176 +v -4.41376 84.519 -53.264 +v -0.00017776 84.519 -53.4465 +v 4.41341 84.519 -53.264 +v 8.79682 84.519 -52.7176 +v 13.1202 84.519 -51.8111 +v 17.3539 84.519 -50.5507 +v 21.469 84.519 -48.945 +v 25.4376 84.519 -47.0049 +v 29.2323 84.519 -44.7438 +v 32.8274 84.519 -42.177 +v 36.1982 84.519 -39.322 +v 39.3218 84.519 -36.1985 +v 42.1767 84.519 -32.8277 +v 44.7435 84.519 -29.2327 +v 47.0047 84.519 -25.438 +v 48.9448 84.519 -21.4694 +v 50.5506 84.519 -17.3543 +v 51.811 84.519 -13.1206 +v 52.7176 84.519 -8.79724 +v 53.264 84.519 -4.41383 +v 60.0742 79.9443 5.88009e-39 +v 59.869 79.9443 4.96088 +v 59.2549 79.9443 9.88788 +v 58.2359 79.9443 14.7473 +v 56.8192 79.9443 19.506 +v 55.0143 79.9443 24.1315 +v 52.8337 79.9443 28.5921 +v 50.2921 79.9443 32.8574 +v 47.407 79.9443 36.8983 +v 44.198 79.9443 40.6871 +v 40.6872 79.9443 44.198 +v 36.8984 79.9443 47.407 +v 32.8575 79.9443 50.2921 +v 28.5922 79.9443 52.8336 +v 24.1316 79.9443 55.0143 +v 19.5061 79.9443 56.8192 +v 14.7474 79.9443 58.2359 +v 9.88795 79.9443 59.2548 +v 4.96095 79.9443 59.869 +v 6.89881e-05 79.9443 60.0742 +v -4.96081 79.9443 59.869 +v -9.88781 79.9443 59.2549 +v -14.7473 79.9443 58.236 +v -19.506 79.9443 56.8192 +v -24.1314 79.9443 55.0144 +v -28.5921 79.9443 52.8337 +v -32.8574 79.9443 50.2921 +v -36.8982 79.9443 47.407 +v -40.6871 79.9443 44.1981 +v -44.1979 79.9443 40.6872 +v -47.4069 79.9443 36.8984 +v -50.292 79.9443 32.8576 +v -52.8336 79.9443 28.5923 +v -55.0143 79.9443 24.1316 +v -56.8192 79.9443 19.5062 +v -58.2359 79.9443 14.7475 +v -59.2548 79.9443 9.88802 +v -59.869 79.9443 4.96101 +v -60.0742 79.9443 0.000137976 +v -59.869 79.9443 -4.96074 +v -59.2549 79.9443 -9.88774 +v -58.236 79.9443 -14.7472 +v -56.8193 79.9443 -19.5059 +v -55.0144 79.9443 -24.1314 +v -52.8337 79.9443 -28.592 +v -50.2922 79.9443 -32.8573 +v -47.4071 79.9443 -36.8982 +v -44.1981 79.9443 -40.687 +v -40.6873 79.9443 -44.1979 +v -36.8985 79.9443 -47.4069 +v -32.8576 79.9443 -50.292 +v -28.5923 79.9443 -52.8336 +v -24.1317 79.9443 -55.0143 +v -19.5062 79.9443 -56.8191 +v -14.7475 79.9443 -58.2359 +v -9.88809 79.9443 -59.2548 +v -4.96109 79.9443 -59.869 +v -0.000199803 79.9443 -60.0742 +v 4.96069 79.9443 -59.869 +v 9.88767 79.9443 -59.2549 +v 14.7471 79.9443 -58.236 +v 19.5059 79.9443 -56.8193 +v 24.1313 79.9443 -55.0144 +v 28.5919 79.9443 -52.8338 +v 32.8573 79.9443 -50.2922 +v 36.8982 79.9443 -47.4071 +v 40.687 79.9443 -44.1982 +v 44.1978 79.9443 -40.6873 +v 47.4068 79.9443 -36.8985 +v 50.292 79.9443 -32.8577 +v 52.8335 79.9443 -28.5924 +v 55.0142 79.9443 -24.1318 +v 56.8191 79.9443 -19.5063 +v 58.2359 79.9443 -14.7476 +v 59.2548 79.9443 -9.88814 +v 59.869 79.9443 -4.96117 +v 66.3122 74.8511 5.88009e-39 +v 66.0857 74.8511 5.47602 +v 65.4078 74.8511 10.9146 +v 64.2831 74.8511 16.2787 +v 62.7192 74.8511 21.5315 +v 60.727 74.8511 26.6373 +v 58.3199 74.8511 31.5611 +v 55.5144 74.8511 36.2693 +v 52.3297 74.8511 40.7298 +v 48.7875 74.8511 44.912 +v 44.9121 74.8511 48.7875 +v 40.7298 74.8511 52.3296 +v 36.2694 74.8511 55.5143 +v 31.5612 74.8511 58.3198 +v 26.6374 74.8511 60.7269 +v 21.5316 74.8511 62.7192 +v 16.2788 74.8511 64.2831 +v 10.9147 74.8511 65.4078 +v 5.47609 74.8511 66.0857 +v 7.61517e-05 74.8511 66.3122 +v -5.47594 74.8511 66.0857 +v -10.9146 74.8511 65.4078 +v -16.2786 74.8511 64.2831 +v -21.5315 74.8511 62.7193 +v -26.6372 74.8511 60.727 +v -31.5611 74.8511 58.3199 +v -36.2693 74.8511 55.5144 +v -40.7297 74.8511 52.3297 +v -44.912 74.8511 48.7876 +v -48.7874 74.8511 44.9121 +v -52.3296 74.8511 40.7299 +v -55.5143 74.8511 36.2695 +v -58.3198 74.8511 31.5612 +v -60.7269 74.8511 26.6374 +v -62.7192 74.8511 21.5317 +v -64.2831 74.8511 16.2788 +v -65.4078 74.8511 10.9148 +v -66.0857 74.8511 5.47616 +v -66.3122 74.8511 0.000152303 +v -66.0857 74.8511 -5.47586 +v -65.4078 74.8511 -10.9145 +v -64.2831 74.8511 -16.2785 +v -62.7193 74.8511 -21.5314 +v -60.727 74.8511 -26.6372 +v -58.3199 74.8511 -31.561 +v -55.5145 74.8511 -36.2692 +v -52.3298 74.8511 -40.7297 +v -48.7876 74.8511 -44.9119 +v -44.9122 74.8511 -48.7874 +v -40.73 74.8511 -52.3295 +v -36.2695 74.8511 -55.5143 +v -31.5613 74.8511 -58.3198 +v -26.6375 74.8511 -60.7269 +v -21.5317 74.8511 -62.7192 +v -16.2789 74.8511 -64.283 +v -10.9149 74.8511 -65.4078 +v -5.47624 74.8511 -66.0857 +v -0.00022055 74.8511 -66.3122 +v 5.4758 74.8511 -66.0858 +v 10.9144 74.8511 -65.4079 +v 16.2785 74.8511 -64.2831 +v 21.5313 74.8511 -62.7193 +v 26.6371 74.8511 -60.7271 +v 31.5609 74.8511 -58.32 +v 36.2691 74.8511 -55.5145 +v 40.7296 74.8511 -52.3298 +v 44.9119 74.8511 -48.7877 +v 48.7873 74.8511 -44.9123 +v 52.3295 74.8511 -40.73 +v 55.5142 74.8511 -36.2696 +v 58.3197 74.8511 -31.5614 +v 60.7268 74.8511 -26.6376 +v 62.7192 74.8511 -21.5318 +v 64.283 74.8511 -16.279 +v 65.4078 74.8511 -10.9149 +v 66.0857 74.8511 -5.47633 +v 72.1202 69.2725 5.88009e-39 +v 71.8739 69.2725 5.95563 +v 71.1366 69.2725 11.8706 +v 69.9133 69.2725 17.7045 +v 68.2125 69.2725 23.4174 +v 66.0458 69.2725 28.9703 +v 63.4278 69.2725 34.3254 +v 60.3766 69.2725 39.446 +v 56.913 69.2725 44.2971 +v 53.0606 69.2725 48.8457 +v 48.8457 69.2725 53.0605 +v 44.2972 69.2725 56.9129 +v 39.4461 69.2725 60.3766 +v 34.3255 69.2725 63.4278 +v 28.9704 69.2725 66.0457 +v 23.4175 69.2725 68.2125 +v 17.7045 69.2725 69.9133 +v 11.8707 69.2725 71.1366 +v 5.95572 69.2725 71.8739 +v 8.28215e-05 69.2725 72.1202 +v -5.95555 69.2725 71.8739 +v -11.8705 69.2725 71.1366 +v -17.7044 69.2725 69.9134 +v -23.4173 69.2725 68.2126 +v -28.9703 69.2725 66.0458 +v -34.3253 69.2725 63.4279 +v -39.4459 69.2725 60.3767 +v -44.297 69.2725 56.9131 +v -48.8456 69.2725 53.0606 +v -53.0605 69.2725 48.8458 +v -56.9129 69.2725 44.2972 +v -60.3765 69.2725 39.4461 +v -63.4278 69.2725 34.3255 +v -66.0457 69.2725 28.9705 +v -68.2125 69.2725 23.4175 +v -69.9133 69.2725 17.7046 +v -71.1366 69.2725 11.8707 +v -71.8739 69.2725 5.95579 +v -72.1202 69.2725 0.000165643 +v -71.8739 69.2725 -5.95546 +v -71.1366 69.2725 -11.8704 +v -69.9134 69.2725 -17.7043 +v -68.2126 69.2725 -23.4172 +v -66.0458 69.2725 -28.9702 +v -63.4279 69.2725 -34.3253 +v -60.3767 69.2725 -39.4459 +v -56.9131 69.2725 -44.297 +v -53.0607 69.2725 -48.8455 +v -48.8458 69.2725 -53.0604 +v -44.2973 69.2725 -56.9128 +v -39.4462 69.2725 -60.3765 +v -34.3256 69.2725 -63.4277 +v -28.9706 69.2725 -66.0457 +v -23.4176 69.2725 -68.2125 +v -17.7047 69.2725 -69.9133 +v -11.8708 69.2725 -71.1365 +v -5.95588 69.2725 -71.8739 +v -0.000239867 69.2725 -72.1202 +v 5.9554 69.2725 -71.8739 +v 11.8703 69.2725 -71.1366 +v 17.7042 69.2725 -69.9134 +v 23.4171 69.2725 -68.2126 +v 28.9701 69.2725 -66.0459 +v 34.3252 69.2725 -63.428 +v 39.4458 69.2725 -60.3768 +v 44.2969 69.2725 -56.9131 +v 48.8455 69.2725 -53.0607 +v 53.0604 69.2725 -48.8459 +v 56.9128 69.2725 -44.2974 +v 60.3765 69.2725 -39.4463 +v 63.4277 69.2725 -34.3257 +v 66.0456 69.2725 -28.9706 +v 68.2124 69.2725 -23.4177 +v 69.9133 69.2725 -17.7048 +v 71.1365 69.2725 -11.8709 +v 71.8738 69.2725 -5.95597 +v 77.4605 63.2446 5.88009e-39 +v 77.1959 63.2446 6.39663 +v 76.404 63.2446 12.7496 +v 75.0902 63.2446 19.0154 +v 73.2634 63.2446 25.1514 +v 70.9362 63.2446 31.1155 +v 68.1245 63.2446 36.8671 +v 64.8473 63.2446 42.3668 +v 61.1272 63.2446 47.5772 +v 56.9895 63.2446 52.4625 +v 52.4626 63.2446 56.9895 +v 47.5772 63.2446 61.1272 +v 42.3669 63.2446 64.8473 +v 36.8672 63.2446 68.1244 +v 31.1156 63.2446 70.9362 +v 25.1514 63.2446 73.2634 +v 19.0155 63.2446 75.0902 +v 12.7497 63.2446 76.404 +v 6.39672 63.2446 77.1959 +v 8.89542e-05 63.2446 77.4605 +v -6.39654 63.2446 77.1959 +v -12.7495 63.2446 76.404 +v -19.0153 63.2446 75.0902 +v -25.1513 63.2446 73.2635 +v -31.1154 63.2446 70.9363 +v -36.867 63.2446 68.1245 +v -42.3668 63.2446 64.8474 +v -47.5771 63.2446 61.1273 +v -52.4624 63.2446 56.9896 +v -56.9894 63.2446 52.4626 +v -61.1271 63.2446 47.5773 +v -64.8472 63.2446 42.367 +v -68.1244 63.2446 36.8672 +v -70.9362 63.2446 31.1156 +v -73.2634 63.2446 25.1515 +v -75.0901 63.2446 19.0156 +v -76.404 63.2446 12.7497 +v -77.1959 63.2446 6.3968 +v -77.4605 63.2446 0.000177908 +v -77.1959 63.2446 -6.39644 +v -76.404 63.2446 -12.7494 +v -75.0902 63.2446 -19.0152 +v -73.2635 63.2446 -25.1512 +v -70.9363 63.2446 -31.1153 +v -68.1245 63.2446 -36.8669 +v -64.8474 63.2446 -42.3667 +v -61.1273 63.2446 -47.577 +v -56.9897 63.2446 -52.4624 +v -52.4627 63.2446 -56.9894 +v -47.5774 63.2446 -61.127 +v -42.367 63.2446 -64.8472 +v -36.8673 63.2446 -68.1243 +v -31.1157 63.2446 -70.9361 +v -25.1516 63.2446 -73.2634 +v -19.0157 63.2446 -75.0901 +v -12.7498 63.2446 -76.404 +v -6.39689 63.2446 -77.1959 +v -0.000257628 63.2446 -77.4605 +v 6.39638 63.2446 -77.1959 +v 12.7493 63.2446 -76.404 +v 19.0151 63.2446 -75.0903 +v 25.1511 63.2446 -73.2635 +v 31.1152 63.2446 -70.9363 +v 36.8668 63.2446 -68.1246 +v 42.3666 63.2446 -64.8475 +v 47.577 63.2446 -61.1274 +v 52.4623 63.2446 -56.9897 +v 56.9893 63.2446 -52.4628 +v 61.127 63.2446 -47.5774 +v 64.8471 63.2446 -42.3671 +v 68.1243 63.2446 -36.8674 +v 70.9361 63.2446 -31.1158 +v 73.2633 63.2446 -25.1517 +v 75.0901 63.2446 -19.0157 +v 76.4039 63.2446 -12.7499 +v 77.1959 63.2446 -6.39699 +v 82.2983 56.8065 5.88009e-39 +v 82.0173 56.8065 6.79614 +v 81.1759 56.8065 13.5459 +v 79.78 56.8065 20.203 +v 77.8392 56.8065 26.7222 +v 75.3666 56.8065 33.0588 +v 72.3792 56.8065 39.1697 +v 68.8974 56.8065 45.0129 +v 64.945 56.8065 50.5487 +v 60.5489 56.8065 55.7391 +v 55.7392 56.8065 60.5488 +v 50.5487 56.8065 64.9449 +v 45.013 56.8065 68.8974 +v 39.1697 56.8065 72.3792 +v 33.0589 56.8065 75.3666 +v 26.7223 56.8065 77.8392 +v 20.2031 56.8065 79.78 +v 13.5459 56.8065 81.1759 +v 6.79623 56.8065 82.0173 +v 9.45099e-05 56.8065 82.2983 +v -6.79604 56.8065 82.0173 +v -13.5458 56.8065 81.1759 +v -20.2029 56.8065 79.7801 +v -26.7221 56.8065 77.8392 +v -33.0588 56.8065 75.3667 +v -39.1696 56.8065 72.3793 +v -45.0128 56.8065 68.8975 +v -50.5486 56.8065 64.945 +v -55.7391 56.8065 60.549 +v -60.5488 56.8065 55.7393 +v -64.9449 56.8065 50.5488 +v -68.8973 56.8065 45.0131 +v -72.3792 56.8065 39.1698 +v -75.3666 56.8065 33.059 +v -77.8391 56.8065 26.7224 +v -79.78 56.8065 20.2032 +v -81.1759 56.8065 13.546 +v -82.0172 56.8065 6.79632 +v -82.2983 56.8065 0.00018902 +v -82.0173 56.8065 -6.79594 +v -81.1759 56.8065 -13.5457 +v -79.7801 56.8065 -20.2029 +v -77.8393 56.8065 -26.722 +v -75.3667 56.8065 -33.0587 +v -72.3793 56.8065 -39.1695 +v -68.8975 56.8065 -45.0127 +v -64.9451 56.8065 -50.5485 +v -60.549 56.8065 -55.739 +v -55.7393 56.8065 -60.5487 +v -50.5489 56.8065 -64.9448 +v -45.0131 56.8065 -68.8973 +v -39.1699 56.8065 -72.3791 +v -33.0591 56.8065 -75.3665 +v -26.7225 56.8065 -77.8391 +v -20.2033 56.8065 -79.78 +v -13.5461 56.8065 -81.1759 +v -6.79642 56.8065 -82.0172 +v -0.000273719 56.8065 -82.2983 +v 6.79588 56.8065 -82.0173 +v 13.5456 56.8065 -81.176 +v 20.2028 56.8065 -79.7801 +v 26.722 56.8065 -77.8393 +v 33.0586 56.8065 -75.3668 +v 39.1694 56.8065 -72.3794 +v 45.0127 56.8065 -68.8976 +v 50.5484 56.8065 -64.9452 +v 55.7389 56.8065 -60.5491 +v 60.5486 56.8065 -55.7394 +v 64.9448 56.8065 -50.549 +v 68.8972 56.8065 -45.0132 +v 72.3791 56.8065 -39.17 +v 75.3665 56.8065 -33.0592 +v 77.8391 56.8065 -26.7226 +v 79.78 56.8065 -20.2034 +v 81.1758 56.8065 -13.5462 +v 82.0172 56.8065 -6.79653 +v 86.6025 50.0001 5.88009e-39 +v 86.3067 50.0001 7.15157 +v 85.4214 50.0001 14.2543 +v 83.9525 50.0001 21.2596 +v 81.9101 50.0001 28.1198 +v 79.3083 50.0001 34.7878 +v 76.1646 50.0001 41.2182 +v 72.5007 50.0001 47.367 +v 68.3416 50.0001 53.1923 +v 63.7156 50.0001 58.6542 +v 58.6543 50.0001 63.7155 +v 53.1924 50.0001 68.3415 +v 47.3671 50.0001 72.5007 +v 41.2183 50.0001 76.1646 +v 34.7879 50.0001 79.3082 +v 28.1199 50.0001 81.9101 +v 21.2597 50.0001 83.9525 +v 14.2544 50.0001 85.4213 +v 7.15167 50.0001 86.3067 +v 9.94527e-05 50.0001 86.6025 +v -7.15147 50.0001 86.3067 +v -14.2542 50.0001 85.4214 +v -21.2595 50.0001 83.9525 +v -28.1197 50.0001 81.9102 +v -34.7877 50.0001 79.3083 +v -41.2181 50.0001 76.1647 +v -47.367 50.0001 72.5008 +v -53.1922 50.0001 68.3416 +v -58.6542 50.0001 63.7156 +v -63.7154 50.0001 58.6544 +v -68.3414 50.0001 53.1925 +v -72.5006 50.0001 47.3672 +v -76.1645 50.0001 41.2184 +v -79.3082 50.0001 34.788 +v -81.9101 50.0001 28.12 +v -83.9524 50.0001 21.2598 +v -85.4213 50.0001 14.2545 +v -86.3067 50.0001 7.15176 +v -86.6025 50.0001 0.000198905 +v -86.3067 50.0001 -7.15136 +v -85.4214 50.0001 -14.2541 +v -83.9525 50.0001 -21.2595 +v -81.9102 50.0001 -28.1196 +v -79.3084 50.0001 -34.7876 +v -76.1647 50.0001 -41.218 +v -72.5008 50.0001 -47.3669 +v -68.3417 50.0001 -53.1922 +v -63.7157 50.0001 -58.6541 +v -58.6545 50.0001 -63.7154 +v -53.1926 50.0001 -68.3414 +v -47.3673 50.0001 -72.5006 +v -41.2185 50.0001 -76.1645 +v -34.7881 50.0001 -79.3082 +v -28.12 50.0001 -81.91 +v -21.26 50.0001 -83.9524 +v -14.2546 50.0001 -85.4213 +v -7.15187 50.0001 -86.3067 +v -0.000288034 50.0001 -86.6025 +v 7.1513 50.0001 -86.3067 +v 14.254 50.0001 -85.4214 +v 21.2594 50.0001 -83.9526 +v 28.1195 50.0001 -81.9102 +v 34.7875 50.0001 -79.3084 +v 41.2179 50.0001 -76.1648 +v 47.3668 50.0001 -72.5009 +v 53.1921 50.0001 -68.3417 +v 58.654 50.0001 -63.7158 +v 63.7153 50.0001 -58.6545 +v 68.3413 50.0001 -53.1926 +v 72.5005 50.0001 -47.3674 +v 76.1644 50.0001 -41.2186 +v 79.3081 50.0001 -34.7882 +v 81.91 50.0001 -28.1201 +v 83.9524 50.0001 -21.26 +v 85.4213 50.0001 -14.2547 +v 86.3067 50.0001 -7.15198 +v 90.345 42.8693 5.88009e-39 +v 90.0364 42.8693 7.46063 +v 89.1128 42.8693 14.8703 +v 87.5805 42.8693 22.1784 +v 85.4499 42.8693 29.335 +v 82.7356 42.8693 36.2912 +v 79.4561 42.8693 42.9994 +v 75.6338 42.8693 49.414 +v 71.2949 42.8693 55.491 +v 66.469 42.8693 61.189 +v 61.189 42.8693 66.4689 +v 55.4911 42.8693 71.2949 +v 49.4141 42.8693 75.6338 +v 42.9995 42.8693 79.456 +v 36.2912 42.8693 82.7355 +v 29.3351 42.8693 85.4498 +v 22.1785 42.8693 87.5805 +v 14.8704 42.8693 89.1128 +v 7.46073 42.8693 90.0364 +v 0.000103751 42.8693 90.345 +v -7.46052 42.8693 90.0364 +v -14.8702 42.8693 89.1128 +v -22.1783 42.8693 87.5805 +v -29.3349 42.8693 85.4499 +v -36.2911 42.8693 82.7356 +v -42.9994 42.8693 79.4561 +v -49.4139 42.8693 75.6339 +v -55.4909 42.8693 71.295 +v -61.1889 42.8693 66.4691 +v -66.4689 42.8693 61.1891 +v -71.2948 42.8693 55.4912 +v -75.6337 42.8693 49.4142 +v -79.456 42.8693 42.9996 +v -82.7355 42.8693 36.2913 +v -85.4498 42.8693 29.3352 +v -87.5804 42.8693 22.1786 +v -89.1128 42.8693 14.8705 +v -90.0364 42.8693 7.46082 +v -90.345 42.8693 0.000207501 +v -90.0365 42.8693 -7.46041 +v -89.1129 42.8693 -14.8701 +v -87.5805 42.8693 -22.1782 +v -85.4499 42.8693 -29.3348 +v -82.7356 42.8693 -36.291 +v -79.4562 42.8693 -42.9993 +v -75.6339 42.8693 -49.4138 +v -71.2951 42.8693 -55.4909 +v -66.4692 42.8693 -61.1888 +v -61.1892 42.8693 -66.4688 +v -55.4913 42.8693 -71.2947 +v -49.4142 42.8693 -75.6337 +v -42.9997 42.8693 -79.4559 +v -36.2914 42.8693 -82.7354 +v -29.3352 42.8693 -85.4498 +v -22.1787 42.8693 -87.5804 +v -14.8706 42.8693 -89.1128 +v -7.46094 42.8693 -90.0364 +v -0.000300482 42.8693 -90.345 +v 7.46034 42.8693 -90.0365 +v 14.87 42.8693 -89.1129 +v 22.1781 42.8693 -87.5806 +v 29.3347 42.8693 -85.45 +v 36.2908 42.8693 -82.7357 +v 42.9992 42.8693 -79.4562 +v 49.4137 42.8693 -75.634 +v 55.4908 42.8693 -71.2951 +v 61.1888 42.8693 -66.4692 +v 66.4687 42.8693 -61.1893 +v 71.2947 42.8693 -55.4913 +v 75.6336 42.8693 -49.4143 +v 79.4559 42.8693 -42.9998 +v 82.7354 42.8693 -36.2915 +v 85.4497 42.8693 -29.3353 +v 87.5804 42.8693 -22.1788 +v 89.1128 42.8693 -14.8707 +v 90.0364 42.8693 -7.46105 +v 93.5016 35.4606 5.88009e-39 +v 93.1822 35.4606 7.72129 +v 92.2264 35.4606 15.3898 +v 90.6405 35.4606 22.9533 +v 88.4354 35.4606 30.3599 +v 85.6263 35.4606 37.5591 +v 82.2322 35.4606 44.5018 +v 78.2764 35.4606 51.1405 +v 73.7859 35.4606 57.4298 +v 68.7914 35.4606 63.3269 +v 63.327 35.4606 68.7913 +v 57.4299 35.4606 73.7859 +v 51.1406 35.4606 78.2764 +v 44.5019 35.4606 82.2322 +v 37.5592 35.4606 85.6262 +v 30.36 35.4606 88.4354 +v 22.9534 35.4606 90.6404 +v 15.39 35.4606 92.2263 +v 7.7214 35.4606 93.1822 +v 0.000107376 35.4606 93.5016 +v -7.72119 35.4606 93.1823 +v -15.3897 35.4606 92.2264 +v -22.9532 35.4606 90.6405 +v -30.3598 35.4606 88.4355 +v -37.559 35.4606 85.6263 +v -44.5017 35.4606 82.2323 +v -51.1404 35.4606 78.2765 +v -57.4297 35.4606 73.786 +v -63.3268 35.4606 68.7915 +v -68.7913 35.4606 63.327 +v -73.7858 35.4606 57.43 +v -78.2763 35.4606 51.1407 +v -82.2321 35.4606 44.502 +v -85.6262 35.4606 37.5593 +v -88.4354 35.4606 30.3601 +v -90.6404 35.4606 22.9535 +v -92.2263 35.4606 15.3901 +v -93.1822 35.4606 7.7215 +v -93.5016 35.4606 0.000214751 +v -93.1823 35.4606 -7.72107 +v -92.2264 35.4606 -15.3896 +v -90.6405 35.4606 -22.9531 +v -88.4355 35.4606 -30.3597 +v -85.6264 35.4606 -37.5589 +v -82.2323 35.4606 -44.5016 +v -78.2765 35.4606 -51.1403 +v -73.7861 35.4606 -57.4297 +v -68.7915 35.4606 -63.3267 +v -63.3271 35.4606 -68.7912 +v -57.4301 35.4606 -73.7857 +v -51.1407 35.4606 -78.2763 +v -44.5021 35.4606 -82.2321 +v -37.5594 35.4606 -85.6262 +v -30.3602 35.4606 -88.4353 +v -22.9536 35.4606 -90.6404 +v -15.3902 35.4606 -92.2263 +v -7.72162 35.4606 -93.1822 +v -0.00031098 35.4606 -93.5016 +v 7.721 35.4606 -93.1823 +v 15.3895 35.4606 -92.2264 +v 22.953 35.4606 -90.6406 +v 30.3596 35.4606 -88.4355 +v 37.5588 35.4606 -85.6264 +v 44.5015 35.4606 -82.2324 +v 51.1402 35.4606 -78.2766 +v 57.4296 35.4606 -73.7861 +v 63.3266 35.4606 -68.7916 +v 68.7911 35.4606 -63.3272 +v 73.7857 35.4606 -57.4302 +v 78.2762 35.4606 -51.1408 +v 82.232 35.4606 -44.5022 +v 85.6261 35.4606 -37.5595 +v 88.4353 35.4606 -30.3603 +v 90.6404 35.4606 -22.9537 +v 92.2263 35.4606 -15.3902 +v 93.1822 35.4606 -7.72173 +v 96.0518 27.8218 5.88009e-39 +v 95.7237 27.8218 7.93189 +v 94.7418 27.8218 15.8096 +v 93.1126 27.8218 23.5793 +v 90.8474 27.8218 31.1879 +v 87.9617 27.8218 38.5835 +v 84.475 27.8218 45.7156 +v 80.4114 27.8218 52.5353 +v 75.7984 27.8218 58.9962 +v 70.6676 27.8218 65.0541 +v 65.0541 27.8218 70.6676 +v 58.9963 27.8218 75.7983 +v 52.5354 27.8218 80.4113 +v 45.7157 27.8218 84.475 +v 38.5836 27.8218 87.9616 +v 31.188 27.8218 90.8474 +v 23.5794 27.8218 93.1126 +v 15.8097 27.8218 94.7418 +v 7.932 27.8218 95.7237 +v 0.000110304 27.8218 96.0518 +v -7.93178 27.8218 95.7237 +v -15.8095 27.8218 94.7418 +v -23.5792 27.8218 93.1127 +v -31.1878 27.8218 90.8475 +v -38.5834 27.8218 87.9617 +v -45.7155 27.8218 84.4751 +v -52.5352 27.8218 80.4114 +v -58.9961 27.8218 75.7985 +v -65.054 27.8218 70.6677 +v -70.6675 27.8218 65.0542 +v -75.7982 27.8218 58.9964 +v -80.4112 27.8218 52.5355 +v -84.4749 27.8218 45.7158 +v -87.9616 27.8218 38.5837 +v -90.8474 27.8218 31.1882 +v -93.1126 27.8218 23.5795 +v -94.7417 27.8218 15.8098 +v -95.7237 27.8218 7.9321 +v -96.0518 27.8218 0.000220608 +v -95.7237 27.8218 -7.93166 +v -94.7418 27.8218 -15.8094 +v -93.1127 27.8218 -23.5791 +v -90.8475 27.8218 -31.1877 +v -87.9618 27.8218 -38.5833 +v -84.4752 27.8218 -45.7154 +v -80.4115 27.8218 -52.5351 +v -75.7985 27.8218 -58.996 +v -70.6678 27.8218 -65.0539 +v -65.0543 27.8218 -70.6674 +v -58.9964 27.8218 -75.7982 +v -52.5356 27.8218 -80.4112 +v -45.7159 27.8218 -84.4749 +v -38.5838 27.8218 -87.9615 +v -31.1882 27.8218 -90.8473 +v -23.5796 27.8218 -93.1125 +v -15.8099 27.8218 -94.7417 +v -7.93222 27.8218 -95.7237 +v -0.000319462 27.8218 -96.0518 +v 7.93158 27.8218 -95.7237 +v 15.8093 27.8218 -94.7418 +v 23.579 27.8218 -93.1127 +v 31.1876 27.8218 -90.8475 +v 38.5832 27.8218 -87.9618 +v 45.7153 27.8218 -84.4752 +v 52.535 27.8218 -80.4115 +v 58.9959 27.8218 -75.7986 +v 65.0538 27.8218 -70.6678 +v 70.6673 27.8218 -65.0544 +v 75.7981 27.8218 -58.9965 +v 80.4111 27.8218 -52.5357 +v 84.4748 27.8218 -45.716 +v 87.9615 27.8218 -38.584 +v 90.8473 27.8218 -31.1884 +v 93.1125 27.8218 -23.5797 +v 94.7417 27.8218 -15.81 +v 95.7237 27.8218 -7.93234 +v 97.979 20.0027 5.88009e-39 +v 97.6444 20.0027 8.09104 +v 96.6427 20.0027 16.1268 +v 94.9809 20.0027 24.0524 +v 92.6703 20.0027 31.8137 +v 89.7266 20.0027 39.3577 +v 86.17 20.0027 46.6328 +v 82.0248 20.0027 53.5894 +v 77.3193 20.0027 60.1799 +v 72.0856 20.0027 66.3594 +v 66.3595 20.0027 72.0855 +v 60.18 20.0027 77.3192 +v 53.5895 20.0027 82.0247 +v 46.6329 20.0027 86.17 +v 39.3578 20.0027 89.7266 +v 31.8138 20.0027 92.6702 +v 24.0525 20.0027 94.9809 +v 16.1269 20.0027 96.6427 +v 8.09115 20.0027 97.6444 +v 0.000112517 20.0027 97.979 +v -8.09093 20.0027 97.6444 +v -16.1267 20.0027 96.6428 +v -24.0523 20.0027 94.9809 +v -31.8136 20.0027 92.6703 +v -39.3576 20.0027 89.7267 +v -46.6328 20.0027 86.1701 +v -53.5893 20.0027 82.0249 +v -60.1798 20.0027 77.3193 +v -66.3593 20.0027 72.0856 +v -72.0854 20.0027 66.3595 +v -77.3191 20.0027 60.1801 +v -82.0247 20.0027 53.5896 +v -86.1699 20.0027 46.633 +v -89.7265 20.0027 39.3579 +v -92.6702 20.0027 31.8139 +v -94.9809 20.0027 24.0526 +v -96.6427 20.0027 16.127 +v -97.6444 20.0027 8.09125 +v -97.979 20.0027 0.000225035 +v -97.6444 20.0027 -8.0908 +v -96.6428 20.0027 -16.1266 +v -94.981 20.0027 -24.0522 +v -92.6704 20.0027 -31.8135 +v -89.7267 20.0027 -39.3575 +v -86.1701 20.0027 -46.6326 +v -82.0249 20.0027 -53.5892 +v -77.3194 20.0027 -60.1798 +v -72.0857 20.0027 -66.3592 +v -66.3596 20.0027 -72.0853 +v -60.1802 20.0027 -77.3191 +v -53.5897 20.0027 -82.0246 +v -46.6331 20.0027 -86.1699 +v -39.358 20.0027 -89.7265 +v -31.814 20.0027 -92.6702 +v -24.0528 20.0027 -94.9808 +v -16.1272 20.0027 -96.6427 +v -8.09138 20.0027 -97.6444 +v -0.000325872 20.0027 -97.979 +v 8.09073 20.0027 -97.6444 +v 16.1265 20.0027 -96.6428 +v 24.0521 20.0027 -94.981 +v 31.8134 20.0027 -92.6704 +v 39.3574 20.0027 -89.7268 +v 46.6325 20.0027 -86.1702 +v 53.5891 20.0027 -82.025 +v 60.1797 20.0027 -77.3195 +v 66.3591 20.0027 -72.0858 +v 72.0853 20.0027 -66.3597 +v 77.319 20.0027 -60.1803 +v 82.0246 20.0027 -53.5898 +v 86.1698 20.0027 -46.6333 +v 89.7264 20.0027 -39.3581 +v 92.6701 20.0027 -31.8141 +v 94.9808 20.0027 -24.0528 +v 96.6427 20.0027 -16.1272 +v 97.6444 20.0027 -8.0915 +v 99.2709 12.0538 5.88009e-39 +v 98.9318 12.0538 8.19772 +v 97.917 12.0538 16.3394 +v 96.2332 12.0538 24.3695 +v 93.8921 12.0538 32.2332 +v 90.9096 12.0538 39.8766 +v 87.3061 12.0538 47.2477 +v 83.1063 12.0538 54.296 +v 78.3387 12.0538 60.9734 +v 73.036 12.0538 67.2343 +v 67.2344 12.0538 73.0359 +v 60.9735 12.0538 78.3386 +v 54.2961 12.0538 83.1062 +v 47.2478 12.0538 87.3061 +v 39.8767 12.0538 90.9096 +v 32.2333 12.0538 93.8921 +v 24.3697 12.0538 96.2332 +v 16.3396 12.0538 97.9169 +v 8.19783 12.0538 98.9318 +v 0.000114001 12.0538 99.2709 +v -8.1976 12.0538 98.9318 +v -16.3393 12.0538 97.917 +v -24.3694 12.0538 96.2332 +v -32.2331 12.0538 93.8922 +v -39.8765 12.0538 90.9097 +v -47.2476 12.0538 87.3062 +v -54.2959 12.0538 83.1063 +v -60.9733 12.0538 78.3388 +v -67.2342 12.0538 73.0361 +v -73.0358 12.0538 67.2345 +v -78.3386 12.0538 60.9736 +v -83.1061 12.0538 54.2962 +v -87.306 12.0538 47.2479 +v -90.9095 12.0538 39.8768 +v -93.892 12.0538 32.2334 +v -96.2332 12.0538 24.3698 +v -97.9169 12.0538 16.3397 +v -98.9318 12.0538 8.19793 +v -99.2709 12.0538 0.000228002 +v -98.9318 12.0538 -8.19748 +v -97.917 12.0538 -16.3392 +v -96.2333 12.0538 -24.3693 +v -93.8922 12.0538 -32.233 +v -90.9097 12.0538 -39.8764 +v -87.3063 12.0538 -47.2475 +v -83.1064 12.0538 -54.2958 +v -78.3388 12.0538 -60.9732 +v -73.0362 12.0538 -67.2341 +v -67.2345 12.0538 -73.0358 +v -60.9737 12.0538 -78.3385 +v -54.2963 12.0538 -83.1061 +v -47.248 12.0538 -87.306 +v -39.8769 12.0538 -90.9095 +v -32.2335 12.0538 -93.892 +v -24.3699 12.0538 -96.2331 +v -16.3398 12.0538 -97.9169 +v -8.19806 12.0538 -98.9318 +v -0.000330168 12.0538 -99.2709 +v 8.1974 12.0538 -98.9318 +v 16.3391 12.0538 -97.917 +v 24.3692 12.0538 -96.2333 +v 32.2329 12.0538 -93.8922 +v 39.8763 12.0538 -90.9098 +v 47.2474 12.0538 -87.3063 +v 54.2957 12.0538 -83.1065 +v 60.9731 12.0538 -78.3389 +v 67.2341 12.0538 -73.0362 +v 73.0357 12.0538 -67.2346 +v 78.3384 12.0538 -60.9738 +v 83.106 12.0538 -54.2964 +v 87.3059 12.0538 -47.2481 +v 90.9094 12.0538 -39.8771 +v 93.892 12.0538 -32.2336 +v 96.2331 12.0538 -24.37 +v 97.9169 12.0538 -16.3399 +v 98.9318 12.0538 -8.19818 +v 99.9189 4.0267 5.88009e-39 +v 99.5776 4.0267 8.25123 +v 98.5561 4.0267 16.4461 +v 96.8614 4.0267 24.5286 +v 94.505 4.0267 32.4436 +v 91.5031 4.0267 40.1369 +v 87.8761 4.0267 47.5561 +v 83.6488 4.0267 54.6504 +v 78.8501 4.0267 61.3714 +v 73.5128 4.0267 67.6732 +v 67.6733 4.0267 73.5127 +v 61.3715 4.0267 78.85 +v 54.6505 4.0267 83.6487 +v 47.5562 4.0267 87.876 +v 40.137 4.0267 91.503 +v 32.4437 4.0267 94.505 +v 24.5287 4.0267 96.8614 +v 16.4462 4.0267 98.5561 +v 8.25134 4.0267 99.5776 +v 0.000114745 4.0267 99.9189 +v -8.25112 4.0267 99.5776 +v -16.446 4.0267 98.5562 +v -24.5285 4.0267 96.8614 +v -32.4435 4.0267 94.5051 +v -40.1368 4.0267 91.5031 +v -47.556 4.0267 87.8761 +v -54.6503 4.0267 83.6488 +v -61.3713 4.0267 78.8502 +v -67.6731 4.0267 73.5128 +v -73.5126 4.0267 67.6733 +v -78.8499 4.0267 61.3716 +v -83.6486 4.0267 54.6506 +v -87.876 4.0267 47.5563 +v -91.503 4.0267 40.1371 +v -94.5049 4.0267 32.4438 +v -96.8613 4.0267 24.5289 +v -98.5561 4.0267 16.4463 +v -99.5776 4.0267 8.25145 +v -99.9189 4.0267 0.00022949 +v -99.5776 4.0267 -8.25099 +v -98.5562 4.0267 -16.4459 +v -96.8615 4.0267 -24.5284 +v -94.5051 4.0267 -32.4434 +v -91.5032 4.0267 -40.1367 +v -87.8762 4.0267 -47.5559 +v -83.6489 4.0267 -54.6502 +v -78.8502 4.0267 -61.3712 +v -73.5129 4.0267 -67.673 +v -67.6734 4.0267 -73.5125 +v -61.3717 4.0267 -78.8499 +v -54.6507 4.0267 -83.6486 +v -47.5564 4.0267 -87.8759 +v -40.1372 4.0267 -91.5029 +v -32.4439 4.0267 -94.5049 +v -24.529 4.0267 -96.8613 +v -16.4464 4.0267 -98.5561 +v -8.25157 4.0267 -99.5776 +v -0.000332324 4.0267 -99.9189 +v 8.25091 4.0267 -99.5776 +v 16.4457 4.0267 -98.5562 +v 24.5283 4.0267 -96.8615 +v 32.4433 4.0267 -94.5051 +v 40.1366 4.0267 -91.5032 +v 47.5558 4.0267 -87.8762 +v 54.6501 4.0267 -83.649 +v 61.3712 4.0267 -78.8503 +v 67.673 4.0267 -73.513 +v 73.5124 4.0267 -67.6735 +v 78.8498 4.0267 -61.3718 +v 83.6485 4.0267 -54.6508 +v 87.8758 4.0267 -47.5565 +v 91.5029 4.0267 -40.1374 +v 94.5049 4.0267 -32.444 +v 96.8613 4.0267 -24.5291 +v 98.5561 4.0267 -16.4465 +v 99.5776 4.0267 -8.2517 +v 99.9189 -4.02647 5.88009e-39 +v 99.5776 -4.02647 8.25123 +v 98.5561 -4.02647 16.4461 +v 96.8614 -4.02647 24.5286 +v 94.505 -4.02647 32.4436 +v 91.5031 -4.02647 40.1369 +v 87.8761 -4.02647 47.5561 +v 83.6488 -4.02647 54.6504 +v 78.8501 -4.02647 61.3714 +v 73.5128 -4.02647 67.6732 +v 67.6733 -4.02647 73.5127 +v 61.3715 -4.02647 78.85 +v 54.6505 -4.02647 83.6487 +v 47.5562 -4.02647 87.876 +v 40.137 -4.02647 91.503 +v 32.4437 -4.02647 94.505 +v 24.5287 -4.02647 96.8614 +v 16.4462 -4.02647 98.5561 +v 8.25135 -4.02647 99.5776 +v 0.000114745 -4.02647 99.9189 +v -8.25112 -4.02647 99.5776 +v -16.446 -4.02647 98.5562 +v -24.5285 -4.02647 96.8615 +v -32.4435 -4.02647 94.5051 +v -40.1368 -4.02647 91.5031 +v -47.556 -4.02647 87.8761 +v -54.6503 -4.02647 83.6488 +v -61.3713 -4.02647 78.8502 +v -67.6731 -4.02647 73.5128 +v -73.5126 -4.02647 67.6734 +v -78.8499 -4.02647 61.3716 +v -83.6487 -4.02647 54.6506 +v -87.876 -4.02647 47.5563 +v -91.503 -4.02647 40.1371 +v -94.505 -4.02647 32.4438 +v -96.8614 -4.02647 24.5289 +v -98.5561 -4.02647 16.4463 +v -99.5776 -4.02647 8.25145 +v -99.9189 -4.02647 0.00022949 +v -99.5777 -4.02647 -8.25099 +v -98.5562 -4.02647 -16.4459 +v -96.8615 -4.02647 -24.5284 +v -94.5051 -4.02647 -32.4434 +v -91.5032 -4.02647 -40.1367 +v -87.8762 -4.02647 -47.5559 +v -83.6489 -4.02647 -54.6502 +v -78.8502 -4.02647 -61.3712 +v -73.5129 -4.02647 -67.673 +v -67.6734 -4.02647 -73.5125 +v -61.3717 -4.02647 -78.8499 +v -54.6507 -4.02647 -83.6486 +v -47.5564 -4.02647 -87.8759 +v -40.1373 -4.02647 -91.5029 +v -32.4439 -4.02647 -94.5049 +v -24.529 -4.02647 -96.8613 +v -16.4465 -4.02647 -98.5561 +v -8.25158 -4.02647 -99.5776 +v -0.000332324 -4.02647 -99.9189 +v 8.25091 -4.02647 -99.5777 +v 16.4457 -4.02647 -98.5562 +v 24.5283 -4.02647 -96.8615 +v 32.4433 -4.02647 -94.5051 +v 40.1366 -4.02647 -91.5032 +v 47.5558 -4.02647 -87.8762 +v 54.6501 -4.02647 -83.649 +v 61.3712 -4.02647 -78.8503 +v 67.673 -4.02647 -73.513 +v 73.5124 -4.02647 -67.6735 +v 78.8498 -4.02647 -61.3718 +v 83.6485 -4.02647 -54.6508 +v 87.8758 -4.02647 -47.5565 +v 91.5029 -4.02647 -40.1374 +v 94.5049 -4.02647 -32.444 +v 96.8613 -4.02647 -24.5291 +v 98.5561 -4.02647 -16.4465 +v 99.5776 -4.02647 -8.2517 +v 99.2709 -12.0535 5.88009e-39 +v 98.9318 -12.0535 8.19772 +v 97.917 -12.0535 16.3394 +v 96.2332 -12.0535 24.3695 +v 93.8921 -12.0535 32.2332 +v 90.9097 -12.0535 39.8766 +v 87.3062 -12.0535 47.2477 +v 83.1063 -12.0535 54.296 +v 78.3387 -12.0535 60.9734 +v 73.036 -12.0535 67.2343 +v 67.2344 -12.0535 73.0359 +v 60.9735 -12.0535 78.3387 +v 54.2961 -12.0535 83.1062 +v 47.2478 -12.0535 87.3061 +v 39.8767 -12.0535 90.9096 +v 32.2333 -12.0535 93.8921 +v 24.3697 -12.0535 96.2332 +v 16.3396 -12.0535 97.917 +v 8.19783 -12.0535 98.9318 +v 0.000114001 -12.0535 99.2709 +v -8.19761 -12.0535 98.9319 +v -16.3393 -12.0535 97.917 +v -24.3694 -12.0535 96.2333 +v -32.2331 -12.0535 93.8922 +v -39.8765 -12.0535 90.9097 +v -47.2476 -12.0535 87.3062 +v -54.2959 -12.0535 83.1064 +v -60.9733 -12.0535 78.3388 +v -67.2342 -12.0535 73.0361 +v -73.0359 -12.0535 67.2345 +v -78.3386 -12.0535 60.9736 +v -83.1062 -12.0535 54.2962 +v -87.3061 -12.0535 47.2479 +v -90.9096 -12.0535 39.8768 +v -93.8921 -12.0535 32.2334 +v -96.2332 -12.0535 24.3698 +v -97.9169 -12.0535 16.3397 +v -98.9318 -12.0535 8.19794 +v -99.2709 -12.0535 0.000228002 +v -98.9319 -12.0535 -8.19748 +v -97.917 -12.0535 -16.3392 +v -96.2333 -12.0535 -24.3693 +v -93.8922 -12.0535 -32.233 +v -90.9098 -12.0535 -39.8764 +v -87.3063 -12.0535 -47.2475 +v -83.1064 -12.0535 -54.2958 +v -78.3389 -12.0535 -60.9732 +v -73.0362 -12.0535 -67.2341 +v -67.2346 -12.0535 -73.0358 +v -60.9737 -12.0535 -78.3385 +v -54.2963 -12.0535 -83.1061 +v -47.248 -12.0535 -87.306 +v -39.877 -12.0535 -90.9095 +v -32.2335 -12.0535 -93.892 +v -24.3699 -12.0535 -96.2332 +v -16.3398 -12.0535 -97.9169 +v -8.19806 -12.0535 -98.9318 +v -0.000330169 -12.0535 -99.2709 +v 8.1974 -12.0535 -98.9319 +v 16.3391 -12.0535 -97.917 +v 24.3692 -12.0535 -96.2333 +v 32.2329 -12.0535 -93.8923 +v 39.8763 -12.0535 -90.9098 +v 47.2474 -12.0535 -87.3063 +v 54.2957 -12.0535 -83.1065 +v 60.9732 -12.0535 -78.3389 +v 67.2341 -12.0535 -73.0362 +v 73.0357 -12.0535 -67.2347 +v 78.3384 -12.0535 -60.9738 +v 83.1061 -12.0535 -54.2964 +v 87.3059 -12.0535 -47.2481 +v 90.9095 -12.0535 -39.8771 +v 93.892 -12.0535 -32.2336 +v 96.2331 -12.0535 -24.37 +v 97.9169 -12.0535 -16.3399 +v 98.9318 -12.0535 -8.19819 +v 97.9791 -20.0024 5.88009e-39 +v 97.6444 -20.0024 8.09104 +v 96.6428 -20.0024 16.1268 +v 94.981 -20.0024 24.0524 +v 92.6703 -20.0024 31.8137 +v 89.7267 -20.0024 39.3577 +v 86.1701 -20.0024 46.6329 +v 82.0248 -20.0024 53.5895 +v 77.3193 -20.0024 60.18 +v 72.0856 -20.0024 66.3594 +v 66.3595 -20.0024 72.0855 +v 60.1801 -20.0024 77.3192 +v 53.5895 -20.0024 82.0248 +v 46.633 -20.0024 86.17 +v 39.3578 -20.0024 89.7266 +v 31.8138 -20.0024 92.6703 +v 24.0525 -20.0024 94.9809 +v 16.1269 -20.0024 96.6428 +v 8.09116 -20.0024 97.6444 +v 0.000112517 -20.0024 97.9791 +v -8.09093 -20.0024 97.6445 +v -16.1267 -20.0024 96.6428 +v -24.0523 -20.0024 94.981 +v -31.8136 -20.0024 92.6704 +v -39.3576 -20.0024 89.7267 +v -46.6328 -20.0024 86.1701 +v -53.5894 -20.0024 82.0249 +v -60.1799 -20.0024 77.3194 +v -66.3593 -20.0024 72.0857 +v -72.0855 -20.0024 66.3596 +v -77.3192 -20.0024 60.1801 +v -82.0247 -20.0024 53.5896 +v -86.17 -20.0024 46.6331 +v -89.7266 -20.0024 39.3579 +v -92.6702 -20.0024 31.814 +v -94.9809 -20.0024 24.0527 +v -96.6428 -20.0024 16.127 +v -97.6444 -20.0024 8.09126 +v -97.9791 -20.0024 0.000225035 +v -97.6445 -20.0024 -8.09081 +v -96.6428 -20.0024 -16.1266 +v -94.981 -20.0024 -24.0522 +v -92.6704 -20.0024 -31.8135 +v -89.7267 -20.0024 -39.3575 +v -86.1702 -20.0024 -46.6327 +v -82.025 -20.0024 -53.5893 +v -77.3194 -20.0024 -60.1798 +v -72.0858 -20.0024 -66.3592 +v -66.3596 -20.0024 -72.0854 +v -60.1802 -20.0024 -77.3191 +v -53.5897 -20.0024 -82.0247 +v -46.6332 -20.0024 -86.1699 +v -39.358 -20.0024 -89.7265 +v -31.814 -20.0024 -92.6702 +v -24.0528 -20.0024 -94.9809 +v -16.1272 -20.0024 -96.6427 +v -8.09138 -20.0024 -97.6444 +v -0.000325872 -20.0024 -97.9791 +v 8.09073 -20.0024 -97.6445 +v 16.1265 -20.0024 -96.6428 +v 24.0521 -20.0024 -94.981 +v 31.8134 -20.0024 -92.6704 +v 39.3574 -20.0024 -89.7268 +v 46.6326 -20.0024 -86.1702 +v 53.5892 -20.0024 -82.025 +v 60.1797 -20.0024 -77.3195 +v 66.3592 -20.0024 -72.0858 +v 72.0853 -20.0024 -66.3597 +v 77.319 -20.0024 -60.1803 +v 82.0246 -20.0024 -53.5898 +v 86.1698 -20.0024 -46.6333 +v 89.7265 -20.0024 -39.3582 +v 92.6702 -20.0024 -31.8142 +v 94.9809 -20.0024 -24.0529 +v 96.6427 -20.0024 -16.1272 +v 97.6444 -20.0024 -8.0915 +v 96.0518 -27.8216 5.88009e-39 +v 95.7238 -27.8216 7.93189 +v 94.7418 -27.8216 15.8096 +v 93.1127 -27.8216 23.5793 +v 90.8475 -27.8216 31.188 +v 87.9617 -27.8216 38.5836 +v 84.4751 -27.8216 45.7156 +v 80.4114 -27.8216 52.5353 +v 75.7984 -27.8216 58.9962 +v 70.6677 -27.8216 65.0541 +v 65.0542 -27.8216 70.6676 +v 58.9963 -27.8216 75.7984 +v 52.5354 -27.8216 80.4114 +v 45.7157 -27.8216 84.475 +v 38.5837 -27.8216 87.9617 +v 31.1881 -27.8216 90.8475 +v 23.5794 -27.8216 93.1127 +v 15.8097 -27.8216 94.7418 +v 7.932 -27.8216 95.7238 +v 0.000110304 -27.8216 96.0518 +v -7.93178 -27.8216 95.7238 +v -15.8095 -27.8216 94.7418 +v -23.5792 -27.8216 93.1127 +v -31.1879 -27.8216 90.8475 +v -38.5835 -27.8216 87.9618 +v -45.7155 -27.8216 84.4751 +v -52.5353 -27.8216 80.4115 +v -58.9961 -27.8216 75.7985 +v -65.054 -27.8216 70.6678 +v -70.6675 -27.8216 65.0543 +v -75.7983 -27.8216 58.9964 +v -80.4113 -27.8216 52.5355 +v -84.475 -27.8216 45.7158 +v -87.9616 -27.8216 38.5838 +v -90.8474 -27.8216 31.1882 +v -93.1126 -27.8216 23.5795 +v -94.7418 -27.8216 15.8098 +v -95.7238 -27.8216 7.9321 +v -96.0518 -27.8216 0.000220608 +v -95.7238 -27.8216 -7.93166 +v -94.7419 -27.8216 -15.8094 +v -93.1127 -27.8216 -23.5791 +v -90.8476 -27.8216 -31.1878 +v -87.9618 -27.8216 -38.5834 +v -84.4752 -27.8216 -45.7154 +v -80.4115 -27.8216 -52.5352 +v -75.7986 -27.8216 -58.9961 +v -70.6678 -27.8216 -65.0539 +v -65.0544 -27.8216 -70.6674 +v -58.9965 -27.8216 -75.7982 +v -52.5356 -27.8216 -80.4112 +v -45.7159 -27.8216 -84.4749 +v -38.5839 -27.8216 -87.9616 +v -31.1883 -27.8216 -90.8474 +v -23.5797 -27.8216 -93.1126 +v -15.8099 -27.8216 -94.7418 +v -7.93222 -27.8216 -95.7238 +v -0.000319462 -27.8216 -96.0518 +v 7.93159 -27.8216 -95.7238 +v 15.8093 -27.8216 -94.7419 +v 23.579 -27.8216 -93.1128 +v 31.1877 -27.8216 -90.8476 +v 38.5832 -27.8216 -87.9619 +v 45.7153 -27.8216 -84.4753 +v 52.5351 -27.8216 -80.4116 +v 58.996 -27.8216 -75.7986 +v 65.0539 -27.8216 -70.6679 +v 70.6674 -27.8216 -65.0544 +v 75.7982 -27.8216 -58.9966 +v 80.4112 -27.8216 -52.5357 +v 84.4749 -27.8216 -45.716 +v 87.9615 -27.8216 -38.584 +v 90.8474 -27.8216 -31.1884 +v 93.1126 -27.8216 -23.5797 +v 94.7418 -27.8216 -15.81 +v 95.7237 -27.8216 -7.93234 +v 93.5017 -35.4604 5.88009e-39 +v 93.1823 -35.4604 7.7213 +v 92.2264 -35.4604 15.3899 +v 90.6405 -35.4604 22.9533 +v 88.4355 -35.4604 30.3599 +v 85.6264 -35.4604 37.5592 +v 82.2323 -35.4604 44.5018 +v 78.2765 -35.4604 51.1405 +v 73.786 -35.4604 57.4299 +v 68.7915 -35.4604 63.3269 +v 63.327 -35.4604 68.7914 +v 57.43 -35.4604 73.7859 +v 51.1406 -35.4604 78.2764 +v 44.5019 -35.4604 82.2322 +v 37.5593 -35.4604 85.6263 +v 30.36 -35.4604 88.4355 +v 22.9534 -35.4604 90.6405 +v 15.39 -35.4604 92.2264 +v 7.72141 -35.4604 93.1823 +v 0.000107376 -35.4604 93.5017 +v -7.72119 -35.4604 93.1823 +v -15.3898 -35.4604 92.2264 +v -22.9532 -35.4604 90.6406 +v -30.3598 -35.4604 88.4355 +v -37.5591 -35.4604 85.6264 +v -44.5018 -35.4604 82.2323 +v -51.1404 -35.4604 78.2765 +v -57.4298 -35.4604 73.7861 +v -63.3268 -35.4604 68.7915 +v -68.7913 -35.4604 63.3271 +v -73.7859 -35.4604 57.43 +v -78.2764 -35.4604 51.1407 +v -82.2322 -35.4604 44.502 +v -85.6263 -35.4604 37.5594 +v -88.4354 -35.4604 30.3601 +v -90.6405 -35.4604 22.9535 +v -92.2264 -35.4604 15.3901 +v -93.1823 -35.4604 7.7215 +v -93.5017 -35.4604 0.000214751 +v -93.1823 -35.4604 -7.72108 +v -92.2265 -35.4604 -15.3896 +v -90.6406 -35.4604 -22.9531 +v -88.4356 -35.4604 -30.3597 +v -85.6264 -35.4604 -37.559 +v -82.2324 -35.4604 -44.5017 +v -78.2766 -35.4604 -51.1404 +v -73.7861 -35.4604 -57.4297 +v -68.7916 -35.4604 -63.3268 +v -63.3272 -35.4604 -68.7912 +v -57.4301 -35.4604 -73.7858 +v -51.1408 -35.4604 -78.2763 +v -44.5021 -35.4604 -82.2321 +v -37.5595 -35.4604 -85.6262 +v -30.3602 -35.4604 -88.4354 +v -22.9536 -35.4604 -90.6405 +v -15.3902 -35.4604 -92.2264 +v -7.72162 -35.4604 -93.1823 +v -0.000310981 -35.4604 -93.5017 +v 7.721 -35.4604 -93.1823 +v 15.3895 -35.4604 -92.2265 +v 22.953 -35.4604 -90.6406 +v 30.3596 -35.4604 -88.4356 +v 37.5589 -35.4604 -85.6265 +v 44.5016 -35.4604 -82.2324 +v 51.1403 -35.4604 -78.2767 +v 57.4296 -35.4604 -73.7862 +v 63.3267 -35.4604 -68.7916 +v 68.7912 -35.4604 -63.3272 +v 73.7857 -35.4604 -57.4302 +v 78.2763 -35.4604 -51.1409 +v 82.2321 -35.4604 -44.5022 +v 85.6262 -35.4604 -37.5596 +v 88.4354 -35.4604 -30.3603 +v 90.6404 -35.4604 -22.9537 +v 92.2264 -35.4604 -15.3903 +v 93.1823 -35.4604 -7.72174 +v 90.3451 -42.8691 5.88009e-39 +v 90.0365 -42.8691 7.46063 +v 89.1129 -42.8691 14.8703 +v 87.5806 -42.8691 22.1784 +v 85.45 -42.8691 29.335 +v 82.7356 -42.8691 36.2912 +v 79.4562 -42.8691 42.9995 +v 75.6339 -42.8691 49.4141 +v 71.295 -42.8691 55.4911 +v 66.4691 -42.8691 61.189 +v 61.1891 -42.8691 66.469 +v 55.4912 -42.8691 71.2949 +v 49.4141 -42.8691 75.6339 +v 42.9996 -42.8691 79.4561 +v 36.2913 -42.8691 82.7356 +v 29.3351 -42.8691 85.4499 +v 22.1785 -42.8691 87.5806 +v 14.8704 -42.8691 89.1129 +v 7.46074 -42.8691 90.0365 +v 0.000103751 -42.8691 90.3451 +v -7.46053 -42.8691 90.0365 +v -14.8702 -42.8691 89.1129 +v -22.1783 -42.8691 87.5806 +v -29.3349 -42.8691 85.45 +v -36.2911 -42.8691 82.7357 +v -42.9994 -42.8691 79.4562 +v -49.414 -42.8691 75.634 +v -55.491 -42.8691 71.2951 +v -61.189 -42.8691 66.4692 +v -66.469 -42.8691 61.1892 +v -71.2949 -42.8691 55.4912 +v -75.6338 -42.8691 49.4142 +v -79.4561 -42.8691 42.9997 +v -82.7356 -42.8691 36.2914 +v -85.4499 -42.8691 29.3352 +v -87.5805 -42.8691 22.1786 +v -89.1129 -42.8691 14.8705 +v -90.0365 -42.8691 7.46083 +v -90.3451 -42.8691 0.000207501 +v -90.0366 -42.8691 -7.46042 +v -89.113 -42.8691 -14.8701 +v -87.5806 -42.8691 -22.1782 +v -85.45 -42.8691 -29.3348 +v -82.7357 -42.8691 -36.291 +v -79.4563 -42.8691 -42.9993 +v -75.634 -42.8691 -49.4139 +v -71.2951 -42.8691 -55.4909 +v -66.4692 -42.8691 -61.1889 +v -61.1893 -42.8691 -66.4689 +v -55.4913 -42.8691 -71.2948 +v -49.4143 -42.8691 -75.6338 +v -42.9998 -42.8691 -79.456 +v -36.2915 -42.8691 -82.7355 +v -29.3353 -42.8691 -85.4499 +v -22.1787 -42.8691 -87.5805 +v -14.8706 -42.8691 -89.1129 +v -7.46094 -42.8691 -90.0365 +v -0.000300482 -42.8691 -90.3451 +v 7.46035 -42.8691 -90.0366 +v 14.87 -42.8691 -89.113 +v 22.1781 -42.8691 -87.5807 +v 29.3347 -42.8691 -85.4501 +v 36.2909 -42.8691 -82.7358 +v 42.9992 -42.8691 -79.4563 +v 49.4138 -42.8691 -75.6341 +v 55.4908 -42.8691 -71.2952 +v 61.1888 -42.8691 -66.4693 +v 66.4688 -42.8691 -61.1894 +v 71.2948 -42.8691 -55.4914 +v 75.6337 -42.8691 -49.4144 +v 79.456 -42.8691 -42.9999 +v 82.7355 -42.8691 -36.2916 +v 85.4498 -42.8691 -29.3354 +v 87.5805 -42.8691 -22.1788 +v 89.1129 -42.8691 -14.8707 +v 90.0365 -42.8691 -7.46106 +v 86.6026 -49.9999 5.88009e-39 +v 86.3068 -49.9999 7.15158 +v 85.4215 -49.9999 14.2543 +v 83.9526 -49.9999 21.2597 +v 81.9103 -49.9999 28.1198 +v 79.3084 -49.9999 34.7879 +v 76.1647 -49.9999 41.2183 +v 72.5008 -49.9999 47.3671 +v 68.3417 -49.9999 53.1924 +v 63.7157 -49.9999 58.6543 +v 58.6544 -49.9999 63.7156 +v 53.1925 -49.9999 68.3416 +v 47.3672 -49.9999 72.5008 +v 41.2184 -49.9999 76.1647 +v 34.7879 -49.9999 79.3083 +v 28.1199 -49.9999 81.9102 +v 21.2598 -49.9999 83.9526 +v 14.2544 -49.9999 85.4215 +v 7.15168 -49.9999 86.3068 +v 9.94529e-05 -49.9999 86.6026 +v -7.15148 -49.9999 86.3068 +v -14.2542 -49.9999 85.4215 +v -21.2596 -49.9999 83.9526 +v -28.1197 -49.9999 81.9103 +v -34.7878 -49.9999 79.3084 +v -41.2182 -49.9999 76.1648 +v -47.367 -49.9999 72.5009 +v -53.1923 -49.9999 68.3417 +v -58.6543 -49.9999 63.7157 +v -63.7155 -49.9999 58.6545 +v -68.3415 -49.9999 53.1926 +v -72.5007 -49.9999 47.3673 +v -76.1647 -49.9999 41.2184 +v -79.3083 -49.9999 34.788 +v -81.9102 -49.9999 28.12 +v -83.9526 -49.9999 21.2599 +v -85.4214 -49.9999 14.2545 +v -86.3068 -49.9999 7.15177 +v -86.6026 -49.9999 0.000198906 +v -86.3068 -49.9999 -7.15137 +v -85.4215 -49.9999 -14.2541 +v -83.9527 -49.9999 -21.2595 +v -81.9103 -49.9999 -28.1196 +v -79.3085 -49.9999 -34.7877 +v -76.1648 -49.9999 -41.2181 +v -72.5009 -49.9999 -47.367 +v -68.3418 -49.9999 -53.1922 +v -63.7158 -49.9999 -58.6542 +v -58.6545 -49.9999 -63.7155 +v -53.1926 -49.9999 -68.3415 +v -47.3673 -49.9999 -72.5007 +v -41.2185 -49.9999 -76.1646 +v -34.7881 -49.9999 -79.3083 +v -28.1201 -49.9999 -81.9102 +v -21.26 -49.9999 -83.9525 +v -14.2546 -49.9999 -85.4214 +v -7.15188 -49.9999 -86.3068 +v -0.000288035 -49.9999 -86.6026 +v 7.15131 -49.9999 -86.3069 +v 14.254 -49.9999 -85.4215 +v 21.2594 -49.9999 -83.9527 +v 28.1195 -49.9999 -81.9104 +v 34.7876 -49.9999 -79.3085 +v 41.218 -49.9999 -76.1649 +v 47.3669 -49.9999 -72.501 +v 53.1922 -49.9999 -68.3418 +v 58.6541 -49.9999 -63.7158 +v 63.7154 -49.9999 -58.6546 +v 68.3414 -49.9999 -53.1927 +v 72.5006 -49.9999 -47.3674 +v 76.1646 -49.9999 -41.2186 +v 79.3082 -49.9999 -34.7882 +v 81.9101 -49.9999 -28.1202 +v 83.9525 -49.9999 -21.26 +v 85.4214 -49.9999 -14.2547 +v 86.3068 -49.9999 -7.15199 +v 82.2985 -56.8064 5.88009e-39 +v 82.0174 -56.8064 6.79615 +v 81.176 -56.8064 13.5459 +v 79.7802 -56.8064 20.2031 +v 77.8393 -56.8064 26.7222 +v 75.3668 -56.8064 33.0589 +v 72.3794 -56.8064 39.1697 +v 68.8975 -56.8064 45.013 +v 64.9451 -56.8064 50.5487 +v 60.549 -56.8064 55.7392 +v 55.7393 -56.8064 60.5489 +v 50.5488 -56.8064 64.945 +v 45.013 -56.8064 68.8975 +v 39.1698 -56.8064 72.3793 +v 33.059 -56.8064 75.3667 +v 26.7223 -56.8064 77.8393 +v 20.2032 -56.8064 79.7801 +v 13.546 -56.8064 81.176 +v 6.79624 -56.8064 82.0174 +v 9.451e-05 -56.8064 82.2985 +v -6.79605 -56.8064 82.0174 +v -13.5458 -56.8064 81.176 +v -20.203 -56.8064 79.7802 +v -26.7222 -56.8064 77.8393 +v -33.0588 -56.8064 75.3668 +v -39.1696 -56.8064 72.3794 +v -45.0129 -56.8064 68.8976 +v -50.5487 -56.8064 64.9451 +v -55.7391 -56.8064 60.549 +v -60.5489 -56.8064 55.7393 +v -64.945 -56.8064 50.5489 +v -68.8974 -56.8064 45.0131 +v -72.3793 -56.8064 39.1699 +v -75.3667 -56.8064 33.0591 +v -77.8393 -56.8064 26.7224 +v -79.7801 -56.8064 20.2033 +v -81.176 -56.8064 13.5461 +v -82.0174 -56.8064 6.79633 +v -82.2985 -56.8064 0.00018902 +v -82.0174 -56.8064 -6.79595 +v -81.1761 -56.8064 -13.5457 +v -79.7802 -56.8064 -20.2029 +v -77.8394 -56.8064 -26.7221 +v -75.3668 -56.8064 -33.0587 +v -72.3794 -56.8064 -39.1695 +v -68.8976 -56.8064 -45.0128 +v -64.9452 -56.8064 -50.5486 +v -60.5491 -56.8064 -55.7391 +v -55.7394 -56.8064 -60.5488 +v -50.549 -56.8064 -64.9449 +v -45.0132 -56.8064 -68.8974 +v -39.17 -56.8064 -72.3792 +v -33.0592 -56.8064 -75.3666 +v -26.7225 -56.8064 -77.8392 +v -20.2034 -56.8064 -79.7801 +v -13.5462 -56.8064 -81.176 +v -6.79643 -56.8064 -82.0174 +v -0.000273719 -56.8064 -82.2985 +v 6.79589 -56.8064 -82.0174 +v 13.5456 -56.8064 -81.1761 +v 20.2028 -56.8064 -79.7802 +v 26.722 -56.8064 -77.8394 +v 33.0586 -56.8064 -75.3669 +v 39.1695 -56.8064 -72.3795 +v 45.0127 -56.8064 -68.8977 +v 50.5485 -56.8064 -64.9453 +v 55.739 -56.8064 -60.5492 +v 60.5487 -56.8064 -55.7395 +v 64.9448 -56.8064 -50.549 +v 68.8973 -56.8064 -45.0133 +v 72.3792 -56.8064 -39.1701 +v 75.3666 -56.8064 -33.0592 +v 77.8392 -56.8064 -26.7226 +v 79.7801 -56.8064 -20.2034 +v 81.176 -56.8064 -13.5462 +v 82.0173 -56.8064 -6.79654 +v 77.4606 -63.2444 5.88009e-39 +v 77.196 -63.2444 6.39664 +v 76.4041 -63.2444 12.7496 +v 75.0903 -63.2444 19.0154 +v 73.2636 -63.2444 25.1514 +v 70.9364 -63.2444 31.1155 +v 68.1246 -63.2444 36.8671 +v 64.8474 -63.2444 42.3669 +v 61.1273 -63.2444 47.5773 +v 56.9896 -63.2444 52.4626 +v 52.4627 -63.2444 56.9896 +v 47.5773 -63.2444 61.1273 +v 42.367 -63.2444 64.8474 +v 36.8672 -63.2444 68.1245 +v 31.1156 -63.2444 70.9363 +v 25.1515 -63.2444 73.2635 +v 19.0155 -63.2444 75.0903 +v 12.7497 -63.2444 76.4041 +v 6.39673 -63.2444 77.196 +v 8.89543e-05 -63.2444 77.4606 +v -6.39655 -63.2444 77.196 +v -12.7495 -63.2444 76.4042 +v -19.0154 -63.2444 75.0904 +v -25.1513 -63.2444 73.2636 +v -31.1155 -63.2444 70.9364 +v -36.8671 -63.2444 68.1246 +v -42.3668 -63.2444 64.8475 +v -47.5772 -63.2444 61.1274 +v -52.4625 -63.2444 56.9897 +v -56.9895 -63.2444 52.4627 +v -61.1272 -63.2444 47.5774 +v -64.8473 -63.2444 42.3671 +v -68.1245 -63.2444 36.8673 +v -70.9363 -63.2444 31.1157 +v -73.2635 -63.2444 25.1516 +v -75.0903 -63.2444 19.0156 +v -76.4041 -63.2444 12.7498 +v -77.196 -63.2444 6.39681 +v -77.4606 -63.2444 0.000177909 +v -77.1961 -63.2444 -6.39645 +v -76.4042 -63.2444 -12.7494 +v -75.0904 -63.2444 -19.0153 +v -73.2636 -63.2444 -25.1512 +v -70.9364 -63.2444 -31.1154 +v -68.1247 -63.2444 -36.867 +v -64.8475 -63.2444 -42.3668 +v -61.1274 -63.2444 -47.5771 +v -56.9898 -63.2444 -52.4625 +v -52.4628 -63.2444 -56.9895 +v -47.5775 -63.2444 -61.1272 +v -42.3671 -63.2444 -64.8473 +v -36.8674 -63.2444 -68.1245 +v -31.1158 -63.2444 -70.9363 +v -25.1516 -63.2444 -73.2635 +v -19.0157 -63.2444 -75.0903 +v -12.7499 -63.2444 -76.4041 +v -6.39691 -63.2444 -77.196 +v -0.000257629 -63.2444 -77.4606 +v 6.39639 -63.2444 -77.1961 +v 12.7493 -63.2444 -76.4042 +v 19.0152 -63.2444 -75.0904 +v 25.1512 -63.2444 -73.2637 +v 31.1153 -63.2444 -70.9365 +v 36.8669 -63.2444 -68.1247 +v 42.3667 -63.2444 -64.8476 +v 47.5771 -63.2444 -61.1275 +v 52.4624 -63.2444 -56.9898 +v 56.9894 -63.2444 -52.4629 +v 61.1271 -63.2444 -47.5775 +v 64.8472 -63.2444 -42.3672 +v 68.1244 -63.2444 -36.8675 +v 70.9362 -63.2444 -31.1159 +v 73.2635 -63.2444 -25.1517 +v 75.0902 -63.2444 -19.0158 +v 76.4041 -63.2444 -12.7499 +v 77.196 -63.2444 -6.39701 +v 72.1204 -69.2723 5.88009e-39 +v 71.874 -69.2723 5.95565 +v 71.1367 -69.2723 11.8706 +v 69.9135 -69.2723 17.7045 +v 68.2127 -69.2723 23.4174 +v 66.0459 -69.2723 28.9704 +v 63.428 -69.2723 34.3255 +v 60.3768 -69.2723 39.4461 +v 56.9131 -69.2723 44.2972 +v 53.0607 -69.2723 48.8458 +v 48.8458 -69.2723 53.0606 +v 44.2973 -69.2723 56.9131 +v 39.4461 -69.2723 60.3767 +v 34.3256 -69.2723 63.4279 +v 28.9705 -69.2723 66.0459 +v 23.4175 -69.2723 68.2127 +v 17.7046 -69.2723 69.9135 +v 11.8707 -69.2723 71.1367 +v 5.95573 -69.2723 71.874 +v 8.28217e-05 -69.2723 72.1204 +v -5.95557 -69.2723 71.874 +v -11.8705 -69.2723 71.1368 +v -17.7044 -69.2723 69.9135 +v -23.4174 -69.2723 68.2127 +v -28.9703 -69.2723 66.046 +v -34.3254 -69.2723 63.428 +v -39.446 -69.2723 60.3768 +v -44.2971 -69.2723 56.9132 +v -48.8457 -69.2723 53.0608 +v -53.0606 -69.2723 48.8459 +v -56.913 -69.2723 44.2974 +v -60.3767 -69.2723 39.4462 +v -63.4279 -69.2723 34.3256 +v -66.0459 -69.2723 28.9705 +v -68.2126 -69.2723 23.4176 +v -69.9135 -69.2723 17.7047 +v -71.1367 -69.2723 11.8708 +v -71.874 -69.2723 5.9558 +v -72.1204 -69.2723 0.000165643 +v -71.8741 -69.2723 -5.95547 +v -71.1368 -69.2723 -11.8705 +v -69.9135 -69.2723 -17.7043 +v -68.2127 -69.2723 -23.4173 +v -66.046 -69.2723 -28.9702 +v -63.4281 -69.2723 -34.3253 +v -60.3769 -69.2723 -39.4459 +v -56.9132 -69.2723 -44.2971 +v -53.0608 -69.2723 -48.8456 +v -48.846 -69.2723 -53.0605 +v -44.2974 -69.2723 -56.913 +v -39.4463 -69.2723 -60.3766 +v -34.3257 -69.2723 -63.4279 +v -28.9706 -69.2723 -66.0458 +v -23.4177 -69.2723 -68.2126 +v -17.7047 -69.2723 -69.9134 +v -11.8709 -69.2723 -71.1367 +v -5.9559 -69.2723 -71.874 +v -0.000239868 -69.2723 -72.1204 +v 5.95542 -69.2723 -71.8741 +v 11.8704 -69.2723 -71.1368 +v 17.7043 -69.2723 -69.9136 +v 23.4172 -69.2723 -68.2128 +v 28.9702 -69.2723 -66.046 +v 34.3253 -69.2723 -63.4281 +v 39.4459 -69.2723 -60.3769 +v 44.297 -69.2723 -56.9133 +v 48.8456 -69.2723 -53.0609 +v 53.0605 -69.2723 -48.846 +v 56.9129 -69.2723 -44.2975 +v 60.3766 -69.2723 -39.4463 +v 63.4278 -69.2723 -34.3258 +v 66.0458 -69.2723 -28.9707 +v 68.2126 -69.2723 -23.4177 +v 69.9134 -69.2723 -17.7048 +v 71.1367 -69.2723 -11.8709 +v 71.874 -69.2723 -5.95599 +v 66.3124 -74.851 5.88009e-39 +v 66.0859 -74.851 5.47603 +v 65.408 -74.851 10.9147 +v 64.2833 -74.851 16.2787 +v 62.7194 -74.851 21.5316 +v 60.7271 -74.851 26.6374 +v 58.32 -74.851 31.5612 +v 55.5145 -74.851 36.2694 +v 52.3298 -74.851 40.7299 +v 48.7876 -74.851 44.9121 +v 44.9122 -74.851 48.7876 +v 40.73 -74.851 52.3298 +v 36.2695 -74.851 55.5145 +v 31.5613 -74.851 58.32 +v 26.6374 -74.851 60.7271 +v 21.5317 -74.851 62.7194 +v 16.2788 -74.851 64.2832 +v 10.9147 -74.851 65.408 +v 5.47611 -74.851 66.0859 +v 7.61519e-05 -74.851 66.3124 +v -5.47596 -74.851 66.0859 +v -10.9146 -74.851 65.408 +v -16.2786 -74.851 64.2833 +v -21.5315 -74.851 62.7194 +v -26.6373 -74.851 60.7272 +v -31.5611 -74.851 58.3201 +v -36.2694 -74.851 55.5146 +v -40.7298 -74.851 52.3299 +v -44.9121 -74.851 48.7877 +v -48.7876 -74.851 44.9123 +v -52.3297 -74.851 40.73 +v -55.5145 -74.851 36.2696 +v -58.32 -74.851 31.5613 +v -60.7271 -74.851 26.6375 +v -62.7194 -74.851 21.5317 +v -64.2832 -74.851 16.2789 +v -65.408 -74.851 10.9148 +v -66.0859 -74.851 5.47618 +v -66.3124 -74.851 0.000152304 +v -66.0859 -74.851 -5.47587 +v -65.408 -74.851 -10.9145 +v -64.2833 -74.851 -16.2786 +v -62.7195 -74.851 -21.5314 +v -60.7272 -74.851 -26.6372 +v -58.3201 -74.851 -31.5611 +v -55.5146 -74.851 -36.2693 +v -52.3299 -74.851 -40.7298 +v -48.7878 -74.851 -44.912 +v -44.9123 -74.851 -48.7875 +v -40.7301 -74.851 -52.3297 +v -36.2696 -74.851 -55.5144 +v -31.5614 -74.851 -58.3199 +v -26.6376 -74.851 -60.7271 +v -21.5318 -74.851 -62.7194 +v -16.279 -74.851 -64.2832 +v -10.9149 -74.851 -65.408 +v -5.47626 -74.851 -66.0859 +v -0.000220551 -74.851 -66.3124 +v 5.47582 -74.851 -66.0859 +v 10.9144 -74.851 -65.408 +v 16.2785 -74.851 -64.2833 +v 21.5314 -74.851 -62.7195 +v 26.6371 -74.851 -60.7272 +v 31.561 -74.851 -58.3201 +v 36.2692 -74.851 -55.5147 +v 40.7297 -74.851 -52.33 +v 44.912 -74.851 -48.7878 +v 48.7874 -74.851 -44.9124 +v 52.3296 -74.851 -40.7301 +v 55.5144 -74.851 -36.2697 +v 58.3199 -74.851 -31.5615 +v 60.727 -74.851 -26.6377 +v 62.7193 -74.851 -21.5319 +v 64.2832 -74.851 -16.279 +v 65.4079 -74.851 -10.9149 +v 66.0859 -74.851 -5.47634 +v 60.0744 -79.9442 5.88009e-39 +v 59.8692 -79.9442 4.9609 +v 59.255 -79.9442 9.88791 +v 58.2361 -79.9442 14.7474 +v 56.8194 -79.9442 19.5061 +v 55.0145 -79.9442 24.1316 +v 52.8338 -79.9442 28.5922 +v 50.2923 -79.9442 32.8575 +v 47.4071 -79.9442 36.8984 +v 44.1982 -79.9442 40.6872 +v 40.6873 -79.9442 44.1981 +v 36.8985 -79.9442 47.4071 +v 32.8576 -79.9442 50.2922 +v 28.5923 -79.9442 52.8338 +v 24.1316 -79.9442 55.0145 +v 19.5062 -79.9442 56.8194 +v 14.7474 -79.9442 58.2361 +v 9.88798 -79.9442 59.255 +v 4.96097 -79.9442 59.8692 +v 6.89883e-05 -79.9442 60.0744 +v -4.96083 -79.9442 59.8692 +v -9.88784 -79.9442 59.255 +v -14.7473 -79.9442 58.2361 +v -19.506 -79.9442 56.8194 +v -24.1315 -79.9442 55.0145 +v -28.5922 -79.9442 52.8339 +v -32.8575 -79.9442 50.2923 +v -36.8984 -79.9442 47.4072 +v -40.6872 -79.9442 44.1982 +v -44.1981 -79.9442 40.6873 +v -47.4071 -79.9442 36.8985 +v -50.2922 -79.9442 32.8577 +v -52.8338 -79.9442 28.5923 +v -55.0145 -79.9442 24.1317 +v -56.8193 -79.9442 19.5062 +v -58.2361 -79.9442 14.7475 +v -59.255 -79.9442 9.88805 +v -59.8692 -79.9442 4.96103 +v -60.0744 -79.9442 0.000137977 +v -59.8692 -79.9442 -4.96075 +v -59.2551 -79.9442 -9.88777 +v -58.2361 -79.9442 -14.7472 +v -56.8194 -79.9442 -19.506 +v -55.0146 -79.9442 -24.1314 +v -52.8339 -79.9442 -28.5921 +v -50.2923 -79.9442 -32.8574 +v -47.4072 -79.9442 -36.8983 +v -44.1983 -79.9442 -40.6871 +v -40.6874 -79.9442 -44.198 +v -36.8986 -79.9442 -47.407 +v -32.8577 -79.9442 -50.2922 +v -28.5924 -79.9442 -52.8337 +v -24.1318 -79.9442 -55.0144 +v -19.5063 -79.9442 -56.8193 +v -14.7476 -79.9442 -58.2361 +v -9.88812 -79.9442 -59.255 +v -4.9611 -79.9442 -59.8692 +v -0.000199803 -79.9442 -60.0744 +v 4.96071 -79.9442 -59.8692 +v 9.8877 -79.9442 -59.2551 +v 14.7472 -79.9442 -58.2362 +v 19.5059 -79.9442 -56.8194 +v 24.1314 -79.9442 -55.0146 +v 28.592 -79.9442 -52.8339 +v 32.8574 -79.9442 -50.2924 +v 36.8983 -79.9442 -47.4073 +v 40.6871 -79.9442 -44.1983 +v 44.198 -79.9442 -40.6874 +v 47.407 -79.9442 -36.8986 +v 50.2921 -79.9442 -32.8578 +v 52.8337 -79.9442 -28.5925 +v 55.0144 -79.9442 -24.1318 +v 56.8193 -79.9442 -19.5064 +v 58.236 -79.9442 -14.7476 +v 59.255 -79.9442 -9.88817 +v 59.8692 -79.9442 -4.96118 +v 53.4467 -84.5189 5.88009e-39 +v 53.2642 -84.5189 4.41359 +v 52.7178 -84.5189 8.79704 +v 51.8113 -84.5189 13.1204 +v 50.5509 -84.5189 17.3541 +v 48.9451 -84.5189 21.4693 +v 47.005 -84.5189 25.4378 +v 44.7438 -84.5189 29.2326 +v 42.177 -84.5189 32.8276 +v 39.3221 -84.5189 36.1985 +v 36.1985 -84.5189 39.322 +v 32.8277 -84.5189 42.177 +v 29.2326 -84.5189 44.7438 +v 25.4379 -84.5189 47.005 +v 21.4694 -84.5189 48.9451 +v 17.3542 -84.5189 50.5508 +v 13.1205 -84.5189 51.8113 +v 8.7971 -84.5189 52.7178 +v 4.41365 -84.5189 53.2642 +v 6.13772e-05 -84.5189 53.4467 +v -4.41353 -84.5189 53.2642 +v -8.79698 -84.5189 52.7178 +v -13.1203 -84.5189 51.8113 +v -17.3541 -84.5189 50.5509 +v -21.4692 -84.5189 48.9451 +v -25.4378 -84.5189 47.005 +v -29.2325 -84.5189 44.7439 +v -32.8276 -84.5189 42.177 +v -36.1984 -84.5189 39.3221 +v -39.322 -84.5189 36.1986 +v -42.1769 -84.5189 32.8277 +v -44.7438 -84.5189 29.2327 +v -47.005 -84.5189 25.4379 +v -48.9451 -84.5189 21.4694 +v -50.5508 -84.5189 17.3542 +v -51.8113 -84.5189 13.1205 +v -52.7178 -84.5189 8.79716 +v -53.2642 -84.5189 4.41371 +v -53.4467 -84.5189 0.000122754 +v -53.2642 -84.5189 -4.41347 +v -52.7178 -84.5189 -8.79692 +v -51.8113 -84.5189 -13.1203 +v -50.5509 -84.5189 -17.354 +v -48.9452 -84.5189 -21.4692 +v -47.0051 -84.5189 -25.4377 +v -44.7439 -84.5189 -29.2325 +v -42.1771 -84.5189 -32.8276 +v -39.3222 -84.5189 -36.1984 +v -36.1986 -84.5189 -39.3219 +v -32.8278 -84.5189 -42.1769 +v -29.2327 -84.5189 -44.7437 +v -25.438 -84.5189 -47.0049 +v -21.4695 -84.5189 -48.945 +v -17.3543 -84.5189 -50.5508 +v -13.1206 -84.5189 -51.8112 +v -8.79723 -84.5189 -52.7178 +v -4.41378 -84.5189 -53.2642 +v -0.00017776 -84.5189 -53.4467 +v 4.41342 -84.5189 -53.2642 +v 8.79685 -84.5189 -52.7178 +v 13.1202 -84.5189 -51.8113 +v 17.3539 -84.5189 -50.5509 +v 21.4691 -84.5189 -48.9452 +v 25.4377 -84.5189 -47.0051 +v 29.2324 -84.5189 -44.7439 +v 32.8275 -84.5189 -42.1771 +v 36.1983 -84.5189 -39.3222 +v 39.3219 -84.5189 -36.1987 +v 42.1769 -84.5189 -32.8278 +v 44.7437 -84.5189 -29.2328 +v 47.0049 -84.5189 -25.438 +v 48.945 -84.5189 -21.4695 +v 50.5508 -84.5189 -17.3543 +v 51.8112 -84.5189 -13.1206 +v 52.7178 -84.5189 -8.79727 +v 53.2642 -84.5189 -4.41385 +v 46.4725 -88.5455 5.88009e-39 +v 46.3138 -88.5455 3.83767 +v 45.8387 -88.5455 7.64912 +v 45.0505 -88.5455 11.4083 +v 43.9545 -88.5455 15.0896 +v 42.5583 -88.5455 18.6678 +v 40.8713 -88.5455 22.1184 +v 38.9052 -88.5455 25.418 +v 36.6733 -88.5455 28.544 +v 34.1909 -88.5455 31.4749 +v 31.475 -88.5455 34.1909 +v 28.544 -88.5455 36.6733 +v 25.4181 -88.5455 38.9052 +v 22.1185 -88.5455 40.8713 +v 18.6678 -88.5455 42.5583 +v 15.0896 -88.5455 43.9545 +v 11.4084 -88.5455 45.0504 +v 7.64917 -88.5455 45.8387 +v 3.83772 -88.5455 46.3138 +v 5.33682e-05 -88.5455 46.4725 +v -3.83761 -88.5455 46.3138 +v -7.64906 -88.5455 45.8387 +v -11.4083 -88.5455 45.0505 +v -15.0895 -88.5455 43.9545 +v -18.6677 -88.5455 42.5583 +v -22.1184 -88.5455 40.8714 +v -25.418 -88.5455 38.9053 +v -28.5439 -88.5455 36.6734 +v -31.4749 -88.5455 34.191 +v -34.1909 -88.5455 31.475 +v -36.6733 -88.5455 28.5441 +v -38.9052 -88.5455 25.4181 +v -40.8713 -88.5455 22.1185 +v -42.5582 -88.5455 18.6679 +v -43.9545 -88.5455 15.0897 +v -45.0504 -88.5455 11.4084 +v -45.8387 -88.5455 7.64922 +v -46.3138 -88.5455 3.83777 +v -46.4725 -88.5455 0.000106736 +v -46.3138 -88.5455 -3.83755 +v -45.8387 -88.5455 -7.64901 +v -45.0505 -88.5455 -11.4082 +v -43.9545 -88.5455 -15.0895 +v -42.5583 -88.5455 -18.6677 +v -40.8714 -88.5455 -22.1184 +v -38.9053 -88.5455 -25.4179 +v -36.6734 -88.5455 -28.5439 +v -34.191 -88.5455 -31.4749 +v -31.4751 -88.5455 -34.1908 +v -28.5441 -88.5455 -36.6732 +v -25.4182 -88.5455 -38.9051 +v -22.1186 -88.5455 -40.8713 +v -18.6679 -88.5455 -42.5582 +v -15.0897 -88.5455 -43.9544 +v -11.4085 -88.5455 -45.0504 +v -7.64928 -88.5455 -45.8386 +v -3.83783 -88.5455 -46.3138 +v -0.000154565 -88.5455 -46.4725 +v 3.83752 -88.5455 -46.3138 +v 7.64895 -88.5455 -45.8387 +v 11.4082 -88.5455 -45.0505 +v 15.0894 -88.5455 -43.9545 +v 18.6676 -88.5455 -42.5583 +v 22.1183 -88.5455 -40.8714 +v 25.4179 -88.5455 -38.9053 +v 28.5439 -88.5455 -36.6734 +v 31.4748 -88.5455 -34.191 +v 34.1908 -88.5455 -31.4751 +v 36.6732 -88.5455 -28.5441 +v 38.9051 -88.5455 -25.4182 +v 40.8712 -88.5455 -22.1186 +v 42.5582 -88.5455 -18.668 +v 43.9544 -88.5455 -15.0898 +v 45.0504 -88.5455 -11.4085 +v 45.8386 -88.5455 -7.64932 +v 46.3138 -88.5455 -3.83788 +v 39.1968 -91.9979 5.88009e-39 +v 39.063 -91.9979 3.23685 +v 38.6622 -91.9979 6.45158 +v 37.9974 -91.9979 9.62225 +v 37.073 -91.9979 12.7272 +v 35.8954 -91.9979 15.7452 +v 34.4726 -91.9979 18.6556 +v 32.8143 -91.9979 21.4386 +v 30.9318 -91.9979 24.0752 +v 28.8381 -91.9979 26.5473 +v 26.5473 -91.9979 28.838 +v 24.0752 -91.9979 30.9318 +v 21.4387 -91.9979 32.8143 +v 18.6557 -91.9979 34.4726 +v 15.7452 -91.9979 35.8954 +v 12.7272 -91.9979 37.073 +v 9.62229 -91.9979 37.9974 +v 6.45163 -91.9979 38.6622 +v 3.23689 -91.9979 39.063 +v 4.50129e-05 -91.9979 39.1968 +v -3.2368 -91.9979 39.063 +v -6.45154 -91.9979 38.6623 +v -9.6222 -91.9979 37.9974 +v -12.7271 -91.9979 37.0731 +v -15.7451 -91.9979 35.8954 +v -18.6556 -91.9979 34.4726 +v -21.4386 -91.9979 32.8143 +v -24.0751 -91.9979 30.9319 +v -26.5472 -91.9979 28.8381 +v -28.838 -91.9979 26.5473 +v -30.9318 -91.9979 24.0753 +v -32.8142 -91.9979 21.4387 +v -34.4725 -91.9979 18.6557 +v -35.8954 -91.9979 15.7453 +v -37.073 -91.9979 12.7273 +v -37.9974 -91.9979 9.62234 +v -38.6622 -91.9979 6.45167 +v -39.063 -91.9979 3.23693 +v -39.1968 -91.9979 9.00258e-05 +v -39.063 -91.9979 -3.23675 +v -38.6623 -91.9979 -6.45149 +v -37.9974 -91.9979 -9.62216 +v -37.0731 -91.9979 -12.7271 +v -35.8955 -91.9979 -15.7451 +v -34.4726 -91.9979 -18.6555 +v -32.8143 -91.9979 -21.4386 +v -30.9319 -91.9979 -24.0751 +v -28.8381 -91.9979 -26.5472 +v -26.5474 -91.9979 -28.838 +v -24.0753 -91.9979 -30.9317 +v -21.4387 -91.9979 -32.8142 +v -18.6557 -91.9979 -34.4725 +v -15.7453 -91.9979 -35.8954 +v -12.7273 -91.9979 -37.073 +v -9.62239 -91.9979 -37.9974 +v -6.45172 -91.9979 -38.6622 +v -3.23698 -91.9979 -39.0629 +v -0.000130366 -91.9979 -39.1968 +v 3.23672 -91.9979 -39.063 +v 6.45144 -91.9979 -38.6623 +v 9.62212 -91.9979 -37.9975 +v 12.7271 -91.9979 -37.0731 +v 15.745 -91.9979 -35.8955 +v 18.6555 -91.9979 -34.4727 +v 21.4385 -91.9979 -32.8144 +v 24.0751 -91.9979 -30.9319 +v 26.5472 -91.9979 -28.8381 +v 28.8379 -91.9979 -26.5474 +v 30.9317 -91.9979 -24.0753 +v 32.8142 -91.9979 -21.4388 +v 34.4725 -91.9979 -18.6558 +v 35.8953 -91.9979 -15.7453 +v 37.073 -91.9979 -12.7274 +v 37.9974 -91.9979 -9.62242 +v 38.6622 -91.9979 -6.45175 +v 39.0629 -91.9979 -3.23703 +v 31.667 -94.8536 5.88009e-39 +v 31.5588 -94.8536 2.61504 +v 31.2351 -94.8536 5.21221 +v 30.698 -94.8536 7.77378 +v 29.9512 -94.8536 10.2822 +v 28.9998 -94.8536 12.7205 +v 27.8503 -94.8536 15.0718 +v 26.5106 -94.8536 17.3202 +v 24.9897 -94.8536 19.4503 +v 23.2982 -94.8536 21.4475 +v 21.4475 -94.8536 23.2982 +v 19.4503 -94.8536 24.9897 +v 17.3202 -94.8536 26.5105 +v 15.0718 -94.8536 27.8503 +v 12.7205 -94.8536 28.9998 +v 10.2823 -94.8536 29.9512 +v 7.77382 -94.8536 30.698 +v 5.21225 -94.8536 31.2351 +v 2.61507 -94.8536 31.5588 +v 3.63658e-05 -94.8536 31.667 +v -2.615 -94.8536 31.5588 +v -5.21218 -94.8536 31.2351 +v -7.77375 -94.8536 30.698 +v -10.2822 -94.8536 29.9512 +v -12.7204 -94.8536 28.9998 +v -15.0718 -94.8536 27.8503 +v -17.3202 -94.8536 26.5106 +v -19.4502 -94.8536 24.9897 +v -21.4474 -94.8536 23.2982 +v -23.2981 -94.8536 21.4475 +v -24.9897 -94.8536 19.4503 +v -26.5105 -94.8536 17.3203 +v -27.8503 -94.8536 15.0719 +v -28.9998 -94.8536 12.7205 +v -29.9512 -94.8536 10.2823 +v -30.698 -94.8536 7.77386 +v -31.2351 -94.8536 5.21228 +v -31.5588 -94.8536 2.61511 +v -31.667 -94.8536 7.27316e-05 +v -31.5588 -94.8536 -2.61496 +v -31.2351 -94.8536 -5.21214 +v -30.698 -94.8536 -7.77371 +v -29.9512 -94.8536 -10.2822 +v -28.9998 -94.8536 -12.7204 +v -27.8503 -94.8536 -15.0717 +v -26.5106 -94.8536 -17.3201 +v -24.9898 -94.8536 -19.4502 +v -23.2982 -94.8536 -21.4474 +v -21.4475 -94.8536 -23.2981 +v -19.4503 -94.8536 -24.9897 +v -17.3203 -94.8536 -26.5105 +v -15.0719 -94.8536 -27.8502 +v -12.7206 -94.8536 -28.9997 +v -10.2823 -94.8536 -29.9512 +v -7.77389 -94.8536 -30.698 +v -5.21232 -94.8536 -31.2351 +v -2.61515 -94.8536 -31.5588 +v -0.000105322 -94.8536 -31.667 +v 2.61494 -94.8536 -31.5588 +v 5.2121 -94.8536 -31.2351 +v 7.77368 -94.8536 -30.698 +v 10.2821 -94.8536 -29.9512 +v 12.7204 -94.8536 -28.9998 +v 15.0717 -94.8536 -27.8503 +v 17.3201 -94.8536 -26.5106 +v 19.4502 -94.8536 -24.9898 +v 21.4474 -94.8536 -23.2982 +v 23.2981 -94.8536 -21.4476 +v 24.9896 -94.8536 -19.4504 +v 26.5105 -94.8536 -17.3203 +v 27.8502 -94.8536 -15.0719 +v 28.9997 -94.8536 -12.7206 +v 29.9511 -94.8536 -10.2824 +v 30.698 -94.8536 -7.77392 +v 31.2351 -94.8536 -5.21235 +v 31.5588 -94.8536 -2.61519 +v 23.9318 -97.0941 5.88009e-39 +v 23.85 -97.0941 1.97627 +v 23.6054 -97.0941 3.93904 +v 23.1995 -97.0941 5.8749 +v 22.6351 -97.0941 7.77063 +v 21.9161 -97.0941 9.61328 +v 21.0474 -97.0941 11.3903 +v 20.0349 -97.0941 13.0894 +v 18.8855 -97.0941 14.6992 +v 17.6072 -97.0941 16.2085 +v 16.2086 -97.0941 17.6072 +v 14.6992 -97.0941 18.8855 +v 13.0895 -97.0941 20.0349 +v 11.3903 -97.0941 21.0474 +v 9.6133 -97.0941 21.9161 +v 7.77066 -97.0941 22.6351 +v 5.87493 -97.0941 23.1995 +v 3.93907 -97.0941 23.6054 +v 1.9763 -97.0941 23.85 +v 2.74828e-05 -97.0941 23.9318 +v -1.97624 -97.0941 23.85 +v -3.93901 -97.0941 23.6054 +v -5.87487 -97.0941 23.1995 +v -7.7706 -97.0941 22.6351 +v -9.61325 -97.0941 21.9161 +v -11.3902 -97.0941 21.0474 +v -13.0894 -97.0941 20.0349 +v -14.6992 -97.0941 18.8856 +v -16.2085 -97.0941 17.6072 +v -17.6072 -97.0941 16.2086 +v -18.8855 -97.0941 14.6992 +v -20.0349 -97.0941 13.0895 +v -21.0473 -97.0941 11.3903 +v -21.9161 -97.0941 9.61333 +v -22.6351 -97.0941 7.77068 +v -23.1995 -97.0941 5.87496 +v -23.6054 -97.0941 3.93909 +v -23.85 -97.0941 1.97632 +v -23.9318 -97.0941 5.49656e-05 +v -23.85 -97.0941 -1.97621 +v -23.6054 -97.0941 -3.93898 +v -23.1995 -97.0941 -5.87485 +v -22.6351 -97.0941 -7.77058 +v -21.9161 -97.0941 -9.61322 +v -21.0474 -97.0941 -11.3902 +v -20.0349 -97.0941 -13.0894 +v -18.8856 -97.0941 -14.6991 +v -17.6072 -97.0941 -16.2085 +v -16.2086 -97.0941 -17.6071 +v -14.6993 -97.0941 -18.8855 +v -13.0895 -97.0941 -20.0348 +v -11.3903 -97.0941 -21.0473 +v -9.61335 -97.0941 -21.9161 +v -7.7707 -97.0941 -22.6351 +v -5.87498 -97.0941 -23.1994 +v -3.93912 -97.0941 -23.6054 +v -1.97635 -97.0941 -23.85 +v -7.95955e-05 -97.0941 -23.9318 +v 1.97619 -97.0941 -23.85 +v 3.93895 -97.0941 -23.6054 +v 5.87482 -97.0941 -23.1995 +v 7.77055 -97.0941 -22.6351 +v 9.6132 -97.0941 -21.9161 +v 11.3902 -97.0941 -21.0474 +v 13.0894 -97.0941 -20.0349 +v 14.6991 -97.0941 -18.8856 +v 16.2085 -97.0941 -17.6072 +v 17.6071 -97.0941 -16.2086 +v 18.8855 -97.0941 -14.6993 +v 20.0348 -97.0941 -13.0895 +v 21.0473 -97.0941 -11.3904 +v 21.916 -97.0941 -9.61338 +v 22.6351 -97.0941 -7.77073 +v 23.1994 -97.0941 -5.875 +v 23.6054 -97.0941 -3.93914 +v 23.85 -97.0941 -1.97638 +v 16.0414 -98.705 5.88009e-39 +v 15.9866 -98.705 1.32468 +v 15.8226 -98.705 2.64032 +v 15.5505 -98.705 3.93792 +v 15.1722 -98.705 5.20862 +v 14.6902 -98.705 6.44373 +v 14.108 -98.705 7.63484 +v 13.4293 -98.705 8.77378 +v 12.6589 -98.705 9.8528 +v 11.802 -98.705 10.8645 +v 10.8645 -98.705 11.802 +v 9.85281 -98.705 12.6589 +v 8.7738 -98.705 13.4293 +v 7.63485 -98.705 14.1079 +v 6.44375 -98.705 14.6902 +v 5.20863 -98.705 15.1722 +v 3.93793 -98.705 15.5505 +v 2.64034 -98.705 15.8226 +v 1.3247 -98.705 15.9866 +v 1.84216e-05 -98.705 16.0414 +v -1.32467 -98.705 15.9866 +v -2.6403 -98.705 15.8226 +v -3.9379 -98.705 15.5505 +v -5.2086 -98.705 15.1722 +v -6.44372 -98.705 14.6903 +v -7.63482 -98.705 14.108 +v -8.77377 -98.705 13.4293 +v -9.85278 -98.705 12.6589 +v -10.8645 -98.705 11.802 +v -11.802 -98.705 10.8645 +v -12.6589 -98.705 9.85283 +v -13.4293 -98.705 8.77382 +v -14.1079 -98.705 7.63487 +v -14.6902 -98.705 6.44377 +v -15.1722 -98.705 5.20865 +v -15.5505 -98.705 3.93795 +v -15.8226 -98.705 2.64035 +v -15.9866 -98.705 1.32472 +v -16.0414 -98.705 3.68432e-05 +v -15.9866 -98.705 -1.32464 +v -15.8226 -98.705 -2.64028 +v -15.5505 -98.705 -3.93788 +v -15.1722 -98.705 -5.20858 +v -14.6903 -98.705 -6.4437 +v -14.108 -98.705 -7.6348 +v -13.4293 -98.705 -8.77375 +v -12.6589 -98.705 -9.85277 +v -11.802 -98.705 -10.8645 +v -10.8645 -98.705 -11.802 +v -9.85284 -98.705 -12.6589 +v -8.77383 -98.705 -13.4293 +v -7.63489 -98.705 -14.1079 +v -6.44378 -98.705 -14.6902 +v -5.20867 -98.705 -15.1722 +v -3.93797 -98.705 -15.5505 +v -2.64037 -98.705 -15.8226 +v -1.32474 -98.705 -15.9866 +v -5.33525e-05 -98.705 -16.0414 +v 1.32463 -98.705 -15.9866 +v 2.64026 -98.705 -15.8226 +v 3.93786 -98.705 -15.5505 +v 5.20856 -98.705 -15.1722 +v 6.44368 -98.705 -14.6903 +v 7.63478 -98.705 -14.108 +v 8.77374 -98.705 -13.4293 +v 9.85275 -98.705 -12.6589 +v 10.8645 -98.705 -11.802 +v 11.802 -98.705 -10.8646 +v 12.6588 -98.705 -9.85285 +v 13.4292 -98.705 -8.77384 +v 14.1079 -98.705 -7.6349 +v 14.6902 -98.705 -6.4438 +v 15.1722 -98.705 -5.20868 +v 15.5505 -98.705 -3.93799 +v 15.8226 -98.705 -2.64039 +v 15.9866 -98.705 -1.32476 +v 8.04687 -99.6757 5.88009e-39 +v 8.01939 -99.6757 0.664505 +v 7.93712 -99.6757 1.32447 +v 7.80064 -99.6757 1.97539 +v 7.61087 -99.6757 2.61281 +v 7.36911 -99.6757 3.23239 +v 7.07701 -99.6757 3.82989 +v 6.73657 -99.6757 4.40122 +v 6.35012 -99.6757 4.94249 +v 5.92028 -99.6757 5.45 +v 5.45 -99.6757 5.92027 +v 4.9425 -99.6757 6.35011 +v 4.40123 -99.6757 6.73657 +v 3.82989 -99.6757 7.07701 +v 3.2324 -99.6757 7.36911 +v 2.61282 -99.6757 7.61087 +v 1.9754 -99.6757 7.80064 +v 1.32448 -99.6757 7.93712 +v 0.664514 -99.6757 8.01939 +v 9.24088e-06 -99.6757 8.04687 +v -0.664496 -99.6757 8.01939 +v -1.32446 -99.6757 7.93713 +v -1.97538 -99.6757 7.80064 +v -2.6128 -99.6757 7.61088 +v -3.23238 -99.6757 7.36912 +v -3.82988 -99.6757 7.07702 +v -4.40121 -99.6757 6.73658 +v -4.94248 -99.6757 6.35012 +v -5.44999 -99.6757 5.92029 +v -5.92027 -99.6757 5.45001 +v -6.3501 -99.6757 4.9425 +v -6.73656 -99.6757 4.40124 +v -7.07701 -99.6757 3.8299 +v -7.36911 -99.6757 3.23241 +v -7.61087 -99.6757 2.61283 +v -7.80064 -99.6757 1.97541 +v -7.93712 -99.6757 1.32449 +v -8.01939 -99.6757 0.664522 +v -8.04687 -99.6757 1.84818e-05 +v -8.01939 -99.6757 -0.664486 +v -7.93713 -99.6757 -1.32445 +v -7.80065 -99.6757 -1.97537 +v -7.61088 -99.6757 -2.6128 +v -7.36912 -99.6757 -3.23237 +v -7.07702 -99.6757 -3.82987 +v -6.73658 -99.6757 -4.40121 +v -6.35013 -99.6757 -4.94247 +v -5.92029 -99.6757 -5.44998 +v -5.45002 -99.6757 -5.92026 +v -4.94251 -99.6757 -6.3501 +v -4.40124 -99.6757 -6.73656 +v -3.82991 -99.6757 -7.077 +v -3.23242 -99.6757 -7.3691 +v -2.61284 -99.6757 -7.61086 +v -1.97542 -99.6757 -7.80063 +v -1.3245 -99.6757 -7.93712 +v -0.664533 -99.6757 -8.01939 +v -2.67634e-05 -99.6757 -8.04687 +v 0.664479 -99.6757 -8.01939 +v 1.32444 -99.6757 -7.93713 +v 1.97536 -99.6757 -7.80065 +v 2.61279 -99.6757 -7.61088 +v 3.23236 -99.6757 -7.36912 +v 3.82986 -99.6757 -7.07703 +v 4.4012 -99.6757 -6.73659 +v 4.94247 -99.6757 -6.35013 +v 5.44998 -99.6757 -5.9203 +v 5.92025 -99.6757 -5.45002 +v 6.35009 -99.6757 -4.94252 +v 6.73655 -99.6757 -4.40125 +v 7.077 -99.6757 -3.82992 +v 7.3691 -99.6757 -3.23242 +v 7.61086 -99.6757 -2.61285 +v 7.80063 -99.6757 -1.97542 +v 7.93712 -99.6757 -1.32451 +v 8.01939 -99.6757 -0.664543 +f 3 4 80 79 +f 4 5 81 80 +f 5 6 82 81 +f 6 7 83 82 +f 7 8 84 83 +f 8 9 85 84 +f 9 10 86 85 +f 10 11 87 86 +f 11 12 88 87 +f 12 13 89 88 +f 13 14 90 89 +f 14 15 91 90 +f 15 16 92 91 +f 16 17 93 92 +f 17 18 94 93 +f 18 19 95 94 +f 19 20 96 95 +f 20 21 97 96 +f 21 22 98 97 +f 22 23 99 98 +f 23 24 100 99 +f 24 25 101 100 +f 25 26 102 101 +f 26 27 103 102 +f 27 28 104 103 +f 28 29 105 104 +f 29 30 106 105 +f 30 31 107 106 +f 31 32 108 107 +f 32 33 109 108 +f 33 34 110 109 +f 34 35 111 110 +f 35 36 112 111 +f 36 37 113 112 +f 37 38 114 113 +f 38 39 115 114 +f 39 40 116 115 +f 40 41 117 116 +f 41 42 118 117 +f 42 43 119 118 +f 43 44 120 119 +f 44 45 121 120 +f 45 46 122 121 +f 46 47 123 122 +f 47 48 124 123 +f 48 49 125 124 +f 49 50 126 125 +f 50 51 127 126 +f 51 52 128 127 +f 52 53 129 128 +f 53 54 130 129 +f 54 55 131 130 +f 55 56 132 131 +f 56 57 133 132 +f 57 58 134 133 +f 58 59 135 134 +f 59 60 136 135 +f 60 61 137 136 +f 61 62 138 137 +f 62 63 139 138 +f 63 64 140 139 +f 64 65 141 140 +f 65 66 142 141 +f 66 67 143 142 +f 67 68 144 143 +f 68 69 145 144 +f 69 70 146 145 +f 70 71 147 146 +f 71 72 148 147 +f 72 73 149 148 +f 73 74 150 149 +f 74 75 151 150 +f 75 76 152 151 +f 76 77 153 152 +f 77 78 154 153 +f 78 3 79 154 +f 79 80 156 155 +f 80 81 157 156 +f 81 82 158 157 +f 82 83 159 158 +f 83 84 160 159 +f 84 85 161 160 +f 85 86 162 161 +f 86 87 163 162 +f 87 88 164 163 +f 88 89 165 164 +f 89 90 166 165 +f 90 91 167 166 +f 91 92 168 167 +f 92 93 169 168 +f 93 94 170 169 +f 94 95 171 170 +f 95 96 172 171 +f 96 97 173 172 +f 97 98 174 173 +f 98 99 175 174 +f 99 100 176 175 +f 100 101 177 176 +f 101 102 178 177 +f 102 103 179 178 +f 103 104 180 179 +f 104 105 181 180 +f 105 106 182 181 +f 106 107 183 182 +f 107 108 184 183 +f 108 109 185 184 +f 109 110 186 185 +f 110 111 187 186 +f 111 112 188 187 +f 112 113 189 188 +f 113 114 190 189 +f 114 115 191 190 +f 115 116 192 191 +f 116 117 193 192 +f 117 118 194 193 +f 118 119 195 194 +f 119 120 196 195 +f 120 121 197 196 +f 121 122 198 197 +f 122 123 199 198 +f 123 124 200 199 +f 124 125 201 200 +f 125 126 202 201 +f 126 127 203 202 +f 127 128 204 203 +f 128 129 205 204 +f 129 130 206 205 +f 130 131 207 206 +f 131 132 208 207 +f 132 133 209 208 +f 133 134 210 209 +f 134 135 211 210 +f 135 136 212 211 +f 136 137 213 212 +f 137 138 214 213 +f 138 139 215 214 +f 139 140 216 215 +f 140 141 217 216 +f 141 142 218 217 +f 142 143 219 218 +f 143 144 220 219 +f 144 145 221 220 +f 145 146 222 221 +f 146 147 223 222 +f 147 148 224 223 +f 148 149 225 224 +f 149 150 226 225 +f 150 151 227 226 +f 151 152 228 227 +f 152 153 229 228 +f 153 154 230 229 +f 154 79 155 230 +f 155 156 232 231 +f 156 157 233 232 +f 157 158 234 233 +f 158 159 235 234 +f 159 160 236 235 +f 160 161 237 236 +f 161 162 238 237 +f 162 163 239 238 +f 163 164 240 239 +f 164 165 241 240 +f 165 166 242 241 +f 166 167 243 242 +f 167 168 244 243 +f 168 169 245 244 +f 169 170 246 245 +f 170 171 247 246 +f 171 172 248 247 +f 172 173 249 248 +f 173 174 250 249 +f 174 175 251 250 +f 175 176 252 251 +f 176 177 253 252 +f 177 178 254 253 +f 178 179 255 254 +f 179 180 256 255 +f 180 181 257 256 +f 181 182 258 257 +f 182 183 259 258 +f 183 184 260 259 +f 184 185 261 260 +f 185 186 262 261 +f 186 187 263 262 +f 187 188 264 263 +f 188 189 265 264 +f 189 190 266 265 +f 190 191 267 266 +f 191 192 268 267 +f 192 193 269 268 +f 193 194 270 269 +f 194 195 271 270 +f 195 196 272 271 +f 196 197 273 272 +f 197 198 274 273 +f 198 199 275 274 +f 199 200 276 275 +f 200 201 277 276 +f 201 202 278 277 +f 202 203 279 278 +f 203 204 280 279 +f 204 205 281 280 +f 205 206 282 281 +f 206 207 283 282 +f 207 208 284 283 +f 208 209 285 284 +f 209 210 286 285 +f 210 211 287 286 +f 211 212 288 287 +f 212 213 289 288 +f 213 214 290 289 +f 214 215 291 290 +f 215 216 292 291 +f 216 217 293 292 +f 217 218 294 293 +f 218 219 295 294 +f 219 220 296 295 +f 220 221 297 296 +f 221 222 298 297 +f 222 223 299 298 +f 223 224 300 299 +f 224 225 301 300 +f 225 226 302 301 +f 226 227 303 302 +f 227 228 304 303 +f 228 229 305 304 +f 229 230 306 305 +f 230 155 231 306 +f 231 232 308 307 +f 232 233 309 308 +f 233 234 310 309 +f 234 235 311 310 +f 235 236 312 311 +f 236 237 313 312 +f 237 238 314 313 +f 238 239 315 314 +f 239 240 316 315 +f 240 241 317 316 +f 241 242 318 317 +f 242 243 319 318 +f 243 244 320 319 +f 244 245 321 320 +f 245 246 322 321 +f 246 247 323 322 +f 247 248 324 323 +f 248 249 325 324 +f 249 250 326 325 +f 250 251 327 326 +f 251 252 328 327 +f 252 253 329 328 +f 253 254 330 329 +f 254 255 331 330 +f 255 256 332 331 +f 256 257 333 332 +f 257 258 334 333 +f 258 259 335 334 +f 259 260 336 335 +f 260 261 337 336 +f 261 262 338 337 +f 262 263 339 338 +f 263 264 340 339 +f 264 265 341 340 +f 265 266 342 341 +f 266 267 343 342 +f 267 268 344 343 +f 268 269 345 344 +f 269 270 346 345 +f 270 271 347 346 +f 271 272 348 347 +f 272 273 349 348 +f 273 274 350 349 +f 274 275 351 350 +f 275 276 352 351 +f 276 277 353 352 +f 277 278 354 353 +f 278 279 355 354 +f 279 280 356 355 +f 280 281 357 356 +f 281 282 358 357 +f 282 283 359 358 +f 283 284 360 359 +f 284 285 361 360 +f 285 286 362 361 +f 286 287 363 362 +f 287 288 364 363 +f 288 289 365 364 +f 289 290 366 365 +f 290 291 367 366 +f 291 292 368 367 +f 292 293 369 368 +f 293 294 370 369 +f 294 295 371 370 +f 295 296 372 371 +f 296 297 373 372 +f 297 298 374 373 +f 298 299 375 374 +f 299 300 376 375 +f 300 301 377 376 +f 301 302 378 377 +f 302 303 379 378 +f 303 304 380 379 +f 304 305 381 380 +f 305 306 382 381 +f 306 231 307 382 +f 307 308 384 383 +f 308 309 385 384 +f 309 310 386 385 +f 310 311 387 386 +f 311 312 388 387 +f 312 313 389 388 +f 313 314 390 389 +f 314 315 391 390 +f 315 316 392 391 +f 316 317 393 392 +f 317 318 394 393 +f 318 319 395 394 +f 319 320 396 395 +f 320 321 397 396 +f 321 322 398 397 +f 322 323 399 398 +f 323 324 400 399 +f 324 325 401 400 +f 325 326 402 401 +f 326 327 403 402 +f 327 328 404 403 +f 328 329 405 404 +f 329 330 406 405 +f 330 331 407 406 +f 331 332 408 407 +f 332 333 409 408 +f 333 334 410 409 +f 334 335 411 410 +f 335 336 412 411 +f 336 337 413 412 +f 337 338 414 413 +f 338 339 415 414 +f 339 340 416 415 +f 340 341 417 416 +f 341 342 418 417 +f 342 343 419 418 +f 343 344 420 419 +f 344 345 421 420 +f 345 346 422 421 +f 346 347 423 422 +f 347 348 424 423 +f 348 349 425 424 +f 349 350 426 425 +f 350 351 427 426 +f 351 352 428 427 +f 352 353 429 428 +f 353 354 430 429 +f 354 355 431 430 +f 355 356 432 431 +f 356 357 433 432 +f 357 358 434 433 +f 358 359 435 434 +f 359 360 436 435 +f 360 361 437 436 +f 361 362 438 437 +f 362 363 439 438 +f 363 364 440 439 +f 364 365 441 440 +f 365 366 442 441 +f 366 367 443 442 +f 367 368 444 443 +f 368 369 445 444 +f 369 370 446 445 +f 370 371 447 446 +f 371 372 448 447 +f 372 373 449 448 +f 373 374 450 449 +f 374 375 451 450 +f 375 376 452 451 +f 376 377 453 452 +f 377 378 454 453 +f 378 379 455 454 +f 379 380 456 455 +f 380 381 457 456 +f 381 382 458 457 +f 382 307 383 458 +f 383 384 460 459 +f 384 385 461 460 +f 385 386 462 461 +f 386 387 463 462 +f 387 388 464 463 +f 388 389 465 464 +f 389 390 466 465 +f 390 391 467 466 +f 391 392 468 467 +f 392 393 469 468 +f 393 394 470 469 +f 394 395 471 470 +f 395 396 472 471 +f 396 397 473 472 +f 397 398 474 473 +f 398 399 475 474 +f 399 400 476 475 +f 400 401 477 476 +f 401 402 478 477 +f 402 403 479 478 +f 403 404 480 479 +f 404 405 481 480 +f 405 406 482 481 +f 406 407 483 482 +f 407 408 484 483 +f 408 409 485 484 +f 409 410 486 485 +f 410 411 487 486 +f 411 412 488 487 +f 412 413 489 488 +f 413 414 490 489 +f 414 415 491 490 +f 415 416 492 491 +f 416 417 493 492 +f 417 418 494 493 +f 418 419 495 494 +f 419 420 496 495 +f 420 421 497 496 +f 421 422 498 497 +f 422 423 499 498 +f 423 424 500 499 +f 424 425 501 500 +f 425 426 502 501 +f 426 427 503 502 +f 427 428 504 503 +f 428 429 505 504 +f 429 430 506 505 +f 430 431 507 506 +f 431 432 508 507 +f 432 433 509 508 +f 433 434 510 509 +f 434 435 511 510 +f 435 436 512 511 +f 436 437 513 512 +f 437 438 514 513 +f 438 439 515 514 +f 439 440 516 515 +f 440 441 517 516 +f 441 442 518 517 +f 442 443 519 518 +f 443 444 520 519 +f 444 445 521 520 +f 445 446 522 521 +f 446 447 523 522 +f 447 448 524 523 +f 448 449 525 524 +f 449 450 526 525 +f 450 451 527 526 +f 451 452 528 527 +f 452 453 529 528 +f 453 454 530 529 +f 454 455 531 530 +f 455 456 532 531 +f 456 457 533 532 +f 457 458 534 533 +f 458 383 459 534 +f 459 460 536 535 +f 460 461 537 536 +f 461 462 538 537 +f 462 463 539 538 +f 463 464 540 539 +f 464 465 541 540 +f 465 466 542 541 +f 466 467 543 542 +f 467 468 544 543 +f 468 469 545 544 +f 469 470 546 545 +f 470 471 547 546 +f 471 472 548 547 +f 472 473 549 548 +f 473 474 550 549 +f 474 475 551 550 +f 475 476 552 551 +f 476 477 553 552 +f 477 478 554 553 +f 478 479 555 554 +f 479 480 556 555 +f 480 481 557 556 +f 481 482 558 557 +f 482 483 559 558 +f 483 484 560 559 +f 484 485 561 560 +f 485 486 562 561 +f 486 487 563 562 +f 487 488 564 563 +f 488 489 565 564 +f 489 490 566 565 +f 490 491 567 566 +f 491 492 568 567 +f 492 493 569 568 +f 493 494 570 569 +f 494 495 571 570 +f 495 496 572 571 +f 496 497 573 572 +f 497 498 574 573 +f 498 499 575 574 +f 499 500 576 575 +f 500 501 577 576 +f 501 502 578 577 +f 502 503 579 578 +f 503 504 580 579 +f 504 505 581 580 +f 505 506 582 581 +f 506 507 583 582 +f 507 508 584 583 +f 508 509 585 584 +f 509 510 586 585 +f 510 511 587 586 +f 511 512 588 587 +f 512 513 589 588 +f 513 514 590 589 +f 514 515 591 590 +f 515 516 592 591 +f 516 517 593 592 +f 517 518 594 593 +f 518 519 595 594 +f 519 520 596 595 +f 520 521 597 596 +f 521 522 598 597 +f 522 523 599 598 +f 523 524 600 599 +f 524 525 601 600 +f 525 526 602 601 +f 526 527 603 602 +f 527 528 604 603 +f 528 529 605 604 +f 529 530 606 605 +f 530 531 607 606 +f 531 532 608 607 +f 532 533 609 608 +f 533 534 610 609 +f 534 459 535 610 +f 535 536 612 611 +f 536 537 613 612 +f 537 538 614 613 +f 538 539 615 614 +f 539 540 616 615 +f 540 541 617 616 +f 541 542 618 617 +f 542 543 619 618 +f 543 544 620 619 +f 544 545 621 620 +f 545 546 622 621 +f 546 547 623 622 +f 547 548 624 623 +f 548 549 625 624 +f 549 550 626 625 +f 550 551 627 626 +f 551 552 628 627 +f 552 553 629 628 +f 553 554 630 629 +f 554 555 631 630 +f 555 556 632 631 +f 556 557 633 632 +f 557 558 634 633 +f 558 559 635 634 +f 559 560 636 635 +f 560 561 637 636 +f 561 562 638 637 +f 562 563 639 638 +f 563 564 640 639 +f 564 565 641 640 +f 565 566 642 641 +f 566 567 643 642 +f 567 568 644 643 +f 568 569 645 644 +f 569 570 646 645 +f 570 571 647 646 +f 571 572 648 647 +f 572 573 649 648 +f 573 574 650 649 +f 574 575 651 650 +f 575 576 652 651 +f 576 577 653 652 +f 577 578 654 653 +f 578 579 655 654 +f 579 580 656 655 +f 580 581 657 656 +f 581 582 658 657 +f 582 583 659 658 +f 583 584 660 659 +f 584 585 661 660 +f 585 586 662 661 +f 586 587 663 662 +f 587 588 664 663 +f 588 589 665 664 +f 589 590 666 665 +f 590 591 667 666 +f 591 592 668 667 +f 592 593 669 668 +f 593 594 670 669 +f 594 595 671 670 +f 595 596 672 671 +f 596 597 673 672 +f 597 598 674 673 +f 598 599 675 674 +f 599 600 676 675 +f 600 601 677 676 +f 601 602 678 677 +f 602 603 679 678 +f 603 604 680 679 +f 604 605 681 680 +f 605 606 682 681 +f 606 607 683 682 +f 607 608 684 683 +f 608 609 685 684 +f 609 610 686 685 +f 610 535 611 686 +f 611 612 688 687 +f 612 613 689 688 +f 613 614 690 689 +f 614 615 691 690 +f 615 616 692 691 +f 616 617 693 692 +f 617 618 694 693 +f 618 619 695 694 +f 619 620 696 695 +f 620 621 697 696 +f 621 622 698 697 +f 622 623 699 698 +f 623 624 700 699 +f 624 625 701 700 +f 625 626 702 701 +f 626 627 703 702 +f 627 628 704 703 +f 628 629 705 704 +f 629 630 706 705 +f 630 631 707 706 +f 631 632 708 707 +f 632 633 709 708 +f 633 634 710 709 +f 634 635 711 710 +f 635 636 712 711 +f 636 637 713 712 +f 637 638 714 713 +f 638 639 715 714 +f 639 640 716 715 +f 640 641 717 716 +f 641 642 718 717 +f 642 643 719 718 +f 643 644 720 719 +f 644 645 721 720 +f 645 646 722 721 +f 646 647 723 722 +f 647 648 724 723 +f 648 649 725 724 +f 649 650 726 725 +f 650 651 727 726 +f 651 652 728 727 +f 652 653 729 728 +f 653 654 730 729 +f 654 655 731 730 +f 655 656 732 731 +f 656 657 733 732 +f 657 658 734 733 +f 658 659 735 734 +f 659 660 736 735 +f 660 661 737 736 +f 661 662 738 737 +f 662 663 739 738 +f 663 664 740 739 +f 664 665 741 740 +f 665 666 742 741 +f 666 667 743 742 +f 667 668 744 743 +f 668 669 745 744 +f 669 670 746 745 +f 670 671 747 746 +f 671 672 748 747 +f 672 673 749 748 +f 673 674 750 749 +f 674 675 751 750 +f 675 676 752 751 +f 676 677 753 752 +f 677 678 754 753 +f 678 679 755 754 +f 679 680 756 755 +f 680 681 757 756 +f 681 682 758 757 +f 682 683 759 758 +f 683 684 760 759 +f 684 685 761 760 +f 685 686 762 761 +f 686 611 687 762 +f 687 688 764 763 +f 688 689 765 764 +f 689 690 766 765 +f 690 691 767 766 +f 691 692 768 767 +f 692 693 769 768 +f 693 694 770 769 +f 694 695 771 770 +f 695 696 772 771 +f 696 697 773 772 +f 697 698 774 773 +f 698 699 775 774 +f 699 700 776 775 +f 700 701 777 776 +f 701 702 778 777 +f 702 703 779 778 +f 703 704 780 779 +f 704 705 781 780 +f 705 706 782 781 +f 706 707 783 782 +f 707 708 784 783 +f 708 709 785 784 +f 709 710 786 785 +f 710 711 787 786 +f 711 712 788 787 +f 712 713 789 788 +f 713 714 790 789 +f 714 715 791 790 +f 715 716 792 791 +f 716 717 793 792 +f 717 718 794 793 +f 718 719 795 794 +f 719 720 796 795 +f 720 721 797 796 +f 721 722 798 797 +f 722 723 799 798 +f 723 724 800 799 +f 724 725 801 800 +f 725 726 802 801 +f 726 727 803 802 +f 727 728 804 803 +f 728 729 805 804 +f 729 730 806 805 +f 730 731 807 806 +f 731 732 808 807 +f 732 733 809 808 +f 733 734 810 809 +f 734 735 811 810 +f 735 736 812 811 +f 736 737 813 812 +f 737 738 814 813 +f 738 739 815 814 +f 739 740 816 815 +f 740 741 817 816 +f 741 742 818 817 +f 742 743 819 818 +f 743 744 820 819 +f 744 745 821 820 +f 745 746 822 821 +f 746 747 823 822 +f 747 748 824 823 +f 748 749 825 824 +f 749 750 826 825 +f 750 751 827 826 +f 751 752 828 827 +f 752 753 829 828 +f 753 754 830 829 +f 754 755 831 830 +f 755 756 832 831 +f 756 757 833 832 +f 757 758 834 833 +f 758 759 835 834 +f 759 760 836 835 +f 760 761 837 836 +f 761 762 838 837 +f 762 687 763 838 +f 763 764 840 839 +f 764 765 841 840 +f 765 766 842 841 +f 766 767 843 842 +f 767 768 844 843 +f 768 769 845 844 +f 769 770 846 845 +f 770 771 847 846 +f 771 772 848 847 +f 772 773 849 848 +f 773 774 850 849 +f 774 775 851 850 +f 775 776 852 851 +f 776 777 853 852 +f 777 778 854 853 +f 778 779 855 854 +f 779 780 856 855 +f 780 781 857 856 +f 781 782 858 857 +f 782 783 859 858 +f 783 784 860 859 +f 784 785 861 860 +f 785 786 862 861 +f 786 787 863 862 +f 787 788 864 863 +f 788 789 865 864 +f 789 790 866 865 +f 790 791 867 866 +f 791 792 868 867 +f 792 793 869 868 +f 793 794 870 869 +f 794 795 871 870 +f 795 796 872 871 +f 796 797 873 872 +f 797 798 874 873 +f 798 799 875 874 +f 799 800 876 875 +f 800 801 877 876 +f 801 802 878 877 +f 802 803 879 878 +f 803 804 880 879 +f 804 805 881 880 +f 805 806 882 881 +f 806 807 883 882 +f 807 808 884 883 +f 808 809 885 884 +f 809 810 886 885 +f 810 811 887 886 +f 811 812 888 887 +f 812 813 889 888 +f 813 814 890 889 +f 814 815 891 890 +f 815 816 892 891 +f 816 817 893 892 +f 817 818 894 893 +f 818 819 895 894 +f 819 820 896 895 +f 820 821 897 896 +f 821 822 898 897 +f 822 823 899 898 +f 823 824 900 899 +f 824 825 901 900 +f 825 826 902 901 +f 826 827 903 902 +f 827 828 904 903 +f 828 829 905 904 +f 829 830 906 905 +f 830 831 907 906 +f 831 832 908 907 +f 832 833 909 908 +f 833 834 910 909 +f 834 835 911 910 +f 835 836 912 911 +f 836 837 913 912 +f 837 838 914 913 +f 838 763 839 914 +f 839 840 916 915 +f 840 841 917 916 +f 841 842 918 917 +f 842 843 919 918 +f 843 844 920 919 +f 844 845 921 920 +f 845 846 922 921 +f 846 847 923 922 +f 847 848 924 923 +f 848 849 925 924 +f 849 850 926 925 +f 850 851 927 926 +f 851 852 928 927 +f 852 853 929 928 +f 853 854 930 929 +f 854 855 931 930 +f 855 856 932 931 +f 856 857 933 932 +f 857 858 934 933 +f 858 859 935 934 +f 859 860 936 935 +f 860 861 937 936 +f 861 862 938 937 +f 862 863 939 938 +f 863 864 940 939 +f 864 865 941 940 +f 865 866 942 941 +f 866 867 943 942 +f 867 868 944 943 +f 868 869 945 944 +f 869 870 946 945 +f 870 871 947 946 +f 871 872 948 947 +f 872 873 949 948 +f 873 874 950 949 +f 874 875 951 950 +f 875 876 952 951 +f 876 877 953 952 +f 877 878 954 953 +f 878 879 955 954 +f 879 880 956 955 +f 880 881 957 956 +f 881 882 958 957 +f 882 883 959 958 +f 883 884 960 959 +f 884 885 961 960 +f 885 886 962 961 +f 886 887 963 962 +f 887 888 964 963 +f 888 889 965 964 +f 889 890 966 965 +f 890 891 967 966 +f 891 892 968 967 +f 892 893 969 968 +f 893 894 970 969 +f 894 895 971 970 +f 895 896 972 971 +f 896 897 973 972 +f 897 898 974 973 +f 898 899 975 974 +f 899 900 976 975 +f 900 901 977 976 +f 901 902 978 977 +f 902 903 979 978 +f 903 904 980 979 +f 904 905 981 980 +f 905 906 982 981 +f 906 907 983 982 +f 907 908 984 983 +f 908 909 985 984 +f 909 910 986 985 +f 910 911 987 986 +f 911 912 988 987 +f 912 913 989 988 +f 913 914 990 989 +f 914 839 915 990 +f 915 916 992 991 +f 916 917 993 992 +f 917 918 994 993 +f 918 919 995 994 +f 919 920 996 995 +f 920 921 997 996 +f 921 922 998 997 +f 922 923 999 998 +f 923 924 1000 999 +f 924 925 1001 1000 +f 925 926 1002 1001 +f 926 927 1003 1002 +f 927 928 1004 1003 +f 928 929 1005 1004 +f 929 930 1006 1005 +f 930 931 1007 1006 +f 931 932 1008 1007 +f 932 933 1009 1008 +f 933 934 1010 1009 +f 934 935 1011 1010 +f 935 936 1012 1011 +f 936 937 1013 1012 +f 937 938 1014 1013 +f 938 939 1015 1014 +f 939 940 1016 1015 +f 940 941 1017 1016 +f 941 942 1018 1017 +f 942 943 1019 1018 +f 943 944 1020 1019 +f 944 945 1021 1020 +f 945 946 1022 1021 +f 946 947 1023 1022 +f 947 948 1024 1023 +f 948 949 1025 1024 +f 949 950 1026 1025 +f 950 951 1027 1026 +f 951 952 1028 1027 +f 952 953 1029 1028 +f 953 954 1030 1029 +f 954 955 1031 1030 +f 955 956 1032 1031 +f 956 957 1033 1032 +f 957 958 1034 1033 +f 958 959 1035 1034 +f 959 960 1036 1035 +f 960 961 1037 1036 +f 961 962 1038 1037 +f 962 963 1039 1038 +f 963 964 1040 1039 +f 964 965 1041 1040 +f 965 966 1042 1041 +f 966 967 1043 1042 +f 967 968 1044 1043 +f 968 969 1045 1044 +f 969 970 1046 1045 +f 970 971 1047 1046 +f 971 972 1048 1047 +f 972 973 1049 1048 +f 973 974 1050 1049 +f 974 975 1051 1050 +f 975 976 1052 1051 +f 976 977 1053 1052 +f 977 978 1054 1053 +f 978 979 1055 1054 +f 979 980 1056 1055 +f 980 981 1057 1056 +f 981 982 1058 1057 +f 982 983 1059 1058 +f 983 984 1060 1059 +f 984 985 1061 1060 +f 985 986 1062 1061 +f 986 987 1063 1062 +f 987 988 1064 1063 +f 988 989 1065 1064 +f 989 990 1066 1065 +f 990 915 991 1066 +f 991 992 1068 1067 +f 992 993 1069 1068 +f 993 994 1070 1069 +f 994 995 1071 1070 +f 995 996 1072 1071 +f 996 997 1073 1072 +f 997 998 1074 1073 +f 998 999 1075 1074 +f 999 1000 1076 1075 +f 1000 1001 1077 1076 +f 1001 1002 1078 1077 +f 1002 1003 1079 1078 +f 1003 1004 1080 1079 +f 1004 1005 1081 1080 +f 1005 1006 1082 1081 +f 1006 1007 1083 1082 +f 1007 1008 1084 1083 +f 1008 1009 1085 1084 +f 1009 1010 1086 1085 +f 1010 1011 1087 1086 +f 1011 1012 1088 1087 +f 1012 1013 1089 1088 +f 1013 1014 1090 1089 +f 1014 1015 1091 1090 +f 1015 1016 1092 1091 +f 1016 1017 1093 1092 +f 1017 1018 1094 1093 +f 1018 1019 1095 1094 +f 1019 1020 1096 1095 +f 1020 1021 1097 1096 +f 1021 1022 1098 1097 +f 1022 1023 1099 1098 +f 1023 1024 1100 1099 +f 1024 1025 1101 1100 +f 1025 1026 1102 1101 +f 1026 1027 1103 1102 +f 1027 1028 1104 1103 +f 1028 1029 1105 1104 +f 1029 1030 1106 1105 +f 1030 1031 1107 1106 +f 1031 1032 1108 1107 +f 1032 1033 1109 1108 +f 1033 1034 1110 1109 +f 1034 1035 1111 1110 +f 1035 1036 1112 1111 +f 1036 1037 1113 1112 +f 1037 1038 1114 1113 +f 1038 1039 1115 1114 +f 1039 1040 1116 1115 +f 1040 1041 1117 1116 +f 1041 1042 1118 1117 +f 1042 1043 1119 1118 +f 1043 1044 1120 1119 +f 1044 1045 1121 1120 +f 1045 1046 1122 1121 +f 1046 1047 1123 1122 +f 1047 1048 1124 1123 +f 1048 1049 1125 1124 +f 1049 1050 1126 1125 +f 1050 1051 1127 1126 +f 1051 1052 1128 1127 +f 1052 1053 1129 1128 +f 1053 1054 1130 1129 +f 1054 1055 1131 1130 +f 1055 1056 1132 1131 +f 1056 1057 1133 1132 +f 1057 1058 1134 1133 +f 1058 1059 1135 1134 +f 1059 1060 1136 1135 +f 1060 1061 1137 1136 +f 1061 1062 1138 1137 +f 1062 1063 1139 1138 +f 1063 1064 1140 1139 +f 1064 1065 1141 1140 +f 1065 1066 1142 1141 +f 1066 991 1067 1142 +f 1067 1068 1144 1143 +f 1068 1069 1145 1144 +f 1069 1070 1146 1145 +f 1070 1071 1147 1146 +f 1071 1072 1148 1147 +f 1072 1073 1149 1148 +f 1073 1074 1150 1149 +f 1074 1075 1151 1150 +f 1075 1076 1152 1151 +f 1076 1077 1153 1152 +f 1077 1078 1154 1153 +f 1078 1079 1155 1154 +f 1079 1080 1156 1155 +f 1080 1081 1157 1156 +f 1081 1082 1158 1157 +f 1082 1083 1159 1158 +f 1083 1084 1160 1159 +f 1084 1085 1161 1160 +f 1085 1086 1162 1161 +f 1086 1087 1163 1162 +f 1087 1088 1164 1163 +f 1088 1089 1165 1164 +f 1089 1090 1166 1165 +f 1090 1091 1167 1166 +f 1091 1092 1168 1167 +f 1092 1093 1169 1168 +f 1093 1094 1170 1169 +f 1094 1095 1171 1170 +f 1095 1096 1172 1171 +f 1096 1097 1173 1172 +f 1097 1098 1174 1173 +f 1098 1099 1175 1174 +f 1099 1100 1176 1175 +f 1100 1101 1177 1176 +f 1101 1102 1178 1177 +f 1102 1103 1179 1178 +f 1103 1104 1180 1179 +f 1104 1105 1181 1180 +f 1105 1106 1182 1181 +f 1106 1107 1183 1182 +f 1107 1108 1184 1183 +f 1108 1109 1185 1184 +f 1109 1110 1186 1185 +f 1110 1111 1187 1186 +f 1111 1112 1188 1187 +f 1112 1113 1189 1188 +f 1113 1114 1190 1189 +f 1114 1115 1191 1190 +f 1115 1116 1192 1191 +f 1116 1117 1193 1192 +f 1117 1118 1194 1193 +f 1118 1119 1195 1194 +f 1119 1120 1196 1195 +f 1120 1121 1197 1196 +f 1121 1122 1198 1197 +f 1122 1123 1199 1198 +f 1123 1124 1200 1199 +f 1124 1125 1201 1200 +f 1125 1126 1202 1201 +f 1126 1127 1203 1202 +f 1127 1128 1204 1203 +f 1128 1129 1205 1204 +f 1129 1130 1206 1205 +f 1130 1131 1207 1206 +f 1131 1132 1208 1207 +f 1132 1133 1209 1208 +f 1133 1134 1210 1209 +f 1134 1135 1211 1210 +f 1135 1136 1212 1211 +f 1136 1137 1213 1212 +f 1137 1138 1214 1213 +f 1138 1139 1215 1214 +f 1139 1140 1216 1215 +f 1140 1141 1217 1216 +f 1141 1142 1218 1217 +f 1142 1067 1143 1218 +f 1143 1144 1220 1219 +f 1144 1145 1221 1220 +f 1145 1146 1222 1221 +f 1146 1147 1223 1222 +f 1147 1148 1224 1223 +f 1148 1149 1225 1224 +f 1149 1150 1226 1225 +f 1150 1151 1227 1226 +f 1151 1152 1228 1227 +f 1152 1153 1229 1228 +f 1153 1154 1230 1229 +f 1154 1155 1231 1230 +f 1155 1156 1232 1231 +f 1156 1157 1233 1232 +f 1157 1158 1234 1233 +f 1158 1159 1235 1234 +f 1159 1160 1236 1235 +f 1160 1161 1237 1236 +f 1161 1162 1238 1237 +f 1162 1163 1239 1238 +f 1163 1164 1240 1239 +f 1164 1165 1241 1240 +f 1165 1166 1242 1241 +f 1166 1167 1243 1242 +f 1167 1168 1244 1243 +f 1168 1169 1245 1244 +f 1169 1170 1246 1245 +f 1170 1171 1247 1246 +f 1171 1172 1248 1247 +f 1172 1173 1249 1248 +f 1173 1174 1250 1249 +f 1174 1175 1251 1250 +f 1175 1176 1252 1251 +f 1176 1177 1253 1252 +f 1177 1178 1254 1253 +f 1178 1179 1255 1254 +f 1179 1180 1256 1255 +f 1180 1181 1257 1256 +f 1181 1182 1258 1257 +f 1182 1183 1259 1258 +f 1183 1184 1260 1259 +f 1184 1185 1261 1260 +f 1185 1186 1262 1261 +f 1186 1187 1263 1262 +f 1187 1188 1264 1263 +f 1188 1189 1265 1264 +f 1189 1190 1266 1265 +f 1190 1191 1267 1266 +f 1191 1192 1268 1267 +f 1192 1193 1269 1268 +f 1193 1194 1270 1269 +f 1194 1195 1271 1270 +f 1195 1196 1272 1271 +f 1196 1197 1273 1272 +f 1197 1198 1274 1273 +f 1198 1199 1275 1274 +f 1199 1200 1276 1275 +f 1200 1201 1277 1276 +f 1201 1202 1278 1277 +f 1202 1203 1279 1278 +f 1203 1204 1280 1279 +f 1204 1205 1281 1280 +f 1205 1206 1282 1281 +f 1206 1207 1283 1282 +f 1207 1208 1284 1283 +f 1208 1209 1285 1284 +f 1209 1210 1286 1285 +f 1210 1211 1287 1286 +f 1211 1212 1288 1287 +f 1212 1213 1289 1288 +f 1213 1214 1290 1289 +f 1214 1215 1291 1290 +f 1215 1216 1292 1291 +f 1216 1217 1293 1292 +f 1217 1218 1294 1293 +f 1218 1143 1219 1294 +f 1219 1220 1296 1295 +f 1220 1221 1297 1296 +f 1221 1222 1298 1297 +f 1222 1223 1299 1298 +f 1223 1224 1300 1299 +f 1224 1225 1301 1300 +f 1225 1226 1302 1301 +f 1226 1227 1303 1302 +f 1227 1228 1304 1303 +f 1228 1229 1305 1304 +f 1229 1230 1306 1305 +f 1230 1231 1307 1306 +f 1231 1232 1308 1307 +f 1232 1233 1309 1308 +f 1233 1234 1310 1309 +f 1234 1235 1311 1310 +f 1235 1236 1312 1311 +f 1236 1237 1313 1312 +f 1237 1238 1314 1313 +f 1238 1239 1315 1314 +f 1239 1240 1316 1315 +f 1240 1241 1317 1316 +f 1241 1242 1318 1317 +f 1242 1243 1319 1318 +f 1243 1244 1320 1319 +f 1244 1245 1321 1320 +f 1245 1246 1322 1321 +f 1246 1247 1323 1322 +f 1247 1248 1324 1323 +f 1248 1249 1325 1324 +f 1249 1250 1326 1325 +f 1250 1251 1327 1326 +f 1251 1252 1328 1327 +f 1252 1253 1329 1328 +f 1253 1254 1330 1329 +f 1254 1255 1331 1330 +f 1255 1256 1332 1331 +f 1256 1257 1333 1332 +f 1257 1258 1334 1333 +f 1258 1259 1335 1334 +f 1259 1260 1336 1335 +f 1260 1261 1337 1336 +f 1261 1262 1338 1337 +f 1262 1263 1339 1338 +f 1263 1264 1340 1339 +f 1264 1265 1341 1340 +f 1265 1266 1342 1341 +f 1266 1267 1343 1342 +f 1267 1268 1344 1343 +f 1268 1269 1345 1344 +f 1269 1270 1346 1345 +f 1270 1271 1347 1346 +f 1271 1272 1348 1347 +f 1272 1273 1349 1348 +f 1273 1274 1350 1349 +f 1274 1275 1351 1350 +f 1275 1276 1352 1351 +f 1276 1277 1353 1352 +f 1277 1278 1354 1353 +f 1278 1279 1355 1354 +f 1279 1280 1356 1355 +f 1280 1281 1357 1356 +f 1281 1282 1358 1357 +f 1282 1283 1359 1358 +f 1283 1284 1360 1359 +f 1284 1285 1361 1360 +f 1285 1286 1362 1361 +f 1286 1287 1363 1362 +f 1287 1288 1364 1363 +f 1288 1289 1365 1364 +f 1289 1290 1366 1365 +f 1290 1291 1367 1366 +f 1291 1292 1368 1367 +f 1292 1293 1369 1368 +f 1293 1294 1370 1369 +f 1294 1219 1295 1370 +f 1295 1296 1372 1371 +f 1296 1297 1373 1372 +f 1297 1298 1374 1373 +f 1298 1299 1375 1374 +f 1299 1300 1376 1375 +f 1300 1301 1377 1376 +f 1301 1302 1378 1377 +f 1302 1303 1379 1378 +f 1303 1304 1380 1379 +f 1304 1305 1381 1380 +f 1305 1306 1382 1381 +f 1306 1307 1383 1382 +f 1307 1308 1384 1383 +f 1308 1309 1385 1384 +f 1309 1310 1386 1385 +f 1310 1311 1387 1386 +f 1311 1312 1388 1387 +f 1312 1313 1389 1388 +f 1313 1314 1390 1389 +f 1314 1315 1391 1390 +f 1315 1316 1392 1391 +f 1316 1317 1393 1392 +f 1317 1318 1394 1393 +f 1318 1319 1395 1394 +f 1319 1320 1396 1395 +f 1320 1321 1397 1396 +f 1321 1322 1398 1397 +f 1322 1323 1399 1398 +f 1323 1324 1400 1399 +f 1324 1325 1401 1400 +f 1325 1326 1402 1401 +f 1326 1327 1403 1402 +f 1327 1328 1404 1403 +f 1328 1329 1405 1404 +f 1329 1330 1406 1405 +f 1330 1331 1407 1406 +f 1331 1332 1408 1407 +f 1332 1333 1409 1408 +f 1333 1334 1410 1409 +f 1334 1335 1411 1410 +f 1335 1336 1412 1411 +f 1336 1337 1413 1412 +f 1337 1338 1414 1413 +f 1338 1339 1415 1414 +f 1339 1340 1416 1415 +f 1340 1341 1417 1416 +f 1341 1342 1418 1417 +f 1342 1343 1419 1418 +f 1343 1344 1420 1419 +f 1344 1345 1421 1420 +f 1345 1346 1422 1421 +f 1346 1347 1423 1422 +f 1347 1348 1424 1423 +f 1348 1349 1425 1424 +f 1349 1350 1426 1425 +f 1350 1351 1427 1426 +f 1351 1352 1428 1427 +f 1352 1353 1429 1428 +f 1353 1354 1430 1429 +f 1354 1355 1431 1430 +f 1355 1356 1432 1431 +f 1356 1357 1433 1432 +f 1357 1358 1434 1433 +f 1358 1359 1435 1434 +f 1359 1360 1436 1435 +f 1360 1361 1437 1436 +f 1361 1362 1438 1437 +f 1362 1363 1439 1438 +f 1363 1364 1440 1439 +f 1364 1365 1441 1440 +f 1365 1366 1442 1441 +f 1366 1367 1443 1442 +f 1367 1368 1444 1443 +f 1368 1369 1445 1444 +f 1369 1370 1446 1445 +f 1370 1295 1371 1446 +f 1371 1372 1448 1447 +f 1372 1373 1449 1448 +f 1373 1374 1450 1449 +f 1374 1375 1451 1450 +f 1375 1376 1452 1451 +f 1376 1377 1453 1452 +f 1377 1378 1454 1453 +f 1378 1379 1455 1454 +f 1379 1380 1456 1455 +f 1380 1381 1457 1456 +f 1381 1382 1458 1457 +f 1382 1383 1459 1458 +f 1383 1384 1460 1459 +f 1384 1385 1461 1460 +f 1385 1386 1462 1461 +f 1386 1387 1463 1462 +f 1387 1388 1464 1463 +f 1388 1389 1465 1464 +f 1389 1390 1466 1465 +f 1390 1391 1467 1466 +f 1391 1392 1468 1467 +f 1392 1393 1469 1468 +f 1393 1394 1470 1469 +f 1394 1395 1471 1470 +f 1395 1396 1472 1471 +f 1396 1397 1473 1472 +f 1397 1398 1474 1473 +f 1398 1399 1475 1474 +f 1399 1400 1476 1475 +f 1400 1401 1477 1476 +f 1401 1402 1478 1477 +f 1402 1403 1479 1478 +f 1403 1404 1480 1479 +f 1404 1405 1481 1480 +f 1405 1406 1482 1481 +f 1406 1407 1483 1482 +f 1407 1408 1484 1483 +f 1408 1409 1485 1484 +f 1409 1410 1486 1485 +f 1410 1411 1487 1486 +f 1411 1412 1488 1487 +f 1412 1413 1489 1488 +f 1413 1414 1490 1489 +f 1414 1415 1491 1490 +f 1415 1416 1492 1491 +f 1416 1417 1493 1492 +f 1417 1418 1494 1493 +f 1418 1419 1495 1494 +f 1419 1420 1496 1495 +f 1420 1421 1497 1496 +f 1421 1422 1498 1497 +f 1422 1423 1499 1498 +f 1423 1424 1500 1499 +f 1424 1425 1501 1500 +f 1425 1426 1502 1501 +f 1426 1427 1503 1502 +f 1427 1428 1504 1503 +f 1428 1429 1505 1504 +f 1429 1430 1506 1505 +f 1430 1431 1507 1506 +f 1431 1432 1508 1507 +f 1432 1433 1509 1508 +f 1433 1434 1510 1509 +f 1434 1435 1511 1510 +f 1435 1436 1512 1511 +f 1436 1437 1513 1512 +f 1437 1438 1514 1513 +f 1438 1439 1515 1514 +f 1439 1440 1516 1515 +f 1440 1441 1517 1516 +f 1441 1442 1518 1517 +f 1442 1443 1519 1518 +f 1443 1444 1520 1519 +f 1444 1445 1521 1520 +f 1445 1446 1522 1521 +f 1446 1371 1447 1522 +f 1447 1448 1524 1523 +f 1448 1449 1525 1524 +f 1449 1450 1526 1525 +f 1450 1451 1527 1526 +f 1451 1452 1528 1527 +f 1452 1453 1529 1528 +f 1453 1454 1530 1529 +f 1454 1455 1531 1530 +f 1455 1456 1532 1531 +f 1456 1457 1533 1532 +f 1457 1458 1534 1533 +f 1458 1459 1535 1534 +f 1459 1460 1536 1535 +f 1460 1461 1537 1536 +f 1461 1462 1538 1537 +f 1462 1463 1539 1538 +f 1463 1464 1540 1539 +f 1464 1465 1541 1540 +f 1465 1466 1542 1541 +f 1466 1467 1543 1542 +f 1467 1468 1544 1543 +f 1468 1469 1545 1544 +f 1469 1470 1546 1545 +f 1470 1471 1547 1546 +f 1471 1472 1548 1547 +f 1472 1473 1549 1548 +f 1473 1474 1550 1549 +f 1474 1475 1551 1550 +f 1475 1476 1552 1551 +f 1476 1477 1553 1552 +f 1477 1478 1554 1553 +f 1478 1479 1555 1554 +f 1479 1480 1556 1555 +f 1480 1481 1557 1556 +f 1481 1482 1558 1557 +f 1482 1483 1559 1558 +f 1483 1484 1560 1559 +f 1484 1485 1561 1560 +f 1485 1486 1562 1561 +f 1486 1487 1563 1562 +f 1487 1488 1564 1563 +f 1488 1489 1565 1564 +f 1489 1490 1566 1565 +f 1490 1491 1567 1566 +f 1491 1492 1568 1567 +f 1492 1493 1569 1568 +f 1493 1494 1570 1569 +f 1494 1495 1571 1570 +f 1495 1496 1572 1571 +f 1496 1497 1573 1572 +f 1497 1498 1574 1573 +f 1498 1499 1575 1574 +f 1499 1500 1576 1575 +f 1500 1501 1577 1576 +f 1501 1502 1578 1577 +f 1502 1503 1579 1578 +f 1503 1504 1580 1579 +f 1504 1505 1581 1580 +f 1505 1506 1582 1581 +f 1506 1507 1583 1582 +f 1507 1508 1584 1583 +f 1508 1509 1585 1584 +f 1509 1510 1586 1585 +f 1510 1511 1587 1586 +f 1511 1512 1588 1587 +f 1512 1513 1589 1588 +f 1513 1514 1590 1589 +f 1514 1515 1591 1590 +f 1515 1516 1592 1591 +f 1516 1517 1593 1592 +f 1517 1518 1594 1593 +f 1518 1519 1595 1594 +f 1519 1520 1596 1595 +f 1520 1521 1597 1596 +f 1521 1522 1598 1597 +f 1522 1447 1523 1598 +f 1523 1524 1600 1599 +f 1524 1525 1601 1600 +f 1525 1526 1602 1601 +f 1526 1527 1603 1602 +f 1527 1528 1604 1603 +f 1528 1529 1605 1604 +f 1529 1530 1606 1605 +f 1530 1531 1607 1606 +f 1531 1532 1608 1607 +f 1532 1533 1609 1608 +f 1533 1534 1610 1609 +f 1534 1535 1611 1610 +f 1535 1536 1612 1611 +f 1536 1537 1613 1612 +f 1537 1538 1614 1613 +f 1538 1539 1615 1614 +f 1539 1540 1616 1615 +f 1540 1541 1617 1616 +f 1541 1542 1618 1617 +f 1542 1543 1619 1618 +f 1543 1544 1620 1619 +f 1544 1545 1621 1620 +f 1545 1546 1622 1621 +f 1546 1547 1623 1622 +f 1547 1548 1624 1623 +f 1548 1549 1625 1624 +f 1549 1550 1626 1625 +f 1550 1551 1627 1626 +f 1551 1552 1628 1627 +f 1552 1553 1629 1628 +f 1553 1554 1630 1629 +f 1554 1555 1631 1630 +f 1555 1556 1632 1631 +f 1556 1557 1633 1632 +f 1557 1558 1634 1633 +f 1558 1559 1635 1634 +f 1559 1560 1636 1635 +f 1560 1561 1637 1636 +f 1561 1562 1638 1637 +f 1562 1563 1639 1638 +f 1563 1564 1640 1639 +f 1564 1565 1641 1640 +f 1565 1566 1642 1641 +f 1566 1567 1643 1642 +f 1567 1568 1644 1643 +f 1568 1569 1645 1644 +f 1569 1570 1646 1645 +f 1570 1571 1647 1646 +f 1571 1572 1648 1647 +f 1572 1573 1649 1648 +f 1573 1574 1650 1649 +f 1574 1575 1651 1650 +f 1575 1576 1652 1651 +f 1576 1577 1653 1652 +f 1577 1578 1654 1653 +f 1578 1579 1655 1654 +f 1579 1580 1656 1655 +f 1580 1581 1657 1656 +f 1581 1582 1658 1657 +f 1582 1583 1659 1658 +f 1583 1584 1660 1659 +f 1584 1585 1661 1660 +f 1585 1586 1662 1661 +f 1586 1587 1663 1662 +f 1587 1588 1664 1663 +f 1588 1589 1665 1664 +f 1589 1590 1666 1665 +f 1590 1591 1667 1666 +f 1591 1592 1668 1667 +f 1592 1593 1669 1668 +f 1593 1594 1670 1669 +f 1594 1595 1671 1670 +f 1595 1596 1672 1671 +f 1596 1597 1673 1672 +f 1597 1598 1674 1673 +f 1598 1523 1599 1674 +f 1599 1600 1676 1675 +f 1600 1601 1677 1676 +f 1601 1602 1678 1677 +f 1602 1603 1679 1678 +f 1603 1604 1680 1679 +f 1604 1605 1681 1680 +f 1605 1606 1682 1681 +f 1606 1607 1683 1682 +f 1607 1608 1684 1683 +f 1608 1609 1685 1684 +f 1609 1610 1686 1685 +f 1610 1611 1687 1686 +f 1611 1612 1688 1687 +f 1612 1613 1689 1688 +f 1613 1614 1690 1689 +f 1614 1615 1691 1690 +f 1615 1616 1692 1691 +f 1616 1617 1693 1692 +f 1617 1618 1694 1693 +f 1618 1619 1695 1694 +f 1619 1620 1696 1695 +f 1620 1621 1697 1696 +f 1621 1622 1698 1697 +f 1622 1623 1699 1698 +f 1623 1624 1700 1699 +f 1624 1625 1701 1700 +f 1625 1626 1702 1701 +f 1626 1627 1703 1702 +f 1627 1628 1704 1703 +f 1628 1629 1705 1704 +f 1629 1630 1706 1705 +f 1630 1631 1707 1706 +f 1631 1632 1708 1707 +f 1632 1633 1709 1708 +f 1633 1634 1710 1709 +f 1634 1635 1711 1710 +f 1635 1636 1712 1711 +f 1636 1637 1713 1712 +f 1637 1638 1714 1713 +f 1638 1639 1715 1714 +f 1639 1640 1716 1715 +f 1640 1641 1717 1716 +f 1641 1642 1718 1717 +f 1642 1643 1719 1718 +f 1643 1644 1720 1719 +f 1644 1645 1721 1720 +f 1645 1646 1722 1721 +f 1646 1647 1723 1722 +f 1647 1648 1724 1723 +f 1648 1649 1725 1724 +f 1649 1650 1726 1725 +f 1650 1651 1727 1726 +f 1651 1652 1728 1727 +f 1652 1653 1729 1728 +f 1653 1654 1730 1729 +f 1654 1655 1731 1730 +f 1655 1656 1732 1731 +f 1656 1657 1733 1732 +f 1657 1658 1734 1733 +f 1658 1659 1735 1734 +f 1659 1660 1736 1735 +f 1660 1661 1737 1736 +f 1661 1662 1738 1737 +f 1662 1663 1739 1738 +f 1663 1664 1740 1739 +f 1664 1665 1741 1740 +f 1665 1666 1742 1741 +f 1666 1667 1743 1742 +f 1667 1668 1744 1743 +f 1668 1669 1745 1744 +f 1669 1670 1746 1745 +f 1670 1671 1747 1746 +f 1671 1672 1748 1747 +f 1672 1673 1749 1748 +f 1673 1674 1750 1749 +f 1674 1599 1675 1750 +f 1675 1676 1752 1751 +f 1676 1677 1753 1752 +f 1677 1678 1754 1753 +f 1678 1679 1755 1754 +f 1679 1680 1756 1755 +f 1680 1681 1757 1756 +f 1681 1682 1758 1757 +f 1682 1683 1759 1758 +f 1683 1684 1760 1759 +f 1684 1685 1761 1760 +f 1685 1686 1762 1761 +f 1686 1687 1763 1762 +f 1687 1688 1764 1763 +f 1688 1689 1765 1764 +f 1689 1690 1766 1765 +f 1690 1691 1767 1766 +f 1691 1692 1768 1767 +f 1692 1693 1769 1768 +f 1693 1694 1770 1769 +f 1694 1695 1771 1770 +f 1695 1696 1772 1771 +f 1696 1697 1773 1772 +f 1697 1698 1774 1773 +f 1698 1699 1775 1774 +f 1699 1700 1776 1775 +f 1700 1701 1777 1776 +f 1701 1702 1778 1777 +f 1702 1703 1779 1778 +f 1703 1704 1780 1779 +f 1704 1705 1781 1780 +f 1705 1706 1782 1781 +f 1706 1707 1783 1782 +f 1707 1708 1784 1783 +f 1708 1709 1785 1784 +f 1709 1710 1786 1785 +f 1710 1711 1787 1786 +f 1711 1712 1788 1787 +f 1712 1713 1789 1788 +f 1713 1714 1790 1789 +f 1714 1715 1791 1790 +f 1715 1716 1792 1791 +f 1716 1717 1793 1792 +f 1717 1718 1794 1793 +f 1718 1719 1795 1794 +f 1719 1720 1796 1795 +f 1720 1721 1797 1796 +f 1721 1722 1798 1797 +f 1722 1723 1799 1798 +f 1723 1724 1800 1799 +f 1724 1725 1801 1800 +f 1725 1726 1802 1801 +f 1726 1727 1803 1802 +f 1727 1728 1804 1803 +f 1728 1729 1805 1804 +f 1729 1730 1806 1805 +f 1730 1731 1807 1806 +f 1731 1732 1808 1807 +f 1732 1733 1809 1808 +f 1733 1734 1810 1809 +f 1734 1735 1811 1810 +f 1735 1736 1812 1811 +f 1736 1737 1813 1812 +f 1737 1738 1814 1813 +f 1738 1739 1815 1814 +f 1739 1740 1816 1815 +f 1740 1741 1817 1816 +f 1741 1742 1818 1817 +f 1742 1743 1819 1818 +f 1743 1744 1820 1819 +f 1744 1745 1821 1820 +f 1745 1746 1822 1821 +f 1746 1747 1823 1822 +f 1747 1748 1824 1823 +f 1748 1749 1825 1824 +f 1749 1750 1826 1825 +f 1750 1675 1751 1826 +f 1751 1752 1828 1827 +f 1752 1753 1829 1828 +f 1753 1754 1830 1829 +f 1754 1755 1831 1830 +f 1755 1756 1832 1831 +f 1756 1757 1833 1832 +f 1757 1758 1834 1833 +f 1758 1759 1835 1834 +f 1759 1760 1836 1835 +f 1760 1761 1837 1836 +f 1761 1762 1838 1837 +f 1762 1763 1839 1838 +f 1763 1764 1840 1839 +f 1764 1765 1841 1840 +f 1765 1766 1842 1841 +f 1766 1767 1843 1842 +f 1767 1768 1844 1843 +f 1768 1769 1845 1844 +f 1769 1770 1846 1845 +f 1770 1771 1847 1846 +f 1771 1772 1848 1847 +f 1772 1773 1849 1848 +f 1773 1774 1850 1849 +f 1774 1775 1851 1850 +f 1775 1776 1852 1851 +f 1776 1777 1853 1852 +f 1777 1778 1854 1853 +f 1778 1779 1855 1854 +f 1779 1780 1856 1855 +f 1780 1781 1857 1856 +f 1781 1782 1858 1857 +f 1782 1783 1859 1858 +f 1783 1784 1860 1859 +f 1784 1785 1861 1860 +f 1785 1786 1862 1861 +f 1786 1787 1863 1862 +f 1787 1788 1864 1863 +f 1788 1789 1865 1864 +f 1789 1790 1866 1865 +f 1790 1791 1867 1866 +f 1791 1792 1868 1867 +f 1792 1793 1869 1868 +f 1793 1794 1870 1869 +f 1794 1795 1871 1870 +f 1795 1796 1872 1871 +f 1796 1797 1873 1872 +f 1797 1798 1874 1873 +f 1798 1799 1875 1874 +f 1799 1800 1876 1875 +f 1800 1801 1877 1876 +f 1801 1802 1878 1877 +f 1802 1803 1879 1878 +f 1803 1804 1880 1879 +f 1804 1805 1881 1880 +f 1805 1806 1882 1881 +f 1806 1807 1883 1882 +f 1807 1808 1884 1883 +f 1808 1809 1885 1884 +f 1809 1810 1886 1885 +f 1810 1811 1887 1886 +f 1811 1812 1888 1887 +f 1812 1813 1889 1888 +f 1813 1814 1890 1889 +f 1814 1815 1891 1890 +f 1815 1816 1892 1891 +f 1816 1817 1893 1892 +f 1817 1818 1894 1893 +f 1818 1819 1895 1894 +f 1819 1820 1896 1895 +f 1820 1821 1897 1896 +f 1821 1822 1898 1897 +f 1822 1823 1899 1898 +f 1823 1824 1900 1899 +f 1824 1825 1901 1900 +f 1825 1826 1902 1901 +f 1826 1751 1827 1902 +f 1827 1828 1904 1903 +f 1828 1829 1905 1904 +f 1829 1830 1906 1905 +f 1830 1831 1907 1906 +f 1831 1832 1908 1907 +f 1832 1833 1909 1908 +f 1833 1834 1910 1909 +f 1834 1835 1911 1910 +f 1835 1836 1912 1911 +f 1836 1837 1913 1912 +f 1837 1838 1914 1913 +f 1838 1839 1915 1914 +f 1839 1840 1916 1915 +f 1840 1841 1917 1916 +f 1841 1842 1918 1917 +f 1842 1843 1919 1918 +f 1843 1844 1920 1919 +f 1844 1845 1921 1920 +f 1845 1846 1922 1921 +f 1846 1847 1923 1922 +f 1847 1848 1924 1923 +f 1848 1849 1925 1924 +f 1849 1850 1926 1925 +f 1850 1851 1927 1926 +f 1851 1852 1928 1927 +f 1852 1853 1929 1928 +f 1853 1854 1930 1929 +f 1854 1855 1931 1930 +f 1855 1856 1932 1931 +f 1856 1857 1933 1932 +f 1857 1858 1934 1933 +f 1858 1859 1935 1934 +f 1859 1860 1936 1935 +f 1860 1861 1937 1936 +f 1861 1862 1938 1937 +f 1862 1863 1939 1938 +f 1863 1864 1940 1939 +f 1864 1865 1941 1940 +f 1865 1866 1942 1941 +f 1866 1867 1943 1942 +f 1867 1868 1944 1943 +f 1868 1869 1945 1944 +f 1869 1870 1946 1945 +f 1870 1871 1947 1946 +f 1871 1872 1948 1947 +f 1872 1873 1949 1948 +f 1873 1874 1950 1949 +f 1874 1875 1951 1950 +f 1875 1876 1952 1951 +f 1876 1877 1953 1952 +f 1877 1878 1954 1953 +f 1878 1879 1955 1954 +f 1879 1880 1956 1955 +f 1880 1881 1957 1956 +f 1881 1882 1958 1957 +f 1882 1883 1959 1958 +f 1883 1884 1960 1959 +f 1884 1885 1961 1960 +f 1885 1886 1962 1961 +f 1886 1887 1963 1962 +f 1887 1888 1964 1963 +f 1888 1889 1965 1964 +f 1889 1890 1966 1965 +f 1890 1891 1967 1966 +f 1891 1892 1968 1967 +f 1892 1893 1969 1968 +f 1893 1894 1970 1969 +f 1894 1895 1971 1970 +f 1895 1896 1972 1971 +f 1896 1897 1973 1972 +f 1897 1898 1974 1973 +f 1898 1899 1975 1974 +f 1899 1900 1976 1975 +f 1900 1901 1977 1976 +f 1901 1902 1978 1977 +f 1902 1827 1903 1978 +f 1903 1904 1980 1979 +f 1904 1905 1981 1980 +f 1905 1906 1982 1981 +f 1906 1907 1983 1982 +f 1907 1908 1984 1983 +f 1908 1909 1985 1984 +f 1909 1910 1986 1985 +f 1910 1911 1987 1986 +f 1911 1912 1988 1987 +f 1912 1913 1989 1988 +f 1913 1914 1990 1989 +f 1914 1915 1991 1990 +f 1915 1916 1992 1991 +f 1916 1917 1993 1992 +f 1917 1918 1994 1993 +f 1918 1919 1995 1994 +f 1919 1920 1996 1995 +f 1920 1921 1997 1996 +f 1921 1922 1998 1997 +f 1922 1923 1999 1998 +f 1923 1924 2000 1999 +f 1924 1925 2001 2000 +f 1925 1926 2002 2001 +f 1926 1927 2003 2002 +f 1927 1928 2004 2003 +f 1928 1929 2005 2004 +f 1929 1930 2006 2005 +f 1930 1931 2007 2006 +f 1931 1932 2008 2007 +f 1932 1933 2009 2008 +f 1933 1934 2010 2009 +f 1934 1935 2011 2010 +f 1935 1936 2012 2011 +f 1936 1937 2013 2012 +f 1937 1938 2014 2013 +f 1938 1939 2015 2014 +f 1939 1940 2016 2015 +f 1940 1941 2017 2016 +f 1941 1942 2018 2017 +f 1942 1943 2019 2018 +f 1943 1944 2020 2019 +f 1944 1945 2021 2020 +f 1945 1946 2022 2021 +f 1946 1947 2023 2022 +f 1947 1948 2024 2023 +f 1948 1949 2025 2024 +f 1949 1950 2026 2025 +f 1950 1951 2027 2026 +f 1951 1952 2028 2027 +f 1952 1953 2029 2028 +f 1953 1954 2030 2029 +f 1954 1955 2031 2030 +f 1955 1956 2032 2031 +f 1956 1957 2033 2032 +f 1957 1958 2034 2033 +f 1958 1959 2035 2034 +f 1959 1960 2036 2035 +f 1960 1961 2037 2036 +f 1961 1962 2038 2037 +f 1962 1963 2039 2038 +f 1963 1964 2040 2039 +f 1964 1965 2041 2040 +f 1965 1966 2042 2041 +f 1966 1967 2043 2042 +f 1967 1968 2044 2043 +f 1968 1969 2045 2044 +f 1969 1970 2046 2045 +f 1970 1971 2047 2046 +f 1971 1972 2048 2047 +f 1972 1973 2049 2048 +f 1973 1974 2050 2049 +f 1974 1975 2051 2050 +f 1975 1976 2052 2051 +f 1976 1977 2053 2052 +f 1977 1978 2054 2053 +f 1978 1903 1979 2054 +f 1979 1980 2056 2055 +f 1980 1981 2057 2056 +f 1981 1982 2058 2057 +f 1982 1983 2059 2058 +f 1983 1984 2060 2059 +f 1984 1985 2061 2060 +f 1985 1986 2062 2061 +f 1986 1987 2063 2062 +f 1987 1988 2064 2063 +f 1988 1989 2065 2064 +f 1989 1990 2066 2065 +f 1990 1991 2067 2066 +f 1991 1992 2068 2067 +f 1992 1993 2069 2068 +f 1993 1994 2070 2069 +f 1994 1995 2071 2070 +f 1995 1996 2072 2071 +f 1996 1997 2073 2072 +f 1997 1998 2074 2073 +f 1998 1999 2075 2074 +f 1999 2000 2076 2075 +f 2000 2001 2077 2076 +f 2001 2002 2078 2077 +f 2002 2003 2079 2078 +f 2003 2004 2080 2079 +f 2004 2005 2081 2080 +f 2005 2006 2082 2081 +f 2006 2007 2083 2082 +f 2007 2008 2084 2083 +f 2008 2009 2085 2084 +f 2009 2010 2086 2085 +f 2010 2011 2087 2086 +f 2011 2012 2088 2087 +f 2012 2013 2089 2088 +f 2013 2014 2090 2089 +f 2014 2015 2091 2090 +f 2015 2016 2092 2091 +f 2016 2017 2093 2092 +f 2017 2018 2094 2093 +f 2018 2019 2095 2094 +f 2019 2020 2096 2095 +f 2020 2021 2097 2096 +f 2021 2022 2098 2097 +f 2022 2023 2099 2098 +f 2023 2024 2100 2099 +f 2024 2025 2101 2100 +f 2025 2026 2102 2101 +f 2026 2027 2103 2102 +f 2027 2028 2104 2103 +f 2028 2029 2105 2104 +f 2029 2030 2106 2105 +f 2030 2031 2107 2106 +f 2031 2032 2108 2107 +f 2032 2033 2109 2108 +f 2033 2034 2110 2109 +f 2034 2035 2111 2110 +f 2035 2036 2112 2111 +f 2036 2037 2113 2112 +f 2037 2038 2114 2113 +f 2038 2039 2115 2114 +f 2039 2040 2116 2115 +f 2040 2041 2117 2116 +f 2041 2042 2118 2117 +f 2042 2043 2119 2118 +f 2043 2044 2120 2119 +f 2044 2045 2121 2120 +f 2045 2046 2122 2121 +f 2046 2047 2123 2122 +f 2047 2048 2124 2123 +f 2048 2049 2125 2124 +f 2049 2050 2126 2125 +f 2050 2051 2127 2126 +f 2051 2052 2128 2127 +f 2052 2053 2129 2128 +f 2053 2054 2130 2129 +f 2054 1979 2055 2130 +f 2055 2056 2132 2131 +f 2056 2057 2133 2132 +f 2057 2058 2134 2133 +f 2058 2059 2135 2134 +f 2059 2060 2136 2135 +f 2060 2061 2137 2136 +f 2061 2062 2138 2137 +f 2062 2063 2139 2138 +f 2063 2064 2140 2139 +f 2064 2065 2141 2140 +f 2065 2066 2142 2141 +f 2066 2067 2143 2142 +f 2067 2068 2144 2143 +f 2068 2069 2145 2144 +f 2069 2070 2146 2145 +f 2070 2071 2147 2146 +f 2071 2072 2148 2147 +f 2072 2073 2149 2148 +f 2073 2074 2150 2149 +f 2074 2075 2151 2150 +f 2075 2076 2152 2151 +f 2076 2077 2153 2152 +f 2077 2078 2154 2153 +f 2078 2079 2155 2154 +f 2079 2080 2156 2155 +f 2080 2081 2157 2156 +f 2081 2082 2158 2157 +f 2082 2083 2159 2158 +f 2083 2084 2160 2159 +f 2084 2085 2161 2160 +f 2085 2086 2162 2161 +f 2086 2087 2163 2162 +f 2087 2088 2164 2163 +f 2088 2089 2165 2164 +f 2089 2090 2166 2165 +f 2090 2091 2167 2166 +f 2091 2092 2168 2167 +f 2092 2093 2169 2168 +f 2093 2094 2170 2169 +f 2094 2095 2171 2170 +f 2095 2096 2172 2171 +f 2096 2097 2173 2172 +f 2097 2098 2174 2173 +f 2098 2099 2175 2174 +f 2099 2100 2176 2175 +f 2100 2101 2177 2176 +f 2101 2102 2178 2177 +f 2102 2103 2179 2178 +f 2103 2104 2180 2179 +f 2104 2105 2181 2180 +f 2105 2106 2182 2181 +f 2106 2107 2183 2182 +f 2107 2108 2184 2183 +f 2108 2109 2185 2184 +f 2109 2110 2186 2185 +f 2110 2111 2187 2186 +f 2111 2112 2188 2187 +f 2112 2113 2189 2188 +f 2113 2114 2190 2189 +f 2114 2115 2191 2190 +f 2115 2116 2192 2191 +f 2116 2117 2193 2192 +f 2117 2118 2194 2193 +f 2118 2119 2195 2194 +f 2119 2120 2196 2195 +f 2120 2121 2197 2196 +f 2121 2122 2198 2197 +f 2122 2123 2199 2198 +f 2123 2124 2200 2199 +f 2124 2125 2201 2200 +f 2125 2126 2202 2201 +f 2126 2127 2203 2202 +f 2127 2128 2204 2203 +f 2128 2129 2205 2204 +f 2129 2130 2206 2205 +f 2130 2055 2131 2206 +f 2131 2132 2208 2207 +f 2132 2133 2209 2208 +f 2133 2134 2210 2209 +f 2134 2135 2211 2210 +f 2135 2136 2212 2211 +f 2136 2137 2213 2212 +f 2137 2138 2214 2213 +f 2138 2139 2215 2214 +f 2139 2140 2216 2215 +f 2140 2141 2217 2216 +f 2141 2142 2218 2217 +f 2142 2143 2219 2218 +f 2143 2144 2220 2219 +f 2144 2145 2221 2220 +f 2145 2146 2222 2221 +f 2146 2147 2223 2222 +f 2147 2148 2224 2223 +f 2148 2149 2225 2224 +f 2149 2150 2226 2225 +f 2150 2151 2227 2226 +f 2151 2152 2228 2227 +f 2152 2153 2229 2228 +f 2153 2154 2230 2229 +f 2154 2155 2231 2230 +f 2155 2156 2232 2231 +f 2156 2157 2233 2232 +f 2157 2158 2234 2233 +f 2158 2159 2235 2234 +f 2159 2160 2236 2235 +f 2160 2161 2237 2236 +f 2161 2162 2238 2237 +f 2162 2163 2239 2238 +f 2163 2164 2240 2239 +f 2164 2165 2241 2240 +f 2165 2166 2242 2241 +f 2166 2167 2243 2242 +f 2167 2168 2244 2243 +f 2168 2169 2245 2244 +f 2169 2170 2246 2245 +f 2170 2171 2247 2246 +f 2171 2172 2248 2247 +f 2172 2173 2249 2248 +f 2173 2174 2250 2249 +f 2174 2175 2251 2250 +f 2175 2176 2252 2251 +f 2176 2177 2253 2252 +f 2177 2178 2254 2253 +f 2178 2179 2255 2254 +f 2179 2180 2256 2255 +f 2180 2181 2257 2256 +f 2181 2182 2258 2257 +f 2182 2183 2259 2258 +f 2183 2184 2260 2259 +f 2184 2185 2261 2260 +f 2185 2186 2262 2261 +f 2186 2187 2263 2262 +f 2187 2188 2264 2263 +f 2188 2189 2265 2264 +f 2189 2190 2266 2265 +f 2190 2191 2267 2266 +f 2191 2192 2268 2267 +f 2192 2193 2269 2268 +f 2193 2194 2270 2269 +f 2194 2195 2271 2270 +f 2195 2196 2272 2271 +f 2196 2197 2273 2272 +f 2197 2198 2274 2273 +f 2198 2199 2275 2274 +f 2199 2200 2276 2275 +f 2200 2201 2277 2276 +f 2201 2202 2278 2277 +f 2202 2203 2279 2278 +f 2203 2204 2280 2279 +f 2204 2205 2281 2280 +f 2205 2206 2282 2281 +f 2206 2131 2207 2282 +f 2207 2208 2284 2283 +f 2208 2209 2285 2284 +f 2209 2210 2286 2285 +f 2210 2211 2287 2286 +f 2211 2212 2288 2287 +f 2212 2213 2289 2288 +f 2213 2214 2290 2289 +f 2214 2215 2291 2290 +f 2215 2216 2292 2291 +f 2216 2217 2293 2292 +f 2217 2218 2294 2293 +f 2218 2219 2295 2294 +f 2219 2220 2296 2295 +f 2220 2221 2297 2296 +f 2221 2222 2298 2297 +f 2222 2223 2299 2298 +f 2223 2224 2300 2299 +f 2224 2225 2301 2300 +f 2225 2226 2302 2301 +f 2226 2227 2303 2302 +f 2227 2228 2304 2303 +f 2228 2229 2305 2304 +f 2229 2230 2306 2305 +f 2230 2231 2307 2306 +f 2231 2232 2308 2307 +f 2232 2233 2309 2308 +f 2233 2234 2310 2309 +f 2234 2235 2311 2310 +f 2235 2236 2312 2311 +f 2236 2237 2313 2312 +f 2237 2238 2314 2313 +f 2238 2239 2315 2314 +f 2239 2240 2316 2315 +f 2240 2241 2317 2316 +f 2241 2242 2318 2317 +f 2242 2243 2319 2318 +f 2243 2244 2320 2319 +f 2244 2245 2321 2320 +f 2245 2246 2322 2321 +f 2246 2247 2323 2322 +f 2247 2248 2324 2323 +f 2248 2249 2325 2324 +f 2249 2250 2326 2325 +f 2250 2251 2327 2326 +f 2251 2252 2328 2327 +f 2252 2253 2329 2328 +f 2253 2254 2330 2329 +f 2254 2255 2331 2330 +f 2255 2256 2332 2331 +f 2256 2257 2333 2332 +f 2257 2258 2334 2333 +f 2258 2259 2335 2334 +f 2259 2260 2336 2335 +f 2260 2261 2337 2336 +f 2261 2262 2338 2337 +f 2262 2263 2339 2338 +f 2263 2264 2340 2339 +f 2264 2265 2341 2340 +f 2265 2266 2342 2341 +f 2266 2267 2343 2342 +f 2267 2268 2344 2343 +f 2268 2269 2345 2344 +f 2269 2270 2346 2345 +f 2270 2271 2347 2346 +f 2271 2272 2348 2347 +f 2272 2273 2349 2348 +f 2273 2274 2350 2349 +f 2274 2275 2351 2350 +f 2275 2276 2352 2351 +f 2276 2277 2353 2352 +f 2277 2278 2354 2353 +f 2278 2279 2355 2354 +f 2279 2280 2356 2355 +f 2280 2281 2357 2356 +f 2281 2282 2358 2357 +f 2282 2207 2283 2358 +f 2283 2284 2360 2359 +f 2284 2285 2361 2360 +f 2285 2286 2362 2361 +f 2286 2287 2363 2362 +f 2287 2288 2364 2363 +f 2288 2289 2365 2364 +f 2289 2290 2366 2365 +f 2290 2291 2367 2366 +f 2291 2292 2368 2367 +f 2292 2293 2369 2368 +f 2293 2294 2370 2369 +f 2294 2295 2371 2370 +f 2295 2296 2372 2371 +f 2296 2297 2373 2372 +f 2297 2298 2374 2373 +f 2298 2299 2375 2374 +f 2299 2300 2376 2375 +f 2300 2301 2377 2376 +f 2301 2302 2378 2377 +f 2302 2303 2379 2378 +f 2303 2304 2380 2379 +f 2304 2305 2381 2380 +f 2305 2306 2382 2381 +f 2306 2307 2383 2382 +f 2307 2308 2384 2383 +f 2308 2309 2385 2384 +f 2309 2310 2386 2385 +f 2310 2311 2387 2386 +f 2311 2312 2388 2387 +f 2312 2313 2389 2388 +f 2313 2314 2390 2389 +f 2314 2315 2391 2390 +f 2315 2316 2392 2391 +f 2316 2317 2393 2392 +f 2317 2318 2394 2393 +f 2318 2319 2395 2394 +f 2319 2320 2396 2395 +f 2320 2321 2397 2396 +f 2321 2322 2398 2397 +f 2322 2323 2399 2398 +f 2323 2324 2400 2399 +f 2324 2325 2401 2400 +f 2325 2326 2402 2401 +f 2326 2327 2403 2402 +f 2327 2328 2404 2403 +f 2328 2329 2405 2404 +f 2329 2330 2406 2405 +f 2330 2331 2407 2406 +f 2331 2332 2408 2407 +f 2332 2333 2409 2408 +f 2333 2334 2410 2409 +f 2334 2335 2411 2410 +f 2335 2336 2412 2411 +f 2336 2337 2413 2412 +f 2337 2338 2414 2413 +f 2338 2339 2415 2414 +f 2339 2340 2416 2415 +f 2340 2341 2417 2416 +f 2341 2342 2418 2417 +f 2342 2343 2419 2418 +f 2343 2344 2420 2419 +f 2344 2345 2421 2420 +f 2345 2346 2422 2421 +f 2346 2347 2423 2422 +f 2347 2348 2424 2423 +f 2348 2349 2425 2424 +f 2349 2350 2426 2425 +f 2350 2351 2427 2426 +f 2351 2352 2428 2427 +f 2352 2353 2429 2428 +f 2353 2354 2430 2429 +f 2354 2355 2431 2430 +f 2355 2356 2432 2431 +f 2356 2357 2433 2432 +f 2357 2358 2434 2433 +f 2358 2283 2359 2434 +f 2359 2360 2436 2435 +f 2360 2361 2437 2436 +f 2361 2362 2438 2437 +f 2362 2363 2439 2438 +f 2363 2364 2440 2439 +f 2364 2365 2441 2440 +f 2365 2366 2442 2441 +f 2366 2367 2443 2442 +f 2367 2368 2444 2443 +f 2368 2369 2445 2444 +f 2369 2370 2446 2445 +f 2370 2371 2447 2446 +f 2371 2372 2448 2447 +f 2372 2373 2449 2448 +f 2373 2374 2450 2449 +f 2374 2375 2451 2450 +f 2375 2376 2452 2451 +f 2376 2377 2453 2452 +f 2377 2378 2454 2453 +f 2378 2379 2455 2454 +f 2379 2380 2456 2455 +f 2380 2381 2457 2456 +f 2381 2382 2458 2457 +f 2382 2383 2459 2458 +f 2383 2384 2460 2459 +f 2384 2385 2461 2460 +f 2385 2386 2462 2461 +f 2386 2387 2463 2462 +f 2387 2388 2464 2463 +f 2388 2389 2465 2464 +f 2389 2390 2466 2465 +f 2390 2391 2467 2466 +f 2391 2392 2468 2467 +f 2392 2393 2469 2468 +f 2393 2394 2470 2469 +f 2394 2395 2471 2470 +f 2395 2396 2472 2471 +f 2396 2397 2473 2472 +f 2397 2398 2474 2473 +f 2398 2399 2475 2474 +f 2399 2400 2476 2475 +f 2400 2401 2477 2476 +f 2401 2402 2478 2477 +f 2402 2403 2479 2478 +f 2403 2404 2480 2479 +f 2404 2405 2481 2480 +f 2405 2406 2482 2481 +f 2406 2407 2483 2482 +f 2407 2408 2484 2483 +f 2408 2409 2485 2484 +f 2409 2410 2486 2485 +f 2410 2411 2487 2486 +f 2411 2412 2488 2487 +f 2412 2413 2489 2488 +f 2413 2414 2490 2489 +f 2414 2415 2491 2490 +f 2415 2416 2492 2491 +f 2416 2417 2493 2492 +f 2417 2418 2494 2493 +f 2418 2419 2495 2494 +f 2419 2420 2496 2495 +f 2420 2421 2497 2496 +f 2421 2422 2498 2497 +f 2422 2423 2499 2498 +f 2423 2424 2500 2499 +f 2424 2425 2501 2500 +f 2425 2426 2502 2501 +f 2426 2427 2503 2502 +f 2427 2428 2504 2503 +f 2428 2429 2505 2504 +f 2429 2430 2506 2505 +f 2430 2431 2507 2506 +f 2431 2432 2508 2507 +f 2432 2433 2509 2508 +f 2433 2434 2510 2509 +f 2434 2359 2435 2510 +f 2435 2436 2512 2511 +f 2436 2437 2513 2512 +f 2437 2438 2514 2513 +f 2438 2439 2515 2514 +f 2439 2440 2516 2515 +f 2440 2441 2517 2516 +f 2441 2442 2518 2517 +f 2442 2443 2519 2518 +f 2443 2444 2520 2519 +f 2444 2445 2521 2520 +f 2445 2446 2522 2521 +f 2446 2447 2523 2522 +f 2447 2448 2524 2523 +f 2448 2449 2525 2524 +f 2449 2450 2526 2525 +f 2450 2451 2527 2526 +f 2451 2452 2528 2527 +f 2452 2453 2529 2528 +f 2453 2454 2530 2529 +f 2454 2455 2531 2530 +f 2455 2456 2532 2531 +f 2456 2457 2533 2532 +f 2457 2458 2534 2533 +f 2458 2459 2535 2534 +f 2459 2460 2536 2535 +f 2460 2461 2537 2536 +f 2461 2462 2538 2537 +f 2462 2463 2539 2538 +f 2463 2464 2540 2539 +f 2464 2465 2541 2540 +f 2465 2466 2542 2541 +f 2466 2467 2543 2542 +f 2467 2468 2544 2543 +f 2468 2469 2545 2544 +f 2469 2470 2546 2545 +f 2470 2471 2547 2546 +f 2471 2472 2548 2547 +f 2472 2473 2549 2548 +f 2473 2474 2550 2549 +f 2474 2475 2551 2550 +f 2475 2476 2552 2551 +f 2476 2477 2553 2552 +f 2477 2478 2554 2553 +f 2478 2479 2555 2554 +f 2479 2480 2556 2555 +f 2480 2481 2557 2556 +f 2481 2482 2558 2557 +f 2482 2483 2559 2558 +f 2483 2484 2560 2559 +f 2484 2485 2561 2560 +f 2485 2486 2562 2561 +f 2486 2487 2563 2562 +f 2487 2488 2564 2563 +f 2488 2489 2565 2564 +f 2489 2490 2566 2565 +f 2490 2491 2567 2566 +f 2491 2492 2568 2567 +f 2492 2493 2569 2568 +f 2493 2494 2570 2569 +f 2494 2495 2571 2570 +f 2495 2496 2572 2571 +f 2496 2497 2573 2572 +f 2497 2498 2574 2573 +f 2498 2499 2575 2574 +f 2499 2500 2576 2575 +f 2500 2501 2577 2576 +f 2501 2502 2578 2577 +f 2502 2503 2579 2578 +f 2503 2504 2580 2579 +f 2504 2505 2581 2580 +f 2505 2506 2582 2581 +f 2506 2507 2583 2582 +f 2507 2508 2584 2583 +f 2508 2509 2585 2584 +f 2509 2510 2586 2585 +f 2510 2435 2511 2586 +f 2511 2512 2588 2587 +f 2512 2513 2589 2588 +f 2513 2514 2590 2589 +f 2514 2515 2591 2590 +f 2515 2516 2592 2591 +f 2516 2517 2593 2592 +f 2517 2518 2594 2593 +f 2518 2519 2595 2594 +f 2519 2520 2596 2595 +f 2520 2521 2597 2596 +f 2521 2522 2598 2597 +f 2522 2523 2599 2598 +f 2523 2524 2600 2599 +f 2524 2525 2601 2600 +f 2525 2526 2602 2601 +f 2526 2527 2603 2602 +f 2527 2528 2604 2603 +f 2528 2529 2605 2604 +f 2529 2530 2606 2605 +f 2530 2531 2607 2606 +f 2531 2532 2608 2607 +f 2532 2533 2609 2608 +f 2533 2534 2610 2609 +f 2534 2535 2611 2610 +f 2535 2536 2612 2611 +f 2536 2537 2613 2612 +f 2537 2538 2614 2613 +f 2538 2539 2615 2614 +f 2539 2540 2616 2615 +f 2540 2541 2617 2616 +f 2541 2542 2618 2617 +f 2542 2543 2619 2618 +f 2543 2544 2620 2619 +f 2544 2545 2621 2620 +f 2545 2546 2622 2621 +f 2546 2547 2623 2622 +f 2547 2548 2624 2623 +f 2548 2549 2625 2624 +f 2549 2550 2626 2625 +f 2550 2551 2627 2626 +f 2551 2552 2628 2627 +f 2552 2553 2629 2628 +f 2553 2554 2630 2629 +f 2554 2555 2631 2630 +f 2555 2556 2632 2631 +f 2556 2557 2633 2632 +f 2557 2558 2634 2633 +f 2558 2559 2635 2634 +f 2559 2560 2636 2635 +f 2560 2561 2637 2636 +f 2561 2562 2638 2637 +f 2562 2563 2639 2638 +f 2563 2564 2640 2639 +f 2564 2565 2641 2640 +f 2565 2566 2642 2641 +f 2566 2567 2643 2642 +f 2567 2568 2644 2643 +f 2568 2569 2645 2644 +f 2569 2570 2646 2645 +f 2570 2571 2647 2646 +f 2571 2572 2648 2647 +f 2572 2573 2649 2648 +f 2573 2574 2650 2649 +f 2574 2575 2651 2650 +f 2575 2576 2652 2651 +f 2576 2577 2653 2652 +f 2577 2578 2654 2653 +f 2578 2579 2655 2654 +f 2579 2580 2656 2655 +f 2580 2581 2657 2656 +f 2581 2582 2658 2657 +f 2582 2583 2659 2658 +f 2583 2584 2660 2659 +f 2584 2585 2661 2660 +f 2585 2586 2662 2661 +f 2586 2511 2587 2662 +f 2587 2588 2664 2663 +f 2588 2589 2665 2664 +f 2589 2590 2666 2665 +f 2590 2591 2667 2666 +f 2591 2592 2668 2667 +f 2592 2593 2669 2668 +f 2593 2594 2670 2669 +f 2594 2595 2671 2670 +f 2595 2596 2672 2671 +f 2596 2597 2673 2672 +f 2597 2598 2674 2673 +f 2598 2599 2675 2674 +f 2599 2600 2676 2675 +f 2600 2601 2677 2676 +f 2601 2602 2678 2677 +f 2602 2603 2679 2678 +f 2603 2604 2680 2679 +f 2604 2605 2681 2680 +f 2605 2606 2682 2681 +f 2606 2607 2683 2682 +f 2607 2608 2684 2683 +f 2608 2609 2685 2684 +f 2609 2610 2686 2685 +f 2610 2611 2687 2686 +f 2611 2612 2688 2687 +f 2612 2613 2689 2688 +f 2613 2614 2690 2689 +f 2614 2615 2691 2690 +f 2615 2616 2692 2691 +f 2616 2617 2693 2692 +f 2617 2618 2694 2693 +f 2618 2619 2695 2694 +f 2619 2620 2696 2695 +f 2620 2621 2697 2696 +f 2621 2622 2698 2697 +f 2622 2623 2699 2698 +f 2623 2624 2700 2699 +f 2624 2625 2701 2700 +f 2625 2626 2702 2701 +f 2626 2627 2703 2702 +f 2627 2628 2704 2703 +f 2628 2629 2705 2704 +f 2629 2630 2706 2705 +f 2630 2631 2707 2706 +f 2631 2632 2708 2707 +f 2632 2633 2709 2708 +f 2633 2634 2710 2709 +f 2634 2635 2711 2710 +f 2635 2636 2712 2711 +f 2636 2637 2713 2712 +f 2637 2638 2714 2713 +f 2638 2639 2715 2714 +f 2639 2640 2716 2715 +f 2640 2641 2717 2716 +f 2641 2642 2718 2717 +f 2642 2643 2719 2718 +f 2643 2644 2720 2719 +f 2644 2645 2721 2720 +f 2645 2646 2722 2721 +f 2646 2647 2723 2722 +f 2647 2648 2724 2723 +f 2648 2649 2725 2724 +f 2649 2650 2726 2725 +f 2650 2651 2727 2726 +f 2651 2652 2728 2727 +f 2652 2653 2729 2728 +f 2653 2654 2730 2729 +f 2654 2655 2731 2730 +f 2655 2656 2732 2731 +f 2656 2657 2733 2732 +f 2657 2658 2734 2733 +f 2658 2659 2735 2734 +f 2659 2660 2736 2735 +f 2660 2661 2737 2736 +f 2661 2662 2738 2737 +f 2662 2587 2663 2738 +f 2663 2664 2740 2739 +f 2664 2665 2741 2740 +f 2665 2666 2742 2741 +f 2666 2667 2743 2742 +f 2667 2668 2744 2743 +f 2668 2669 2745 2744 +f 2669 2670 2746 2745 +f 2670 2671 2747 2746 +f 2671 2672 2748 2747 +f 2672 2673 2749 2748 +f 2673 2674 2750 2749 +f 2674 2675 2751 2750 +f 2675 2676 2752 2751 +f 2676 2677 2753 2752 +f 2677 2678 2754 2753 +f 2678 2679 2755 2754 +f 2679 2680 2756 2755 +f 2680 2681 2757 2756 +f 2681 2682 2758 2757 +f 2682 2683 2759 2758 +f 2683 2684 2760 2759 +f 2684 2685 2761 2760 +f 2685 2686 2762 2761 +f 2686 2687 2763 2762 +f 2687 2688 2764 2763 +f 2688 2689 2765 2764 +f 2689 2690 2766 2765 +f 2690 2691 2767 2766 +f 2691 2692 2768 2767 +f 2692 2693 2769 2768 +f 2693 2694 2770 2769 +f 2694 2695 2771 2770 +f 2695 2696 2772 2771 +f 2696 2697 2773 2772 +f 2697 2698 2774 2773 +f 2698 2699 2775 2774 +f 2699 2700 2776 2775 +f 2700 2701 2777 2776 +f 2701 2702 2778 2777 +f 2702 2703 2779 2778 +f 2703 2704 2780 2779 +f 2704 2705 2781 2780 +f 2705 2706 2782 2781 +f 2706 2707 2783 2782 +f 2707 2708 2784 2783 +f 2708 2709 2785 2784 +f 2709 2710 2786 2785 +f 2710 2711 2787 2786 +f 2711 2712 2788 2787 +f 2712 2713 2789 2788 +f 2713 2714 2790 2789 +f 2714 2715 2791 2790 +f 2715 2716 2792 2791 +f 2716 2717 2793 2792 +f 2717 2718 2794 2793 +f 2718 2719 2795 2794 +f 2719 2720 2796 2795 +f 2720 2721 2797 2796 +f 2721 2722 2798 2797 +f 2722 2723 2799 2798 +f 2723 2724 2800 2799 +f 2724 2725 2801 2800 +f 2725 2726 2802 2801 +f 2726 2727 2803 2802 +f 2727 2728 2804 2803 +f 2728 2729 2805 2804 +f 2729 2730 2806 2805 +f 2730 2731 2807 2806 +f 2731 2732 2808 2807 +f 2732 2733 2809 2808 +f 2733 2734 2810 2809 +f 2734 2735 2811 2810 +f 2735 2736 2812 2811 +f 2736 2737 2813 2812 +f 2737 2738 2814 2813 +f 2738 2663 2739 2814 +f 2739 2740 2816 2815 +f 2740 2741 2817 2816 +f 2741 2742 2818 2817 +f 2742 2743 2819 2818 +f 2743 2744 2820 2819 +f 2744 2745 2821 2820 +f 2745 2746 2822 2821 +f 2746 2747 2823 2822 +f 2747 2748 2824 2823 +f 2748 2749 2825 2824 +f 2749 2750 2826 2825 +f 2750 2751 2827 2826 +f 2751 2752 2828 2827 +f 2752 2753 2829 2828 +f 2753 2754 2830 2829 +f 2754 2755 2831 2830 +f 2755 2756 2832 2831 +f 2756 2757 2833 2832 +f 2757 2758 2834 2833 +f 2758 2759 2835 2834 +f 2759 2760 2836 2835 +f 2760 2761 2837 2836 +f 2761 2762 2838 2837 +f 2762 2763 2839 2838 +f 2763 2764 2840 2839 +f 2764 2765 2841 2840 +f 2765 2766 2842 2841 +f 2766 2767 2843 2842 +f 2767 2768 2844 2843 +f 2768 2769 2845 2844 +f 2769 2770 2846 2845 +f 2770 2771 2847 2846 +f 2771 2772 2848 2847 +f 2772 2773 2849 2848 +f 2773 2774 2850 2849 +f 2774 2775 2851 2850 +f 2775 2776 2852 2851 +f 2776 2777 2853 2852 +f 2777 2778 2854 2853 +f 2778 2779 2855 2854 +f 2779 2780 2856 2855 +f 2780 2781 2857 2856 +f 2781 2782 2858 2857 +f 2782 2783 2859 2858 +f 2783 2784 2860 2859 +f 2784 2785 2861 2860 +f 2785 2786 2862 2861 +f 2786 2787 2863 2862 +f 2787 2788 2864 2863 +f 2788 2789 2865 2864 +f 2789 2790 2866 2865 +f 2790 2791 2867 2866 +f 2791 2792 2868 2867 +f 2792 2793 2869 2868 +f 2793 2794 2870 2869 +f 2794 2795 2871 2870 +f 2795 2796 2872 2871 +f 2796 2797 2873 2872 +f 2797 2798 2874 2873 +f 2798 2799 2875 2874 +f 2799 2800 2876 2875 +f 2800 2801 2877 2876 +f 2801 2802 2878 2877 +f 2802 2803 2879 2878 +f 2803 2804 2880 2879 +f 2804 2805 2881 2880 +f 2805 2806 2882 2881 +f 2806 2807 2883 2882 +f 2807 2808 2884 2883 +f 2808 2809 2885 2884 +f 2809 2810 2886 2885 +f 2810 2811 2887 2886 +f 2811 2812 2888 2887 +f 2812 2813 2889 2888 +f 2813 2814 2890 2889 +f 2814 2739 2815 2890 +f 1 4 3 +f 2 2815 2816 +f 1 5 4 +f 2 2816 2817 +f 1 6 5 +f 2 2817 2818 +f 1 7 6 +f 2 2818 2819 +f 1 8 7 +f 2 2819 2820 +f 1 9 8 +f 2 2820 2821 +f 1 10 9 +f 2 2821 2822 +f 1 11 10 +f 2 2822 2823 +f 1 12 11 +f 2 2823 2824 +f 1 13 12 +f 2 2824 2825 +f 1 14 13 +f 2 2825 2826 +f 1 15 14 +f 2 2826 2827 +f 1 16 15 +f 2 2827 2828 +f 1 17 16 +f 2 2828 2829 +f 1 18 17 +f 2 2829 2830 +f 1 19 18 +f 2 2830 2831 +f 1 20 19 +f 2 2831 2832 +f 1 21 20 +f 2 2832 2833 +f 1 22 21 +f 2 2833 2834 +f 1 23 22 +f 2 2834 2835 +f 1 24 23 +f 2 2835 2836 +f 1 25 24 +f 2 2836 2837 +f 1 26 25 +f 2 2837 2838 +f 1 27 26 +f 2 2838 2839 +f 1 28 27 +f 2 2839 2840 +f 1 29 28 +f 2 2840 2841 +f 1 30 29 +f 2 2841 2842 +f 1 31 30 +f 2 2842 2843 +f 1 32 31 +f 2 2843 2844 +f 1 33 32 +f 2 2844 2845 +f 1 34 33 +f 2 2845 2846 +f 1 35 34 +f 2 2846 2847 +f 1 36 35 +f 2 2847 2848 +f 1 37 36 +f 2 2848 2849 +f 1 38 37 +f 2 2849 2850 +f 1 39 38 +f 2 2850 2851 +f 1 40 39 +f 2 2851 2852 +f 1 41 40 +f 2 2852 2853 +f 1 42 41 +f 2 2853 2854 +f 1 43 42 +f 2 2854 2855 +f 1 44 43 +f 2 2855 2856 +f 1 45 44 +f 2 2856 2857 +f 1 46 45 +f 2 2857 2858 +f 1 47 46 +f 2 2858 2859 +f 1 48 47 +f 2 2859 2860 +f 1 49 48 +f 2 2860 2861 +f 1 50 49 +f 2 2861 2862 +f 1 51 50 +f 2 2862 2863 +f 1 52 51 +f 2 2863 2864 +f 1 53 52 +f 2 2864 2865 +f 1 54 53 +f 2 2865 2866 +f 1 55 54 +f 2 2866 2867 +f 1 56 55 +f 2 2867 2868 +f 1 57 56 +f 2 2868 2869 +f 1 58 57 +f 2 2869 2870 +f 1 59 58 +f 2 2870 2871 +f 1 60 59 +f 2 2871 2872 +f 1 61 60 +f 2 2872 2873 +f 1 62 61 +f 2 2873 2874 +f 1 63 62 +f 2 2874 2875 +f 1 64 63 +f 2 2875 2876 +f 1 65 64 +f 2 2876 2877 +f 1 66 65 +f 2 2877 2878 +f 1 67 66 +f 2 2878 2879 +f 1 68 67 +f 2 2879 2880 +f 1 69 68 +f 2 2880 2881 +f 1 70 69 +f 2 2881 2882 +f 1 71 70 +f 2 2882 2883 +f 1 72 71 +f 2 2883 2884 +f 1 73 72 +f 2 2884 2885 +f 1 74 73 +f 2 2885 2886 +f 1 75 74 +f 2 2886 2887 +f 1 76 75 +f 2 2887 2888 +f 1 77 76 +f 2 2888 2889 +f 1 78 77 +f 2 2889 2890 +f 1 3 78 +f 2 2890 2815 diff --git a/data/spheres/2.obj b/data/spheres/2.obj new file mode 100644 index 0000000..f16f56d --- /dev/null +++ b/data/spheres/2.obj @@ -0,0 +1,74 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 58.7785 80.9017 5.88009e-39 +v 41.5627 80.9017 41.5626 +v 6.75001e-05 80.9017 58.7785 +v -41.5626 80.9017 41.5627 +v -58.7785 80.9017 0.000135 +v -41.5628 80.9017 -41.5625 +v -0.000195493 80.9017 -58.7785 +v 41.5625 80.9017 -41.5628 +v 95.1056 30.9018 5.88009e-39 +v 67.2499 30.9018 67.2498 +v 0.000109218 30.9018 95.1056 +v -67.2497 30.9018 67.2499 +v -95.1056 30.9018 0.000218435 +v -67.25 30.9018 -67.2496 +v -0.000316315 30.9018 -95.1056 +v 67.2496 30.9018 -67.2501 +v 95.1057 -30.9016 5.88009e-39 +v 67.2499 -30.9016 67.2498 +v 0.000109218 -30.9016 95.1057 +v -67.2498 -30.9016 67.25 +v -95.1057 -30.9016 0.000218435 +v -67.2501 -30.9016 -67.2497 +v -0.000316315 -30.9016 -95.1057 +v 67.2496 -30.9016 -67.2502 +v 58.7787 -80.9016 5.88009e-39 +v 41.5628 -80.9016 41.5628 +v 6.75003e-05 -80.9016 58.7787 +v -41.5627 -80.9016 41.5629 +v -58.7787 -80.9016 0.000135001 +v -41.5629 -80.9016 -41.5627 +v -0.000195494 -80.9016 -58.7787 +v 41.5626 -80.9016 -41.563 +f 3 4 12 11 +f 4 5 13 12 +f 5 6 14 13 +f 6 7 15 14 +f 7 8 16 15 +f 8 9 17 16 +f 9 10 18 17 +f 10 3 11 18 +f 11 12 20 19 +f 12 13 21 20 +f 13 14 22 21 +f 14 15 23 22 +f 15 16 24 23 +f 16 17 25 24 +f 17 18 26 25 +f 18 11 19 26 +f 19 20 28 27 +f 20 21 29 28 +f 21 22 30 29 +f 22 23 31 30 +f 23 24 32 31 +f 24 25 33 32 +f 25 26 34 33 +f 26 19 27 34 +f 1 4 3 +f 2 27 28 +f 1 5 4 +f 2 28 29 +f 1 6 5 +f 2 29 30 +f 1 7 6 +f 2 30 31 +f 1 8 7 +f 2 31 32 +f 1 9 8 +f 2 32 33 +f 1 10 9 +f 2 33 34 +f 1 3 10 +f 2 34 27 diff --git a/data/spheres/20.obj b/data/spheres/20.obj new file mode 100644 index 0000000..81525e8 --- /dev/null +++ b/data/spheres/20.obj @@ -0,0 +1,6482 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 7.65492 99.7066 5.88009e-39 +v 7.63132 99.7066 0.600598 +v 7.56068 99.7066 1.19749 +v 7.44341 99.7066 1.787 +v 7.28026 99.7066 2.3655 +v 7.07222 99.7066 2.92941 +v 6.82058 99.7066 3.47526 +v 6.52689 99.7066 3.99968 +v 6.19296 99.7066 4.49945 +v 5.82085 99.7066 4.97147 +v 5.41285 99.7066 5.41284 +v 4.97148 99.7066 5.82084 +v 4.49945 99.7066 6.19296 +v 3.99969 99.7066 6.52689 +v 3.47527 99.7066 6.82058 +v 2.92942 99.7066 7.07222 +v 2.36551 99.7066 7.28026 +v 1.78701 99.7066 7.44341 +v 1.1975 99.7066 7.56067 +v 0.600606 99.7066 7.63132 +v 8.79077e-06 99.7066 7.65492 +v -0.600589 99.7066 7.63132 +v -1.19748 99.7066 7.56068 +v -1.787 99.7066 7.44342 +v -2.36549 99.7066 7.28026 +v -2.9294 99.7066 7.07223 +v -3.47525 99.7066 6.82059 +v -3.99967 99.7066 6.5269 +v -4.49944 99.7066 6.19297 +v -4.97146 99.7066 5.82086 +v -5.41284 99.7066 5.41285 +v -5.82084 99.7066 4.97148 +v -6.19295 99.7066 4.49946 +v -6.52688 99.7066 3.9997 +v -6.82058 99.7066 3.47527 +v -7.07222 99.7066 2.92943 +v -7.28026 99.7066 2.36552 +v -7.44341 99.7066 1.78702 +v -7.56067 99.7066 1.19751 +v -7.63132 99.7066 0.600616 +v -7.65492 99.7066 1.75815e-05 +v -7.63132 99.7066 -0.600581 +v -7.56068 99.7066 -1.19747 +v -7.44342 99.7066 -1.78699 +v -7.28027 99.7066 -2.36548 +v -7.07223 99.7066 -2.92939 +v -6.82059 99.7066 -3.47524 +v -6.5269 99.7066 -3.99967 +v -6.19297 99.7066 -4.49943 +v -5.82086 99.7066 -4.97146 +v -5.41286 99.7066 -5.41283 +v -4.97149 99.7066 -5.82083 +v -4.49947 99.7066 -6.19295 +v -3.9997 99.7066 -6.52688 +v -3.47528 99.7066 -6.82057 +v -2.92943 99.7066 -7.07221 +v -2.36552 99.7066 -7.28025 +v -1.78703 99.7066 -7.44341 +v -1.19752 99.7066 -7.56067 +v -0.600624 99.7066 -7.63132 +v -2.54598e-05 99.7066 -7.65492 +v 0.600573 99.7066 -7.63132 +v 1.19746 99.7066 -7.56068 +v 1.78698 99.7066 -7.44342 +v 2.36547 99.7066 -7.28027 +v 2.92939 99.7066 -7.07223 +v 3.47524 99.7066 -6.8206 +v 3.99966 99.7066 -6.52691 +v 4.49942 99.7066 -6.19298 +v 4.97145 99.7066 -5.82087 +v 5.41282 99.7066 -5.41287 +v 5.82083 99.7066 -4.9715 +v 6.19294 99.7066 -4.49948 +v 6.52687 99.7066 -3.99971 +v 6.82057 99.7066 -3.47529 +v 7.07221 99.7066 -2.92944 +v 7.28025 99.7066 -2.36553 +v 7.44341 99.7066 -1.78704 +v 7.56067 99.7066 -1.19753 +v 7.63132 99.7066 -0.600633 +v 15.2649 98.828 5.88009e-39 +v 15.2179 98.828 1.19767 +v 15.077 98.828 2.38796 +v 14.8431 98.828 3.56352 +v 14.5178 98.828 4.71712 +v 14.1029 98.828 5.84163 +v 13.6011 98.828 6.93012 +v 13.0155 98.828 7.97589 +v 12.3496 98.828 8.97249 +v 11.6075 98.828 9.91376 +v 10.7939 98.828 10.7939 +v 9.91378 98.828 11.6075 +v 8.9725 98.828 12.3496 +v 7.97591 98.828 13.0155 +v 6.93014 98.828 13.6011 +v 5.84164 98.828 14.1029 +v 4.71713 98.828 14.5178 +v 3.56354 98.828 14.8431 +v 2.38798 98.828 15.077 +v 1.19769 98.828 15.2179 +v 1.75299e-05 98.828 15.2649 +v -1.19765 98.828 15.2179 +v -2.38794 98.828 15.077 +v -3.5635 98.828 14.8432 +v -4.7171 98.828 14.5178 +v -5.84161 98.828 14.103 +v -6.93011 98.828 13.6012 +v -7.97588 98.828 13.0155 +v -8.97248 98.828 12.3496 +v -9.91375 98.828 11.6076 +v -10.7939 98.828 10.7939 +v -11.6075 98.828 9.91379 +v -12.3496 98.828 8.97252 +v -13.0155 98.828 7.97592 +v -13.6011 98.828 6.93015 +v -14.1029 98.828 5.84166 +v -14.5178 98.828 4.71715 +v -14.8431 98.828 3.56356 +v -15.077 98.828 2.38799 +v -15.2179 98.828 1.19771 +v -15.2649 98.828 3.50599e-05 +v -15.2179 98.828 -1.19764 +v -15.077 98.828 -2.38792 +v -14.8432 98.828 -3.56349 +v -14.5178 98.828 -4.71708 +v -14.103 98.828 -5.84159 +v -13.6012 98.828 -6.93009 +v -13.0155 98.828 -7.97586 +v -12.3496 98.828 -8.97246 +v -11.6076 98.828 -9.91374 +v -10.794 98.828 -10.7939 +v -9.91381 98.828 -11.6075 +v -8.97253 98.828 -12.3495 +v -7.97594 98.828 -13.0155 +v -6.93017 98.828 -13.6011 +v -5.84167 98.828 -14.1029 +v -4.71716 98.828 -14.5178 +v -3.56358 98.828 -14.8431 +v -2.38801 98.828 -15.077 +v -1.19772 98.828 -15.2179 +v -5.07701e-05 98.828 -15.2649 +v 1.19762 98.828 -15.2179 +v 2.3879 98.828 -15.077 +v 3.56347 98.828 -14.8432 +v 4.71707 98.828 -14.5178 +v 5.84158 98.828 -14.103 +v 6.93008 98.828 -13.6012 +v 7.97584 98.828 -13.0155 +v 8.97244 98.828 -12.3496 +v 9.91372 98.828 -11.6076 +v 10.7939 98.828 -10.794 +v 11.6075 98.828 -9.91382 +v 12.3495 98.828 -8.97255 +v 13.0154 98.828 -7.97595 +v 13.6011 98.828 -6.93019 +v 14.1029 98.828 -5.84169 +v 14.5178 98.828 -4.71718 +v 14.8431 98.828 -3.56359 +v 15.077 98.828 -2.38803 +v 15.2179 98.828 -1.19774 +v 22.7853 97.3695 5.88009e-39 +v 22.7151 97.3695 1.78772 +v 22.5048 97.3695 3.56441 +v 22.1558 97.3695 5.31913 +v 21.6701 97.3695 7.04105 +v 21.0509 97.3695 8.71956 +v 20.3019 97.3695 10.3443 +v 19.4277 97.3695 11.9053 +v 18.4337 97.3695 13.3929 +v 17.3261 97.3695 14.7979 +v 16.1117 97.3695 16.1117 +v 14.7979 97.3695 17.3261 +v 13.3929 97.3695 18.4337 +v 11.9053 97.3695 19.4277 +v 10.3443 97.3695 20.3019 +v 8.71959 97.3695 21.0509 +v 7.04108 97.3695 21.6701 +v 5.31915 97.3695 22.1558 +v 3.56444 97.3695 22.5048 +v 1.78774 97.3695 22.7151 +v 2.61663e-05 97.3695 22.7853 +v -1.78769 97.3695 22.7151 +v -3.56438 97.3695 22.5048 +v -5.3191 97.3695 22.1558 +v -7.04103 97.3695 21.6701 +v -8.71954 97.3695 21.0509 +v -10.3443 97.3695 20.3019 +v -11.9053 97.3695 19.4277 +v -13.3929 97.3695 18.4337 +v -14.7979 97.3695 17.3261 +v -16.1116 97.3695 16.1117 +v -17.3261 97.3695 14.7979 +v -18.4337 97.3695 13.3929 +v -19.4277 97.3695 11.9053 +v -20.3019 97.3695 10.3444 +v -21.0509 97.3695 8.71961 +v -21.6701 97.3695 7.0411 +v -22.1558 97.3695 5.31918 +v -22.5048 97.3695 3.56446 +v -22.7151 97.3695 1.78777 +v -22.7853 97.3695 5.23325e-05 +v -22.7151 97.3695 -1.78767 +v -22.5048 97.3695 -3.56436 +v -22.1558 97.3695 -5.31908 +v -21.6702 97.3695 -7.041 +v -21.0509 97.3695 -8.71951 +v -20.3019 97.3695 -10.3443 +v -19.4277 97.3695 -11.9052 +v -18.4338 97.3695 -13.3928 +v -17.3261 97.3695 -14.7978 +v -16.1117 97.3695 -16.1116 +v -14.7979 97.3695 -17.3261 +v -13.3929 97.3695 -18.4337 +v -11.9054 97.3695 -19.4277 +v -10.3444 97.3695 -20.3018 +v -8.71963 97.3695 -21.0509 +v -7.04112 97.3695 -21.6701 +v -5.31921 97.3695 -22.1558 +v -3.56449 97.3695 -22.5048 +v -1.78779 97.3695 -22.7151 +v -7.57825e-05 97.3695 -22.7853 +v 1.78764 97.3695 -22.7151 +v 3.56433 97.3695 -22.5048 +v 5.31905 97.3695 -22.1558 +v 7.04098 97.3695 -21.6702 +v 8.71949 97.3695 -21.0509 +v 10.3443 97.3695 -20.3019 +v 11.9052 97.3695 -19.4277 +v 13.3928 97.3695 -18.4338 +v 14.7978 97.3695 -17.3262 +v 16.1116 97.3695 -16.1117 +v 17.326 97.3695 -14.798 +v 18.4337 97.3695 -13.393 +v 19.4276 97.3695 -11.9054 +v 20.3018 97.3695 -10.3444 +v 21.0509 97.3695 -8.71966 +v 21.6701 97.3695 -7.04115 +v 22.1558 97.3695 -5.31922 +v 22.5048 97.3695 -3.56452 +v 22.7151 97.3695 -1.78782 +v 30.172 95.3396 5.88009e-39 +v 30.079 95.3396 2.36727 +v 29.8006 95.3396 4.71994 +v 29.3384 95.3396 7.04352 +v 28.6953 95.3396 9.32367 +v 27.8753 95.3396 11.5463 +v 26.8835 95.3396 13.6978 +v 25.7259 95.3396 15.7648 +v 24.4097 95.3396 17.7347 +v 22.943 95.3396 19.5952 +v 21.3349 95.3396 21.3348 +v 19.5952 95.3396 22.943 +v 17.7347 95.3396 24.4097 +v 15.7649 95.3396 25.7259 +v 13.6978 95.3396 26.8835 +v 11.5464 95.3396 27.8753 +v 9.3237 95.3396 28.6953 +v 7.04355 95.3396 29.3384 +v 4.71998 95.3396 29.8006 +v 2.3673 95.3396 30.079 +v 3.4649e-05 95.3396 30.172 +v -2.36723 95.3396 30.079 +v -4.71991 95.3396 29.8006 +v -7.04348 95.3396 29.3384 +v -9.32363 95.3396 28.6953 +v -11.5463 95.3396 27.8753 +v -13.6978 95.3396 26.8835 +v -15.7648 95.3396 25.7259 +v -17.7346 95.3396 24.4097 +v -19.5951 95.3396 22.943 +v -21.3348 95.3396 21.3349 +v -22.943 95.3396 19.5952 +v -24.4097 95.3396 17.7347 +v -25.7259 95.3396 15.7649 +v -26.8835 95.3396 13.6979 +v -27.8753 95.3396 11.5464 +v -28.6953 95.3396 9.32374 +v -29.3384 95.3396 7.04359 +v -29.8006 95.3396 4.72001 +v -30.079 95.3396 2.36734 +v -30.172 95.3396 6.9298e-05 +v -30.079 95.3396 -2.3672 +v -29.8006 95.3396 -4.71987 +v -29.3384 95.3396 -7.04345 +v -28.6953 95.3396 -9.3236 +v -27.8754 95.3396 -11.5463 +v -26.8835 95.3396 -13.6978 +v -25.7259 95.3396 -15.7648 +v -24.4097 95.3396 -17.7346 +v -22.9431 95.3396 -19.5951 +v -21.3349 95.3396 -21.3348 +v -19.5952 95.3396 -22.9429 +v -17.7348 95.3396 -24.4096 +v -15.7649 95.3396 -25.7258 +v -13.6979 95.3396 -26.8834 +v -11.5464 95.3396 -27.8753 +v -9.32376 95.3396 -28.6953 +v -7.04362 95.3396 -29.3384 +v -4.72005 95.3396 -29.8006 +v -2.36737 95.3396 -30.079 +v -0.00010035 95.3396 -30.172 +v 2.36717 95.3396 -30.079 +v 4.71984 95.3396 -29.8006 +v 7.04341 95.3396 -29.3384 +v 9.32357 95.3396 -28.6953 +v 11.5462 95.3396 -27.8754 +v 13.6977 95.3396 -26.8835 +v 15.7647 95.3396 -25.726 +v 17.7346 95.3396 -24.4098 +v 19.5951 95.3396 -22.9431 +v 21.3348 95.3396 -21.3349 +v 22.9429 95.3396 -19.5953 +v 24.4096 95.3396 -17.7348 +v 25.7258 95.3396 -15.765 +v 26.8834 95.3396 -13.6979 +v 27.8753 95.3396 -11.5465 +v 28.6953 95.3396 -9.32379 +v 29.3384 95.3396 -7.04365 +v 29.8005 95.3396 -4.72009 +v 30.079 95.3396 -2.36741 +v 37.3817 92.7503 5.88009e-39 +v 37.2664 92.7503 2.93293 +v 36.9215 92.7503 5.84778 +v 36.3488 92.7503 8.72657 +v 35.5521 92.7503 11.5516 +v 34.5362 92.7503 14.3053 +v 33.3073 92.7503 16.9709 +v 31.8731 92.7503 19.5319 +v 30.2424 92.7503 21.9724 +v 28.4253 92.7503 24.2774 +v 26.4329 92.7503 26.4328 +v 24.2775 92.7503 28.4252 +v 21.9724 92.7503 30.2424 +v 19.5319 92.7503 31.8731 +v 16.971 92.7503 33.3073 +v 14.3054 92.7503 34.5362 +v 11.5516 92.7503 35.5521 +v 8.72662 92.7503 36.3488 +v 5.84782 92.7503 36.9214 +v 2.93297 92.7503 37.2664 +v 4.29284e-05 92.7503 37.3817 +v -2.93289 92.7503 37.2664 +v -5.84774 92.7503 36.9215 +v -8.72653 92.7503 36.3488 +v -11.5515 92.7503 35.5521 +v -14.3053 92.7503 34.5362 +v -16.9709 92.7503 33.3073 +v -19.5318 92.7503 31.8732 +v -21.9724 92.7503 30.2424 +v -24.2774 92.7503 28.4253 +v -26.4328 92.7503 26.4329 +v -28.4252 92.7503 24.2775 +v -30.2424 92.7503 21.9725 +v -31.8731 92.7503 19.5319 +v -33.3073 92.7503 16.971 +v -34.5361 92.7503 14.3054 +v -35.5521 92.7503 11.5517 +v -36.3488 92.7503 8.72666 +v -36.9214 92.7503 5.84786 +v -37.2664 92.7503 2.93302 +v -37.3817 92.7503 8.58569e-05 +v -37.2665 92.7503 -2.93285 +v -36.9215 92.7503 -5.84769 +v -36.3488 92.7503 -8.72649 +v -35.5521 92.7503 -11.5515 +v -34.5362 92.7503 -14.3053 +v -33.3074 92.7503 -16.9708 +v -31.8732 92.7503 -19.5318 +v -30.2425 92.7503 -21.9723 +v -28.4253 92.7503 -24.2774 +v -26.4329 92.7503 -26.4328 +v -24.2775 92.7503 -28.4252 +v -21.9725 92.7503 -30.2423 +v -19.532 92.7503 -31.8731 +v -16.971 92.7503 -33.3073 +v -14.3055 92.7503 -34.5361 +v -11.5517 92.7503 -35.5521 +v -8.7267 92.7503 -36.3488 +v -5.84791 92.7503 -36.9214 +v -2.93306 92.7503 -37.2664 +v -0.000124329 92.7503 -37.3817 +v 2.93281 92.7503 -37.2665 +v 5.84764 92.7503 -36.9215 +v 8.72645 92.7503 -36.3489 +v 11.5514 92.7503 -35.5521 +v 14.3052 92.7503 -34.5362 +v 16.9708 92.7503 -33.3074 +v 19.5317 92.7503 -31.8732 +v 21.9723 92.7503 -30.2425 +v 24.2773 92.7503 -28.4253 +v 26.4327 92.7503 -26.4329 +v 28.4252 92.7503 -24.2776 +v 30.2423 92.7503 -21.9725 +v 31.873 92.7503 -19.532 +v 33.3072 92.7503 -16.9711 +v 34.5361 92.7503 -14.3055 +v 35.552 92.7503 -11.5517 +v 36.3488 92.7503 -8.72673 +v 36.9214 92.7503 -5.84796 +v 37.2664 92.7503 -2.93311 +v 44.372 89.6166 5.88009e-39 +v 44.2352 89.6166 3.48138 +v 43.8257 89.6166 6.9413 +v 43.146 89.6166 10.3584 +v 42.2002 89.6166 13.7117 +v 40.9943 89.6166 16.9804 +v 39.5357 89.6166 20.1444 +v 37.8333 89.6166 23.1843 +v 35.8977 89.6166 26.0812 +v 33.7407 89.6166 28.8173 +v 31.3757 89.6166 31.3757 +v 28.8173 89.6166 33.7407 +v 26.0812 89.6166 35.8976 +v 23.1843 89.6166 37.8333 +v 20.1445 89.6166 39.5357 +v 16.9804 89.6166 40.9943 +v 13.7117 89.6166 42.2002 +v 10.3585 89.6166 43.1459 +v 6.94135 89.6166 43.8257 +v 3.48143 89.6166 44.2352 +v 5.09559e-05 89.6166 44.372 +v -3.48133 89.6166 44.2352 +v -6.94125 89.6166 43.8257 +v -10.3584 89.6166 43.146 +v -13.7116 89.6166 42.2003 +v -16.9804 89.6166 40.9944 +v -20.1444 89.6166 39.5357 +v -23.1842 89.6166 37.8333 +v -26.0811 89.6166 35.8977 +v -28.8172 89.6166 33.7407 +v -31.3757 89.6166 31.3758 +v -33.7406 89.6166 28.8173 +v -35.8976 89.6166 26.0812 +v -37.8333 89.6166 23.1843 +v -39.5357 89.6166 20.1445 +v -40.9943 89.6166 16.9805 +v -42.2002 89.6166 13.7118 +v -43.1459 89.6166 10.3585 +v -43.8256 89.6166 6.9414 +v -44.2352 89.6166 3.48149 +v -44.372 89.6166 0.000101912 +v -44.2352 89.6166 -3.48128 +v -43.8257 89.6166 -6.94119 +v -43.146 89.6166 -10.3583 +v -42.2003 89.6166 -13.7116 +v -40.9944 89.6166 -16.9803 +v -39.5358 89.6166 -20.1443 +v -37.8334 89.6166 -23.1842 +v -35.8977 89.6166 -26.0811 +v -33.7408 89.6166 -28.8172 +v -31.3758 89.6166 -31.3756 +v -28.8174 89.6166 -33.7406 +v -26.0813 89.6166 -35.8976 +v -23.1844 89.6166 -37.8332 +v -20.1446 89.6166 -39.5356 +v -16.9805 89.6166 -40.9943 +v -13.7118 89.6166 -42.2002 +v -10.3586 89.6166 -43.1459 +v -6.94145 89.6166 -43.8256 +v -3.48153 89.6166 -44.2352 +v -0.000147578 89.6166 -44.372 +v 3.48124 89.6166 -44.2352 +v 6.94114 89.6166 -43.8257 +v 10.3583 89.6166 -43.146 +v 13.7115 89.6166 -42.2003 +v 16.9803 89.6166 -40.9944 +v 20.1443 89.6166 -39.5358 +v 23.1841 89.6166 -37.8334 +v 26.081 89.6166 -35.8978 +v 28.8171 89.6166 -33.7408 +v 31.3756 89.6166 -31.3758 +v 33.7406 89.6166 -28.8174 +v 35.8975 89.6166 -26.0813 +v 37.8332 89.6166 -23.1844 +v 39.5356 89.6166 -20.1446 +v 40.9943 89.6166 -16.9806 +v 42.2002 89.6166 -13.7119 +v 43.1459 89.6166 -10.3586 +v 43.8256 89.6166 -6.94151 +v 44.2352 89.6166 -3.48159 +v 51.1018 85.957 5.88009e-39 +v 50.9443 85.957 4.0094 +v 50.4727 85.957 7.99408 +v 49.6899 85.957 11.9295 +v 48.6007 85.957 15.7913 +v 47.2119 85.957 19.5558 +v 45.5321 85.957 23.1997 +v 43.5715 85.957 26.7006 +v 41.3423 85.957 30.0369 +v 38.8582 85.957 33.188 +v 36.1345 85.957 36.1344 +v 33.188 85.957 38.8581 +v 30.0369 85.957 41.3422 +v 26.7007 85.957 43.5715 +v 23.1998 85.957 45.5321 +v 19.5559 85.957 47.2119 +v 15.7914 85.957 48.6007 +v 11.9295 85.957 49.6899 +v 7.99414 85.957 50.4727 +v 4.00946 85.957 50.9443 +v 5.86844e-05 85.957 51.1018 +v -4.00934 85.957 50.9443 +v -7.99403 85.957 50.4727 +v -11.9294 85.957 49.6899 +v -15.7913 85.957 48.6008 +v -19.5558 85.957 47.212 +v -23.1997 85.957 45.5321 +v -26.7006 85.957 43.5715 +v -30.0368 85.957 41.3423 +v -33.1879 85.957 38.8582 +v -36.1344 85.957 36.1345 +v -38.8581 85.957 33.1881 +v -41.3422 85.957 30.037 +v -43.5714 85.957 26.7007 +v -45.532 85.957 23.1998 +v -47.2119 85.957 19.5559 +v -48.6007 85.957 15.7914 +v -49.6899 85.957 11.9296 +v -50.4727 85.957 7.99419 +v -50.9443 85.957 4.00952 +v -51.1018 85.957 0.000117369 +v -50.9443 85.957 -4.00929 +v -50.4727 85.957 -7.99396 +v -49.6899 85.957 -11.9294 +v -48.6008 85.957 -15.7912 +v -47.212 85.957 -19.5557 +v -45.5321 85.957 -23.1996 +v -43.5715 85.957 -26.7005 +v -41.3423 85.957 -30.0368 +v -38.8582 85.957 -33.1879 +v -36.1346 85.957 -36.1343 +v -33.1881 85.957 -38.858 +v -30.037 85.957 -41.3422 +v -26.7008 85.957 -43.5714 +v -23.1999 85.957 -45.532 +v -19.556 85.957 -47.2119 +v -15.7915 85.957 -48.6007 +v -11.9297 85.957 -49.6898 +v -7.99426 85.957 -50.4727 +v -4.00957 85.957 -50.9443 +v -0.000169961 85.957 -51.1018 +v 4.00924 85.957 -50.9443 +v 7.9939 85.957 -50.4727 +v 11.9293 85.957 -49.6899 +v 15.7912 85.957 -48.6008 +v 19.5557 85.957 -47.212 +v 23.1996 85.957 -45.5322 +v 26.7005 85.957 -43.5716 +v 30.0367 85.957 -41.3424 +v 33.1878 85.957 -38.8583 +v 36.1343 85.957 -36.1346 +v 38.858 85.957 -33.1881 +v 41.3421 85.957 -30.0371 +v 43.5714 85.957 -26.7008 +v 45.532 85.957 -23.1999 +v 47.2119 85.957 -19.556 +v 48.6007 85.957 -15.7915 +v 49.6898 85.957 -11.9297 +v 50.4726 85.957 -7.99432 +v 50.9443 85.957 -4.00964 +v 57.5318 81.793 5.88009e-39 +v 57.3545 81.793 4.51389 +v 56.8235 81.793 8.99995 +v 55.9422 81.793 13.4305 +v 54.716 81.793 17.7783 +v 53.1525 81.793 22.0165 +v 51.2612 81.793 26.1189 +v 49.054 81.793 30.0603 +v 46.5442 81.793 33.8163 +v 43.7476 81.793 37.3639 +v 40.6812 81.793 40.6811 +v 37.364 81.793 43.7475 +v 33.8164 81.793 46.5442 +v 30.0603 81.793 49.0539 +v 26.1189 81.793 51.2612 +v 22.0165 81.793 53.1525 +v 17.7784 81.793 54.716 +v 13.4306 81.793 55.9422 +v 9.00002 81.793 56.8235 +v 4.51396 81.793 57.3545 +v 6.60685e-05 81.793 57.5318 +v -4.51382 81.793 57.3545 +v -8.99989 81.793 56.8235 +v -13.4305 81.793 55.9422 +v -17.7782 81.793 54.716 +v -22.0164 81.793 53.1525 +v -26.1188 81.793 51.2613 +v -30.0602 81.793 49.054 +v -33.8163 81.793 46.5443 +v -37.3639 81.793 43.7476 +v -40.6811 81.793 40.6812 +v -43.7475 81.793 37.364 +v -46.5442 81.793 33.8164 +v -49.0539 81.793 30.0604 +v -51.2612 81.793 26.119 +v -53.1524 81.793 22.0166 +v -54.716 81.793 17.7784 +v -55.9422 81.793 13.4307 +v -56.8235 81.793 9.00008 +v -57.3545 81.793 4.51403 +v -57.5318 81.793 0.000132137 +v -57.3545 81.793 -4.51377 +v -56.8235 81.793 -8.99982 +v -55.9423 81.793 -13.4304 +v -54.7161 81.793 -17.7782 +v -53.1525 81.793 -22.0163 +v -51.2613 81.793 -26.1188 +v -49.054 81.793 -30.0602 +v -46.5443 81.793 -33.8162 +v -43.7477 81.793 -37.3638 +v -40.6813 81.793 -40.681 +v -37.3641 81.793 -43.7474 +v -33.8165 81.793 -46.5441 +v -30.0604 81.793 -49.0539 +v -26.1191 81.793 -51.2612 +v -22.0166 81.793 -53.1524 +v -17.7785 81.793 -54.716 +v -13.4307 81.793 -55.9422 +v -9.00015 81.793 -56.8235 +v -4.51409 81.793 -57.3545 +v -0.000191347 81.793 -57.5318 +v 4.51371 81.793 -57.3545 +v 8.99975 81.793 -56.8236 +v 13.4303 81.793 -55.9423 +v 17.7781 81.793 -54.7161 +v 22.0163 81.793 -53.1526 +v 26.1187 81.793 -51.2613 +v 30.0601 81.793 -49.0541 +v 33.8162 81.793 -46.5444 +v 37.3638 81.793 -43.7477 +v 40.681 81.793 -40.6813 +v 43.7474 81.793 -37.3641 +v 46.5441 81.793 -33.8166 +v 49.0538 81.793 -30.0605 +v 51.2611 81.793 -26.1191 +v 53.1524 81.793 -22.0167 +v 54.7159 81.793 -17.7785 +v 55.9422 81.793 -13.4308 +v 56.8235 81.793 -9.00023 +v 57.3545 81.793 -4.51416 +v 63.6242 77.1489 5.88009e-39 +v 63.4281 77.1489 4.99189 +v 62.8409 77.1489 9.95301 +v 61.8663 77.1489 14.8528 +v 60.5102 77.1489 19.6609 +v 58.7811 77.1489 24.3479 +v 56.6896 77.1489 28.8848 +v 54.2486 77.1489 33.2435 +v 51.4731 77.1489 37.3973 +v 48.3802 77.1489 41.3206 +v 44.9891 77.1489 44.9891 +v 41.3206 77.1489 48.3802 +v 37.3974 77.1489 51.473 +v 33.2436 77.1489 54.2485 +v 28.8848 77.1489 56.6896 +v 24.348 77.1489 58.7811 +v 19.661 77.1489 60.5102 +v 14.8528 77.1489 61.8662 +v 9.95309 77.1489 62.8409 +v 4.99196 77.1489 63.4281 +v 7.30649e-05 77.1489 63.6242 +v -4.99182 77.1489 63.4281 +v -9.95294 77.1489 62.8409 +v -14.8527 77.1489 61.8663 +v -19.6609 77.1489 60.5102 +v -24.3478 77.1489 58.7811 +v -28.8847 77.1489 56.6896 +v -33.2435 77.1489 54.2486 +v -37.3973 77.1489 51.4731 +v -41.3205 77.1489 48.3803 +v -44.989 77.1489 44.9892 +v -48.3801 77.1489 41.3207 +v -51.473 77.1489 37.3975 +v -54.2485 77.1489 33.2437 +v -56.6895 77.1489 28.8849 +v -58.7811 77.1489 24.348 +v -60.5102 77.1489 19.6611 +v -61.8662 77.1489 14.8529 +v -62.8409 77.1489 9.95315 +v -63.4281 77.1489 4.99205 +v -63.6242 77.1489 0.00014613 +v -63.4281 77.1489 -4.99175 +v -62.8409 77.1489 -9.95286 +v -61.8663 77.1489 -14.8526 +v -60.5103 77.1489 -19.6608 +v -58.7812 77.1489 -24.3478 +v -56.6897 77.1489 -28.8846 +v -54.2486 77.1489 -33.2434 +v -51.4732 77.1489 -37.3972 +v -48.3803 77.1489 -41.3205 +v -44.9892 77.1489 -44.989 +v -41.3208 77.1489 -48.3801 +v -37.3975 77.1489 -51.4729 +v -33.2437 77.1489 -54.2485 +v -28.885 77.1489 -56.6895 +v -24.3481 77.1489 -58.781 +v -19.6611 77.1489 -60.5102 +v -14.853 77.1489 -61.8662 +v -9.95323 77.1489 -62.8409 +v -4.99211 77.1489 -63.4281 +v -0.00021161 77.1489 -63.6242 +v 4.99169 77.1489 -63.4281 +v 9.95278 77.1489 -62.8409 +v 14.8525 77.1489 -61.8663 +v 19.6607 77.1489 -60.5103 +v 24.3477 77.1489 -58.7812 +v 28.8846 77.1489 -56.6897 +v 33.2433 77.1489 -54.2487 +v 37.3972 77.1489 -51.4732 +v 41.3204 77.1489 -48.3804 +v 44.9889 77.1489 -44.9893 +v 48.3801 77.1489 -41.3208 +v 51.4729 77.1489 -37.3976 +v 54.2484 77.1489 -33.2438 +v 56.6895 77.1489 -28.885 +v 58.781 77.1489 -24.3482 +v 60.5101 77.1489 -19.6612 +v 61.8662 77.1489 -14.853 +v 62.8408 77.1489 -9.95331 +v 63.4281 77.1489 -4.99219 +v 69.3432 72.0522 5.88009e-39 +v 69.1294 72.0522 5.4406 +v 68.4895 72.0522 10.8477 +v 67.4273 72.0522 16.1878 +v 65.9493 72.0522 21.4282 +v 64.0648 72.0522 26.5365 +v 61.7853 72.0522 31.4811 +v 59.1248 72.0522 36.2317 +v 56.0999 72.0522 40.7589 +v 52.729 72.0522 45.0348 +v 49.0331 72.0522 49.033 +v 45.0348 72.0522 52.729 +v 40.759 72.0522 56.0998 +v 36.2318 72.0522 59.1248 +v 31.4812 72.0522 61.7852 +v 26.5366 72.0522 64.0648 +v 21.4283 72.0522 65.9493 +v 16.1879 72.0522 67.4272 +v 10.8477 72.0522 68.4895 +v 5.44068 72.0522 69.1294 +v 7.96325e-05 72.0522 69.3432 +v -5.44052 72.0522 69.1295 +v -10.8476 72.0522 68.4895 +v -16.1878 72.0522 67.4273 +v -21.4281 72.0522 65.9493 +v -26.5364 72.0522 64.0648 +v -31.4811 72.0522 61.7853 +v -36.2316 72.0522 59.1249 +v -40.7588 72.0522 56.0999 +v -45.0347 72.0522 52.7291 +v -49.033 72.0522 49.0331 +v -52.7289 72.0522 45.0349 +v -56.0998 72.0522 40.759 +v -59.1247 72.0522 36.2318 +v -61.7852 72.0522 31.4813 +v -64.0647 72.0522 26.5366 +v -65.9493 72.0522 21.4284 +v -67.4272 72.0522 16.188 +v -68.4895 72.0522 10.8478 +v -69.1294 72.0522 5.44077 +v -69.3432 72.0522 0.000159265 +v -69.1295 72.0522 -5.44045 +v -68.4895 72.0522 -10.8475 +v -67.4273 72.0522 -16.1877 +v -65.9494 72.0522 -21.4281 +v -64.0648 72.0522 -26.5363 +v -61.7853 72.0522 -31.481 +v -59.1249 72.0522 -36.2316 +v -56.0999 72.0522 -40.7588 +v -52.7291 72.0522 -45.0347 +v -49.0332 72.0522 -49.0329 +v -45.035 72.0522 -52.7288 +v -40.7591 72.0522 -56.0997 +v -36.2319 72.0522 -59.1247 +v -31.4813 72.0522 -61.7852 +v -26.5367 72.0522 -64.0647 +v -21.4284 72.0522 -65.9492 +v -16.1881 72.0522 -67.4272 +v -10.8479 72.0522 -68.4894 +v -5.44084 72.0522 -69.1294 +v -0.000230631 72.0522 -69.3432 +v 5.44038 72.0522 -69.1295 +v 10.8474 72.0522 -68.4895 +v 16.1876 72.0522 -67.4273 +v 21.428 72.0522 -65.9494 +v 26.5363 72.0522 -64.0649 +v 31.4809 72.0522 -61.7854 +v 36.2315 72.0522 -59.125 +v 40.7587 72.0522 -56.1 +v 45.0346 72.0522 -52.7292 +v 49.0329 72.0522 -49.0332 +v 52.7288 72.0522 -45.035 +v 56.0997 72.0522 -40.7592 +v 59.1246 72.0522 -36.232 +v 61.7851 72.0522 -31.4814 +v 64.0647 72.0522 -26.5368 +v 65.9492 72.0522 -21.4285 +v 67.4272 72.0522 -16.1881 +v 68.4894 72.0522 -10.848 +v 69.1294 72.0522 -5.44093 +v 74.6553 66.5326 5.88009e-39 +v 74.4251 66.5326 5.85738 +v 73.7362 66.5326 11.6787 +v 72.5926 66.5326 17.4279 +v 71.0014 66.5326 23.0697 +v 68.9725 66.5326 28.5693 +v 66.5184 66.5326 33.8928 +v 63.6541 66.5326 39.0073 +v 60.3974 66.5326 43.8812 +v 56.7683 66.5326 48.4847 +v 52.7893 66.5326 52.7892 +v 48.4848 66.5326 56.7683 +v 43.8813 66.5326 60.3974 +v 39.0073 66.5326 63.6541 +v 33.8928 66.5326 66.5183 +v 28.5694 66.5326 68.9725 +v 23.0698 66.5326 71.0014 +v 17.428 66.5326 72.5925 +v 11.6787 66.5326 73.7361 +v 5.85746 66.5326 74.4251 +v 8.57327e-05 66.5326 74.6553 +v -5.85729 66.5326 74.4251 +v -11.6786 66.5326 73.7362 +v -17.4278 66.5326 72.5926 +v -23.0697 66.5326 71.0014 +v -28.5692 66.5326 68.9725 +v -33.8927 66.5326 66.5184 +v -39.0072 66.5326 63.6542 +v -43.8812 66.5326 60.3975 +v -48.4846 66.5326 56.7684 +v -52.7892 66.5326 52.7893 +v -56.7682 66.5326 48.4848 +v -60.3973 66.5326 43.8814 +v -63.654 66.5326 39.0074 +v -66.5183 66.5326 33.8929 +v -68.9724 66.5326 28.5695 +v -71.0013 66.5326 23.0699 +v -72.5925 66.5326 17.4281 +v -73.7361 66.5326 11.6788 +v -74.4251 66.5326 5.85756 +v -74.6553 66.5326 0.000171465 +v -74.4252 66.5326 -5.85722 +v -73.7362 66.5326 -11.6785 +v -72.5926 66.5326 -17.4278 +v -71.0014 66.5326 -23.0696 +v -68.9726 66.5326 -28.5692 +v -66.5184 66.5326 -33.8926 +v -63.6542 66.5326 -39.0071 +v -60.3975 66.5326 -43.8811 +v -56.7685 66.5326 -48.4846 +v -52.7894 66.5326 -52.7891 +v -48.4849 66.5326 -56.7682 +v -43.8815 66.5326 -60.3973 +v -39.0075 66.5326 -63.654 +v -33.893 66.5326 -66.5182 +v -28.5695 66.5326 -68.9724 +v -23.07 66.5326 -71.0013 +v -17.4282 66.5326 -72.5925 +v -11.6789 66.5326 -73.7361 +v -5.85764 66.5326 -74.4251 +v -0.000248299 66.5326 -74.6553 +v 5.85714 66.5326 -74.4252 +v 11.6784 66.5326 -73.7362 +v 17.4277 66.5326 -72.5926 +v 23.0695 66.5326 -71.0015 +v 28.5691 66.5326 -68.9726 +v 33.8925 66.5326 -66.5185 +v 39.007 66.5326 -63.6543 +v 43.881 66.5326 -60.3976 +v 48.4845 66.5326 -56.7685 +v 52.789 66.5326 -52.7895 +v 56.7681 66.5326 -48.485 +v 60.3972 66.5326 -43.8815 +v 63.6539 66.5326 -39.0076 +v 66.5182 66.5326 -33.8931 +v 68.9724 66.5326 -28.5696 +v 71.0013 66.5326 -23.0701 +v 72.5925 66.5326 -17.4282 +v 73.7361 66.5326 -11.679 +v 74.4251 66.5326 -5.85773 +v 79.5292 60.6226 5.88009e-39 +v 79.2841 60.6226 6.23979 +v 78.5501 60.6226 12.4411 +v 77.3318 60.6226 18.5657 +v 75.6368 60.6226 24.5759 +v 73.4754 60.6226 30.4345 +v 70.8611 60.6226 36.1055 +v 67.8098 60.6226 41.5539 +v 64.3405 60.6226 46.7461 +v 60.4745 60.6226 51.6501 +v 56.2357 60.6226 56.2356 +v 51.6501 60.6226 60.4745 +v 46.7462 60.6226 64.3405 +v 41.554 60.6226 67.8098 +v 36.1056 60.6226 70.861 +v 30.4346 60.6226 73.4754 +v 24.576 60.6226 75.6368 +v 18.5658 60.6226 77.3318 +v 12.4412 60.6226 78.5501 +v 6.23988 60.6226 79.2841 +v 9.13299e-05 60.6226 79.5292 +v -6.23969 60.6226 79.2841 +v -12.441 60.6226 78.5501 +v -18.5656 60.6226 77.3319 +v -24.5758 60.6226 75.6368 +v -30.4344 60.6226 73.4755 +v -36.1054 60.6226 70.8611 +v -41.5538 60.6226 67.8099 +v -46.746 60.6226 64.3406 +v -51.65 60.6226 60.4746 +v -56.2356 60.6226 56.2358 +v -60.4744 60.6226 51.6502 +v -64.3404 60.6226 46.7462 +v -67.8098 60.6226 41.554 +v -70.861 60.6226 36.1057 +v -73.4754 60.6226 30.4347 +v -75.6367 60.6226 24.5761 +v -77.3318 60.6226 18.5659 +v -78.5501 60.6226 12.4413 +v -79.2841 60.6226 6.23998 +v -79.5292 60.6226 0.00018266 +v -79.2841 60.6226 -6.23961 +v -78.5501 60.6226 -12.4409 +v -77.3319 60.6226 -18.5655 +v -75.6369 60.6226 -24.5757 +v -73.4755 60.6226 -30.4343 +v -70.8612 60.6226 -36.1053 +v -67.8099 60.6226 -41.5537 +v -64.3406 60.6226 -46.7459 +v -60.4747 60.6226 -51.6499 +v -56.2358 60.6226 -56.2355 +v -51.6503 60.6226 -60.4743 +v -46.7463 60.6226 -64.3404 +v -41.5541 60.6226 -67.8097 +v -36.1057 60.6226 -70.861 +v -30.4347 60.6226 -73.4753 +v -24.5761 60.6226 -75.6367 +v -18.566 60.6226 -77.3318 +v -12.4414 60.6226 -78.5501 +v -6.24006 60.6226 -79.2841 +v -0.000264509 60.6226 -79.5292 +v 6.23953 60.6226 -79.2841 +v 12.4408 60.6226 -78.5502 +v 18.5654 60.6226 -77.3319 +v 24.5756 60.6226 -75.6369 +v 30.4343 60.6226 -73.4755 +v 36.1053 60.6226 -70.8612 +v 41.5536 60.6226 -67.81 +v 46.7459 60.6226 -64.3407 +v 51.6499 60.6226 -60.4747 +v 56.2354 60.6226 -56.2359 +v 60.4743 60.6226 -51.6503 +v 64.3403 60.6226 -46.7464 +v 67.8096 60.6226 -41.5542 +v 70.8609 60.6226 -36.1058 +v 73.4753 60.6226 -30.4348 +v 75.6367 60.6226 -24.5762 +v 77.3318 60.6226 -18.5661 +v 78.55 60.6226 -12.4415 +v 79.284 60.6226 -6.24016 +v 83.9365 54.3568 5.88009e-39 +v 83.6777 54.3568 6.58558 +v 82.9031 54.3568 13.1306 +v 81.6173 54.3568 19.5946 +v 79.8284 54.3568 25.9378 +v 77.5472 54.3568 32.1211 +v 74.788 54.3568 38.1063 +v 71.5676 54.3568 43.8567 +v 67.9061 54.3568 49.3366 +v 63.8258 54.3568 54.5124 +v 59.3521 54.3568 59.352 +v 54.5124 54.3568 63.8258 +v 49.3367 54.3568 67.906 +v 43.8568 54.3568 71.5676 +v 38.1064 54.3568 74.7879 +v 32.1212 54.3568 77.5472 +v 25.9379 54.3568 79.8283 +v 19.5947 54.3568 81.6173 +v 13.1307 54.3568 82.9031 +v 6.58567 54.3568 83.6777 +v 9.63911e-05 54.3568 83.9365 +v -6.58548 54.3568 83.6778 +v -13.1305 54.3568 82.9031 +v -19.5945 54.3568 81.6174 +v -25.9377 54.3568 79.8284 +v -32.121 54.3568 77.5473 +v -38.1063 54.3568 74.788 +v -43.8566 54.3568 71.5677 +v -49.3365 54.3568 67.9061 +v -54.5123 54.3568 63.8259 +v -59.352 54.3568 59.3522 +v -63.8257 54.3568 54.5125 +v -67.906 54.3568 49.3368 +v -71.5676 54.3568 43.8568 +v -74.7879 54.3568 38.1065 +v -77.5471 54.3568 32.1213 +v -79.8283 54.3568 25.938 +v -81.6173 54.3568 19.5948 +v -82.9031 54.3568 13.1307 +v -83.6777 54.3568 6.58578 +v -83.9365 54.3568 0.000192782 +v -83.6778 54.3568 -6.58539 +v -82.9031 54.3568 -13.1304 +v -81.6174 54.3568 -19.5944 +v -79.8284 54.3568 -25.9376 +v -77.5473 54.3568 -32.1209 +v -74.7881 54.3568 -38.1062 +v -71.5678 54.3568 -43.8565 +v -67.9062 54.3568 -49.3364 +v -63.826 54.3568 -54.5122 +v -59.3522 54.3568 -59.3519 +v -54.5126 54.3568 -63.8256 +v -49.3368 54.3568 -67.9059 +v -43.8569 54.3568 -71.5675 +v -38.1066 54.3568 -74.7879 +v -32.1213 54.3568 -77.5471 +v -25.938 54.3568 -79.8283 +v -19.5949 54.3568 -81.6173 +v -13.1308 54.3568 -82.9031 +v -6.58586 54.3568 -83.6777 +v -0.000279167 54.3568 -83.9365 +v 6.58531 54.3568 -83.6778 +v 13.1303 54.3568 -82.9032 +v 19.5943 54.3568 -81.6174 +v 25.9375 54.3568 -79.8285 +v 32.1208 54.3568 -77.5473 +v 38.1061 54.3568 -74.7881 +v 43.8564 54.3568 -71.5678 +v 49.3364 54.3568 -67.9063 +v 54.5121 54.3568 -63.826 +v 59.3518 54.3568 -59.3523 +v 63.8256 54.3568 -54.5126 +v 67.9058 54.3568 -49.3369 +v 71.5674 54.3568 -43.857 +v 74.7878 54.3568 -38.1067 +v 77.5471 54.3568 -32.1214 +v 79.8282 54.3568 -25.9381 +v 81.6172 54.3568 -19.5949 +v 82.903 54.3568 -13.1309 +v 83.6777 54.3568 -6.58597 +v 87.8512 47.772 5.88009e-39 +v 87.5804 47.772 6.89272 +v 86.7696 47.772 13.7429 +v 85.4239 47.772 20.5084 +v 83.5515 47.772 27.1475 +v 81.1639 47.772 33.6192 +v 78.276 47.772 39.8836 +v 74.9055 47.772 45.9021 +v 71.0731 47.772 51.6376 +v 66.8026 47.772 57.0547 +v 62.1202 47.772 62.1201 +v 57.0548 47.772 66.8025 +v 51.6377 47.772 71.0731 +v 45.9022 47.772 74.9054 +v 39.8837 47.772 78.276 +v 33.6193 47.772 81.1639 +v 27.1476 47.772 83.5514 +v 20.5085 47.772 85.4238 +v 13.743 47.772 86.7696 +v 6.89282 47.772 87.5804 +v 0.000100887 47.772 87.8512 +v -6.89262 47.772 87.5804 +v -13.7428 47.772 86.7696 +v -20.5083 47.772 85.4239 +v -27.1474 47.772 83.5515 +v -33.6191 47.772 81.164 +v -39.8835 47.772 78.276 +v -45.902 47.772 74.9055 +v -51.6375 47.772 71.0732 +v -57.0547 47.772 66.8027 +v -62.1201 47.772 62.1203 +v -66.8025 47.772 57.0549 +v -71.073 47.772 51.6378 +v -74.9054 47.772 45.9023 +v -78.2759 47.772 39.8838 +v -81.1638 47.772 33.6194 +v -83.5514 47.772 27.1477 +v -85.4238 47.772 20.5086 +v -86.7696 47.772 13.7431 +v -87.5804 47.772 6.89293 +v -87.8512 47.772 0.000201773 +v -87.5804 47.772 -6.89253 +v -86.7696 47.772 -13.7427 +v -85.4239 47.772 -20.5082 +v -83.5515 47.772 -27.1473 +v -81.164 47.772 -33.619 +v -78.2761 47.772 -39.8834 +v -74.9056 47.772 -45.9019 +v -71.0732 47.772 -51.6374 +v -66.8027 47.772 -57.0546 +v -62.1204 47.772 -62.12 +v -57.055 47.772 -66.8024 +v -51.6379 47.772 -71.0729 +v -45.9024 47.772 -74.9053 +v -39.8838 47.772 -78.2759 +v -33.6194 47.772 -81.1638 +v -27.1478 47.772 -83.5514 +v -20.5087 47.772 -85.4238 +v -13.7432 47.772 -86.7695 +v -6.89302 47.772 -87.5804 +v -0.000292187 47.772 -87.8512 +v 6.89244 47.772 -87.5804 +v 13.7426 47.772 -86.7696 +v 20.5081 47.772 -85.4239 +v 27.1472 47.772 -83.5515 +v 33.6189 47.772 -81.164 +v 39.8833 47.772 -78.2761 +v 45.9018 47.772 -74.9056 +v 51.6373 47.772 -71.0733 +v 57.0545 47.772 -66.8028 +v 62.1199 47.772 -62.1204 +v 66.8023 47.772 -57.055 +v 71.0729 47.772 -51.6379 +v 74.9053 47.772 -45.9024 +v 78.2758 47.772 -39.8839 +v 81.1638 47.772 -33.6195 +v 83.5513 47.772 -27.1479 +v 85.4238 47.772 -20.5088 +v 86.7695 47.772 -13.7434 +v 87.5803 47.772 -6.89313 +v 91.2503 40.9069 5.88009e-39 +v 90.969 40.9069 7.15941 +v 90.1269 40.9069 14.2747 +v 88.7291 40.9069 21.302 +v 86.7842 40.9069 28.1979 +v 84.3043 40.9069 34.92 +v 81.3046 40.9069 41.4268 +v 77.8037 40.9069 47.6781 +v 73.8231 40.9069 53.6356 +v 69.3873 40.9069 59.2623 +v 64.5238 40.9069 64.5237 +v 59.2624 40.9069 69.3873 +v 53.6356 40.9069 73.823 +v 47.6782 40.9069 77.8037 +v 41.4268 40.9069 81.3046 +v 34.9201 40.9069 84.3043 +v 28.198 40.9069 86.7842 +v 21.3021 40.9069 88.729 +v 14.2748 40.9069 90.1269 +v 7.15951 40.9069 90.969 +v 0.00010479 40.9069 91.2503 +v -7.15931 40.9069 90.969 +v -14.2746 40.9069 90.1269 +v -21.3019 40.9069 88.7291 +v -28.1978 40.9069 86.7843 +v -34.9199 40.9069 84.3044 +v -41.4267 40.9069 81.3047 +v -47.678 40.9069 77.8038 +v -53.6355 40.9069 73.8231 +v -59.2622 40.9069 69.3874 +v -64.5236 40.9069 64.5238 +v -69.3872 40.9069 59.2625 +v -73.823 40.9069 53.6357 +v -77.8036 40.9069 47.6783 +v -81.3046 40.9069 41.4269 +v -84.3042 40.9069 34.9202 +v -86.7842 40.9069 28.1981 +v -88.729 40.9069 21.3022 +v -90.1269 40.9069 14.2749 +v -90.969 40.9069 7.15963 +v -91.2503 40.9069 0.00020958 +v -90.969 40.9069 -7.15921 +v -90.1269 40.9069 -14.2745 +v -88.7291 40.9069 -21.3018 +v -86.7843 40.9069 -28.1977 +v -84.3044 40.9069 -34.9198 +v -81.3047 40.9069 -41.4266 +v -77.8038 40.9069 -47.6779 +v -73.8232 40.9069 -53.6354 +v -69.3875 40.9069 -59.2622 +v -64.5239 40.9069 -64.5235 +v -59.2626 40.9069 -69.3871 +v -53.6358 40.9069 -73.8229 +v -47.6784 40.9069 -77.8036 +v -41.427 40.9069 -81.3045 +v -34.9202 40.9069 -84.3042 +v -28.1982 40.9069 -86.7841 +v -21.3023 40.9069 -88.729 +v -14.275 40.9069 -90.1268 +v -7.15972 40.9069 -90.969 +v -0.000303493 40.9069 -91.2503 +v 7.15912 40.9069 -90.9691 +v 14.2744 40.9069 -90.1269 +v 21.3016 40.9069 -88.7292 +v 28.1976 40.9069 -86.7843 +v 34.9197 40.9069 -84.3044 +v 41.4265 40.9069 -81.3048 +v 47.6778 40.9069 -77.8039 +v 53.6353 40.9069 -73.8233 +v 59.2621 40.9069 -69.3875 +v 64.5235 40.9069 -64.524 +v 69.3871 40.9069 -59.2626 +v 73.8228 40.9069 -53.6359 +v 77.8035 40.9069 -47.6785 +v 81.3045 40.9069 -41.4271 +v 84.3042 40.9069 -34.9203 +v 86.7841 40.9069 -28.1983 +v 88.729 40.9069 -21.3023 +v 90.1268 40.9069 -14.2751 +v 90.969 40.9069 -7.15984 +v 94.114 33.8018 5.88009e-39 +v 93.8239 33.8018 7.38409 +v 92.9553 33.8018 14.7227 +v 91.5136 33.8018 21.9705 +v 89.5077 33.8018 29.0828 +v 86.95 33.8018 36.0158 +v 83.8562 33.8018 42.7268 +v 80.2454 33.8018 49.1744 +v 76.1398 33.8018 55.3188 +v 71.5649 33.8018 61.1221 +v 66.5487 33.8018 66.5486 +v 61.1222 33.8018 71.5648 +v 55.3189 33.8018 76.1398 +v 49.1745 33.8018 80.2453 +v 42.7269 33.8018 83.8561 +v 36.0159 33.8018 86.9499 +v 29.0829 33.8018 89.5077 +v 21.9706 33.8018 91.5136 +v 14.7228 33.8018 92.9553 +v 7.3842 33.8018 93.8238 +v 0.000108079 33.8018 94.114 +v -7.38398 33.8018 93.8239 +v -14.7226 33.8018 92.9553 +v -21.9704 33.8018 91.5136 +v -29.0827 33.8018 89.5078 +v -36.0157 33.8018 86.95 +v -42.7267 33.8018 83.8562 +v -49.1743 33.8018 80.2454 +v -55.3187 33.8018 76.1399 +v -61.122 33.8018 71.5649 +v -66.5485 33.8018 66.5487 +v -71.5647 33.8018 61.1223 +v -76.1397 33.8018 55.3189 +v -80.2453 33.8018 49.1746 +v -83.8561 33.8018 42.727 +v -86.9499 33.8018 36.016 +v -89.5076 33.8018 29.083 +v -91.5135 33.8018 21.9707 +v -92.9552 33.8018 14.7229 +v -93.8238 33.8018 7.38432 +v -94.114 33.8018 0.000216157 +v -93.8239 33.8018 -7.38388 +v -92.9553 33.8018 -14.7224 +v -91.5136 33.8018 -21.9702 +v -89.5078 33.8018 -29.0826 +v -86.9501 33.8018 -36.0156 +v -83.8563 33.8018 -42.7266 +v -80.2455 33.8018 -49.1742 +v -76.14 33.8018 -55.3186 +v -71.565 33.8018 -61.1219 +v -66.5488 33.8018 -66.5484 +v -61.1224 33.8018 -71.5646 +v -55.319 33.8018 -76.1396 +v -49.1747 33.8018 -80.2452 +v -42.7271 33.8018 -83.856 +v -36.0161 33.8018 -86.9499 +v -29.0831 33.8018 -89.5076 +v -21.9708 33.8018 -91.5135 +v -14.723 33.8018 -92.9552 +v -7.38441 33.8018 -93.8238 +v -0.000313017 33.8018 -94.114 +v 7.38379 33.8018 -93.8239 +v 14.7223 33.8018 -92.9553 +v 21.9701 33.8018 -91.5137 +v 29.0825 33.8018 -89.5078 +v 36.0155 33.8018 -86.9501 +v 42.7265 33.8018 -83.8563 +v 49.1741 33.8018 -80.2456 +v 55.3185 33.8018 -76.14 +v 61.1219 33.8018 -71.5651 +v 66.5484 33.8018 -66.5489 +v 71.5646 33.8018 -61.1224 +v 76.1396 33.8018 -55.3191 +v 80.2451 33.8018 -49.1748 +v 83.856 33.8018 -42.7272 +v 86.9498 33.8018 -36.0162 +v 89.5076 33.8018 -29.0832 +v 91.5135 33.8018 -21.9709 +v 92.9552 33.8018 -14.7231 +v 93.8238 33.8018 -7.38453 +v 96.4253 26.4982 5.88009e-39 +v 96.1281 26.4982 7.56544 +v 95.2382 26.4982 15.0842 +v 93.7611 26.4982 22.51 +v 91.7059 26.4982 29.797 +v 89.0854 26.4982 36.9003 +v 85.9156 26.4982 43.7761 +v 82.2161 26.4982 50.3821 +v 78.0098 26.4982 56.6773 +v 73.3224 26.4982 62.6232 +v 68.183 26.4982 68.183 +v 62.6233 26.4982 73.3224 +v 56.6774 26.4982 78.0097 +v 50.3822 26.4982 82.2161 +v 43.7762 26.4982 85.9156 +v 36.9004 26.4982 89.0854 +v 29.7971 26.4982 91.7059 +v 22.5101 26.4982 93.7611 +v 15.0843 26.4982 95.2382 +v 7.56555 26.4982 96.1281 +v 0.000110733 26.4982 96.4253 +v -7.56532 26.4982 96.1281 +v -15.0841 26.4982 95.2382 +v -22.5099 26.4982 93.7611 +v -29.7969 26.4982 91.706 +v -36.9002 26.4982 89.0854 +v -43.776 26.4982 85.9157 +v -50.382 26.4982 82.2162 +v -56.6773 26.4982 78.0098 +v -62.6231 26.4982 73.3225 +v -68.1829 26.4982 68.1831 +v -73.3223 26.4982 62.6234 +v -78.0096 26.4982 56.6775 +v -82.216 26.4982 50.3822 +v -85.9155 26.4982 43.7764 +v -89.0853 26.4982 36.9006 +v -91.7059 26.4982 29.7973 +v -93.761 26.4982 22.5102 +v -95.2381 26.4982 15.0844 +v -96.1281 26.4982 7.56567 +v -96.4253 26.4982 0.000221466 +v -96.1281 26.4982 -7.56523 +v -95.2382 26.4982 -15.084 +v -93.7611 26.4982 -22.5098 +v -91.706 26.4982 -29.7968 +v -89.0855 26.4982 -36.9001 +v -85.9157 26.4982 -43.776 +v -82.2162 26.4982 -50.3819 +v -78.0099 26.4982 -56.6772 +v -73.3226 26.4982 -62.623 +v -68.1832 26.4982 -68.1828 +v -62.6235 26.4982 -73.3222 +v -56.6776 26.4982 -78.0096 +v -50.3823 26.4982 -82.216 +v -43.7764 26.4982 -85.9155 +v -36.9006 26.4982 -89.0853 +v -29.7973 26.4982 -91.7058 +v -22.5104 26.4982 -93.761 +v -15.0846 26.4982 -95.2381 +v -7.56577 26.4982 -96.1281 +v -0.000320704 26.4982 -96.4253 +v 7.56513 26.4982 -96.1281 +v 15.0839 26.4982 -95.2382 +v 22.5097 26.4982 -93.7612 +v 29.7967 26.4982 -91.706 +v 36.9001 26.4982 -89.0855 +v 43.7759 26.4982 -85.9157 +v 50.3818 26.4982 -82.2163 +v 56.6771 26.4982 -78.01 +v 62.6229 26.4982 -73.3226 +v 68.1827 26.4982 -68.1833 +v 73.3221 26.4982 -62.6235 +v 78.0095 26.4982 -56.6777 +v 82.2159 26.4982 -50.3825 +v 85.9154 26.4982 -43.7766 +v 89.0852 26.4982 -36.9008 +v 91.7058 26.4982 -29.7975 +v 93.761 26.4982 -22.5104 +v 95.2381 26.4982 -15.0847 +v 96.128 26.4982 -7.56589 +v 98.1708 19.0392 5.88009e-39 +v 97.8682 19.0392 7.70239 +v 96.9622 19.0392 15.3573 +v 95.4584 19.0392 22.9175 +v 93.366 19.0392 30.3364 +v 90.698 19.0392 37.5683 +v 87.4708 19.0392 44.5686 +v 83.7044 19.0392 51.2941 +v 79.4219 19.0392 57.7033 +v 74.6497 19.0392 63.7568 +v 69.4173 19.0392 69.4172 +v 63.7569 19.0392 74.6496 +v 57.7034 19.0392 79.4218 +v 51.2942 19.0392 83.7043 +v 44.5687 19.0392 87.4708 +v 37.5684 19.0392 90.698 +v 30.3365 19.0392 93.366 +v 22.9176 19.0392 95.4583 +v 15.3574 19.0392 96.9622 +v 7.7025 19.0392 97.8682 +v 0.000112738 19.0392 98.1708 +v -7.70227 19.0392 97.8682 +v -15.3572 19.0392 96.9622 +v -22.9174 19.0392 95.4584 +v -30.3363 19.0392 93.366 +v -37.5682 19.0392 90.6981 +v -44.5685 19.0392 87.4709 +v -51.294 19.0392 83.7045 +v -57.7032 19.0392 79.4219 +v -63.7567 19.0392 74.6498 +v -69.4171 19.0392 69.4174 +v -74.6496 19.0392 63.757 +v -79.4218 19.0392 57.7035 +v -83.7043 19.0392 51.2943 +v -87.4707 19.0392 44.5688 +v -90.6979 19.0392 37.5685 +v -93.3659 19.0392 30.3367 +v -95.4583 19.0392 22.9177 +v -96.9621 19.0392 15.3575 +v -97.8682 19.0392 7.70262 +v -98.1708 19.0392 0.000225475 +v -97.8682 19.0392 -7.70217 +v -96.9622 19.0392 -15.3571 +v -95.4584 19.0392 -22.9173 +v -93.3661 19.0392 -30.3362 +v -90.6981 19.0392 -37.5681 +v -87.471 19.0392 -44.5684 +v -83.7045 19.0392 -51.2939 +v -79.422 19.0392 -57.7031 +v -74.6498 19.0392 -63.7566 +v -69.4174 19.0392 -69.417 +v -63.7571 19.0392 -74.6495 +v -57.7036 19.0392 -79.4217 +v -51.2944 19.0392 -83.7042 +v -44.5689 19.0392 -87.4707 +v -37.5686 19.0392 -90.6979 +v -30.3367 19.0392 -93.3659 +v -22.9178 19.0392 -95.4583 +v -15.3576 19.0392 -96.9621 +v -7.70272 19.0392 -97.8682 +v -0.00032651 19.0392 -98.1708 +v 7.70207 19.0392 -97.8682 +v 15.3569 19.0392 -96.9622 +v 22.9172 19.0392 -95.4584 +v 30.3361 19.0392 -93.3661 +v 37.568 19.0392 -90.6981 +v 44.5683 19.0392 -87.471 +v 51.2938 19.0392 -83.7046 +v 57.703 19.0392 -79.4221 +v 63.7565 19.0392 -74.6499 +v 69.417 19.0392 -69.4175 +v 74.6494 19.0392 -63.7571 +v 79.4216 19.0392 -57.7037 +v 83.7042 19.0392 -51.2945 +v 87.4706 19.0392 -44.569 +v 90.6978 19.0392 -37.5687 +v 93.3659 19.0392 -30.3368 +v 95.4583 19.0392 -22.9179 +v 96.9621 19.0392 -15.3578 +v 97.8681 19.0392 -7.70285 +v 99.3402 11.4684 5.88009e-39 +v 99.034 11.4684 7.79414 +v 98.1172 11.4684 15.5402 +v 96.5954 11.4684 23.1905 +v 94.4781 11.4684 30.6978 +v 91.7784 11.4684 38.0158 +v 88.5128 11.4684 45.0995 +v 84.7015 11.4684 51.9051 +v 80.3679 11.4684 58.3907 +v 75.5389 11.4684 64.5163 +v 70.2442 11.4684 70.2441 +v 64.5163 11.4684 75.5388 +v 58.3908 11.4684 80.3679 +v 51.9052 11.4684 84.7014 +v 45.0996 11.4684 88.5127 +v 38.0159 11.4684 91.7783 +v 30.6979 11.4684 94.4781 +v 23.1906 11.4684 96.5954 +v 15.5403 11.4684 98.1171 +v 7.79425 11.4684 99.034 +v 0.00011408 11.4684 99.3402 +v -7.79402 11.4684 99.034 +v -15.5401 11.4684 98.1172 +v -23.1904 11.4684 96.5954 +v -30.6977 11.4684 94.4782 +v -38.0157 11.4684 91.7784 +v -45.0994 11.4684 88.5128 +v -51.905 11.4684 84.7015 +v -58.3906 11.4684 80.368 +v -64.5162 11.4684 75.539 +v -70.244 11.4684 70.2442 +v -75.5388 11.4684 64.5164 +v -80.3678 11.4684 58.3909 +v -84.7013 11.4684 51.9053 +v -88.5127 11.4684 45.0997 +v -91.7783 11.4684 38.016 +v -94.4781 11.4684 30.698 +v -96.5954 11.4684 23.1907 +v -98.1171 11.4684 15.5404 +v -99.0339 11.4684 7.79437 +v -99.3402 11.4684 0.000228161 +v -99.034 11.4684 -7.79392 +v -98.1172 11.4684 -15.54 +v -96.5955 11.4684 -23.1903 +v -94.4782 11.4684 -30.6976 +v -91.7785 11.4684 -38.0156 +v -88.5129 11.4684 -45.0993 +v -84.7016 11.4684 -51.9049 +v -80.3681 11.4684 -58.3905 +v -75.5391 11.4684 -64.5161 +v -70.2443 11.4684 -70.2439 +v -64.5165 11.4684 -75.5387 +v -58.3909 11.4684 -80.3677 +v -51.9054 11.4684 -84.7013 +v -45.0998 11.4684 -88.5126 +v -38.0161 11.4684 -91.7783 +v -30.6981 11.4684 -94.4781 +v -23.1908 11.4684 -96.5953 +v -15.5406 11.4684 -98.1171 +v -7.79447 11.4684 -99.0339 +v -0.000330399 11.4684 -99.3402 +v 7.79382 11.4684 -99.034 +v 15.5399 11.4684 -98.1172 +v 23.1901 11.4684 -96.5955 +v 30.6975 11.4684 -94.4782 +v 38.0155 11.4684 -91.7785 +v 45.0992 11.4684 -88.5129 +v 51.9048 11.4684 -84.7017 +v 58.3904 11.4684 -80.3681 +v 64.516 11.4684 -75.5391 +v 70.2439 11.4684 -70.2444 +v 75.5386 11.4684 -64.5166 +v 80.3677 11.4684 -58.3911 +v 84.7012 11.4684 -51.9055 +v 88.5126 11.4684 -45.0999 +v 91.7782 11.4684 -38.0162 +v 94.478 11.4684 -30.6982 +v 96.5953 11.4684 -23.1909 +v 98.1171 11.4684 -15.5407 +v 99.0339 11.4684 -7.7946 +v 99.9266 3.83039 5.88009e-39 +v 99.6186 3.83039 7.84015 +v 98.6964 3.83039 15.632 +v 97.1656 3.83039 23.3274 +v 95.0359 3.83039 30.879 +v 92.3202 3.83039 38.2402 +v 89.0353 3.83039 45.3657 +v 85.2015 3.83039 52.2115 +v 80.8424 3.83039 58.7354 +v 75.9848 3.83039 64.8971 +v 70.6588 3.83039 70.6587 +v 64.8972 3.83039 75.9848 +v 58.7354 3.83039 80.8423 +v 52.2116 3.83039 85.2014 +v 45.3658 3.83039 89.0352 +v 38.2403 3.83039 92.3201 +v 30.8791 3.83039 95.0358 +v 23.3275 3.83039 97.1656 +v 15.6321 3.83039 98.6963 +v 7.84026 3.83039 99.6186 +v 0.000114754 3.83039 99.9266 +v -7.84003 3.83039 99.6186 +v -15.6318 3.83039 98.6964 +v -23.3273 3.83039 97.1657 +v -30.8789 3.83039 95.0359 +v -38.2401 3.83039 92.3202 +v -45.3656 3.83039 89.0353 +v -52.2114 3.83039 85.2015 +v -58.7353 3.83039 80.8424 +v -64.897 3.83039 75.9849 +v -70.6587 3.83039 70.6589 +v -75.9847 3.83039 64.8973 +v -80.8422 3.83039 58.7355 +v -85.2013 3.83039 52.2117 +v -89.0352 3.83039 45.3659 +v -92.3201 3.83039 38.2404 +v -95.0358 3.83039 30.8792 +v -97.1656 3.83039 23.3276 +v -98.6963 3.83039 15.6322 +v -99.6186 3.83039 7.84038 +v -99.9266 3.83039 0.000229508 +v -99.6186 3.83039 -7.83993 +v -98.6964 3.83039 -15.6317 +v -97.1657 3.83039 -23.3272 +v -95.0359 3.83039 -30.8788 +v -92.3203 3.83039 -38.24 +v -89.0354 3.83039 -45.3655 +v -85.2016 3.83039 -52.2113 +v -80.8425 3.83039 -58.7352 +v -75.985 3.83039 -64.8969 +v -70.659 3.83039 -70.6586 +v -64.8974 3.83039 -75.9846 +v -58.7356 3.83039 -80.8421 +v -52.2118 3.83039 -85.2013 +v -45.366 3.83039 -89.0351 +v -38.2405 3.83039 -92.32 +v -30.8793 3.83039 -95.0358 +v -23.3277 3.83039 -97.1656 +v -15.6323 3.83039 -98.6963 +v -7.84049 3.83039 -99.6185 +v -0.000332349 3.83039 -99.9266 +v 7.83982 3.83039 -99.6186 +v 15.6316 3.83039 -98.6964 +v 23.327 3.83039 -97.1657 +v 30.8787 3.83039 -95.036 +v 38.2399 3.83039 -92.3203 +v 45.3654 3.83039 -89.0354 +v 52.2112 3.83039 -85.2017 +v 58.7351 3.83039 -80.8426 +v 64.8968 3.83039 -75.9851 +v 70.6585 3.83039 -70.6591 +v 75.9845 3.83039 -64.8974 +v 80.8421 3.83039 -58.7357 +v 85.2012 3.83039 -52.2119 +v 89.0351 3.83039 -45.3661 +v 92.32 3.83039 -38.2407 +v 95.0357 3.83039 -30.8794 +v 97.1655 3.83039 -23.3278 +v 98.6963 3.83039 -15.6324 +v 99.6185 3.83039 -7.84061 +v 99.9266 -3.83016 5.88009e-39 +v 99.6186 -3.83016 7.84015 +v 98.6964 -3.83016 15.632 +v 97.1656 -3.83016 23.3274 +v 95.0359 -3.83016 30.879 +v 92.3202 -3.83016 38.2402 +v 89.0353 -3.83016 45.3657 +v 85.2015 -3.83016 52.2115 +v 80.8424 -3.83016 58.7354 +v 75.9848 -3.83016 64.8971 +v 70.6588 -3.83016 70.6588 +v 64.8972 -3.83016 75.9848 +v 58.7355 -3.83016 80.8423 +v 52.2116 -3.83016 85.2014 +v 45.3658 -3.83016 89.0352 +v 38.2403 -3.83016 92.3201 +v 30.8791 -3.83016 95.0358 +v 23.3275 -3.83016 97.1656 +v 15.6321 -3.83016 98.6963 +v 7.84026 -3.83016 99.6186 +v 0.000114754 -3.83016 99.9266 +v -7.84003 -3.83016 99.6186 +v -15.6318 -3.83016 98.6964 +v -23.3273 -3.83016 97.1657 +v -30.8789 -3.83016 95.0359 +v -38.2401 -3.83016 92.3202 +v -45.3656 -3.83016 89.0353 +v -52.2114 -3.83016 85.2015 +v -58.7353 -3.83016 80.8424 +v -64.897 -3.83016 75.9849 +v -70.6587 -3.83016 70.6589 +v -75.9847 -3.83016 64.8973 +v -80.8422 -3.83016 58.7355 +v -85.2014 -3.83016 52.2117 +v -89.0352 -3.83016 45.3659 +v -92.3201 -3.83016 38.2404 +v -95.0358 -3.83016 30.8792 +v -97.1656 -3.83016 23.3276 +v -98.6963 -3.83016 15.6322 +v -99.6186 -3.83016 7.84038 +v -99.9266 -3.83016 0.000229508 +v -99.6186 -3.83016 -7.83993 +v -98.6964 -3.83016 -15.6317 +v -97.1657 -3.83016 -23.3272 +v -95.0359 -3.83016 -30.8788 +v -92.3203 -3.83016 -38.24 +v -89.0354 -3.83016 -45.3655 +v -85.2016 -3.83016 -52.2113 +v -80.8425 -3.83016 -58.7352 +v -75.985 -3.83016 -64.8969 +v -70.659 -3.83016 -70.6586 +v -64.8974 -3.83016 -75.9846 +v -58.7356 -3.83016 -80.8422 +v -52.2118 -3.83016 -85.2013 +v -45.366 -3.83016 -89.0351 +v -38.2405 -3.83016 -92.32 +v -30.8793 -3.83016 -95.0358 +v -23.3277 -3.83016 -97.1656 +v -15.6323 -3.83016 -98.6963 +v -7.84049 -3.83016 -99.6186 +v -0.000332349 -3.83016 -99.9266 +v 7.83982 -3.83016 -99.6186 +v 15.6316 -3.83016 -98.6964 +v 23.327 -3.83016 -97.1657 +v 30.8787 -3.83016 -95.036 +v 38.2399 -3.83016 -92.3203 +v 45.3654 -3.83016 -89.0354 +v 52.2112 -3.83016 -85.2017 +v 58.7351 -3.83016 -80.8426 +v 64.8968 -3.83016 -75.9851 +v 70.6585 -3.83016 -70.6591 +v 75.9845 -3.83016 -64.8974 +v 80.8421 -3.83016 -58.7357 +v 85.2012 -3.83016 -52.2119 +v 89.0351 -3.83016 -45.3661 +v 92.32 -3.83016 -38.2407 +v 95.0357 -3.83016 -30.8794 +v 97.1655 -3.83016 -23.3278 +v 98.6963 -3.83016 -15.6324 +v 99.6185 -3.83016 -7.84061 +v 99.3402 -11.4682 5.88009e-39 +v 99.034 -11.4682 7.79414 +v 98.1172 -11.4682 15.5402 +v 96.5955 -11.4682 23.1905 +v 94.4782 -11.4682 30.6978 +v 91.7784 -11.4682 38.0158 +v 88.5128 -11.4682 45.0995 +v 84.7015 -11.4682 51.9051 +v 80.368 -11.4682 58.3907 +v 75.5389 -11.4682 64.5163 +v 70.2442 -11.4682 70.2441 +v 64.5164 -11.4682 75.5389 +v 58.3908 -11.4682 80.3679 +v 51.9052 -11.4682 84.7014 +v 45.0996 -11.4682 88.5128 +v 38.0159 -11.4682 91.7784 +v 30.6979 -11.4682 94.4781 +v 23.1906 -11.4682 96.5954 +v 15.5403 -11.4682 98.1172 +v 7.79425 -11.4682 99.034 +v 0.00011408 -11.4682 99.3402 +v -7.79402 -11.4682 99.034 +v -15.5401 -11.4682 98.1172 +v -23.1904 -11.4682 96.5955 +v -30.6977 -11.4682 94.4782 +v -38.0157 -11.4682 91.7785 +v -45.0994 -11.4682 88.5129 +v -51.905 -11.4682 84.7015 +v -58.3906 -11.4682 80.368 +v -64.5162 -11.4682 75.539 +v -70.244 -11.4682 70.2443 +v -75.5388 -11.4682 64.5165 +v -80.3678 -11.4682 58.3909 +v -84.7014 -11.4682 51.9053 +v -88.5127 -11.4682 45.0997 +v -91.7783 -11.4682 38.016 +v -94.4781 -11.4682 30.698 +v -96.5954 -11.4682 23.1907 +v -98.1171 -11.4682 15.5404 +v -99.034 -11.4682 7.79437 +v -99.3402 -11.4682 0.000228161 +v -99.034 -11.4682 -7.79392 +v -98.1172 -11.4682 -15.54 +v -96.5955 -11.4682 -23.1903 +v -94.4782 -11.4682 -30.6976 +v -91.7785 -11.4682 -38.0156 +v -88.5129 -11.4682 -45.0993 +v -84.7016 -11.4682 -51.9049 +v -80.3681 -11.4682 -58.3905 +v -75.5391 -11.4682 -64.5161 +v -70.2444 -11.4682 -70.2439 +v -64.5166 -11.4682 -75.5387 +v -58.391 -11.4682 -80.3678 +v -51.9054 -11.4682 -84.7013 +v -45.0998 -11.4682 -88.5126 +v -38.0161 -11.4682 -91.7783 +v -30.6981 -11.4682 -94.4781 +v -23.1908 -11.4682 -96.5954 +v -15.5406 -11.4682 -98.1171 +v -7.79448 -11.4682 -99.034 +v -0.000330399 -11.4682 -99.3402 +v 7.79382 -11.4682 -99.034 +v 15.5399 -11.4682 -98.1172 +v 23.1902 -11.4682 -96.5955 +v 30.6975 -11.4682 -94.4783 +v 38.0155 -11.4682 -91.7785 +v 45.0992 -11.4682 -88.513 +v 51.9048 -11.4682 -84.7017 +v 58.3904 -11.4682 -80.3682 +v 64.516 -11.4682 -75.5392 +v 70.2439 -11.4682 -70.2444 +v 75.5386 -11.4682 -64.5166 +v 80.3677 -11.4682 -58.3911 +v 84.7012 -11.4682 -51.9055 +v 88.5126 -11.4682 -45.0999 +v 91.7782 -11.4682 -38.0163 +v 94.478 -11.4682 -30.6982 +v 96.5954 -11.4682 -23.1909 +v 98.1171 -11.4682 -15.5407 +v 99.034 -11.4682 -7.7946 +v 98.1709 -19.039 5.88009e-39 +v 97.8682 -19.039 7.70239 +v 96.9622 -19.039 15.3573 +v 95.4584 -19.039 22.9175 +v 93.366 -19.039 30.3364 +v 90.6981 -19.039 37.5683 +v 87.4709 -19.039 44.5686 +v 83.7044 -19.039 51.2941 +v 79.4219 -19.039 57.7033 +v 74.6497 -19.039 63.7568 +v 69.4173 -19.039 69.4172 +v 63.7569 -19.039 74.6497 +v 57.7034 -19.039 79.4219 +v 51.2942 -19.039 83.7044 +v 44.5687 -19.039 87.4708 +v 37.5684 -19.039 90.698 +v 30.3365 -19.039 93.366 +v 22.9176 -19.039 95.4584 +v 15.3574 -19.039 96.9622 +v 7.7025 -19.039 97.8682 +v 0.000112738 -19.039 98.1709 +v -7.70228 -19.039 97.8682 +v -15.3572 -19.039 96.9622 +v -22.9174 -19.039 95.4584 +v -30.3363 -19.039 93.3661 +v -37.5682 -19.039 90.6981 +v -44.5685 -19.039 87.4709 +v -51.294 -19.039 83.7045 +v -57.7033 -19.039 79.422 +v -63.7567 -19.039 74.6498 +v -69.4172 -19.039 69.4174 +v -74.6496 -19.039 63.757 +v -79.4218 -19.039 57.7035 +v -83.7043 -19.039 51.2943 +v -87.4708 -19.039 44.5688 +v -90.698 -19.039 37.5685 +v -93.366 -19.039 30.3367 +v -95.4583 -19.039 22.9177 +v -96.9622 -19.039 15.3575 +v -97.8682 -19.039 7.70262 +v -98.1709 -19.039 0.000225475 +v -97.8682 -19.039 -7.70218 +v -96.9622 -19.039 -15.3571 +v -95.4585 -19.039 -22.9173 +v -93.3661 -19.039 -30.3362 +v -90.6981 -19.039 -37.5681 +v -87.471 -19.039 -44.5684 +v -83.7046 -19.039 -51.2939 +v -79.4221 -19.039 -57.7032 +v -74.6499 -19.039 -63.7567 +v -69.4175 -19.039 -69.4171 +v -63.7571 -19.039 -74.6495 +v -57.7036 -19.039 -79.4217 +v -51.2944 -19.039 -83.7043 +v -44.5689 -19.039 -87.4707 +v -37.5686 -19.039 -90.6979 +v -30.3367 -19.039 -93.3659 +v -22.9179 -19.039 -95.4583 +v -15.3576 -19.039 -96.9622 +v -7.70273 -19.039 -97.8682 +v -0.00032651 -19.039 -98.1709 +v 7.70207 -19.039 -97.8683 +v 15.3569 -19.039 -96.9623 +v 22.9172 -19.039 -95.4585 +v 30.3361 -19.039 -93.3661 +v 37.568 -19.039 -90.6982 +v 44.5683 -19.039 -87.471 +v 51.2938 -19.039 -83.7046 +v 57.7031 -19.039 -79.4221 +v 63.7566 -19.039 -74.65 +v 69.417 -19.039 -69.4176 +v 74.6495 -19.039 -63.7572 +v 79.4216 -19.039 -57.7037 +v 83.7042 -19.039 -51.2945 +v 87.4707 -19.039 -44.569 +v 90.6979 -19.039 -37.5687 +v 93.3659 -19.039 -30.3369 +v 95.4583 -19.039 -22.9179 +v 96.9621 -19.039 -15.3578 +v 97.8682 -19.039 -7.70285 +v 96.4254 -26.498 5.88009e-39 +v 96.1281 -26.498 7.56544 +v 95.2382 -26.498 15.0842 +v 93.7611 -26.498 22.51 +v 91.706 -26.498 29.7971 +v 89.0854 -26.498 36.9004 +v 85.9157 -26.498 43.7762 +v 82.2162 -26.498 50.3821 +v 78.0098 -26.498 56.6774 +v 73.3225 -26.498 62.6232 +v 68.1831 -26.498 68.183 +v 62.6233 -26.498 73.3224 +v 56.6775 -26.498 78.0097 +v 50.3822 -26.498 82.2161 +v 43.7763 -26.498 85.9156 +v 36.9005 -26.498 89.0854 +v 29.7972 -26.498 91.706 +v 22.5102 -26.498 93.7611 +v 15.0844 -26.498 95.2382 +v 7.56555 -26.498 96.1281 +v 0.000110733 -26.498 96.4254 +v -7.56533 -26.498 96.1281 +v -15.0841 -26.498 95.2382 +v -22.5099 -26.498 93.7612 +v -29.797 -26.498 91.706 +v -36.9003 -26.498 89.0855 +v -43.7761 -26.498 85.9157 +v -50.382 -26.498 82.2162 +v -56.6773 -26.498 78.0099 +v -62.6232 -26.498 73.3225 +v -68.1829 -26.498 68.1832 +v -73.3223 -26.498 62.6234 +v -78.0097 -26.498 56.6776 +v -82.2161 -26.498 50.3823 +v -85.9156 -26.498 43.7764 +v -89.0854 -26.498 36.9006 +v -91.7059 -26.498 29.7973 +v -93.7611 -26.498 22.5103 +v -95.2382 -26.498 15.0845 +v -96.1281 -26.498 7.56567 +v -96.4254 -26.498 0.000221466 +v -96.1282 -26.498 -7.56523 +v -95.2383 -26.498 -15.084 +v -93.7612 -26.498 -22.5098 +v -91.7061 -26.498 -29.7969 +v -89.0855 -26.498 -36.9002 +v -85.9158 -26.498 -43.776 +v -82.2163 -26.498 -50.3819 +v -78.0099 -26.498 -56.6772 +v -73.3226 -26.498 -62.6231 +v -68.1832 -26.498 -68.1828 +v -62.6235 -26.498 -73.3222 +v -56.6777 -26.498 -78.0096 +v -50.3824 -26.498 -82.216 +v -43.7765 -26.498 -85.9155 +v -36.9007 -26.498 -89.0853 +v -29.7974 -26.498 -91.7059 +v -22.5104 -26.498 -93.7611 +v -15.0846 -26.498 -95.2382 +v -7.56577 -26.498 -96.1281 +v -0.000320705 -26.498 -96.4254 +v 7.56513 -26.498 -96.1282 +v 15.0839 -26.498 -95.2383 +v 22.5097 -26.498 -93.7612 +v 29.7967 -26.498 -91.7061 +v 36.9001 -26.498 -89.0856 +v 43.7759 -26.498 -85.9158 +v 50.3818 -26.498 -82.2164 +v 56.6771 -26.498 -78.01 +v 62.623 -26.498 -73.3227 +v 68.1828 -26.498 -68.1833 +v 73.3222 -26.498 -62.6236 +v 78.0095 -26.498 -56.6778 +v 82.2159 -26.498 -50.3825 +v 85.9155 -26.498 -43.7766 +v 89.0853 -26.498 -36.9008 +v 91.7059 -26.498 -29.7975 +v 93.761 -26.498 -22.5105 +v 95.2382 -26.498 -15.0847 +v 96.1281 -26.498 -7.56589 +v 94.1141 -33.8016 5.88009e-39 +v 93.8239 -33.8016 7.3841 +v 92.9554 -33.8016 14.7227 +v 91.5137 -33.8016 21.9705 +v 89.5078 -33.8016 29.0828 +v 86.9501 -33.8016 36.0159 +v 83.8562 -33.8016 42.7269 +v 80.2454 -33.8016 49.1744 +v 76.1399 -33.8016 55.3188 +v 71.5649 -33.8016 61.1221 +v 66.5487 -33.8016 66.5486 +v 61.1222 -33.8016 71.5648 +v 55.3189 -33.8016 76.1398 +v 49.1745 -33.8016 80.2454 +v 42.7269 -33.8016 83.8562 +v 36.016 -33.8016 86.95 +v 29.0829 -33.8016 89.5078 +v 21.9706 -33.8016 91.5136 +v 14.7228 -33.8016 92.9553 +v 7.3842 -33.8016 93.8239 +v 0.000108079 -33.8016 94.1141 +v -7.38399 -33.8016 93.8239 +v -14.7226 -33.8016 92.9554 +v -21.9704 -33.8016 91.5137 +v -29.0827 -33.8016 89.5078 +v -36.0158 -33.8016 86.9501 +v -42.7268 -33.8016 83.8563 +v -49.1743 -33.8016 80.2455 +v -55.3187 -33.8016 76.1399 +v -61.1221 -33.8016 71.565 +v -66.5486 -33.8016 66.5488 +v -71.5648 -33.8016 61.1223 +v -76.1398 -33.8016 55.319 +v -80.2453 -33.8016 49.1746 +v -83.8561 -33.8016 42.7271 +v -86.95 -33.8016 36.0161 +v -89.5077 -33.8016 29.083 +v -91.5136 -33.8016 21.9707 +v -92.9553 -33.8016 14.7229 +v -93.8239 -33.8016 7.38432 +v -94.1141 -33.8016 0.000216158 +v -93.8239 -33.8016 -7.38389 +v -92.9554 -33.8016 -14.7225 +v -91.5137 -33.8016 -21.9703 +v -89.5079 -33.8016 -29.0826 +v -86.9501 -33.8016 -36.0157 +v -83.8563 -33.8016 -42.7267 +v -80.2456 -33.8016 -49.1742 +v -76.14 -33.8016 -55.3186 +v -71.5651 -33.8016 -61.122 +v -66.5489 -33.8016 -66.5485 +v -61.1224 -33.8016 -71.5647 +v -55.3191 -33.8016 -76.1397 +v -49.1747 -33.8016 -80.2453 +v -42.7271 -33.8016 -83.8561 +v -36.0162 -33.8016 -86.9499 +v -29.0831 -33.8016 -89.5077 +v -21.9708 -33.8016 -91.5136 +v -14.723 -33.8016 -92.9553 +v -7.38442 -33.8016 -93.8239 +v -0.000313017 -33.8016 -94.1141 +v 7.38379 -33.8016 -93.824 +v 14.7223 -33.8016 -92.9554 +v 21.9701 -33.8016 -91.5138 +v 29.0825 -33.8016 -89.5079 +v 36.0156 -33.8016 -86.9502 +v 42.7266 -33.8016 -83.8564 +v 49.1741 -33.8016 -80.2456 +v 55.3185 -33.8016 -76.1401 +v 61.1219 -33.8016 -71.5651 +v 66.5484 -33.8016 -66.549 +v 71.5646 -33.8016 -61.1225 +v 76.1396 -33.8016 -55.3192 +v 80.2452 -33.8016 -49.1748 +v 83.856 -33.8016 -42.7272 +v 86.9499 -33.8016 -36.0163 +v 89.5077 -33.8016 -29.0832 +v 91.5136 -33.8016 -21.9709 +v 92.9553 -33.8016 -14.7231 +v 93.8239 -33.8016 -7.38454 +v 91.2504 -40.9067 5.88009e-39 +v 90.9691 -40.9067 7.15942 +v 90.127 -40.9067 14.2747 +v 88.7292 -40.9067 21.302 +v 86.7843 -40.9067 28.1979 +v 84.3044 -40.9067 34.92 +v 81.3047 -40.9067 41.4268 +v 77.8038 -40.9067 47.6782 +v 73.8232 -40.9067 53.6356 +v 69.3874 -40.9067 59.2624 +v 64.5238 -40.9067 64.5238 +v 59.2624 -40.9067 69.3873 +v 53.6357 -40.9067 73.8231 +v 47.6783 -40.9067 77.8037 +v 41.4269 -40.9067 81.3047 +v 34.9201 -40.9067 84.3044 +v 28.198 -40.9067 86.7843 +v 21.3021 -40.9067 88.7291 +v 14.2748 -40.9067 90.127 +v 7.15952 -40.9067 90.9691 +v 0.00010479 -40.9067 91.2504 +v -7.15931 -40.9067 90.9691 +v -14.2746 -40.9067 90.127 +v -21.3019 -40.9067 88.7292 +v -28.1978 -40.9067 86.7843 +v -34.9199 -40.9067 84.3044 +v -41.4267 -40.9067 81.3048 +v -47.6781 -40.9067 77.8038 +v -53.6355 -40.9067 73.8232 +v -59.2623 -40.9067 69.3875 +v -64.5237 -40.9067 64.5239 +v -69.3873 -40.9067 59.2625 +v -73.823 -40.9067 53.6358 +v -77.8037 -40.9067 47.6784 +v -81.3046 -40.9067 41.427 +v -84.3043 -40.9067 34.9202 +v -86.7842 -40.9067 28.1981 +v -88.7291 -40.9067 21.3022 +v -90.1269 -40.9067 14.2749 +v -90.9691 -40.9067 7.15964 +v -91.2504 -40.9067 0.000209581 +v -90.9691 -40.9067 -7.15922 +v -90.127 -40.9067 -14.2745 +v -88.7292 -40.9067 -21.3018 +v -86.7844 -40.9067 -28.1977 +v -84.3045 -40.9067 -34.9198 +v -81.3048 -40.9067 -41.4266 +v -77.8039 -40.9067 -47.678 +v -73.8233 -40.9067 -53.6354 +v -69.3875 -40.9067 -59.2622 +v -64.524 -40.9067 -64.5236 +v -59.2626 -40.9067 -69.3872 +v -53.6359 -40.9067 -73.823 +v -47.6785 -40.9067 -77.8036 +v -41.4271 -40.9067 -81.3046 +v -34.9203 -40.9067 -84.3043 +v -28.1982 -40.9067 -86.7842 +v -21.3023 -40.9067 -88.7291 +v -14.275 -40.9067 -90.1269 +v -7.15973 -40.9067 -90.9691 +v -0.000303493 -40.9067 -91.2504 +v 7.15913 -40.9067 -90.9691 +v 14.2744 -40.9067 -90.127 +v 21.3017 -40.9067 -88.7292 +v 28.1976 -40.9067 -86.7844 +v 34.9197 -40.9067 -84.3045 +v 41.4265 -40.9067 -81.3049 +v 47.6779 -40.9067 -77.804 +v 53.6354 -40.9067 -73.8234 +v 59.2621 -40.9067 -69.3876 +v 64.5235 -40.9067 -64.524 +v 69.3871 -40.9067 -59.2627 +v 73.8229 -40.9067 -53.636 +v 77.8036 -40.9067 -47.6786 +v 81.3045 -40.9067 -41.4272 +v 84.3042 -40.9067 -34.9204 +v 86.7842 -40.9067 -28.1983 +v 88.7291 -40.9067 -21.3024 +v 90.1269 -40.9067 -14.2751 +v 90.9691 -40.9067 -7.15985 +v 87.8513 -47.7719 5.88009e-39 +v 87.5805 -47.7719 6.89273 +v 86.7697 -47.7719 13.743 +v 85.424 -47.7719 20.5085 +v 83.5516 -47.7719 27.1475 +v 81.164 -47.7719 33.6192 +v 78.2761 -47.7719 39.8836 +v 74.9056 -47.7719 45.9021 +v 71.0732 -47.7719 51.6377 +v 66.8027 -47.7719 57.0548 +v 62.1203 -47.7719 62.1202 +v 57.0549 -47.7719 66.8026 +v 51.6377 -47.7719 71.0732 +v 45.9022 -47.7719 74.9055 +v 39.8837 -47.7719 78.276 +v 33.6193 -47.7719 81.164 +v 27.1476 -47.7719 83.5515 +v 20.5086 -47.7719 85.4239 +v 13.7431 -47.7719 86.7697 +v 6.89283 -47.7719 87.5805 +v 0.000100887 -47.7719 87.8513 +v -6.89262 -47.7719 87.5805 +v -13.7429 -47.7719 86.7697 +v -20.5084 -47.7719 85.424 +v -27.1474 -47.7719 83.5516 +v -33.6191 -47.7719 81.1641 +v -39.8835 -47.7719 78.2761 +v -45.9021 -47.7719 74.9056 +v -51.6376 -47.7719 71.0733 +v -57.0547 -47.7719 66.8027 +v -62.1201 -47.7719 62.1203 +v -66.8025 -47.7719 57.055 +v -71.0731 -47.7719 51.6378 +v -74.9055 -47.7719 45.9023 +v -78.276 -47.7719 39.8838 +v -81.1639 -47.7719 33.6194 +v -83.5515 -47.7719 27.1477 +v -85.4239 -47.7719 20.5087 +v -86.7697 -47.7719 13.7432 +v -87.5805 -47.7719 6.89294 +v -87.8513 -47.7719 0.000201774 +v -87.5805 -47.7719 -6.89253 +v -86.7697 -47.7719 -13.7428 +v -85.424 -47.7719 -20.5083 +v -83.5516 -47.7719 -27.1473 +v -81.1641 -47.7719 -33.619 +v -78.2762 -47.7719 -39.8834 +v -74.9057 -47.7719 -45.902 +v -71.0733 -47.7719 -51.6375 +v -66.8028 -47.7719 -57.0547 +v -62.1204 -47.7719 -62.1201 +v -57.0551 -47.7719 -66.8025 +v -51.6379 -47.7719 -71.073 +v -45.9024 -47.7719 -74.9054 +v -39.8839 -47.7719 -78.276 +v -33.6195 -47.7719 -81.1639 +v -27.1478 -47.7719 -83.5515 +v -20.5088 -47.7719 -85.4239 +v -13.7433 -47.7719 -86.7697 +v -6.89303 -47.7719 -87.5805 +v -0.000292188 -47.7719 -87.8513 +v 6.89244 -47.7719 -87.5805 +v 13.7426 -47.7719 -86.7698 +v 20.5082 -47.7719 -85.424 +v 27.1472 -47.7719 -83.5516 +v 33.6189 -47.7719 -81.1641 +v 39.8834 -47.7719 -78.2762 +v 45.9019 -47.7719 -74.9057 +v 51.6374 -47.7719 -71.0734 +v 57.0546 -47.7719 -66.8029 +v 62.12 -47.7719 -62.1205 +v 66.8024 -47.7719 -57.0551 +v 71.073 -47.7719 -51.638 +v 74.9053 -47.7719 -45.9025 +v 78.2759 -47.7719 -39.884 +v 81.1639 -47.7719 -33.6196 +v 83.5514 -47.7719 -27.1479 +v 85.4239 -47.7719 -20.5088 +v 86.7696 -47.7719 -13.7434 +v 87.5804 -47.7719 -6.89314 +v 83.9366 -54.3566 5.88009e-39 +v 83.6779 -54.3566 6.58559 +v 82.9032 -54.3566 13.1306 +v 81.6175 -54.3566 19.5946 +v 79.8285 -54.3566 25.9378 +v 77.5473 -54.3566 32.1211 +v 74.7881 -54.3566 38.1064 +v 71.5678 -54.3566 43.8567 +v 67.9062 -54.3566 49.3367 +v 63.8259 -54.3566 54.5124 +v 59.3522 -54.3566 59.3521 +v 54.5125 -54.3566 63.8259 +v 49.3368 -54.3566 67.9061 +v 43.8568 -54.3566 71.5677 +v 38.1065 -54.3566 74.7881 +v 32.1212 -54.3566 77.5473 +v 25.9379 -54.3566 79.8285 +v 19.5947 -54.3566 81.6174 +v 13.1307 -54.3566 82.9032 +v 6.58568 -54.3566 83.6779 +v 9.63913e-05 -54.3566 83.9366 +v -6.58549 -54.3566 83.6779 +v -13.1305 -54.3566 82.9032 +v -19.5945 -54.3566 81.6175 +v -25.9377 -54.3566 79.8285 +v -32.121 -54.3566 77.5474 +v -38.1063 -54.3566 74.7881 +v -43.8567 -54.3566 71.5678 +v -49.3366 -54.3566 67.9062 +v -54.5124 -54.3566 63.826 +v -59.3521 -54.3566 59.3523 +v -63.8258 -54.3566 54.5126 +v -67.9061 -54.3566 49.3368 +v -71.5677 -54.3566 43.8569 +v -74.788 -54.3566 38.1066 +v -77.5473 -54.3566 32.1213 +v -79.8284 -54.3566 25.938 +v -81.6174 -54.3566 19.5948 +v -82.9032 -54.3566 13.1308 +v -83.6779 -54.3566 6.58579 +v -83.9366 -54.3566 0.000192783 +v -83.6779 -54.3566 -6.5854 +v -82.9033 -54.3566 -13.1304 +v -81.6175 -54.3566 -19.5944 +v -79.8285 -54.3566 -25.9377 +v -77.5474 -54.3566 -32.121 +v -74.7882 -54.3566 -38.1062 +v -71.5679 -54.3566 -43.8566 +v -67.9063 -54.3566 -49.3365 +v -63.8261 -54.3566 -54.5123 +v -59.3523 -54.3566 -59.352 +v -54.5127 -54.3566 -63.8257 +v -49.3369 -54.3566 -67.906 +v -43.857 -54.3566 -71.5676 +v -38.1067 -54.3566 -74.788 +v -32.1214 -54.3566 -77.5472 +v -25.9381 -54.3566 -79.8284 +v -19.5949 -54.3566 -81.6174 +v -13.1309 -54.3566 -82.9032 +v -6.58587 -54.3566 -83.6779 +v -0.000279168 -54.3566 -83.9366 +v 6.58532 -54.3566 -83.6779 +v 13.1303 -54.3566 -82.9033 +v 19.5943 -54.3566 -81.6175 +v 25.9376 -54.3566 -79.8286 +v 32.1209 -54.3566 -77.5475 +v 38.1062 -54.3566 -74.7882 +v 43.8565 -54.3566 -71.5679 +v 49.3364 -54.3566 -67.9064 +v 54.5122 -54.3566 -63.8261 +v 59.3519 -54.3566 -59.3524 +v 63.8257 -54.3566 -54.5127 +v 67.9059 -54.3566 -49.337 +v 71.5676 -54.3566 -43.8571 +v 74.7879 -54.3566 -38.1068 +v 77.5472 -54.3566 -32.1215 +v 79.8284 -54.3566 -25.9382 +v 81.6174 -54.3566 -19.595 +v 82.9032 -54.3566 -13.131 +v 83.6778 -54.3566 -6.58598 +v 79.5294 -60.6224 5.88009e-39 +v 79.2842 -60.6224 6.2398 +v 78.5503 -60.6224 12.4411 +v 77.332 -60.6224 18.5658 +v 75.6369 -60.6224 24.5759 +v 73.4756 -60.6224 30.4346 +v 70.8612 -60.6224 36.1056 +v 67.81 -60.6224 41.554 +v 64.3406 -60.6224 46.7462 +v 60.4747 -60.6224 51.6502 +v 56.2358 -60.6224 56.2357 +v 51.6502 -60.6224 60.4746 +v 46.7462 -60.6224 64.3406 +v 41.554 -60.6224 67.8099 +v 36.1056 -60.6224 70.8612 +v 30.4346 -60.6224 73.4755 +v 24.576 -60.6224 75.6369 +v 18.5658 -60.6224 77.332 +v 12.4412 -60.6224 78.5502 +v 6.23989 -60.6224 79.2842 +v 9.13301e-05 -60.6224 79.5294 +v -6.23971 -60.6224 79.2842 +v -12.441 -60.6224 78.5503 +v -18.5657 -60.6224 77.332 +v -24.5758 -60.6224 75.637 +v -30.4345 -60.6224 73.4756 +v -36.1055 -60.6224 70.8613 +v -41.5539 -60.6224 67.81 +v -46.7461 -60.6224 64.3407 +v -51.6501 -60.6224 60.4747 +v -56.2357 -60.6224 56.2359 +v -60.4745 -60.6224 51.6503 +v -64.3405 -60.6224 46.7463 +v -67.8099 -60.6224 41.5541 +v -70.8611 -60.6224 36.1057 +v -73.4755 -60.6224 30.4347 +v -75.6369 -60.6224 24.5761 +v -77.3319 -60.6224 18.5659 +v -78.5502 -60.6224 12.4413 +v -79.2842 -60.6224 6.23999 +v -79.5294 -60.6224 0.00018266 +v -79.2842 -60.6224 -6.23962 +v -78.5503 -60.6224 -12.4409 +v -77.332 -60.6224 -18.5656 +v -75.637 -60.6224 -24.5758 +v -73.4757 -60.6224 -30.4344 +v -70.8613 -60.6224 -36.1054 +v -67.8101 -60.6224 -41.5538 +v -64.3408 -60.6224 -46.746 +v -60.4748 -60.6224 -51.65 +v -56.2359 -60.6224 -56.2356 +v -51.6504 -60.6224 -60.4745 +v -46.7464 -60.6224 -64.3405 +v -41.5542 -60.6224 -67.8098 +v -36.1058 -60.6224 -70.8611 +v -30.4348 -60.6224 -73.4755 +v -24.5762 -60.6224 -75.6369 +v -18.566 -60.6224 -77.3319 +v -12.4414 -60.6224 -78.5502 +v -6.24007 -60.6224 -79.2842 +v -0.00026451 -60.6224 -79.5294 +v 6.23954 -60.6224 -79.2842 +v 12.4408 -60.6224 -78.5503 +v 18.5655 -60.6224 -77.3321 +v 24.5757 -60.6224 -75.637 +v 30.4343 -60.6224 -73.4757 +v 36.1053 -60.6224 -70.8613 +v 41.5537 -60.6224 -67.8101 +v 46.7459 -60.6224 -64.3408 +v 51.65 -60.6224 -60.4748 +v 56.2355 -60.6224 -56.236 +v 60.4744 -60.6224 -51.6504 +v 64.3404 -60.6224 -46.7465 +v 67.8098 -60.6224 -41.5543 +v 70.861 -60.6224 -36.1059 +v 73.4754 -60.6224 -30.4349 +v 75.6368 -60.6224 -24.5763 +v 77.3319 -60.6224 -18.5661 +v 78.5502 -60.6224 -12.4415 +v 79.2842 -60.6224 -6.24017 +v 74.6554 -66.5324 5.88009e-39 +v 74.4253 -66.5324 5.85739 +v 73.7363 -66.5324 11.6787 +v 72.5927 -66.5324 17.428 +v 71.0015 -66.5324 23.0698 +v 68.9726 -66.5324 28.5694 +v 66.5185 -66.5324 33.8928 +v 63.6542 -66.5324 39.0073 +v 60.3975 -66.5324 43.8813 +v 56.7685 -66.5324 48.4848 +v 52.7894 -66.5324 52.7893 +v 48.4849 -66.5324 56.7684 +v 43.8814 -66.5324 60.3975 +v 39.0074 -66.5324 63.6542 +v 33.8929 -66.5324 66.5185 +v 28.5695 -66.5324 68.9726 +v 23.0699 -66.5324 71.0015 +v 17.428 -66.5324 72.5927 +v 11.6788 -66.5324 73.7363 +v 5.85748 -66.5324 74.4253 +v 8.57329e-05 -66.5324 74.6554 +v -5.85731 -66.5324 74.4253 +v -11.6786 -66.5324 73.7363 +v -17.4279 -66.5324 72.5927 +v -23.0697 -66.5324 71.0016 +v -28.5693 -66.5324 68.9727 +v -33.8928 -66.5324 66.5185 +v -39.0073 -66.5324 63.6543 +v -43.8813 -66.5324 60.3976 +v -48.4847 -66.5324 56.7685 +v -52.7893 -66.5324 52.7895 +v -56.7683 -66.5324 48.4849 +v -60.3974 -66.5324 43.8815 +v -63.6542 -66.5324 39.0075 +v -66.5184 -66.5324 33.893 +v -68.9726 -66.5324 28.5695 +v -71.0015 -66.5324 23.07 +v -72.5927 -66.5324 17.4281 +v -73.7363 -66.5324 11.6788 +v -74.4253 -66.5324 5.85757 +v -74.6554 -66.5324 0.000171466 +v -74.4253 -66.5324 -5.85723 +v -73.7363 -66.5324 -11.6785 +v -72.5927 -66.5324 -17.4278 +v -71.0016 -66.5324 -23.0696 +v -68.9727 -66.5324 -28.5692 +v -66.5186 -66.5324 -33.8927 +v -63.6543 -66.5324 -39.0072 +v -60.3976 -66.5324 -43.8812 +v -56.7686 -66.5324 -48.4847 +v -52.7895 -66.5324 -52.7892 +v -48.485 -66.5324 -56.7683 +v -43.8815 -66.5324 -60.3974 +v -39.0076 -66.5324 -63.6541 +v -33.8931 -66.5324 -66.5184 +v -28.5696 -66.5324 -68.9725 +v -23.07 -66.5324 -71.0015 +v -17.4282 -66.5324 -72.5926 +v -11.6789 -66.5324 -73.7363 +v -5.85765 -66.5324 -74.4253 +v -0.000248299 -66.5324 -74.6554 +v 5.85715 -66.5324 -74.4253 +v 11.6784 -66.5324 -73.7363 +v 17.4277 -66.5324 -72.5928 +v 23.0695 -66.5324 -71.0016 +v 28.5691 -66.5324 -68.9727 +v 33.8926 -66.5324 -66.5186 +v 39.0071 -66.5324 -63.6544 +v 43.8811 -66.5324 -60.3977 +v 48.4846 -66.5324 -56.7686 +v 52.7892 -66.5324 -52.7896 +v 56.7682 -66.5324 -48.4851 +v 60.3973 -66.5324 -43.8816 +v 63.6541 -66.5324 -39.0076 +v 66.5183 -66.5324 -33.8931 +v 68.9725 -66.5324 -28.5697 +v 71.0014 -66.5324 -23.0701 +v 72.5926 -66.5324 -17.4283 +v 73.7362 -66.5324 -11.679 +v 74.4253 -66.5324 -5.85774 +v 69.3434 -72.052 5.88009e-39 +v 69.1296 -72.052 5.44061 +v 68.4896 -72.052 10.8477 +v 67.4274 -72.052 16.1879 +v 65.9495 -72.052 21.4283 +v 64.0649 -72.052 26.5365 +v 61.7854 -72.052 31.4812 +v 59.125 -72.052 36.2318 +v 56.1 -72.052 40.759 +v 52.7291 -72.052 45.0349 +v 49.0332 -72.052 49.0331 +v 45.035 -72.052 52.7291 +v 40.7591 -72.052 56.0999 +v 36.2319 -72.052 59.1249 +v 31.4813 -72.052 61.7854 +v 26.5366 -72.052 64.0649 +v 21.4283 -72.052 65.9494 +v 16.188 -72.052 67.4274 +v 10.8478 -72.052 68.4896 +v 5.44069 -72.052 69.1296 +v 7.96326e-05 -72.052 69.3434 +v -5.44053 -72.052 69.1296 +v -10.8476 -72.052 68.4897 +v -16.1878 -72.052 67.4274 +v -21.4282 -72.052 65.9495 +v -26.5365 -72.052 64.065 +v -31.4811 -72.052 61.7854 +v -36.2317 -72.052 59.125 +v -40.7589 -72.052 56.1 +v -45.0348 -72.052 52.7292 +v -49.0331 -72.052 49.0333 +v -52.729 -72.052 45.035 +v -56.0999 -72.052 40.7591 +v -59.1249 -72.052 36.2319 +v -61.7853 -72.052 31.4814 +v -64.0649 -72.052 26.5367 +v -65.9494 -72.052 21.4284 +v -67.4274 -72.052 16.188 +v -68.4896 -72.052 10.8478 +v -69.1296 -72.052 5.44078 +v -69.3434 -72.052 0.000159265 +v -69.1296 -72.052 -5.44046 +v -68.4897 -72.052 -10.8475 +v -67.4275 -72.052 -16.1877 +v -65.9495 -72.052 -21.4281 +v -64.065 -72.052 -26.5364 +v -61.7855 -72.052 -31.4811 +v -59.125 -72.052 -36.2317 +v -56.1001 -72.052 -40.7589 +v -52.7292 -72.052 -45.0348 +v -49.0333 -72.052 -49.033 +v -45.0351 -72.052 -52.729 +v -40.7592 -72.052 -56.0998 +v -36.232 -72.052 -59.1248 +v -31.4814 -72.052 -61.7853 +v -26.5368 -72.052 -64.0648 +v -21.4285 -72.052 -65.9494 +v -16.1881 -72.052 -67.4274 +v -10.8479 -72.052 -68.4896 +v -5.44085 -72.052 -69.1296 +v -0.000230632 -72.052 -69.3434 +v 5.44039 -72.052 -69.1296 +v 10.8474 -72.052 -68.4897 +v 16.1876 -72.052 -67.4275 +v 21.428 -72.052 -65.9495 +v 26.5363 -72.052 -64.065 +v 31.481 -72.052 -61.7855 +v 36.2316 -72.052 -59.1251 +v 40.7588 -72.052 -56.1001 +v 45.0347 -72.052 -52.7293 +v 49.033 -72.052 -49.0334 +v 52.7289 -72.052 -45.0351 +v 56.0998 -72.052 -40.7593 +v 59.1248 -72.052 -36.2321 +v 61.7853 -72.052 -31.4815 +v 64.0648 -72.052 -26.5368 +v 65.9494 -72.052 -21.4286 +v 67.4273 -72.052 -16.1882 +v 68.4896 -72.052 -10.848 +v 69.1296 -72.052 -5.44094 +v 63.6244 -77.1488 5.88009e-39 +v 63.4282 -77.1488 4.99191 +v 62.8411 -77.1488 9.95304 +v 61.8664 -77.1488 14.8528 +v 60.5104 -77.1488 19.661 +v 58.7813 -77.1488 24.348 +v 56.6898 -77.1488 28.8848 +v 54.2487 -77.1488 33.2436 +v 51.4732 -77.1488 37.3974 +v 48.3804 -77.1488 41.3207 +v 44.9893 -77.1488 44.9892 +v 41.3208 -77.1488 48.3803 +v 37.3975 -77.1488 51.4732 +v 33.2437 -77.1488 54.2487 +v 28.8849 -77.1488 56.6897 +v 24.348 -77.1488 58.7812 +v 19.6611 -77.1488 60.5104 +v 14.8529 -77.1488 61.8664 +v 9.95311 -77.1488 62.841 +v 4.99198 -77.1488 63.4282 +v 7.30651e-05 -77.1488 63.6244 +v -4.99183 -77.1488 63.4283 +v -9.95297 -77.1488 62.8411 +v -14.8527 -77.1488 61.8665 +v -19.6609 -77.1488 60.5104 +v -24.3479 -77.1488 58.7813 +v -28.8848 -77.1488 56.6898 +v -33.2436 -77.1488 54.2488 +v -37.3974 -77.1488 51.4733 +v -41.3206 -77.1488 48.3804 +v -44.9892 -77.1488 44.9893 +v -48.3803 -77.1488 41.3208 +v -51.4731 -77.1488 37.3976 +v -54.2486 -77.1488 33.2437 +v -56.6897 -77.1488 28.885 +v -58.7812 -77.1488 24.3481 +v -60.5103 -77.1488 19.6611 +v -61.8664 -77.1488 14.853 +v -62.841 -77.1488 9.95318 +v -63.4282 -77.1488 4.99206 +v -63.6244 -77.1488 0.00014613 +v -63.4283 -77.1488 -4.99177 +v -62.8411 -77.1488 -9.95289 +v -61.8665 -77.1488 -14.8527 +v -60.5104 -77.1488 -19.6609 +v -58.7813 -77.1488 -24.3478 +v -56.6898 -77.1488 -28.8847 +v -54.2488 -77.1488 -33.2435 +v -51.4733 -77.1488 -37.3973 +v -48.3805 -77.1488 -41.3206 +v -44.9894 -77.1488 -44.9891 +v -41.3209 -77.1488 -48.3802 +v -37.3976 -77.1488 -51.4731 +v -33.2438 -77.1488 -54.2486 +v -28.885 -77.1488 -56.6897 +v -24.3482 -77.1488 -58.7812 +v -19.6612 -77.1488 -60.5103 +v -14.853 -77.1488 -61.8664 +v -9.95326 -77.1488 -62.841 +v -4.99212 -77.1488 -63.4282 +v -0.000211611 -77.1488 -63.6244 +v 4.9917 -77.1488 -63.4283 +v 9.95281 -77.1488 -62.8411 +v 14.8526 -77.1488 -61.8665 +v 19.6608 -77.1488 -60.5105 +v 24.3478 -77.1488 -58.7814 +v 28.8847 -77.1488 -56.6898 +v 33.2434 -77.1488 -54.2488 +v 37.3973 -77.1488 -51.4734 +v 41.3205 -77.1488 -48.3805 +v 44.9891 -77.1488 -44.9894 +v 48.3802 -77.1488 -41.3209 +v 51.473 -77.1488 -37.3977 +v 54.2486 -77.1488 -33.2439 +v 56.6896 -77.1488 -28.8851 +v 58.7812 -77.1488 -24.3482 +v 60.5103 -77.1488 -19.6613 +v 61.8664 -77.1488 -14.8531 +v 62.841 -77.1488 -9.95334 +v 63.4282 -77.1488 -4.9922 +v 57.532 -81.7928 5.88009e-39 +v 57.3547 -81.7928 4.51391 +v 56.8237 -81.7928 8.99998 +v 55.9424 -81.7928 13.4306 +v 54.7162 -81.7928 17.7784 +v 53.1527 -81.7928 22.0165 +v 51.2614 -81.7928 26.119 +v 49.0541 -81.7928 30.0604 +v 46.5444 -81.7928 33.8164 +v 43.7477 -81.7928 37.364 +v 40.6813 -81.7928 40.6813 +v 37.3641 -81.7928 43.7477 +v 33.8165 -81.7928 46.5444 +v 30.0604 -81.7928 49.0541 +v 26.119 -81.7928 51.2614 +v 22.0166 -81.7928 53.1526 +v 17.7784 -81.7928 54.7162 +v 13.4306 -81.7928 55.9424 +v 9.00005 -81.7928 56.8237 +v 4.51397 -81.7928 57.3547 +v 6.60687e-05 -81.7928 57.532 +v -4.51384 -81.7928 57.3547 +v -8.99992 -81.7928 56.8237 +v -13.4305 -81.7928 55.9424 +v -17.7783 -81.7928 54.7162 +v -22.0165 -81.7928 53.1527 +v -26.1189 -81.7928 51.2614 +v -30.0603 -81.7928 49.0542 +v -33.8164 -81.7928 46.5444 +v -37.364 -81.7928 43.7478 +v -40.6812 -81.7928 40.6813 +v -43.7476 -81.7928 37.3641 +v -46.5443 -81.7928 33.8166 +v -49.0541 -81.7928 30.0605 +v -51.2613 -81.7928 26.1191 +v -53.1526 -81.7928 22.0167 +v -54.7162 -81.7928 17.7785 +v -55.9424 -81.7928 13.4307 +v -56.8237 -81.7928 9.00011 +v -57.3547 -81.7928 4.51404 +v -57.532 -81.7928 0.000132137 +v -57.3547 -81.7928 -4.51378 +v -56.8237 -81.7928 -8.99985 +v -55.9424 -81.7928 -13.4304 +v -54.7162 -81.7928 -17.7782 +v -53.1527 -81.7928 -22.0164 +v -51.2615 -81.7928 -26.1189 +v -49.0542 -81.7928 -30.0603 +v -46.5445 -81.7928 -33.8163 +v -43.7478 -81.7928 -37.3639 +v -40.6814 -81.7928 -40.6812 +v -37.3642 -81.7928 -43.7476 +v -33.8166 -81.7928 -46.5443 +v -30.0605 -81.7928 -49.054 +v -26.1191 -81.7928 -51.2613 +v -22.0167 -81.7928 -53.1526 +v -17.7785 -81.7928 -54.7161 +v -13.4308 -81.7928 -55.9424 +v -9.00018 -81.7928 -56.8237 +v -4.5141 -81.7928 -57.3546 +v -0.000191348 -81.7928 -57.532 +v 4.51372 -81.7928 -57.3547 +v 8.99978 -81.7928 -56.8237 +v 13.4304 -81.7928 -55.9425 +v 17.7782 -81.7928 -54.7163 +v 22.0164 -81.7928 -53.1527 +v 26.1188 -81.7928 -51.2615 +v 30.0602 -81.7928 -49.0542 +v 33.8163 -81.7928 -46.5445 +v 37.3639 -81.7928 -43.7478 +v 40.6811 -81.7928 -40.6814 +v 43.7475 -81.7928 -37.3642 +v 46.5442 -81.7928 -33.8167 +v 49.054 -81.7928 -30.0606 +v 51.2613 -81.7928 -26.1192 +v 53.1526 -81.7928 -22.0168 +v 54.7161 -81.7928 -17.7786 +v 55.9423 -81.7928 -13.4308 +v 56.8237 -81.7928 -9.00025 +v 57.3546 -81.7928 -4.51418 +v 51.102 -85.9569 5.88009e-39 +v 50.9445 -85.9569 4.00942 +v 50.4729 -85.9569 7.99411 +v 49.6901 -85.9569 11.9295 +v 48.6009 -85.9569 15.7914 +v 47.2121 -85.9569 19.5559 +v 45.5323 -85.9569 23.1998 +v 43.5717 -85.9569 26.7007 +v 41.3424 -85.9569 30.037 +v 38.8583 -85.9569 33.1881 +v 36.1346 -85.9569 36.1346 +v 33.1881 -85.9569 38.8583 +v 30.037 -85.9569 41.3424 +v 26.7008 -85.9569 43.5716 +v 23.1999 -85.9569 45.5322 +v 19.5559 -85.9569 47.2121 +v 15.7914 -85.9569 48.6009 +v 11.9296 -85.9569 49.6901 +v 7.99417 -85.9569 50.4729 +v 4.00947 -85.9569 50.9445 +v 5.86846e-05 -85.9569 51.102 +v -4.00936 -85.9569 50.9445 +v -7.99406 -85.9569 50.4729 +v -11.9295 -85.9569 49.6901 +v -15.7913 -85.9569 48.6009 +v -19.5558 -85.9569 47.2122 +v -23.1998 -85.9569 45.5323 +v -26.7007 -85.9569 43.5717 +v -30.037 -85.9569 41.3425 +v -33.188 -85.9569 38.8583 +v -36.1345 -85.9569 36.1347 +v -38.8582 -85.9569 33.1882 +v -41.3424 -85.9569 30.0371 +v -43.5716 -85.9569 26.7008 +v -45.5322 -85.9569 23.1999 +v -47.2121 -85.9569 19.556 +v -48.6009 -85.9569 15.7915 +v -49.6901 -85.9569 11.9296 +v -50.4729 -85.9569 7.99423 +v -50.9445 -85.9569 4.00954 +v -51.102 -85.9569 0.000117369 +v -50.9445 -85.9569 -4.0093 +v -50.4729 -85.9569 -7.99399 +v -49.6901 -85.9569 -11.9294 +v -48.601 -85.9569 -15.7913 +v -47.2122 -85.9569 -19.5558 +v -45.5323 -85.9569 -23.1997 +v -43.5717 -85.9569 -26.7006 +v -41.3425 -85.9569 -30.0369 +v -38.8584 -85.9569 -33.188 +v -36.1347 -85.9569 -36.1345 +v -33.1882 -85.9569 -38.8582 +v -30.0371 -85.9569 -41.3423 +v -26.7009 -85.9569 -43.5716 +v -23.2 -85.9569 -45.5322 +v -19.556 -85.9569 -47.2121 +v -15.7915 -85.9569 -48.6009 +v -11.9297 -85.9569 -49.69 +v -7.99429 -85.9569 -50.4729 +v -4.00959 -85.9569 -50.9445 +v -0.000169962 -85.9569 -51.102 +v 4.00925 -85.9569 -50.9445 +v 7.99393 -85.9569 -50.4729 +v 11.9293 -85.9569 -49.6901 +v 15.7912 -85.9569 -48.601 +v 19.5557 -85.9569 -47.2122 +v 23.1997 -85.9569 -45.5323 +v 26.7006 -85.9569 -43.5718 +v 30.0369 -85.9569 -41.3425 +v 33.188 -85.9569 -38.8584 +v 36.1344 -85.9569 -36.1347 +v 38.8582 -85.9569 -33.1883 +v 41.3423 -85.9569 -30.0372 +v 43.5715 -85.9569 -26.7009 +v 45.5321 -85.9569 -23.2 +v 47.212 -85.9569 -19.5561 +v 48.6009 -85.9569 -15.7916 +v 49.69 -85.9569 -11.9297 +v 50.4728 -85.9569 -7.99435 +v 50.9445 -85.9569 -4.00965 +v 44.3722 -89.6165 5.88009e-39 +v 44.2354 -89.6165 3.4814 +v 43.8259 -89.6165 6.94133 +v 43.1462 -89.6165 10.3585 +v 42.2004 -89.6165 13.7117 +v 40.9945 -89.6165 16.9805 +v 39.5359 -89.6165 20.1445 +v 37.8335 -89.6165 23.1844 +v 35.8978 -89.6165 26.0813 +v 33.7409 -89.6165 28.8174 +v 31.3759 -89.6165 31.3758 +v 28.8174 -89.6165 33.7408 +v 26.0813 -89.6165 35.8978 +v 23.1844 -89.6165 37.8335 +v 20.1446 -89.6165 39.5359 +v 16.9805 -89.6165 40.9945 +v 13.7118 -89.6165 42.2004 +v 10.3585 -89.6165 43.1461 +v 6.94138 -89.6165 43.8259 +v 3.48145 -89.6165 44.2354 +v 5.09562e-05 -89.6165 44.3722 +v -3.48134 -89.6165 44.2354 +v -6.94128 -89.6165 43.8259 +v -10.3584 -89.6165 43.1462 +v -13.7117 -89.6165 42.2004 +v -16.9804 -89.6165 40.9946 +v -20.1445 -89.6165 39.5359 +v -23.1843 -89.6165 37.8335 +v -26.0812 -89.6165 35.8979 +v -28.8174 -89.6165 33.7409 +v -31.3758 -89.6165 31.3759 +v -33.7408 -89.6165 28.8175 +v -35.8978 -89.6165 26.0814 +v -37.8334 -89.6165 23.1845 +v -39.5358 -89.6165 20.1446 +v -40.9945 -89.6165 16.9806 +v -42.2004 -89.6165 13.7118 +v -43.1461 -89.6165 10.3586 +v -43.8258 -89.6165 6.94143 +v -44.2354 -89.6165 3.4815 +v -44.3722 -89.6165 0.000101912 +v -44.2354 -89.6165 -3.4813 +v -43.8259 -89.6165 -6.94123 +v -43.1462 -89.6165 -10.3584 +v -42.2005 -89.6165 -13.7116 +v -40.9946 -89.6165 -16.9804 +v -39.5359 -89.6165 -20.1444 +v -37.8335 -89.6165 -23.1843 +v -35.8979 -89.6165 -26.0812 +v -33.7409 -89.6165 -28.8173 +v -31.3759 -89.6165 -31.3758 +v -28.8175 -89.6165 -33.7408 +v -26.0814 -89.6165 -35.8978 +v -23.1845 -89.6165 -37.8334 +v -20.1447 -89.6165 -39.5358 +v -16.9806 -89.6165 -40.9945 +v -13.7119 -89.6165 -42.2004 +v -10.3586 -89.6165 -43.1461 +v -6.94148 -89.6165 -43.8258 +v -3.48155 -89.6165 -44.2354 +v -0.000147579 -89.6165 -44.3722 +v 3.48125 -89.6165 -44.2354 +v 6.94117 -89.6165 -43.8259 +v 10.3583 -89.6165 -43.1462 +v 13.7116 -89.6165 -42.2005 +v 16.9803 -89.6165 -40.9946 +v 20.1444 -89.6165 -39.536 +v 23.1842 -89.6165 -37.8336 +v 26.0812 -89.6165 -35.8979 +v 28.8173 -89.6165 -33.741 +v 31.3757 -89.6165 -31.376 +v 33.7407 -89.6165 -28.8175 +v 35.8977 -89.6165 -26.0815 +v 37.8334 -89.6165 -23.1846 +v 39.5358 -89.6165 -20.1447 +v 40.9945 -89.6165 -16.9807 +v 42.2004 -89.6165 -13.7119 +v 43.1461 -89.6165 -10.3587 +v 43.8258 -89.6165 -6.94154 +v 44.2354 -89.6165 -3.4816 +v 37.3819 -92.7502 5.88009e-39 +v 37.2667 -92.7502 2.93295 +v 36.9217 -92.7502 5.84781 +v 36.349 -92.7502 8.72662 +v 35.5523 -92.7502 11.5516 +v 34.5364 -92.7502 14.3054 +v 33.3075 -92.7502 16.971 +v 31.8733 -92.7502 19.532 +v 30.2426 -92.7502 21.9725 +v 28.4254 -92.7502 24.2776 +v 26.433 -92.7502 26.433 +v 24.2776 -92.7502 28.4254 +v 21.9725 -92.7502 30.2426 +v 19.532 -92.7502 31.8733 +v 16.971 -92.7502 33.3075 +v 14.3055 -92.7502 34.5364 +v 11.5517 -92.7502 35.5523 +v 8.72667 -92.7502 36.349 +v 5.84786 -92.7502 36.9217 +v 2.93299 -92.7502 37.2667 +v 4.29287e-05 -92.7502 37.3819 +v -2.9329 -92.7502 37.2667 +v -5.84777 -92.7502 36.9217 +v -8.72658 -92.7502 36.349 +v -11.5516 -92.7502 35.5523 +v -14.3054 -92.7502 34.5364 +v -16.971 -92.7502 33.3075 +v -19.5319 -92.7502 31.8733 +v -21.9725 -92.7502 30.2426 +v -24.2775 -92.7502 28.4255 +v -26.4329 -92.7502 26.433 +v -28.4254 -92.7502 24.2777 +v -30.2425 -92.7502 21.9726 +v -31.8733 -92.7502 19.532 +v -33.3075 -92.7502 16.9711 +v -34.5363 -92.7502 14.3055 +v -35.5523 -92.7502 11.5517 +v -36.349 -92.7502 8.72671 +v -36.9216 -92.7502 5.84789 +v -37.2667 -92.7502 2.93304 +v -37.3819 -92.7502 8.58573e-05 +v -37.2667 -92.7502 -2.93287 +v -36.9217 -92.7502 -5.84773 +v -36.349 -92.7502 -8.72654 +v -35.5523 -92.7502 -11.5516 +v -34.5364 -92.7502 -14.3053 +v -33.3076 -92.7502 -16.9709 +v -31.8734 -92.7502 -19.5319 +v -30.2426 -92.7502 -21.9724 +v -28.4255 -92.7502 -24.2775 +v -26.4331 -92.7502 -26.4329 +v -24.2777 -92.7502 -28.4253 +v -21.9726 -92.7502 -30.2425 +v -19.5321 -92.7502 -31.8732 +v -16.9711 -92.7502 -33.3075 +v -14.3055 -92.7502 -34.5363 +v -11.5517 -92.7502 -35.5523 +v -8.72675 -92.7502 -36.349 +v -5.84794 -92.7502 -36.9216 +v -2.93307 -92.7502 -37.2666 +v -0.00012433 -92.7502 -37.3819 +v 2.93283 -92.7502 -37.2667 +v 5.84768 -92.7502 -36.9217 +v 8.72649 -92.7502 -36.3491 +v 11.5515 -92.7502 -35.5523 +v 14.3053 -92.7502 -34.5364 +v 16.9709 -92.7502 -33.3076 +v 19.5319 -92.7502 -31.8734 +v 21.9724 -92.7502 -30.2427 +v 24.2775 -92.7502 -28.4255 +v 26.4329 -92.7502 -26.4331 +v 28.4253 -92.7502 -24.2777 +v 30.2425 -92.7502 -21.9727 +v 31.8732 -92.7502 -19.5321 +v 33.3074 -92.7502 -16.9712 +v 34.5363 -92.7502 -14.3056 +v 35.5522 -92.7502 -11.5518 +v 36.349 -92.7502 -8.72678 +v 36.9216 -92.7502 -5.84799 +v 37.2666 -92.7502 -2.93312 +v 30.1723 -95.3396 5.88009e-39 +v 30.0792 -95.3396 2.36729 +v 29.8008 -95.3396 4.71998 +v 29.3386 -95.3396 7.04357 +v 28.6955 -95.3396 9.32373 +v 27.8755 -95.3396 11.5464 +v 26.8837 -95.3396 13.6979 +v 25.7261 -95.3396 15.765 +v 24.4099 -95.3396 17.7348 +v 22.9432 -95.3396 19.5953 +v 21.335 -95.3396 21.335 +v 19.5953 -95.3396 22.9432 +v 17.7348 -95.3396 24.4099 +v 15.765 -95.3396 25.7261 +v 13.6979 -95.3396 26.8837 +v 11.5464 -95.3396 27.8755 +v 9.32377 -95.3396 28.6955 +v 7.0436 -95.3396 29.3386 +v 4.72001 -95.3396 29.8008 +v 2.36732 -95.3396 30.0792 +v 3.46493e-05 -95.3396 30.1723 +v -2.36725 -95.3396 30.0793 +v -4.71995 -95.3396 29.8008 +v -7.04354 -95.3396 29.3386 +v -9.3237 -95.3396 28.6955 +v -11.5464 -95.3396 27.8755 +v -13.6979 -95.3396 26.8837 +v -15.7649 -95.3396 25.7261 +v -17.7348 -95.3396 24.4099 +v -19.5953 -95.3396 22.9432 +v -21.335 -95.3396 21.335 +v -22.9431 -95.3396 19.5954 +v -24.4098 -95.3396 17.7349 +v -25.7261 -95.3396 15.765 +v -26.8837 -95.3396 13.698 +v -27.8755 -95.3396 11.5465 +v -28.6955 -95.3396 9.3238 +v -29.3386 -95.3396 7.04364 +v -29.8008 -95.3396 4.72004 +v -30.0792 -95.3396 2.36736 +v -30.1723 -95.3396 6.92985e-05 +v -30.0793 -95.3396 -2.36722 +v -29.8008 -95.3396 -4.71991 +v -29.3386 -95.3396 -7.0435 +v -28.6955 -95.3396 -9.32367 +v -27.8756 -95.3396 -11.5464 +v -26.8837 -95.3396 -13.6978 +v -25.7261 -95.3396 -15.7649 +v -24.4099 -95.3396 -17.7347 +v -22.9432 -95.3396 -19.5953 +v -21.3351 -95.3396 -21.3349 +v -19.5954 -95.3396 -22.9431 +v -17.7349 -95.3396 -24.4098 +v -15.765 -95.3396 -25.726 +v -13.698 -95.3396 -26.8836 +v -11.5465 -95.3396 -27.8755 +v -9.32383 -95.3396 -28.6955 +v -7.04367 -95.3396 -29.3386 +v -4.72008 -95.3396 -29.8008 +v -2.36739 -95.3396 -30.0792 +v -0.000100351 -95.3396 -30.1723 +v 2.36719 -95.3396 -30.0793 +v 4.71987 -95.3396 -29.8008 +v 7.04347 -95.3396 -29.3386 +v 9.32364 -95.3396 -28.6956 +v 11.5463 -95.3396 -27.8756 +v 13.6978 -95.3396 -26.8837 +v 15.7649 -95.3396 -25.7261 +v 17.7347 -95.3396 -24.4099 +v 19.5952 -95.3396 -22.9432 +v 21.3349 -95.3396 -21.3351 +v 22.9431 -95.3396 -19.5954 +v 24.4098 -95.3396 -17.7349 +v 25.726 -95.3396 -15.7651 +v 26.8836 -95.3396 -13.698 +v 27.8755 -95.3396 -11.5465 +v 28.6955 -95.3396 -9.32386 +v 29.3386 -95.3396 -7.0437 +v 29.8008 -95.3396 -4.72012 +v 30.0792 -95.3396 -2.36743 +v 22.7856 -97.3695 5.88009e-39 +v 22.7153 -97.3695 1.78773 +v 22.505 -97.3695 3.56444 +v 22.156 -97.3695 5.31918 +v 21.6704 -97.3695 7.04112 +v 21.0511 -97.3695 8.71965 +v 20.3021 -97.3695 10.3444 +v 19.4279 -97.3695 11.9054 +v 18.4339 -97.3695 13.393 +v 17.3263 -97.3695 14.798 +v 16.1118 -97.3695 16.1118 +v 14.798 -97.3695 17.3263 +v 13.393 -97.3695 18.4339 +v 11.9054 -97.3695 19.4279 +v 10.3444 -97.3695 20.3021 +v 8.71967 -97.3695 21.0511 +v 7.04114 -97.3695 21.6703 +v 5.31921 -97.3695 22.156 +v 3.56447 -97.3695 22.505 +v 1.78776 -97.3695 22.7153 +v 2.61665e-05 -97.3695 22.7856 +v -1.78771 -97.3695 22.7153 +v -3.56442 -97.3695 22.505 +v -5.31915 -97.3695 22.156 +v -7.04109 -97.3695 21.6704 +v -8.71962 -97.3695 21.0511 +v -10.3444 -97.3695 20.3021 +v -11.9054 -97.3695 19.4279 +v -13.393 -97.3695 18.4339 +v -14.798 -97.3695 17.3263 +v -16.1118 -97.3695 16.1119 +v -17.3262 -97.3695 14.7981 +v -18.4339 -97.3695 13.393 +v -19.4279 -97.3695 11.9055 +v -20.3021 -97.3695 10.3445 +v -21.0511 -97.3695 8.7197 +v -21.6703 -97.3695 7.04117 +v -22.156 -97.3695 5.31923 +v -22.505 -97.3695 3.56449 +v -22.7153 -97.3695 1.78779 +v -22.7856 -97.3695 5.2333e-05 +v -22.7153 -97.3695 -1.78768 +v -22.505 -97.3695 -3.56439 +v -22.156 -97.3695 -5.31913 +v -21.6704 -97.3695 -7.04107 +v -21.0511 -97.3695 -8.7196 +v -20.3021 -97.3695 -10.3444 +v -19.4279 -97.3695 -11.9054 +v -18.4339 -97.3695 -13.393 +v -17.3263 -97.3695 -14.798 +v -16.1119 -97.3695 -16.1118 +v -14.7981 -97.3695 -17.3262 +v -13.3931 -97.3695 -18.4339 +v -11.9055 -97.3695 -19.4278 +v -10.3445 -97.3695 -20.302 +v -8.71972 -97.3695 -21.0511 +v -7.04119 -97.3695 -21.6703 +v -5.31926 -97.3695 -22.156 +v -3.56452 -97.3695 -22.505 +v -1.78781 -97.3695 -22.7153 +v -7.57833e-05 -97.3695 -22.7856 +v 1.78766 -97.3695 -22.7153 +v 3.56436 -97.3695 -22.505 +v 5.3191 -97.3695 -22.156 +v 7.04105 -97.3695 -21.6704 +v 8.71958 -97.3695 -21.0511 +v 10.3444 -97.3695 -20.3021 +v 11.9053 -97.3695 -19.4279 +v 13.3929 -97.3695 -18.434 +v 14.798 -97.3695 -17.3263 +v 16.1118 -97.3695 -16.1119 +v 17.3262 -97.3695 -14.7981 +v 18.4338 -97.3695 -13.3931 +v 19.4278 -97.3695 -11.9055 +v 20.302 -97.3695 -10.3445 +v 21.0511 -97.3695 -8.71975 +v 21.6703 -97.3695 -7.04122 +v 22.156 -97.3695 -5.31928 +v 22.505 -97.3695 -3.56455 +v 22.7153 -97.3695 -1.78784 +v 15.2651 -98.828 5.88009e-39 +v 15.2181 -98.828 1.19769 +v 15.0772 -98.828 2.38799 +v 14.8434 -98.828 3.56357 +v 14.518 -98.828 4.71719 +v 14.1032 -98.828 5.84171 +v 13.6013 -98.828 6.93023 +v 13.0157 -98.828 7.97601 +v 12.3498 -98.828 8.97262 +v 11.6077 -98.828 9.91391 +v 10.7941 -98.828 10.7941 +v 9.91393 -98.828 11.6077 +v 8.97264 -98.828 12.3498 +v 7.97603 -98.828 13.0157 +v 6.93024 -98.828 13.6013 +v 5.84173 -98.828 14.1031 +v 4.7172 -98.828 14.518 +v 3.56359 -98.828 14.8434 +v 2.38801 -98.828 15.0772 +v 1.19771 -98.828 15.2181 +v 1.75302e-05 -98.828 15.2651 +v -1.19767 -98.828 15.2181 +v -2.38798 -98.828 15.0772 +v -3.56356 -98.828 14.8434 +v -4.71717 -98.828 14.518 +v -5.8417 -98.828 14.1032 +v -6.93021 -98.828 13.6014 +v -7.976 -98.828 13.0157 +v -8.97261 -98.828 12.3498 +v -9.9139 -98.828 11.6077 +v -10.7941 -98.828 10.7941 +v -11.6077 -98.828 9.91394 +v -12.3497 -98.828 8.97265 +v -13.0157 -98.828 7.97604 +v -13.6013 -98.828 6.93026 +v -14.1031 -98.828 5.84175 +v -14.518 -98.828 4.71722 +v -14.8434 -98.828 3.56361 +v -15.0772 -98.828 2.38803 +v -15.2181 -98.828 1.19772 +v -15.2651 -98.828 3.50604e-05 +v -15.2181 -98.828 -1.19765 +v -15.0772 -98.828 -2.38796 +v -14.8434 -98.828 -3.56354 +v -14.518 -98.828 -4.71715 +v -14.1032 -98.828 -5.84168 +v -13.6014 -98.828 -6.9302 +v -13.0157 -98.828 -7.97598 +v -12.3498 -98.828 -8.97259 +v -11.6077 -98.828 -9.91389 +v -10.7941 -98.828 -10.7941 +v -9.91395 -98.828 -11.6077 +v -8.97266 -98.828 -12.3497 +v -7.97606 -98.828 -13.0157 +v -6.93027 -98.828 -13.6013 +v -5.84176 -98.828 -14.1031 +v -4.71723 -98.828 -14.518 +v -3.56363 -98.828 -14.8434 +v -2.38805 -98.828 -15.0772 +v -1.19774 -98.828 -15.2181 +v -5.07709e-05 -98.828 -15.2651 +v 1.19764 -98.828 -15.2181 +v 2.38794 -98.828 -15.0772 +v 3.56352 -98.828 -14.8434 +v 4.71714 -98.828 -14.518 +v 5.84167 -98.828 -14.1032 +v 6.93018 -98.828 -13.6014 +v 7.97596 -98.828 -13.0157 +v 8.97258 -98.828 -12.3498 +v 9.91387 -98.828 -11.6077 +v 10.794 -98.828 -10.7941 +v 11.6077 -98.828 -9.91396 +v 12.3497 -98.828 -8.97268 +v 13.0156 -98.828 -7.97607 +v 13.6013 -98.828 -6.93029 +v 14.1031 -98.828 -5.84178 +v 14.518 -98.828 -4.71725 +v 14.8434 -98.828 -3.56364 +v 15.0772 -98.828 -2.38806 +v 15.2181 -98.828 -1.19776 +v 7.65515 -99.7066 5.88009e-39 +v 7.63155 -99.7066 0.600616 +v 7.5609 -99.7066 1.19753 +v 7.44364 -99.7066 1.78706 +v 7.28048 -99.7066 2.36557 +v 7.07244 -99.7066 2.9295 +v 6.82079 -99.7066 3.47536 +v 6.52709 -99.7066 3.9998 +v 6.19315 -99.7066 4.49958 +v 5.82102 -99.7066 4.97162 +v 5.41301 -99.7066 5.413 +v 4.97162 -99.7066 5.82102 +v 4.49959 -99.7066 6.19314 +v 3.99981 -99.7066 6.52708 +v 3.47537 -99.7066 6.82078 +v 2.9295 -99.7066 7.07243 +v 2.36558 -99.7066 7.28048 +v 1.78707 -99.7066 7.44363 +v 1.19754 -99.7066 7.5609 +v 0.600624 -99.7066 7.63155 +v 8.79103e-06 -99.7066 7.65515 +v -0.600607 -99.7066 7.63155 +v -1.19752 -99.7066 7.5609 +v -1.78705 -99.7066 7.44364 +v -2.36556 -99.7066 7.28048 +v -2.92949 -99.7066 7.07244 +v -3.47535 -99.7066 6.82079 +v -3.99979 -99.7066 6.52709 +v -4.49957 -99.7066 6.19315 +v -4.97161 -99.7066 5.82103 +v -5.413 -99.7066 5.41302 +v -5.82101 -99.7066 4.97163 +v -6.19314 -99.7066 4.49959 +v -6.52708 -99.7066 3.99982 +v -6.82078 -99.7066 3.47538 +v -7.07243 -99.7066 2.92951 +v -7.28047 -99.7066 2.36559 +v -7.44363 -99.7066 1.78707 +v -7.5609 -99.7066 1.19755 +v -7.63155 -99.7066 0.600634 +v -7.65515 -99.7066 1.75821e-05 +v -7.63155 -99.7066 -0.600599 +v -7.5609 -99.7066 -1.19751 +v -7.44364 -99.7066 -1.78704 +v -7.28048 -99.7066 -2.36555 +v -7.07244 -99.7066 -2.92948 +v -6.8208 -99.7066 -3.47535 +v -6.5271 -99.7066 -3.99979 +v -6.19316 -99.7066 -4.49957 +v -5.82103 -99.7066 -4.97161 +v -5.41302 -99.7066 -5.41299 +v -4.97164 -99.7066 -5.821 +v -4.4996 -99.7066 -6.19313 +v -3.99982 -99.7066 -6.52707 +v -3.47539 -99.7066 -6.82078 +v -2.92952 -99.7066 -7.07243 +v -2.36559 -99.7066 -7.28047 +v -1.78708 -99.7066 -7.44363 +v -1.19755 -99.7066 -7.5609 +v -0.600642 -99.7066 -7.63155 +v -2.54605e-05 -99.7066 -7.65515 +v 0.600591 -99.7066 -7.63155 +v 1.1975 -99.7066 -7.56091 +v 1.78703 -99.7066 -7.44364 +v 2.36554 -99.7066 -7.28049 +v 2.92947 -99.7066 -7.07245 +v 3.47534 -99.7066 -6.8208 +v 3.99978 -99.7066 -6.5271 +v 4.49956 -99.7066 -6.19316 +v 4.9716 -99.7066 -5.82104 +v 5.41299 -99.7066 -5.41303 +v 5.821 -99.7066 -4.97164 +v 6.19313 -99.7066 -4.49961 +v 6.52707 -99.7066 -3.99983 +v 6.82077 -99.7066 -3.47539 +v 7.07242 -99.7066 -2.92953 +v 7.28047 -99.7066 -2.3656 +v 7.44363 -99.7066 -1.78709 +v 7.5609 -99.7066 -1.19756 +v 7.63155 -99.7066 -0.600651 +f 3 4 84 83 +f 4 5 85 84 +f 5 6 86 85 +f 6 7 87 86 +f 7 8 88 87 +f 8 9 89 88 +f 9 10 90 89 +f 10 11 91 90 +f 11 12 92 91 +f 12 13 93 92 +f 13 14 94 93 +f 14 15 95 94 +f 15 16 96 95 +f 16 17 97 96 +f 17 18 98 97 +f 18 19 99 98 +f 19 20 100 99 +f 20 21 101 100 +f 21 22 102 101 +f 22 23 103 102 +f 23 24 104 103 +f 24 25 105 104 +f 25 26 106 105 +f 26 27 107 106 +f 27 28 108 107 +f 28 29 109 108 +f 29 30 110 109 +f 30 31 111 110 +f 31 32 112 111 +f 32 33 113 112 +f 33 34 114 113 +f 34 35 115 114 +f 35 36 116 115 +f 36 37 117 116 +f 37 38 118 117 +f 38 39 119 118 +f 39 40 120 119 +f 40 41 121 120 +f 41 42 122 121 +f 42 43 123 122 +f 43 44 124 123 +f 44 45 125 124 +f 45 46 126 125 +f 46 47 127 126 +f 47 48 128 127 +f 48 49 129 128 +f 49 50 130 129 +f 50 51 131 130 +f 51 52 132 131 +f 52 53 133 132 +f 53 54 134 133 +f 54 55 135 134 +f 55 56 136 135 +f 56 57 137 136 +f 57 58 138 137 +f 58 59 139 138 +f 59 60 140 139 +f 60 61 141 140 +f 61 62 142 141 +f 62 63 143 142 +f 63 64 144 143 +f 64 65 145 144 +f 65 66 146 145 +f 66 67 147 146 +f 67 68 148 147 +f 68 69 149 148 +f 69 70 150 149 +f 70 71 151 150 +f 71 72 152 151 +f 72 73 153 152 +f 73 74 154 153 +f 74 75 155 154 +f 75 76 156 155 +f 76 77 157 156 +f 77 78 158 157 +f 78 79 159 158 +f 79 80 160 159 +f 80 81 161 160 +f 81 82 162 161 +f 82 3 83 162 +f 83 84 164 163 +f 84 85 165 164 +f 85 86 166 165 +f 86 87 167 166 +f 87 88 168 167 +f 88 89 169 168 +f 89 90 170 169 +f 90 91 171 170 +f 91 92 172 171 +f 92 93 173 172 +f 93 94 174 173 +f 94 95 175 174 +f 95 96 176 175 +f 96 97 177 176 +f 97 98 178 177 +f 98 99 179 178 +f 99 100 180 179 +f 100 101 181 180 +f 101 102 182 181 +f 102 103 183 182 +f 103 104 184 183 +f 104 105 185 184 +f 105 106 186 185 +f 106 107 187 186 +f 107 108 188 187 +f 108 109 189 188 +f 109 110 190 189 +f 110 111 191 190 +f 111 112 192 191 +f 112 113 193 192 +f 113 114 194 193 +f 114 115 195 194 +f 115 116 196 195 +f 116 117 197 196 +f 117 118 198 197 +f 118 119 199 198 +f 119 120 200 199 +f 120 121 201 200 +f 121 122 202 201 +f 122 123 203 202 +f 123 124 204 203 +f 124 125 205 204 +f 125 126 206 205 +f 126 127 207 206 +f 127 128 208 207 +f 128 129 209 208 +f 129 130 210 209 +f 130 131 211 210 +f 131 132 212 211 +f 132 133 213 212 +f 133 134 214 213 +f 134 135 215 214 +f 135 136 216 215 +f 136 137 217 216 +f 137 138 218 217 +f 138 139 219 218 +f 139 140 220 219 +f 140 141 221 220 +f 141 142 222 221 +f 142 143 223 222 +f 143 144 224 223 +f 144 145 225 224 +f 145 146 226 225 +f 146 147 227 226 +f 147 148 228 227 +f 148 149 229 228 +f 149 150 230 229 +f 150 151 231 230 +f 151 152 232 231 +f 152 153 233 232 +f 153 154 234 233 +f 154 155 235 234 +f 155 156 236 235 +f 156 157 237 236 +f 157 158 238 237 +f 158 159 239 238 +f 159 160 240 239 +f 160 161 241 240 +f 161 162 242 241 +f 162 83 163 242 +f 163 164 244 243 +f 164 165 245 244 +f 165 166 246 245 +f 166 167 247 246 +f 167 168 248 247 +f 168 169 249 248 +f 169 170 250 249 +f 170 171 251 250 +f 171 172 252 251 +f 172 173 253 252 +f 173 174 254 253 +f 174 175 255 254 +f 175 176 256 255 +f 176 177 257 256 +f 177 178 258 257 +f 178 179 259 258 +f 179 180 260 259 +f 180 181 261 260 +f 181 182 262 261 +f 182 183 263 262 +f 183 184 264 263 +f 184 185 265 264 +f 185 186 266 265 +f 186 187 267 266 +f 187 188 268 267 +f 188 189 269 268 +f 189 190 270 269 +f 190 191 271 270 +f 191 192 272 271 +f 192 193 273 272 +f 193 194 274 273 +f 194 195 275 274 +f 195 196 276 275 +f 196 197 277 276 +f 197 198 278 277 +f 198 199 279 278 +f 199 200 280 279 +f 200 201 281 280 +f 201 202 282 281 +f 202 203 283 282 +f 203 204 284 283 +f 204 205 285 284 +f 205 206 286 285 +f 206 207 287 286 +f 207 208 288 287 +f 208 209 289 288 +f 209 210 290 289 +f 210 211 291 290 +f 211 212 292 291 +f 212 213 293 292 +f 213 214 294 293 +f 214 215 295 294 +f 215 216 296 295 +f 216 217 297 296 +f 217 218 298 297 +f 218 219 299 298 +f 219 220 300 299 +f 220 221 301 300 +f 221 222 302 301 +f 222 223 303 302 +f 223 224 304 303 +f 224 225 305 304 +f 225 226 306 305 +f 226 227 307 306 +f 227 228 308 307 +f 228 229 309 308 +f 229 230 310 309 +f 230 231 311 310 +f 231 232 312 311 +f 232 233 313 312 +f 233 234 314 313 +f 234 235 315 314 +f 235 236 316 315 +f 236 237 317 316 +f 237 238 318 317 +f 238 239 319 318 +f 239 240 320 319 +f 240 241 321 320 +f 241 242 322 321 +f 242 163 243 322 +f 243 244 324 323 +f 244 245 325 324 +f 245 246 326 325 +f 246 247 327 326 +f 247 248 328 327 +f 248 249 329 328 +f 249 250 330 329 +f 250 251 331 330 +f 251 252 332 331 +f 252 253 333 332 +f 253 254 334 333 +f 254 255 335 334 +f 255 256 336 335 +f 256 257 337 336 +f 257 258 338 337 +f 258 259 339 338 +f 259 260 340 339 +f 260 261 341 340 +f 261 262 342 341 +f 262 263 343 342 +f 263 264 344 343 +f 264 265 345 344 +f 265 266 346 345 +f 266 267 347 346 +f 267 268 348 347 +f 268 269 349 348 +f 269 270 350 349 +f 270 271 351 350 +f 271 272 352 351 +f 272 273 353 352 +f 273 274 354 353 +f 274 275 355 354 +f 275 276 356 355 +f 276 277 357 356 +f 277 278 358 357 +f 278 279 359 358 +f 279 280 360 359 +f 280 281 361 360 +f 281 282 362 361 +f 282 283 363 362 +f 283 284 364 363 +f 284 285 365 364 +f 285 286 366 365 +f 286 287 367 366 +f 287 288 368 367 +f 288 289 369 368 +f 289 290 370 369 +f 290 291 371 370 +f 291 292 372 371 +f 292 293 373 372 +f 293 294 374 373 +f 294 295 375 374 +f 295 296 376 375 +f 296 297 377 376 +f 297 298 378 377 +f 298 299 379 378 +f 299 300 380 379 +f 300 301 381 380 +f 301 302 382 381 +f 302 303 383 382 +f 303 304 384 383 +f 304 305 385 384 +f 305 306 386 385 +f 306 307 387 386 +f 307 308 388 387 +f 308 309 389 388 +f 309 310 390 389 +f 310 311 391 390 +f 311 312 392 391 +f 312 313 393 392 +f 313 314 394 393 +f 314 315 395 394 +f 315 316 396 395 +f 316 317 397 396 +f 317 318 398 397 +f 318 319 399 398 +f 319 320 400 399 +f 320 321 401 400 +f 321 322 402 401 +f 322 243 323 402 +f 323 324 404 403 +f 324 325 405 404 +f 325 326 406 405 +f 326 327 407 406 +f 327 328 408 407 +f 328 329 409 408 +f 329 330 410 409 +f 330 331 411 410 +f 331 332 412 411 +f 332 333 413 412 +f 333 334 414 413 +f 334 335 415 414 +f 335 336 416 415 +f 336 337 417 416 +f 337 338 418 417 +f 338 339 419 418 +f 339 340 420 419 +f 340 341 421 420 +f 341 342 422 421 +f 342 343 423 422 +f 343 344 424 423 +f 344 345 425 424 +f 345 346 426 425 +f 346 347 427 426 +f 347 348 428 427 +f 348 349 429 428 +f 349 350 430 429 +f 350 351 431 430 +f 351 352 432 431 +f 352 353 433 432 +f 353 354 434 433 +f 354 355 435 434 +f 355 356 436 435 +f 356 357 437 436 +f 357 358 438 437 +f 358 359 439 438 +f 359 360 440 439 +f 360 361 441 440 +f 361 362 442 441 +f 362 363 443 442 +f 363 364 444 443 +f 364 365 445 444 +f 365 366 446 445 +f 366 367 447 446 +f 367 368 448 447 +f 368 369 449 448 +f 369 370 450 449 +f 370 371 451 450 +f 371 372 452 451 +f 372 373 453 452 +f 373 374 454 453 +f 374 375 455 454 +f 375 376 456 455 +f 376 377 457 456 +f 377 378 458 457 +f 378 379 459 458 +f 379 380 460 459 +f 380 381 461 460 +f 381 382 462 461 +f 382 383 463 462 +f 383 384 464 463 +f 384 385 465 464 +f 385 386 466 465 +f 386 387 467 466 +f 387 388 468 467 +f 388 389 469 468 +f 389 390 470 469 +f 390 391 471 470 +f 391 392 472 471 +f 392 393 473 472 +f 393 394 474 473 +f 394 395 475 474 +f 395 396 476 475 +f 396 397 477 476 +f 397 398 478 477 +f 398 399 479 478 +f 399 400 480 479 +f 400 401 481 480 +f 401 402 482 481 +f 402 323 403 482 +f 403 404 484 483 +f 404 405 485 484 +f 405 406 486 485 +f 406 407 487 486 +f 407 408 488 487 +f 408 409 489 488 +f 409 410 490 489 +f 410 411 491 490 +f 411 412 492 491 +f 412 413 493 492 +f 413 414 494 493 +f 414 415 495 494 +f 415 416 496 495 +f 416 417 497 496 +f 417 418 498 497 +f 418 419 499 498 +f 419 420 500 499 +f 420 421 501 500 +f 421 422 502 501 +f 422 423 503 502 +f 423 424 504 503 +f 424 425 505 504 +f 425 426 506 505 +f 426 427 507 506 +f 427 428 508 507 +f 428 429 509 508 +f 429 430 510 509 +f 430 431 511 510 +f 431 432 512 511 +f 432 433 513 512 +f 433 434 514 513 +f 434 435 515 514 +f 435 436 516 515 +f 436 437 517 516 +f 437 438 518 517 +f 438 439 519 518 +f 439 440 520 519 +f 440 441 521 520 +f 441 442 522 521 +f 442 443 523 522 +f 443 444 524 523 +f 444 445 525 524 +f 445 446 526 525 +f 446 447 527 526 +f 447 448 528 527 +f 448 449 529 528 +f 449 450 530 529 +f 450 451 531 530 +f 451 452 532 531 +f 452 453 533 532 +f 453 454 534 533 +f 454 455 535 534 +f 455 456 536 535 +f 456 457 537 536 +f 457 458 538 537 +f 458 459 539 538 +f 459 460 540 539 +f 460 461 541 540 +f 461 462 542 541 +f 462 463 543 542 +f 463 464 544 543 +f 464 465 545 544 +f 465 466 546 545 +f 466 467 547 546 +f 467 468 548 547 +f 468 469 549 548 +f 469 470 550 549 +f 470 471 551 550 +f 471 472 552 551 +f 472 473 553 552 +f 473 474 554 553 +f 474 475 555 554 +f 475 476 556 555 +f 476 477 557 556 +f 477 478 558 557 +f 478 479 559 558 +f 479 480 560 559 +f 480 481 561 560 +f 481 482 562 561 +f 482 403 483 562 +f 483 484 564 563 +f 484 485 565 564 +f 485 486 566 565 +f 486 487 567 566 +f 487 488 568 567 +f 488 489 569 568 +f 489 490 570 569 +f 490 491 571 570 +f 491 492 572 571 +f 492 493 573 572 +f 493 494 574 573 +f 494 495 575 574 +f 495 496 576 575 +f 496 497 577 576 +f 497 498 578 577 +f 498 499 579 578 +f 499 500 580 579 +f 500 501 581 580 +f 501 502 582 581 +f 502 503 583 582 +f 503 504 584 583 +f 504 505 585 584 +f 505 506 586 585 +f 506 507 587 586 +f 507 508 588 587 +f 508 509 589 588 +f 509 510 590 589 +f 510 511 591 590 +f 511 512 592 591 +f 512 513 593 592 +f 513 514 594 593 +f 514 515 595 594 +f 515 516 596 595 +f 516 517 597 596 +f 517 518 598 597 +f 518 519 599 598 +f 519 520 600 599 +f 520 521 601 600 +f 521 522 602 601 +f 522 523 603 602 +f 523 524 604 603 +f 524 525 605 604 +f 525 526 606 605 +f 526 527 607 606 +f 527 528 608 607 +f 528 529 609 608 +f 529 530 610 609 +f 530 531 611 610 +f 531 532 612 611 +f 532 533 613 612 +f 533 534 614 613 +f 534 535 615 614 +f 535 536 616 615 +f 536 537 617 616 +f 537 538 618 617 +f 538 539 619 618 +f 539 540 620 619 +f 540 541 621 620 +f 541 542 622 621 +f 542 543 623 622 +f 543 544 624 623 +f 544 545 625 624 +f 545 546 626 625 +f 546 547 627 626 +f 547 548 628 627 +f 548 549 629 628 +f 549 550 630 629 +f 550 551 631 630 +f 551 552 632 631 +f 552 553 633 632 +f 553 554 634 633 +f 554 555 635 634 +f 555 556 636 635 +f 556 557 637 636 +f 557 558 638 637 +f 558 559 639 638 +f 559 560 640 639 +f 560 561 641 640 +f 561 562 642 641 +f 562 483 563 642 +f 563 564 644 643 +f 564 565 645 644 +f 565 566 646 645 +f 566 567 647 646 +f 567 568 648 647 +f 568 569 649 648 +f 569 570 650 649 +f 570 571 651 650 +f 571 572 652 651 +f 572 573 653 652 +f 573 574 654 653 +f 574 575 655 654 +f 575 576 656 655 +f 576 577 657 656 +f 577 578 658 657 +f 578 579 659 658 +f 579 580 660 659 +f 580 581 661 660 +f 581 582 662 661 +f 582 583 663 662 +f 583 584 664 663 +f 584 585 665 664 +f 585 586 666 665 +f 586 587 667 666 +f 587 588 668 667 +f 588 589 669 668 +f 589 590 670 669 +f 590 591 671 670 +f 591 592 672 671 +f 592 593 673 672 +f 593 594 674 673 +f 594 595 675 674 +f 595 596 676 675 +f 596 597 677 676 +f 597 598 678 677 +f 598 599 679 678 +f 599 600 680 679 +f 600 601 681 680 +f 601 602 682 681 +f 602 603 683 682 +f 603 604 684 683 +f 604 605 685 684 +f 605 606 686 685 +f 606 607 687 686 +f 607 608 688 687 +f 608 609 689 688 +f 609 610 690 689 +f 610 611 691 690 +f 611 612 692 691 +f 612 613 693 692 +f 613 614 694 693 +f 614 615 695 694 +f 615 616 696 695 +f 616 617 697 696 +f 617 618 698 697 +f 618 619 699 698 +f 619 620 700 699 +f 620 621 701 700 +f 621 622 702 701 +f 622 623 703 702 +f 623 624 704 703 +f 624 625 705 704 +f 625 626 706 705 +f 626 627 707 706 +f 627 628 708 707 +f 628 629 709 708 +f 629 630 710 709 +f 630 631 711 710 +f 631 632 712 711 +f 632 633 713 712 +f 633 634 714 713 +f 634 635 715 714 +f 635 636 716 715 +f 636 637 717 716 +f 637 638 718 717 +f 638 639 719 718 +f 639 640 720 719 +f 640 641 721 720 +f 641 642 722 721 +f 642 563 643 722 +f 643 644 724 723 +f 644 645 725 724 +f 645 646 726 725 +f 646 647 727 726 +f 647 648 728 727 +f 648 649 729 728 +f 649 650 730 729 +f 650 651 731 730 +f 651 652 732 731 +f 652 653 733 732 +f 653 654 734 733 +f 654 655 735 734 +f 655 656 736 735 +f 656 657 737 736 +f 657 658 738 737 +f 658 659 739 738 +f 659 660 740 739 +f 660 661 741 740 +f 661 662 742 741 +f 662 663 743 742 +f 663 664 744 743 +f 664 665 745 744 +f 665 666 746 745 +f 666 667 747 746 +f 667 668 748 747 +f 668 669 749 748 +f 669 670 750 749 +f 670 671 751 750 +f 671 672 752 751 +f 672 673 753 752 +f 673 674 754 753 +f 674 675 755 754 +f 675 676 756 755 +f 676 677 757 756 +f 677 678 758 757 +f 678 679 759 758 +f 679 680 760 759 +f 680 681 761 760 +f 681 682 762 761 +f 682 683 763 762 +f 683 684 764 763 +f 684 685 765 764 +f 685 686 766 765 +f 686 687 767 766 +f 687 688 768 767 +f 688 689 769 768 +f 689 690 770 769 +f 690 691 771 770 +f 691 692 772 771 +f 692 693 773 772 +f 693 694 774 773 +f 694 695 775 774 +f 695 696 776 775 +f 696 697 777 776 +f 697 698 778 777 +f 698 699 779 778 +f 699 700 780 779 +f 700 701 781 780 +f 701 702 782 781 +f 702 703 783 782 +f 703 704 784 783 +f 704 705 785 784 +f 705 706 786 785 +f 706 707 787 786 +f 707 708 788 787 +f 708 709 789 788 +f 709 710 790 789 +f 710 711 791 790 +f 711 712 792 791 +f 712 713 793 792 +f 713 714 794 793 +f 714 715 795 794 +f 715 716 796 795 +f 716 717 797 796 +f 717 718 798 797 +f 718 719 799 798 +f 719 720 800 799 +f 720 721 801 800 +f 721 722 802 801 +f 722 643 723 802 +f 723 724 804 803 +f 724 725 805 804 +f 725 726 806 805 +f 726 727 807 806 +f 727 728 808 807 +f 728 729 809 808 +f 729 730 810 809 +f 730 731 811 810 +f 731 732 812 811 +f 732 733 813 812 +f 733 734 814 813 +f 734 735 815 814 +f 735 736 816 815 +f 736 737 817 816 +f 737 738 818 817 +f 738 739 819 818 +f 739 740 820 819 +f 740 741 821 820 +f 741 742 822 821 +f 742 743 823 822 +f 743 744 824 823 +f 744 745 825 824 +f 745 746 826 825 +f 746 747 827 826 +f 747 748 828 827 +f 748 749 829 828 +f 749 750 830 829 +f 750 751 831 830 +f 751 752 832 831 +f 752 753 833 832 +f 753 754 834 833 +f 754 755 835 834 +f 755 756 836 835 +f 756 757 837 836 +f 757 758 838 837 +f 758 759 839 838 +f 759 760 840 839 +f 760 761 841 840 +f 761 762 842 841 +f 762 763 843 842 +f 763 764 844 843 +f 764 765 845 844 +f 765 766 846 845 +f 766 767 847 846 +f 767 768 848 847 +f 768 769 849 848 +f 769 770 850 849 +f 770 771 851 850 +f 771 772 852 851 +f 772 773 853 852 +f 773 774 854 853 +f 774 775 855 854 +f 775 776 856 855 +f 776 777 857 856 +f 777 778 858 857 +f 778 779 859 858 +f 779 780 860 859 +f 780 781 861 860 +f 781 782 862 861 +f 782 783 863 862 +f 783 784 864 863 +f 784 785 865 864 +f 785 786 866 865 +f 786 787 867 866 +f 787 788 868 867 +f 788 789 869 868 +f 789 790 870 869 +f 790 791 871 870 +f 791 792 872 871 +f 792 793 873 872 +f 793 794 874 873 +f 794 795 875 874 +f 795 796 876 875 +f 796 797 877 876 +f 797 798 878 877 +f 798 799 879 878 +f 799 800 880 879 +f 800 801 881 880 +f 801 802 882 881 +f 802 723 803 882 +f 803 804 884 883 +f 804 805 885 884 +f 805 806 886 885 +f 806 807 887 886 +f 807 808 888 887 +f 808 809 889 888 +f 809 810 890 889 +f 810 811 891 890 +f 811 812 892 891 +f 812 813 893 892 +f 813 814 894 893 +f 814 815 895 894 +f 815 816 896 895 +f 816 817 897 896 +f 817 818 898 897 +f 818 819 899 898 +f 819 820 900 899 +f 820 821 901 900 +f 821 822 902 901 +f 822 823 903 902 +f 823 824 904 903 +f 824 825 905 904 +f 825 826 906 905 +f 826 827 907 906 +f 827 828 908 907 +f 828 829 909 908 +f 829 830 910 909 +f 830 831 911 910 +f 831 832 912 911 +f 832 833 913 912 +f 833 834 914 913 +f 834 835 915 914 +f 835 836 916 915 +f 836 837 917 916 +f 837 838 918 917 +f 838 839 919 918 +f 839 840 920 919 +f 840 841 921 920 +f 841 842 922 921 +f 842 843 923 922 +f 843 844 924 923 +f 844 845 925 924 +f 845 846 926 925 +f 846 847 927 926 +f 847 848 928 927 +f 848 849 929 928 +f 849 850 930 929 +f 850 851 931 930 +f 851 852 932 931 +f 852 853 933 932 +f 853 854 934 933 +f 854 855 935 934 +f 855 856 936 935 +f 856 857 937 936 +f 857 858 938 937 +f 858 859 939 938 +f 859 860 940 939 +f 860 861 941 940 +f 861 862 942 941 +f 862 863 943 942 +f 863 864 944 943 +f 864 865 945 944 +f 865 866 946 945 +f 866 867 947 946 +f 867 868 948 947 +f 868 869 949 948 +f 869 870 950 949 +f 870 871 951 950 +f 871 872 952 951 +f 872 873 953 952 +f 873 874 954 953 +f 874 875 955 954 +f 875 876 956 955 +f 876 877 957 956 +f 877 878 958 957 +f 878 879 959 958 +f 879 880 960 959 +f 880 881 961 960 +f 881 882 962 961 +f 882 803 883 962 +f 883 884 964 963 +f 884 885 965 964 +f 885 886 966 965 +f 886 887 967 966 +f 887 888 968 967 +f 888 889 969 968 +f 889 890 970 969 +f 890 891 971 970 +f 891 892 972 971 +f 892 893 973 972 +f 893 894 974 973 +f 894 895 975 974 +f 895 896 976 975 +f 896 897 977 976 +f 897 898 978 977 +f 898 899 979 978 +f 899 900 980 979 +f 900 901 981 980 +f 901 902 982 981 +f 902 903 983 982 +f 903 904 984 983 +f 904 905 985 984 +f 905 906 986 985 +f 906 907 987 986 +f 907 908 988 987 +f 908 909 989 988 +f 909 910 990 989 +f 910 911 991 990 +f 911 912 992 991 +f 912 913 993 992 +f 913 914 994 993 +f 914 915 995 994 +f 915 916 996 995 +f 916 917 997 996 +f 917 918 998 997 +f 918 919 999 998 +f 919 920 1000 999 +f 920 921 1001 1000 +f 921 922 1002 1001 +f 922 923 1003 1002 +f 923 924 1004 1003 +f 924 925 1005 1004 +f 925 926 1006 1005 +f 926 927 1007 1006 +f 927 928 1008 1007 +f 928 929 1009 1008 +f 929 930 1010 1009 +f 930 931 1011 1010 +f 931 932 1012 1011 +f 932 933 1013 1012 +f 933 934 1014 1013 +f 934 935 1015 1014 +f 935 936 1016 1015 +f 936 937 1017 1016 +f 937 938 1018 1017 +f 938 939 1019 1018 +f 939 940 1020 1019 +f 940 941 1021 1020 +f 941 942 1022 1021 +f 942 943 1023 1022 +f 943 944 1024 1023 +f 944 945 1025 1024 +f 945 946 1026 1025 +f 946 947 1027 1026 +f 947 948 1028 1027 +f 948 949 1029 1028 +f 949 950 1030 1029 +f 950 951 1031 1030 +f 951 952 1032 1031 +f 952 953 1033 1032 +f 953 954 1034 1033 +f 954 955 1035 1034 +f 955 956 1036 1035 +f 956 957 1037 1036 +f 957 958 1038 1037 +f 958 959 1039 1038 +f 959 960 1040 1039 +f 960 961 1041 1040 +f 961 962 1042 1041 +f 962 883 963 1042 +f 963 964 1044 1043 +f 964 965 1045 1044 +f 965 966 1046 1045 +f 966 967 1047 1046 +f 967 968 1048 1047 +f 968 969 1049 1048 +f 969 970 1050 1049 +f 970 971 1051 1050 +f 971 972 1052 1051 +f 972 973 1053 1052 +f 973 974 1054 1053 +f 974 975 1055 1054 +f 975 976 1056 1055 +f 976 977 1057 1056 +f 977 978 1058 1057 +f 978 979 1059 1058 +f 979 980 1060 1059 +f 980 981 1061 1060 +f 981 982 1062 1061 +f 982 983 1063 1062 +f 983 984 1064 1063 +f 984 985 1065 1064 +f 985 986 1066 1065 +f 986 987 1067 1066 +f 987 988 1068 1067 +f 988 989 1069 1068 +f 989 990 1070 1069 +f 990 991 1071 1070 +f 991 992 1072 1071 +f 992 993 1073 1072 +f 993 994 1074 1073 +f 994 995 1075 1074 +f 995 996 1076 1075 +f 996 997 1077 1076 +f 997 998 1078 1077 +f 998 999 1079 1078 +f 999 1000 1080 1079 +f 1000 1001 1081 1080 +f 1001 1002 1082 1081 +f 1002 1003 1083 1082 +f 1003 1004 1084 1083 +f 1004 1005 1085 1084 +f 1005 1006 1086 1085 +f 1006 1007 1087 1086 +f 1007 1008 1088 1087 +f 1008 1009 1089 1088 +f 1009 1010 1090 1089 +f 1010 1011 1091 1090 +f 1011 1012 1092 1091 +f 1012 1013 1093 1092 +f 1013 1014 1094 1093 +f 1014 1015 1095 1094 +f 1015 1016 1096 1095 +f 1016 1017 1097 1096 +f 1017 1018 1098 1097 +f 1018 1019 1099 1098 +f 1019 1020 1100 1099 +f 1020 1021 1101 1100 +f 1021 1022 1102 1101 +f 1022 1023 1103 1102 +f 1023 1024 1104 1103 +f 1024 1025 1105 1104 +f 1025 1026 1106 1105 +f 1026 1027 1107 1106 +f 1027 1028 1108 1107 +f 1028 1029 1109 1108 +f 1029 1030 1110 1109 +f 1030 1031 1111 1110 +f 1031 1032 1112 1111 +f 1032 1033 1113 1112 +f 1033 1034 1114 1113 +f 1034 1035 1115 1114 +f 1035 1036 1116 1115 +f 1036 1037 1117 1116 +f 1037 1038 1118 1117 +f 1038 1039 1119 1118 +f 1039 1040 1120 1119 +f 1040 1041 1121 1120 +f 1041 1042 1122 1121 +f 1042 963 1043 1122 +f 1043 1044 1124 1123 +f 1044 1045 1125 1124 +f 1045 1046 1126 1125 +f 1046 1047 1127 1126 +f 1047 1048 1128 1127 +f 1048 1049 1129 1128 +f 1049 1050 1130 1129 +f 1050 1051 1131 1130 +f 1051 1052 1132 1131 +f 1052 1053 1133 1132 +f 1053 1054 1134 1133 +f 1054 1055 1135 1134 +f 1055 1056 1136 1135 +f 1056 1057 1137 1136 +f 1057 1058 1138 1137 +f 1058 1059 1139 1138 +f 1059 1060 1140 1139 +f 1060 1061 1141 1140 +f 1061 1062 1142 1141 +f 1062 1063 1143 1142 +f 1063 1064 1144 1143 +f 1064 1065 1145 1144 +f 1065 1066 1146 1145 +f 1066 1067 1147 1146 +f 1067 1068 1148 1147 +f 1068 1069 1149 1148 +f 1069 1070 1150 1149 +f 1070 1071 1151 1150 +f 1071 1072 1152 1151 +f 1072 1073 1153 1152 +f 1073 1074 1154 1153 +f 1074 1075 1155 1154 +f 1075 1076 1156 1155 +f 1076 1077 1157 1156 +f 1077 1078 1158 1157 +f 1078 1079 1159 1158 +f 1079 1080 1160 1159 +f 1080 1081 1161 1160 +f 1081 1082 1162 1161 +f 1082 1083 1163 1162 +f 1083 1084 1164 1163 +f 1084 1085 1165 1164 +f 1085 1086 1166 1165 +f 1086 1087 1167 1166 +f 1087 1088 1168 1167 +f 1088 1089 1169 1168 +f 1089 1090 1170 1169 +f 1090 1091 1171 1170 +f 1091 1092 1172 1171 +f 1092 1093 1173 1172 +f 1093 1094 1174 1173 +f 1094 1095 1175 1174 +f 1095 1096 1176 1175 +f 1096 1097 1177 1176 +f 1097 1098 1178 1177 +f 1098 1099 1179 1178 +f 1099 1100 1180 1179 +f 1100 1101 1181 1180 +f 1101 1102 1182 1181 +f 1102 1103 1183 1182 +f 1103 1104 1184 1183 +f 1104 1105 1185 1184 +f 1105 1106 1186 1185 +f 1106 1107 1187 1186 +f 1107 1108 1188 1187 +f 1108 1109 1189 1188 +f 1109 1110 1190 1189 +f 1110 1111 1191 1190 +f 1111 1112 1192 1191 +f 1112 1113 1193 1192 +f 1113 1114 1194 1193 +f 1114 1115 1195 1194 +f 1115 1116 1196 1195 +f 1116 1117 1197 1196 +f 1117 1118 1198 1197 +f 1118 1119 1199 1198 +f 1119 1120 1200 1199 +f 1120 1121 1201 1200 +f 1121 1122 1202 1201 +f 1122 1043 1123 1202 +f 1123 1124 1204 1203 +f 1124 1125 1205 1204 +f 1125 1126 1206 1205 +f 1126 1127 1207 1206 +f 1127 1128 1208 1207 +f 1128 1129 1209 1208 +f 1129 1130 1210 1209 +f 1130 1131 1211 1210 +f 1131 1132 1212 1211 +f 1132 1133 1213 1212 +f 1133 1134 1214 1213 +f 1134 1135 1215 1214 +f 1135 1136 1216 1215 +f 1136 1137 1217 1216 +f 1137 1138 1218 1217 +f 1138 1139 1219 1218 +f 1139 1140 1220 1219 +f 1140 1141 1221 1220 +f 1141 1142 1222 1221 +f 1142 1143 1223 1222 +f 1143 1144 1224 1223 +f 1144 1145 1225 1224 +f 1145 1146 1226 1225 +f 1146 1147 1227 1226 +f 1147 1148 1228 1227 +f 1148 1149 1229 1228 +f 1149 1150 1230 1229 +f 1150 1151 1231 1230 +f 1151 1152 1232 1231 +f 1152 1153 1233 1232 +f 1153 1154 1234 1233 +f 1154 1155 1235 1234 +f 1155 1156 1236 1235 +f 1156 1157 1237 1236 +f 1157 1158 1238 1237 +f 1158 1159 1239 1238 +f 1159 1160 1240 1239 +f 1160 1161 1241 1240 +f 1161 1162 1242 1241 +f 1162 1163 1243 1242 +f 1163 1164 1244 1243 +f 1164 1165 1245 1244 +f 1165 1166 1246 1245 +f 1166 1167 1247 1246 +f 1167 1168 1248 1247 +f 1168 1169 1249 1248 +f 1169 1170 1250 1249 +f 1170 1171 1251 1250 +f 1171 1172 1252 1251 +f 1172 1173 1253 1252 +f 1173 1174 1254 1253 +f 1174 1175 1255 1254 +f 1175 1176 1256 1255 +f 1176 1177 1257 1256 +f 1177 1178 1258 1257 +f 1178 1179 1259 1258 +f 1179 1180 1260 1259 +f 1180 1181 1261 1260 +f 1181 1182 1262 1261 +f 1182 1183 1263 1262 +f 1183 1184 1264 1263 +f 1184 1185 1265 1264 +f 1185 1186 1266 1265 +f 1186 1187 1267 1266 +f 1187 1188 1268 1267 +f 1188 1189 1269 1268 +f 1189 1190 1270 1269 +f 1190 1191 1271 1270 +f 1191 1192 1272 1271 +f 1192 1193 1273 1272 +f 1193 1194 1274 1273 +f 1194 1195 1275 1274 +f 1195 1196 1276 1275 +f 1196 1197 1277 1276 +f 1197 1198 1278 1277 +f 1198 1199 1279 1278 +f 1199 1200 1280 1279 +f 1200 1201 1281 1280 +f 1201 1202 1282 1281 +f 1202 1123 1203 1282 +f 1203 1204 1284 1283 +f 1204 1205 1285 1284 +f 1205 1206 1286 1285 +f 1206 1207 1287 1286 +f 1207 1208 1288 1287 +f 1208 1209 1289 1288 +f 1209 1210 1290 1289 +f 1210 1211 1291 1290 +f 1211 1212 1292 1291 +f 1212 1213 1293 1292 +f 1213 1214 1294 1293 +f 1214 1215 1295 1294 +f 1215 1216 1296 1295 +f 1216 1217 1297 1296 +f 1217 1218 1298 1297 +f 1218 1219 1299 1298 +f 1219 1220 1300 1299 +f 1220 1221 1301 1300 +f 1221 1222 1302 1301 +f 1222 1223 1303 1302 +f 1223 1224 1304 1303 +f 1224 1225 1305 1304 +f 1225 1226 1306 1305 +f 1226 1227 1307 1306 +f 1227 1228 1308 1307 +f 1228 1229 1309 1308 +f 1229 1230 1310 1309 +f 1230 1231 1311 1310 +f 1231 1232 1312 1311 +f 1232 1233 1313 1312 +f 1233 1234 1314 1313 +f 1234 1235 1315 1314 +f 1235 1236 1316 1315 +f 1236 1237 1317 1316 +f 1237 1238 1318 1317 +f 1238 1239 1319 1318 +f 1239 1240 1320 1319 +f 1240 1241 1321 1320 +f 1241 1242 1322 1321 +f 1242 1243 1323 1322 +f 1243 1244 1324 1323 +f 1244 1245 1325 1324 +f 1245 1246 1326 1325 +f 1246 1247 1327 1326 +f 1247 1248 1328 1327 +f 1248 1249 1329 1328 +f 1249 1250 1330 1329 +f 1250 1251 1331 1330 +f 1251 1252 1332 1331 +f 1252 1253 1333 1332 +f 1253 1254 1334 1333 +f 1254 1255 1335 1334 +f 1255 1256 1336 1335 +f 1256 1257 1337 1336 +f 1257 1258 1338 1337 +f 1258 1259 1339 1338 +f 1259 1260 1340 1339 +f 1260 1261 1341 1340 +f 1261 1262 1342 1341 +f 1262 1263 1343 1342 +f 1263 1264 1344 1343 +f 1264 1265 1345 1344 +f 1265 1266 1346 1345 +f 1266 1267 1347 1346 +f 1267 1268 1348 1347 +f 1268 1269 1349 1348 +f 1269 1270 1350 1349 +f 1270 1271 1351 1350 +f 1271 1272 1352 1351 +f 1272 1273 1353 1352 +f 1273 1274 1354 1353 +f 1274 1275 1355 1354 +f 1275 1276 1356 1355 +f 1276 1277 1357 1356 +f 1277 1278 1358 1357 +f 1278 1279 1359 1358 +f 1279 1280 1360 1359 +f 1280 1281 1361 1360 +f 1281 1282 1362 1361 +f 1282 1203 1283 1362 +f 1283 1284 1364 1363 +f 1284 1285 1365 1364 +f 1285 1286 1366 1365 +f 1286 1287 1367 1366 +f 1287 1288 1368 1367 +f 1288 1289 1369 1368 +f 1289 1290 1370 1369 +f 1290 1291 1371 1370 +f 1291 1292 1372 1371 +f 1292 1293 1373 1372 +f 1293 1294 1374 1373 +f 1294 1295 1375 1374 +f 1295 1296 1376 1375 +f 1296 1297 1377 1376 +f 1297 1298 1378 1377 +f 1298 1299 1379 1378 +f 1299 1300 1380 1379 +f 1300 1301 1381 1380 +f 1301 1302 1382 1381 +f 1302 1303 1383 1382 +f 1303 1304 1384 1383 +f 1304 1305 1385 1384 +f 1305 1306 1386 1385 +f 1306 1307 1387 1386 +f 1307 1308 1388 1387 +f 1308 1309 1389 1388 +f 1309 1310 1390 1389 +f 1310 1311 1391 1390 +f 1311 1312 1392 1391 +f 1312 1313 1393 1392 +f 1313 1314 1394 1393 +f 1314 1315 1395 1394 +f 1315 1316 1396 1395 +f 1316 1317 1397 1396 +f 1317 1318 1398 1397 +f 1318 1319 1399 1398 +f 1319 1320 1400 1399 +f 1320 1321 1401 1400 +f 1321 1322 1402 1401 +f 1322 1323 1403 1402 +f 1323 1324 1404 1403 +f 1324 1325 1405 1404 +f 1325 1326 1406 1405 +f 1326 1327 1407 1406 +f 1327 1328 1408 1407 +f 1328 1329 1409 1408 +f 1329 1330 1410 1409 +f 1330 1331 1411 1410 +f 1331 1332 1412 1411 +f 1332 1333 1413 1412 +f 1333 1334 1414 1413 +f 1334 1335 1415 1414 +f 1335 1336 1416 1415 +f 1336 1337 1417 1416 +f 1337 1338 1418 1417 +f 1338 1339 1419 1418 +f 1339 1340 1420 1419 +f 1340 1341 1421 1420 +f 1341 1342 1422 1421 +f 1342 1343 1423 1422 +f 1343 1344 1424 1423 +f 1344 1345 1425 1424 +f 1345 1346 1426 1425 +f 1346 1347 1427 1426 +f 1347 1348 1428 1427 +f 1348 1349 1429 1428 +f 1349 1350 1430 1429 +f 1350 1351 1431 1430 +f 1351 1352 1432 1431 +f 1352 1353 1433 1432 +f 1353 1354 1434 1433 +f 1354 1355 1435 1434 +f 1355 1356 1436 1435 +f 1356 1357 1437 1436 +f 1357 1358 1438 1437 +f 1358 1359 1439 1438 +f 1359 1360 1440 1439 +f 1360 1361 1441 1440 +f 1361 1362 1442 1441 +f 1362 1283 1363 1442 +f 1363 1364 1444 1443 +f 1364 1365 1445 1444 +f 1365 1366 1446 1445 +f 1366 1367 1447 1446 +f 1367 1368 1448 1447 +f 1368 1369 1449 1448 +f 1369 1370 1450 1449 +f 1370 1371 1451 1450 +f 1371 1372 1452 1451 +f 1372 1373 1453 1452 +f 1373 1374 1454 1453 +f 1374 1375 1455 1454 +f 1375 1376 1456 1455 +f 1376 1377 1457 1456 +f 1377 1378 1458 1457 +f 1378 1379 1459 1458 +f 1379 1380 1460 1459 +f 1380 1381 1461 1460 +f 1381 1382 1462 1461 +f 1382 1383 1463 1462 +f 1383 1384 1464 1463 +f 1384 1385 1465 1464 +f 1385 1386 1466 1465 +f 1386 1387 1467 1466 +f 1387 1388 1468 1467 +f 1388 1389 1469 1468 +f 1389 1390 1470 1469 +f 1390 1391 1471 1470 +f 1391 1392 1472 1471 +f 1392 1393 1473 1472 +f 1393 1394 1474 1473 +f 1394 1395 1475 1474 +f 1395 1396 1476 1475 +f 1396 1397 1477 1476 +f 1397 1398 1478 1477 +f 1398 1399 1479 1478 +f 1399 1400 1480 1479 +f 1400 1401 1481 1480 +f 1401 1402 1482 1481 +f 1402 1403 1483 1482 +f 1403 1404 1484 1483 +f 1404 1405 1485 1484 +f 1405 1406 1486 1485 +f 1406 1407 1487 1486 +f 1407 1408 1488 1487 +f 1408 1409 1489 1488 +f 1409 1410 1490 1489 +f 1410 1411 1491 1490 +f 1411 1412 1492 1491 +f 1412 1413 1493 1492 +f 1413 1414 1494 1493 +f 1414 1415 1495 1494 +f 1415 1416 1496 1495 +f 1416 1417 1497 1496 +f 1417 1418 1498 1497 +f 1418 1419 1499 1498 +f 1419 1420 1500 1499 +f 1420 1421 1501 1500 +f 1421 1422 1502 1501 +f 1422 1423 1503 1502 +f 1423 1424 1504 1503 +f 1424 1425 1505 1504 +f 1425 1426 1506 1505 +f 1426 1427 1507 1506 +f 1427 1428 1508 1507 +f 1428 1429 1509 1508 +f 1429 1430 1510 1509 +f 1430 1431 1511 1510 +f 1431 1432 1512 1511 +f 1432 1433 1513 1512 +f 1433 1434 1514 1513 +f 1434 1435 1515 1514 +f 1435 1436 1516 1515 +f 1436 1437 1517 1516 +f 1437 1438 1518 1517 +f 1438 1439 1519 1518 +f 1439 1440 1520 1519 +f 1440 1441 1521 1520 +f 1441 1442 1522 1521 +f 1442 1363 1443 1522 +f 1443 1444 1524 1523 +f 1444 1445 1525 1524 +f 1445 1446 1526 1525 +f 1446 1447 1527 1526 +f 1447 1448 1528 1527 +f 1448 1449 1529 1528 +f 1449 1450 1530 1529 +f 1450 1451 1531 1530 +f 1451 1452 1532 1531 +f 1452 1453 1533 1532 +f 1453 1454 1534 1533 +f 1454 1455 1535 1534 +f 1455 1456 1536 1535 +f 1456 1457 1537 1536 +f 1457 1458 1538 1537 +f 1458 1459 1539 1538 +f 1459 1460 1540 1539 +f 1460 1461 1541 1540 +f 1461 1462 1542 1541 +f 1462 1463 1543 1542 +f 1463 1464 1544 1543 +f 1464 1465 1545 1544 +f 1465 1466 1546 1545 +f 1466 1467 1547 1546 +f 1467 1468 1548 1547 +f 1468 1469 1549 1548 +f 1469 1470 1550 1549 +f 1470 1471 1551 1550 +f 1471 1472 1552 1551 +f 1472 1473 1553 1552 +f 1473 1474 1554 1553 +f 1474 1475 1555 1554 +f 1475 1476 1556 1555 +f 1476 1477 1557 1556 +f 1477 1478 1558 1557 +f 1478 1479 1559 1558 +f 1479 1480 1560 1559 +f 1480 1481 1561 1560 +f 1481 1482 1562 1561 +f 1482 1483 1563 1562 +f 1483 1484 1564 1563 +f 1484 1485 1565 1564 +f 1485 1486 1566 1565 +f 1486 1487 1567 1566 +f 1487 1488 1568 1567 +f 1488 1489 1569 1568 +f 1489 1490 1570 1569 +f 1490 1491 1571 1570 +f 1491 1492 1572 1571 +f 1492 1493 1573 1572 +f 1493 1494 1574 1573 +f 1494 1495 1575 1574 +f 1495 1496 1576 1575 +f 1496 1497 1577 1576 +f 1497 1498 1578 1577 +f 1498 1499 1579 1578 +f 1499 1500 1580 1579 +f 1500 1501 1581 1580 +f 1501 1502 1582 1581 +f 1502 1503 1583 1582 +f 1503 1504 1584 1583 +f 1504 1505 1585 1584 +f 1505 1506 1586 1585 +f 1506 1507 1587 1586 +f 1507 1508 1588 1587 +f 1508 1509 1589 1588 +f 1509 1510 1590 1589 +f 1510 1511 1591 1590 +f 1511 1512 1592 1591 +f 1512 1513 1593 1592 +f 1513 1514 1594 1593 +f 1514 1515 1595 1594 +f 1515 1516 1596 1595 +f 1516 1517 1597 1596 +f 1517 1518 1598 1597 +f 1518 1519 1599 1598 +f 1519 1520 1600 1599 +f 1520 1521 1601 1600 +f 1521 1522 1602 1601 +f 1522 1443 1523 1602 +f 1523 1524 1604 1603 +f 1524 1525 1605 1604 +f 1525 1526 1606 1605 +f 1526 1527 1607 1606 +f 1527 1528 1608 1607 +f 1528 1529 1609 1608 +f 1529 1530 1610 1609 +f 1530 1531 1611 1610 +f 1531 1532 1612 1611 +f 1532 1533 1613 1612 +f 1533 1534 1614 1613 +f 1534 1535 1615 1614 +f 1535 1536 1616 1615 +f 1536 1537 1617 1616 +f 1537 1538 1618 1617 +f 1538 1539 1619 1618 +f 1539 1540 1620 1619 +f 1540 1541 1621 1620 +f 1541 1542 1622 1621 +f 1542 1543 1623 1622 +f 1543 1544 1624 1623 +f 1544 1545 1625 1624 +f 1545 1546 1626 1625 +f 1546 1547 1627 1626 +f 1547 1548 1628 1627 +f 1548 1549 1629 1628 +f 1549 1550 1630 1629 +f 1550 1551 1631 1630 +f 1551 1552 1632 1631 +f 1552 1553 1633 1632 +f 1553 1554 1634 1633 +f 1554 1555 1635 1634 +f 1555 1556 1636 1635 +f 1556 1557 1637 1636 +f 1557 1558 1638 1637 +f 1558 1559 1639 1638 +f 1559 1560 1640 1639 +f 1560 1561 1641 1640 +f 1561 1562 1642 1641 +f 1562 1563 1643 1642 +f 1563 1564 1644 1643 +f 1564 1565 1645 1644 +f 1565 1566 1646 1645 +f 1566 1567 1647 1646 +f 1567 1568 1648 1647 +f 1568 1569 1649 1648 +f 1569 1570 1650 1649 +f 1570 1571 1651 1650 +f 1571 1572 1652 1651 +f 1572 1573 1653 1652 +f 1573 1574 1654 1653 +f 1574 1575 1655 1654 +f 1575 1576 1656 1655 +f 1576 1577 1657 1656 +f 1577 1578 1658 1657 +f 1578 1579 1659 1658 +f 1579 1580 1660 1659 +f 1580 1581 1661 1660 +f 1581 1582 1662 1661 +f 1582 1583 1663 1662 +f 1583 1584 1664 1663 +f 1584 1585 1665 1664 +f 1585 1586 1666 1665 +f 1586 1587 1667 1666 +f 1587 1588 1668 1667 +f 1588 1589 1669 1668 +f 1589 1590 1670 1669 +f 1590 1591 1671 1670 +f 1591 1592 1672 1671 +f 1592 1593 1673 1672 +f 1593 1594 1674 1673 +f 1594 1595 1675 1674 +f 1595 1596 1676 1675 +f 1596 1597 1677 1676 +f 1597 1598 1678 1677 +f 1598 1599 1679 1678 +f 1599 1600 1680 1679 +f 1600 1601 1681 1680 +f 1601 1602 1682 1681 +f 1602 1523 1603 1682 +f 1603 1604 1684 1683 +f 1604 1605 1685 1684 +f 1605 1606 1686 1685 +f 1606 1607 1687 1686 +f 1607 1608 1688 1687 +f 1608 1609 1689 1688 +f 1609 1610 1690 1689 +f 1610 1611 1691 1690 +f 1611 1612 1692 1691 +f 1612 1613 1693 1692 +f 1613 1614 1694 1693 +f 1614 1615 1695 1694 +f 1615 1616 1696 1695 +f 1616 1617 1697 1696 +f 1617 1618 1698 1697 +f 1618 1619 1699 1698 +f 1619 1620 1700 1699 +f 1620 1621 1701 1700 +f 1621 1622 1702 1701 +f 1622 1623 1703 1702 +f 1623 1624 1704 1703 +f 1624 1625 1705 1704 +f 1625 1626 1706 1705 +f 1626 1627 1707 1706 +f 1627 1628 1708 1707 +f 1628 1629 1709 1708 +f 1629 1630 1710 1709 +f 1630 1631 1711 1710 +f 1631 1632 1712 1711 +f 1632 1633 1713 1712 +f 1633 1634 1714 1713 +f 1634 1635 1715 1714 +f 1635 1636 1716 1715 +f 1636 1637 1717 1716 +f 1637 1638 1718 1717 +f 1638 1639 1719 1718 +f 1639 1640 1720 1719 +f 1640 1641 1721 1720 +f 1641 1642 1722 1721 +f 1642 1643 1723 1722 +f 1643 1644 1724 1723 +f 1644 1645 1725 1724 +f 1645 1646 1726 1725 +f 1646 1647 1727 1726 +f 1647 1648 1728 1727 +f 1648 1649 1729 1728 +f 1649 1650 1730 1729 +f 1650 1651 1731 1730 +f 1651 1652 1732 1731 +f 1652 1653 1733 1732 +f 1653 1654 1734 1733 +f 1654 1655 1735 1734 +f 1655 1656 1736 1735 +f 1656 1657 1737 1736 +f 1657 1658 1738 1737 +f 1658 1659 1739 1738 +f 1659 1660 1740 1739 +f 1660 1661 1741 1740 +f 1661 1662 1742 1741 +f 1662 1663 1743 1742 +f 1663 1664 1744 1743 +f 1664 1665 1745 1744 +f 1665 1666 1746 1745 +f 1666 1667 1747 1746 +f 1667 1668 1748 1747 +f 1668 1669 1749 1748 +f 1669 1670 1750 1749 +f 1670 1671 1751 1750 +f 1671 1672 1752 1751 +f 1672 1673 1753 1752 +f 1673 1674 1754 1753 +f 1674 1675 1755 1754 +f 1675 1676 1756 1755 +f 1676 1677 1757 1756 +f 1677 1678 1758 1757 +f 1678 1679 1759 1758 +f 1679 1680 1760 1759 +f 1680 1681 1761 1760 +f 1681 1682 1762 1761 +f 1682 1603 1683 1762 +f 1683 1684 1764 1763 +f 1684 1685 1765 1764 +f 1685 1686 1766 1765 +f 1686 1687 1767 1766 +f 1687 1688 1768 1767 +f 1688 1689 1769 1768 +f 1689 1690 1770 1769 +f 1690 1691 1771 1770 +f 1691 1692 1772 1771 +f 1692 1693 1773 1772 +f 1693 1694 1774 1773 +f 1694 1695 1775 1774 +f 1695 1696 1776 1775 +f 1696 1697 1777 1776 +f 1697 1698 1778 1777 +f 1698 1699 1779 1778 +f 1699 1700 1780 1779 +f 1700 1701 1781 1780 +f 1701 1702 1782 1781 +f 1702 1703 1783 1782 +f 1703 1704 1784 1783 +f 1704 1705 1785 1784 +f 1705 1706 1786 1785 +f 1706 1707 1787 1786 +f 1707 1708 1788 1787 +f 1708 1709 1789 1788 +f 1709 1710 1790 1789 +f 1710 1711 1791 1790 +f 1711 1712 1792 1791 +f 1712 1713 1793 1792 +f 1713 1714 1794 1793 +f 1714 1715 1795 1794 +f 1715 1716 1796 1795 +f 1716 1717 1797 1796 +f 1717 1718 1798 1797 +f 1718 1719 1799 1798 +f 1719 1720 1800 1799 +f 1720 1721 1801 1800 +f 1721 1722 1802 1801 +f 1722 1723 1803 1802 +f 1723 1724 1804 1803 +f 1724 1725 1805 1804 +f 1725 1726 1806 1805 +f 1726 1727 1807 1806 +f 1727 1728 1808 1807 +f 1728 1729 1809 1808 +f 1729 1730 1810 1809 +f 1730 1731 1811 1810 +f 1731 1732 1812 1811 +f 1732 1733 1813 1812 +f 1733 1734 1814 1813 +f 1734 1735 1815 1814 +f 1735 1736 1816 1815 +f 1736 1737 1817 1816 +f 1737 1738 1818 1817 +f 1738 1739 1819 1818 +f 1739 1740 1820 1819 +f 1740 1741 1821 1820 +f 1741 1742 1822 1821 +f 1742 1743 1823 1822 +f 1743 1744 1824 1823 +f 1744 1745 1825 1824 +f 1745 1746 1826 1825 +f 1746 1747 1827 1826 +f 1747 1748 1828 1827 +f 1748 1749 1829 1828 +f 1749 1750 1830 1829 +f 1750 1751 1831 1830 +f 1751 1752 1832 1831 +f 1752 1753 1833 1832 +f 1753 1754 1834 1833 +f 1754 1755 1835 1834 +f 1755 1756 1836 1835 +f 1756 1757 1837 1836 +f 1757 1758 1838 1837 +f 1758 1759 1839 1838 +f 1759 1760 1840 1839 +f 1760 1761 1841 1840 +f 1761 1762 1842 1841 +f 1762 1683 1763 1842 +f 1763 1764 1844 1843 +f 1764 1765 1845 1844 +f 1765 1766 1846 1845 +f 1766 1767 1847 1846 +f 1767 1768 1848 1847 +f 1768 1769 1849 1848 +f 1769 1770 1850 1849 +f 1770 1771 1851 1850 +f 1771 1772 1852 1851 +f 1772 1773 1853 1852 +f 1773 1774 1854 1853 +f 1774 1775 1855 1854 +f 1775 1776 1856 1855 +f 1776 1777 1857 1856 +f 1777 1778 1858 1857 +f 1778 1779 1859 1858 +f 1779 1780 1860 1859 +f 1780 1781 1861 1860 +f 1781 1782 1862 1861 +f 1782 1783 1863 1862 +f 1783 1784 1864 1863 +f 1784 1785 1865 1864 +f 1785 1786 1866 1865 +f 1786 1787 1867 1866 +f 1787 1788 1868 1867 +f 1788 1789 1869 1868 +f 1789 1790 1870 1869 +f 1790 1791 1871 1870 +f 1791 1792 1872 1871 +f 1792 1793 1873 1872 +f 1793 1794 1874 1873 +f 1794 1795 1875 1874 +f 1795 1796 1876 1875 +f 1796 1797 1877 1876 +f 1797 1798 1878 1877 +f 1798 1799 1879 1878 +f 1799 1800 1880 1879 +f 1800 1801 1881 1880 +f 1801 1802 1882 1881 +f 1802 1803 1883 1882 +f 1803 1804 1884 1883 +f 1804 1805 1885 1884 +f 1805 1806 1886 1885 +f 1806 1807 1887 1886 +f 1807 1808 1888 1887 +f 1808 1809 1889 1888 +f 1809 1810 1890 1889 +f 1810 1811 1891 1890 +f 1811 1812 1892 1891 +f 1812 1813 1893 1892 +f 1813 1814 1894 1893 +f 1814 1815 1895 1894 +f 1815 1816 1896 1895 +f 1816 1817 1897 1896 +f 1817 1818 1898 1897 +f 1818 1819 1899 1898 +f 1819 1820 1900 1899 +f 1820 1821 1901 1900 +f 1821 1822 1902 1901 +f 1822 1823 1903 1902 +f 1823 1824 1904 1903 +f 1824 1825 1905 1904 +f 1825 1826 1906 1905 +f 1826 1827 1907 1906 +f 1827 1828 1908 1907 +f 1828 1829 1909 1908 +f 1829 1830 1910 1909 +f 1830 1831 1911 1910 +f 1831 1832 1912 1911 +f 1832 1833 1913 1912 +f 1833 1834 1914 1913 +f 1834 1835 1915 1914 +f 1835 1836 1916 1915 +f 1836 1837 1917 1916 +f 1837 1838 1918 1917 +f 1838 1839 1919 1918 +f 1839 1840 1920 1919 +f 1840 1841 1921 1920 +f 1841 1842 1922 1921 +f 1842 1763 1843 1922 +f 1843 1844 1924 1923 +f 1844 1845 1925 1924 +f 1845 1846 1926 1925 +f 1846 1847 1927 1926 +f 1847 1848 1928 1927 +f 1848 1849 1929 1928 +f 1849 1850 1930 1929 +f 1850 1851 1931 1930 +f 1851 1852 1932 1931 +f 1852 1853 1933 1932 +f 1853 1854 1934 1933 +f 1854 1855 1935 1934 +f 1855 1856 1936 1935 +f 1856 1857 1937 1936 +f 1857 1858 1938 1937 +f 1858 1859 1939 1938 +f 1859 1860 1940 1939 +f 1860 1861 1941 1940 +f 1861 1862 1942 1941 +f 1862 1863 1943 1942 +f 1863 1864 1944 1943 +f 1864 1865 1945 1944 +f 1865 1866 1946 1945 +f 1866 1867 1947 1946 +f 1867 1868 1948 1947 +f 1868 1869 1949 1948 +f 1869 1870 1950 1949 +f 1870 1871 1951 1950 +f 1871 1872 1952 1951 +f 1872 1873 1953 1952 +f 1873 1874 1954 1953 +f 1874 1875 1955 1954 +f 1875 1876 1956 1955 +f 1876 1877 1957 1956 +f 1877 1878 1958 1957 +f 1878 1879 1959 1958 +f 1879 1880 1960 1959 +f 1880 1881 1961 1960 +f 1881 1882 1962 1961 +f 1882 1883 1963 1962 +f 1883 1884 1964 1963 +f 1884 1885 1965 1964 +f 1885 1886 1966 1965 +f 1886 1887 1967 1966 +f 1887 1888 1968 1967 +f 1888 1889 1969 1968 +f 1889 1890 1970 1969 +f 1890 1891 1971 1970 +f 1891 1892 1972 1971 +f 1892 1893 1973 1972 +f 1893 1894 1974 1973 +f 1894 1895 1975 1974 +f 1895 1896 1976 1975 +f 1896 1897 1977 1976 +f 1897 1898 1978 1977 +f 1898 1899 1979 1978 +f 1899 1900 1980 1979 +f 1900 1901 1981 1980 +f 1901 1902 1982 1981 +f 1902 1903 1983 1982 +f 1903 1904 1984 1983 +f 1904 1905 1985 1984 +f 1905 1906 1986 1985 +f 1906 1907 1987 1986 +f 1907 1908 1988 1987 +f 1908 1909 1989 1988 +f 1909 1910 1990 1989 +f 1910 1911 1991 1990 +f 1911 1912 1992 1991 +f 1912 1913 1993 1992 +f 1913 1914 1994 1993 +f 1914 1915 1995 1994 +f 1915 1916 1996 1995 +f 1916 1917 1997 1996 +f 1917 1918 1998 1997 +f 1918 1919 1999 1998 +f 1919 1920 2000 1999 +f 1920 1921 2001 2000 +f 1921 1922 2002 2001 +f 1922 1843 1923 2002 +f 1923 1924 2004 2003 +f 1924 1925 2005 2004 +f 1925 1926 2006 2005 +f 1926 1927 2007 2006 +f 1927 1928 2008 2007 +f 1928 1929 2009 2008 +f 1929 1930 2010 2009 +f 1930 1931 2011 2010 +f 1931 1932 2012 2011 +f 1932 1933 2013 2012 +f 1933 1934 2014 2013 +f 1934 1935 2015 2014 +f 1935 1936 2016 2015 +f 1936 1937 2017 2016 +f 1937 1938 2018 2017 +f 1938 1939 2019 2018 +f 1939 1940 2020 2019 +f 1940 1941 2021 2020 +f 1941 1942 2022 2021 +f 1942 1943 2023 2022 +f 1943 1944 2024 2023 +f 1944 1945 2025 2024 +f 1945 1946 2026 2025 +f 1946 1947 2027 2026 +f 1947 1948 2028 2027 +f 1948 1949 2029 2028 +f 1949 1950 2030 2029 +f 1950 1951 2031 2030 +f 1951 1952 2032 2031 +f 1952 1953 2033 2032 +f 1953 1954 2034 2033 +f 1954 1955 2035 2034 +f 1955 1956 2036 2035 +f 1956 1957 2037 2036 +f 1957 1958 2038 2037 +f 1958 1959 2039 2038 +f 1959 1960 2040 2039 +f 1960 1961 2041 2040 +f 1961 1962 2042 2041 +f 1962 1963 2043 2042 +f 1963 1964 2044 2043 +f 1964 1965 2045 2044 +f 1965 1966 2046 2045 +f 1966 1967 2047 2046 +f 1967 1968 2048 2047 +f 1968 1969 2049 2048 +f 1969 1970 2050 2049 +f 1970 1971 2051 2050 +f 1971 1972 2052 2051 +f 1972 1973 2053 2052 +f 1973 1974 2054 2053 +f 1974 1975 2055 2054 +f 1975 1976 2056 2055 +f 1976 1977 2057 2056 +f 1977 1978 2058 2057 +f 1978 1979 2059 2058 +f 1979 1980 2060 2059 +f 1980 1981 2061 2060 +f 1981 1982 2062 2061 +f 1982 1983 2063 2062 +f 1983 1984 2064 2063 +f 1984 1985 2065 2064 +f 1985 1986 2066 2065 +f 1986 1987 2067 2066 +f 1987 1988 2068 2067 +f 1988 1989 2069 2068 +f 1989 1990 2070 2069 +f 1990 1991 2071 2070 +f 1991 1992 2072 2071 +f 1992 1993 2073 2072 +f 1993 1994 2074 2073 +f 1994 1995 2075 2074 +f 1995 1996 2076 2075 +f 1996 1997 2077 2076 +f 1997 1998 2078 2077 +f 1998 1999 2079 2078 +f 1999 2000 2080 2079 +f 2000 2001 2081 2080 +f 2001 2002 2082 2081 +f 2002 1923 2003 2082 +f 2003 2004 2084 2083 +f 2004 2005 2085 2084 +f 2005 2006 2086 2085 +f 2006 2007 2087 2086 +f 2007 2008 2088 2087 +f 2008 2009 2089 2088 +f 2009 2010 2090 2089 +f 2010 2011 2091 2090 +f 2011 2012 2092 2091 +f 2012 2013 2093 2092 +f 2013 2014 2094 2093 +f 2014 2015 2095 2094 +f 2015 2016 2096 2095 +f 2016 2017 2097 2096 +f 2017 2018 2098 2097 +f 2018 2019 2099 2098 +f 2019 2020 2100 2099 +f 2020 2021 2101 2100 +f 2021 2022 2102 2101 +f 2022 2023 2103 2102 +f 2023 2024 2104 2103 +f 2024 2025 2105 2104 +f 2025 2026 2106 2105 +f 2026 2027 2107 2106 +f 2027 2028 2108 2107 +f 2028 2029 2109 2108 +f 2029 2030 2110 2109 +f 2030 2031 2111 2110 +f 2031 2032 2112 2111 +f 2032 2033 2113 2112 +f 2033 2034 2114 2113 +f 2034 2035 2115 2114 +f 2035 2036 2116 2115 +f 2036 2037 2117 2116 +f 2037 2038 2118 2117 +f 2038 2039 2119 2118 +f 2039 2040 2120 2119 +f 2040 2041 2121 2120 +f 2041 2042 2122 2121 +f 2042 2043 2123 2122 +f 2043 2044 2124 2123 +f 2044 2045 2125 2124 +f 2045 2046 2126 2125 +f 2046 2047 2127 2126 +f 2047 2048 2128 2127 +f 2048 2049 2129 2128 +f 2049 2050 2130 2129 +f 2050 2051 2131 2130 +f 2051 2052 2132 2131 +f 2052 2053 2133 2132 +f 2053 2054 2134 2133 +f 2054 2055 2135 2134 +f 2055 2056 2136 2135 +f 2056 2057 2137 2136 +f 2057 2058 2138 2137 +f 2058 2059 2139 2138 +f 2059 2060 2140 2139 +f 2060 2061 2141 2140 +f 2061 2062 2142 2141 +f 2062 2063 2143 2142 +f 2063 2064 2144 2143 +f 2064 2065 2145 2144 +f 2065 2066 2146 2145 +f 2066 2067 2147 2146 +f 2067 2068 2148 2147 +f 2068 2069 2149 2148 +f 2069 2070 2150 2149 +f 2070 2071 2151 2150 +f 2071 2072 2152 2151 +f 2072 2073 2153 2152 +f 2073 2074 2154 2153 +f 2074 2075 2155 2154 +f 2075 2076 2156 2155 +f 2076 2077 2157 2156 +f 2077 2078 2158 2157 +f 2078 2079 2159 2158 +f 2079 2080 2160 2159 +f 2080 2081 2161 2160 +f 2081 2082 2162 2161 +f 2082 2003 2083 2162 +f 2083 2084 2164 2163 +f 2084 2085 2165 2164 +f 2085 2086 2166 2165 +f 2086 2087 2167 2166 +f 2087 2088 2168 2167 +f 2088 2089 2169 2168 +f 2089 2090 2170 2169 +f 2090 2091 2171 2170 +f 2091 2092 2172 2171 +f 2092 2093 2173 2172 +f 2093 2094 2174 2173 +f 2094 2095 2175 2174 +f 2095 2096 2176 2175 +f 2096 2097 2177 2176 +f 2097 2098 2178 2177 +f 2098 2099 2179 2178 +f 2099 2100 2180 2179 +f 2100 2101 2181 2180 +f 2101 2102 2182 2181 +f 2102 2103 2183 2182 +f 2103 2104 2184 2183 +f 2104 2105 2185 2184 +f 2105 2106 2186 2185 +f 2106 2107 2187 2186 +f 2107 2108 2188 2187 +f 2108 2109 2189 2188 +f 2109 2110 2190 2189 +f 2110 2111 2191 2190 +f 2111 2112 2192 2191 +f 2112 2113 2193 2192 +f 2113 2114 2194 2193 +f 2114 2115 2195 2194 +f 2115 2116 2196 2195 +f 2116 2117 2197 2196 +f 2117 2118 2198 2197 +f 2118 2119 2199 2198 +f 2119 2120 2200 2199 +f 2120 2121 2201 2200 +f 2121 2122 2202 2201 +f 2122 2123 2203 2202 +f 2123 2124 2204 2203 +f 2124 2125 2205 2204 +f 2125 2126 2206 2205 +f 2126 2127 2207 2206 +f 2127 2128 2208 2207 +f 2128 2129 2209 2208 +f 2129 2130 2210 2209 +f 2130 2131 2211 2210 +f 2131 2132 2212 2211 +f 2132 2133 2213 2212 +f 2133 2134 2214 2213 +f 2134 2135 2215 2214 +f 2135 2136 2216 2215 +f 2136 2137 2217 2216 +f 2137 2138 2218 2217 +f 2138 2139 2219 2218 +f 2139 2140 2220 2219 +f 2140 2141 2221 2220 +f 2141 2142 2222 2221 +f 2142 2143 2223 2222 +f 2143 2144 2224 2223 +f 2144 2145 2225 2224 +f 2145 2146 2226 2225 +f 2146 2147 2227 2226 +f 2147 2148 2228 2227 +f 2148 2149 2229 2228 +f 2149 2150 2230 2229 +f 2150 2151 2231 2230 +f 2151 2152 2232 2231 +f 2152 2153 2233 2232 +f 2153 2154 2234 2233 +f 2154 2155 2235 2234 +f 2155 2156 2236 2235 +f 2156 2157 2237 2236 +f 2157 2158 2238 2237 +f 2158 2159 2239 2238 +f 2159 2160 2240 2239 +f 2160 2161 2241 2240 +f 2161 2162 2242 2241 +f 2162 2083 2163 2242 +f 2163 2164 2244 2243 +f 2164 2165 2245 2244 +f 2165 2166 2246 2245 +f 2166 2167 2247 2246 +f 2167 2168 2248 2247 +f 2168 2169 2249 2248 +f 2169 2170 2250 2249 +f 2170 2171 2251 2250 +f 2171 2172 2252 2251 +f 2172 2173 2253 2252 +f 2173 2174 2254 2253 +f 2174 2175 2255 2254 +f 2175 2176 2256 2255 +f 2176 2177 2257 2256 +f 2177 2178 2258 2257 +f 2178 2179 2259 2258 +f 2179 2180 2260 2259 +f 2180 2181 2261 2260 +f 2181 2182 2262 2261 +f 2182 2183 2263 2262 +f 2183 2184 2264 2263 +f 2184 2185 2265 2264 +f 2185 2186 2266 2265 +f 2186 2187 2267 2266 +f 2187 2188 2268 2267 +f 2188 2189 2269 2268 +f 2189 2190 2270 2269 +f 2190 2191 2271 2270 +f 2191 2192 2272 2271 +f 2192 2193 2273 2272 +f 2193 2194 2274 2273 +f 2194 2195 2275 2274 +f 2195 2196 2276 2275 +f 2196 2197 2277 2276 +f 2197 2198 2278 2277 +f 2198 2199 2279 2278 +f 2199 2200 2280 2279 +f 2200 2201 2281 2280 +f 2201 2202 2282 2281 +f 2202 2203 2283 2282 +f 2203 2204 2284 2283 +f 2204 2205 2285 2284 +f 2205 2206 2286 2285 +f 2206 2207 2287 2286 +f 2207 2208 2288 2287 +f 2208 2209 2289 2288 +f 2209 2210 2290 2289 +f 2210 2211 2291 2290 +f 2211 2212 2292 2291 +f 2212 2213 2293 2292 +f 2213 2214 2294 2293 +f 2214 2215 2295 2294 +f 2215 2216 2296 2295 +f 2216 2217 2297 2296 +f 2217 2218 2298 2297 +f 2218 2219 2299 2298 +f 2219 2220 2300 2299 +f 2220 2221 2301 2300 +f 2221 2222 2302 2301 +f 2222 2223 2303 2302 +f 2223 2224 2304 2303 +f 2224 2225 2305 2304 +f 2225 2226 2306 2305 +f 2226 2227 2307 2306 +f 2227 2228 2308 2307 +f 2228 2229 2309 2308 +f 2229 2230 2310 2309 +f 2230 2231 2311 2310 +f 2231 2232 2312 2311 +f 2232 2233 2313 2312 +f 2233 2234 2314 2313 +f 2234 2235 2315 2314 +f 2235 2236 2316 2315 +f 2236 2237 2317 2316 +f 2237 2238 2318 2317 +f 2238 2239 2319 2318 +f 2239 2240 2320 2319 +f 2240 2241 2321 2320 +f 2241 2242 2322 2321 +f 2242 2163 2243 2322 +f 2243 2244 2324 2323 +f 2244 2245 2325 2324 +f 2245 2246 2326 2325 +f 2246 2247 2327 2326 +f 2247 2248 2328 2327 +f 2248 2249 2329 2328 +f 2249 2250 2330 2329 +f 2250 2251 2331 2330 +f 2251 2252 2332 2331 +f 2252 2253 2333 2332 +f 2253 2254 2334 2333 +f 2254 2255 2335 2334 +f 2255 2256 2336 2335 +f 2256 2257 2337 2336 +f 2257 2258 2338 2337 +f 2258 2259 2339 2338 +f 2259 2260 2340 2339 +f 2260 2261 2341 2340 +f 2261 2262 2342 2341 +f 2262 2263 2343 2342 +f 2263 2264 2344 2343 +f 2264 2265 2345 2344 +f 2265 2266 2346 2345 +f 2266 2267 2347 2346 +f 2267 2268 2348 2347 +f 2268 2269 2349 2348 +f 2269 2270 2350 2349 +f 2270 2271 2351 2350 +f 2271 2272 2352 2351 +f 2272 2273 2353 2352 +f 2273 2274 2354 2353 +f 2274 2275 2355 2354 +f 2275 2276 2356 2355 +f 2276 2277 2357 2356 +f 2277 2278 2358 2357 +f 2278 2279 2359 2358 +f 2279 2280 2360 2359 +f 2280 2281 2361 2360 +f 2281 2282 2362 2361 +f 2282 2283 2363 2362 +f 2283 2284 2364 2363 +f 2284 2285 2365 2364 +f 2285 2286 2366 2365 +f 2286 2287 2367 2366 +f 2287 2288 2368 2367 +f 2288 2289 2369 2368 +f 2289 2290 2370 2369 +f 2290 2291 2371 2370 +f 2291 2292 2372 2371 +f 2292 2293 2373 2372 +f 2293 2294 2374 2373 +f 2294 2295 2375 2374 +f 2295 2296 2376 2375 +f 2296 2297 2377 2376 +f 2297 2298 2378 2377 +f 2298 2299 2379 2378 +f 2299 2300 2380 2379 +f 2300 2301 2381 2380 +f 2301 2302 2382 2381 +f 2302 2303 2383 2382 +f 2303 2304 2384 2383 +f 2304 2305 2385 2384 +f 2305 2306 2386 2385 +f 2306 2307 2387 2386 +f 2307 2308 2388 2387 +f 2308 2309 2389 2388 +f 2309 2310 2390 2389 +f 2310 2311 2391 2390 +f 2311 2312 2392 2391 +f 2312 2313 2393 2392 +f 2313 2314 2394 2393 +f 2314 2315 2395 2394 +f 2315 2316 2396 2395 +f 2316 2317 2397 2396 +f 2317 2318 2398 2397 +f 2318 2319 2399 2398 +f 2319 2320 2400 2399 +f 2320 2321 2401 2400 +f 2321 2322 2402 2401 +f 2322 2243 2323 2402 +f 2323 2324 2404 2403 +f 2324 2325 2405 2404 +f 2325 2326 2406 2405 +f 2326 2327 2407 2406 +f 2327 2328 2408 2407 +f 2328 2329 2409 2408 +f 2329 2330 2410 2409 +f 2330 2331 2411 2410 +f 2331 2332 2412 2411 +f 2332 2333 2413 2412 +f 2333 2334 2414 2413 +f 2334 2335 2415 2414 +f 2335 2336 2416 2415 +f 2336 2337 2417 2416 +f 2337 2338 2418 2417 +f 2338 2339 2419 2418 +f 2339 2340 2420 2419 +f 2340 2341 2421 2420 +f 2341 2342 2422 2421 +f 2342 2343 2423 2422 +f 2343 2344 2424 2423 +f 2344 2345 2425 2424 +f 2345 2346 2426 2425 +f 2346 2347 2427 2426 +f 2347 2348 2428 2427 +f 2348 2349 2429 2428 +f 2349 2350 2430 2429 +f 2350 2351 2431 2430 +f 2351 2352 2432 2431 +f 2352 2353 2433 2432 +f 2353 2354 2434 2433 +f 2354 2355 2435 2434 +f 2355 2356 2436 2435 +f 2356 2357 2437 2436 +f 2357 2358 2438 2437 +f 2358 2359 2439 2438 +f 2359 2360 2440 2439 +f 2360 2361 2441 2440 +f 2361 2362 2442 2441 +f 2362 2363 2443 2442 +f 2363 2364 2444 2443 +f 2364 2365 2445 2444 +f 2365 2366 2446 2445 +f 2366 2367 2447 2446 +f 2367 2368 2448 2447 +f 2368 2369 2449 2448 +f 2369 2370 2450 2449 +f 2370 2371 2451 2450 +f 2371 2372 2452 2451 +f 2372 2373 2453 2452 +f 2373 2374 2454 2453 +f 2374 2375 2455 2454 +f 2375 2376 2456 2455 +f 2376 2377 2457 2456 +f 2377 2378 2458 2457 +f 2378 2379 2459 2458 +f 2379 2380 2460 2459 +f 2380 2381 2461 2460 +f 2381 2382 2462 2461 +f 2382 2383 2463 2462 +f 2383 2384 2464 2463 +f 2384 2385 2465 2464 +f 2385 2386 2466 2465 +f 2386 2387 2467 2466 +f 2387 2388 2468 2467 +f 2388 2389 2469 2468 +f 2389 2390 2470 2469 +f 2390 2391 2471 2470 +f 2391 2392 2472 2471 +f 2392 2393 2473 2472 +f 2393 2394 2474 2473 +f 2394 2395 2475 2474 +f 2395 2396 2476 2475 +f 2396 2397 2477 2476 +f 2397 2398 2478 2477 +f 2398 2399 2479 2478 +f 2399 2400 2480 2479 +f 2400 2401 2481 2480 +f 2401 2402 2482 2481 +f 2402 2323 2403 2482 +f 2403 2404 2484 2483 +f 2404 2405 2485 2484 +f 2405 2406 2486 2485 +f 2406 2407 2487 2486 +f 2407 2408 2488 2487 +f 2408 2409 2489 2488 +f 2409 2410 2490 2489 +f 2410 2411 2491 2490 +f 2411 2412 2492 2491 +f 2412 2413 2493 2492 +f 2413 2414 2494 2493 +f 2414 2415 2495 2494 +f 2415 2416 2496 2495 +f 2416 2417 2497 2496 +f 2417 2418 2498 2497 +f 2418 2419 2499 2498 +f 2419 2420 2500 2499 +f 2420 2421 2501 2500 +f 2421 2422 2502 2501 +f 2422 2423 2503 2502 +f 2423 2424 2504 2503 +f 2424 2425 2505 2504 +f 2425 2426 2506 2505 +f 2426 2427 2507 2506 +f 2427 2428 2508 2507 +f 2428 2429 2509 2508 +f 2429 2430 2510 2509 +f 2430 2431 2511 2510 +f 2431 2432 2512 2511 +f 2432 2433 2513 2512 +f 2433 2434 2514 2513 +f 2434 2435 2515 2514 +f 2435 2436 2516 2515 +f 2436 2437 2517 2516 +f 2437 2438 2518 2517 +f 2438 2439 2519 2518 +f 2439 2440 2520 2519 +f 2440 2441 2521 2520 +f 2441 2442 2522 2521 +f 2442 2443 2523 2522 +f 2443 2444 2524 2523 +f 2444 2445 2525 2524 +f 2445 2446 2526 2525 +f 2446 2447 2527 2526 +f 2447 2448 2528 2527 +f 2448 2449 2529 2528 +f 2449 2450 2530 2529 +f 2450 2451 2531 2530 +f 2451 2452 2532 2531 +f 2452 2453 2533 2532 +f 2453 2454 2534 2533 +f 2454 2455 2535 2534 +f 2455 2456 2536 2535 +f 2456 2457 2537 2536 +f 2457 2458 2538 2537 +f 2458 2459 2539 2538 +f 2459 2460 2540 2539 +f 2460 2461 2541 2540 +f 2461 2462 2542 2541 +f 2462 2463 2543 2542 +f 2463 2464 2544 2543 +f 2464 2465 2545 2544 +f 2465 2466 2546 2545 +f 2466 2467 2547 2546 +f 2467 2468 2548 2547 +f 2468 2469 2549 2548 +f 2469 2470 2550 2549 +f 2470 2471 2551 2550 +f 2471 2472 2552 2551 +f 2472 2473 2553 2552 +f 2473 2474 2554 2553 +f 2474 2475 2555 2554 +f 2475 2476 2556 2555 +f 2476 2477 2557 2556 +f 2477 2478 2558 2557 +f 2478 2479 2559 2558 +f 2479 2480 2560 2559 +f 2480 2481 2561 2560 +f 2481 2482 2562 2561 +f 2482 2403 2483 2562 +f 2483 2484 2564 2563 +f 2484 2485 2565 2564 +f 2485 2486 2566 2565 +f 2486 2487 2567 2566 +f 2487 2488 2568 2567 +f 2488 2489 2569 2568 +f 2489 2490 2570 2569 +f 2490 2491 2571 2570 +f 2491 2492 2572 2571 +f 2492 2493 2573 2572 +f 2493 2494 2574 2573 +f 2494 2495 2575 2574 +f 2495 2496 2576 2575 +f 2496 2497 2577 2576 +f 2497 2498 2578 2577 +f 2498 2499 2579 2578 +f 2499 2500 2580 2579 +f 2500 2501 2581 2580 +f 2501 2502 2582 2581 +f 2502 2503 2583 2582 +f 2503 2504 2584 2583 +f 2504 2505 2585 2584 +f 2505 2506 2586 2585 +f 2506 2507 2587 2586 +f 2507 2508 2588 2587 +f 2508 2509 2589 2588 +f 2509 2510 2590 2589 +f 2510 2511 2591 2590 +f 2511 2512 2592 2591 +f 2512 2513 2593 2592 +f 2513 2514 2594 2593 +f 2514 2515 2595 2594 +f 2515 2516 2596 2595 +f 2516 2517 2597 2596 +f 2517 2518 2598 2597 +f 2518 2519 2599 2598 +f 2519 2520 2600 2599 +f 2520 2521 2601 2600 +f 2521 2522 2602 2601 +f 2522 2523 2603 2602 +f 2523 2524 2604 2603 +f 2524 2525 2605 2604 +f 2525 2526 2606 2605 +f 2526 2527 2607 2606 +f 2527 2528 2608 2607 +f 2528 2529 2609 2608 +f 2529 2530 2610 2609 +f 2530 2531 2611 2610 +f 2531 2532 2612 2611 +f 2532 2533 2613 2612 +f 2533 2534 2614 2613 +f 2534 2535 2615 2614 +f 2535 2536 2616 2615 +f 2536 2537 2617 2616 +f 2537 2538 2618 2617 +f 2538 2539 2619 2618 +f 2539 2540 2620 2619 +f 2540 2541 2621 2620 +f 2541 2542 2622 2621 +f 2542 2543 2623 2622 +f 2543 2544 2624 2623 +f 2544 2545 2625 2624 +f 2545 2546 2626 2625 +f 2546 2547 2627 2626 +f 2547 2548 2628 2627 +f 2548 2549 2629 2628 +f 2549 2550 2630 2629 +f 2550 2551 2631 2630 +f 2551 2552 2632 2631 +f 2552 2553 2633 2632 +f 2553 2554 2634 2633 +f 2554 2555 2635 2634 +f 2555 2556 2636 2635 +f 2556 2557 2637 2636 +f 2557 2558 2638 2637 +f 2558 2559 2639 2638 +f 2559 2560 2640 2639 +f 2560 2561 2641 2640 +f 2561 2562 2642 2641 +f 2562 2483 2563 2642 +f 2563 2564 2644 2643 +f 2564 2565 2645 2644 +f 2565 2566 2646 2645 +f 2566 2567 2647 2646 +f 2567 2568 2648 2647 +f 2568 2569 2649 2648 +f 2569 2570 2650 2649 +f 2570 2571 2651 2650 +f 2571 2572 2652 2651 +f 2572 2573 2653 2652 +f 2573 2574 2654 2653 +f 2574 2575 2655 2654 +f 2575 2576 2656 2655 +f 2576 2577 2657 2656 +f 2577 2578 2658 2657 +f 2578 2579 2659 2658 +f 2579 2580 2660 2659 +f 2580 2581 2661 2660 +f 2581 2582 2662 2661 +f 2582 2583 2663 2662 +f 2583 2584 2664 2663 +f 2584 2585 2665 2664 +f 2585 2586 2666 2665 +f 2586 2587 2667 2666 +f 2587 2588 2668 2667 +f 2588 2589 2669 2668 +f 2589 2590 2670 2669 +f 2590 2591 2671 2670 +f 2591 2592 2672 2671 +f 2592 2593 2673 2672 +f 2593 2594 2674 2673 +f 2594 2595 2675 2674 +f 2595 2596 2676 2675 +f 2596 2597 2677 2676 +f 2597 2598 2678 2677 +f 2598 2599 2679 2678 +f 2599 2600 2680 2679 +f 2600 2601 2681 2680 +f 2601 2602 2682 2681 +f 2602 2603 2683 2682 +f 2603 2604 2684 2683 +f 2604 2605 2685 2684 +f 2605 2606 2686 2685 +f 2606 2607 2687 2686 +f 2607 2608 2688 2687 +f 2608 2609 2689 2688 +f 2609 2610 2690 2689 +f 2610 2611 2691 2690 +f 2611 2612 2692 2691 +f 2612 2613 2693 2692 +f 2613 2614 2694 2693 +f 2614 2615 2695 2694 +f 2615 2616 2696 2695 +f 2616 2617 2697 2696 +f 2617 2618 2698 2697 +f 2618 2619 2699 2698 +f 2619 2620 2700 2699 +f 2620 2621 2701 2700 +f 2621 2622 2702 2701 +f 2622 2623 2703 2702 +f 2623 2624 2704 2703 +f 2624 2625 2705 2704 +f 2625 2626 2706 2705 +f 2626 2627 2707 2706 +f 2627 2628 2708 2707 +f 2628 2629 2709 2708 +f 2629 2630 2710 2709 +f 2630 2631 2711 2710 +f 2631 2632 2712 2711 +f 2632 2633 2713 2712 +f 2633 2634 2714 2713 +f 2634 2635 2715 2714 +f 2635 2636 2716 2715 +f 2636 2637 2717 2716 +f 2637 2638 2718 2717 +f 2638 2639 2719 2718 +f 2639 2640 2720 2719 +f 2640 2641 2721 2720 +f 2641 2642 2722 2721 +f 2642 2563 2643 2722 +f 2643 2644 2724 2723 +f 2644 2645 2725 2724 +f 2645 2646 2726 2725 +f 2646 2647 2727 2726 +f 2647 2648 2728 2727 +f 2648 2649 2729 2728 +f 2649 2650 2730 2729 +f 2650 2651 2731 2730 +f 2651 2652 2732 2731 +f 2652 2653 2733 2732 +f 2653 2654 2734 2733 +f 2654 2655 2735 2734 +f 2655 2656 2736 2735 +f 2656 2657 2737 2736 +f 2657 2658 2738 2737 +f 2658 2659 2739 2738 +f 2659 2660 2740 2739 +f 2660 2661 2741 2740 +f 2661 2662 2742 2741 +f 2662 2663 2743 2742 +f 2663 2664 2744 2743 +f 2664 2665 2745 2744 +f 2665 2666 2746 2745 +f 2666 2667 2747 2746 +f 2667 2668 2748 2747 +f 2668 2669 2749 2748 +f 2669 2670 2750 2749 +f 2670 2671 2751 2750 +f 2671 2672 2752 2751 +f 2672 2673 2753 2752 +f 2673 2674 2754 2753 +f 2674 2675 2755 2754 +f 2675 2676 2756 2755 +f 2676 2677 2757 2756 +f 2677 2678 2758 2757 +f 2678 2679 2759 2758 +f 2679 2680 2760 2759 +f 2680 2681 2761 2760 +f 2681 2682 2762 2761 +f 2682 2683 2763 2762 +f 2683 2684 2764 2763 +f 2684 2685 2765 2764 +f 2685 2686 2766 2765 +f 2686 2687 2767 2766 +f 2687 2688 2768 2767 +f 2688 2689 2769 2768 +f 2689 2690 2770 2769 +f 2690 2691 2771 2770 +f 2691 2692 2772 2771 +f 2692 2693 2773 2772 +f 2693 2694 2774 2773 +f 2694 2695 2775 2774 +f 2695 2696 2776 2775 +f 2696 2697 2777 2776 +f 2697 2698 2778 2777 +f 2698 2699 2779 2778 +f 2699 2700 2780 2779 +f 2700 2701 2781 2780 +f 2701 2702 2782 2781 +f 2702 2703 2783 2782 +f 2703 2704 2784 2783 +f 2704 2705 2785 2784 +f 2705 2706 2786 2785 +f 2706 2707 2787 2786 +f 2707 2708 2788 2787 +f 2708 2709 2789 2788 +f 2709 2710 2790 2789 +f 2710 2711 2791 2790 +f 2711 2712 2792 2791 +f 2712 2713 2793 2792 +f 2713 2714 2794 2793 +f 2714 2715 2795 2794 +f 2715 2716 2796 2795 +f 2716 2717 2797 2796 +f 2717 2718 2798 2797 +f 2718 2719 2799 2798 +f 2719 2720 2800 2799 +f 2720 2721 2801 2800 +f 2721 2722 2802 2801 +f 2722 2643 2723 2802 +f 2723 2724 2804 2803 +f 2724 2725 2805 2804 +f 2725 2726 2806 2805 +f 2726 2727 2807 2806 +f 2727 2728 2808 2807 +f 2728 2729 2809 2808 +f 2729 2730 2810 2809 +f 2730 2731 2811 2810 +f 2731 2732 2812 2811 +f 2732 2733 2813 2812 +f 2733 2734 2814 2813 +f 2734 2735 2815 2814 +f 2735 2736 2816 2815 +f 2736 2737 2817 2816 +f 2737 2738 2818 2817 +f 2738 2739 2819 2818 +f 2739 2740 2820 2819 +f 2740 2741 2821 2820 +f 2741 2742 2822 2821 +f 2742 2743 2823 2822 +f 2743 2744 2824 2823 +f 2744 2745 2825 2824 +f 2745 2746 2826 2825 +f 2746 2747 2827 2826 +f 2747 2748 2828 2827 +f 2748 2749 2829 2828 +f 2749 2750 2830 2829 +f 2750 2751 2831 2830 +f 2751 2752 2832 2831 +f 2752 2753 2833 2832 +f 2753 2754 2834 2833 +f 2754 2755 2835 2834 +f 2755 2756 2836 2835 +f 2756 2757 2837 2836 +f 2757 2758 2838 2837 +f 2758 2759 2839 2838 +f 2759 2760 2840 2839 +f 2760 2761 2841 2840 +f 2761 2762 2842 2841 +f 2762 2763 2843 2842 +f 2763 2764 2844 2843 +f 2764 2765 2845 2844 +f 2765 2766 2846 2845 +f 2766 2767 2847 2846 +f 2767 2768 2848 2847 +f 2768 2769 2849 2848 +f 2769 2770 2850 2849 +f 2770 2771 2851 2850 +f 2771 2772 2852 2851 +f 2772 2773 2853 2852 +f 2773 2774 2854 2853 +f 2774 2775 2855 2854 +f 2775 2776 2856 2855 +f 2776 2777 2857 2856 +f 2777 2778 2858 2857 +f 2778 2779 2859 2858 +f 2779 2780 2860 2859 +f 2780 2781 2861 2860 +f 2781 2782 2862 2861 +f 2782 2783 2863 2862 +f 2783 2784 2864 2863 +f 2784 2785 2865 2864 +f 2785 2786 2866 2865 +f 2786 2787 2867 2866 +f 2787 2788 2868 2867 +f 2788 2789 2869 2868 +f 2789 2790 2870 2869 +f 2790 2791 2871 2870 +f 2791 2792 2872 2871 +f 2792 2793 2873 2872 +f 2793 2794 2874 2873 +f 2794 2795 2875 2874 +f 2795 2796 2876 2875 +f 2796 2797 2877 2876 +f 2797 2798 2878 2877 +f 2798 2799 2879 2878 +f 2799 2800 2880 2879 +f 2800 2801 2881 2880 +f 2801 2802 2882 2881 +f 2802 2723 2803 2882 +f 2803 2804 2884 2883 +f 2804 2805 2885 2884 +f 2805 2806 2886 2885 +f 2806 2807 2887 2886 +f 2807 2808 2888 2887 +f 2808 2809 2889 2888 +f 2809 2810 2890 2889 +f 2810 2811 2891 2890 +f 2811 2812 2892 2891 +f 2812 2813 2893 2892 +f 2813 2814 2894 2893 +f 2814 2815 2895 2894 +f 2815 2816 2896 2895 +f 2816 2817 2897 2896 +f 2817 2818 2898 2897 +f 2818 2819 2899 2898 +f 2819 2820 2900 2899 +f 2820 2821 2901 2900 +f 2821 2822 2902 2901 +f 2822 2823 2903 2902 +f 2823 2824 2904 2903 +f 2824 2825 2905 2904 +f 2825 2826 2906 2905 +f 2826 2827 2907 2906 +f 2827 2828 2908 2907 +f 2828 2829 2909 2908 +f 2829 2830 2910 2909 +f 2830 2831 2911 2910 +f 2831 2832 2912 2911 +f 2832 2833 2913 2912 +f 2833 2834 2914 2913 +f 2834 2835 2915 2914 +f 2835 2836 2916 2915 +f 2836 2837 2917 2916 +f 2837 2838 2918 2917 +f 2838 2839 2919 2918 +f 2839 2840 2920 2919 +f 2840 2841 2921 2920 +f 2841 2842 2922 2921 +f 2842 2843 2923 2922 +f 2843 2844 2924 2923 +f 2844 2845 2925 2924 +f 2845 2846 2926 2925 +f 2846 2847 2927 2926 +f 2847 2848 2928 2927 +f 2848 2849 2929 2928 +f 2849 2850 2930 2929 +f 2850 2851 2931 2930 +f 2851 2852 2932 2931 +f 2852 2853 2933 2932 +f 2853 2854 2934 2933 +f 2854 2855 2935 2934 +f 2855 2856 2936 2935 +f 2856 2857 2937 2936 +f 2857 2858 2938 2937 +f 2858 2859 2939 2938 +f 2859 2860 2940 2939 +f 2860 2861 2941 2940 +f 2861 2862 2942 2941 +f 2862 2863 2943 2942 +f 2863 2864 2944 2943 +f 2864 2865 2945 2944 +f 2865 2866 2946 2945 +f 2866 2867 2947 2946 +f 2867 2868 2948 2947 +f 2868 2869 2949 2948 +f 2869 2870 2950 2949 +f 2870 2871 2951 2950 +f 2871 2872 2952 2951 +f 2872 2873 2953 2952 +f 2873 2874 2954 2953 +f 2874 2875 2955 2954 +f 2875 2876 2956 2955 +f 2876 2877 2957 2956 +f 2877 2878 2958 2957 +f 2878 2879 2959 2958 +f 2879 2880 2960 2959 +f 2880 2881 2961 2960 +f 2881 2882 2962 2961 +f 2882 2803 2883 2962 +f 2883 2884 2964 2963 +f 2884 2885 2965 2964 +f 2885 2886 2966 2965 +f 2886 2887 2967 2966 +f 2887 2888 2968 2967 +f 2888 2889 2969 2968 +f 2889 2890 2970 2969 +f 2890 2891 2971 2970 +f 2891 2892 2972 2971 +f 2892 2893 2973 2972 +f 2893 2894 2974 2973 +f 2894 2895 2975 2974 +f 2895 2896 2976 2975 +f 2896 2897 2977 2976 +f 2897 2898 2978 2977 +f 2898 2899 2979 2978 +f 2899 2900 2980 2979 +f 2900 2901 2981 2980 +f 2901 2902 2982 2981 +f 2902 2903 2983 2982 +f 2903 2904 2984 2983 +f 2904 2905 2985 2984 +f 2905 2906 2986 2985 +f 2906 2907 2987 2986 +f 2907 2908 2988 2987 +f 2908 2909 2989 2988 +f 2909 2910 2990 2989 +f 2910 2911 2991 2990 +f 2911 2912 2992 2991 +f 2912 2913 2993 2992 +f 2913 2914 2994 2993 +f 2914 2915 2995 2994 +f 2915 2916 2996 2995 +f 2916 2917 2997 2996 +f 2917 2918 2998 2997 +f 2918 2919 2999 2998 +f 2919 2920 3000 2999 +f 2920 2921 3001 3000 +f 2921 2922 3002 3001 +f 2922 2923 3003 3002 +f 2923 2924 3004 3003 +f 2924 2925 3005 3004 +f 2925 2926 3006 3005 +f 2926 2927 3007 3006 +f 2927 2928 3008 3007 +f 2928 2929 3009 3008 +f 2929 2930 3010 3009 +f 2930 2931 3011 3010 +f 2931 2932 3012 3011 +f 2932 2933 3013 3012 +f 2933 2934 3014 3013 +f 2934 2935 3015 3014 +f 2935 2936 3016 3015 +f 2936 2937 3017 3016 +f 2937 2938 3018 3017 +f 2938 2939 3019 3018 +f 2939 2940 3020 3019 +f 2940 2941 3021 3020 +f 2941 2942 3022 3021 +f 2942 2943 3023 3022 +f 2943 2944 3024 3023 +f 2944 2945 3025 3024 +f 2945 2946 3026 3025 +f 2946 2947 3027 3026 +f 2947 2948 3028 3027 +f 2948 2949 3029 3028 +f 2949 2950 3030 3029 +f 2950 2951 3031 3030 +f 2951 2952 3032 3031 +f 2952 2953 3033 3032 +f 2953 2954 3034 3033 +f 2954 2955 3035 3034 +f 2955 2956 3036 3035 +f 2956 2957 3037 3036 +f 2957 2958 3038 3037 +f 2958 2959 3039 3038 +f 2959 2960 3040 3039 +f 2960 2961 3041 3040 +f 2961 2962 3042 3041 +f 2962 2883 2963 3042 +f 2963 2964 3044 3043 +f 2964 2965 3045 3044 +f 2965 2966 3046 3045 +f 2966 2967 3047 3046 +f 2967 2968 3048 3047 +f 2968 2969 3049 3048 +f 2969 2970 3050 3049 +f 2970 2971 3051 3050 +f 2971 2972 3052 3051 +f 2972 2973 3053 3052 +f 2973 2974 3054 3053 +f 2974 2975 3055 3054 +f 2975 2976 3056 3055 +f 2976 2977 3057 3056 +f 2977 2978 3058 3057 +f 2978 2979 3059 3058 +f 2979 2980 3060 3059 +f 2980 2981 3061 3060 +f 2981 2982 3062 3061 +f 2982 2983 3063 3062 +f 2983 2984 3064 3063 +f 2984 2985 3065 3064 +f 2985 2986 3066 3065 +f 2986 2987 3067 3066 +f 2987 2988 3068 3067 +f 2988 2989 3069 3068 +f 2989 2990 3070 3069 +f 2990 2991 3071 3070 +f 2991 2992 3072 3071 +f 2992 2993 3073 3072 +f 2993 2994 3074 3073 +f 2994 2995 3075 3074 +f 2995 2996 3076 3075 +f 2996 2997 3077 3076 +f 2997 2998 3078 3077 +f 2998 2999 3079 3078 +f 2999 3000 3080 3079 +f 3000 3001 3081 3080 +f 3001 3002 3082 3081 +f 3002 3003 3083 3082 +f 3003 3004 3084 3083 +f 3004 3005 3085 3084 +f 3005 3006 3086 3085 +f 3006 3007 3087 3086 +f 3007 3008 3088 3087 +f 3008 3009 3089 3088 +f 3009 3010 3090 3089 +f 3010 3011 3091 3090 +f 3011 3012 3092 3091 +f 3012 3013 3093 3092 +f 3013 3014 3094 3093 +f 3014 3015 3095 3094 +f 3015 3016 3096 3095 +f 3016 3017 3097 3096 +f 3017 3018 3098 3097 +f 3018 3019 3099 3098 +f 3019 3020 3100 3099 +f 3020 3021 3101 3100 +f 3021 3022 3102 3101 +f 3022 3023 3103 3102 +f 3023 3024 3104 3103 +f 3024 3025 3105 3104 +f 3025 3026 3106 3105 +f 3026 3027 3107 3106 +f 3027 3028 3108 3107 +f 3028 3029 3109 3108 +f 3029 3030 3110 3109 +f 3030 3031 3111 3110 +f 3031 3032 3112 3111 +f 3032 3033 3113 3112 +f 3033 3034 3114 3113 +f 3034 3035 3115 3114 +f 3035 3036 3116 3115 +f 3036 3037 3117 3116 +f 3037 3038 3118 3117 +f 3038 3039 3119 3118 +f 3039 3040 3120 3119 +f 3040 3041 3121 3120 +f 3041 3042 3122 3121 +f 3042 2963 3043 3122 +f 3043 3044 3124 3123 +f 3044 3045 3125 3124 +f 3045 3046 3126 3125 +f 3046 3047 3127 3126 +f 3047 3048 3128 3127 +f 3048 3049 3129 3128 +f 3049 3050 3130 3129 +f 3050 3051 3131 3130 +f 3051 3052 3132 3131 +f 3052 3053 3133 3132 +f 3053 3054 3134 3133 +f 3054 3055 3135 3134 +f 3055 3056 3136 3135 +f 3056 3057 3137 3136 +f 3057 3058 3138 3137 +f 3058 3059 3139 3138 +f 3059 3060 3140 3139 +f 3060 3061 3141 3140 +f 3061 3062 3142 3141 +f 3062 3063 3143 3142 +f 3063 3064 3144 3143 +f 3064 3065 3145 3144 +f 3065 3066 3146 3145 +f 3066 3067 3147 3146 +f 3067 3068 3148 3147 +f 3068 3069 3149 3148 +f 3069 3070 3150 3149 +f 3070 3071 3151 3150 +f 3071 3072 3152 3151 +f 3072 3073 3153 3152 +f 3073 3074 3154 3153 +f 3074 3075 3155 3154 +f 3075 3076 3156 3155 +f 3076 3077 3157 3156 +f 3077 3078 3158 3157 +f 3078 3079 3159 3158 +f 3079 3080 3160 3159 +f 3080 3081 3161 3160 +f 3081 3082 3162 3161 +f 3082 3083 3163 3162 +f 3083 3084 3164 3163 +f 3084 3085 3165 3164 +f 3085 3086 3166 3165 +f 3086 3087 3167 3166 +f 3087 3088 3168 3167 +f 3088 3089 3169 3168 +f 3089 3090 3170 3169 +f 3090 3091 3171 3170 +f 3091 3092 3172 3171 +f 3092 3093 3173 3172 +f 3093 3094 3174 3173 +f 3094 3095 3175 3174 +f 3095 3096 3176 3175 +f 3096 3097 3177 3176 +f 3097 3098 3178 3177 +f 3098 3099 3179 3178 +f 3099 3100 3180 3179 +f 3100 3101 3181 3180 +f 3101 3102 3182 3181 +f 3102 3103 3183 3182 +f 3103 3104 3184 3183 +f 3104 3105 3185 3184 +f 3105 3106 3186 3185 +f 3106 3107 3187 3186 +f 3107 3108 3188 3187 +f 3108 3109 3189 3188 +f 3109 3110 3190 3189 +f 3110 3111 3191 3190 +f 3111 3112 3192 3191 +f 3112 3113 3193 3192 +f 3113 3114 3194 3193 +f 3114 3115 3195 3194 +f 3115 3116 3196 3195 +f 3116 3117 3197 3196 +f 3117 3118 3198 3197 +f 3118 3119 3199 3198 +f 3119 3120 3200 3199 +f 3120 3121 3201 3200 +f 3121 3122 3202 3201 +f 3122 3043 3123 3202 +f 1 4 3 +f 2 3123 3124 +f 1 5 4 +f 2 3124 3125 +f 1 6 5 +f 2 3125 3126 +f 1 7 6 +f 2 3126 3127 +f 1 8 7 +f 2 3127 3128 +f 1 9 8 +f 2 3128 3129 +f 1 10 9 +f 2 3129 3130 +f 1 11 10 +f 2 3130 3131 +f 1 12 11 +f 2 3131 3132 +f 1 13 12 +f 2 3132 3133 +f 1 14 13 +f 2 3133 3134 +f 1 15 14 +f 2 3134 3135 +f 1 16 15 +f 2 3135 3136 +f 1 17 16 +f 2 3136 3137 +f 1 18 17 +f 2 3137 3138 +f 1 19 18 +f 2 3138 3139 +f 1 20 19 +f 2 3139 3140 +f 1 21 20 +f 2 3140 3141 +f 1 22 21 +f 2 3141 3142 +f 1 23 22 +f 2 3142 3143 +f 1 24 23 +f 2 3143 3144 +f 1 25 24 +f 2 3144 3145 +f 1 26 25 +f 2 3145 3146 +f 1 27 26 +f 2 3146 3147 +f 1 28 27 +f 2 3147 3148 +f 1 29 28 +f 2 3148 3149 +f 1 30 29 +f 2 3149 3150 +f 1 31 30 +f 2 3150 3151 +f 1 32 31 +f 2 3151 3152 +f 1 33 32 +f 2 3152 3153 +f 1 34 33 +f 2 3153 3154 +f 1 35 34 +f 2 3154 3155 +f 1 36 35 +f 2 3155 3156 +f 1 37 36 +f 2 3156 3157 +f 1 38 37 +f 2 3157 3158 +f 1 39 38 +f 2 3158 3159 +f 1 40 39 +f 2 3159 3160 +f 1 41 40 +f 2 3160 3161 +f 1 42 41 +f 2 3161 3162 +f 1 43 42 +f 2 3162 3163 +f 1 44 43 +f 2 3163 3164 +f 1 45 44 +f 2 3164 3165 +f 1 46 45 +f 2 3165 3166 +f 1 47 46 +f 2 3166 3167 +f 1 48 47 +f 2 3167 3168 +f 1 49 48 +f 2 3168 3169 +f 1 50 49 +f 2 3169 3170 +f 1 51 50 +f 2 3170 3171 +f 1 52 51 +f 2 3171 3172 +f 1 53 52 +f 2 3172 3173 +f 1 54 53 +f 2 3173 3174 +f 1 55 54 +f 2 3174 3175 +f 1 56 55 +f 2 3175 3176 +f 1 57 56 +f 2 3176 3177 +f 1 58 57 +f 2 3177 3178 +f 1 59 58 +f 2 3178 3179 +f 1 60 59 +f 2 3179 3180 +f 1 61 60 +f 2 3180 3181 +f 1 62 61 +f 2 3181 3182 +f 1 63 62 +f 2 3182 3183 +f 1 64 63 +f 2 3183 3184 +f 1 65 64 +f 2 3184 3185 +f 1 66 65 +f 2 3185 3186 +f 1 67 66 +f 2 3186 3187 +f 1 68 67 +f 2 3187 3188 +f 1 69 68 +f 2 3188 3189 +f 1 70 69 +f 2 3189 3190 +f 1 71 70 +f 2 3190 3191 +f 1 72 71 +f 2 3191 3192 +f 1 73 72 +f 2 3192 3193 +f 1 74 73 +f 2 3193 3194 +f 1 75 74 +f 2 3194 3195 +f 1 76 75 +f 2 3195 3196 +f 1 77 76 +f 2 3196 3197 +f 1 78 77 +f 2 3197 3198 +f 1 79 78 +f 2 3198 3199 +f 1 80 79 +f 2 3199 3200 +f 1 81 80 +f 2 3200 3201 +f 1 82 81 +f 2 3201 3202 +f 1 3 82 +f 2 3202 3123 diff --git a/data/spheres/21.obj b/data/spheres/21.obj new file mode 100644 index 0000000..68a2067 --- /dev/null +++ b/data/spheres/21.obj @@ -0,0 +1,7142 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 7.29953 99.7332 5.88009e-39 +v 7.27911 99.7332 0.545494 +v 7.218 99.7332 1.08794 +v 7.11651 99.7332 1.6243 +v 6.97523 99.7332 2.15157 +v 6.79494 99.7332 2.66681 +v 6.57665 99.7332 3.16714 +v 6.32158 99.7332 3.64976 +v 6.03115 99.7332 4.11197 +v 5.707 99.7332 4.55118 +v 5.35093 99.7332 4.96494 +v 4.96494 99.7332 5.35093 +v 4.55118 99.7332 5.707 +v 4.11197 99.7332 6.03115 +v 3.64977 99.7332 6.32157 +v 3.16715 99.7332 6.57664 +v 2.66682 99.7332 6.79493 +v 2.15158 99.7332 6.97523 +v 1.6243 99.7332 7.11651 +v 1.08795 99.7332 7.21799 +v 0.545502 99.7332 7.27911 +v 8.38264e-06 99.7332 7.29953 +v -0.545485 99.7332 7.27912 +v -1.08793 99.7332 7.218 +v -1.62429 99.7332 7.11651 +v -2.15156 99.7332 6.97523 +v -2.66681 99.7332 6.79494 +v -3.16714 99.7332 6.57665 +v -3.64975 99.7332 6.32158 +v -4.11196 99.7332 6.03116 +v -4.55117 99.7332 5.70701 +v -4.96493 99.7332 5.35094 +v -5.35092 99.7332 4.96495 +v -5.70699 99.7332 4.55119 +v -6.03114 99.7332 4.11198 +v -6.32157 99.7332 3.64978 +v -6.57664 99.7332 3.16716 +v -6.79493 99.7332 2.66683 +v -6.97522 99.7332 2.15159 +v -7.11651 99.7332 1.62431 +v -7.21799 99.7332 1.08795 +v -7.27911 99.7332 0.545511 +v -7.29953 99.7332 1.67653e-05 +v -7.27912 99.7332 -0.545477 +v -7.218 99.7332 -1.08792 +v -7.11652 99.7332 -1.62428 +v -6.97523 99.7332 -2.15156 +v -6.79494 99.7332 -2.6668 +v -6.57665 99.7332 -3.16713 +v -6.32159 99.7332 -3.64974 +v -6.03116 99.7332 -4.11195 +v -5.70701 99.7332 -4.55116 +v -5.35095 99.7332 -4.96492 +v -4.96495 99.7332 -5.35092 +v -4.5512 99.7332 -5.70698 +v -4.11199 99.7332 -6.03114 +v -3.64978 99.7332 -6.32156 +v -3.16717 99.7332 -6.57664 +v -2.66684 99.7332 -6.79493 +v -2.15159 99.7332 -6.97522 +v -1.62432 99.7332 -7.11651 +v -1.08796 99.7332 -7.21799 +v -0.54552 99.7332 -7.27911 +v -2.42777e-05 99.7332 -7.29953 +v 0.545468 99.7332 -7.27912 +v 1.08791 99.7332 -7.218 +v 1.62427 99.7332 -7.11652 +v 2.15155 99.7332 -6.97524 +v 2.66679 99.7332 -6.79495 +v 3.16712 99.7332 -6.57666 +v 3.64974 99.7332 -6.32159 +v 4.11194 99.7332 -6.03117 +v 4.55116 99.7332 -5.70702 +v 4.96492 99.7332 -5.35095 +v 5.35091 99.7332 -4.96496 +v 5.70698 99.7332 -4.5512 +v 6.03113 99.7332 -4.11199 +v 6.32156 99.7332 -3.64979 +v 6.57663 99.7332 -3.16717 +v 6.79492 99.7332 -2.66685 +v 6.97522 99.7332 -2.1516 +v 7.1165 99.7332 -1.62433 +v 7.21799 99.7332 -1.08797 +v 7.27911 99.7332 -0.545529 +v 14.5601 98.9343 5.88009e-39 +v 14.5194 98.9343 1.08808 +v 14.3975 98.9343 2.17007 +v 14.1951 98.9343 3.23993 +v 13.9132 98.9343 4.29166 +v 13.5536 98.9343 5.3194 +v 13.1182 98.9343 6.31739 +v 12.6094 98.9343 7.28005 +v 12.0301 98.9343 8.20199 +v 11.3836 98.9343 9.07807 +v 10.6733 98.9343 9.90338 +v 9.90339 98.9343 10.6733 +v 9.07808 98.9343 11.3835 +v 8.20201 98.9343 12.0301 +v 7.28006 98.9343 12.6094 +v 6.3174 98.9343 13.1182 +v 5.31942 98.9343 13.5536 +v 4.29168 98.9343 13.9132 +v 3.23994 98.9343 14.1951 +v 2.17009 98.9343 14.3975 +v 1.08809 98.9343 14.5194 +v 1.67206e-05 98.9343 14.5601 +v -1.08806 98.9343 14.5194 +v -2.17005 98.9343 14.3975 +v -3.23991 98.9343 14.1951 +v -4.29165 98.9343 13.9132 +v -5.31938 98.9343 13.5536 +v -6.31737 98.9343 13.1182 +v -7.28003 98.9343 12.6094 +v -8.20198 98.9343 12.0301 +v -9.07806 98.9343 11.3836 +v -9.90337 98.9343 10.6733 +v -10.6733 98.9343 9.90341 +v -11.3835 98.9343 9.0781 +v -12.0301 98.9343 8.20202 +v -12.6094 98.9343 7.28008 +v -13.1182 98.9343 6.31742 +v -13.5536 98.9343 5.31943 +v -13.9132 98.9343 4.2917 +v -14.195 98.9343 3.23996 +v -14.3975 98.9343 2.1701 +v -14.5194 98.9343 1.08811 +v -14.5601 98.9343 3.34411e-05 +v -14.5194 98.9343 -1.08804 +v -14.3975 98.9343 -2.17004 +v -14.1951 98.9343 -3.23989 +v -13.9133 98.9343 -4.29163 +v -13.5536 98.9343 -5.31937 +v -13.1182 98.9343 -6.31736 +v -12.6094 98.9343 -7.28002 +v -12.0301 98.9343 -8.20196 +v -11.3836 98.9343 -9.07804 +v -10.6733 98.9343 -9.90335 +v -9.90342 98.9343 -10.6733 +v -9.07811 98.9343 -11.3835 +v -8.20203 98.9343 -12.0301 +v -7.28009 98.9343 -12.6094 +v -6.31743 98.9343 -13.1182 +v -5.31945 98.9343 -13.5536 +v -4.29171 98.9343 -13.9132 +v -3.23998 98.9343 -14.195 +v -2.17012 98.9343 -14.3975 +v -1.08813 98.9343 -14.5194 +v -4.8426e-05 98.9343 -14.5601 +v 1.08803 98.9343 -14.5194 +v 2.17001 98.9343 -14.3975 +v 3.23988 98.9343 -14.1951 +v 4.29161 98.9343 -13.9133 +v 5.31935 98.9343 -13.5536 +v 6.31734 98.9343 -13.1182 +v 7.28 98.9343 -12.6094 +v 8.20195 98.9343 -12.0302 +v 9.07803 98.9343 -11.3836 +v 9.90334 98.9343 -10.6734 +v 10.6733 98.9343 -9.90343 +v 11.3835 98.9343 -9.07813 +v 12.0301 98.9343 -8.20205 +v 12.6094 98.9343 -7.28011 +v 13.1182 98.9343 -6.31745 +v 13.5536 98.9343 -5.31947 +v 13.9132 98.9343 -4.29173 +v 14.195 98.9343 -3.23999 +v 14.3975 98.9343 -2.17014 +v 14.5194 98.9343 -1.08815 +v 21.743 97.6076 5.88009e-39 +v 21.6822 97.6076 1.62486 +v 21.5001 97.6076 3.24062 +v 21.1979 97.6076 4.83827 +v 20.777 97.6076 6.40886 +v 20.24 97.6076 7.9436 +v 19.5898 97.6076 9.43393 +v 18.83 97.6076 10.8715 +v 17.9649 97.6076 12.2483 +v 16.9994 97.6076 13.5565 +v 15.9388 97.6076 14.789 +v 14.789 97.6076 15.9387 +v 13.5566 97.6076 16.9994 +v 12.2483 97.6076 17.9649 +v 10.8715 97.6076 18.83 +v 9.43395 97.6076 19.5898 +v 7.94363 97.6076 20.24 +v 6.40888 97.6076 20.777 +v 4.83829 97.6076 21.1979 +v 3.24065 97.6076 21.5001 +v 1.62488 97.6076 21.6822 +v 2.49693e-05 97.6076 21.743 +v -1.62483 97.6076 21.6822 +v -3.2406 97.6076 21.5002 +v -4.83824 97.6076 21.1979 +v -6.40883 97.6076 20.777 +v -7.94358 97.6076 20.24 +v -9.4339 97.6076 19.5898 +v -10.8715 97.6076 18.83 +v -12.2482 97.6076 17.9649 +v -13.5565 97.6076 16.9994 +v -14.789 97.6076 15.9388 +v -15.9387 97.6076 14.789 +v -16.9993 97.6076 13.5566 +v -17.9649 97.6076 12.2483 +v -18.83 97.6076 10.8715 +v -19.5897 97.6076 9.43397 +v -20.24 97.6076 7.94365 +v -20.777 97.6076 6.40891 +v -21.1978 97.6076 4.83832 +v -21.5001 97.6076 3.24067 +v -21.6822 97.6076 1.62491 +v -21.743 97.6076 4.99385e-05 +v -21.6822 97.6076 -1.62481 +v -21.5002 97.6076 -3.24057 +v -21.1979 97.6076 -4.83822 +v -20.777 97.6076 -6.40881 +v -20.24 97.6076 -7.94356 +v -19.5898 97.6076 -9.43388 +v -18.83 97.6076 -10.8714 +v -17.9649 97.6076 -12.2482 +v -16.9994 97.6076 -13.5565 +v -15.9388 97.6076 -14.7889 +v -14.789 97.6076 -15.9387 +v -13.5566 97.6076 -16.9993 +v -12.2483 97.6076 -17.9649 +v -10.8716 97.6076 -18.83 +v -9.43399 97.6076 -19.5897 +v -7.94368 97.6076 -20.24 +v -6.40893 97.6076 -20.777 +v -4.83835 97.6076 -21.1978 +v -3.2407 97.6076 -21.5001 +v -1.62493 97.6076 -21.6822 +v -7.23158e-05 97.6076 -21.743 +v 1.62478 97.6076 -21.6822 +v 3.24054 97.6076 -21.5002 +v 4.83819 97.6076 -21.1979 +v 6.40878 97.6076 -20.777 +v 7.94353 97.6076 -20.24 +v 9.43385 97.6076 -19.5898 +v 10.8714 97.6076 -18.83 +v 12.2482 97.6076 -17.965 +v 13.5565 97.6076 -16.9994 +v 14.7889 97.6076 -15.9388 +v 15.9387 97.6076 -14.7891 +v 16.9993 97.6076 -13.5566 +v 17.9649 97.6076 -12.2483 +v 18.8299 97.6076 -10.8716 +v 19.5897 97.6076 -9.43402 +v 20.24 97.6076 -7.9437 +v 20.777 97.6076 -6.40895 +v 21.1978 97.6076 -4.83837 +v 21.5001 97.6076 -3.24072 +v 21.6822 97.6076 -1.62496 +v 28.8099 95.7601 5.88009e-39 +v 28.7293 95.7601 2.15296 +v 28.4881 95.7601 4.29389 +v 28.0876 95.7601 6.4108 +v 27.5299 95.7601 8.49186 +v 26.8184 95.7601 10.5254 +v 25.9568 95.7601 12.5001 +v 24.9501 95.7601 14.4049 +v 23.8039 95.7601 16.2292 +v 22.5245 95.7601 17.9627 +v 21.1192 95.7601 19.5957 +v 19.5957 95.7601 21.1191 +v 17.9627 95.7601 22.5245 +v 16.2292 95.7601 23.8038 +v 14.405 95.7601 24.9501 +v 12.5002 95.7601 25.9568 +v 10.5255 95.7601 26.8184 +v 8.49189 95.7601 27.5299 +v 6.41083 95.7601 28.0876 +v 4.29392 95.7601 28.4881 +v 2.153 95.7601 28.7293 +v 3.30847e-05 95.7601 28.8099 +v -2.15293 95.7601 28.7293 +v -4.29386 95.7601 28.4881 +v -6.41076 95.7601 28.0876 +v -8.49182 95.7601 27.53 +v -10.5254 95.7601 26.8184 +v -12.5001 95.7601 25.9568 +v -14.4049 95.7601 24.9501 +v -16.2291 95.7601 23.8039 +v -17.9626 95.7601 22.5245 +v -19.5957 95.7601 21.1192 +v -21.1191 95.7601 19.5957 +v -22.5244 95.7601 17.9627 +v -23.8038 95.7601 16.2292 +v -24.9501 95.7601 14.405 +v -25.9568 95.7601 12.5002 +v -26.8183 95.7601 10.5255 +v -27.5299 95.7601 8.49192 +v -28.0876 95.7601 6.41086 +v -28.4881 95.7601 4.29395 +v -28.7293 95.7601 2.15303 +v -28.8099 95.7601 6.61695e-05 +v -28.7293 95.7601 -2.1529 +v -28.4881 95.7601 -4.29382 +v -28.0876 95.7601 -6.41073 +v -27.53 95.7601 -8.4918 +v -26.8184 95.7601 -10.5254 +v -25.9568 95.7601 -12.5001 +v -24.9501 95.7601 -14.4049 +v -23.8039 95.7601 -16.2291 +v -22.5245 95.7601 -17.9626 +v -21.1192 95.7601 -19.5956 +v -19.5958 95.7601 -21.1191 +v -17.9627 95.7601 -22.5244 +v -16.2293 95.7601 -23.8038 +v -14.405 95.7601 -24.95 +v -12.5002 95.7601 -25.9568 +v -10.5255 95.7601 -26.8183 +v -8.49195 95.7601 -27.5299 +v -6.4109 95.7601 -28.0875 +v -4.29398 95.7601 -28.4881 +v -2.15307 95.7601 -28.7293 +v -9.58198e-05 95.7601 -28.8099 +v 2.15286 95.7601 -28.7293 +v 4.29378 95.7601 -28.4881 +v 6.4107 95.7601 -28.0876 +v 8.49175 95.7601 -27.53 +v 10.5253 95.7601 -26.8184 +v 12.5 95.7601 -25.9569 +v 14.4048 95.7601 -24.9502 +v 16.2291 95.7601 -23.8039 +v 17.9626 95.7601 -22.5245 +v 19.5956 95.7601 -21.1192 +v 21.1191 95.7601 -19.5958 +v 22.5244 95.7601 -17.9628 +v 23.8038 95.7601 -16.2293 +v 24.95 95.7601 -14.4051 +v 25.9568 95.7601 -12.5003 +v 26.8183 95.7601 -10.5256 +v 27.5299 95.7601 -8.49199 +v 28.0875 95.7601 -6.41093 +v 28.4881 95.7601 -4.29402 +v 28.7293 95.7601 -2.1531 +v 35.7231 93.4016 5.88009e-39 +v 35.6232 93.4016 2.66959 +v 35.3241 93.4016 5.32424 +v 34.8274 93.4016 7.94912 +v 34.136 93.4016 10.5296 +v 33.2537 93.4016 13.0511 +v 32.1854 93.4016 15.4996 +v 30.9371 93.4016 17.8615 +v 29.5158 93.4016 20.1235 +v 27.9294 93.4016 22.273 +v 26.1869 93.4016 24.2978 +v 24.2979 93.4016 26.1868 +v 22.273 93.4016 27.9294 +v 20.1235 93.4016 29.5158 +v 17.8616 93.4016 30.9371 +v 15.4997 93.4016 32.1854 +v 13.0511 93.4016 33.2537 +v 10.5296 93.4016 34.136 +v 7.94916 93.4016 34.8274 +v 5.32428 93.4016 35.3241 +v 2.66963 93.4016 35.6232 +v 4.10237e-05 93.4016 35.7231 +v -2.66955 93.4016 35.6232 +v -5.3242 93.4016 35.3241 +v -7.94908 93.4016 34.8274 +v -10.5295 93.4016 34.136 +v -13.0511 93.4016 33.2537 +v -15.4996 93.4016 32.1854 +v -17.8615 93.4016 30.9371 +v -20.1235 93.4016 29.5158 +v -22.2729 93.4016 27.9295 +v -24.2978 93.4016 26.1869 +v -26.1868 93.4016 24.2979 +v -27.9294 93.4016 22.273 +v -29.5157 93.4016 20.1236 +v -30.937 93.4016 17.8616 +v -32.1853 93.4016 15.4997 +v -33.2536 93.4016 13.0512 +v -34.136 93.4016 10.5296 +v -34.8274 93.4016 7.9492 +v -35.3241 93.4016 5.32432 +v -35.6232 93.4016 2.66967 +v -35.7231 93.4016 8.20474e-05 +v -35.6232 93.4016 -2.6695 +v -35.3241 93.4016 -5.32416 +v -34.8274 93.4016 -7.94904 +v -34.136 93.4016 -10.5295 +v -33.2537 93.4016 -13.051 +v -32.1854 93.4016 -15.4996 +v -30.9371 93.4016 -17.8614 +v -29.5158 93.4016 -20.1234 +v -27.9295 93.4016 -22.2729 +v -26.1869 93.4016 -24.2978 +v -24.2979 93.4016 -26.1868 +v -22.2731 93.4016 -27.9293 +v -20.1236 93.4016 -29.5157 +v -17.8616 93.4016 -30.937 +v -15.4998 93.4016 -32.1853 +v -13.0512 93.4016 -33.2536 +v -10.5297 93.4016 -34.136 +v -7.94925 93.4016 -34.8274 +v -5.32436 93.4016 -35.3241 +v -2.66971 93.4016 -35.6232 +v -0.000118813 93.4016 -35.7231 +v 2.66946 93.4016 -35.6232 +v 5.32411 93.4016 -35.3241 +v 7.949 93.4016 -34.8274 +v 10.5294 93.4016 -34.136 +v 13.051 93.4016 -33.2537 +v 15.4995 93.4016 -32.1854 +v 17.8614 93.4016 -30.9372 +v 20.1234 93.4016 -29.5159 +v 22.2729 93.4016 -27.9295 +v 24.2977 93.4016 -26.187 +v 26.1868 93.4016 -24.298 +v 27.9293 93.4016 -22.2731 +v 29.5157 93.4016 -20.1236 +v 30.937 93.4016 -17.8617 +v 32.1853 93.4016 -15.4998 +v 33.2536 93.4016 -13.0513 +v 34.1359 93.4016 -10.5297 +v 34.8274 93.4016 -7.94929 +v 35.324 93.4016 -5.32441 +v 35.6232 93.4016 -2.66976 +v 42.4456 90.5448 5.88009e-39 +v 42.327 90.5448 3.17196 +v 41.9716 90.5448 6.32619 +v 41.3814 90.5448 9.44503 +v 40.5599 90.5448 12.5111 +v 39.5115 90.5448 15.5071 +v 38.2422 90.5448 18.4165 +v 36.759 90.5448 21.2228 +v 35.0702 90.5448 23.9105 +v 33.1853 90.5448 26.4644 +v 31.1149 90.5448 28.8703 +v 28.8704 90.5448 31.1148 +v 26.4644 90.5448 33.1853 +v 23.9105 90.5448 35.0702 +v 21.2228 90.5448 36.759 +v 18.4165 90.5448 38.2422 +v 15.5072 90.5448 39.5115 +v 12.5111 90.5448 40.5599 +v 9.44508 90.5448 41.3814 +v 6.32624 90.5448 41.9715 +v 3.17201 90.5448 42.3269 +v 4.87438e-05 90.5448 42.4456 +v -3.17192 90.5448 42.327 +v -6.32614 90.5448 41.9716 +v -9.44498 90.5448 41.3815 +v -12.511 90.5448 40.5599 +v -15.5071 90.5448 39.5116 +v -18.4164 90.5448 38.2422 +v -21.2228 90.5448 36.759 +v -23.9104 90.5448 35.0703 +v -26.4644 90.5448 33.1854 +v -28.8703 90.5448 31.1149 +v -31.1148 90.5448 28.8704 +v -33.1853 90.5448 26.4645 +v -35.0702 90.5448 23.9105 +v -36.759 90.5448 21.2229 +v -38.2422 90.5448 18.4165 +v -39.5115 90.5448 15.5072 +v -40.5599 90.5448 12.5112 +v -41.3814 90.5448 9.44513 +v -41.9715 90.5448 6.32629 +v -42.3269 90.5448 3.17206 +v -42.4456 90.5448 9.74876e-05 +v -42.327 90.5448 -3.17187 +v -41.9716 90.5448 -6.32609 +v -41.3815 90.5448 -9.44494 +v -40.5599 90.5448 -12.511 +v -39.5116 90.5448 -15.507 +v -38.2422 90.5448 -18.4164 +v -36.7591 90.5448 -21.2227 +v -35.0703 90.5448 -23.9104 +v -33.1854 90.5448 -26.4643 +v -31.1149 90.5448 -28.8703 +v -28.8705 90.5448 -31.1148 +v -26.4645 90.5448 -33.1853 +v -23.9106 90.5448 -35.0702 +v -21.2229 90.5448 -36.7589 +v -18.4166 90.5448 -38.2421 +v -15.5073 90.5448 -39.5115 +v -12.5112 90.5448 -40.5599 +v -9.44518 90.5448 -41.3814 +v -6.32633 90.5448 -41.9715 +v -3.17212 90.5448 -42.3269 +v -0.000141171 90.5448 -42.4456 +v 3.17181 90.5448 -42.327 +v 6.32603 90.5448 -41.9716 +v 9.44489 90.5448 -41.3815 +v 12.5109 90.5448 -40.5599 +v 15.507 90.5448 -39.5116 +v 18.4163 90.5448 -38.2423 +v 21.2227 90.5448 -36.7591 +v 23.9103 90.5448 -35.0703 +v 26.4643 90.5448 -33.1854 +v 28.8702 90.5448 -31.115 +v 31.1147 90.5448 -28.8705 +v 33.1852 90.5448 -26.4646 +v 35.0701 90.5448 -23.9106 +v 36.7589 90.5448 -21.223 +v 38.2421 90.5448 -18.4166 +v 39.5115 90.5448 -15.5073 +v 40.5598 90.5448 -12.5112 +v 41.3814 90.5448 -9.44524 +v 41.9715 90.5448 -6.32638 +v 42.3269 90.5448 -3.17217 +v 48.9418 87.205 5.88009e-39 +v 48.8049 87.205 3.65742 +v 48.3951 87.205 7.29438 +v 47.7147 87.205 10.8906 +v 46.7674 87.205 14.4258 +v 45.5586 87.205 17.8804 +v 44.095 87.205 21.235 +v 42.3848 87.205 24.4709 +v 40.4376 87.205 27.5699 +v 38.2642 87.205 30.5147 +v 35.8769 87.205 33.2888 +v 33.2889 87.205 35.8768 +v 30.5147 87.205 38.2642 +v 27.5699 87.205 40.4376 +v 24.4709 87.205 42.3848 +v 21.2351 87.205 44.095 +v 17.8805 87.205 45.5586 +v 14.4259 87.205 46.7674 +v 10.8906 87.205 47.7147 +v 7.29444 87.205 48.3951 +v 3.65748 87.205 48.8049 +v 5.62038e-05 87.205 48.9418 +v -3.65736 87.205 48.8049 +v -7.29433 87.205 48.3951 +v -10.8905 87.205 47.7147 +v -14.4258 87.205 46.7674 +v -17.8804 87.205 45.5586 +v -21.235 87.205 44.095 +v -24.4708 87.205 42.3848 +v -27.5698 87.205 40.4376 +v -30.5146 87.205 38.2643 +v -33.2888 87.205 35.8769 +v -35.8768 87.205 33.2889 +v -38.2641 87.205 30.5148 +v -40.4375 87.205 27.5699 +v -42.3848 87.205 24.471 +v -44.095 87.205 21.2351 +v -45.5586 87.205 17.8805 +v -46.7674 87.205 14.4259 +v -47.7147 87.205 10.8907 +v -48.3951 87.205 7.2945 +v -48.8049 87.205 3.65753 +v -48.9418 87.205 0.000112408 +v -48.8049 87.205 -3.65731 +v -48.3951 87.205 -7.29427 +v -47.7147 87.205 -10.8904 +v -46.7674 87.205 -14.4257 +v -45.5586 87.205 -17.8803 +v -44.0951 87.205 -21.2349 +v -42.3849 87.205 -24.4708 +v -40.4377 87.205 -27.5698 +v -38.2643 87.205 -30.5146 +v -35.8769 87.205 -33.2887 +v -33.289 87.205 -35.8767 +v -30.5148 87.205 -38.2641 +v -27.57 87.205 -40.4375 +v -24.471 87.205 -42.3847 +v -21.2352 87.205 -44.0949 +v -17.8806 87.205 -45.5585 +v -14.426 87.205 -46.7674 +v -10.8907 87.205 -47.7146 +v -7.29455 87.205 -48.3951 +v -3.65759 87.205 -48.8049 +v -0.000162777 87.205 -48.9418 +v 3.65725 87.205 -48.8049 +v 7.2942 87.205 -48.3951 +v 10.8904 87.205 -47.7147 +v 14.4256 87.205 -46.7675 +v 17.8803 87.205 -45.5587 +v 21.2348 87.205 -44.0951 +v 24.4707 87.205 -42.3849 +v 27.5697 87.205 -40.4377 +v 30.5145 87.205 -38.2643 +v 33.2887 87.205 -35.877 +v 35.8767 87.205 -33.289 +v 38.2641 87.205 -30.5149 +v 40.4375 87.205 -27.57 +v 42.3847 87.205 -24.4711 +v 44.0949 87.205 -21.2352 +v 45.5585 87.205 -17.8806 +v 46.7673 87.205 -14.426 +v 47.7146 87.205 -10.8908 +v 48.3951 87.205 -7.29461 +v 48.8049 87.205 -3.65766 +v 55.1767 83.3998 5.88009e-39 +v 55.0224 83.3998 4.12336 +v 54.5605 83.3998 8.22366 +v 53.7933 83.3998 12.278 +v 52.7254 83.3998 16.2636 +v 51.3626 83.3998 20.1583 +v 49.7125 83.3998 23.9403 +v 47.7845 83.3998 27.5883 +v 45.5892 83.3998 31.0821 +v 43.1389 83.3998 34.4021 +v 40.4474 83.3998 37.5297 +v 37.5297 83.3998 40.4474 +v 34.4022 83.3998 43.1389 +v 31.0822 83.3998 45.5891 +v 27.5884 83.3998 47.7844 +v 23.9403 83.3998 49.7125 +v 20.1584 83.3998 51.3626 +v 16.2637 83.3998 52.7254 +v 12.278 83.3998 53.7933 +v 8.22372 83.3998 54.5604 +v 4.12342 83.3998 55.0224 +v 6.33639e-05 83.3998 55.1767 +v -4.1233 83.3998 55.0225 +v -8.2236 83.3998 54.5605 +v -12.2779 83.3998 53.7934 +v -16.2636 83.3998 52.7254 +v -20.1582 83.3998 51.3626 +v -23.9402 83.3998 49.7126 +v -27.5883 83.3998 47.7845 +v -31.0821 83.3998 45.5892 +v -34.4021 83.3998 43.139 +v -37.5296 83.3998 40.4475 +v -40.4473 83.3998 37.5298 +v -43.1388 83.3998 34.4022 +v -45.5891 83.3998 31.0822 +v -47.7844 83.3998 27.5885 +v -49.7125 83.3998 23.9404 +v -51.3625 83.3998 20.1584 +v -52.7254 83.3998 16.2637 +v -53.7933 83.3998 12.2781 +v -54.5604 83.3998 8.22379 +v -55.0224 83.3998 4.12349 +v -55.1767 83.3998 0.000126728 +v -55.0225 83.3998 -4.12323 +v -54.5605 83.3998 -8.22353 +v -53.7934 83.3998 -12.2778 +v -52.7254 83.3998 -16.2635 +v -51.3626 83.3998 -20.1582 +v -49.7126 83.3998 -23.9401 +v -47.7845 83.3998 -27.5882 +v -45.5892 83.3998 -31.082 +v -43.139 83.3998 -34.402 +v -40.4475 83.3998 -37.5296 +v -37.5298 83.3998 -40.4473 +v -34.4023 83.3998 -43.1388 +v -31.0823 83.3998 -45.5891 +v -27.5885 83.3998 -47.7844 +v -23.9404 83.3998 -49.7124 +v -20.1585 83.3998 -51.3625 +v -16.2638 83.3998 -52.7253 +v -12.2782 83.3998 -53.7933 +v -8.22384 83.3998 -54.5604 +v -4.12356 83.3998 -55.0224 +v -0.000183514 83.3998 -55.1767 +v 4.12316 83.3998 -55.0225 +v 8.22345 83.3998 -54.5605 +v 12.2778 83.3998 -53.7934 +v 16.2634 83.3998 -52.7255 +v 20.1581 83.3998 -51.3627 +v 23.9401 83.3998 -49.7126 +v 27.5882 83.3998 -47.7846 +v 31.082 83.3998 -45.5893 +v 34.402 83.3998 -43.139 +v 37.5295 83.3998 -40.4476 +v 40.4473 83.3998 -37.5299 +v 43.1388 83.3998 -34.4023 +v 45.589 83.3998 -31.0824 +v 47.7843 83.3998 -27.5886 +v 49.7124 83.3998 -23.9405 +v 51.3625 83.3998 -20.1586 +v 52.7253 83.3998 -16.2639 +v 53.7933 83.3998 -12.2782 +v 54.5604 83.3998 -8.22391 +v 55.0224 83.3998 -4.12363 +v 61.1173 79.1497 5.88009e-39 +v 60.9464 79.1497 4.5673 +v 60.4347 79.1497 9.10906 +v 59.585 79.1497 13.5999 +v 58.4021 79.1497 18.0146 +v 56.8925 79.1497 22.3287 +v 55.0648 79.1497 26.5178 +v 52.9292 79.1497 30.5586 +v 50.4975 79.1497 34.4286 +v 47.7835 79.1497 38.106 +v 44.8022 79.1497 41.5703 +v 41.5704 79.1497 44.8021 +v 38.1061 79.1497 47.7834 +v 34.4287 79.1497 50.4975 +v 30.5587 79.1497 52.9291 +v 26.5179 79.1497 55.0648 +v 22.3287 79.1497 56.8925 +v 18.0147 79.1497 58.402 +v 13.5999 79.1497 59.585 +v 9.10913 79.1497 60.4347 +v 4.56737 79.1497 60.9464 +v 7.0186e-05 79.1497 61.1173 +v -4.56723 79.1497 60.9464 +v -9.10899 79.1497 60.4347 +v -13.5998 79.1497 59.585 +v -18.0146 79.1497 58.4021 +v -22.3286 79.1497 56.8926 +v -26.5177 79.1497 55.0649 +v -30.5586 79.1497 52.9292 +v -34.4285 79.1497 50.4976 +v -38.1059 79.1497 47.7835 +v -41.5703 79.1497 44.8022 +v -44.8021 79.1497 41.5704 +v -47.7834 79.1497 38.1061 +v -50.4974 79.1497 34.4287 +v -52.9291 79.1497 30.5588 +v -55.0648 79.1497 26.5179 +v -56.8925 79.1497 22.3288 +v -58.402 79.1497 18.0148 +v -59.585 79.1497 13.6 +v -60.4347 79.1497 9.1092 +v -60.9464 79.1497 4.56744 +v -61.1173 79.1497 0.000140372 +v -60.9464 79.1497 -4.56716 +v -60.4347 79.1497 -9.10892 +v -59.585 79.1497 -13.5997 +v -58.4021 79.1497 -18.0145 +v -56.8926 79.1497 -22.3285 +v -55.0649 79.1497 -26.5177 +v -52.9292 79.1497 -30.5585 +v -50.4976 79.1497 -34.4285 +v -47.7836 79.1497 -38.1059 +v -44.8023 79.1497 -41.5702 +v -41.5705 79.1497 -44.802 +v -38.1062 79.1497 -47.7833 +v -34.4288 79.1497 -50.4974 +v -30.5588 79.1497 -52.9291 +v -26.518 79.1497 -55.0647 +v -22.3289 79.1497 -56.8924 +v -18.0148 79.1497 -58.402 +v -13.6001 79.1497 -59.5849 +v -9.10926 79.1497 -60.4347 +v -4.56752 79.1497 -60.9464 +v -0.000203272 79.1497 -61.1173 +v 4.56708 79.1497 -60.9464 +v 9.10883 79.1497 -60.4347 +v 13.5997 79.1497 -59.585 +v 18.0144 79.1497 -58.4021 +v 22.3285 79.1497 -56.8926 +v 26.5176 79.1497 -55.0649 +v 30.5585 79.1497 -52.9293 +v 34.4284 79.1497 -50.4977 +v 38.1058 79.1497 -47.7836 +v 41.5701 79.1497 -44.8023 +v 44.802 79.1497 -41.5705 +v 47.7833 79.1497 -38.1062 +v 50.4974 79.1497 -34.4288 +v 52.929 79.1497 -30.5589 +v 55.0647 79.1497 -26.5181 +v 56.8924 79.1497 -22.3289 +v 58.402 79.1497 -18.0149 +v 59.5849 79.1497 -13.6002 +v 60.4347 79.1497 -9.10934 +v 60.9464 79.1497 -4.5676 +v 66.7318 74.4773 5.88009e-39 +v 66.5452 74.4773 4.98687 +v 65.9865 74.4773 9.94586 +v 65.0587 74.4773 14.8492 +v 63.7671 74.4773 19.6695 +v 62.1189 74.4773 24.3799 +v 60.1233 74.4773 28.9538 +v 57.7915 74.4773 33.3659 +v 55.1365 74.4773 37.5914 +v 52.1731 74.4773 41.6066 +v 48.9179 74.4773 45.3892 +v 45.3892 74.4773 48.9179 +v 41.6067 74.4773 52.173 +v 37.5914 74.4773 55.1364 +v 33.366 74.4773 57.7914 +v 28.9539 74.4773 60.1233 +v 24.3799 74.4773 62.1189 +v 19.6696 74.4773 63.7671 +v 14.8493 74.4773 65.0587 +v 9.94593 74.4773 65.9865 +v 4.98695 74.4773 66.5452 +v 7.66336e-05 74.4773 66.7318 +v -4.9868 74.4773 66.5452 +v -9.94578 74.4773 65.9865 +v -14.8491 74.4773 65.0588 +v -19.6695 74.4773 63.7672 +v -24.3798 74.4773 62.119 +v -28.9538 74.4773 60.1234 +v -33.3658 74.4773 57.7915 +v -37.5913 74.4773 55.1365 +v -41.6065 74.4773 52.1731 +v -45.3891 74.4773 48.918 +v -48.9178 74.4773 45.3893 +v -52.173 74.4773 41.6067 +v -55.1364 74.4773 37.5915 +v -57.7914 74.4773 33.366 +v -60.1233 74.4773 28.954 +v -62.1189 74.4773 24.38 +v -63.7671 74.4773 19.6697 +v -65.0587 74.4773 14.8494 +v -65.9865 74.4773 9.94601 +v -66.5452 74.4773 4.98703 +v -66.7318 74.4773 0.000153267 +v -66.5453 74.4773 -4.98672 +v -65.9865 74.4773 -9.94571 +v -65.0588 74.4773 -14.8491 +v -63.7672 74.4773 -19.6694 +v -62.119 74.4773 -24.3797 +v -60.1234 74.4773 -28.9537 +v -57.7916 74.4773 -33.3658 +v -55.1365 74.4773 -37.5912 +v -52.1732 74.4773 -41.6065 +v -48.918 74.4773 -45.389 +v -45.3893 74.4773 -48.9178 +v -41.6068 74.4773 -52.1729 +v -37.5915 74.4773 -55.1363 +v -33.3661 74.4773 -57.7914 +v -28.954 74.4773 -60.1232 +v -24.3801 74.4773 -62.1188 +v -19.6698 74.4773 -63.7671 +v -14.8495 74.4773 -65.0587 +v -9.94608 74.4773 -65.9865 +v -4.98711 74.4773 -66.5452 +v -0.000221946 74.4773 -66.7318 +v 4.98664 74.4773 -66.5453 +v 9.94561 74.4773 -65.9865 +v 14.849 74.4773 -65.0588 +v 19.6693 74.4773 -63.7672 +v 24.3796 74.4773 -62.119 +v 28.9536 74.4773 -60.1234 +v 33.3657 74.4773 -57.7916 +v 37.5912 74.4773 -55.1366 +v 41.6064 74.4773 -52.1732 +v 45.389 74.4773 -48.9181 +v 48.9177 74.4773 -45.3894 +v 52.1729 74.4773 -41.6069 +v 55.1363 74.4773 -37.5916 +v 57.7913 74.4773 -33.3662 +v 60.1232 74.4773 -28.9541 +v 62.1188 74.4773 -24.3802 +v 63.767 74.4773 -19.6698 +v 65.0587 74.4773 -14.8495 +v 65.9865 74.4773 -9.94616 +v 66.5452 74.4773 -4.9872 +v 71.9903 69.4075 5.88009e-39 +v 71.789 69.4075 5.37984 +v 71.1862 69.4075 10.7296 +v 70.1854 69.4075 16.0193 +v 68.792 69.4075 21.2195 +v 67.0139 69.4075 26.301 +v 64.861 69.4075 31.2354 +v 62.3454 69.4075 35.9951 +v 59.4812 69.4075 40.5536 +v 56.2843 69.4075 44.8852 +v 52.7727 69.4075 48.9658 +v 48.9659 69.4075 52.7726 +v 44.8853 69.4075 56.2843 +v 40.5536 69.4075 59.4811 +v 35.9952 69.4075 62.3454 +v 31.2355 69.4075 64.861 +v 26.3011 69.4075 67.0139 +v 21.2196 69.4075 68.792 +v 16.0194 69.4075 70.1853 +v 10.7297 69.4075 71.1862 +v 5.37992 69.4075 71.789 +v 8.26723e-05 69.4075 71.9903 +v -5.37976 69.4075 71.789 +v -10.7295 69.4075 71.1862 +v -16.0193 69.4075 70.1854 +v -21.2194 69.4075 68.792 +v -26.3009 69.4075 67.0139 +v -31.2353 69.4075 64.8611 +v -35.9951 69.4075 62.3455 +v -40.5535 69.4075 59.4812 +v -44.8851 69.4075 56.2844 +v -48.9657 69.4075 52.7727 +v -52.7725 69.4075 48.9659 +v -56.2842 69.4075 44.8853 +v -59.4811 69.4075 40.5537 +v -62.3454 69.4075 35.9953 +v -64.861 69.4075 31.2356 +v -67.0138 69.4075 26.3011 +v -68.7919 69.4075 21.2197 +v -70.1853 69.4075 16.0195 +v -71.1862 69.4075 10.7298 +v -71.789 69.4075 5.38 +v -71.9903 69.4075 0.000165345 +v -71.789 69.4075 -5.37967 +v -71.1863 69.4075 -10.7294 +v -70.1854 69.4075 -16.0192 +v -68.792 69.4075 -21.2193 +v -67.0139 69.4075 -26.3008 +v -64.8611 69.4075 -31.2352 +v -62.3455 69.4075 -35.995 +v -59.4813 69.4075 -40.5534 +v -56.2844 69.4075 -44.8851 +v -52.7728 69.4075 -48.9657 +v -48.966 69.4075 -52.7725 +v -44.8854 69.4075 -56.2841 +v -40.5538 69.4075 -59.4811 +v -35.9954 69.4075 -62.3453 +v -31.2356 69.4075 -64.8609 +v -26.3012 69.4075 -67.0138 +v -21.2197 69.4075 -68.7919 +v -16.0196 69.4075 -70.1853 +v -10.7298 69.4075 -71.1862 +v -5.38009 69.4075 -71.789 +v -0.000239435 69.4075 -71.9903 +v 5.37958 69.4075 -71.789 +v 10.7293 69.4075 -71.1863 +v 16.0191 69.4075 -70.1854 +v 21.2192 69.4075 -68.7921 +v 26.3008 69.4075 -67.014 +v 31.2352 69.4075 -64.8612 +v 35.9949 69.4075 -62.3456 +v 40.5533 69.4075 -59.4813 +v 44.885 69.4075 -56.2845 +v 48.9656 69.4075 -52.7728 +v 52.7724 69.4075 -48.9661 +v 56.2841 69.4075 -44.8855 +v 59.481 69.4075 -40.5538 +v 62.3453 69.4075 -35.9954 +v 64.8609 69.4075 -31.2357 +v 67.0138 69.4075 -26.3013 +v 68.7919 69.4075 -21.2198 +v 70.1853 69.4075 -16.0197 +v 71.1862 69.4075 -10.7299 +v 71.789 69.4075 -5.38019 +v 76.8647 63.9674 5.88009e-39 +v 76.6497 63.9674 5.7441 +v 76.0062 63.9674 11.4561 +v 74.9375 63.9674 17.104 +v 73.4498 63.9674 22.6562 +v 71.5513 63.9674 28.0818 +v 69.2527 63.9674 33.3503 +v 66.5668 63.9674 38.4323 +v 63.5086 63.9674 43.2994 +v 60.0952 63.9674 47.9243 +v 56.3458 63.9674 52.2812 +v 52.2813 63.9674 56.3458 +v 47.9244 63.9674 60.0952 +v 43.2995 63.9674 63.5085 +v 38.4324 63.9674 66.5667 +v 33.3504 63.9674 69.2526 +v 28.0819 63.9674 71.5513 +v 22.6563 63.9674 73.4498 +v 17.1041 63.9674 74.9375 +v 11.4562 63.9674 76.0061 +v 5.74419 63.9674 76.6497 +v 8.827e-05 63.9674 76.8647 +v -5.74401 63.9674 76.6497 +v -11.456 63.9674 76.0062 +v -17.1039 63.9674 74.9375 +v -22.6562 63.9674 73.4498 +v -28.0817 63.9674 71.5513 +v -33.3502 63.9674 69.2527 +v -38.4322 63.9674 66.5668 +v -43.2993 63.9674 63.5086 +v -47.9242 63.9674 60.0953 +v -52.2812 63.9674 56.3459 +v -56.3457 63.9674 52.2814 +v -60.0951 63.9674 47.9244 +v -63.5085 63.9674 43.2995 +v -66.5667 63.9674 38.4325 +v -69.2526 63.9674 33.3505 +v -71.5512 63.9674 28.082 +v -73.4497 63.9674 22.6564 +v -74.9375 63.9674 17.1042 +v -76.0061 63.9674 11.4563 +v -76.6497 63.9674 5.74428 +v -76.8647 63.9674 0.00017654 +v -76.6498 63.9674 -5.74392 +v -76.0062 63.9674 -11.4559 +v -74.9376 63.9674 -17.1038 +v -73.4498 63.9674 -22.6561 +v -71.5514 63.9674 -28.0816 +v -69.2528 63.9674 -33.3501 +v -66.5669 63.9674 -38.4321 +v -63.5087 63.9674 -43.2992 +v -60.0954 63.9674 -47.9242 +v -56.3459 63.9674 -52.2811 +v -52.2814 63.9674 -56.3456 +v -47.9245 63.9674 -60.0951 +v -43.2996 63.9674 -63.5084 +v -38.4325 63.9674 -66.5666 +v -33.3505 63.9674 -69.2526 +v -28.0821 63.9674 -71.5512 +v -22.6565 63.9674 -73.4497 +v -17.1043 63.9674 -74.9375 +v -11.4563 63.9674 -76.0061 +v -5.74437 63.9674 -76.6497 +v -0.000255647 63.9674 -76.8647 +v 5.74383 63.9674 -76.6498 +v 11.4558 63.9674 -76.0062 +v 17.1037 63.9674 -74.9376 +v 22.656 63.9674 -73.4499 +v 28.0815 63.9674 -71.5514 +v 33.35 63.9674 -69.2528 +v 38.4321 63.9674 -66.5669 +v 43.2991 63.9674 -63.5088 +v 47.9241 63.9674 -60.0954 +v 52.281 63.9674 -56.346 +v 56.3456 63.9674 -52.2815 +v 60.095 63.9674 -47.9246 +v 63.5084 63.9674 -43.2997 +v 66.5666 63.9674 -38.4326 +v 69.2525 63.9674 -33.3506 +v 71.5512 63.9674 -28.0821 +v 73.4497 63.9674 -22.6566 +v 74.9374 63.9674 -17.1043 +v 76.0061 63.9674 -11.4564 +v 76.6497 63.9674 -5.74447 +v 81.3289 58.186 5.88009e-39 +v 81.1015 58.186 6.07771 +v 80.4206 58.186 12.1214 +v 79.2898 58.186 18.0974 +v 77.7157 58.186 23.9721 +v 75.707 58.186 29.7128 +v 73.2748 58.186 35.2873 +v 70.4329 58.186 40.6644 +v 67.1971 58.186 45.8142 +v 63.5855 58.186 50.7077 +v 59.6184 58.186 55.3177 +v 55.3178 58.186 59.6183 +v 50.7078 58.186 63.5855 +v 45.8143 58.186 67.1971 +v 40.6645 58.186 70.4329 +v 35.2874 58.186 73.2748 +v 29.7129 58.186 75.7069 +v 23.9722 58.186 77.7157 +v 18.0975 58.186 79.2898 +v 12.1215 58.186 80.4205 +v 6.07781 58.186 81.1015 +v 9.33966e-05 58.186 81.3289 +v -6.07762 58.186 81.1015 +v -12.1213 58.186 80.4206 +v -18.0973 58.186 79.2899 +v -23.972 58.186 77.7158 +v -29.7127 58.186 75.707 +v -35.2872 58.186 73.2749 +v -40.6644 58.186 70.433 +v -45.8141 58.186 67.1972 +v -50.7077 58.186 63.5856 +v -55.3176 58.186 59.6184 +v -59.6182 58.186 55.3178 +v -63.5854 58.186 50.7079 +v -67.197 58.186 45.8143 +v -70.4328 58.186 40.6646 +v -73.2748 58.186 35.2874 +v -75.7069 58.186 29.713 +v -77.7157 58.186 23.9723 +v -79.2898 58.186 18.0976 +v -80.4205 58.186 12.1216 +v -81.1015 58.186 6.0779 +v -81.3289 58.186 0.000186793 +v -81.1015 58.186 -6.07753 +v -80.4206 58.186 -12.1213 +v -79.2899 58.186 -18.0972 +v -77.7158 58.186 -23.9719 +v -75.707 58.186 -29.7126 +v -73.2749 58.186 -35.2871 +v -70.433 58.186 -40.6643 +v -67.1973 58.186 -45.814 +v -63.5857 58.186 -50.7076 +v -59.6185 58.186 -55.3175 +v -55.3179 58.186 -59.6182 +v -50.708 58.186 -63.5854 +v -45.8144 58.186 -67.197 +v -40.6647 58.186 -70.4328 +v -35.2875 58.186 -73.2747 +v -29.713 58.186 -75.7069 +v -23.9724 58.186 -77.7156 +v -18.0977 58.186 -79.2898 +v -12.1217 58.186 -80.4205 +v -6.078 58.186 -81.1015 +v -0.000270495 58.186 -81.3289 +v 6.07743 58.186 -81.1015 +v 12.1211 58.186 -80.4206 +v 18.0971 58.186 -79.2899 +v 23.9718 58.186 -77.7158 +v 29.7125 58.186 -75.7071 +v 35.287 58.186 -73.275 +v 40.6642 58.186 -70.4331 +v 45.8139 58.186 -67.1973 +v 50.7075 58.186 -63.5857 +v 55.3175 58.186 -59.6186 +v 59.6181 58.186 -55.318 +v 63.5853 58.186 -50.708 +v 67.1969 58.186 -45.8145 +v 70.4327 58.186 -40.6648 +v 73.2747 58.186 -35.2876 +v 75.7068 58.186 -29.7131 +v 77.7156 58.186 -23.9725 +v 79.2898 58.186 -18.0978 +v 80.4205 58.186 -12.1218 +v 81.1015 58.186 -6.07811 +v 85.3593 52.0941 5.88009e-39 +v 85.1206 52.0941 6.3789 +v 84.4059 52.0941 12.7221 +v 83.2191 52.0941 18.9942 +v 81.567 52.0941 25.1601 +v 79.4587 52.0941 31.1852 +v 76.9061 52.0941 37.036 +v 73.9233 52.0941 42.6796 +v 70.5272 52.0941 48.0846 +v 66.7366 52.0941 53.2206 +v 62.5728 52.0941 58.059 +v 58.0591 52.0941 62.5727 +v 53.2207 52.0941 66.7365 +v 48.0846 52.0941 70.5271 +v 42.6797 52.0941 73.9233 +v 37.0361 52.0941 76.906 +v 31.1853 52.0941 79.4587 +v 25.1602 52.0941 81.567 +v 18.9943 52.0941 83.2191 +v 12.7222 52.0941 84.4059 +v 6.379 52.0941 85.1206 +v 9.8025e-05 52.0941 85.3593 +v -6.3788 52.0941 85.1206 +v -12.722 52.0941 84.4059 +v -18.9941 52.0941 83.2192 +v -25.16 52.0941 81.567 +v -31.1851 52.0941 79.4587 +v -37.0359 52.0941 76.9061 +v -42.6795 52.0941 73.9234 +v -48.0845 52.0941 70.5272 +v -53.2205 52.0941 66.7367 +v -58.0589 52.0941 62.5729 +v -62.5727 52.0941 58.0592 +v -66.7365 52.0941 53.2208 +v -70.527 52.0941 48.0847 +v -73.9232 52.0941 42.6798 +v -76.906 52.0941 37.0362 +v -79.4586 52.0941 31.1854 +v -81.5669 52.0941 25.1603 +v -83.2191 52.0941 18.9944 +v -84.4058 52.0941 12.7223 +v -85.1206 52.0941 6.3791 +v -85.3593 52.0941 0.00019605 +v -85.1206 52.0941 -6.37871 +v -84.4059 52.0941 -12.7219 +v -83.2192 52.0941 -18.994 +v -81.5671 52.0941 -25.1599 +v -79.4588 52.0941 -31.185 +v -76.9062 52.0941 -37.0358 +v -73.9234 52.0941 -42.6794 +v -70.5273 52.0941 -48.0844 +v -66.7367 52.0941 -53.2204 +v -62.5729 52.0941 -58.0589 +v -58.0592 52.0941 -62.5726 +v -53.2208 52.0941 -66.7364 +v -48.0848 52.0941 -70.527 +v -42.6799 52.0941 -73.9232 +v -37.0362 52.0941 -76.9059 +v -31.1855 52.0941 -79.4586 +v -25.1603 52.0941 -81.5669 +v -18.9945 52.0941 -83.2191 +v -12.7224 52.0941 -84.4058 +v -6.37921 52.0941 -85.1206 +v -0.000283899 52.0941 -85.3593 +v 6.3786 52.0941 -85.1206 +v 12.7218 52.0941 -84.4059 +v 18.9939 52.0941 -83.2192 +v 25.1598 52.0941 -81.5671 +v 31.1849 52.0941 -79.4588 +v 37.0357 52.0941 -76.9062 +v 42.6793 52.0941 -73.9235 +v 48.0843 52.0941 -70.5273 +v 53.2204 52.0941 -66.7368 +v 58.0588 52.0941 -62.573 +v 62.5725 52.0941 -58.0593 +v 66.7363 52.0941 -53.2209 +v 70.5269 52.0941 -48.0849 +v 73.9231 52.0941 -42.68 +v 76.9059 52.0941 -37.0363 +v 79.4586 52.0941 -31.1856 +v 81.5669 52.0941 -25.1604 +v 83.219 52.0941 -18.9946 +v 84.4058 52.0941 -12.7225 +v 85.1206 52.0941 -6.37931 +v 88.9342 45.7243 5.88009e-39 +v 88.6855 45.7243 6.64605 +v 87.9409 45.7243 13.2549 +v 86.7044 45.7243 19.7897 +v 84.9831 45.7243 26.2138 +v 82.7865 45.7243 32.4913 +v 80.1269 45.7243 38.5871 +v 77.0193 45.7243 44.4671 +v 73.4809 45.7243 50.0984 +v 69.5316 45.7243 55.4495 +v 65.1934 45.7243 60.4906 +v 60.4906 45.7243 65.1933 +v 55.4496 45.7243 69.5315 +v 50.0985 45.7243 73.4808 +v 44.4671 45.7243 77.0192 +v 38.5872 45.7243 80.1269 +v 32.4914 45.7243 82.7865 +v 26.2139 45.7243 84.9831 +v 19.7898 45.7243 86.7044 +v 13.255 45.7243 87.9408 +v 6.64616 45.7243 88.6855 +v 0.00010213 45.7243 88.9342 +v -6.64595 45.7243 88.6855 +v -13.2548 45.7243 87.9409 +v -19.7896 45.7243 86.7044 +v -26.2137 45.7243 84.9831 +v -32.4912 45.7243 82.7865 +v -38.587 45.7243 80.127 +v -44.467 45.7243 77.0193 +v -50.0983 45.7243 73.4809 +v -55.4494 45.7243 69.5316 +v -60.4905 45.7243 65.1935 +v -65.1933 45.7243 60.4907 +v -69.5314 45.7243 55.4497 +v -73.4808 45.7243 50.0985 +v -77.0192 45.7243 44.4672 +v -80.1268 45.7243 38.5873 +v -82.7864 45.7243 32.4915 +v -84.983 45.7243 26.214 +v -86.7044 45.7243 19.7899 +v -87.9408 45.7243 13.2551 +v -88.6855 45.7243 6.64626 +v -88.9342 45.7243 0.000204261 +v -88.6855 45.7243 -6.64585 +v -87.9409 45.7243 -13.2547 +v -86.7045 45.7243 -19.7895 +v -84.9831 45.7243 -26.2136 +v -82.7866 45.7243 -32.4911 +v -80.127 45.7243 -38.5869 +v -77.0194 45.7243 -44.4669 +v -73.481 45.7243 -50.0982 +v -69.5317 45.7243 -55.4493 +v -65.1935 45.7243 -60.4904 +v -60.4908 45.7243 -65.1932 +v -55.4498 45.7243 -69.5314 +v -50.0986 45.7243 -73.4807 +v -44.4673 45.7243 -77.0191 +v -38.5873 45.7243 -80.1268 +v -32.4916 45.7243 -82.7864 +v -26.2141 45.7243 -84.983 +v -19.79 45.7243 -86.7043 +v -13.2552 45.7243 -87.9408 +v -6.64637 45.7243 -88.6855 +v -0.000295789 45.7243 -88.9342 +v 6.64574 45.7243 -88.6855 +v 13.2546 45.7243 -87.9409 +v 19.7894 45.7243 -86.7045 +v 26.2135 45.7243 -84.9832 +v 32.491 45.7243 -82.7866 +v 38.5868 45.7243 -80.1271 +v 44.4668 45.7243 -77.0194 +v 50.0981 45.7243 -73.4811 +v 55.4493 45.7243 -69.5318 +v 60.4903 45.7243 -65.1936 +v 65.1931 45.7243 -60.4909 +v 69.5313 45.7243 -55.4499 +v 73.4807 45.7243 -50.0987 +v 77.0191 45.7243 -44.4674 +v 80.1268 45.7243 -38.5874 +v 82.7863 45.7243 -32.4917 +v 84.983 45.7243 -26.2142 +v 86.7043 45.7243 -19.7901 +v 87.9408 45.7243 -13.2553 +v 88.6855 45.7243 -6.64648 +v 92.0346 39.1106 5.88009e-39 +v 91.7772 39.1106 6.87775 +v 91.0066 39.1106 13.717 +v 89.7271 39.1106 20.4796 +v 87.9458 39.1106 27.1276 +v 85.6726 39.1106 33.624 +v 82.9203 39.1106 39.9323 +v 79.7043 39.1106 46.0173 +v 76.0426 39.1106 51.8449 +v 71.9556 39.1106 57.3826 +v 67.4662 39.1106 62.5994 +v 62.5995 39.1106 67.4661 +v 57.3827 39.1106 71.9555 +v 51.845 39.1106 76.0425 +v 46.0174 39.1106 79.7043 +v 39.9324 39.1106 82.9203 +v 33.6241 39.1106 85.6725 +v 27.1278 39.1106 87.9457 +v 20.4797 39.1106 89.7271 +v 13.7171 39.1106 91.0066 +v 6.87785 39.1106 91.7772 +v 0.000105691 39.1106 92.0346 +v -6.87764 39.1106 91.7772 +v -13.7169 39.1106 91.0067 +v -20.4795 39.1106 89.7271 +v -27.1275 39.1106 87.9458 +v -33.6239 39.1106 85.6726 +v -39.9322 39.1106 82.9204 +v -46.0172 39.1106 79.7044 +v -51.8448 39.1106 76.0426 +v -57.3825 39.1106 71.9556 +v -62.5993 39.1106 67.4662 +v -67.466 39.1106 62.5995 +v -71.9554 39.1106 57.3828 +v -76.0424 39.1106 51.8451 +v -79.7042 39.1106 46.0174 +v -82.9202 39.1106 39.9325 +v -85.6725 39.1106 33.6242 +v -87.9457 39.1106 27.1279 +v -89.727 39.1106 20.4798 +v -91.0066 39.1106 13.7172 +v -91.7772 39.1106 6.87796 +v -92.0346 39.1106 0.000211382 +v -91.7773 39.1106 -6.87754 +v -91.0067 39.1106 -13.7168 +v -89.7271 39.1106 -20.4794 +v -87.9458 39.1106 -27.1275 +v -85.6727 39.1106 -33.6238 +v -82.9204 39.1106 -39.9321 +v -79.7044 39.1106 -46.0171 +v -76.0427 39.1106 -51.8447 +v -71.9557 39.1106 -57.3824 +v -67.4663 39.1106 -62.5992 +v -62.5996 39.1106 -67.4659 +v -57.3829 39.1106 -71.9554 +v -51.8451 39.1106 -76.0424 +v -46.0175 39.1106 -79.7041 +v -39.9326 39.1106 -82.9202 +v -33.6243 39.1106 -85.6725 +v -27.1279 39.1106 -87.9457 +v -20.4799 39.1106 -89.727 +v -13.7173 39.1106 -91.0066 +v -6.87808 39.1106 -91.7772 +v -0.000306101 39.1106 -92.0346 +v 6.87742 39.1106 -91.7773 +v 13.7167 39.1106 -91.0067 +v 20.4793 39.1106 -89.7272 +v 27.1273 39.1106 -87.9459 +v 33.6237 39.1106 -85.6727 +v 39.932 39.1106 -82.9205 +v 46.017 39.1106 -79.7045 +v 51.8446 39.1106 -76.0428 +v 57.3823 39.1106 -71.9558 +v 62.5991 39.1106 -67.4664 +v 67.4659 39.1106 -62.5997 +v 71.9553 39.1106 -57.3829 +v 76.0423 39.1106 -51.8452 +v 79.7041 39.1106 -46.0177 +v 82.9201 39.1106 -39.9327 +v 85.6724 39.1106 -33.6244 +v 87.9456 39.1106 -27.1281 +v 89.727 39.1106 -20.48 +v 91.0066 39.1106 -13.7175 +v 91.7772 39.1106 -6.87819 +v 94.6439 32.2881 5.88009e-39 +v 94.3793 32.2881 7.07275 +v 93.5869 32.2881 14.1059 +v 92.271 32.2881 21.0602 +v 90.4392 32.2881 27.8968 +v 88.1016 32.2881 34.5773 +v 85.2713 32.2881 41.0644 +v 81.9641 32.2881 47.3219 +v 78.1985 32.2881 53.3148 +v 73.9956 32.2881 59.0095 +v 69.379 32.2881 64.3742 +v 64.3743 32.2881 69.3789 +v 59.0096 32.2881 73.9956 +v 53.3149 32.2881 78.1985 +v 47.322 32.2881 81.964 +v 41.0645 32.2881 85.2712 +v 34.5774 32.2881 88.1015 +v 27.8969 32.2881 90.4392 +v 21.0604 32.2881 92.271 +v 14.106 32.2881 93.5868 +v 7.07285 32.2881 94.3793 +v 0.000108687 32.2881 94.6439 +v -7.07264 32.2881 94.3793 +v -14.1058 32.2881 93.5869 +v -21.0601 32.2881 92.271 +v -27.8967 32.2881 90.4392 +v -34.5772 32.2881 88.1016 +v -41.0643 32.2881 85.2713 +v -47.3218 32.2881 81.9641 +v -53.3147 32.2881 78.1986 +v -59.0094 32.2881 73.9957 +v -64.3741 32.2881 69.379 +v -69.3788 32.2881 64.3744 +v -73.9955 32.2881 59.0097 +v -78.1984 32.2881 53.315 +v -81.964 32.2881 47.3221 +v -85.2712 32.2881 41.0646 +v -88.1015 32.2881 34.5775 +v -90.4391 32.2881 27.897 +v -92.271 32.2881 21.0605 +v -93.5868 32.2881 14.1062 +v -94.3793 32.2881 7.07296 +v -94.6439 32.2881 0.000217375 +v -94.3793 32.2881 -7.07253 +v -93.5869 32.2881 -14.1057 +v -92.2711 32.2881 -21.06 +v -90.4392 32.2881 -27.8966 +v -88.1017 32.2881 -34.5771 +v -85.2714 32.2881 -41.0642 +v -81.9642 32.2881 -47.3217 +v -78.1987 32.2881 -53.3146 +v -73.9958 32.2881 -59.0093 +v -69.3791 32.2881 -64.374 +v -64.3744 32.2881 -69.3787 +v -59.0098 32.2881 -73.9954 +v -53.3151 32.2881 -78.1983 +v -47.3222 32.2881 -81.9639 +v -41.0647 32.2881 -85.2711 +v -34.5776 32.2881 -88.1014 +v -27.8971 32.2881 -90.4391 +v -21.0606 32.2881 -92.271 +v -14.1062 32.2881 -93.5868 +v -7.07308 32.2881 -94.3793 +v -0.00031478 32.2881 -94.6439 +v 7.07241 32.2881 -94.3793 +v 14.1056 32.2881 -93.5869 +v 21.0599 32.2881 -92.2711 +v 27.8964 32.2881 -90.4393 +v 34.577 32.2881 -88.1017 +v 41.0641 32.2881 -85.2714 +v 47.3217 32.2881 -81.9642 +v 53.3145 32.2881 -78.1987 +v 59.0092 32.2881 -73.9958 +v 64.3739 32.2881 -69.3792 +v 69.3787 32.2881 -64.3745 +v 73.9954 32.2881 -59.0099 +v 78.1983 32.2881 -53.3152 +v 81.9638 32.2881 -47.3223 +v 85.2711 32.2881 -41.0648 +v 88.1014 32.2881 -34.5777 +v 90.4391 32.2881 -27.8972 +v 92.2709 32.2881 -21.0607 +v 93.5868 32.2881 -14.1064 +v 94.3793 32.2881 -7.0732 +v 96.7483 25.2934 5.88009e-39 +v 96.4778 25.2934 7.23001 +v 95.6677 25.2934 14.4196 +v 94.3227 25.2934 21.5285 +v 92.4501 25.2934 28.5171 +v 90.0605 25.2934 35.3461 +v 87.1673 25.2934 41.9775 +v 83.7865 25.2934 48.3741 +v 79.9373 25.2934 54.5002 +v 75.6409 25.2934 60.3216 +v 70.9216 25.2934 65.8055 +v 65.8056 25.2934 70.9215 +v 60.3217 25.2934 75.6409 +v 54.5003 25.2934 79.9372 +v 48.3742 25.2934 83.7865 +v 41.9776 25.2934 87.1672 +v 35.3462 25.2934 90.0605 +v 28.5172 25.2934 92.4501 +v 21.5286 25.2934 94.3226 +v 14.4197 25.2934 95.6677 +v 7.23012 25.2934 96.4778 +v 0.000111104 25.2934 96.7483 +v -7.2299 25.2934 96.4778 +v -14.4195 25.2934 95.6678 +v -21.5284 25.2934 94.3227 +v -28.5169 25.2934 92.4501 +v -35.346 25.2934 90.0605 +v -41.9774 25.2934 87.1673 +v -48.374 25.2934 83.7866 +v -54.5001 25.2934 79.9373 +v -60.3215 25.2934 75.641 +v -65.8055 25.2934 70.9217 +v -70.9214 25.2934 65.8057 +v -75.6408 25.2934 60.3217 +v -79.9371 25.2934 54.5004 +v -83.7864 25.2934 48.3743 +v -87.1672 25.2934 41.9777 +v -90.0604 25.2934 35.3463 +v -92.45 25.2934 28.5173 +v -94.3226 25.2934 21.5287 +v -95.6677 25.2934 14.4198 +v -96.4778 25.2934 7.23023 +v -96.7483 25.2934 0.000222208 +v -96.4778 25.2934 -7.22979 +v -95.6678 25.2934 -14.4194 +v -94.3227 25.2934 -21.5283 +v -92.4502 25.2934 -28.5168 +v -90.0606 25.2934 -35.3459 +v -87.1674 25.2934 -41.9773 +v -83.7867 25.2934 -48.3739 +v -79.9374 25.2934 -54.5 +v -75.6411 25.2934 -60.3214 +v -70.9218 25.2934 -65.8054 +v -65.8058 25.2934 -70.9214 +v -60.3218 25.2934 -75.6407 +v -54.5005 25.2934 -79.9371 +v -48.3744 25.2934 -83.7864 +v -41.9778 25.2934 -87.1671 +v -35.3464 25.2934 -90.0604 +v -28.5174 25.2934 -92.45 +v -21.5289 25.2934 -94.3226 +v -14.4199 25.2934 -95.6677 +v -7.23035 25.2934 -96.4778 +v -0.000321779 25.2934 -96.7483 +v 7.22966 25.2934 -96.4778 +v 14.4192 25.2934 -95.6678 +v 21.5282 25.2934 -94.3227 +v 28.5167 25.2934 -92.4502 +v 35.3458 25.2934 -90.0606 +v 41.9772 25.2934 -87.1674 +v 48.3738 25.2934 -83.7867 +v 54.4999 25.2934 -79.9375 +v 60.3213 25.2934 -75.6411 +v 65.8053 25.2934 -70.9218 +v 70.9213 25.2934 -65.8059 +v 75.6406 25.2934 -60.3219 +v 79.937 25.2934 -54.5006 +v 83.7863 25.2934 -48.3745 +v 87.1671 25.2934 -41.9779 +v 90.0603 25.2934 -35.3466 +v 92.45 25.2934 -28.5175 +v 94.3226 25.2934 -21.529 +v 95.6677 25.2934 -14.42 +v 96.4778 25.2934 -7.23047 +v 98.3365 18.1638 5.88009e-39 +v 98.0616 18.1638 7.34869 +v 97.2382 18.1638 14.6563 +v 95.871 18.1638 21.8819 +v 93.9677 18.1638 28.9852 +v 91.5389 18.1638 35.9263 +v 88.5982 18.1638 42.6666 +v 85.162 18.1638 49.1682 +v 81.2495 18.1638 55.3949 +v 76.8826 18.1638 61.3118 +v 72.0858 18.1638 66.8858 +v 66.8859 18.1638 72.0857 +v 61.3119 18.1638 76.8826 +v 55.395 18.1638 81.2494 +v 49.1683 18.1638 85.1619 +v 42.6667 18.1638 88.5981 +v 35.9265 18.1638 91.5389 +v 28.9853 18.1638 93.9677 +v 21.882 18.1638 95.871 +v 14.6564 18.1638 97.2382 +v 7.34881 18.1638 98.0616 +v 0.000112928 18.1638 98.3365 +v -7.34858 18.1638 98.0616 +v -14.6562 18.1638 97.2382 +v -21.8818 18.1638 95.8711 +v -28.9851 18.1638 93.9678 +v -35.9262 18.1638 91.539 +v -42.6665 18.1638 88.5982 +v -49.1681 18.1638 85.162 +v -55.3948 18.1638 81.2496 +v -61.3117 18.1638 76.8827 +v -66.8857 18.1638 72.0859 +v -72.0857 18.1638 66.886 +v -76.8825 18.1638 61.312 +v -81.2494 18.1638 55.3951 +v -85.1618 18.1638 49.1684 +v -88.5981 18.1638 42.6668 +v -91.5388 18.1638 35.9266 +v -93.9677 18.1638 28.9854 +v -95.871 18.1638 21.8821 +v -97.2382 18.1638 14.6565 +v -98.0616 18.1638 7.34892 +v -98.3365 18.1638 0.000225856 +v -98.0616 18.1638 -7.34847 +v -97.2382 18.1638 -14.6561 +v -95.8711 18.1638 -21.8817 +v -93.9678 18.1638 -28.985 +v -91.539 18.1638 -35.9261 +v -88.5983 18.1638 -42.6664 +v -85.1621 18.1638 -49.168 +v -81.2496 18.1638 -55.3947 +v -76.8828 18.1638 -61.3116 +v -72.086 18.1638 -66.8856 +v -66.8861 18.1638 -72.0856 +v -61.3121 18.1638 -76.8824 +v -55.3952 18.1638 -81.2493 +v -49.1685 18.1638 -85.1618 +v -42.6669 18.1638 -88.598 +v -35.9267 18.1638 -91.5388 +v -28.9855 18.1638 -93.9676 +v -21.8823 18.1638 -95.871 +v -14.6566 18.1638 -97.2382 +v -7.34904 18.1638 -98.0616 +v -0.000327061 18.1638 -98.3365 +v 7.34835 18.1638 -98.0616 +v 14.6559 18.1638 -97.2383 +v 21.8816 18.1638 -95.8711 +v 28.9848 18.1638 -93.9678 +v 35.926 18.1638 -91.539 +v 42.6663 18.1638 -88.5983 +v 49.1679 18.1638 -85.1621 +v 55.3946 18.1638 -81.2497 +v 61.3115 18.1638 -76.8829 +v 66.8855 18.1638 -72.0861 +v 72.0855 18.1638 -66.8861 +v 76.8823 18.1638 -61.3122 +v 81.2492 18.1638 -55.3953 +v 85.1617 18.1638 -49.1687 +v 88.598 18.1638 -42.667 +v 91.5387 18.1638 -35.9268 +v 93.9676 18.1638 -28.9856 +v 95.8709 18.1638 -21.8824 +v 97.2381 18.1638 -14.6567 +v 98.0615 18.1638 -7.34917 +v 99.4001 10.9372 5.88009e-39 +v 99.1221 10.9372 7.42817 +v 98.2899 10.9372 14.8148 +v 96.9079 10.9372 22.1186 +v 94.984 10.9372 29.2987 +v 92.5289 10.9372 36.3149 +v 89.5564 10.9372 43.128 +v 86.083 10.9372 49.7 +v 82.1282 10.9372 55.994 +v 77.7141 10.9372 61.9749 +v 72.8655 10.9372 67.6092 +v 67.6093 10.9372 72.8654 +v 61.975 10.9372 77.7141 +v 55.9941 10.9372 82.1282 +v 49.7001 10.9372 86.083 +v 43.1282 10.9372 89.5563 +v 36.315 10.9372 92.5289 +v 29.2988 10.9372 94.984 +v 22.1187 10.9372 96.9079 +v 14.8149 10.9372 98.2899 +v 7.42829 10.9372 99.1221 +v 0.000114149 10.9372 99.4001 +v -7.42806 10.9372 99.1222 +v -14.8147 10.9372 98.2899 +v -22.1185 10.9372 96.908 +v -29.2985 10.9372 94.9841 +v -36.3148 10.9372 92.529 +v -43.1279 10.9372 89.5564 +v -49.6999 10.9372 86.0831 +v -55.9939 10.9372 82.1283 +v -61.9748 10.9372 77.7142 +v -67.6091 10.9372 72.8655 +v -72.8653 10.9372 67.6094 +v -77.714 10.9372 61.9751 +v -82.1281 10.9372 55.9942 +v -86.0829 10.9372 49.7002 +v -89.5563 10.9372 43.1283 +v -92.5289 10.9372 36.3151 +v -94.984 10.9372 29.2989 +v -96.9079 10.9372 22.1188 +v -98.2898 10.9372 14.815 +v -99.1221 10.9372 7.4284 +v -99.4001 10.9372 0.000228298 +v -99.1222 10.9372 -7.42795 +v -98.2899 10.9372 -14.8146 +v -96.908 10.9372 -22.1184 +v -94.9841 10.9372 -29.2985 +v -92.529 10.9372 -36.3147 +v -89.5565 10.9372 -43.1278 +v -86.0831 10.9372 -49.6998 +v -82.1284 10.9372 -55.9938 +v -77.7143 10.9372 -61.9747 +v -72.8656 10.9372 -67.609 +v -67.6095 10.9372 -72.8652 +v -61.9752 10.9372 -77.7139 +v -55.9943 10.9372 -82.128 +v -49.7003 10.9372 -86.0828 +v -43.1284 10.9372 -89.5563 +v -36.3152 10.9372 -92.5288 +v -29.299 10.9372 -94.9839 +v -22.1189 10.9372 -96.9078 +v -14.8151 10.9372 -98.2898 +v -7.42853 10.9372 -99.1221 +v -0.000330598 10.9372 -99.4001 +v 7.42782 10.9372 -99.1222 +v 14.8144 10.9372 -98.2899 +v 22.1182 10.9372 -96.908 +v 29.2983 10.9372 -94.9841 +v 36.3146 10.9372 -92.5291 +v 43.1277 10.9372 -89.5566 +v 49.6997 10.9372 -86.0832 +v 55.9937 10.9372 -82.1284 +v 61.9746 10.9372 -77.7144 +v 67.6089 10.9372 -72.8657 +v 72.8651 10.9372 -67.6095 +v 77.7138 10.9372 -61.9753 +v 82.128 10.9372 -55.9944 +v 86.0828 10.9372 -49.7004 +v 89.5562 10.9372 -43.1285 +v 92.5288 10.9372 -36.3154 +v 94.9839 10.9372 -29.2991 +v 96.9078 10.9372 -22.1191 +v 98.2898 10.9372 -14.8153 +v 99.1221 10.9372 -7.42865 +v 99.9333 3.65233 5.88009e-39 +v 99.6538 3.65233 7.46802 +v 98.8171 3.65233 14.8943 +v 97.4277 3.65233 22.2372 +v 95.4935 3.65233 29.4558 +v 93.0253 3.65233 36.5097 +v 90.0368 3.65233 43.3594 +v 86.5448 3.65233 49.9666 +v 82.5688 3.65233 56.2944 +v 78.131 3.65233 62.3073 +v 73.2563 3.65233 67.9719 +v 67.9719 3.65233 73.2562 +v 62.3074 3.65233 78.1309 +v 56.2945 3.65233 82.5687 +v 49.9667 3.65233 86.5447 +v 43.3595 3.65233 90.0367 +v 36.5098 3.65233 93.0252 +v 29.4559 3.65233 95.4935 +v 22.2373 3.65233 97.4277 +v 14.8944 3.65233 98.8171 +v 7.46813 3.65233 99.6538 +v 0.000114762 3.65233 99.9333 +v -7.4679 3.65233 99.6539 +v -14.8942 3.65233 98.8171 +v -22.2371 3.65233 97.4278 +v -29.4557 3.65233 95.4936 +v -36.5096 3.65233 93.0253 +v -43.3593 3.65233 90.0368 +v -49.9665 3.65233 86.5448 +v -56.2943 3.65233 82.5688 +v -62.3072 3.65233 78.1311 +v -67.9718 3.65233 73.2564 +v -73.2562 3.65233 67.972 +v -78.1309 3.65233 62.3075 +v -82.5686 3.65233 56.2946 +v -86.5447 3.65233 49.9668 +v -90.0367 3.65233 43.3596 +v -93.0252 3.65233 36.5099 +v -95.4935 3.65233 29.4561 +v -97.4277 3.65233 22.2375 +v -98.8171 3.65233 14.8945 +v -99.6538 3.65233 7.46825 +v -99.9333 3.65233 0.000229523 +v -99.6539 3.65233 -7.46779 +v -98.8171 3.65233 -14.894 +v -97.4278 3.65233 -22.237 +v -95.4936 3.65233 -29.4556 +v -93.0254 3.65233 -36.5095 +v -90.0369 3.65233 -43.3592 +v -86.5449 3.65233 -49.9664 +v -82.5689 3.65233 -56.2942 +v -78.1312 3.65233 -62.3071 +v -73.2565 3.65233 -67.9717 +v -67.9721 3.65233 -73.2561 +v -62.3076 3.65233 -78.1308 +v -56.2947 3.65233 -82.5686 +v -49.9669 3.65233 -86.5446 +v -43.3597 3.65233 -90.0366 +v -36.51 3.65233 -93.0251 +v -29.4562 3.65233 -95.4934 +v -22.2376 3.65233 -97.4277 +v -14.8946 3.65233 -98.8171 +v -7.46837 3.65233 -99.6538 +v -0.000332372 3.65233 -99.9333 +v 7.46766 3.65233 -99.6539 +v 14.8939 3.65233 -98.8172 +v 22.2369 3.65233 -97.4278 +v 29.4555 3.65233 -95.4936 +v 36.5094 3.65233 -93.0254 +v 43.3591 3.65233 -90.0369 +v 49.9663 3.65233 -86.545 +v 56.2941 3.65233 -82.569 +v 62.3071 3.65233 -78.1312 +v 67.9716 3.65233 -73.2566 +v 73.256 3.65233 -67.9722 +v 78.1307 3.65233 -62.3077 +v 82.5685 3.65233 -56.2948 +v 86.5445 3.65233 -49.967 +v 90.0366 3.65233 -43.3598 +v 93.0251 3.65233 -36.5102 +v 95.4934 3.65233 -29.4563 +v 97.4276 3.65233 -22.2377 +v 98.817 3.65233 -14.8947 +v 99.6538 3.65233 -7.4685 +v 99.9333 -3.65207 5.88009e-39 +v 99.6539 -3.65207 7.46802 +v 98.8171 -3.65207 14.8943 +v 97.4278 -3.65207 22.2372 +v 95.4935 -3.65207 29.4558 +v 93.0253 -3.65207 36.5097 +v 90.0368 -3.65207 43.3594 +v 86.5448 -3.65207 49.9666 +v 82.5688 -3.65207 56.2944 +v 78.131 -3.65207 62.3073 +v 73.2563 -3.65207 67.9719 +v 67.9719 -3.65207 73.2562 +v 62.3074 -3.65207 78.1309 +v 56.2945 -3.65207 82.5687 +v 49.9667 -3.65207 86.5447 +v 43.3595 -3.65207 90.0367 +v 36.5098 -3.65207 93.0252 +v 29.4559 -3.65207 95.4935 +v 22.2373 -3.65207 97.4277 +v 14.8944 -3.65207 98.8171 +v 7.46813 -3.65207 99.6538 +v 0.000114762 -3.65207 99.9333 +v -7.4679 -3.65207 99.6539 +v -14.8942 -3.65207 98.8171 +v -22.2371 -3.65207 97.4278 +v -29.4557 -3.65207 95.4936 +v -36.5096 -3.65207 93.0253 +v -43.3593 -3.65207 90.0368 +v -49.9665 -3.65207 86.5448 +v -56.2943 -3.65207 82.5688 +v -62.3073 -3.65207 78.1311 +v -67.9718 -3.65207 73.2564 +v -73.2562 -3.65207 67.972 +v -78.1309 -3.65207 62.3075 +v -82.5686 -3.65207 56.2946 +v -86.5447 -3.65207 49.9668 +v -90.0367 -3.65207 43.3596 +v -93.0252 -3.65207 36.5099 +v -95.4935 -3.65207 29.4561 +v -97.4277 -3.65207 22.2375 +v -98.8171 -3.65207 14.8945 +v -99.6538 -3.65207 7.46825 +v -99.9333 -3.65207 0.000229523 +v -99.6539 -3.65207 -7.46779 +v -98.8172 -3.65207 -14.894 +v -97.4278 -3.65207 -22.237 +v -95.4936 -3.65207 -29.4556 +v -93.0254 -3.65207 -36.5095 +v -90.0369 -3.65207 -43.3592 +v -86.5449 -3.65207 -49.9664 +v -82.5689 -3.65207 -56.2942 +v -78.1312 -3.65207 -62.3072 +v -73.2565 -3.65207 -67.9717 +v -67.9721 -3.65207 -73.2561 +v -62.3076 -3.65207 -78.1308 +v -56.2947 -3.65207 -82.5686 +v -49.9669 -3.65207 -86.5446 +v -43.3597 -3.65207 -90.0367 +v -36.51 -3.65207 -93.0252 +v -29.4562 -3.65207 -95.4934 +v -22.2376 -3.65207 -97.4277 +v -14.8946 -3.65207 -98.8171 +v -7.46837 -3.65207 -99.6538 +v -0.000332372 -3.65207 -99.9333 +v 7.46766 -3.65207 -99.6539 +v 14.8939 -3.65207 -98.8172 +v 22.2369 -3.65207 -97.4278 +v 29.4555 -3.65207 -95.4937 +v 36.5094 -3.65207 -93.0254 +v 43.3591 -3.65207 -90.037 +v 49.9663 -3.65207 -86.545 +v 56.2941 -3.65207 -82.569 +v 62.3071 -3.65207 -78.1312 +v 67.9716 -3.65207 -73.2566 +v 73.256 -3.65207 -67.9722 +v 78.1307 -3.65207 -62.3077 +v 82.5685 -3.65207 -56.2948 +v 86.5445 -3.65207 -49.967 +v 90.0366 -3.65207 -43.3598 +v 93.0251 -3.65207 -36.5102 +v 95.4934 -3.65207 -29.4563 +v 97.4277 -3.65207 -22.2377 +v 98.817 -3.65207 -14.8947 +v 99.6538 -3.65207 -7.4685 +v 99.4001 -10.937 5.88009e-39 +v 99.1222 -10.937 7.42817 +v 98.2899 -10.937 14.8148 +v 96.9079 -10.937 22.1186 +v 94.984 -10.937 29.2987 +v 92.529 -10.937 36.3149 +v 89.5564 -10.937 43.1281 +v 86.083 -10.937 49.7 +v 82.1283 -10.937 55.994 +v 77.7142 -10.937 61.9749 +v 72.8655 -10.937 67.6092 +v 67.6093 -10.937 72.8654 +v 61.975 -10.937 77.7141 +v 55.9941 -10.937 82.1282 +v 49.7001 -10.937 86.083 +v 43.1282 -10.937 89.5564 +v 36.315 -10.937 92.5289 +v 29.2988 -10.937 94.984 +v 22.1187 -10.937 96.9079 +v 14.8149 -10.937 98.2899 +v 7.42829 -10.937 99.1222 +v 0.000114149 -10.937 99.4001 +v -7.42806 -10.937 99.1222 +v -14.8147 -10.937 98.2899 +v -22.1185 -10.937 96.908 +v -29.2986 -10.937 94.9841 +v -36.3148 -10.937 92.529 +v -43.128 -10.937 89.5565 +v -49.6999 -10.937 86.0831 +v -55.9939 -10.937 82.1283 +v -61.9748 -10.937 77.7142 +v -67.6091 -10.937 72.8656 +v -72.8653 -10.937 67.6094 +v -77.714 -10.937 61.9751 +v -82.1281 -10.937 55.9942 +v -86.0829 -10.937 49.7002 +v -89.5563 -10.937 43.1283 +v -92.5289 -10.937 36.3151 +v -94.984 -10.937 29.2989 +v -96.9079 -10.937 22.1188 +v -98.2899 -10.937 14.815 +v -99.1221 -10.937 7.4284 +v -99.4001 -10.937 0.000228298 +v -99.1222 -10.937 -7.42795 +v -98.2899 -10.937 -14.8146 +v -96.908 -10.937 -22.1184 +v -94.9841 -10.937 -29.2985 +v -92.529 -10.937 -36.3147 +v -89.5565 -10.937 -43.1278 +v -86.0832 -10.937 -49.6998 +v -82.1284 -10.937 -55.9938 +v -77.7143 -10.937 -61.9747 +v -72.8656 -10.937 -67.609 +v -67.6095 -10.937 -72.8652 +v -61.9752 -10.937 -77.7139 +v -55.9943 -10.937 -82.1281 +v -49.7003 -10.937 -86.0829 +v -43.1284 -10.937 -89.5563 +v -36.3152 -10.937 -92.5288 +v -29.299 -10.937 -94.9839 +v -22.1189 -10.937 -96.9079 +v -14.8151 -10.937 -98.2898 +v -7.42853 -10.937 -99.1221 +v -0.000330598 -10.937 -99.4001 +v 7.42782 -10.937 -99.1222 +v 14.8144 -10.937 -98.2899 +v 22.1182 -10.937 -96.908 +v 29.2983 -10.937 -94.9842 +v 36.3146 -10.937 -92.5291 +v 43.1277 -10.937 -89.5566 +v 49.6997 -10.937 -86.0832 +v 55.9937 -10.937 -82.1285 +v 61.9746 -10.937 -77.7144 +v 67.6089 -10.937 -72.8657 +v 72.8652 -10.937 -67.6095 +v 77.7139 -10.937 -61.9753 +v 82.128 -10.937 -55.9944 +v 86.0828 -10.937 -49.7004 +v 89.5562 -10.937 -43.1285 +v 92.5288 -10.937 -36.3154 +v 94.9839 -10.937 -29.2991 +v 96.9078 -10.937 -22.1191 +v 98.2898 -10.937 -14.8153 +v 99.1221 -10.937 -7.42865 +v 98.3366 -18.1635 5.88009e-39 +v 98.0616 -18.1635 7.3487 +v 97.2383 -18.1635 14.6563 +v 95.8711 -18.1635 21.8819 +v 93.9678 -18.1635 28.9852 +v 91.539 -18.1635 35.9264 +v 88.5982 -18.1635 42.6666 +v 85.162 -18.1635 49.1683 +v 81.2495 -18.1635 55.3949 +v 76.8827 -18.1635 61.3118 +v 72.0859 -18.1635 66.8858 +v 66.8859 -18.1635 72.0858 +v 61.3119 -18.1635 76.8826 +v 55.395 -18.1635 81.2495 +v 49.1684 -18.1635 85.1619 +v 42.6667 -18.1635 88.5982 +v 35.9265 -18.1635 91.5389 +v 28.9853 -18.1635 93.9678 +v 21.882 -18.1635 95.8711 +v 14.6564 -18.1635 97.2382 +v 7.34881 -18.1635 98.0616 +v 0.000112928 -18.1635 98.3366 +v -7.34859 -18.1635 98.0616 +v -14.6562 -18.1635 97.2383 +v -21.8818 -18.1635 95.8711 +v -28.9851 -18.1635 93.9678 +v -35.9263 -18.1635 91.539 +v -42.6665 -18.1635 88.5983 +v -49.1682 -18.1635 85.1621 +v -55.3948 -18.1635 81.2496 +v -61.3117 -18.1635 76.8828 +v -66.8857 -18.1635 72.0859 +v -72.0857 -18.1635 66.886 +v -76.8825 -18.1635 61.312 +v -81.2494 -18.1635 55.3951 +v -85.1619 -18.1635 49.1685 +v -88.5981 -18.1635 42.6668 +v -91.5389 -18.1635 35.9266 +v -93.9677 -18.1635 28.9854 +v -95.871 -18.1635 21.8822 +v -97.2382 -18.1635 14.6565 +v -98.0616 -18.1635 7.34892 +v -98.3366 -18.1635 0.000225856 +v -98.0616 -18.1635 -7.34847 +v -97.2383 -18.1635 -14.6561 +v -95.8711 -18.1635 -21.8817 +v -93.9678 -18.1635 -28.985 +v -91.539 -18.1635 -35.9262 +v -88.5983 -18.1635 -42.6664 +v -85.1621 -18.1635 -49.1681 +v -81.2497 -18.1635 -55.3947 +v -76.8828 -18.1635 -61.3116 +v -72.086 -18.1635 -66.8857 +v -66.8861 -18.1635 -72.0856 +v -61.3121 -18.1635 -76.8825 +v -55.3952 -18.1635 -81.2493 +v -49.1686 -18.1635 -85.1618 +v -42.6669 -18.1635 -88.5981 +v -35.9267 -18.1635 -91.5388 +v -28.9855 -18.1635 -93.9677 +v -21.8823 -18.1635 -95.871 +v -14.6566 -18.1635 -97.2382 +v -7.34905 -18.1635 -98.0616 +v -0.000327061 -18.1635 -98.3366 +v 7.34835 -18.1635 -98.0617 +v 14.6559 -18.1635 -97.2383 +v 21.8816 -18.1635 -95.8712 +v 28.9848 -18.1635 -93.9679 +v 35.926 -18.1635 -91.5391 +v 42.6663 -18.1635 -88.5984 +v 49.168 -18.1635 -85.1622 +v 55.3946 -18.1635 -81.2497 +v 61.3116 -18.1635 -76.8829 +v 66.8856 -18.1635 -72.0861 +v 72.0855 -18.1635 -66.8862 +v 76.8824 -18.1635 -61.3122 +v 81.2493 -18.1635 -55.3953 +v 85.1618 -18.1635 -49.1687 +v 88.598 -18.1635 -42.667 +v 91.5388 -18.1635 -35.9268 +v 93.9676 -18.1635 -28.9856 +v 95.871 -18.1635 -21.8824 +v 97.2382 -18.1635 -14.6567 +v 98.0616 -18.1635 -7.34917 +v 96.7484 -25.2932 5.88009e-39 +v 96.4779 -25.2932 7.23001 +v 95.6678 -25.2932 14.4196 +v 94.3227 -25.2932 21.5285 +v 92.4501 -25.2932 28.5171 +v 90.0606 -25.2932 35.3461 +v 87.1673 -25.2932 41.9775 +v 83.7866 -25.2932 48.3742 +v 79.9373 -25.2932 54.5003 +v 75.641 -25.2932 60.3216 +v 70.9216 -25.2932 65.8056 +v 65.8057 -25.2932 70.9216 +v 60.3217 -25.2932 75.6409 +v 54.5004 -25.2932 79.9372 +v 48.3743 -25.2932 83.7865 +v 41.9776 -25.2932 87.1673 +v 35.3462 -25.2932 90.0605 +v 28.5172 -25.2932 92.4501 +v 21.5286 -25.2932 94.3227 +v 14.4197 -25.2932 95.6678 +v 7.23012 -25.2932 96.4779 +v 0.000111104 -25.2932 96.7484 +v -7.2299 -25.2932 96.4779 +v -14.4195 -25.2932 95.6678 +v -21.5284 -25.2932 94.3228 +v -28.517 -25.2932 92.4502 +v -35.346 -25.2932 90.0606 +v -41.9774 -25.2932 87.1674 +v -48.3741 -25.2932 83.7867 +v -54.5002 -25.2932 79.9374 +v -60.3215 -25.2932 75.6411 +v -65.8055 -25.2932 70.9217 +v -70.9215 -25.2932 65.8058 +v -75.6408 -25.2932 60.3218 +v -79.9372 -25.2932 54.5005 +v -83.7865 -25.2932 48.3744 +v -87.1672 -25.2932 41.9777 +v -90.0605 -25.2932 35.3463 +v -92.4501 -25.2932 28.5173 +v -94.3227 -25.2932 21.5287 +v -95.6678 -25.2932 14.4198 +v -96.4779 -25.2932 7.23023 +v -96.7484 -25.2932 0.000222208 +v -96.4779 -25.2932 -7.22979 +v -95.6678 -25.2932 -14.4194 +v -94.3228 -25.2932 -21.5283 +v -92.4502 -25.2932 -28.5169 +v -90.0606 -25.2932 -35.3459 +v -87.1674 -25.2932 -41.9773 +v -83.7867 -25.2932 -48.374 +v -79.9374 -25.2932 -54.5001 +v -75.6411 -25.2932 -60.3214 +v -70.9218 -25.2932 -65.8054 +v -65.8058 -25.2932 -70.9214 +v -60.3219 -25.2932 -75.6408 +v -54.5006 -25.2932 -79.9371 +v -48.3745 -25.2932 -83.7864 +v -41.9778 -25.2932 -87.1672 +v -35.3465 -25.2932 -90.0604 +v -28.5174 -25.2932 -92.4501 +v -21.5289 -25.2932 -94.3226 +v -14.4199 -25.2932 -95.6678 +v -7.23036 -25.2932 -96.4779 +v -0.000321779 -25.2932 -96.7484 +v 7.22967 -25.2932 -96.4779 +v 14.4192 -25.2932 -95.6679 +v 21.5282 -25.2932 -94.3228 +v 28.5167 -25.2932 -92.4503 +v 35.3458 -25.2932 -90.0607 +v 41.9772 -25.2932 -87.1675 +v 48.3739 -25.2932 -83.7868 +v 54.5 -25.2932 -79.9375 +v 60.3213 -25.2932 -75.6412 +v 65.8053 -25.2932 -70.9219 +v 70.9213 -25.2932 -65.8059 +v 75.6407 -25.2932 -60.322 +v 79.9371 -25.2932 -54.5007 +v 83.7864 -25.2932 -48.3746 +v 87.1671 -25.2932 -41.9779 +v 90.0604 -25.2932 -35.3466 +v 92.45 -25.2932 -28.5175 +v 94.3226 -25.2932 -21.529 +v 95.6677 -25.2932 -14.42 +v 96.4778 -25.2932 -7.23048 +v 94.644 -32.2879 5.88009e-39 +v 94.3794 -32.2879 7.07275 +v 93.5869 -32.2879 14.1059 +v 92.2711 -32.2879 21.0603 +v 90.4393 -32.2879 27.8968 +v 88.1017 -32.2879 34.5773 +v 85.2713 -32.2879 41.0645 +v 81.9641 -32.2879 47.322 +v 78.1986 -32.2879 53.3148 +v 73.9957 -32.2879 59.0095 +v 69.379 -32.2879 64.3743 +v 64.3743 -32.2879 69.3789 +v 59.0096 -32.2879 73.9956 +v 53.3149 -32.2879 78.1985 +v 47.3221 -32.2879 81.9641 +v 41.0646 -32.2879 85.2713 +v 34.5774 -32.2879 88.1016 +v 27.8969 -32.2879 90.4392 +v 21.0604 -32.2879 92.2711 +v 14.1061 -32.2879 93.5869 +v 7.07286 -32.2879 94.3794 +v 0.000108687 -32.2879 94.644 +v -7.07264 -32.2879 94.3794 +v -14.1058 -32.2879 93.587 +v -21.0601 -32.2879 92.2711 +v -27.8967 -32.2879 90.4393 +v -34.5772 -32.2879 88.1017 +v -41.0644 -32.2879 85.2714 +v -47.3219 -32.2879 81.9642 +v -53.3148 -32.2879 78.1987 +v -59.0095 -32.2879 73.9958 +v -64.3742 -32.2879 69.3791 +v -69.3789 -32.2879 64.3744 +v -73.9956 -32.2879 59.0097 +v -78.1985 -32.2879 53.315 +v -81.964 -32.2879 47.3222 +v -85.2712 -32.2879 41.0647 +v -88.1016 -32.2879 34.5775 +v -90.4392 -32.2879 27.897 +v -92.2711 -32.2879 21.0605 +v -93.5869 -32.2879 14.1062 +v -94.3794 -32.2879 7.07297 +v -94.644 -32.2879 0.000217375 +v -94.3794 -32.2879 -7.07254 +v -93.587 -32.2879 -14.1057 +v -92.2712 -32.2879 -21.0601 +v -90.4393 -32.2879 -27.8966 +v -88.1017 -32.2879 -34.5771 +v -85.2714 -32.2879 -41.0643 +v -81.9643 -32.2879 -47.3218 +v -78.1987 -32.2879 -53.3147 +v -73.9959 -32.2879 -59.0094 +v -69.3792 -32.2879 -64.3741 +v -64.3745 -32.2879 -69.3788 +v -59.0098 -32.2879 -73.9955 +v -53.3151 -32.2879 -78.1984 +v -47.3223 -32.2879 -81.964 +v -41.0648 -32.2879 -85.2712 +v -34.5776 -32.2879 -88.1015 +v -27.8971 -32.2879 -90.4392 +v -21.0606 -32.2879 -92.271 +v -14.1063 -32.2879 -93.5869 +v -7.07309 -32.2879 -94.3794 +v -0.00031478 -32.2879 -94.644 +v 7.07242 -32.2879 -94.3794 +v 14.1056 -32.2879 -93.587 +v 21.0599 -32.2879 -92.2712 +v 27.8965 -32.2879 -90.4394 +v 34.577 -32.2879 -88.1018 +v 41.0642 -32.2879 -85.2715 +v 47.3217 -32.2879 -81.9643 +v 53.3146 -32.2879 -78.1988 +v 59.0093 -32.2879 -73.9959 +v 64.374 -32.2879 -69.3793 +v 69.3787 -32.2879 -64.3746 +v 73.9954 -32.2879 -59.0099 +v 78.1983 -32.2879 -53.3152 +v 81.9639 -32.2879 -47.3224 +v 85.2711 -32.2879 -41.0649 +v 88.1015 -32.2879 -34.5778 +v 90.4391 -32.2879 -27.8972 +v 92.271 -32.2879 -21.0607 +v 93.5869 -32.2879 -14.1064 +v 94.3793 -32.2879 -7.07321 +v 92.0347 -39.1103 5.88009e-39 +v 91.7773 -39.1103 6.87775 +v 91.0067 -39.1103 13.717 +v 89.7272 -39.1103 20.4796 +v 87.9458 -39.1103 27.1277 +v 85.6727 -39.1103 33.624 +v 82.9204 -39.1103 39.9323 +v 79.7044 -39.1103 46.0173 +v 76.0426 -39.1103 51.8449 +v 71.9556 -39.1103 57.3826 +v 67.4662 -39.1103 62.5994 +v 62.5995 -39.1103 67.4662 +v 57.3827 -39.1103 71.9556 +v 51.845 -39.1103 76.0426 +v 46.0174 -39.1103 79.7043 +v 39.9324 -39.1103 82.9203 +v 33.6241 -39.1103 85.6726 +v 27.1278 -39.1103 87.9458 +v 20.4797 -39.1103 89.7271 +v 13.7172 -39.1103 91.0067 +v 6.87786 -39.1103 91.7773 +v 0.000105691 -39.1103 92.0347 +v -6.87765 -39.1103 91.7773 +v -13.7169 -39.1103 91.0067 +v -20.4795 -39.1103 89.7272 +v -27.1276 -39.1103 87.9459 +v -33.6239 -39.1103 85.6727 +v -39.9322 -39.1103 82.9204 +v -46.0172 -39.1103 79.7044 +v -51.8449 -39.1103 76.0427 +v -57.3826 -39.1103 71.9557 +v -62.5994 -39.1103 67.4663 +v -67.4661 -39.1103 62.5996 +v -71.9555 -39.1103 57.3828 +v -76.0425 -39.1103 51.8451 +v -79.7043 -39.1103 46.0175 +v -82.9203 -39.1103 39.9325 +v -85.6726 -39.1103 33.6242 +v -87.9458 -39.1103 27.1279 +v -89.7271 -39.1103 20.4798 +v -91.0067 -39.1103 13.7173 +v -91.7773 -39.1103 6.87797 +v -92.0347 -39.1103 0.000211382 +v -91.7773 -39.1103 -6.87754 +v -91.0068 -39.1103 -13.7168 +v -89.7272 -39.1103 -20.4794 +v -87.9459 -39.1103 -27.1275 +v -85.6728 -39.1103 -33.6238 +v -82.9205 -39.1103 -39.9321 +v -79.7045 -39.1103 -46.0171 +v -76.0428 -39.1103 -51.8448 +v -71.9558 -39.1103 -57.3825 +v -67.4664 -39.1103 -62.5993 +v -62.5997 -39.1103 -67.466 +v -57.3829 -39.1103 -71.9554 +v -51.8452 -39.1103 -76.0425 +v -46.0176 -39.1103 -79.7042 +v -39.9326 -39.1103 -82.9203 +v -33.6243 -39.1103 -85.6726 +v -27.128 -39.1103 -87.9457 +v -20.4799 -39.1103 -89.7271 +v -13.7174 -39.1103 -91.0067 +v -6.87808 -39.1103 -91.7773 +v -0.000306101 -39.1103 -92.0347 +v 6.87743 -39.1103 -91.7774 +v 13.7167 -39.1103 -91.0068 +v 20.4793 -39.1103 -89.7272 +v 27.1273 -39.1103 -87.9459 +v 33.6237 -39.1103 -85.6728 +v 39.932 -39.1103 -82.9205 +v 46.017 -39.1103 -79.7045 +v 51.8447 -39.1103 -76.0428 +v 57.3824 -39.1103 -71.9558 +v 62.5992 -39.1103 -67.4665 +v 67.4659 -39.1103 -62.5998 +v 71.9554 -39.1103 -57.383 +v 76.0424 -39.1103 -51.8453 +v 79.7042 -39.1103 -46.0177 +v 82.9202 -39.1103 -39.9327 +v 85.6725 -39.1103 -33.6244 +v 87.9457 -39.1103 -27.1281 +v 89.7271 -39.1103 -20.4801 +v 91.0067 -39.1103 -13.7175 +v 91.7773 -39.1103 -6.8782 +v 88.9343 -45.7241 5.88009e-39 +v 88.6856 -45.7241 6.64606 +v 87.941 -45.7241 13.255 +v 86.7045 -45.7241 19.7897 +v 84.9832 -45.7241 26.2138 +v 82.7866 -45.7241 32.4913 +v 80.127 -45.7241 38.5871 +v 77.0194 -45.7241 44.4671 +v 73.481 -45.7241 50.0984 +v 69.5317 -45.7241 55.4496 +v 65.1935 -45.7241 60.4906 +v 60.4907 -45.7241 65.1934 +v 55.4497 -45.7241 69.5316 +v 50.0985 -45.7241 73.4809 +v 44.4672 -45.7241 77.0193 +v 38.5872 -45.7241 80.127 +v 32.4914 -45.7241 82.7866 +v 26.2139 -45.7241 84.9832 +v 19.7898 -45.7241 86.7045 +v 13.2551 -45.7241 87.9409 +v 6.64617 -45.7241 88.6856 +v 0.00010213 -45.7241 88.9343 +v -6.64596 -45.7241 88.6856 +v -13.2549 -45.7241 87.941 +v -19.7896 -45.7241 86.7045 +v -26.2137 -45.7241 84.9832 +v -32.4912 -45.7241 82.7866 +v -38.587 -45.7241 80.1271 +v -44.467 -45.7241 77.0194 +v -50.0983 -45.7241 73.481 +v -55.4495 -45.7241 69.5317 +v -60.4906 -45.7241 65.1936 +v -65.1933 -45.7241 60.4908 +v -69.5315 -45.7241 55.4497 +v -73.4809 -45.7241 50.0986 +v -77.0193 -45.7241 44.4673 +v -80.1269 -45.7241 38.5873 +v -82.7865 -45.7241 32.4915 +v -84.9831 -45.7241 26.214 +v -86.7045 -45.7241 19.7899 +v -87.9409 -45.7241 13.2552 +v -88.6856 -45.7241 6.64627 +v -88.9343 -45.7241 0.000204261 +v -88.6856 -45.7241 -6.64586 +v -87.941 -45.7241 -13.2548 +v -86.7046 -45.7241 -19.7895 +v -84.9833 -45.7241 -26.2136 +v -82.7867 -45.7241 -32.4911 +v -80.1271 -45.7241 -38.5869 +v -77.0195 -45.7241 -44.4669 +v -73.4811 -45.7241 -50.0983 +v -69.5318 -45.7241 -55.4494 +v -65.1936 -45.7241 -60.4905 +v -60.4909 -45.7241 -65.1933 +v -55.4498 -45.7241 -69.5315 +v -50.0987 -45.7241 -73.4808 +v -44.4674 -45.7241 -77.0192 +v -38.5874 -45.7241 -80.1269 +v -32.4916 -45.7241 -82.7865 +v -26.2141 -45.7241 -84.9831 +v -19.79 -45.7241 -86.7045 +v -13.2553 -45.7241 -87.9409 +v -6.64638 -45.7241 -88.6856 +v -0.00029579 -45.7241 -88.9343 +v 6.64575 -45.7241 -88.6856 +v 13.2546 -45.7241 -87.941 +v 19.7894 -45.7241 -86.7046 +v 26.2135 -45.7241 -84.9833 +v 32.491 -45.7241 -82.7867 +v 38.5868 -45.7241 -80.1272 +v 44.4668 -45.7241 -77.0195 +v 50.0982 -45.7241 -73.4812 +v 55.4493 -45.7241 -69.5318 +v 60.4904 -45.7241 -65.1937 +v 65.1932 -45.7241 -60.4909 +v 69.5314 -45.7241 -55.4499 +v 73.4807 -45.7241 -50.0988 +v 77.0191 -45.7241 -44.4675 +v 80.1269 -45.7241 -38.5875 +v 82.7864 -45.7241 -32.4917 +v 84.9831 -45.7241 -26.2142 +v 86.7044 -45.7241 -19.7901 +v 87.9409 -45.7241 -13.2554 +v 88.6856 -45.7241 -6.64649 +v 85.3594 -52.0939 5.88009e-39 +v 85.1207 -52.0939 6.37891 +v 84.406 -52.0939 12.7221 +v 83.2193 -52.0939 18.9942 +v 81.5671 -52.0939 25.1601 +v 79.4588 -52.0939 31.1853 +v 76.9062 -52.0939 37.036 +v 73.9234 -52.0939 42.6797 +v 70.5273 -52.0939 48.0846 +v 66.7367 -52.0939 53.2207 +v 62.5729 -52.0939 58.0591 +v 58.0592 -52.0939 62.5728 +v 53.2208 -52.0939 66.7366 +v 48.0847 -52.0939 70.5272 +v 42.6798 -52.0939 73.9234 +v 37.0361 -52.0939 76.9061 +v 31.1854 -52.0939 79.4588 +v 25.1602 -52.0939 81.5671 +v 18.9943 -52.0939 83.2192 +v 12.7222 -52.0939 84.406 +v 6.37901 -52.0939 85.1207 +v 9.80252e-05 -52.0939 85.3594 +v -6.37881 -52.0939 85.1207 +v -12.7221 -52.0939 84.406 +v -18.9941 -52.0939 83.2193 +v -25.16 -52.0939 81.5672 +v -31.1852 -52.0939 79.4589 +v -37.0359 -52.0939 76.9062 +v -42.6796 -52.0939 73.9235 +v -48.0845 -52.0939 70.5273 +v -53.2206 -52.0939 66.7368 +v -58.059 -52.0939 62.573 +v -62.5728 -52.0939 58.0592 +v -66.7366 -52.0939 53.2208 +v -70.5272 -52.0939 48.0848 +v -73.9233 -52.0939 42.6798 +v -76.9061 -52.0939 37.0362 +v -79.4588 -52.0939 31.1855 +v -81.5671 -52.0939 25.1603 +v -83.2192 -52.0939 18.9944 +v -84.406 -52.0939 12.7223 +v -85.1207 -52.0939 6.37911 +v -85.3594 -52.0939 0.00019605 +v -85.1207 -52.0939 -6.37872 +v -84.406 -52.0939 -12.722 +v -83.2193 -52.0939 -18.994 +v -81.5672 -52.0939 -25.1599 +v -79.4589 -52.0939 -31.1851 +v -76.9063 -52.0939 -37.0358 +v -73.9235 -52.0939 -42.6795 +v -70.5274 -52.0939 -48.0845 +v -66.7368 -52.0939 -53.2205 +v -62.573 -52.0939 -58.0589 +v -58.0593 -52.0939 -62.5727 +v -53.2209 -52.0939 -66.7365 +v -48.0849 -52.0939 -70.5271 +v -42.6799 -52.0939 -73.9233 +v -37.0363 -52.0939 -76.906 +v -31.1856 -52.0939 -79.4587 +v -25.1604 -52.0939 -81.567 +v -18.9945 -52.0939 -83.2192 +v -12.7224 -52.0939 -84.406 +v -6.37922 -52.0939 -85.1207 +v -0.0002839 -52.0939 -85.3594 +v 6.37861 -52.0939 -85.1207 +v 12.7218 -52.0939 -84.4061 +v 18.9939 -52.0939 -83.2193 +v 25.1598 -52.0939 -81.5672 +v 31.185 -52.0939 -79.4589 +v 37.0357 -52.0939 -76.9063 +v 42.6794 -52.0939 -73.9236 +v 48.0844 -52.0939 -70.5274 +v 53.2204 -52.0939 -66.7369 +v 58.0589 -52.0939 -62.5731 +v 62.5726 -52.0939 -58.0594 +v 66.7364 -52.0939 -53.221 +v 70.527 -52.0939 -48.085 +v 73.9232 -52.0939 -42.68 +v 76.906 -52.0939 -37.0364 +v 79.4587 -52.0939 -31.1857 +v 81.567 -52.0939 -25.1605 +v 83.2192 -52.0939 -18.9946 +v 84.4059 -52.0939 -12.7225 +v 85.1207 -52.0939 -6.37932 +v 81.3291 -58.1857 5.88009e-39 +v 81.1017 -58.1857 6.07772 +v 80.4207 -58.1857 12.1215 +v 79.29 -58.1857 18.0974 +v 77.7159 -58.1857 23.9721 +v 75.7071 -58.1857 29.7128 +v 73.275 -58.1857 35.2873 +v 70.4331 -58.1857 40.6645 +v 67.1973 -58.1857 45.8143 +v 63.5857 -58.1857 50.7078 +v 59.6185 -58.1857 55.3178 +v 55.3179 -58.1857 59.6184 +v 50.7079 -58.1857 63.5856 +v 45.8144 -58.1857 67.1972 +v 40.6646 -58.1857 70.433 +v 35.2874 -58.1857 73.2749 +v 29.7129 -58.1857 75.7071 +v 23.9722 -58.1857 77.7158 +v 18.0975 -58.1857 79.29 +v 12.1216 -58.1857 80.4207 +v 6.07782 -58.1857 81.1017 +v 9.33968e-05 -58.1857 81.3291 +v -6.07763 -58.1857 81.1017 +v -12.1214 -58.1857 80.4207 +v -18.0973 -58.1857 79.29 +v -23.9721 -58.1857 77.7159 +v -29.7127 -58.1857 75.7071 +v -35.2873 -58.1857 73.275 +v -40.6644 -58.1857 70.4331 +v -45.8142 -58.1857 67.1973 +v -50.7077 -58.1857 63.5857 +v -55.3177 -58.1857 59.6185 +v -59.6183 -58.1857 55.3179 +v -63.5855 -58.1857 50.708 +v -67.1972 -58.1857 45.8144 +v -70.433 -58.1857 40.6647 +v -73.2749 -58.1857 35.2875 +v -75.707 -58.1857 29.713 +v -77.7158 -58.1857 23.9723 +v -79.2899 -58.1857 18.0976 +v -80.4207 -58.1857 12.1216 +v -81.1017 -58.1857 6.07791 +v -81.3291 -58.1857 0.000186794 +v -81.1017 -58.1857 -6.07754 +v -80.4207 -58.1857 -12.1213 +v -79.29 -58.1857 -18.0972 +v -77.7159 -58.1857 -23.972 +v -75.7072 -58.1857 -29.7127 +v -73.2751 -58.1857 -35.2872 +v -70.4332 -58.1857 -40.6643 +v -67.1974 -58.1857 -45.8141 +v -63.5858 -58.1857 -50.7077 +v -59.6186 -58.1857 -55.3176 +v -55.318 -58.1857 -59.6183 +v -50.708 -58.1857 -63.5855 +v -45.8145 -58.1857 -67.1971 +v -40.6648 -58.1857 -70.4329 +v -35.2876 -58.1857 -73.2749 +v -29.7131 -58.1857 -75.707 +v -23.9724 -58.1857 -77.7158 +v -18.0977 -58.1857 -79.2899 +v -12.1217 -58.1857 -80.4207 +v -6.07801 -58.1857 -81.1016 +v -0.000270495 -58.1857 -81.3291 +v 6.07744 -58.1857 -81.1017 +v 12.1212 -58.1857 -80.4207 +v 18.0971 -58.1857 -79.2901 +v 23.9719 -58.1857 -77.716 +v 29.7126 -58.1857 -75.7072 +v 35.2871 -58.1857 -73.2751 +v 40.6643 -58.1857 -70.4332 +v 45.814 -58.1857 -67.1974 +v 50.7076 -58.1857 -63.5858 +v 55.3176 -58.1857 -59.6187 +v 59.6182 -58.1857 -55.3181 +v 63.5854 -58.1857 -50.7081 +v 67.197 -58.1857 -45.8146 +v 70.4329 -58.1857 -40.6649 +v 73.2748 -58.1857 -35.2877 +v 75.707 -58.1857 -29.7132 +v 77.7158 -58.1857 -23.9725 +v 79.2899 -58.1857 -18.0978 +v 80.4206 -58.1857 -12.1218 +v 81.1016 -58.1857 -6.07812 +v 76.8648 -63.9672 5.88009e-39 +v 76.6499 -63.9672 5.74411 +v 76.0063 -63.9672 11.4561 +v 74.9377 -63.9672 17.104 +v 73.4499 -63.9672 22.6563 +v 71.5515 -63.9672 28.0819 +v 69.2528 -63.9672 33.3504 +v 66.5669 -63.9672 38.4324 +v 63.5087 -63.9672 43.2995 +v 60.0954 -63.9672 47.9244 +v 56.3459 -63.9672 52.2813 +v 52.2814 -63.9672 56.3459 +v 47.9245 -63.9672 60.0953 +v 43.2995 -63.9672 63.5087 +v 38.4325 -63.9672 66.5669 +v 33.3505 -63.9672 69.2528 +v 28.0819 -63.9672 71.5514 +v 22.6564 -63.9672 73.4499 +v 17.1041 -63.9672 74.9377 +v 11.4562 -63.9672 76.0063 +v 5.7442 -63.9672 76.6499 +v 8.82701e-05 -63.9672 76.8648 +v -5.74402 -63.9672 76.6499 +v -11.456 -63.9672 76.0063 +v -17.1039 -63.9672 74.9377 +v -22.6562 -63.9672 73.45 +v -28.0818 -63.9672 71.5515 +v -33.3503 -63.9672 69.2529 +v -38.4323 -63.9672 66.567 +v -43.2994 -63.9672 63.5088 +v -47.9243 -63.9672 60.0954 +v -52.2813 -63.9672 56.346 +v -56.3458 -63.9672 52.2815 +v -60.0953 -63.9672 47.9245 +v -63.5086 -63.9672 43.2996 +v -66.5668 -63.9672 38.4325 +v -69.2528 -63.9672 33.3505 +v -71.5514 -63.9672 28.082 +v -73.4499 -63.9672 22.6565 +v -74.9376 -63.9672 17.1042 +v -76.0063 -63.9672 11.4563 +v -76.6499 -63.9672 5.74429 +v -76.8648 -63.9672 0.00017654 +v -76.6499 -63.9672 -5.74394 +v -76.0063 -63.9672 -11.4559 +v -74.9377 -63.9672 -17.1039 +v -73.45 -63.9672 -22.6561 +v -71.5515 -63.9672 -28.0817 +v -69.2529 -63.9672 -33.3502 +v -66.567 -63.9672 -38.4322 +v -63.5088 -63.9672 -43.2993 +v -60.0955 -63.9672 -47.9243 +v -56.3461 -63.9672 -52.2812 +v -52.2815 -63.9672 -56.3457 +v -47.9246 -63.9672 -60.0952 +v -43.2997 -63.9672 -63.5086 +v -38.4326 -63.9672 -66.5668 +v -33.3506 -63.9672 -69.2527 +v -28.0821 -63.9672 -71.5514 +v -22.6565 -63.9672 -73.4499 +v -17.1043 -63.9672 -74.9376 +v -11.4564 -63.9672 -76.0063 +v -5.74439 -63.9672 -76.6499 +v -0.000255647 -63.9672 -76.8648 +v 5.74384 -63.9672 -76.6499 +v 11.4558 -63.9672 -76.0064 +v 17.1038 -63.9672 -74.9377 +v 22.656 -63.9672 -73.45 +v 28.0816 -63.9672 -71.5516 +v 33.3501 -63.9672 -69.253 +v 38.4322 -63.9672 -66.567 +v 43.2992 -63.9672 -63.5089 +v 47.9242 -63.9672 -60.0955 +v 52.2811 -63.9672 -56.3461 +v 56.3457 -63.9672 -52.2816 +v 60.0951 -63.9672 -47.9247 +v 63.5085 -63.9672 -43.2998 +v 66.5667 -63.9672 -38.4327 +v 69.2527 -63.9672 -33.3507 +v 71.5513 -63.9672 -28.0822 +v 73.4498 -63.9672 -22.6566 +v 74.9376 -63.9672 -17.1044 +v 76.0063 -63.9672 -11.4565 +v 76.6499 -63.9672 -5.74448 +v 71.9905 -69.4073 5.88009e-39 +v 71.7892 -69.4073 5.37985 +v 71.1864 -69.4073 10.7296 +v 70.1855 -69.4073 16.0194 +v 68.7921 -69.4073 21.2196 +v 67.0141 -69.4073 26.3011 +v 64.8612 -69.4073 31.2355 +v 62.3456 -69.4073 35.9952 +v 59.4813 -69.4073 40.5537 +v 56.2844 -69.4073 44.8853 +v 52.7728 -69.4073 48.9659 +v 48.966 -69.4073 52.7727 +v 44.8854 -69.4073 56.2844 +v 40.5537 -69.4073 59.4813 +v 35.9953 -69.4073 62.3456 +v 31.2356 -69.4073 64.8612 +v 26.3011 -69.4073 67.014 +v 21.2196 -69.4073 68.7921 +v 16.0195 -69.4073 70.1855 +v 10.7297 -69.4073 71.1864 +v 5.37993 -69.4073 71.7892 +v 8.26725e-05 -69.4073 71.9905 +v -5.37977 -69.4073 71.7892 +v -10.7295 -69.4073 71.1864 +v -16.0193 -69.4073 70.1855 +v -21.2195 -69.4073 68.7922 +v -26.301 -69.4073 67.0141 +v -31.2354 -69.4073 64.8612 +v -35.9951 -69.4073 62.3456 +v -40.5536 -69.4073 59.4814 +v -44.8852 -69.4073 56.2845 +v -48.9659 -69.4073 52.7728 +v -52.7727 -69.4073 48.9661 +v -56.2843 -69.4073 44.8854 +v -59.4812 -69.4073 40.5538 +v -62.3455 -69.4073 35.9954 +v -64.8611 -69.4073 31.2356 +v -67.014 -69.4073 26.3012 +v -68.7921 -69.4073 21.2197 +v -70.1855 -69.4073 16.0195 +v -71.1864 -69.4073 10.7298 +v -71.7892 -69.4073 5.38002 +v -71.9905 -69.4073 0.000165345 +v -71.7892 -69.4073 -5.37969 +v -71.1864 -69.4073 -10.7295 +v -70.1856 -69.4073 -16.0192 +v -68.7922 -69.4073 -21.2194 +v -67.0141 -69.4073 -26.3009 +v -64.8613 -69.4073 -31.2353 +v -62.3457 -69.4073 -35.9951 +v -59.4814 -69.4073 -40.5535 +v -56.2846 -69.4073 -44.8852 +v -52.7729 -69.4073 -48.9658 +v -48.9661 -69.4073 -52.7726 +v -44.8855 -69.4073 -56.2843 +v -40.5539 -69.4073 -59.4812 +v -35.9954 -69.4073 -62.3455 +v -31.2357 -69.4073 -64.8611 +v -26.3013 -69.4073 -67.014 +v -21.2198 -69.4073 -68.7921 +v -16.0196 -69.4073 -70.1855 +v -10.7299 -69.4073 -71.1864 +v -5.38011 -69.4073 -71.7892 +v -0.000239436 -69.4073 -71.9905 +v 5.3796 -69.4073 -71.7892 +v 10.7293 -69.4073 -71.1864 +v 16.0191 -69.4073 -70.1856 +v 21.2193 -69.4073 -68.7922 +v 26.3008 -69.4073 -67.0141 +v 31.2352 -69.4073 -64.8613 +v 35.995 -69.4073 -62.3457 +v 40.5534 -69.4073 -59.4815 +v 44.8851 -69.4073 -56.2846 +v 48.9657 -69.4073 -52.773 +v 52.7726 -69.4073 -48.9662 +v 56.2842 -69.4073 -44.8856 +v 59.4812 -69.4073 -40.5539 +v 62.3454 -69.4073 -35.9955 +v 64.861 -69.4073 -31.2358 +v 67.0139 -69.4073 -26.3014 +v 68.7921 -69.4073 -21.2199 +v 70.1855 -69.4073 -16.0197 +v 71.1864 -69.4073 -10.7299 +v 71.7892 -69.4073 -5.3802 +v 66.732 -74.4771 5.88009e-39 +v 66.5454 -74.4771 4.98689 +v 65.9867 -74.4771 9.94588 +v 65.0589 -74.4771 14.8493 +v 63.7673 -74.4771 19.6696 +v 62.1191 -74.4771 24.3799 +v 60.1235 -74.4771 28.9539 +v 57.7916 -74.4771 33.366 +v 55.1366 -74.4771 37.5915 +v 52.1732 -74.4771 41.6067 +v 48.9181 -74.4771 45.3893 +v 45.3893 -74.4771 48.918 +v 41.6068 -74.4771 52.1732 +v 37.5915 -74.4771 55.1366 +v 33.3661 -74.4771 57.7916 +v 28.954 -74.4771 60.1234 +v 24.38 -74.4771 62.1191 +v 19.6697 -74.4771 63.7673 +v 14.8493 -74.4771 65.0589 +v 9.94596 -74.4771 65.9867 +v 4.98696 -74.4771 66.5454 +v 7.66338e-05 -74.4771 66.732 +v -4.98681 -74.4771 66.5454 +v -9.94581 -74.4771 65.9867 +v -14.8492 -74.4771 65.0589 +v -19.6695 -74.4771 63.7673 +v -24.3799 -74.4771 62.1191 +v -28.9538 -74.4771 60.1235 +v -33.3659 -74.4771 57.7917 +v -37.5914 -74.4771 55.1366 +v -41.6066 -74.4771 52.1733 +v -45.3892 -74.4771 48.9181 +v -48.9179 -74.4771 45.3894 +v -52.1731 -74.4771 41.6068 +v -55.1365 -74.4771 37.5916 +v -57.7916 -74.4771 33.3661 +v -60.1234 -74.4771 28.9541 +v -62.119 -74.4771 24.3801 +v -63.7673 -74.4771 19.6697 +v -65.0589 -74.4771 14.8494 +v -65.9867 -74.4771 9.94604 +v -66.5454 -74.4771 4.98704 +v -66.732 -74.4771 0.000153268 +v -66.5454 -74.4771 -4.98673 +v -65.9867 -74.4771 -9.94573 +v -65.0589 -74.4771 -14.8491 +v -63.7673 -74.4771 -19.6694 +v -62.1191 -74.4771 -24.3798 +v -60.1236 -74.4771 -28.9538 +v -57.7917 -74.4771 -33.3658 +v -55.1367 -74.4771 -37.5913 +v -52.1733 -74.4771 -41.6066 +v -48.9182 -74.4771 -45.3892 +v -45.3895 -74.4771 -48.9179 +v -41.6069 -74.4771 -52.1731 +v -37.5916 -74.4771 -55.1365 +v -33.3662 -74.4771 -57.7915 +v -28.9541 -74.4771 -60.1234 +v -24.3801 -74.4771 -62.119 +v -19.6698 -74.4771 -63.7672 +v -14.8495 -74.4771 -65.0589 +v -9.9461 -74.4771 -65.9866 +v -4.98712 -74.4771 -66.5454 +v -0.000221946 -74.4771 -66.732 +v 4.98665 -74.4771 -66.5454 +v 9.94563 -74.4771 -65.9867 +v 14.849 -74.4771 -65.059 +v 19.6694 -74.4771 -63.7674 +v 24.3797 -74.4771 -62.1192 +v 28.9537 -74.4771 -60.1236 +v 33.3658 -74.4771 -57.7918 +v 37.5913 -74.4771 -55.1367 +v 41.6065 -74.4771 -52.1734 +v 45.3891 -74.4771 -48.9182 +v 48.9178 -74.4771 -45.3895 +v 52.173 -74.4771 -41.607 +v 55.1364 -74.4771 -37.5917 +v 57.7915 -74.4771 -33.3663 +v 60.1233 -74.4771 -28.9542 +v 62.119 -74.4771 -24.3802 +v 63.7672 -74.4771 -19.6699 +v 65.0588 -74.4771 -14.8496 +v 65.9866 -74.4771 -9.94619 +v 66.5454 -74.4771 -4.98721 +v 61.1175 -79.1495 5.88009e-39 +v 60.9466 -79.1495 4.56731 +v 60.4349 -79.1495 9.10909 +v 59.5852 -79.1495 13.5999 +v 58.4022 -79.1495 18.0147 +v 56.8927 -79.1495 22.3287 +v 55.065 -79.1495 26.5179 +v 52.9293 -79.1495 30.5587 +v 50.4977 -79.1495 34.4287 +v 47.7836 -79.1495 38.1061 +v 44.8023 -79.1495 41.5704 +v 41.5705 -79.1495 44.8023 +v 38.1062 -79.1495 47.7836 +v 34.4288 -79.1495 50.4976 +v 30.5588 -79.1495 52.9293 +v 26.5179 -79.1495 55.065 +v 22.3288 -79.1495 56.8927 +v 18.0148 -79.1495 58.4022 +v 13.6 -79.1495 59.5852 +v 9.10916 -79.1495 60.4349 +v 4.56738 -79.1495 60.9466 +v 7.01862e-05 -79.1495 61.1175 +v -4.56725 -79.1495 60.9466 +v -9.10902 -79.1495 60.4349 +v -13.5998 -79.1495 59.5852 +v -18.0146 -79.1495 58.4023 +v -22.3287 -79.1495 56.8927 +v -26.5178 -79.1495 55.065 +v -30.5587 -79.1495 52.9294 +v -34.4286 -79.1495 50.4977 +v -38.1061 -79.1495 47.7837 +v -41.5704 -79.1495 44.8024 +v -44.8022 -79.1495 41.5706 +v -47.7835 -79.1495 38.1062 +v -50.4976 -79.1495 34.4288 +v -52.9293 -79.1495 30.5589 +v -55.0649 -79.1495 26.518 +v -56.8926 -79.1495 22.3289 +v -58.4022 -79.1495 18.0148 +v -59.5851 -79.1495 13.6001 +v -60.4349 -79.1495 9.10923 +v -60.9466 -79.1495 4.56745 +v -61.1175 -79.1495 0.000140372 +v -60.9466 -79.1495 -4.56717 +v -60.4349 -79.1495 -9.10895 +v -59.5852 -79.1495 -13.5998 +v -58.4023 -79.1495 -18.0146 +v -56.8927 -79.1495 -22.3286 +v -55.0651 -79.1495 -26.5177 +v -52.9294 -79.1495 -30.5586 +v -50.4978 -79.1495 -34.4286 +v -47.7837 -79.1495 -38.106 +v -44.8024 -79.1495 -41.5703 +v -41.5706 -79.1495 -44.8022 +v -38.1063 -79.1495 -47.7835 +v -34.4289 -79.1495 -50.4976 +v -30.5589 -79.1495 -52.9292 +v -26.5181 -79.1495 -55.0649 +v -22.3289 -79.1495 -56.8926 +v -18.0149 -79.1495 -58.4022 +v -13.6001 -79.1495 -59.5851 +v -9.10929 -79.1495 -60.4349 +v -4.56753 -79.1495 -60.9466 +v -0.000203273 -79.1495 -61.1175 +v 4.5671 -79.1495 -60.9466 +v 9.10886 -79.1495 -60.4349 +v 13.5997 -79.1495 -59.5852 +v 18.0145 -79.1495 -58.4023 +v 22.3285 -79.1495 -56.8928 +v 26.5177 -79.1495 -55.0651 +v 30.5586 -79.1495 -52.9294 +v 34.4285 -79.1495 -50.4978 +v 38.106 -79.1495 -47.7838 +v 41.5703 -79.1495 -44.8025 +v 44.8021 -79.1495 -41.5707 +v 47.7834 -79.1495 -38.1064 +v 50.4975 -79.1495 -34.4289 +v 52.9292 -79.1495 -30.559 +v 55.0649 -79.1495 -26.5181 +v 56.8926 -79.1495 -22.329 +v 58.4022 -79.1495 -18.015 +v 59.5851 -79.1495 -13.6002 +v 60.4348 -79.1495 -9.10937 +v 60.9466 -79.1495 -4.56761 +v 55.1769 -83.3997 5.88009e-39 +v 55.0226 -83.3997 4.12337 +v 54.5607 -83.3997 8.22369 +v 53.7935 -83.3997 12.278 +v 52.7256 -83.3997 16.2637 +v 51.3628 -83.3997 20.1584 +v 49.7127 -83.3997 23.9404 +v 47.7846 -83.3997 27.5884 +v 45.5893 -83.3997 31.0823 +v 43.1391 -83.3997 34.4022 +v 40.4476 -83.3997 37.5298 +v 37.5299 -83.3997 40.4475 +v 34.4023 -83.3997 43.139 +v 31.0823 -83.3997 45.5893 +v 27.5885 -83.3997 47.7846 +v 23.9404 -83.3997 49.7127 +v 20.1584 -83.3997 51.3627 +v 16.2637 -83.3997 52.7256 +v 12.2781 -83.3997 53.7935 +v 8.22375 -83.3997 54.5606 +v 4.12344 -83.3997 55.0226 +v 6.33642e-05 -83.3997 55.1769 +v -4.12331 -83.3997 55.0227 +v -8.22363 -83.3997 54.5607 +v -12.2779 -83.3997 53.7935 +v -16.2636 -83.3997 52.7256 +v -20.1583 -83.3997 51.3628 +v -23.9403 -83.3997 49.7127 +v -27.5884 -83.3997 47.7847 +v -31.0822 -83.3997 45.5894 +v -34.4022 -83.3997 43.1391 +v -37.5298 -83.3997 40.4476 +v -40.4475 -83.3997 37.5299 +v -43.139 -83.3997 34.4023 +v -45.5893 -83.3997 31.0824 +v -47.7846 -83.3997 27.5886 +v -49.7127 -83.3997 23.9405 +v -51.3627 -83.3997 20.1585 +v -52.7255 -83.3997 16.2638 +v -53.7935 -83.3997 12.2781 +v -54.5606 -83.3997 8.22381 +v -55.0226 -83.3997 4.1235 +v -55.1769 -83.3997 0.000126728 +v -55.0227 -83.3997 -4.12325 +v -54.5607 -83.3997 -8.22356 +v -53.7936 -83.3997 -12.2779 +v -52.7256 -83.3997 -16.2636 +v -51.3628 -83.3997 -20.1583 +v -49.7128 -83.3997 -23.9402 +v -47.7847 -83.3997 -27.5883 +v -45.5894 -83.3997 -31.0821 +v -43.1392 -83.3997 -34.4021 +v -40.4477 -83.3997 -37.5297 +v -37.53 -83.3997 -40.4474 +v -34.4024 -83.3997 -43.139 +v -31.0824 -83.3997 -45.5892 +v -27.5886 -83.3997 -47.7845 +v -23.9405 -83.3997 -49.7126 +v -20.1586 -83.3997 -51.3627 +v -16.2639 -83.3997 -52.7255 +v -12.2782 -83.3997 -53.7935 +v -8.22387 -83.3997 -54.5606 +v -4.12357 -83.3997 -55.0226 +v -0.000183515 -83.3997 -55.1769 +v 4.12318 -83.3997 -55.0227 +v 8.22348 -83.3997 -54.5607 +v 12.2778 -83.3997 -53.7936 +v 16.2635 -83.3997 -52.7256 +v 20.1582 -83.3997 -51.3628 +v 23.9402 -83.3997 -49.7128 +v 27.5883 -83.3997 -47.7847 +v 31.0821 -83.3997 -45.5895 +v 34.4021 -83.3997 -43.1392 +v 37.5297 -83.3997 -40.4477 +v 40.4474 -83.3997 -37.53 +v 43.1389 -83.3997 -34.4024 +v 45.5892 -83.3997 -31.0825 +v 47.7845 -83.3997 -27.5887 +v 49.7126 -83.3997 -23.9406 +v 51.3627 -83.3997 -20.1586 +v 52.7255 -83.3997 -16.2639 +v 53.7935 -83.3997 -12.2783 +v 54.5606 -83.3997 -8.22394 +v 55.0226 -83.3997 -4.12364 +v 48.942 -87.2048 5.88009e-39 +v 48.8051 -87.2048 3.65744 +v 48.3953 -87.2048 7.29442 +v 47.7149 -87.2048 10.8906 +v 46.7676 -87.2048 14.4259 +v 45.5588 -87.2048 17.8805 +v 44.0952 -87.2048 21.2351 +v 42.385 -87.2048 24.471 +v 40.4378 -87.2048 27.57 +v 38.2644 -87.2048 30.5148 +v 35.877 -87.2048 33.289 +v 33.289 -87.2048 35.877 +v 30.5148 -87.2048 38.2644 +v 27.57 -87.2048 40.4377 +v 24.471 -87.2048 42.385 +v 21.2352 -87.2048 44.0952 +v 17.8806 -87.2048 45.5588 +v 14.4259 -87.2048 46.7676 +v 10.8907 -87.2048 47.7149 +v 7.29447 -87.2048 48.3953 +v 3.65749 -87.2048 48.8051 +v 5.62041e-05 -87.2048 48.942 +v -3.65738 -87.2048 48.8051 +v -7.29436 -87.2048 48.3953 +v -10.8905 -87.2048 47.7149 +v -14.4258 -87.2048 46.7676 +v -17.8804 -87.2048 45.5588 +v -21.2351 -87.2048 44.0952 +v -24.4709 -87.2048 42.385 +v -27.5699 -87.2048 40.4378 +v -30.5148 -87.2048 38.2644 +v -33.2889 -87.2048 35.8771 +v -35.8769 -87.2048 33.2891 +v -38.2643 -87.2048 30.5149 +v -40.4377 -87.2048 27.5701 +v -42.3849 -87.2048 24.4711 +v -44.0952 -87.2048 21.2352 +v -45.5588 -87.2048 17.8806 +v -46.7676 -87.2048 14.426 +v -47.7149 -87.2048 10.8907 +v -48.3953 -87.2048 7.29453 +v -48.8051 -87.2048 3.65755 +v -48.942 -87.2048 0.000112408 +v -48.8051 -87.2048 -3.65732 +v -48.3954 -87.2048 -7.29431 +v -47.7149 -87.2048 -10.8905 +v -46.7677 -87.2048 -14.4258 +v -45.5588 -87.2048 -17.8804 +v -44.0953 -87.2048 -21.235 +v -42.3851 -87.2048 -24.4709 +v -40.4378 -87.2048 -27.5699 +v -38.2645 -87.2048 -30.5147 +v -35.8771 -87.2048 -33.2889 +v -33.2891 -87.2048 -35.8769 +v -30.5149 -87.2048 -38.2643 +v -27.5701 -87.2048 -40.4377 +v -24.4711 -87.2048 -42.3849 +v -21.2353 -87.2048 -44.0951 +v -17.8807 -87.2048 -45.5587 +v -14.426 -87.2048 -46.7676 +v -10.8908 -87.2048 -47.7149 +v -7.29458 -87.2048 -48.3953 +v -3.65761 -87.2048 -48.8051 +v -0.000162778 -87.2048 -48.942 +v 3.65726 -87.2048 -48.8051 +v 7.29423 -87.2048 -48.3954 +v 10.8904 -87.2048 -47.7149 +v 14.4257 -87.2048 -46.7677 +v 17.8803 -87.2048 -45.5589 +v 21.2349 -87.2048 -44.0953 +v 24.4708 -87.2048 -42.3851 +v 27.5698 -87.2048 -40.4379 +v 30.5147 -87.2048 -38.2645 +v 33.2888 -87.2048 -35.8771 +v 35.8769 -87.2048 -33.2891 +v 38.2642 -87.2048 -30.515 +v 40.4376 -87.2048 -27.5702 +v 42.3849 -87.2048 -24.4712 +v 44.0951 -87.2048 -21.2353 +v 45.5587 -87.2048 -17.8807 +v 46.7676 -87.2048 -14.4261 +v 47.7148 -87.2048 -10.8908 +v 48.3953 -87.2048 -7.29464 +v 48.8051 -87.2048 -3.65767 +v 42.4459 -90.5447 5.88009e-39 +v 42.3272 -90.5447 3.17198 +v 41.9718 -90.5447 6.32622 +v 41.3817 -90.5447 9.44509 +v 40.5601 -90.5447 12.5111 +v 39.5117 -90.5447 15.5072 +v 38.2424 -90.5447 18.4166 +v 36.7592 -90.5447 21.2229 +v 35.0704 -90.5447 23.9106 +v 33.1855 -90.5447 26.4645 +v 31.115 -90.5447 28.8705 +v 28.8705 -90.5447 31.115 +v 26.4646 -90.5447 33.1855 +v 23.9106 -90.5447 35.0704 +v 21.223 -90.5447 36.7592 +v 18.4166 -90.5447 38.2424 +v 15.5073 -90.5447 39.5117 +v 12.5112 -90.5447 40.5601 +v 9.44514 -90.5447 41.3816 +v 6.32627 -90.5447 41.9718 +v 3.17203 -90.5447 42.3272 +v 4.8744e-05 -90.5447 42.4459 +v -3.17193 -90.5447 42.3272 +v -6.32618 -90.5447 41.9718 +v -9.44503 -90.5447 41.3817 +v -12.5111 -90.5447 40.5601 +v -15.5072 -90.5447 39.5118 +v -18.4165 -90.5447 38.2424 +v -21.2229 -90.5447 36.7592 +v -23.9105 -90.5447 35.0705 +v -26.4645 -90.5447 33.1856 +v -28.8705 -90.5447 31.1151 +v -31.115 -90.5447 28.8706 +v -33.1855 -90.5447 26.4646 +v -35.0704 -90.5447 23.9107 +v -36.7592 -90.5447 21.223 +v -38.2424 -90.5447 18.4166 +v -39.5117 -90.5447 15.5073 +v -40.5601 -90.5447 12.5112 +v -41.3816 -90.5447 9.44518 +v -41.9718 -90.5447 6.32632 +v -42.3272 -90.5447 3.17208 +v -42.4459 -90.5447 9.74881e-05 +v -42.3272 -90.5447 -3.17188 +v -41.9718 -90.5447 -6.32613 +v -41.3817 -90.5447 -9.44499 +v -40.5601 -90.5447 -12.511 +v -39.5118 -90.5447 -15.5071 +v -38.2425 -90.5447 -18.4165 +v -36.7593 -90.5447 -21.2228 +v -35.0705 -90.5447 -23.9105 +v -33.1856 -90.5447 -26.4645 +v -31.1151 -90.5447 -28.8704 +v -28.8706 -90.5447 -31.1149 +v -26.4647 -90.5447 -33.1854 +v -23.9107 -90.5447 -35.0704 +v -21.2231 -90.5447 -36.7591 +v -18.4167 -90.5447 -38.2423 +v -15.5073 -90.5447 -39.5117 +v -12.5113 -90.5447 -40.5601 +v -9.44524 -90.5447 -41.3816 +v -6.32636 -90.5447 -41.9718 +v -3.17213 -90.5447 -42.3272 +v -0.000141172 -90.5447 -42.4459 +v 3.17183 -90.5447 -42.3272 +v 6.32606 -90.5447 -41.9718 +v 9.44494 -90.5447 -41.3817 +v 12.511 -90.5447 -40.5602 +v 15.5071 -90.5447 -39.5118 +v 18.4164 -90.5447 -38.2425 +v 21.2228 -90.5447 -36.7593 +v 23.9105 -90.5447 -35.0705 +v 26.4644 -90.5447 -33.1856 +v 28.8704 -90.5447 -31.1151 +v 31.1149 -90.5447 -28.8706 +v 33.1854 -90.5447 -26.4647 +v 35.0703 -90.5447 -23.9108 +v 36.7591 -90.5447 -21.2231 +v 38.2423 -90.5447 -18.4167 +v 39.5117 -90.5447 -15.5074 +v 40.5601 -90.5447 -12.5113 +v 41.3816 -90.5447 -9.44529 +v 41.9718 -90.5447 -6.32642 +v 42.3272 -90.5447 -3.17219 +v 35.7233 -93.4015 5.88009e-39 +v 35.6234 -93.4015 2.6696 +v 35.3243 -93.4015 5.32428 +v 34.8276 -93.4015 7.94917 +v 34.1362 -93.4015 10.5296 +v 33.2539 -93.4015 13.0512 +v 32.1856 -93.4015 15.4997 +v 30.9373 -93.4015 17.8616 +v 29.516 -93.4015 20.1236 +v 27.9296 -93.4015 22.2731 +v 26.187 -93.4015 24.298 +v 24.298 -93.4015 26.187 +v 22.2731 -93.4015 27.9296 +v 20.1237 -93.4015 29.516 +v 17.8617 -93.4015 30.9373 +v 15.4998 -93.4015 32.1856 +v 13.0512 -93.4015 33.2539 +v 10.5297 -93.4015 34.1362 +v 7.94922 -93.4015 34.8276 +v 5.32432 -93.4015 35.3243 +v 2.66964 -93.4015 35.6234 +v 4.1024e-05 -93.4015 35.7233 +v -2.66956 -93.4015 35.6234 +v -5.32424 -93.4015 35.3243 +v -7.94913 -93.4015 34.8276 +v -10.5296 -93.4015 34.1362 +v -13.0511 -93.4015 33.2539 +v -15.4997 -93.4015 32.1856 +v -17.8616 -93.4015 30.9373 +v -20.1236 -93.4015 29.516 +v -22.2731 -93.4015 27.9296 +v -24.298 -93.4015 26.1871 +v -26.187 -93.4015 24.2981 +v -27.9296 -93.4015 22.2732 +v -29.5159 -93.4015 20.1237 +v -30.9372 -93.4015 17.8617 +v -32.1855 -93.4015 15.4998 +v -33.2538 -93.4015 13.0513 +v -34.1362 -93.4015 10.5297 +v -34.8276 -93.4015 7.94926 +v -35.3243 -93.4015 5.32436 +v -35.6234 -93.4015 2.66969 +v -35.7233 -93.4015 8.20479e-05 +v -35.6234 -93.4015 -2.66952 +v -35.3243 -93.4015 -5.3242 +v -34.8277 -93.4015 -7.9491 +v -34.1362 -93.4015 -10.5295 +v -33.2539 -93.4015 -13.0511 +v -32.1856 -93.4015 -15.4997 +v -30.9373 -93.4015 -17.8616 +v -29.516 -93.4015 -20.1236 +v -27.9297 -93.4015 -22.273 +v -26.1871 -93.4015 -24.2979 +v -24.2981 -93.4015 -26.187 +v -22.2732 -93.4015 -27.9295 +v -20.1237 -93.4015 -29.5159 +v -17.8617 -93.4015 -30.9372 +v -15.4999 -93.4015 -32.1855 +v -13.0513 -93.4015 -33.2538 +v -10.5297 -93.4015 -34.1362 +v -7.9493 -93.4015 -34.8276 +v -5.32439 -93.4015 -35.3243 +v -2.66973 -93.4015 -35.6234 +v -0.000118813 -93.4015 -35.7233 +v 2.66948 -93.4015 -35.6234 +v 5.32414 -93.4015 -35.3243 +v 7.94905 -93.4015 -34.8277 +v 10.5295 -93.4015 -34.1362 +v 13.0511 -93.4015 -33.2539 +v 15.4996 -93.4015 -32.1856 +v 17.8615 -93.4015 -30.9373 +v 20.1235 -93.4015 -29.5161 +v 22.273 -93.4015 -27.9297 +v 24.2979 -93.4015 -26.1871 +v 26.1869 -93.4015 -24.2981 +v 27.9295 -93.4015 -22.2732 +v 29.5159 -93.4015 -20.1238 +v 30.9372 -93.4015 -17.8618 +v 32.1855 -93.4015 -15.4999 +v 33.2538 -93.4015 -13.0513 +v 34.1362 -93.4015 -10.5298 +v 34.8276 -93.4015 -7.94934 +v 35.3243 -93.4015 -5.32444 +v 35.6234 -93.4015 -2.66978 +v 28.8101 -95.76 5.88009e-39 +v 28.7296 -95.76 2.15298 +v 28.4883 -95.76 4.29392 +v 28.0878 -95.76 6.41085 +v 27.5302 -95.76 8.49193 +v 26.8186 -95.76 10.5255 +v 25.957 -95.76 12.5002 +v 24.9503 -95.76 14.4051 +v 23.804 -95.76 16.2293 +v 22.5247 -95.76 17.9628 +v 21.1193 -95.76 19.5958 +v 19.5959 -95.76 21.1193 +v 17.9628 -95.76 22.5246 +v 16.2293 -95.76 23.804 +v 14.4051 -95.76 24.9503 +v 12.5003 -95.76 25.957 +v 10.5255 -95.76 26.8186 +v 8.49196 -95.76 27.5302 +v 6.41088 -95.76 28.0878 +v 4.29396 -95.76 28.4883 +v 2.15301 -95.76 28.7296 +v 3.3085e-05 -95.76 28.8101 +v -2.15295 -95.76 28.7296 +v -4.29389 -95.76 28.4883 +v -6.41082 -95.76 28.0878 +v -8.49189 -95.76 27.5302 +v -10.5255 -95.76 26.8186 +v -12.5002 -95.76 25.957 +v -14.405 -95.76 24.9503 +v -16.2293 -95.76 23.8041 +v -17.9628 -95.76 22.5247 +v -19.5958 -95.76 21.1193 +v -21.1193 -95.76 19.5959 +v -22.5246 -95.76 17.9629 +v -23.804 -95.76 16.2294 +v -24.9503 -95.76 14.4051 +v -25.957 -95.76 12.5003 +v -26.8186 -95.76 10.5256 +v -27.5302 -95.76 8.49199 +v -28.0878 -95.76 6.41092 +v -28.4883 -95.76 4.29399 +v -28.7296 -95.76 2.15305 +v -28.8101 -95.76 6.617e-05 +v -28.7296 -95.76 -2.15292 +v -28.4883 -95.76 -4.29386 +v -28.0878 -95.76 -6.41079 +v -27.5302 -95.76 -8.49186 +v -26.8186 -95.76 -10.5255 +v -25.9571 -95.76 -12.5002 +v -24.9503 -95.76 -14.405 +v -23.8041 -95.76 -16.2292 +v -22.5247 -95.76 -17.9627 +v -21.1194 -95.76 -19.5958 +v -19.5959 -95.76 -21.1193 +v -17.9629 -95.76 -22.5246 +v -16.2294 -95.76 -23.804 +v -14.4051 -95.76 -24.9503 +v -12.5003 -95.76 -25.957 +v -10.5256 -95.76 -26.8186 +v -8.49202 -95.76 -27.5301 +v -6.41095 -95.76 -28.0878 +v -4.29402 -95.76 -28.4883 +v -2.15308 -95.76 -28.7296 +v -9.58206e-05 -95.76 -28.8101 +v 2.15288 -95.76 -28.7296 +v 4.29381 -95.76 -28.4884 +v 6.41075 -95.76 -28.0878 +v 8.49182 -95.76 -27.5302 +v 10.5254 -95.76 -26.8186 +v 12.5001 -95.76 -25.9571 +v 14.405 -95.76 -24.9504 +v 16.2292 -95.76 -23.8041 +v 17.9627 -95.76 -22.5247 +v 19.5958 -95.76 -21.1194 +v 21.1192 -95.76 -19.5959 +v 22.5246 -95.76 -17.9629 +v 23.804 -95.76 -16.2294 +v 24.9502 -95.76 -14.4052 +v 25.957 -95.76 -12.5004 +v 26.8185 -95.76 -10.5256 +v 27.5301 -95.76 -8.49205 +v 28.0878 -95.76 -6.41099 +v 28.4883 -95.76 -4.29405 +v 28.7296 -95.76 -2.15312 +v 21.7432 -97.6075 5.88009e-39 +v 21.6824 -97.6075 1.62487 +v 21.5004 -97.6075 3.24066 +v 21.1981 -97.6075 4.83832 +v 20.7772 -97.6075 6.40893 +v 20.2402 -97.6075 7.94369 +v 19.59 -97.6075 9.43403 +v 18.8302 -97.6075 10.8716 +v 17.9651 -97.6075 12.2484 +v 16.9996 -97.6075 13.5567 +v 15.9389 -97.6075 14.7891 +v 14.7892 -97.6075 15.9389 +v 13.5567 -97.6075 16.9995 +v 12.2484 -97.6075 17.9651 +v 10.8716 -97.6075 18.8302 +v 9.43405 -97.6075 19.59 +v 7.94371 -97.6075 20.2402 +v 6.40895 -97.6075 20.7772 +v 4.83835 -97.6075 21.1981 +v 3.24068 -97.6075 21.5004 +v 1.6249 -97.6075 21.6824 +v 2.49695e-05 -97.6075 21.7432 +v -1.62485 -97.6075 21.6824 +v -3.24063 -97.6075 21.5004 +v -4.8383 -97.6075 21.1981 +v -6.4089 -97.6075 20.7773 +v -7.94367 -97.6075 20.2402 +v -9.43401 -97.6075 19.59 +v -10.8716 -97.6075 18.8302 +v -12.2484 -97.6075 17.9651 +v -13.5567 -97.6075 16.9996 +v -14.7891 -97.6075 15.9389 +v -15.9389 -97.6075 14.7892 +v -16.9995 -97.6075 13.5567 +v -17.9651 -97.6075 12.2484 +v -18.8302 -97.6075 10.8717 +v -19.59 -97.6075 9.43408 +v -20.2402 -97.6075 7.94374 +v -20.7772 -97.6075 6.40898 +v -21.1981 -97.6075 4.83837 +v -21.5004 -97.6075 3.24071 +v -21.6824 -97.6075 1.62492 +v -21.7432 -97.6075 4.99391e-05 +v -21.6824 -97.6075 -1.62482 +v -21.5004 -97.6075 -3.24061 +v -21.1981 -97.6075 -4.83827 +v -20.7773 -97.6075 -6.40888 +v -20.2402 -97.6075 -7.94365 +v -19.59 -97.6075 -9.43398 +v -18.8302 -97.6075 -10.8716 +v -17.9651 -97.6075 -12.2483 +v -16.9996 -97.6075 -13.5566 +v -15.939 -97.6075 -14.7891 +v -14.7892 -97.6075 -15.9389 +v -13.5567 -97.6075 -16.9995 +v -12.2485 -97.6075 -17.9651 +v -10.8717 -97.6075 -18.8302 +v -9.4341 -97.6075 -19.59 +v -7.94376 -97.6075 -20.2402 +v -6.409 -97.6075 -20.7772 +v -4.8384 -97.6075 -21.1981 +v -3.24073 -97.6075 -21.5004 +v -1.62495 -97.6075 -21.6824 +v -7.23166e-05 -97.6075 -21.7432 +v 1.6248 -97.6075 -21.6824 +v 3.24058 -97.6075 -21.5004 +v 4.83825 -97.6075 -21.1981 +v 6.40885 -97.6075 -20.7773 +v 7.94362 -97.6075 -20.2402 +v 9.43396 -97.6075 -19.59 +v 10.8715 -97.6075 -18.8302 +v 12.2483 -97.6075 -17.9652 +v 13.5566 -97.6075 -16.9996 +v 14.7891 -97.6075 -15.939 +v 15.9389 -97.6075 -14.7892 +v 16.9995 -97.6075 -13.5568 +v 17.9651 -97.6075 -12.2485 +v 18.8301 -97.6075 -10.8717 +v 19.5899 -97.6075 -9.43412 +v 20.2402 -97.6075 -7.94379 +v 20.7772 -97.6075 -6.40902 +v 21.1981 -97.6075 -4.83842 +v 21.5004 -97.6075 -3.24076 +v 21.6824 -97.6075 -1.62498 +v 14.5603 -98.9343 5.88009e-39 +v 14.5196 -98.9343 1.08809 +v 14.3977 -98.9343 2.1701 +v 14.1953 -98.9343 3.23998 +v 13.9135 -98.9343 4.29173 +v 13.5538 -98.9343 5.31949 +v 13.1184 -98.9343 6.31749 +v 12.6096 -98.9343 7.28016 +v 12.0303 -98.9343 8.20213 +v 11.3837 -98.9343 9.07822 +v 10.6735 -98.9343 9.90354 +v 9.90355 -98.9343 10.6735 +v 9.07823 -98.9343 11.3837 +v 8.20214 -98.9343 12.0303 +v 7.28018 -98.9343 12.6096 +v 6.31751 -98.9343 13.1184 +v 5.3195 -98.9343 13.5538 +v 4.29175 -98.9343 13.9135 +v 3.23999 -98.9343 14.1953 +v 2.17012 -98.9343 14.3977 +v 1.08811 -98.9343 14.5196 +v 1.67208e-05 -98.9343 14.5603 +v -1.08808 -98.9343 14.5196 +v -2.17009 -98.9343 14.3977 +v -3.23996 -98.9343 14.1953 +v -4.29172 -98.9343 13.9135 +v -5.31947 -98.9343 13.5538 +v -6.31747 -98.9343 13.1184 +v -7.28015 -98.9343 12.6096 +v -8.20211 -98.9343 12.0303 +v -9.0782 -98.9343 11.3837 +v -9.90353 -98.9343 10.6735 +v -10.6735 -98.9343 9.90357 +v -11.3837 -98.9343 9.07824 +v -12.0303 -98.9343 8.20215 +v -12.6096 -98.9343 7.28019 +v -13.1184 -98.9343 6.31752 +v -13.5538 -98.9343 5.31952 +v -13.9135 -98.9343 4.29176 +v -14.1953 -98.9343 3.24001 +v -14.3977 -98.9343 2.17014 +v -14.5196 -98.9343 1.08813 +v -14.5603 -98.9343 3.34417e-05 +v -14.5196 -98.9343 -1.08806 +v -14.3977 -98.9343 -2.17007 +v -14.1953 -98.9343 -3.23995 +v -13.9135 -98.9343 -4.2917 +v -13.5539 -98.9343 -5.31946 +v -13.1184 -98.9343 -6.31746 +v -12.6096 -98.9343 -7.28013 +v -12.0303 -98.9343 -8.2021 +v -11.3838 -98.9343 -9.07819 +v -10.6735 -98.9343 -9.90351 +v -9.90358 -98.9343 -10.6735 +v -9.07826 -98.9343 -11.3837 +v -8.20217 -98.9343 -12.0303 +v -7.28021 -98.9343 -12.6096 +v -6.31753 -98.9343 -13.1184 +v -5.31953 -98.9343 -13.5538 +v -4.29178 -98.9343 -13.9135 +v -3.24003 -98.9343 -14.1953 +v -2.17015 -98.9343 -14.3977 +v -1.08815 -98.9343 -14.5196 +v -4.84267e-05 -98.9343 -14.5603 +v 1.08804 -98.9343 -14.5196 +v 2.17005 -98.9343 -14.3977 +v 3.23993 -98.9343 -14.1953 +v 4.29168 -98.9343 -13.9135 +v 5.31944 -98.9343 -13.5539 +v 6.31744 -98.9343 -13.1184 +v 7.28012 -98.9343 -12.6097 +v 8.20208 -98.9343 -12.0304 +v 9.07818 -98.9343 -11.3838 +v 9.9035 -98.9343 -10.6735 +v 10.6734 -98.9343 -9.90359 +v 11.3837 -98.9343 -9.07827 +v 12.0303 -98.9343 -8.20218 +v 12.6096 -98.9343 -7.28023 +v 13.1184 -98.9343 -6.31755 +v 13.5538 -98.9343 -5.31955 +v 13.9134 -98.9343 -4.2918 +v 14.1953 -98.9343 -3.24005 +v 14.3977 -98.9343 -2.17017 +v 14.5196 -98.9343 -1.08817 +v 7.29978 -99.7332 5.88009e-39 +v 7.27937 -99.7332 0.545513 +v 7.21825 -99.7332 1.08798 +v 7.11676 -99.7332 1.62435 +v 6.97547 -99.7332 2.15165 +v 6.79518 -99.7332 2.66691 +v 6.57688 -99.7332 3.16725 +v 6.3218 -99.7332 3.64989 +v 6.03136 -99.7332 4.11211 +v 5.7072 -99.7332 4.55134 +v 5.35112 -99.7332 4.96511 +v 4.96512 -99.7332 5.35112 +v 4.55134 -99.7332 5.7072 +v 4.11212 -99.7332 6.03136 +v 3.6499 -99.7332 6.32179 +v 3.16726 -99.7332 6.57687 +v 2.66692 -99.7332 6.79517 +v 2.15166 -99.7332 6.97547 +v 1.62436 -99.7332 7.11676 +v 1.08798 -99.7332 7.21825 +v 0.545521 -99.7332 7.27937 +v 8.38293e-06 -99.7332 7.29978 +v -0.545505 -99.7332 7.27937 +v -1.08797 -99.7332 7.21825 +v -1.62434 -99.7332 7.11676 +v -2.15164 -99.7332 6.97548 +v -2.6669 -99.7332 6.79518 +v -3.16725 -99.7332 6.57688 +v -3.64988 -99.7332 6.3218 +v -4.1121 -99.7332 6.03137 +v -4.55133 -99.7332 5.70721 +v -4.9651 -99.7332 5.35113 +v -5.35111 -99.7332 4.96512 +v -5.70719 -99.7332 4.55135 +v -6.03136 -99.7332 4.11213 +v -6.32179 -99.7332 3.6499 +v -6.57687 -99.7332 3.16727 +v -6.79517 -99.7332 2.66692 +v -6.97547 -99.7332 2.15166 +v -7.11676 -99.7332 1.62437 +v -7.21825 -99.7332 1.08799 +v -7.27937 -99.7332 0.54553 +v -7.29978 -99.7332 1.67659e-05 +v -7.27937 -99.7332 -0.545496 +v -7.21825 -99.7332 -1.08796 +v -7.11677 -99.7332 -1.62434 +v -6.97548 -99.7332 -2.15163 +v -6.79518 -99.7332 -2.66689 +v -6.57689 -99.7332 -3.16724 +v -6.32181 -99.7332 -3.64987 +v -6.03138 -99.7332 -4.1121 +v -5.70721 -99.7332 -4.55132 +v -5.35113 -99.7332 -4.9651 +v -4.96513 -99.7332 -5.3511 +v -4.55136 -99.7332 -5.70719 +v -4.11213 -99.7332 -6.03135 +v -3.64991 -99.7332 -6.32178 +v -3.16728 -99.7332 -6.57687 +v -2.66693 -99.7332 -6.79517 +v -2.15167 -99.7332 -6.97547 +v -1.62438 -99.7332 -7.11676 +v -1.088 -99.7332 -7.21825 +v -0.545539 -99.7332 -7.27937 +v -2.42786e-05 -99.7332 -7.29978 +v 0.545487 -99.7332 -7.27937 +v 1.08795 -99.7332 -7.21825 +v 1.62433 -99.7332 -7.11677 +v 2.15162 -99.7332 -6.97548 +v 2.66688 -99.7332 -6.79519 +v 3.16723 -99.7332 -6.57689 +v 3.64987 -99.7332 -6.32181 +v 4.11209 -99.7332 -6.03138 +v 4.55132 -99.7332 -5.70722 +v 4.96509 -99.7332 -5.35114 +v 5.3511 -99.7332 -4.96513 +v 5.70718 -99.7332 -4.55136 +v 6.03135 -99.7332 -4.11214 +v 6.32178 -99.7332 -3.64992 +v 6.57686 -99.7332 -3.16729 +v 6.79516 -99.7332 -2.66694 +v 6.97546 -99.7332 -2.15168 +v 7.11675 -99.7332 -1.62439 +v 7.21825 -99.7332 -1.08801 +v 7.27937 -99.7332 -0.545548 +f 3 4 88 87 +f 4 5 89 88 +f 5 6 90 89 +f 6 7 91 90 +f 7 8 92 91 +f 8 9 93 92 +f 9 10 94 93 +f 10 11 95 94 +f 11 12 96 95 +f 12 13 97 96 +f 13 14 98 97 +f 14 15 99 98 +f 15 16 100 99 +f 16 17 101 100 +f 17 18 102 101 +f 18 19 103 102 +f 19 20 104 103 +f 20 21 105 104 +f 21 22 106 105 +f 22 23 107 106 +f 23 24 108 107 +f 24 25 109 108 +f 25 26 110 109 +f 26 27 111 110 +f 27 28 112 111 +f 28 29 113 112 +f 29 30 114 113 +f 30 31 115 114 +f 31 32 116 115 +f 32 33 117 116 +f 33 34 118 117 +f 34 35 119 118 +f 35 36 120 119 +f 36 37 121 120 +f 37 38 122 121 +f 38 39 123 122 +f 39 40 124 123 +f 40 41 125 124 +f 41 42 126 125 +f 42 43 127 126 +f 43 44 128 127 +f 44 45 129 128 +f 45 46 130 129 +f 46 47 131 130 +f 47 48 132 131 +f 48 49 133 132 +f 49 50 134 133 +f 50 51 135 134 +f 51 52 136 135 +f 52 53 137 136 +f 53 54 138 137 +f 54 55 139 138 +f 55 56 140 139 +f 56 57 141 140 +f 57 58 142 141 +f 58 59 143 142 +f 59 60 144 143 +f 60 61 145 144 +f 61 62 146 145 +f 62 63 147 146 +f 63 64 148 147 +f 64 65 149 148 +f 65 66 150 149 +f 66 67 151 150 +f 67 68 152 151 +f 68 69 153 152 +f 69 70 154 153 +f 70 71 155 154 +f 71 72 156 155 +f 72 73 157 156 +f 73 74 158 157 +f 74 75 159 158 +f 75 76 160 159 +f 76 77 161 160 +f 77 78 162 161 +f 78 79 163 162 +f 79 80 164 163 +f 80 81 165 164 +f 81 82 166 165 +f 82 83 167 166 +f 83 84 168 167 +f 84 85 169 168 +f 85 86 170 169 +f 86 3 87 170 +f 87 88 172 171 +f 88 89 173 172 +f 89 90 174 173 +f 90 91 175 174 +f 91 92 176 175 +f 92 93 177 176 +f 93 94 178 177 +f 94 95 179 178 +f 95 96 180 179 +f 96 97 181 180 +f 97 98 182 181 +f 98 99 183 182 +f 99 100 184 183 +f 100 101 185 184 +f 101 102 186 185 +f 102 103 187 186 +f 103 104 188 187 +f 104 105 189 188 +f 105 106 190 189 +f 106 107 191 190 +f 107 108 192 191 +f 108 109 193 192 +f 109 110 194 193 +f 110 111 195 194 +f 111 112 196 195 +f 112 113 197 196 +f 113 114 198 197 +f 114 115 199 198 +f 115 116 200 199 +f 116 117 201 200 +f 117 118 202 201 +f 118 119 203 202 +f 119 120 204 203 +f 120 121 205 204 +f 121 122 206 205 +f 122 123 207 206 +f 123 124 208 207 +f 124 125 209 208 +f 125 126 210 209 +f 126 127 211 210 +f 127 128 212 211 +f 128 129 213 212 +f 129 130 214 213 +f 130 131 215 214 +f 131 132 216 215 +f 132 133 217 216 +f 133 134 218 217 +f 134 135 219 218 +f 135 136 220 219 +f 136 137 221 220 +f 137 138 222 221 +f 138 139 223 222 +f 139 140 224 223 +f 140 141 225 224 +f 141 142 226 225 +f 142 143 227 226 +f 143 144 228 227 +f 144 145 229 228 +f 145 146 230 229 +f 146 147 231 230 +f 147 148 232 231 +f 148 149 233 232 +f 149 150 234 233 +f 150 151 235 234 +f 151 152 236 235 +f 152 153 237 236 +f 153 154 238 237 +f 154 155 239 238 +f 155 156 240 239 +f 156 157 241 240 +f 157 158 242 241 +f 158 159 243 242 +f 159 160 244 243 +f 160 161 245 244 +f 161 162 246 245 +f 162 163 247 246 +f 163 164 248 247 +f 164 165 249 248 +f 165 166 250 249 +f 166 167 251 250 +f 167 168 252 251 +f 168 169 253 252 +f 169 170 254 253 +f 170 87 171 254 +f 171 172 256 255 +f 172 173 257 256 +f 173 174 258 257 +f 174 175 259 258 +f 175 176 260 259 +f 176 177 261 260 +f 177 178 262 261 +f 178 179 263 262 +f 179 180 264 263 +f 180 181 265 264 +f 181 182 266 265 +f 182 183 267 266 +f 183 184 268 267 +f 184 185 269 268 +f 185 186 270 269 +f 186 187 271 270 +f 187 188 272 271 +f 188 189 273 272 +f 189 190 274 273 +f 190 191 275 274 +f 191 192 276 275 +f 192 193 277 276 +f 193 194 278 277 +f 194 195 279 278 +f 195 196 280 279 +f 196 197 281 280 +f 197 198 282 281 +f 198 199 283 282 +f 199 200 284 283 +f 200 201 285 284 +f 201 202 286 285 +f 202 203 287 286 +f 203 204 288 287 +f 204 205 289 288 +f 205 206 290 289 +f 206 207 291 290 +f 207 208 292 291 +f 208 209 293 292 +f 209 210 294 293 +f 210 211 295 294 +f 211 212 296 295 +f 212 213 297 296 +f 213 214 298 297 +f 214 215 299 298 +f 215 216 300 299 +f 216 217 301 300 +f 217 218 302 301 +f 218 219 303 302 +f 219 220 304 303 +f 220 221 305 304 +f 221 222 306 305 +f 222 223 307 306 +f 223 224 308 307 +f 224 225 309 308 +f 225 226 310 309 +f 226 227 311 310 +f 227 228 312 311 +f 228 229 313 312 +f 229 230 314 313 +f 230 231 315 314 +f 231 232 316 315 +f 232 233 317 316 +f 233 234 318 317 +f 234 235 319 318 +f 235 236 320 319 +f 236 237 321 320 +f 237 238 322 321 +f 238 239 323 322 +f 239 240 324 323 +f 240 241 325 324 +f 241 242 326 325 +f 242 243 327 326 +f 243 244 328 327 +f 244 245 329 328 +f 245 246 330 329 +f 246 247 331 330 +f 247 248 332 331 +f 248 249 333 332 +f 249 250 334 333 +f 250 251 335 334 +f 251 252 336 335 +f 252 253 337 336 +f 253 254 338 337 +f 254 171 255 338 +f 255 256 340 339 +f 256 257 341 340 +f 257 258 342 341 +f 258 259 343 342 +f 259 260 344 343 +f 260 261 345 344 +f 261 262 346 345 +f 262 263 347 346 +f 263 264 348 347 +f 264 265 349 348 +f 265 266 350 349 +f 266 267 351 350 +f 267 268 352 351 +f 268 269 353 352 +f 269 270 354 353 +f 270 271 355 354 +f 271 272 356 355 +f 272 273 357 356 +f 273 274 358 357 +f 274 275 359 358 +f 275 276 360 359 +f 276 277 361 360 +f 277 278 362 361 +f 278 279 363 362 +f 279 280 364 363 +f 280 281 365 364 +f 281 282 366 365 +f 282 283 367 366 +f 283 284 368 367 +f 284 285 369 368 +f 285 286 370 369 +f 286 287 371 370 +f 287 288 372 371 +f 288 289 373 372 +f 289 290 374 373 +f 290 291 375 374 +f 291 292 376 375 +f 292 293 377 376 +f 293 294 378 377 +f 294 295 379 378 +f 295 296 380 379 +f 296 297 381 380 +f 297 298 382 381 +f 298 299 383 382 +f 299 300 384 383 +f 300 301 385 384 +f 301 302 386 385 +f 302 303 387 386 +f 303 304 388 387 +f 304 305 389 388 +f 305 306 390 389 +f 306 307 391 390 +f 307 308 392 391 +f 308 309 393 392 +f 309 310 394 393 +f 310 311 395 394 +f 311 312 396 395 +f 312 313 397 396 +f 313 314 398 397 +f 314 315 399 398 +f 315 316 400 399 +f 316 317 401 400 +f 317 318 402 401 +f 318 319 403 402 +f 319 320 404 403 +f 320 321 405 404 +f 321 322 406 405 +f 322 323 407 406 +f 323 324 408 407 +f 324 325 409 408 +f 325 326 410 409 +f 326 327 411 410 +f 327 328 412 411 +f 328 329 413 412 +f 329 330 414 413 +f 330 331 415 414 +f 331 332 416 415 +f 332 333 417 416 +f 333 334 418 417 +f 334 335 419 418 +f 335 336 420 419 +f 336 337 421 420 +f 337 338 422 421 +f 338 255 339 422 +f 339 340 424 423 +f 340 341 425 424 +f 341 342 426 425 +f 342 343 427 426 +f 343 344 428 427 +f 344 345 429 428 +f 345 346 430 429 +f 346 347 431 430 +f 347 348 432 431 +f 348 349 433 432 +f 349 350 434 433 +f 350 351 435 434 +f 351 352 436 435 +f 352 353 437 436 +f 353 354 438 437 +f 354 355 439 438 +f 355 356 440 439 +f 356 357 441 440 +f 357 358 442 441 +f 358 359 443 442 +f 359 360 444 443 +f 360 361 445 444 +f 361 362 446 445 +f 362 363 447 446 +f 363 364 448 447 +f 364 365 449 448 +f 365 366 450 449 +f 366 367 451 450 +f 367 368 452 451 +f 368 369 453 452 +f 369 370 454 453 +f 370 371 455 454 +f 371 372 456 455 +f 372 373 457 456 +f 373 374 458 457 +f 374 375 459 458 +f 375 376 460 459 +f 376 377 461 460 +f 377 378 462 461 +f 378 379 463 462 +f 379 380 464 463 +f 380 381 465 464 +f 381 382 466 465 +f 382 383 467 466 +f 383 384 468 467 +f 384 385 469 468 +f 385 386 470 469 +f 386 387 471 470 +f 387 388 472 471 +f 388 389 473 472 +f 389 390 474 473 +f 390 391 475 474 +f 391 392 476 475 +f 392 393 477 476 +f 393 394 478 477 +f 394 395 479 478 +f 395 396 480 479 +f 396 397 481 480 +f 397 398 482 481 +f 398 399 483 482 +f 399 400 484 483 +f 400 401 485 484 +f 401 402 486 485 +f 402 403 487 486 +f 403 404 488 487 +f 404 405 489 488 +f 405 406 490 489 +f 406 407 491 490 +f 407 408 492 491 +f 408 409 493 492 +f 409 410 494 493 +f 410 411 495 494 +f 411 412 496 495 +f 412 413 497 496 +f 413 414 498 497 +f 414 415 499 498 +f 415 416 500 499 +f 416 417 501 500 +f 417 418 502 501 +f 418 419 503 502 +f 419 420 504 503 +f 420 421 505 504 +f 421 422 506 505 +f 422 339 423 506 +f 423 424 508 507 +f 424 425 509 508 +f 425 426 510 509 +f 426 427 511 510 +f 427 428 512 511 +f 428 429 513 512 +f 429 430 514 513 +f 430 431 515 514 +f 431 432 516 515 +f 432 433 517 516 +f 433 434 518 517 +f 434 435 519 518 +f 435 436 520 519 +f 436 437 521 520 +f 437 438 522 521 +f 438 439 523 522 +f 439 440 524 523 +f 440 441 525 524 +f 441 442 526 525 +f 442 443 527 526 +f 443 444 528 527 +f 444 445 529 528 +f 445 446 530 529 +f 446 447 531 530 +f 447 448 532 531 +f 448 449 533 532 +f 449 450 534 533 +f 450 451 535 534 +f 451 452 536 535 +f 452 453 537 536 +f 453 454 538 537 +f 454 455 539 538 +f 455 456 540 539 +f 456 457 541 540 +f 457 458 542 541 +f 458 459 543 542 +f 459 460 544 543 +f 460 461 545 544 +f 461 462 546 545 +f 462 463 547 546 +f 463 464 548 547 +f 464 465 549 548 +f 465 466 550 549 +f 466 467 551 550 +f 467 468 552 551 +f 468 469 553 552 +f 469 470 554 553 +f 470 471 555 554 +f 471 472 556 555 +f 472 473 557 556 +f 473 474 558 557 +f 474 475 559 558 +f 475 476 560 559 +f 476 477 561 560 +f 477 478 562 561 +f 478 479 563 562 +f 479 480 564 563 +f 480 481 565 564 +f 481 482 566 565 +f 482 483 567 566 +f 483 484 568 567 +f 484 485 569 568 +f 485 486 570 569 +f 486 487 571 570 +f 487 488 572 571 +f 488 489 573 572 +f 489 490 574 573 +f 490 491 575 574 +f 491 492 576 575 +f 492 493 577 576 +f 493 494 578 577 +f 494 495 579 578 +f 495 496 580 579 +f 496 497 581 580 +f 497 498 582 581 +f 498 499 583 582 +f 499 500 584 583 +f 500 501 585 584 +f 501 502 586 585 +f 502 503 587 586 +f 503 504 588 587 +f 504 505 589 588 +f 505 506 590 589 +f 506 423 507 590 +f 507 508 592 591 +f 508 509 593 592 +f 509 510 594 593 +f 510 511 595 594 +f 511 512 596 595 +f 512 513 597 596 +f 513 514 598 597 +f 514 515 599 598 +f 515 516 600 599 +f 516 517 601 600 +f 517 518 602 601 +f 518 519 603 602 +f 519 520 604 603 +f 520 521 605 604 +f 521 522 606 605 +f 522 523 607 606 +f 523 524 608 607 +f 524 525 609 608 +f 525 526 610 609 +f 526 527 611 610 +f 527 528 612 611 +f 528 529 613 612 +f 529 530 614 613 +f 530 531 615 614 +f 531 532 616 615 +f 532 533 617 616 +f 533 534 618 617 +f 534 535 619 618 +f 535 536 620 619 +f 536 537 621 620 +f 537 538 622 621 +f 538 539 623 622 +f 539 540 624 623 +f 540 541 625 624 +f 541 542 626 625 +f 542 543 627 626 +f 543 544 628 627 +f 544 545 629 628 +f 545 546 630 629 +f 546 547 631 630 +f 547 548 632 631 +f 548 549 633 632 +f 549 550 634 633 +f 550 551 635 634 +f 551 552 636 635 +f 552 553 637 636 +f 553 554 638 637 +f 554 555 639 638 +f 555 556 640 639 +f 556 557 641 640 +f 557 558 642 641 +f 558 559 643 642 +f 559 560 644 643 +f 560 561 645 644 +f 561 562 646 645 +f 562 563 647 646 +f 563 564 648 647 +f 564 565 649 648 +f 565 566 650 649 +f 566 567 651 650 +f 567 568 652 651 +f 568 569 653 652 +f 569 570 654 653 +f 570 571 655 654 +f 571 572 656 655 +f 572 573 657 656 +f 573 574 658 657 +f 574 575 659 658 +f 575 576 660 659 +f 576 577 661 660 +f 577 578 662 661 +f 578 579 663 662 +f 579 580 664 663 +f 580 581 665 664 +f 581 582 666 665 +f 582 583 667 666 +f 583 584 668 667 +f 584 585 669 668 +f 585 586 670 669 +f 586 587 671 670 +f 587 588 672 671 +f 588 589 673 672 +f 589 590 674 673 +f 590 507 591 674 +f 591 592 676 675 +f 592 593 677 676 +f 593 594 678 677 +f 594 595 679 678 +f 595 596 680 679 +f 596 597 681 680 +f 597 598 682 681 +f 598 599 683 682 +f 599 600 684 683 +f 600 601 685 684 +f 601 602 686 685 +f 602 603 687 686 +f 603 604 688 687 +f 604 605 689 688 +f 605 606 690 689 +f 606 607 691 690 +f 607 608 692 691 +f 608 609 693 692 +f 609 610 694 693 +f 610 611 695 694 +f 611 612 696 695 +f 612 613 697 696 +f 613 614 698 697 +f 614 615 699 698 +f 615 616 700 699 +f 616 617 701 700 +f 617 618 702 701 +f 618 619 703 702 +f 619 620 704 703 +f 620 621 705 704 +f 621 622 706 705 +f 622 623 707 706 +f 623 624 708 707 +f 624 625 709 708 +f 625 626 710 709 +f 626 627 711 710 +f 627 628 712 711 +f 628 629 713 712 +f 629 630 714 713 +f 630 631 715 714 +f 631 632 716 715 +f 632 633 717 716 +f 633 634 718 717 +f 634 635 719 718 +f 635 636 720 719 +f 636 637 721 720 +f 637 638 722 721 +f 638 639 723 722 +f 639 640 724 723 +f 640 641 725 724 +f 641 642 726 725 +f 642 643 727 726 +f 643 644 728 727 +f 644 645 729 728 +f 645 646 730 729 +f 646 647 731 730 +f 647 648 732 731 +f 648 649 733 732 +f 649 650 734 733 +f 650 651 735 734 +f 651 652 736 735 +f 652 653 737 736 +f 653 654 738 737 +f 654 655 739 738 +f 655 656 740 739 +f 656 657 741 740 +f 657 658 742 741 +f 658 659 743 742 +f 659 660 744 743 +f 660 661 745 744 +f 661 662 746 745 +f 662 663 747 746 +f 663 664 748 747 +f 664 665 749 748 +f 665 666 750 749 +f 666 667 751 750 +f 667 668 752 751 +f 668 669 753 752 +f 669 670 754 753 +f 670 671 755 754 +f 671 672 756 755 +f 672 673 757 756 +f 673 674 758 757 +f 674 591 675 758 +f 675 676 760 759 +f 676 677 761 760 +f 677 678 762 761 +f 678 679 763 762 +f 679 680 764 763 +f 680 681 765 764 +f 681 682 766 765 +f 682 683 767 766 +f 683 684 768 767 +f 684 685 769 768 +f 685 686 770 769 +f 686 687 771 770 +f 687 688 772 771 +f 688 689 773 772 +f 689 690 774 773 +f 690 691 775 774 +f 691 692 776 775 +f 692 693 777 776 +f 693 694 778 777 +f 694 695 779 778 +f 695 696 780 779 +f 696 697 781 780 +f 697 698 782 781 +f 698 699 783 782 +f 699 700 784 783 +f 700 701 785 784 +f 701 702 786 785 +f 702 703 787 786 +f 703 704 788 787 +f 704 705 789 788 +f 705 706 790 789 +f 706 707 791 790 +f 707 708 792 791 +f 708 709 793 792 +f 709 710 794 793 +f 710 711 795 794 +f 711 712 796 795 +f 712 713 797 796 +f 713 714 798 797 +f 714 715 799 798 +f 715 716 800 799 +f 716 717 801 800 +f 717 718 802 801 +f 718 719 803 802 +f 719 720 804 803 +f 720 721 805 804 +f 721 722 806 805 +f 722 723 807 806 +f 723 724 808 807 +f 724 725 809 808 +f 725 726 810 809 +f 726 727 811 810 +f 727 728 812 811 +f 728 729 813 812 +f 729 730 814 813 +f 730 731 815 814 +f 731 732 816 815 +f 732 733 817 816 +f 733 734 818 817 +f 734 735 819 818 +f 735 736 820 819 +f 736 737 821 820 +f 737 738 822 821 +f 738 739 823 822 +f 739 740 824 823 +f 740 741 825 824 +f 741 742 826 825 +f 742 743 827 826 +f 743 744 828 827 +f 744 745 829 828 +f 745 746 830 829 +f 746 747 831 830 +f 747 748 832 831 +f 748 749 833 832 +f 749 750 834 833 +f 750 751 835 834 +f 751 752 836 835 +f 752 753 837 836 +f 753 754 838 837 +f 754 755 839 838 +f 755 756 840 839 +f 756 757 841 840 +f 757 758 842 841 +f 758 675 759 842 +f 759 760 844 843 +f 760 761 845 844 +f 761 762 846 845 +f 762 763 847 846 +f 763 764 848 847 +f 764 765 849 848 +f 765 766 850 849 +f 766 767 851 850 +f 767 768 852 851 +f 768 769 853 852 +f 769 770 854 853 +f 770 771 855 854 +f 771 772 856 855 +f 772 773 857 856 +f 773 774 858 857 +f 774 775 859 858 +f 775 776 860 859 +f 776 777 861 860 +f 777 778 862 861 +f 778 779 863 862 +f 779 780 864 863 +f 780 781 865 864 +f 781 782 866 865 +f 782 783 867 866 +f 783 784 868 867 +f 784 785 869 868 +f 785 786 870 869 +f 786 787 871 870 +f 787 788 872 871 +f 788 789 873 872 +f 789 790 874 873 +f 790 791 875 874 +f 791 792 876 875 +f 792 793 877 876 +f 793 794 878 877 +f 794 795 879 878 +f 795 796 880 879 +f 796 797 881 880 +f 797 798 882 881 +f 798 799 883 882 +f 799 800 884 883 +f 800 801 885 884 +f 801 802 886 885 +f 802 803 887 886 +f 803 804 888 887 +f 804 805 889 888 +f 805 806 890 889 +f 806 807 891 890 +f 807 808 892 891 +f 808 809 893 892 +f 809 810 894 893 +f 810 811 895 894 +f 811 812 896 895 +f 812 813 897 896 +f 813 814 898 897 +f 814 815 899 898 +f 815 816 900 899 +f 816 817 901 900 +f 817 818 902 901 +f 818 819 903 902 +f 819 820 904 903 +f 820 821 905 904 +f 821 822 906 905 +f 822 823 907 906 +f 823 824 908 907 +f 824 825 909 908 +f 825 826 910 909 +f 826 827 911 910 +f 827 828 912 911 +f 828 829 913 912 +f 829 830 914 913 +f 830 831 915 914 +f 831 832 916 915 +f 832 833 917 916 +f 833 834 918 917 +f 834 835 919 918 +f 835 836 920 919 +f 836 837 921 920 +f 837 838 922 921 +f 838 839 923 922 +f 839 840 924 923 +f 840 841 925 924 +f 841 842 926 925 +f 842 759 843 926 +f 843 844 928 927 +f 844 845 929 928 +f 845 846 930 929 +f 846 847 931 930 +f 847 848 932 931 +f 848 849 933 932 +f 849 850 934 933 +f 850 851 935 934 +f 851 852 936 935 +f 852 853 937 936 +f 853 854 938 937 +f 854 855 939 938 +f 855 856 940 939 +f 856 857 941 940 +f 857 858 942 941 +f 858 859 943 942 +f 859 860 944 943 +f 860 861 945 944 +f 861 862 946 945 +f 862 863 947 946 +f 863 864 948 947 +f 864 865 949 948 +f 865 866 950 949 +f 866 867 951 950 +f 867 868 952 951 +f 868 869 953 952 +f 869 870 954 953 +f 870 871 955 954 +f 871 872 956 955 +f 872 873 957 956 +f 873 874 958 957 +f 874 875 959 958 +f 875 876 960 959 +f 876 877 961 960 +f 877 878 962 961 +f 878 879 963 962 +f 879 880 964 963 +f 880 881 965 964 +f 881 882 966 965 +f 882 883 967 966 +f 883 884 968 967 +f 884 885 969 968 +f 885 886 970 969 +f 886 887 971 970 +f 887 888 972 971 +f 888 889 973 972 +f 889 890 974 973 +f 890 891 975 974 +f 891 892 976 975 +f 892 893 977 976 +f 893 894 978 977 +f 894 895 979 978 +f 895 896 980 979 +f 896 897 981 980 +f 897 898 982 981 +f 898 899 983 982 +f 899 900 984 983 +f 900 901 985 984 +f 901 902 986 985 +f 902 903 987 986 +f 903 904 988 987 +f 904 905 989 988 +f 905 906 990 989 +f 906 907 991 990 +f 907 908 992 991 +f 908 909 993 992 +f 909 910 994 993 +f 910 911 995 994 +f 911 912 996 995 +f 912 913 997 996 +f 913 914 998 997 +f 914 915 999 998 +f 915 916 1000 999 +f 916 917 1001 1000 +f 917 918 1002 1001 +f 918 919 1003 1002 +f 919 920 1004 1003 +f 920 921 1005 1004 +f 921 922 1006 1005 +f 922 923 1007 1006 +f 923 924 1008 1007 +f 924 925 1009 1008 +f 925 926 1010 1009 +f 926 843 927 1010 +f 927 928 1012 1011 +f 928 929 1013 1012 +f 929 930 1014 1013 +f 930 931 1015 1014 +f 931 932 1016 1015 +f 932 933 1017 1016 +f 933 934 1018 1017 +f 934 935 1019 1018 +f 935 936 1020 1019 +f 936 937 1021 1020 +f 937 938 1022 1021 +f 938 939 1023 1022 +f 939 940 1024 1023 +f 940 941 1025 1024 +f 941 942 1026 1025 +f 942 943 1027 1026 +f 943 944 1028 1027 +f 944 945 1029 1028 +f 945 946 1030 1029 +f 946 947 1031 1030 +f 947 948 1032 1031 +f 948 949 1033 1032 +f 949 950 1034 1033 +f 950 951 1035 1034 +f 951 952 1036 1035 +f 952 953 1037 1036 +f 953 954 1038 1037 +f 954 955 1039 1038 +f 955 956 1040 1039 +f 956 957 1041 1040 +f 957 958 1042 1041 +f 958 959 1043 1042 +f 959 960 1044 1043 +f 960 961 1045 1044 +f 961 962 1046 1045 +f 962 963 1047 1046 +f 963 964 1048 1047 +f 964 965 1049 1048 +f 965 966 1050 1049 +f 966 967 1051 1050 +f 967 968 1052 1051 +f 968 969 1053 1052 +f 969 970 1054 1053 +f 970 971 1055 1054 +f 971 972 1056 1055 +f 972 973 1057 1056 +f 973 974 1058 1057 +f 974 975 1059 1058 +f 975 976 1060 1059 +f 976 977 1061 1060 +f 977 978 1062 1061 +f 978 979 1063 1062 +f 979 980 1064 1063 +f 980 981 1065 1064 +f 981 982 1066 1065 +f 982 983 1067 1066 +f 983 984 1068 1067 +f 984 985 1069 1068 +f 985 986 1070 1069 +f 986 987 1071 1070 +f 987 988 1072 1071 +f 988 989 1073 1072 +f 989 990 1074 1073 +f 990 991 1075 1074 +f 991 992 1076 1075 +f 992 993 1077 1076 +f 993 994 1078 1077 +f 994 995 1079 1078 +f 995 996 1080 1079 +f 996 997 1081 1080 +f 997 998 1082 1081 +f 998 999 1083 1082 +f 999 1000 1084 1083 +f 1000 1001 1085 1084 +f 1001 1002 1086 1085 +f 1002 1003 1087 1086 +f 1003 1004 1088 1087 +f 1004 1005 1089 1088 +f 1005 1006 1090 1089 +f 1006 1007 1091 1090 +f 1007 1008 1092 1091 +f 1008 1009 1093 1092 +f 1009 1010 1094 1093 +f 1010 927 1011 1094 +f 1011 1012 1096 1095 +f 1012 1013 1097 1096 +f 1013 1014 1098 1097 +f 1014 1015 1099 1098 +f 1015 1016 1100 1099 +f 1016 1017 1101 1100 +f 1017 1018 1102 1101 +f 1018 1019 1103 1102 +f 1019 1020 1104 1103 +f 1020 1021 1105 1104 +f 1021 1022 1106 1105 +f 1022 1023 1107 1106 +f 1023 1024 1108 1107 +f 1024 1025 1109 1108 +f 1025 1026 1110 1109 +f 1026 1027 1111 1110 +f 1027 1028 1112 1111 +f 1028 1029 1113 1112 +f 1029 1030 1114 1113 +f 1030 1031 1115 1114 +f 1031 1032 1116 1115 +f 1032 1033 1117 1116 +f 1033 1034 1118 1117 +f 1034 1035 1119 1118 +f 1035 1036 1120 1119 +f 1036 1037 1121 1120 +f 1037 1038 1122 1121 +f 1038 1039 1123 1122 +f 1039 1040 1124 1123 +f 1040 1041 1125 1124 +f 1041 1042 1126 1125 +f 1042 1043 1127 1126 +f 1043 1044 1128 1127 +f 1044 1045 1129 1128 +f 1045 1046 1130 1129 +f 1046 1047 1131 1130 +f 1047 1048 1132 1131 +f 1048 1049 1133 1132 +f 1049 1050 1134 1133 +f 1050 1051 1135 1134 +f 1051 1052 1136 1135 +f 1052 1053 1137 1136 +f 1053 1054 1138 1137 +f 1054 1055 1139 1138 +f 1055 1056 1140 1139 +f 1056 1057 1141 1140 +f 1057 1058 1142 1141 +f 1058 1059 1143 1142 +f 1059 1060 1144 1143 +f 1060 1061 1145 1144 +f 1061 1062 1146 1145 +f 1062 1063 1147 1146 +f 1063 1064 1148 1147 +f 1064 1065 1149 1148 +f 1065 1066 1150 1149 +f 1066 1067 1151 1150 +f 1067 1068 1152 1151 +f 1068 1069 1153 1152 +f 1069 1070 1154 1153 +f 1070 1071 1155 1154 +f 1071 1072 1156 1155 +f 1072 1073 1157 1156 +f 1073 1074 1158 1157 +f 1074 1075 1159 1158 +f 1075 1076 1160 1159 +f 1076 1077 1161 1160 +f 1077 1078 1162 1161 +f 1078 1079 1163 1162 +f 1079 1080 1164 1163 +f 1080 1081 1165 1164 +f 1081 1082 1166 1165 +f 1082 1083 1167 1166 +f 1083 1084 1168 1167 +f 1084 1085 1169 1168 +f 1085 1086 1170 1169 +f 1086 1087 1171 1170 +f 1087 1088 1172 1171 +f 1088 1089 1173 1172 +f 1089 1090 1174 1173 +f 1090 1091 1175 1174 +f 1091 1092 1176 1175 +f 1092 1093 1177 1176 +f 1093 1094 1178 1177 +f 1094 1011 1095 1178 +f 1095 1096 1180 1179 +f 1096 1097 1181 1180 +f 1097 1098 1182 1181 +f 1098 1099 1183 1182 +f 1099 1100 1184 1183 +f 1100 1101 1185 1184 +f 1101 1102 1186 1185 +f 1102 1103 1187 1186 +f 1103 1104 1188 1187 +f 1104 1105 1189 1188 +f 1105 1106 1190 1189 +f 1106 1107 1191 1190 +f 1107 1108 1192 1191 +f 1108 1109 1193 1192 +f 1109 1110 1194 1193 +f 1110 1111 1195 1194 +f 1111 1112 1196 1195 +f 1112 1113 1197 1196 +f 1113 1114 1198 1197 +f 1114 1115 1199 1198 +f 1115 1116 1200 1199 +f 1116 1117 1201 1200 +f 1117 1118 1202 1201 +f 1118 1119 1203 1202 +f 1119 1120 1204 1203 +f 1120 1121 1205 1204 +f 1121 1122 1206 1205 +f 1122 1123 1207 1206 +f 1123 1124 1208 1207 +f 1124 1125 1209 1208 +f 1125 1126 1210 1209 +f 1126 1127 1211 1210 +f 1127 1128 1212 1211 +f 1128 1129 1213 1212 +f 1129 1130 1214 1213 +f 1130 1131 1215 1214 +f 1131 1132 1216 1215 +f 1132 1133 1217 1216 +f 1133 1134 1218 1217 +f 1134 1135 1219 1218 +f 1135 1136 1220 1219 +f 1136 1137 1221 1220 +f 1137 1138 1222 1221 +f 1138 1139 1223 1222 +f 1139 1140 1224 1223 +f 1140 1141 1225 1224 +f 1141 1142 1226 1225 +f 1142 1143 1227 1226 +f 1143 1144 1228 1227 +f 1144 1145 1229 1228 +f 1145 1146 1230 1229 +f 1146 1147 1231 1230 +f 1147 1148 1232 1231 +f 1148 1149 1233 1232 +f 1149 1150 1234 1233 +f 1150 1151 1235 1234 +f 1151 1152 1236 1235 +f 1152 1153 1237 1236 +f 1153 1154 1238 1237 +f 1154 1155 1239 1238 +f 1155 1156 1240 1239 +f 1156 1157 1241 1240 +f 1157 1158 1242 1241 +f 1158 1159 1243 1242 +f 1159 1160 1244 1243 +f 1160 1161 1245 1244 +f 1161 1162 1246 1245 +f 1162 1163 1247 1246 +f 1163 1164 1248 1247 +f 1164 1165 1249 1248 +f 1165 1166 1250 1249 +f 1166 1167 1251 1250 +f 1167 1168 1252 1251 +f 1168 1169 1253 1252 +f 1169 1170 1254 1253 +f 1170 1171 1255 1254 +f 1171 1172 1256 1255 +f 1172 1173 1257 1256 +f 1173 1174 1258 1257 +f 1174 1175 1259 1258 +f 1175 1176 1260 1259 +f 1176 1177 1261 1260 +f 1177 1178 1262 1261 +f 1178 1095 1179 1262 +f 1179 1180 1264 1263 +f 1180 1181 1265 1264 +f 1181 1182 1266 1265 +f 1182 1183 1267 1266 +f 1183 1184 1268 1267 +f 1184 1185 1269 1268 +f 1185 1186 1270 1269 +f 1186 1187 1271 1270 +f 1187 1188 1272 1271 +f 1188 1189 1273 1272 +f 1189 1190 1274 1273 +f 1190 1191 1275 1274 +f 1191 1192 1276 1275 +f 1192 1193 1277 1276 +f 1193 1194 1278 1277 +f 1194 1195 1279 1278 +f 1195 1196 1280 1279 +f 1196 1197 1281 1280 +f 1197 1198 1282 1281 +f 1198 1199 1283 1282 +f 1199 1200 1284 1283 +f 1200 1201 1285 1284 +f 1201 1202 1286 1285 +f 1202 1203 1287 1286 +f 1203 1204 1288 1287 +f 1204 1205 1289 1288 +f 1205 1206 1290 1289 +f 1206 1207 1291 1290 +f 1207 1208 1292 1291 +f 1208 1209 1293 1292 +f 1209 1210 1294 1293 +f 1210 1211 1295 1294 +f 1211 1212 1296 1295 +f 1212 1213 1297 1296 +f 1213 1214 1298 1297 +f 1214 1215 1299 1298 +f 1215 1216 1300 1299 +f 1216 1217 1301 1300 +f 1217 1218 1302 1301 +f 1218 1219 1303 1302 +f 1219 1220 1304 1303 +f 1220 1221 1305 1304 +f 1221 1222 1306 1305 +f 1222 1223 1307 1306 +f 1223 1224 1308 1307 +f 1224 1225 1309 1308 +f 1225 1226 1310 1309 +f 1226 1227 1311 1310 +f 1227 1228 1312 1311 +f 1228 1229 1313 1312 +f 1229 1230 1314 1313 +f 1230 1231 1315 1314 +f 1231 1232 1316 1315 +f 1232 1233 1317 1316 +f 1233 1234 1318 1317 +f 1234 1235 1319 1318 +f 1235 1236 1320 1319 +f 1236 1237 1321 1320 +f 1237 1238 1322 1321 +f 1238 1239 1323 1322 +f 1239 1240 1324 1323 +f 1240 1241 1325 1324 +f 1241 1242 1326 1325 +f 1242 1243 1327 1326 +f 1243 1244 1328 1327 +f 1244 1245 1329 1328 +f 1245 1246 1330 1329 +f 1246 1247 1331 1330 +f 1247 1248 1332 1331 +f 1248 1249 1333 1332 +f 1249 1250 1334 1333 +f 1250 1251 1335 1334 +f 1251 1252 1336 1335 +f 1252 1253 1337 1336 +f 1253 1254 1338 1337 +f 1254 1255 1339 1338 +f 1255 1256 1340 1339 +f 1256 1257 1341 1340 +f 1257 1258 1342 1341 +f 1258 1259 1343 1342 +f 1259 1260 1344 1343 +f 1260 1261 1345 1344 +f 1261 1262 1346 1345 +f 1262 1179 1263 1346 +f 1263 1264 1348 1347 +f 1264 1265 1349 1348 +f 1265 1266 1350 1349 +f 1266 1267 1351 1350 +f 1267 1268 1352 1351 +f 1268 1269 1353 1352 +f 1269 1270 1354 1353 +f 1270 1271 1355 1354 +f 1271 1272 1356 1355 +f 1272 1273 1357 1356 +f 1273 1274 1358 1357 +f 1274 1275 1359 1358 +f 1275 1276 1360 1359 +f 1276 1277 1361 1360 +f 1277 1278 1362 1361 +f 1278 1279 1363 1362 +f 1279 1280 1364 1363 +f 1280 1281 1365 1364 +f 1281 1282 1366 1365 +f 1282 1283 1367 1366 +f 1283 1284 1368 1367 +f 1284 1285 1369 1368 +f 1285 1286 1370 1369 +f 1286 1287 1371 1370 +f 1287 1288 1372 1371 +f 1288 1289 1373 1372 +f 1289 1290 1374 1373 +f 1290 1291 1375 1374 +f 1291 1292 1376 1375 +f 1292 1293 1377 1376 +f 1293 1294 1378 1377 +f 1294 1295 1379 1378 +f 1295 1296 1380 1379 +f 1296 1297 1381 1380 +f 1297 1298 1382 1381 +f 1298 1299 1383 1382 +f 1299 1300 1384 1383 +f 1300 1301 1385 1384 +f 1301 1302 1386 1385 +f 1302 1303 1387 1386 +f 1303 1304 1388 1387 +f 1304 1305 1389 1388 +f 1305 1306 1390 1389 +f 1306 1307 1391 1390 +f 1307 1308 1392 1391 +f 1308 1309 1393 1392 +f 1309 1310 1394 1393 +f 1310 1311 1395 1394 +f 1311 1312 1396 1395 +f 1312 1313 1397 1396 +f 1313 1314 1398 1397 +f 1314 1315 1399 1398 +f 1315 1316 1400 1399 +f 1316 1317 1401 1400 +f 1317 1318 1402 1401 +f 1318 1319 1403 1402 +f 1319 1320 1404 1403 +f 1320 1321 1405 1404 +f 1321 1322 1406 1405 +f 1322 1323 1407 1406 +f 1323 1324 1408 1407 +f 1324 1325 1409 1408 +f 1325 1326 1410 1409 +f 1326 1327 1411 1410 +f 1327 1328 1412 1411 +f 1328 1329 1413 1412 +f 1329 1330 1414 1413 +f 1330 1331 1415 1414 +f 1331 1332 1416 1415 +f 1332 1333 1417 1416 +f 1333 1334 1418 1417 +f 1334 1335 1419 1418 +f 1335 1336 1420 1419 +f 1336 1337 1421 1420 +f 1337 1338 1422 1421 +f 1338 1339 1423 1422 +f 1339 1340 1424 1423 +f 1340 1341 1425 1424 +f 1341 1342 1426 1425 +f 1342 1343 1427 1426 +f 1343 1344 1428 1427 +f 1344 1345 1429 1428 +f 1345 1346 1430 1429 +f 1346 1263 1347 1430 +f 1347 1348 1432 1431 +f 1348 1349 1433 1432 +f 1349 1350 1434 1433 +f 1350 1351 1435 1434 +f 1351 1352 1436 1435 +f 1352 1353 1437 1436 +f 1353 1354 1438 1437 +f 1354 1355 1439 1438 +f 1355 1356 1440 1439 +f 1356 1357 1441 1440 +f 1357 1358 1442 1441 +f 1358 1359 1443 1442 +f 1359 1360 1444 1443 +f 1360 1361 1445 1444 +f 1361 1362 1446 1445 +f 1362 1363 1447 1446 +f 1363 1364 1448 1447 +f 1364 1365 1449 1448 +f 1365 1366 1450 1449 +f 1366 1367 1451 1450 +f 1367 1368 1452 1451 +f 1368 1369 1453 1452 +f 1369 1370 1454 1453 +f 1370 1371 1455 1454 +f 1371 1372 1456 1455 +f 1372 1373 1457 1456 +f 1373 1374 1458 1457 +f 1374 1375 1459 1458 +f 1375 1376 1460 1459 +f 1376 1377 1461 1460 +f 1377 1378 1462 1461 +f 1378 1379 1463 1462 +f 1379 1380 1464 1463 +f 1380 1381 1465 1464 +f 1381 1382 1466 1465 +f 1382 1383 1467 1466 +f 1383 1384 1468 1467 +f 1384 1385 1469 1468 +f 1385 1386 1470 1469 +f 1386 1387 1471 1470 +f 1387 1388 1472 1471 +f 1388 1389 1473 1472 +f 1389 1390 1474 1473 +f 1390 1391 1475 1474 +f 1391 1392 1476 1475 +f 1392 1393 1477 1476 +f 1393 1394 1478 1477 +f 1394 1395 1479 1478 +f 1395 1396 1480 1479 +f 1396 1397 1481 1480 +f 1397 1398 1482 1481 +f 1398 1399 1483 1482 +f 1399 1400 1484 1483 +f 1400 1401 1485 1484 +f 1401 1402 1486 1485 +f 1402 1403 1487 1486 +f 1403 1404 1488 1487 +f 1404 1405 1489 1488 +f 1405 1406 1490 1489 +f 1406 1407 1491 1490 +f 1407 1408 1492 1491 +f 1408 1409 1493 1492 +f 1409 1410 1494 1493 +f 1410 1411 1495 1494 +f 1411 1412 1496 1495 +f 1412 1413 1497 1496 +f 1413 1414 1498 1497 +f 1414 1415 1499 1498 +f 1415 1416 1500 1499 +f 1416 1417 1501 1500 +f 1417 1418 1502 1501 +f 1418 1419 1503 1502 +f 1419 1420 1504 1503 +f 1420 1421 1505 1504 +f 1421 1422 1506 1505 +f 1422 1423 1507 1506 +f 1423 1424 1508 1507 +f 1424 1425 1509 1508 +f 1425 1426 1510 1509 +f 1426 1427 1511 1510 +f 1427 1428 1512 1511 +f 1428 1429 1513 1512 +f 1429 1430 1514 1513 +f 1430 1347 1431 1514 +f 1431 1432 1516 1515 +f 1432 1433 1517 1516 +f 1433 1434 1518 1517 +f 1434 1435 1519 1518 +f 1435 1436 1520 1519 +f 1436 1437 1521 1520 +f 1437 1438 1522 1521 +f 1438 1439 1523 1522 +f 1439 1440 1524 1523 +f 1440 1441 1525 1524 +f 1441 1442 1526 1525 +f 1442 1443 1527 1526 +f 1443 1444 1528 1527 +f 1444 1445 1529 1528 +f 1445 1446 1530 1529 +f 1446 1447 1531 1530 +f 1447 1448 1532 1531 +f 1448 1449 1533 1532 +f 1449 1450 1534 1533 +f 1450 1451 1535 1534 +f 1451 1452 1536 1535 +f 1452 1453 1537 1536 +f 1453 1454 1538 1537 +f 1454 1455 1539 1538 +f 1455 1456 1540 1539 +f 1456 1457 1541 1540 +f 1457 1458 1542 1541 +f 1458 1459 1543 1542 +f 1459 1460 1544 1543 +f 1460 1461 1545 1544 +f 1461 1462 1546 1545 +f 1462 1463 1547 1546 +f 1463 1464 1548 1547 +f 1464 1465 1549 1548 +f 1465 1466 1550 1549 +f 1466 1467 1551 1550 +f 1467 1468 1552 1551 +f 1468 1469 1553 1552 +f 1469 1470 1554 1553 +f 1470 1471 1555 1554 +f 1471 1472 1556 1555 +f 1472 1473 1557 1556 +f 1473 1474 1558 1557 +f 1474 1475 1559 1558 +f 1475 1476 1560 1559 +f 1476 1477 1561 1560 +f 1477 1478 1562 1561 +f 1478 1479 1563 1562 +f 1479 1480 1564 1563 +f 1480 1481 1565 1564 +f 1481 1482 1566 1565 +f 1482 1483 1567 1566 +f 1483 1484 1568 1567 +f 1484 1485 1569 1568 +f 1485 1486 1570 1569 +f 1486 1487 1571 1570 +f 1487 1488 1572 1571 +f 1488 1489 1573 1572 +f 1489 1490 1574 1573 +f 1490 1491 1575 1574 +f 1491 1492 1576 1575 +f 1492 1493 1577 1576 +f 1493 1494 1578 1577 +f 1494 1495 1579 1578 +f 1495 1496 1580 1579 +f 1496 1497 1581 1580 +f 1497 1498 1582 1581 +f 1498 1499 1583 1582 +f 1499 1500 1584 1583 +f 1500 1501 1585 1584 +f 1501 1502 1586 1585 +f 1502 1503 1587 1586 +f 1503 1504 1588 1587 +f 1504 1505 1589 1588 +f 1505 1506 1590 1589 +f 1506 1507 1591 1590 +f 1507 1508 1592 1591 +f 1508 1509 1593 1592 +f 1509 1510 1594 1593 +f 1510 1511 1595 1594 +f 1511 1512 1596 1595 +f 1512 1513 1597 1596 +f 1513 1514 1598 1597 +f 1514 1431 1515 1598 +f 1515 1516 1600 1599 +f 1516 1517 1601 1600 +f 1517 1518 1602 1601 +f 1518 1519 1603 1602 +f 1519 1520 1604 1603 +f 1520 1521 1605 1604 +f 1521 1522 1606 1605 +f 1522 1523 1607 1606 +f 1523 1524 1608 1607 +f 1524 1525 1609 1608 +f 1525 1526 1610 1609 +f 1526 1527 1611 1610 +f 1527 1528 1612 1611 +f 1528 1529 1613 1612 +f 1529 1530 1614 1613 +f 1530 1531 1615 1614 +f 1531 1532 1616 1615 +f 1532 1533 1617 1616 +f 1533 1534 1618 1617 +f 1534 1535 1619 1618 +f 1535 1536 1620 1619 +f 1536 1537 1621 1620 +f 1537 1538 1622 1621 +f 1538 1539 1623 1622 +f 1539 1540 1624 1623 +f 1540 1541 1625 1624 +f 1541 1542 1626 1625 +f 1542 1543 1627 1626 +f 1543 1544 1628 1627 +f 1544 1545 1629 1628 +f 1545 1546 1630 1629 +f 1546 1547 1631 1630 +f 1547 1548 1632 1631 +f 1548 1549 1633 1632 +f 1549 1550 1634 1633 +f 1550 1551 1635 1634 +f 1551 1552 1636 1635 +f 1552 1553 1637 1636 +f 1553 1554 1638 1637 +f 1554 1555 1639 1638 +f 1555 1556 1640 1639 +f 1556 1557 1641 1640 +f 1557 1558 1642 1641 +f 1558 1559 1643 1642 +f 1559 1560 1644 1643 +f 1560 1561 1645 1644 +f 1561 1562 1646 1645 +f 1562 1563 1647 1646 +f 1563 1564 1648 1647 +f 1564 1565 1649 1648 +f 1565 1566 1650 1649 +f 1566 1567 1651 1650 +f 1567 1568 1652 1651 +f 1568 1569 1653 1652 +f 1569 1570 1654 1653 +f 1570 1571 1655 1654 +f 1571 1572 1656 1655 +f 1572 1573 1657 1656 +f 1573 1574 1658 1657 +f 1574 1575 1659 1658 +f 1575 1576 1660 1659 +f 1576 1577 1661 1660 +f 1577 1578 1662 1661 +f 1578 1579 1663 1662 +f 1579 1580 1664 1663 +f 1580 1581 1665 1664 +f 1581 1582 1666 1665 +f 1582 1583 1667 1666 +f 1583 1584 1668 1667 +f 1584 1585 1669 1668 +f 1585 1586 1670 1669 +f 1586 1587 1671 1670 +f 1587 1588 1672 1671 +f 1588 1589 1673 1672 +f 1589 1590 1674 1673 +f 1590 1591 1675 1674 +f 1591 1592 1676 1675 +f 1592 1593 1677 1676 +f 1593 1594 1678 1677 +f 1594 1595 1679 1678 +f 1595 1596 1680 1679 +f 1596 1597 1681 1680 +f 1597 1598 1682 1681 +f 1598 1515 1599 1682 +f 1599 1600 1684 1683 +f 1600 1601 1685 1684 +f 1601 1602 1686 1685 +f 1602 1603 1687 1686 +f 1603 1604 1688 1687 +f 1604 1605 1689 1688 +f 1605 1606 1690 1689 +f 1606 1607 1691 1690 +f 1607 1608 1692 1691 +f 1608 1609 1693 1692 +f 1609 1610 1694 1693 +f 1610 1611 1695 1694 +f 1611 1612 1696 1695 +f 1612 1613 1697 1696 +f 1613 1614 1698 1697 +f 1614 1615 1699 1698 +f 1615 1616 1700 1699 +f 1616 1617 1701 1700 +f 1617 1618 1702 1701 +f 1618 1619 1703 1702 +f 1619 1620 1704 1703 +f 1620 1621 1705 1704 +f 1621 1622 1706 1705 +f 1622 1623 1707 1706 +f 1623 1624 1708 1707 +f 1624 1625 1709 1708 +f 1625 1626 1710 1709 +f 1626 1627 1711 1710 +f 1627 1628 1712 1711 +f 1628 1629 1713 1712 +f 1629 1630 1714 1713 +f 1630 1631 1715 1714 +f 1631 1632 1716 1715 +f 1632 1633 1717 1716 +f 1633 1634 1718 1717 +f 1634 1635 1719 1718 +f 1635 1636 1720 1719 +f 1636 1637 1721 1720 +f 1637 1638 1722 1721 +f 1638 1639 1723 1722 +f 1639 1640 1724 1723 +f 1640 1641 1725 1724 +f 1641 1642 1726 1725 +f 1642 1643 1727 1726 +f 1643 1644 1728 1727 +f 1644 1645 1729 1728 +f 1645 1646 1730 1729 +f 1646 1647 1731 1730 +f 1647 1648 1732 1731 +f 1648 1649 1733 1732 +f 1649 1650 1734 1733 +f 1650 1651 1735 1734 +f 1651 1652 1736 1735 +f 1652 1653 1737 1736 +f 1653 1654 1738 1737 +f 1654 1655 1739 1738 +f 1655 1656 1740 1739 +f 1656 1657 1741 1740 +f 1657 1658 1742 1741 +f 1658 1659 1743 1742 +f 1659 1660 1744 1743 +f 1660 1661 1745 1744 +f 1661 1662 1746 1745 +f 1662 1663 1747 1746 +f 1663 1664 1748 1747 +f 1664 1665 1749 1748 +f 1665 1666 1750 1749 +f 1666 1667 1751 1750 +f 1667 1668 1752 1751 +f 1668 1669 1753 1752 +f 1669 1670 1754 1753 +f 1670 1671 1755 1754 +f 1671 1672 1756 1755 +f 1672 1673 1757 1756 +f 1673 1674 1758 1757 +f 1674 1675 1759 1758 +f 1675 1676 1760 1759 +f 1676 1677 1761 1760 +f 1677 1678 1762 1761 +f 1678 1679 1763 1762 +f 1679 1680 1764 1763 +f 1680 1681 1765 1764 +f 1681 1682 1766 1765 +f 1682 1599 1683 1766 +f 1683 1684 1768 1767 +f 1684 1685 1769 1768 +f 1685 1686 1770 1769 +f 1686 1687 1771 1770 +f 1687 1688 1772 1771 +f 1688 1689 1773 1772 +f 1689 1690 1774 1773 +f 1690 1691 1775 1774 +f 1691 1692 1776 1775 +f 1692 1693 1777 1776 +f 1693 1694 1778 1777 +f 1694 1695 1779 1778 +f 1695 1696 1780 1779 +f 1696 1697 1781 1780 +f 1697 1698 1782 1781 +f 1698 1699 1783 1782 +f 1699 1700 1784 1783 +f 1700 1701 1785 1784 +f 1701 1702 1786 1785 +f 1702 1703 1787 1786 +f 1703 1704 1788 1787 +f 1704 1705 1789 1788 +f 1705 1706 1790 1789 +f 1706 1707 1791 1790 +f 1707 1708 1792 1791 +f 1708 1709 1793 1792 +f 1709 1710 1794 1793 +f 1710 1711 1795 1794 +f 1711 1712 1796 1795 +f 1712 1713 1797 1796 +f 1713 1714 1798 1797 +f 1714 1715 1799 1798 +f 1715 1716 1800 1799 +f 1716 1717 1801 1800 +f 1717 1718 1802 1801 +f 1718 1719 1803 1802 +f 1719 1720 1804 1803 +f 1720 1721 1805 1804 +f 1721 1722 1806 1805 +f 1722 1723 1807 1806 +f 1723 1724 1808 1807 +f 1724 1725 1809 1808 +f 1725 1726 1810 1809 +f 1726 1727 1811 1810 +f 1727 1728 1812 1811 +f 1728 1729 1813 1812 +f 1729 1730 1814 1813 +f 1730 1731 1815 1814 +f 1731 1732 1816 1815 +f 1732 1733 1817 1816 +f 1733 1734 1818 1817 +f 1734 1735 1819 1818 +f 1735 1736 1820 1819 +f 1736 1737 1821 1820 +f 1737 1738 1822 1821 +f 1738 1739 1823 1822 +f 1739 1740 1824 1823 +f 1740 1741 1825 1824 +f 1741 1742 1826 1825 +f 1742 1743 1827 1826 +f 1743 1744 1828 1827 +f 1744 1745 1829 1828 +f 1745 1746 1830 1829 +f 1746 1747 1831 1830 +f 1747 1748 1832 1831 +f 1748 1749 1833 1832 +f 1749 1750 1834 1833 +f 1750 1751 1835 1834 +f 1751 1752 1836 1835 +f 1752 1753 1837 1836 +f 1753 1754 1838 1837 +f 1754 1755 1839 1838 +f 1755 1756 1840 1839 +f 1756 1757 1841 1840 +f 1757 1758 1842 1841 +f 1758 1759 1843 1842 +f 1759 1760 1844 1843 +f 1760 1761 1845 1844 +f 1761 1762 1846 1845 +f 1762 1763 1847 1846 +f 1763 1764 1848 1847 +f 1764 1765 1849 1848 +f 1765 1766 1850 1849 +f 1766 1683 1767 1850 +f 1767 1768 1852 1851 +f 1768 1769 1853 1852 +f 1769 1770 1854 1853 +f 1770 1771 1855 1854 +f 1771 1772 1856 1855 +f 1772 1773 1857 1856 +f 1773 1774 1858 1857 +f 1774 1775 1859 1858 +f 1775 1776 1860 1859 +f 1776 1777 1861 1860 +f 1777 1778 1862 1861 +f 1778 1779 1863 1862 +f 1779 1780 1864 1863 +f 1780 1781 1865 1864 +f 1781 1782 1866 1865 +f 1782 1783 1867 1866 +f 1783 1784 1868 1867 +f 1784 1785 1869 1868 +f 1785 1786 1870 1869 +f 1786 1787 1871 1870 +f 1787 1788 1872 1871 +f 1788 1789 1873 1872 +f 1789 1790 1874 1873 +f 1790 1791 1875 1874 +f 1791 1792 1876 1875 +f 1792 1793 1877 1876 +f 1793 1794 1878 1877 +f 1794 1795 1879 1878 +f 1795 1796 1880 1879 +f 1796 1797 1881 1880 +f 1797 1798 1882 1881 +f 1798 1799 1883 1882 +f 1799 1800 1884 1883 +f 1800 1801 1885 1884 +f 1801 1802 1886 1885 +f 1802 1803 1887 1886 +f 1803 1804 1888 1887 +f 1804 1805 1889 1888 +f 1805 1806 1890 1889 +f 1806 1807 1891 1890 +f 1807 1808 1892 1891 +f 1808 1809 1893 1892 +f 1809 1810 1894 1893 +f 1810 1811 1895 1894 +f 1811 1812 1896 1895 +f 1812 1813 1897 1896 +f 1813 1814 1898 1897 +f 1814 1815 1899 1898 +f 1815 1816 1900 1899 +f 1816 1817 1901 1900 +f 1817 1818 1902 1901 +f 1818 1819 1903 1902 +f 1819 1820 1904 1903 +f 1820 1821 1905 1904 +f 1821 1822 1906 1905 +f 1822 1823 1907 1906 +f 1823 1824 1908 1907 +f 1824 1825 1909 1908 +f 1825 1826 1910 1909 +f 1826 1827 1911 1910 +f 1827 1828 1912 1911 +f 1828 1829 1913 1912 +f 1829 1830 1914 1913 +f 1830 1831 1915 1914 +f 1831 1832 1916 1915 +f 1832 1833 1917 1916 +f 1833 1834 1918 1917 +f 1834 1835 1919 1918 +f 1835 1836 1920 1919 +f 1836 1837 1921 1920 +f 1837 1838 1922 1921 +f 1838 1839 1923 1922 +f 1839 1840 1924 1923 +f 1840 1841 1925 1924 +f 1841 1842 1926 1925 +f 1842 1843 1927 1926 +f 1843 1844 1928 1927 +f 1844 1845 1929 1928 +f 1845 1846 1930 1929 +f 1846 1847 1931 1930 +f 1847 1848 1932 1931 +f 1848 1849 1933 1932 +f 1849 1850 1934 1933 +f 1850 1767 1851 1934 +f 1851 1852 1936 1935 +f 1852 1853 1937 1936 +f 1853 1854 1938 1937 +f 1854 1855 1939 1938 +f 1855 1856 1940 1939 +f 1856 1857 1941 1940 +f 1857 1858 1942 1941 +f 1858 1859 1943 1942 +f 1859 1860 1944 1943 +f 1860 1861 1945 1944 +f 1861 1862 1946 1945 +f 1862 1863 1947 1946 +f 1863 1864 1948 1947 +f 1864 1865 1949 1948 +f 1865 1866 1950 1949 +f 1866 1867 1951 1950 +f 1867 1868 1952 1951 +f 1868 1869 1953 1952 +f 1869 1870 1954 1953 +f 1870 1871 1955 1954 +f 1871 1872 1956 1955 +f 1872 1873 1957 1956 +f 1873 1874 1958 1957 +f 1874 1875 1959 1958 +f 1875 1876 1960 1959 +f 1876 1877 1961 1960 +f 1877 1878 1962 1961 +f 1878 1879 1963 1962 +f 1879 1880 1964 1963 +f 1880 1881 1965 1964 +f 1881 1882 1966 1965 +f 1882 1883 1967 1966 +f 1883 1884 1968 1967 +f 1884 1885 1969 1968 +f 1885 1886 1970 1969 +f 1886 1887 1971 1970 +f 1887 1888 1972 1971 +f 1888 1889 1973 1972 +f 1889 1890 1974 1973 +f 1890 1891 1975 1974 +f 1891 1892 1976 1975 +f 1892 1893 1977 1976 +f 1893 1894 1978 1977 +f 1894 1895 1979 1978 +f 1895 1896 1980 1979 +f 1896 1897 1981 1980 +f 1897 1898 1982 1981 +f 1898 1899 1983 1982 +f 1899 1900 1984 1983 +f 1900 1901 1985 1984 +f 1901 1902 1986 1985 +f 1902 1903 1987 1986 +f 1903 1904 1988 1987 +f 1904 1905 1989 1988 +f 1905 1906 1990 1989 +f 1906 1907 1991 1990 +f 1907 1908 1992 1991 +f 1908 1909 1993 1992 +f 1909 1910 1994 1993 +f 1910 1911 1995 1994 +f 1911 1912 1996 1995 +f 1912 1913 1997 1996 +f 1913 1914 1998 1997 +f 1914 1915 1999 1998 +f 1915 1916 2000 1999 +f 1916 1917 2001 2000 +f 1917 1918 2002 2001 +f 1918 1919 2003 2002 +f 1919 1920 2004 2003 +f 1920 1921 2005 2004 +f 1921 1922 2006 2005 +f 1922 1923 2007 2006 +f 1923 1924 2008 2007 +f 1924 1925 2009 2008 +f 1925 1926 2010 2009 +f 1926 1927 2011 2010 +f 1927 1928 2012 2011 +f 1928 1929 2013 2012 +f 1929 1930 2014 2013 +f 1930 1931 2015 2014 +f 1931 1932 2016 2015 +f 1932 1933 2017 2016 +f 1933 1934 2018 2017 +f 1934 1851 1935 2018 +f 1935 1936 2020 2019 +f 1936 1937 2021 2020 +f 1937 1938 2022 2021 +f 1938 1939 2023 2022 +f 1939 1940 2024 2023 +f 1940 1941 2025 2024 +f 1941 1942 2026 2025 +f 1942 1943 2027 2026 +f 1943 1944 2028 2027 +f 1944 1945 2029 2028 +f 1945 1946 2030 2029 +f 1946 1947 2031 2030 +f 1947 1948 2032 2031 +f 1948 1949 2033 2032 +f 1949 1950 2034 2033 +f 1950 1951 2035 2034 +f 1951 1952 2036 2035 +f 1952 1953 2037 2036 +f 1953 1954 2038 2037 +f 1954 1955 2039 2038 +f 1955 1956 2040 2039 +f 1956 1957 2041 2040 +f 1957 1958 2042 2041 +f 1958 1959 2043 2042 +f 1959 1960 2044 2043 +f 1960 1961 2045 2044 +f 1961 1962 2046 2045 +f 1962 1963 2047 2046 +f 1963 1964 2048 2047 +f 1964 1965 2049 2048 +f 1965 1966 2050 2049 +f 1966 1967 2051 2050 +f 1967 1968 2052 2051 +f 1968 1969 2053 2052 +f 1969 1970 2054 2053 +f 1970 1971 2055 2054 +f 1971 1972 2056 2055 +f 1972 1973 2057 2056 +f 1973 1974 2058 2057 +f 1974 1975 2059 2058 +f 1975 1976 2060 2059 +f 1976 1977 2061 2060 +f 1977 1978 2062 2061 +f 1978 1979 2063 2062 +f 1979 1980 2064 2063 +f 1980 1981 2065 2064 +f 1981 1982 2066 2065 +f 1982 1983 2067 2066 +f 1983 1984 2068 2067 +f 1984 1985 2069 2068 +f 1985 1986 2070 2069 +f 1986 1987 2071 2070 +f 1987 1988 2072 2071 +f 1988 1989 2073 2072 +f 1989 1990 2074 2073 +f 1990 1991 2075 2074 +f 1991 1992 2076 2075 +f 1992 1993 2077 2076 +f 1993 1994 2078 2077 +f 1994 1995 2079 2078 +f 1995 1996 2080 2079 +f 1996 1997 2081 2080 +f 1997 1998 2082 2081 +f 1998 1999 2083 2082 +f 1999 2000 2084 2083 +f 2000 2001 2085 2084 +f 2001 2002 2086 2085 +f 2002 2003 2087 2086 +f 2003 2004 2088 2087 +f 2004 2005 2089 2088 +f 2005 2006 2090 2089 +f 2006 2007 2091 2090 +f 2007 2008 2092 2091 +f 2008 2009 2093 2092 +f 2009 2010 2094 2093 +f 2010 2011 2095 2094 +f 2011 2012 2096 2095 +f 2012 2013 2097 2096 +f 2013 2014 2098 2097 +f 2014 2015 2099 2098 +f 2015 2016 2100 2099 +f 2016 2017 2101 2100 +f 2017 2018 2102 2101 +f 2018 1935 2019 2102 +f 2019 2020 2104 2103 +f 2020 2021 2105 2104 +f 2021 2022 2106 2105 +f 2022 2023 2107 2106 +f 2023 2024 2108 2107 +f 2024 2025 2109 2108 +f 2025 2026 2110 2109 +f 2026 2027 2111 2110 +f 2027 2028 2112 2111 +f 2028 2029 2113 2112 +f 2029 2030 2114 2113 +f 2030 2031 2115 2114 +f 2031 2032 2116 2115 +f 2032 2033 2117 2116 +f 2033 2034 2118 2117 +f 2034 2035 2119 2118 +f 2035 2036 2120 2119 +f 2036 2037 2121 2120 +f 2037 2038 2122 2121 +f 2038 2039 2123 2122 +f 2039 2040 2124 2123 +f 2040 2041 2125 2124 +f 2041 2042 2126 2125 +f 2042 2043 2127 2126 +f 2043 2044 2128 2127 +f 2044 2045 2129 2128 +f 2045 2046 2130 2129 +f 2046 2047 2131 2130 +f 2047 2048 2132 2131 +f 2048 2049 2133 2132 +f 2049 2050 2134 2133 +f 2050 2051 2135 2134 +f 2051 2052 2136 2135 +f 2052 2053 2137 2136 +f 2053 2054 2138 2137 +f 2054 2055 2139 2138 +f 2055 2056 2140 2139 +f 2056 2057 2141 2140 +f 2057 2058 2142 2141 +f 2058 2059 2143 2142 +f 2059 2060 2144 2143 +f 2060 2061 2145 2144 +f 2061 2062 2146 2145 +f 2062 2063 2147 2146 +f 2063 2064 2148 2147 +f 2064 2065 2149 2148 +f 2065 2066 2150 2149 +f 2066 2067 2151 2150 +f 2067 2068 2152 2151 +f 2068 2069 2153 2152 +f 2069 2070 2154 2153 +f 2070 2071 2155 2154 +f 2071 2072 2156 2155 +f 2072 2073 2157 2156 +f 2073 2074 2158 2157 +f 2074 2075 2159 2158 +f 2075 2076 2160 2159 +f 2076 2077 2161 2160 +f 2077 2078 2162 2161 +f 2078 2079 2163 2162 +f 2079 2080 2164 2163 +f 2080 2081 2165 2164 +f 2081 2082 2166 2165 +f 2082 2083 2167 2166 +f 2083 2084 2168 2167 +f 2084 2085 2169 2168 +f 2085 2086 2170 2169 +f 2086 2087 2171 2170 +f 2087 2088 2172 2171 +f 2088 2089 2173 2172 +f 2089 2090 2174 2173 +f 2090 2091 2175 2174 +f 2091 2092 2176 2175 +f 2092 2093 2177 2176 +f 2093 2094 2178 2177 +f 2094 2095 2179 2178 +f 2095 2096 2180 2179 +f 2096 2097 2181 2180 +f 2097 2098 2182 2181 +f 2098 2099 2183 2182 +f 2099 2100 2184 2183 +f 2100 2101 2185 2184 +f 2101 2102 2186 2185 +f 2102 2019 2103 2186 +f 2103 2104 2188 2187 +f 2104 2105 2189 2188 +f 2105 2106 2190 2189 +f 2106 2107 2191 2190 +f 2107 2108 2192 2191 +f 2108 2109 2193 2192 +f 2109 2110 2194 2193 +f 2110 2111 2195 2194 +f 2111 2112 2196 2195 +f 2112 2113 2197 2196 +f 2113 2114 2198 2197 +f 2114 2115 2199 2198 +f 2115 2116 2200 2199 +f 2116 2117 2201 2200 +f 2117 2118 2202 2201 +f 2118 2119 2203 2202 +f 2119 2120 2204 2203 +f 2120 2121 2205 2204 +f 2121 2122 2206 2205 +f 2122 2123 2207 2206 +f 2123 2124 2208 2207 +f 2124 2125 2209 2208 +f 2125 2126 2210 2209 +f 2126 2127 2211 2210 +f 2127 2128 2212 2211 +f 2128 2129 2213 2212 +f 2129 2130 2214 2213 +f 2130 2131 2215 2214 +f 2131 2132 2216 2215 +f 2132 2133 2217 2216 +f 2133 2134 2218 2217 +f 2134 2135 2219 2218 +f 2135 2136 2220 2219 +f 2136 2137 2221 2220 +f 2137 2138 2222 2221 +f 2138 2139 2223 2222 +f 2139 2140 2224 2223 +f 2140 2141 2225 2224 +f 2141 2142 2226 2225 +f 2142 2143 2227 2226 +f 2143 2144 2228 2227 +f 2144 2145 2229 2228 +f 2145 2146 2230 2229 +f 2146 2147 2231 2230 +f 2147 2148 2232 2231 +f 2148 2149 2233 2232 +f 2149 2150 2234 2233 +f 2150 2151 2235 2234 +f 2151 2152 2236 2235 +f 2152 2153 2237 2236 +f 2153 2154 2238 2237 +f 2154 2155 2239 2238 +f 2155 2156 2240 2239 +f 2156 2157 2241 2240 +f 2157 2158 2242 2241 +f 2158 2159 2243 2242 +f 2159 2160 2244 2243 +f 2160 2161 2245 2244 +f 2161 2162 2246 2245 +f 2162 2163 2247 2246 +f 2163 2164 2248 2247 +f 2164 2165 2249 2248 +f 2165 2166 2250 2249 +f 2166 2167 2251 2250 +f 2167 2168 2252 2251 +f 2168 2169 2253 2252 +f 2169 2170 2254 2253 +f 2170 2171 2255 2254 +f 2171 2172 2256 2255 +f 2172 2173 2257 2256 +f 2173 2174 2258 2257 +f 2174 2175 2259 2258 +f 2175 2176 2260 2259 +f 2176 2177 2261 2260 +f 2177 2178 2262 2261 +f 2178 2179 2263 2262 +f 2179 2180 2264 2263 +f 2180 2181 2265 2264 +f 2181 2182 2266 2265 +f 2182 2183 2267 2266 +f 2183 2184 2268 2267 +f 2184 2185 2269 2268 +f 2185 2186 2270 2269 +f 2186 2103 2187 2270 +f 2187 2188 2272 2271 +f 2188 2189 2273 2272 +f 2189 2190 2274 2273 +f 2190 2191 2275 2274 +f 2191 2192 2276 2275 +f 2192 2193 2277 2276 +f 2193 2194 2278 2277 +f 2194 2195 2279 2278 +f 2195 2196 2280 2279 +f 2196 2197 2281 2280 +f 2197 2198 2282 2281 +f 2198 2199 2283 2282 +f 2199 2200 2284 2283 +f 2200 2201 2285 2284 +f 2201 2202 2286 2285 +f 2202 2203 2287 2286 +f 2203 2204 2288 2287 +f 2204 2205 2289 2288 +f 2205 2206 2290 2289 +f 2206 2207 2291 2290 +f 2207 2208 2292 2291 +f 2208 2209 2293 2292 +f 2209 2210 2294 2293 +f 2210 2211 2295 2294 +f 2211 2212 2296 2295 +f 2212 2213 2297 2296 +f 2213 2214 2298 2297 +f 2214 2215 2299 2298 +f 2215 2216 2300 2299 +f 2216 2217 2301 2300 +f 2217 2218 2302 2301 +f 2218 2219 2303 2302 +f 2219 2220 2304 2303 +f 2220 2221 2305 2304 +f 2221 2222 2306 2305 +f 2222 2223 2307 2306 +f 2223 2224 2308 2307 +f 2224 2225 2309 2308 +f 2225 2226 2310 2309 +f 2226 2227 2311 2310 +f 2227 2228 2312 2311 +f 2228 2229 2313 2312 +f 2229 2230 2314 2313 +f 2230 2231 2315 2314 +f 2231 2232 2316 2315 +f 2232 2233 2317 2316 +f 2233 2234 2318 2317 +f 2234 2235 2319 2318 +f 2235 2236 2320 2319 +f 2236 2237 2321 2320 +f 2237 2238 2322 2321 +f 2238 2239 2323 2322 +f 2239 2240 2324 2323 +f 2240 2241 2325 2324 +f 2241 2242 2326 2325 +f 2242 2243 2327 2326 +f 2243 2244 2328 2327 +f 2244 2245 2329 2328 +f 2245 2246 2330 2329 +f 2246 2247 2331 2330 +f 2247 2248 2332 2331 +f 2248 2249 2333 2332 +f 2249 2250 2334 2333 +f 2250 2251 2335 2334 +f 2251 2252 2336 2335 +f 2252 2253 2337 2336 +f 2253 2254 2338 2337 +f 2254 2255 2339 2338 +f 2255 2256 2340 2339 +f 2256 2257 2341 2340 +f 2257 2258 2342 2341 +f 2258 2259 2343 2342 +f 2259 2260 2344 2343 +f 2260 2261 2345 2344 +f 2261 2262 2346 2345 +f 2262 2263 2347 2346 +f 2263 2264 2348 2347 +f 2264 2265 2349 2348 +f 2265 2266 2350 2349 +f 2266 2267 2351 2350 +f 2267 2268 2352 2351 +f 2268 2269 2353 2352 +f 2269 2270 2354 2353 +f 2270 2187 2271 2354 +f 2271 2272 2356 2355 +f 2272 2273 2357 2356 +f 2273 2274 2358 2357 +f 2274 2275 2359 2358 +f 2275 2276 2360 2359 +f 2276 2277 2361 2360 +f 2277 2278 2362 2361 +f 2278 2279 2363 2362 +f 2279 2280 2364 2363 +f 2280 2281 2365 2364 +f 2281 2282 2366 2365 +f 2282 2283 2367 2366 +f 2283 2284 2368 2367 +f 2284 2285 2369 2368 +f 2285 2286 2370 2369 +f 2286 2287 2371 2370 +f 2287 2288 2372 2371 +f 2288 2289 2373 2372 +f 2289 2290 2374 2373 +f 2290 2291 2375 2374 +f 2291 2292 2376 2375 +f 2292 2293 2377 2376 +f 2293 2294 2378 2377 +f 2294 2295 2379 2378 +f 2295 2296 2380 2379 +f 2296 2297 2381 2380 +f 2297 2298 2382 2381 +f 2298 2299 2383 2382 +f 2299 2300 2384 2383 +f 2300 2301 2385 2384 +f 2301 2302 2386 2385 +f 2302 2303 2387 2386 +f 2303 2304 2388 2387 +f 2304 2305 2389 2388 +f 2305 2306 2390 2389 +f 2306 2307 2391 2390 +f 2307 2308 2392 2391 +f 2308 2309 2393 2392 +f 2309 2310 2394 2393 +f 2310 2311 2395 2394 +f 2311 2312 2396 2395 +f 2312 2313 2397 2396 +f 2313 2314 2398 2397 +f 2314 2315 2399 2398 +f 2315 2316 2400 2399 +f 2316 2317 2401 2400 +f 2317 2318 2402 2401 +f 2318 2319 2403 2402 +f 2319 2320 2404 2403 +f 2320 2321 2405 2404 +f 2321 2322 2406 2405 +f 2322 2323 2407 2406 +f 2323 2324 2408 2407 +f 2324 2325 2409 2408 +f 2325 2326 2410 2409 +f 2326 2327 2411 2410 +f 2327 2328 2412 2411 +f 2328 2329 2413 2412 +f 2329 2330 2414 2413 +f 2330 2331 2415 2414 +f 2331 2332 2416 2415 +f 2332 2333 2417 2416 +f 2333 2334 2418 2417 +f 2334 2335 2419 2418 +f 2335 2336 2420 2419 +f 2336 2337 2421 2420 +f 2337 2338 2422 2421 +f 2338 2339 2423 2422 +f 2339 2340 2424 2423 +f 2340 2341 2425 2424 +f 2341 2342 2426 2425 +f 2342 2343 2427 2426 +f 2343 2344 2428 2427 +f 2344 2345 2429 2428 +f 2345 2346 2430 2429 +f 2346 2347 2431 2430 +f 2347 2348 2432 2431 +f 2348 2349 2433 2432 +f 2349 2350 2434 2433 +f 2350 2351 2435 2434 +f 2351 2352 2436 2435 +f 2352 2353 2437 2436 +f 2353 2354 2438 2437 +f 2354 2271 2355 2438 +f 2355 2356 2440 2439 +f 2356 2357 2441 2440 +f 2357 2358 2442 2441 +f 2358 2359 2443 2442 +f 2359 2360 2444 2443 +f 2360 2361 2445 2444 +f 2361 2362 2446 2445 +f 2362 2363 2447 2446 +f 2363 2364 2448 2447 +f 2364 2365 2449 2448 +f 2365 2366 2450 2449 +f 2366 2367 2451 2450 +f 2367 2368 2452 2451 +f 2368 2369 2453 2452 +f 2369 2370 2454 2453 +f 2370 2371 2455 2454 +f 2371 2372 2456 2455 +f 2372 2373 2457 2456 +f 2373 2374 2458 2457 +f 2374 2375 2459 2458 +f 2375 2376 2460 2459 +f 2376 2377 2461 2460 +f 2377 2378 2462 2461 +f 2378 2379 2463 2462 +f 2379 2380 2464 2463 +f 2380 2381 2465 2464 +f 2381 2382 2466 2465 +f 2382 2383 2467 2466 +f 2383 2384 2468 2467 +f 2384 2385 2469 2468 +f 2385 2386 2470 2469 +f 2386 2387 2471 2470 +f 2387 2388 2472 2471 +f 2388 2389 2473 2472 +f 2389 2390 2474 2473 +f 2390 2391 2475 2474 +f 2391 2392 2476 2475 +f 2392 2393 2477 2476 +f 2393 2394 2478 2477 +f 2394 2395 2479 2478 +f 2395 2396 2480 2479 +f 2396 2397 2481 2480 +f 2397 2398 2482 2481 +f 2398 2399 2483 2482 +f 2399 2400 2484 2483 +f 2400 2401 2485 2484 +f 2401 2402 2486 2485 +f 2402 2403 2487 2486 +f 2403 2404 2488 2487 +f 2404 2405 2489 2488 +f 2405 2406 2490 2489 +f 2406 2407 2491 2490 +f 2407 2408 2492 2491 +f 2408 2409 2493 2492 +f 2409 2410 2494 2493 +f 2410 2411 2495 2494 +f 2411 2412 2496 2495 +f 2412 2413 2497 2496 +f 2413 2414 2498 2497 +f 2414 2415 2499 2498 +f 2415 2416 2500 2499 +f 2416 2417 2501 2500 +f 2417 2418 2502 2501 +f 2418 2419 2503 2502 +f 2419 2420 2504 2503 +f 2420 2421 2505 2504 +f 2421 2422 2506 2505 +f 2422 2423 2507 2506 +f 2423 2424 2508 2507 +f 2424 2425 2509 2508 +f 2425 2426 2510 2509 +f 2426 2427 2511 2510 +f 2427 2428 2512 2511 +f 2428 2429 2513 2512 +f 2429 2430 2514 2513 +f 2430 2431 2515 2514 +f 2431 2432 2516 2515 +f 2432 2433 2517 2516 +f 2433 2434 2518 2517 +f 2434 2435 2519 2518 +f 2435 2436 2520 2519 +f 2436 2437 2521 2520 +f 2437 2438 2522 2521 +f 2438 2355 2439 2522 +f 2439 2440 2524 2523 +f 2440 2441 2525 2524 +f 2441 2442 2526 2525 +f 2442 2443 2527 2526 +f 2443 2444 2528 2527 +f 2444 2445 2529 2528 +f 2445 2446 2530 2529 +f 2446 2447 2531 2530 +f 2447 2448 2532 2531 +f 2448 2449 2533 2532 +f 2449 2450 2534 2533 +f 2450 2451 2535 2534 +f 2451 2452 2536 2535 +f 2452 2453 2537 2536 +f 2453 2454 2538 2537 +f 2454 2455 2539 2538 +f 2455 2456 2540 2539 +f 2456 2457 2541 2540 +f 2457 2458 2542 2541 +f 2458 2459 2543 2542 +f 2459 2460 2544 2543 +f 2460 2461 2545 2544 +f 2461 2462 2546 2545 +f 2462 2463 2547 2546 +f 2463 2464 2548 2547 +f 2464 2465 2549 2548 +f 2465 2466 2550 2549 +f 2466 2467 2551 2550 +f 2467 2468 2552 2551 +f 2468 2469 2553 2552 +f 2469 2470 2554 2553 +f 2470 2471 2555 2554 +f 2471 2472 2556 2555 +f 2472 2473 2557 2556 +f 2473 2474 2558 2557 +f 2474 2475 2559 2558 +f 2475 2476 2560 2559 +f 2476 2477 2561 2560 +f 2477 2478 2562 2561 +f 2478 2479 2563 2562 +f 2479 2480 2564 2563 +f 2480 2481 2565 2564 +f 2481 2482 2566 2565 +f 2482 2483 2567 2566 +f 2483 2484 2568 2567 +f 2484 2485 2569 2568 +f 2485 2486 2570 2569 +f 2486 2487 2571 2570 +f 2487 2488 2572 2571 +f 2488 2489 2573 2572 +f 2489 2490 2574 2573 +f 2490 2491 2575 2574 +f 2491 2492 2576 2575 +f 2492 2493 2577 2576 +f 2493 2494 2578 2577 +f 2494 2495 2579 2578 +f 2495 2496 2580 2579 +f 2496 2497 2581 2580 +f 2497 2498 2582 2581 +f 2498 2499 2583 2582 +f 2499 2500 2584 2583 +f 2500 2501 2585 2584 +f 2501 2502 2586 2585 +f 2502 2503 2587 2586 +f 2503 2504 2588 2587 +f 2504 2505 2589 2588 +f 2505 2506 2590 2589 +f 2506 2507 2591 2590 +f 2507 2508 2592 2591 +f 2508 2509 2593 2592 +f 2509 2510 2594 2593 +f 2510 2511 2595 2594 +f 2511 2512 2596 2595 +f 2512 2513 2597 2596 +f 2513 2514 2598 2597 +f 2514 2515 2599 2598 +f 2515 2516 2600 2599 +f 2516 2517 2601 2600 +f 2517 2518 2602 2601 +f 2518 2519 2603 2602 +f 2519 2520 2604 2603 +f 2520 2521 2605 2604 +f 2521 2522 2606 2605 +f 2522 2439 2523 2606 +f 2523 2524 2608 2607 +f 2524 2525 2609 2608 +f 2525 2526 2610 2609 +f 2526 2527 2611 2610 +f 2527 2528 2612 2611 +f 2528 2529 2613 2612 +f 2529 2530 2614 2613 +f 2530 2531 2615 2614 +f 2531 2532 2616 2615 +f 2532 2533 2617 2616 +f 2533 2534 2618 2617 +f 2534 2535 2619 2618 +f 2535 2536 2620 2619 +f 2536 2537 2621 2620 +f 2537 2538 2622 2621 +f 2538 2539 2623 2622 +f 2539 2540 2624 2623 +f 2540 2541 2625 2624 +f 2541 2542 2626 2625 +f 2542 2543 2627 2626 +f 2543 2544 2628 2627 +f 2544 2545 2629 2628 +f 2545 2546 2630 2629 +f 2546 2547 2631 2630 +f 2547 2548 2632 2631 +f 2548 2549 2633 2632 +f 2549 2550 2634 2633 +f 2550 2551 2635 2634 +f 2551 2552 2636 2635 +f 2552 2553 2637 2636 +f 2553 2554 2638 2637 +f 2554 2555 2639 2638 +f 2555 2556 2640 2639 +f 2556 2557 2641 2640 +f 2557 2558 2642 2641 +f 2558 2559 2643 2642 +f 2559 2560 2644 2643 +f 2560 2561 2645 2644 +f 2561 2562 2646 2645 +f 2562 2563 2647 2646 +f 2563 2564 2648 2647 +f 2564 2565 2649 2648 +f 2565 2566 2650 2649 +f 2566 2567 2651 2650 +f 2567 2568 2652 2651 +f 2568 2569 2653 2652 +f 2569 2570 2654 2653 +f 2570 2571 2655 2654 +f 2571 2572 2656 2655 +f 2572 2573 2657 2656 +f 2573 2574 2658 2657 +f 2574 2575 2659 2658 +f 2575 2576 2660 2659 +f 2576 2577 2661 2660 +f 2577 2578 2662 2661 +f 2578 2579 2663 2662 +f 2579 2580 2664 2663 +f 2580 2581 2665 2664 +f 2581 2582 2666 2665 +f 2582 2583 2667 2666 +f 2583 2584 2668 2667 +f 2584 2585 2669 2668 +f 2585 2586 2670 2669 +f 2586 2587 2671 2670 +f 2587 2588 2672 2671 +f 2588 2589 2673 2672 +f 2589 2590 2674 2673 +f 2590 2591 2675 2674 +f 2591 2592 2676 2675 +f 2592 2593 2677 2676 +f 2593 2594 2678 2677 +f 2594 2595 2679 2678 +f 2595 2596 2680 2679 +f 2596 2597 2681 2680 +f 2597 2598 2682 2681 +f 2598 2599 2683 2682 +f 2599 2600 2684 2683 +f 2600 2601 2685 2684 +f 2601 2602 2686 2685 +f 2602 2603 2687 2686 +f 2603 2604 2688 2687 +f 2604 2605 2689 2688 +f 2605 2606 2690 2689 +f 2606 2523 2607 2690 +f 2607 2608 2692 2691 +f 2608 2609 2693 2692 +f 2609 2610 2694 2693 +f 2610 2611 2695 2694 +f 2611 2612 2696 2695 +f 2612 2613 2697 2696 +f 2613 2614 2698 2697 +f 2614 2615 2699 2698 +f 2615 2616 2700 2699 +f 2616 2617 2701 2700 +f 2617 2618 2702 2701 +f 2618 2619 2703 2702 +f 2619 2620 2704 2703 +f 2620 2621 2705 2704 +f 2621 2622 2706 2705 +f 2622 2623 2707 2706 +f 2623 2624 2708 2707 +f 2624 2625 2709 2708 +f 2625 2626 2710 2709 +f 2626 2627 2711 2710 +f 2627 2628 2712 2711 +f 2628 2629 2713 2712 +f 2629 2630 2714 2713 +f 2630 2631 2715 2714 +f 2631 2632 2716 2715 +f 2632 2633 2717 2716 +f 2633 2634 2718 2717 +f 2634 2635 2719 2718 +f 2635 2636 2720 2719 +f 2636 2637 2721 2720 +f 2637 2638 2722 2721 +f 2638 2639 2723 2722 +f 2639 2640 2724 2723 +f 2640 2641 2725 2724 +f 2641 2642 2726 2725 +f 2642 2643 2727 2726 +f 2643 2644 2728 2727 +f 2644 2645 2729 2728 +f 2645 2646 2730 2729 +f 2646 2647 2731 2730 +f 2647 2648 2732 2731 +f 2648 2649 2733 2732 +f 2649 2650 2734 2733 +f 2650 2651 2735 2734 +f 2651 2652 2736 2735 +f 2652 2653 2737 2736 +f 2653 2654 2738 2737 +f 2654 2655 2739 2738 +f 2655 2656 2740 2739 +f 2656 2657 2741 2740 +f 2657 2658 2742 2741 +f 2658 2659 2743 2742 +f 2659 2660 2744 2743 +f 2660 2661 2745 2744 +f 2661 2662 2746 2745 +f 2662 2663 2747 2746 +f 2663 2664 2748 2747 +f 2664 2665 2749 2748 +f 2665 2666 2750 2749 +f 2666 2667 2751 2750 +f 2667 2668 2752 2751 +f 2668 2669 2753 2752 +f 2669 2670 2754 2753 +f 2670 2671 2755 2754 +f 2671 2672 2756 2755 +f 2672 2673 2757 2756 +f 2673 2674 2758 2757 +f 2674 2675 2759 2758 +f 2675 2676 2760 2759 +f 2676 2677 2761 2760 +f 2677 2678 2762 2761 +f 2678 2679 2763 2762 +f 2679 2680 2764 2763 +f 2680 2681 2765 2764 +f 2681 2682 2766 2765 +f 2682 2683 2767 2766 +f 2683 2684 2768 2767 +f 2684 2685 2769 2768 +f 2685 2686 2770 2769 +f 2686 2687 2771 2770 +f 2687 2688 2772 2771 +f 2688 2689 2773 2772 +f 2689 2690 2774 2773 +f 2690 2607 2691 2774 +f 2691 2692 2776 2775 +f 2692 2693 2777 2776 +f 2693 2694 2778 2777 +f 2694 2695 2779 2778 +f 2695 2696 2780 2779 +f 2696 2697 2781 2780 +f 2697 2698 2782 2781 +f 2698 2699 2783 2782 +f 2699 2700 2784 2783 +f 2700 2701 2785 2784 +f 2701 2702 2786 2785 +f 2702 2703 2787 2786 +f 2703 2704 2788 2787 +f 2704 2705 2789 2788 +f 2705 2706 2790 2789 +f 2706 2707 2791 2790 +f 2707 2708 2792 2791 +f 2708 2709 2793 2792 +f 2709 2710 2794 2793 +f 2710 2711 2795 2794 +f 2711 2712 2796 2795 +f 2712 2713 2797 2796 +f 2713 2714 2798 2797 +f 2714 2715 2799 2798 +f 2715 2716 2800 2799 +f 2716 2717 2801 2800 +f 2717 2718 2802 2801 +f 2718 2719 2803 2802 +f 2719 2720 2804 2803 +f 2720 2721 2805 2804 +f 2721 2722 2806 2805 +f 2722 2723 2807 2806 +f 2723 2724 2808 2807 +f 2724 2725 2809 2808 +f 2725 2726 2810 2809 +f 2726 2727 2811 2810 +f 2727 2728 2812 2811 +f 2728 2729 2813 2812 +f 2729 2730 2814 2813 +f 2730 2731 2815 2814 +f 2731 2732 2816 2815 +f 2732 2733 2817 2816 +f 2733 2734 2818 2817 +f 2734 2735 2819 2818 +f 2735 2736 2820 2819 +f 2736 2737 2821 2820 +f 2737 2738 2822 2821 +f 2738 2739 2823 2822 +f 2739 2740 2824 2823 +f 2740 2741 2825 2824 +f 2741 2742 2826 2825 +f 2742 2743 2827 2826 +f 2743 2744 2828 2827 +f 2744 2745 2829 2828 +f 2745 2746 2830 2829 +f 2746 2747 2831 2830 +f 2747 2748 2832 2831 +f 2748 2749 2833 2832 +f 2749 2750 2834 2833 +f 2750 2751 2835 2834 +f 2751 2752 2836 2835 +f 2752 2753 2837 2836 +f 2753 2754 2838 2837 +f 2754 2755 2839 2838 +f 2755 2756 2840 2839 +f 2756 2757 2841 2840 +f 2757 2758 2842 2841 +f 2758 2759 2843 2842 +f 2759 2760 2844 2843 +f 2760 2761 2845 2844 +f 2761 2762 2846 2845 +f 2762 2763 2847 2846 +f 2763 2764 2848 2847 +f 2764 2765 2849 2848 +f 2765 2766 2850 2849 +f 2766 2767 2851 2850 +f 2767 2768 2852 2851 +f 2768 2769 2853 2852 +f 2769 2770 2854 2853 +f 2770 2771 2855 2854 +f 2771 2772 2856 2855 +f 2772 2773 2857 2856 +f 2773 2774 2858 2857 +f 2774 2691 2775 2858 +f 2775 2776 2860 2859 +f 2776 2777 2861 2860 +f 2777 2778 2862 2861 +f 2778 2779 2863 2862 +f 2779 2780 2864 2863 +f 2780 2781 2865 2864 +f 2781 2782 2866 2865 +f 2782 2783 2867 2866 +f 2783 2784 2868 2867 +f 2784 2785 2869 2868 +f 2785 2786 2870 2869 +f 2786 2787 2871 2870 +f 2787 2788 2872 2871 +f 2788 2789 2873 2872 +f 2789 2790 2874 2873 +f 2790 2791 2875 2874 +f 2791 2792 2876 2875 +f 2792 2793 2877 2876 +f 2793 2794 2878 2877 +f 2794 2795 2879 2878 +f 2795 2796 2880 2879 +f 2796 2797 2881 2880 +f 2797 2798 2882 2881 +f 2798 2799 2883 2882 +f 2799 2800 2884 2883 +f 2800 2801 2885 2884 +f 2801 2802 2886 2885 +f 2802 2803 2887 2886 +f 2803 2804 2888 2887 +f 2804 2805 2889 2888 +f 2805 2806 2890 2889 +f 2806 2807 2891 2890 +f 2807 2808 2892 2891 +f 2808 2809 2893 2892 +f 2809 2810 2894 2893 +f 2810 2811 2895 2894 +f 2811 2812 2896 2895 +f 2812 2813 2897 2896 +f 2813 2814 2898 2897 +f 2814 2815 2899 2898 +f 2815 2816 2900 2899 +f 2816 2817 2901 2900 +f 2817 2818 2902 2901 +f 2818 2819 2903 2902 +f 2819 2820 2904 2903 +f 2820 2821 2905 2904 +f 2821 2822 2906 2905 +f 2822 2823 2907 2906 +f 2823 2824 2908 2907 +f 2824 2825 2909 2908 +f 2825 2826 2910 2909 +f 2826 2827 2911 2910 +f 2827 2828 2912 2911 +f 2828 2829 2913 2912 +f 2829 2830 2914 2913 +f 2830 2831 2915 2914 +f 2831 2832 2916 2915 +f 2832 2833 2917 2916 +f 2833 2834 2918 2917 +f 2834 2835 2919 2918 +f 2835 2836 2920 2919 +f 2836 2837 2921 2920 +f 2837 2838 2922 2921 +f 2838 2839 2923 2922 +f 2839 2840 2924 2923 +f 2840 2841 2925 2924 +f 2841 2842 2926 2925 +f 2842 2843 2927 2926 +f 2843 2844 2928 2927 +f 2844 2845 2929 2928 +f 2845 2846 2930 2929 +f 2846 2847 2931 2930 +f 2847 2848 2932 2931 +f 2848 2849 2933 2932 +f 2849 2850 2934 2933 +f 2850 2851 2935 2934 +f 2851 2852 2936 2935 +f 2852 2853 2937 2936 +f 2853 2854 2938 2937 +f 2854 2855 2939 2938 +f 2855 2856 2940 2939 +f 2856 2857 2941 2940 +f 2857 2858 2942 2941 +f 2858 2775 2859 2942 +f 2859 2860 2944 2943 +f 2860 2861 2945 2944 +f 2861 2862 2946 2945 +f 2862 2863 2947 2946 +f 2863 2864 2948 2947 +f 2864 2865 2949 2948 +f 2865 2866 2950 2949 +f 2866 2867 2951 2950 +f 2867 2868 2952 2951 +f 2868 2869 2953 2952 +f 2869 2870 2954 2953 +f 2870 2871 2955 2954 +f 2871 2872 2956 2955 +f 2872 2873 2957 2956 +f 2873 2874 2958 2957 +f 2874 2875 2959 2958 +f 2875 2876 2960 2959 +f 2876 2877 2961 2960 +f 2877 2878 2962 2961 +f 2878 2879 2963 2962 +f 2879 2880 2964 2963 +f 2880 2881 2965 2964 +f 2881 2882 2966 2965 +f 2882 2883 2967 2966 +f 2883 2884 2968 2967 +f 2884 2885 2969 2968 +f 2885 2886 2970 2969 +f 2886 2887 2971 2970 +f 2887 2888 2972 2971 +f 2888 2889 2973 2972 +f 2889 2890 2974 2973 +f 2890 2891 2975 2974 +f 2891 2892 2976 2975 +f 2892 2893 2977 2976 +f 2893 2894 2978 2977 +f 2894 2895 2979 2978 +f 2895 2896 2980 2979 +f 2896 2897 2981 2980 +f 2897 2898 2982 2981 +f 2898 2899 2983 2982 +f 2899 2900 2984 2983 +f 2900 2901 2985 2984 +f 2901 2902 2986 2985 +f 2902 2903 2987 2986 +f 2903 2904 2988 2987 +f 2904 2905 2989 2988 +f 2905 2906 2990 2989 +f 2906 2907 2991 2990 +f 2907 2908 2992 2991 +f 2908 2909 2993 2992 +f 2909 2910 2994 2993 +f 2910 2911 2995 2994 +f 2911 2912 2996 2995 +f 2912 2913 2997 2996 +f 2913 2914 2998 2997 +f 2914 2915 2999 2998 +f 2915 2916 3000 2999 +f 2916 2917 3001 3000 +f 2917 2918 3002 3001 +f 2918 2919 3003 3002 +f 2919 2920 3004 3003 +f 2920 2921 3005 3004 +f 2921 2922 3006 3005 +f 2922 2923 3007 3006 +f 2923 2924 3008 3007 +f 2924 2925 3009 3008 +f 2925 2926 3010 3009 +f 2926 2927 3011 3010 +f 2927 2928 3012 3011 +f 2928 2929 3013 3012 +f 2929 2930 3014 3013 +f 2930 2931 3015 3014 +f 2931 2932 3016 3015 +f 2932 2933 3017 3016 +f 2933 2934 3018 3017 +f 2934 2935 3019 3018 +f 2935 2936 3020 3019 +f 2936 2937 3021 3020 +f 2937 2938 3022 3021 +f 2938 2939 3023 3022 +f 2939 2940 3024 3023 +f 2940 2941 3025 3024 +f 2941 2942 3026 3025 +f 2942 2859 2943 3026 +f 2943 2944 3028 3027 +f 2944 2945 3029 3028 +f 2945 2946 3030 3029 +f 2946 2947 3031 3030 +f 2947 2948 3032 3031 +f 2948 2949 3033 3032 +f 2949 2950 3034 3033 +f 2950 2951 3035 3034 +f 2951 2952 3036 3035 +f 2952 2953 3037 3036 +f 2953 2954 3038 3037 +f 2954 2955 3039 3038 +f 2955 2956 3040 3039 +f 2956 2957 3041 3040 +f 2957 2958 3042 3041 +f 2958 2959 3043 3042 +f 2959 2960 3044 3043 +f 2960 2961 3045 3044 +f 2961 2962 3046 3045 +f 2962 2963 3047 3046 +f 2963 2964 3048 3047 +f 2964 2965 3049 3048 +f 2965 2966 3050 3049 +f 2966 2967 3051 3050 +f 2967 2968 3052 3051 +f 2968 2969 3053 3052 +f 2969 2970 3054 3053 +f 2970 2971 3055 3054 +f 2971 2972 3056 3055 +f 2972 2973 3057 3056 +f 2973 2974 3058 3057 +f 2974 2975 3059 3058 +f 2975 2976 3060 3059 +f 2976 2977 3061 3060 +f 2977 2978 3062 3061 +f 2978 2979 3063 3062 +f 2979 2980 3064 3063 +f 2980 2981 3065 3064 +f 2981 2982 3066 3065 +f 2982 2983 3067 3066 +f 2983 2984 3068 3067 +f 2984 2985 3069 3068 +f 2985 2986 3070 3069 +f 2986 2987 3071 3070 +f 2987 2988 3072 3071 +f 2988 2989 3073 3072 +f 2989 2990 3074 3073 +f 2990 2991 3075 3074 +f 2991 2992 3076 3075 +f 2992 2993 3077 3076 +f 2993 2994 3078 3077 +f 2994 2995 3079 3078 +f 2995 2996 3080 3079 +f 2996 2997 3081 3080 +f 2997 2998 3082 3081 +f 2998 2999 3083 3082 +f 2999 3000 3084 3083 +f 3000 3001 3085 3084 +f 3001 3002 3086 3085 +f 3002 3003 3087 3086 +f 3003 3004 3088 3087 +f 3004 3005 3089 3088 +f 3005 3006 3090 3089 +f 3006 3007 3091 3090 +f 3007 3008 3092 3091 +f 3008 3009 3093 3092 +f 3009 3010 3094 3093 +f 3010 3011 3095 3094 +f 3011 3012 3096 3095 +f 3012 3013 3097 3096 +f 3013 3014 3098 3097 +f 3014 3015 3099 3098 +f 3015 3016 3100 3099 +f 3016 3017 3101 3100 +f 3017 3018 3102 3101 +f 3018 3019 3103 3102 +f 3019 3020 3104 3103 +f 3020 3021 3105 3104 +f 3021 3022 3106 3105 +f 3022 3023 3107 3106 +f 3023 3024 3108 3107 +f 3024 3025 3109 3108 +f 3025 3026 3110 3109 +f 3026 2943 3027 3110 +f 3027 3028 3112 3111 +f 3028 3029 3113 3112 +f 3029 3030 3114 3113 +f 3030 3031 3115 3114 +f 3031 3032 3116 3115 +f 3032 3033 3117 3116 +f 3033 3034 3118 3117 +f 3034 3035 3119 3118 +f 3035 3036 3120 3119 +f 3036 3037 3121 3120 +f 3037 3038 3122 3121 +f 3038 3039 3123 3122 +f 3039 3040 3124 3123 +f 3040 3041 3125 3124 +f 3041 3042 3126 3125 +f 3042 3043 3127 3126 +f 3043 3044 3128 3127 +f 3044 3045 3129 3128 +f 3045 3046 3130 3129 +f 3046 3047 3131 3130 +f 3047 3048 3132 3131 +f 3048 3049 3133 3132 +f 3049 3050 3134 3133 +f 3050 3051 3135 3134 +f 3051 3052 3136 3135 +f 3052 3053 3137 3136 +f 3053 3054 3138 3137 +f 3054 3055 3139 3138 +f 3055 3056 3140 3139 +f 3056 3057 3141 3140 +f 3057 3058 3142 3141 +f 3058 3059 3143 3142 +f 3059 3060 3144 3143 +f 3060 3061 3145 3144 +f 3061 3062 3146 3145 +f 3062 3063 3147 3146 +f 3063 3064 3148 3147 +f 3064 3065 3149 3148 +f 3065 3066 3150 3149 +f 3066 3067 3151 3150 +f 3067 3068 3152 3151 +f 3068 3069 3153 3152 +f 3069 3070 3154 3153 +f 3070 3071 3155 3154 +f 3071 3072 3156 3155 +f 3072 3073 3157 3156 +f 3073 3074 3158 3157 +f 3074 3075 3159 3158 +f 3075 3076 3160 3159 +f 3076 3077 3161 3160 +f 3077 3078 3162 3161 +f 3078 3079 3163 3162 +f 3079 3080 3164 3163 +f 3080 3081 3165 3164 +f 3081 3082 3166 3165 +f 3082 3083 3167 3166 +f 3083 3084 3168 3167 +f 3084 3085 3169 3168 +f 3085 3086 3170 3169 +f 3086 3087 3171 3170 +f 3087 3088 3172 3171 +f 3088 3089 3173 3172 +f 3089 3090 3174 3173 +f 3090 3091 3175 3174 +f 3091 3092 3176 3175 +f 3092 3093 3177 3176 +f 3093 3094 3178 3177 +f 3094 3095 3179 3178 +f 3095 3096 3180 3179 +f 3096 3097 3181 3180 +f 3097 3098 3182 3181 +f 3098 3099 3183 3182 +f 3099 3100 3184 3183 +f 3100 3101 3185 3184 +f 3101 3102 3186 3185 +f 3102 3103 3187 3186 +f 3103 3104 3188 3187 +f 3104 3105 3189 3188 +f 3105 3106 3190 3189 +f 3106 3107 3191 3190 +f 3107 3108 3192 3191 +f 3108 3109 3193 3192 +f 3109 3110 3194 3193 +f 3110 3027 3111 3194 +f 3111 3112 3196 3195 +f 3112 3113 3197 3196 +f 3113 3114 3198 3197 +f 3114 3115 3199 3198 +f 3115 3116 3200 3199 +f 3116 3117 3201 3200 +f 3117 3118 3202 3201 +f 3118 3119 3203 3202 +f 3119 3120 3204 3203 +f 3120 3121 3205 3204 +f 3121 3122 3206 3205 +f 3122 3123 3207 3206 +f 3123 3124 3208 3207 +f 3124 3125 3209 3208 +f 3125 3126 3210 3209 +f 3126 3127 3211 3210 +f 3127 3128 3212 3211 +f 3128 3129 3213 3212 +f 3129 3130 3214 3213 +f 3130 3131 3215 3214 +f 3131 3132 3216 3215 +f 3132 3133 3217 3216 +f 3133 3134 3218 3217 +f 3134 3135 3219 3218 +f 3135 3136 3220 3219 +f 3136 3137 3221 3220 +f 3137 3138 3222 3221 +f 3138 3139 3223 3222 +f 3139 3140 3224 3223 +f 3140 3141 3225 3224 +f 3141 3142 3226 3225 +f 3142 3143 3227 3226 +f 3143 3144 3228 3227 +f 3144 3145 3229 3228 +f 3145 3146 3230 3229 +f 3146 3147 3231 3230 +f 3147 3148 3232 3231 +f 3148 3149 3233 3232 +f 3149 3150 3234 3233 +f 3150 3151 3235 3234 +f 3151 3152 3236 3235 +f 3152 3153 3237 3236 +f 3153 3154 3238 3237 +f 3154 3155 3239 3238 +f 3155 3156 3240 3239 +f 3156 3157 3241 3240 +f 3157 3158 3242 3241 +f 3158 3159 3243 3242 +f 3159 3160 3244 3243 +f 3160 3161 3245 3244 +f 3161 3162 3246 3245 +f 3162 3163 3247 3246 +f 3163 3164 3248 3247 +f 3164 3165 3249 3248 +f 3165 3166 3250 3249 +f 3166 3167 3251 3250 +f 3167 3168 3252 3251 +f 3168 3169 3253 3252 +f 3169 3170 3254 3253 +f 3170 3171 3255 3254 +f 3171 3172 3256 3255 +f 3172 3173 3257 3256 +f 3173 3174 3258 3257 +f 3174 3175 3259 3258 +f 3175 3176 3260 3259 +f 3176 3177 3261 3260 +f 3177 3178 3262 3261 +f 3178 3179 3263 3262 +f 3179 3180 3264 3263 +f 3180 3181 3265 3264 +f 3181 3182 3266 3265 +f 3182 3183 3267 3266 +f 3183 3184 3268 3267 +f 3184 3185 3269 3268 +f 3185 3186 3270 3269 +f 3186 3187 3271 3270 +f 3187 3188 3272 3271 +f 3188 3189 3273 3272 +f 3189 3190 3274 3273 +f 3190 3191 3275 3274 +f 3191 3192 3276 3275 +f 3192 3193 3277 3276 +f 3193 3194 3278 3277 +f 3194 3111 3195 3278 +f 3195 3196 3280 3279 +f 3196 3197 3281 3280 +f 3197 3198 3282 3281 +f 3198 3199 3283 3282 +f 3199 3200 3284 3283 +f 3200 3201 3285 3284 +f 3201 3202 3286 3285 +f 3202 3203 3287 3286 +f 3203 3204 3288 3287 +f 3204 3205 3289 3288 +f 3205 3206 3290 3289 +f 3206 3207 3291 3290 +f 3207 3208 3292 3291 +f 3208 3209 3293 3292 +f 3209 3210 3294 3293 +f 3210 3211 3295 3294 +f 3211 3212 3296 3295 +f 3212 3213 3297 3296 +f 3213 3214 3298 3297 +f 3214 3215 3299 3298 +f 3215 3216 3300 3299 +f 3216 3217 3301 3300 +f 3217 3218 3302 3301 +f 3218 3219 3303 3302 +f 3219 3220 3304 3303 +f 3220 3221 3305 3304 +f 3221 3222 3306 3305 +f 3222 3223 3307 3306 +f 3223 3224 3308 3307 +f 3224 3225 3309 3308 +f 3225 3226 3310 3309 +f 3226 3227 3311 3310 +f 3227 3228 3312 3311 +f 3228 3229 3313 3312 +f 3229 3230 3314 3313 +f 3230 3231 3315 3314 +f 3231 3232 3316 3315 +f 3232 3233 3317 3316 +f 3233 3234 3318 3317 +f 3234 3235 3319 3318 +f 3235 3236 3320 3319 +f 3236 3237 3321 3320 +f 3237 3238 3322 3321 +f 3238 3239 3323 3322 +f 3239 3240 3324 3323 +f 3240 3241 3325 3324 +f 3241 3242 3326 3325 +f 3242 3243 3327 3326 +f 3243 3244 3328 3327 +f 3244 3245 3329 3328 +f 3245 3246 3330 3329 +f 3246 3247 3331 3330 +f 3247 3248 3332 3331 +f 3248 3249 3333 3332 +f 3249 3250 3334 3333 +f 3250 3251 3335 3334 +f 3251 3252 3336 3335 +f 3252 3253 3337 3336 +f 3253 3254 3338 3337 +f 3254 3255 3339 3338 +f 3255 3256 3340 3339 +f 3256 3257 3341 3340 +f 3257 3258 3342 3341 +f 3258 3259 3343 3342 +f 3259 3260 3344 3343 +f 3260 3261 3345 3344 +f 3261 3262 3346 3345 +f 3262 3263 3347 3346 +f 3263 3264 3348 3347 +f 3264 3265 3349 3348 +f 3265 3266 3350 3349 +f 3266 3267 3351 3350 +f 3267 3268 3352 3351 +f 3268 3269 3353 3352 +f 3269 3270 3354 3353 +f 3270 3271 3355 3354 +f 3271 3272 3356 3355 +f 3272 3273 3357 3356 +f 3273 3274 3358 3357 +f 3274 3275 3359 3358 +f 3275 3276 3360 3359 +f 3276 3277 3361 3360 +f 3277 3278 3362 3361 +f 3278 3195 3279 3362 +f 3279 3280 3364 3363 +f 3280 3281 3365 3364 +f 3281 3282 3366 3365 +f 3282 3283 3367 3366 +f 3283 3284 3368 3367 +f 3284 3285 3369 3368 +f 3285 3286 3370 3369 +f 3286 3287 3371 3370 +f 3287 3288 3372 3371 +f 3288 3289 3373 3372 +f 3289 3290 3374 3373 +f 3290 3291 3375 3374 +f 3291 3292 3376 3375 +f 3292 3293 3377 3376 +f 3293 3294 3378 3377 +f 3294 3295 3379 3378 +f 3295 3296 3380 3379 +f 3296 3297 3381 3380 +f 3297 3298 3382 3381 +f 3298 3299 3383 3382 +f 3299 3300 3384 3383 +f 3300 3301 3385 3384 +f 3301 3302 3386 3385 +f 3302 3303 3387 3386 +f 3303 3304 3388 3387 +f 3304 3305 3389 3388 +f 3305 3306 3390 3389 +f 3306 3307 3391 3390 +f 3307 3308 3392 3391 +f 3308 3309 3393 3392 +f 3309 3310 3394 3393 +f 3310 3311 3395 3394 +f 3311 3312 3396 3395 +f 3312 3313 3397 3396 +f 3313 3314 3398 3397 +f 3314 3315 3399 3398 +f 3315 3316 3400 3399 +f 3316 3317 3401 3400 +f 3317 3318 3402 3401 +f 3318 3319 3403 3402 +f 3319 3320 3404 3403 +f 3320 3321 3405 3404 +f 3321 3322 3406 3405 +f 3322 3323 3407 3406 +f 3323 3324 3408 3407 +f 3324 3325 3409 3408 +f 3325 3326 3410 3409 +f 3326 3327 3411 3410 +f 3327 3328 3412 3411 +f 3328 3329 3413 3412 +f 3329 3330 3414 3413 +f 3330 3331 3415 3414 +f 3331 3332 3416 3415 +f 3332 3333 3417 3416 +f 3333 3334 3418 3417 +f 3334 3335 3419 3418 +f 3335 3336 3420 3419 +f 3336 3337 3421 3420 +f 3337 3338 3422 3421 +f 3338 3339 3423 3422 +f 3339 3340 3424 3423 +f 3340 3341 3425 3424 +f 3341 3342 3426 3425 +f 3342 3343 3427 3426 +f 3343 3344 3428 3427 +f 3344 3345 3429 3428 +f 3345 3346 3430 3429 +f 3346 3347 3431 3430 +f 3347 3348 3432 3431 +f 3348 3349 3433 3432 +f 3349 3350 3434 3433 +f 3350 3351 3435 3434 +f 3351 3352 3436 3435 +f 3352 3353 3437 3436 +f 3353 3354 3438 3437 +f 3354 3355 3439 3438 +f 3355 3356 3440 3439 +f 3356 3357 3441 3440 +f 3357 3358 3442 3441 +f 3358 3359 3443 3442 +f 3359 3360 3444 3443 +f 3360 3361 3445 3444 +f 3361 3362 3446 3445 +f 3362 3279 3363 3446 +f 3363 3364 3448 3447 +f 3364 3365 3449 3448 +f 3365 3366 3450 3449 +f 3366 3367 3451 3450 +f 3367 3368 3452 3451 +f 3368 3369 3453 3452 +f 3369 3370 3454 3453 +f 3370 3371 3455 3454 +f 3371 3372 3456 3455 +f 3372 3373 3457 3456 +f 3373 3374 3458 3457 +f 3374 3375 3459 3458 +f 3375 3376 3460 3459 +f 3376 3377 3461 3460 +f 3377 3378 3462 3461 +f 3378 3379 3463 3462 +f 3379 3380 3464 3463 +f 3380 3381 3465 3464 +f 3381 3382 3466 3465 +f 3382 3383 3467 3466 +f 3383 3384 3468 3467 +f 3384 3385 3469 3468 +f 3385 3386 3470 3469 +f 3386 3387 3471 3470 +f 3387 3388 3472 3471 +f 3388 3389 3473 3472 +f 3389 3390 3474 3473 +f 3390 3391 3475 3474 +f 3391 3392 3476 3475 +f 3392 3393 3477 3476 +f 3393 3394 3478 3477 +f 3394 3395 3479 3478 +f 3395 3396 3480 3479 +f 3396 3397 3481 3480 +f 3397 3398 3482 3481 +f 3398 3399 3483 3482 +f 3399 3400 3484 3483 +f 3400 3401 3485 3484 +f 3401 3402 3486 3485 +f 3402 3403 3487 3486 +f 3403 3404 3488 3487 +f 3404 3405 3489 3488 +f 3405 3406 3490 3489 +f 3406 3407 3491 3490 +f 3407 3408 3492 3491 +f 3408 3409 3493 3492 +f 3409 3410 3494 3493 +f 3410 3411 3495 3494 +f 3411 3412 3496 3495 +f 3412 3413 3497 3496 +f 3413 3414 3498 3497 +f 3414 3415 3499 3498 +f 3415 3416 3500 3499 +f 3416 3417 3501 3500 +f 3417 3418 3502 3501 +f 3418 3419 3503 3502 +f 3419 3420 3504 3503 +f 3420 3421 3505 3504 +f 3421 3422 3506 3505 +f 3422 3423 3507 3506 +f 3423 3424 3508 3507 +f 3424 3425 3509 3508 +f 3425 3426 3510 3509 +f 3426 3427 3511 3510 +f 3427 3428 3512 3511 +f 3428 3429 3513 3512 +f 3429 3430 3514 3513 +f 3430 3431 3515 3514 +f 3431 3432 3516 3515 +f 3432 3433 3517 3516 +f 3433 3434 3518 3517 +f 3434 3435 3519 3518 +f 3435 3436 3520 3519 +f 3436 3437 3521 3520 +f 3437 3438 3522 3521 +f 3438 3439 3523 3522 +f 3439 3440 3524 3523 +f 3440 3441 3525 3524 +f 3441 3442 3526 3525 +f 3442 3443 3527 3526 +f 3443 3444 3528 3527 +f 3444 3445 3529 3528 +f 3445 3446 3530 3529 +f 3446 3363 3447 3530 +f 1 4 3 +f 2 3447 3448 +f 1 5 4 +f 2 3448 3449 +f 1 6 5 +f 2 3449 3450 +f 1 7 6 +f 2 3450 3451 +f 1 8 7 +f 2 3451 3452 +f 1 9 8 +f 2 3452 3453 +f 1 10 9 +f 2 3453 3454 +f 1 11 10 +f 2 3454 3455 +f 1 12 11 +f 2 3455 3456 +f 1 13 12 +f 2 3456 3457 +f 1 14 13 +f 2 3457 3458 +f 1 15 14 +f 2 3458 3459 +f 1 16 15 +f 2 3459 3460 +f 1 17 16 +f 2 3460 3461 +f 1 18 17 +f 2 3461 3462 +f 1 19 18 +f 2 3462 3463 +f 1 20 19 +f 2 3463 3464 +f 1 21 20 +f 2 3464 3465 +f 1 22 21 +f 2 3465 3466 +f 1 23 22 +f 2 3466 3467 +f 1 24 23 +f 2 3467 3468 +f 1 25 24 +f 2 3468 3469 +f 1 26 25 +f 2 3469 3470 +f 1 27 26 +f 2 3470 3471 +f 1 28 27 +f 2 3471 3472 +f 1 29 28 +f 2 3472 3473 +f 1 30 29 +f 2 3473 3474 +f 1 31 30 +f 2 3474 3475 +f 1 32 31 +f 2 3475 3476 +f 1 33 32 +f 2 3476 3477 +f 1 34 33 +f 2 3477 3478 +f 1 35 34 +f 2 3478 3479 +f 1 36 35 +f 2 3479 3480 +f 1 37 36 +f 2 3480 3481 +f 1 38 37 +f 2 3481 3482 +f 1 39 38 +f 2 3482 3483 +f 1 40 39 +f 2 3483 3484 +f 1 41 40 +f 2 3484 3485 +f 1 42 41 +f 2 3485 3486 +f 1 43 42 +f 2 3486 3487 +f 1 44 43 +f 2 3487 3488 +f 1 45 44 +f 2 3488 3489 +f 1 46 45 +f 2 3489 3490 +f 1 47 46 +f 2 3490 3491 +f 1 48 47 +f 2 3491 3492 +f 1 49 48 +f 2 3492 3493 +f 1 50 49 +f 2 3493 3494 +f 1 51 50 +f 2 3494 3495 +f 1 52 51 +f 2 3495 3496 +f 1 53 52 +f 2 3496 3497 +f 1 54 53 +f 2 3497 3498 +f 1 55 54 +f 2 3498 3499 +f 1 56 55 +f 2 3499 3500 +f 1 57 56 +f 2 3500 3501 +f 1 58 57 +f 2 3501 3502 +f 1 59 58 +f 2 3502 3503 +f 1 60 59 +f 2 3503 3504 +f 1 61 60 +f 2 3504 3505 +f 1 62 61 +f 2 3505 3506 +f 1 63 62 +f 2 3506 3507 +f 1 64 63 +f 2 3507 3508 +f 1 65 64 +f 2 3508 3509 +f 1 66 65 +f 2 3509 3510 +f 1 67 66 +f 2 3510 3511 +f 1 68 67 +f 2 3511 3512 +f 1 69 68 +f 2 3512 3513 +f 1 70 69 +f 2 3513 3514 +f 1 71 70 +f 2 3514 3515 +f 1 72 71 +f 2 3515 3516 +f 1 73 72 +f 2 3516 3517 +f 1 74 73 +f 2 3517 3518 +f 1 75 74 +f 2 3518 3519 +f 1 76 75 +f 2 3519 3520 +f 1 77 76 +f 2 3520 3521 +f 1 78 77 +f 2 3521 3522 +f 1 79 78 +f 2 3522 3523 +f 1 80 79 +f 2 3523 3524 +f 1 81 80 +f 2 3524 3525 +f 1 82 81 +f 2 3525 3526 +f 1 83 82 +f 2 3526 3527 +f 1 84 83 +f 2 3527 3528 +f 1 85 84 +f 2 3528 3529 +f 1 86 85 +f 2 3529 3530 +f 1 3 86 +f 2 3530 3447 diff --git a/data/spheres/22.obj b/data/spheres/22.obj new file mode 100644 index 0000000..78d8b6b --- /dev/null +++ b/data/spheres/22.obj @@ -0,0 +1,7834 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 6.97564 99.7564 5.88009e-39 +v 6.95787 99.7564 0.497636 +v 6.90464 99.7564 0.992737 +v 6.81623 99.7564 1.48278 +v 6.69308 99.7564 1.96526 +v 6.53583 99.7564 2.43774 +v 6.34527 99.7564 2.89778 +v 6.12238 99.7564 3.34307 +v 5.86829 99.7564 3.77131 +v 5.58429 99.7564 4.18034 +v 5.27184 99.7564 4.56807 +v 4.93253 99.7564 4.93252 +v 4.56808 99.7564 5.27184 +v 4.18035 99.7564 5.58429 +v 3.77132 99.7564 5.86828 +v 3.34307 99.7564 6.12237 +v 2.89779 99.7564 6.34526 +v 2.43774 99.7564 6.53582 +v 1.96527 99.7564 6.69308 +v 1.48279 99.7564 6.81623 +v 0.992745 99.7564 6.90464 +v 0.497644 99.7564 6.95787 +v 8.84226e-06 99.7564 6.97564 +v -0.497628 99.7564 6.95787 +v -0.992728 99.7564 6.90464 +v -1.48277 99.7564 6.81623 +v -1.96526 99.7564 6.69308 +v -2.43773 99.7564 6.53583 +v -2.89778 99.7564 6.34527 +v -3.34306 99.7564 6.12238 +v -3.77131 99.7564 5.86829 +v -4.18034 99.7564 5.5843 +v -4.56806 99.7564 5.27185 +v -4.93251 99.7564 4.93253 +v -5.27183 99.7564 4.56808 +v -5.58428 99.7564 4.18036 +v -5.86828 99.7564 3.77133 +v -6.12237 99.7564 3.34308 +v -6.34526 99.7564 2.8978 +v -6.53582 99.7564 2.43775 +v -6.69308 99.7564 1.96528 +v -6.81622 99.7564 1.4828 +v -6.90464 99.7564 0.992753 +v -6.95787 99.7564 0.497653 +v -6.97564 99.7564 1.76845e-05 +v -6.95787 99.7564 -0.49762 +v -6.90464 99.7564 -0.99272 +v -6.81623 99.7564 -1.48276 +v -6.69308 99.7564 -1.96525 +v -6.53583 99.7564 -2.43772 +v -6.34527 99.7564 -2.89777 +v -6.12238 99.7564 -3.34305 +v -5.86829 99.7564 -3.7713 +v -5.5843 99.7564 -4.18033 +v -5.27185 99.7564 -4.56806 +v -4.93254 99.7564 -4.93251 +v -4.56809 99.7564 -5.27182 +v -4.18036 99.7564 -5.58428 +v -3.77134 99.7564 -5.86827 +v -3.34309 99.7564 -6.12236 +v -2.89781 99.7564 -6.34526 +v -2.43776 99.7564 -6.53582 +v -1.96529 99.7564 -6.69307 +v -1.4828 99.7564 -6.81622 +v -0.992762 99.7564 -6.90464 +v -0.497662 99.7564 -6.95787 +v -2.65268e-05 99.7564 -6.97564 +v 0.497612 99.7564 -6.95787 +v 0.992712 99.7564 -6.90464 +v 1.48275 99.7564 -6.81623 +v 1.96524 99.7564 -6.69309 +v 2.43771 99.7564 -6.53584 +v 2.89776 99.7564 -6.34528 +v 3.34305 99.7564 -6.12239 +v 3.77129 99.7564 -5.8683 +v 4.18032 99.7564 -5.58431 +v 4.56805 99.7564 -5.27186 +v 4.9325 99.7564 -4.93255 +v 5.27182 99.7564 -4.5681 +v 5.58427 99.7564 -4.18037 +v 5.86827 99.7564 -3.77134 +v 6.12236 99.7564 -3.3431 +v 6.34525 99.7564 -2.89782 +v 6.53582 99.7564 -2.43777 +v 6.69307 99.7564 -1.9653 +v 6.81622 99.7564 -1.48281 +v 6.90464 99.7564 -0.99277 +v 6.95787 99.7564 -0.497671 +v 13.9173 99.0268 5.88009e-39 +v 13.8818 99.0268 0.992848 +v 13.7756 99.0268 1.98064 +v 13.5992 99.0268 2.95833 +v 13.3536 99.0268 3.92095 +v 13.0398 99.0268 4.86359 +v 12.6596 99.0268 5.78145 +v 12.2149 99.0268 6.66985 +v 11.708 99.0268 7.52425 +v 11.1414 99.0268 8.34032 +v 10.518 99.0268 9.11389 +v 9.84102 99.0268 9.84101 +v 9.1139 99.0268 10.518 +v 8.34033 99.0268 11.1414 +v 7.52427 99.0268 11.708 +v 6.66986 99.0268 12.2149 +v 5.78147 99.0268 12.6596 +v 4.86361 99.0268 13.0398 +v 3.92097 99.0268 13.3535 +v 2.95835 99.0268 13.5992 +v 1.98065 99.0268 13.7756 +v 0.992864 99.0268 13.8818 +v 1.76414e-05 99.0268 13.9173 +v -0.992831 99.0268 13.8818 +v -1.98062 99.0268 13.7756 +v -2.95832 99.0268 13.5992 +v -3.92094 99.0268 13.3536 +v -4.86358 99.0268 13.0398 +v -5.78144 99.0268 12.6596 +v -6.66983 99.0268 12.2149 +v -7.52424 99.0268 11.708 +v -8.34031 99.0268 11.1414 +v -9.11387 99.0268 10.518 +v -9.841 99.0268 9.84104 +v -10.518 99.0268 9.11391 +v -11.1414 99.0268 8.34035 +v -11.708 99.0268 7.52428 +v -12.2149 99.0268 6.66988 +v -12.6596 99.0268 5.78148 +v -13.0398 99.0268 4.86362 +v -13.3535 99.0268 3.92099 +v -13.5992 99.0268 2.95837 +v -13.7756 99.0268 1.98067 +v -13.8818 99.0268 0.992882 +v -13.9173 99.0268 3.52829e-05 +v -13.8818 99.0268 -0.992815 +v -13.7756 99.0268 -1.9806 +v -13.5993 99.0268 -2.9583 +v -13.3536 99.0268 -3.92092 +v -13.0398 99.0268 -4.86356 +v -12.6596 99.0268 -5.78142 +v -12.2149 99.0268 -6.66982 +v -11.708 99.0268 -7.52423 +v -11.1414 99.0268 -8.34029 +v -10.518 99.0268 -9.11386 +v -9.84105 99.0268 -9.84099 +v -9.11392 99.0268 -10.518 +v -8.34036 99.0268 -11.1413 +v -7.5243 99.0268 -11.708 +v -6.66989 99.0268 -12.2149 +v -5.7815 99.0268 -12.6596 +v -4.86364 99.0268 -13.0398 +v -3.921 99.0268 -13.3535 +v -2.95838 99.0268 -13.5992 +v -1.98069 99.0268 -13.7756 +v -0.9929 99.0268 -13.8818 +v -5.29243e-05 99.0268 -13.9173 +v 0.992801 99.0268 -13.8818 +v 1.98059 99.0268 -13.7756 +v 2.95828 99.0268 -13.5993 +v 3.9209 99.0268 -13.3536 +v 4.86354 99.0268 -13.0398 +v 5.78141 99.0268 -12.6596 +v 6.6698 99.0268 -12.2149 +v 7.52421 99.0268 -11.708 +v 8.34028 99.0268 -11.1414 +v 9.11385 99.0268 -10.518 +v 9.84097 99.0268 -9.84106 +v 10.518 99.0268 -9.11394 +v 11.1413 99.0268 -8.34037 +v 11.7079 99.0268 -7.52431 +v 12.2149 99.0268 -6.66991 +v 12.6596 99.0268 -5.78151 +v 13.0398 99.0268 -4.86365 +v 13.3535 99.0268 -3.92102 +v 13.5992 99.0268 -2.9584 +v 13.7756 99.0268 -1.9807 +v 13.8818 99.0268 -0.992917 +v 20.7912 97.8148 5.88009e-39 +v 20.7382 97.8148 1.48322 +v 20.5795 97.8148 2.95889 +v 20.316 97.8148 4.41947 +v 19.949 97.8148 5.85754 +v 19.4803 97.8148 7.26576 +v 18.9123 97.8148 8.63695 +v 18.248 97.8148 9.96413 +v 17.4906 97.8148 11.2405 +v 16.6442 97.8148 12.4597 +v 15.7129 97.8148 13.6153 +v 14.7016 97.8148 14.7016 +v 13.6153 97.8148 15.7129 +v 12.4597 97.8148 16.6442 +v 11.2406 97.8148 17.4906 +v 9.96415 97.8148 18.2479 +v 8.63697 97.8148 18.9123 +v 7.26578 97.8148 19.4803 +v 5.85756 97.8148 19.949 +v 4.4195 97.8148 20.316 +v 2.95891 97.8148 20.5795 +v 1.48325 97.8148 20.7382 +v 2.63547e-05 97.8148 20.7912 +v -1.4832 97.8148 20.7382 +v -2.95886 97.8148 20.5795 +v -4.41945 97.8148 20.316 +v -5.85752 97.8148 19.949 +v -7.26573 97.8148 19.4803 +v -8.63693 97.8148 18.9123 +v -9.96411 97.8148 18.248 +v -11.2405 97.8148 17.4907 +v -12.4596 97.8148 16.6442 +v -13.6153 97.8148 15.7129 +v -14.7015 97.8148 14.7016 +v -15.7129 97.8148 13.6153 +v -16.6442 97.8148 12.4597 +v -17.4906 97.8148 11.2406 +v -18.2479 97.8148 9.96418 +v -18.9123 97.8148 8.637 +v -19.4802 97.8148 7.2658 +v -19.949 97.8148 5.85759 +v -20.316 97.8148 4.41953 +v -20.5795 97.8148 2.95894 +v -20.7382 97.8148 1.48327 +v -20.7912 97.8148 5.27093e-05 +v -20.7382 97.8148 -1.48317 +v -20.5795 97.8148 -2.95884 +v -20.316 97.8148 -4.41943 +v -19.949 97.8148 -5.85749 +v -19.4803 97.8148 -7.26571 +v -18.9123 97.8148 -8.63691 +v -18.248 97.8148 -9.96409 +v -17.4907 97.8148 -11.2405 +v -16.6442 97.8148 -12.4596 +v -15.7129 97.8148 -13.6153 +v -14.7016 97.8148 -14.7015 +v -13.6154 97.8148 -15.7129 +v -12.4597 97.8148 -16.6441 +v -11.2406 97.8148 -17.4906 +v -9.9642 97.8148 -18.2479 +v -8.63702 97.8148 -18.9123 +v -7.26583 97.8148 -19.4802 +v -5.85761 97.8148 -19.9489 +v -4.41955 97.8148 -20.316 +v -2.95896 97.8148 -20.5795 +v -1.4833 97.8148 -20.7382 +v -7.9064e-05 97.8148 -20.7912 +v 1.48315 97.8148 -20.7382 +v 2.95882 97.8148 -20.5795 +v 4.4194 97.8148 -20.316 +v 5.85747 97.8148 -19.949 +v 7.26568 97.8148 -19.4803 +v 8.63689 97.8148 -18.9123 +v 9.96407 97.8148 -18.248 +v 11.2405 97.8148 -17.4907 +v 12.4596 97.8148 -16.6442 +v 13.6152 97.8148 -15.713 +v 14.7015 97.8148 -14.7016 +v 15.7128 97.8148 -13.6154 +v 16.6441 97.8148 -12.4597 +v 17.4906 97.8148 -11.2406 +v 18.2479 97.8148 -9.96422 +v 18.9123 97.8148 -8.63705 +v 19.4802 97.8148 -7.26585 +v 19.9489 97.8148 -5.85763 +v 20.316 97.8148 -4.41957 +v 20.5795 97.8148 -2.95899 +v 20.7382 97.8148 -1.48333 +v 27.5637 96.1262 5.88009e-39 +v 27.4935 96.1262 1.96637 +v 27.2832 96.1262 3.92272 +v 26.9338 96.1262 5.85908 +v 26.4472 96.1262 7.76559 +v 25.8258 96.1262 9.63252 +v 25.0728 96.1262 11.4504 +v 24.1921 96.1262 13.2099 +v 23.1881 96.1262 14.9021 +v 22.0659 96.1262 16.5183 +v 20.8313 96.1262 18.0504 +v 19.4905 96.1262 19.4905 +v 18.0504 96.1262 20.8313 +v 16.5183 96.1262 22.0659 +v 14.9021 96.1262 23.1881 +v 13.2099 96.1262 24.1921 +v 11.4504 96.1262 25.0728 +v 9.63255 96.1262 25.8258 +v 7.76562 96.1262 26.4472 +v 5.85912 96.1262 26.9338 +v 3.92276 96.1262 27.2832 +v 1.9664 96.1262 27.4935 +v 3.49395e-05 96.1262 27.5637 +v -1.96634 96.1262 27.4935 +v -3.92269 96.1262 27.2832 +v -5.85905 96.1262 26.9338 +v -7.76556 96.1262 26.4472 +v -9.63249 96.1262 25.8258 +v -11.4503 96.1262 25.0729 +v -13.2098 96.1262 24.1921 +v -14.902 96.1262 23.1881 +v -16.5183 96.1262 22.0659 +v -18.0504 96.1262 20.8313 +v -19.4905 96.1262 19.4905 +v -20.8312 96.1262 18.0504 +v -22.0659 96.1262 16.5184 +v -23.188 96.1262 14.9021 +v -24.1921 96.1262 13.2099 +v -25.0728 96.1262 11.4504 +v -25.8258 96.1262 9.63258 +v -26.4472 96.1262 7.76565 +v -26.9338 96.1262 5.85915 +v -27.2831 96.1262 3.92279 +v -27.4935 96.1262 1.96644 +v -27.5637 96.1262 6.9879e-05 +v -27.4935 96.1262 -1.96631 +v -27.2832 96.1262 -3.92266 +v -26.9338 96.1262 -5.85902 +v -26.4472 96.1262 -7.76553 +v -25.8258 96.1262 -9.63246 +v -25.0729 96.1262 -11.4503 +v -24.1921 96.1262 -13.2098 +v -23.1881 96.1262 -14.902 +v -22.0659 96.1262 -16.5183 +v -20.8313 96.1262 -18.0503 +v -19.4905 96.1262 -19.4904 +v -18.0505 96.1262 -20.8312 +v -16.5184 96.1262 -22.0658 +v -14.9021 96.1262 -23.188 +v -13.21 96.1262 -24.1921 +v -11.4505 96.1262 -25.0728 +v -9.63262 96.1262 -25.8258 +v -7.76568 96.1262 -26.4472 +v -5.85918 96.1262 -26.9338 +v -3.92282 96.1262 -27.2831 +v -1.96647 96.1262 -27.4935 +v -0.000104819 96.1262 -27.5637 +v 1.96628 96.1262 -27.4935 +v 3.92263 96.1262 -27.2832 +v 5.85899 96.1262 -26.9338 +v 7.76549 96.1262 -26.4472 +v 9.63243 96.1262 -25.8259 +v 11.4503 96.1262 -25.0729 +v 13.2098 96.1262 -24.1921 +v 14.902 96.1262 -23.1881 +v 16.5182 96.1262 -22.066 +v 18.0503 96.1262 -20.8313 +v 19.4904 96.1262 -19.4906 +v 20.8312 96.1262 -18.0505 +v 22.0658 96.1262 -16.5184 +v 23.188 96.1262 -14.9022 +v 24.192 96.1262 -13.21 +v 25.0728 96.1262 -11.4505 +v 25.8258 96.1262 -9.63264 +v 26.4472 96.1262 -7.76571 +v 26.9338 96.1262 -5.85921 +v 27.2831 96.1262 -3.92286 +v 27.4935 96.1262 -1.96651 +v 34.202 93.9693 5.88009e-39 +v 34.1148 93.9693 2.43994 +v 33.8539 93.9693 4.86745 +v 33.4204 93.9693 7.27015 +v 32.8166 93.9693 9.63581 +v 32.0456 93.9693 11.9524 +v 31.1112 93.9693 14.208 +v 30.0184 93.9693 16.3913 +v 28.7726 93.9693 18.491 +v 27.3801 93.9693 20.4965 +v 25.8482 93.9693 22.3975 +v 24.1845 93.9693 24.1844 +v 22.3976 93.9693 25.8481 +v 20.4965 93.9693 27.3801 +v 18.491 93.9693 28.7725 +v 16.3913 93.9693 30.0184 +v 14.208 93.9693 31.1112 +v 11.9524 93.9693 32.0455 +v 9.63585 93.9693 32.8166 +v 7.27019 93.9693 33.4204 +v 4.86749 93.9693 33.8539 +v 2.43998 93.9693 34.1148 +v 4.33541e-05 93.9693 34.202 +v -2.4399 93.9693 34.1149 +v -4.86741 93.9693 33.8539 +v -7.27011 93.9693 33.4204 +v -9.63577 93.9693 32.8166 +v -11.9523 93.9693 32.0456 +v -14.208 93.9693 31.1112 +v -16.3912 93.9693 30.0184 +v -18.4909 93.9693 28.7726 +v -20.4964 93.9693 27.3801 +v -22.3975 93.9693 25.8482 +v -24.1844 93.9693 24.1845 +v -25.8481 93.9693 22.3976 +v -27.3801 93.9693 20.4965 +v -28.7725 93.9693 18.491 +v -30.0183 93.9693 16.3913 +v -31.1112 93.9693 14.2081 +v -32.0455 93.9693 11.9524 +v -32.8166 93.9693 9.63589 +v -33.4204 93.9693 7.27023 +v -33.8539 93.9693 4.86753 +v -34.1148 93.9693 2.44002 +v -34.202 93.9693 8.67083e-05 +v -34.1149 93.9693 -2.43986 +v -33.8539 93.9693 -4.86736 +v -33.4204 93.9693 -7.27007 +v -32.8166 93.9693 -9.63573 +v -32.0456 93.9693 -11.9523 +v -31.1113 93.9693 -14.2079 +v -30.0184 93.9693 -16.3912 +v -28.7726 93.9693 -18.4909 +v -27.3802 93.9693 -20.4964 +v -25.8482 93.9693 -22.3975 +v -24.1845 93.9693 -24.1844 +v -22.3976 93.9693 -25.8481 +v -20.4966 93.9693 -27.38 +v -18.4911 93.9693 -28.7725 +v -16.3914 93.9693 -30.0183 +v -14.2081 93.9693 -31.1112 +v -11.9525 93.9693 -32.0455 +v -9.63592 93.9693 -32.8165 +v -7.27027 93.9693 -33.4203 +v -4.86757 93.9693 -33.8538 +v -2.44007 93.9693 -34.1148 +v -0.000130062 93.9693 -34.202 +v 2.43982 93.9693 -34.1149 +v 4.86733 93.9693 -33.8539 +v 7.27003 93.9693 -33.4204 +v 9.63569 93.9693 -32.8166 +v 11.9522 93.9693 -32.0456 +v 14.2079 93.9693 -31.1113 +v 16.3912 93.9693 -30.0184 +v 18.4909 93.9693 -28.7726 +v 20.4964 93.9693 -27.3802 +v 22.3974 93.9693 -25.8482 +v 24.1844 93.9693 -24.1846 +v 25.848 93.9693 -22.3976 +v 27.38 93.9693 -20.4966 +v 28.7725 93.9693 -18.4911 +v 30.0183 93.9693 -16.3914 +v 31.1112 93.9693 -14.2082 +v 32.0455 93.9693 -11.9525 +v 32.8165 93.9693 -9.63596 +v 33.4203 93.9693 -7.27031 +v 33.8538 93.9693 -4.86761 +v 34.1148 93.9693 -2.44011 +v 40.6736 91.3546 5.88009e-39 +v 40.57 91.3546 2.90162 +v 40.2596 91.3546 5.78846 +v 39.7441 91.3546 8.6458 +v 39.0261 91.3546 11.4591 +v 38.1092 91.3546 14.214 +v 36.998 91.3546 16.8964 +v 35.6984 91.3546 19.4928 +v 34.2168 91.3546 21.9898 +v 32.5609 91.3546 24.3748 +v 30.7391 91.3546 26.6355 +v 28.7606 91.3546 28.7606 +v 26.6356 91.3546 30.7391 +v 24.3748 91.3546 32.5609 +v 21.9899 91.3546 34.2168 +v 19.4928 91.3546 35.6984 +v 16.8965 91.3546 36.998 +v 14.214 91.3546 38.1091 +v 11.4591 91.3546 39.0261 +v 8.64585 91.3546 39.7441 +v 5.78851 91.3546 40.2596 +v 2.90167 91.3546 40.57 +v 5.15575e-05 91.3546 40.6736 +v -2.90157 91.3546 40.57 +v -5.78841 91.3546 40.2596 +v -8.64575 91.3546 39.7441 +v -11.459 91.3546 39.0261 +v -14.2139 91.3546 38.1092 +v -16.8964 91.3546 36.9981 +v -19.4927 91.3546 35.6984 +v -21.9898 91.3546 34.2169 +v -24.3747 91.3546 32.561 +v -26.6355 91.3546 30.7391 +v -28.7605 91.3546 28.7607 +v -30.739 91.3546 26.6356 +v -32.5609 91.3546 24.3749 +v -34.2168 91.3546 21.9899 +v -35.6984 91.3546 19.4929 +v -36.998 91.3546 16.8965 +v -38.1091 91.3546 14.2141 +v -39.026 91.3546 11.4592 +v -39.7441 91.3546 8.6459 +v -40.2596 91.3546 5.78855 +v -40.57 91.3546 2.90172 +v -40.6736 91.3546 0.000103115 +v -40.57 91.3546 -2.90152 +v -40.2597 91.3546 -5.78836 +v -39.7441 91.3546 -8.6457 +v -39.0261 91.3546 -11.459 +v -38.1092 91.3546 -14.2139 +v -36.9981 91.3546 -16.8963 +v -35.6984 91.3546 -19.4927 +v -34.2169 91.3546 -21.9897 +v -32.561 91.3546 -24.3747 +v -30.7392 91.3546 -26.6355 +v -28.7607 91.3546 -28.7605 +v -26.6357 91.3546 -30.739 +v -24.3749 91.3546 -32.5608 +v -21.9899 91.3546 -34.2168 +v -19.4929 91.3546 -35.6983 +v -16.8966 91.3546 -36.998 +v -14.2141 91.3546 -38.1091 +v -11.4592 91.3546 -39.026 +v -8.64594 91.3546 -39.7441 +v -5.7886 91.3546 -40.2596 +v -2.90177 91.3546 -40.57 +v -0.000154673 91.3546 -40.6736 +v 2.90148 91.3546 -40.57 +v 5.78832 91.3546 -40.2597 +v 8.64565 91.3546 -39.7441 +v 11.4589 91.3546 -39.0261 +v 14.2138 91.3546 -38.1092 +v 16.8963 91.3546 -36.9981 +v 19.4927 91.3546 -35.6985 +v 21.9897 91.3546 -34.2169 +v 24.3747 91.3546 -32.561 +v 26.6354 91.3546 -30.7392 +v 28.7605 91.3546 -28.7607 +v 30.739 91.3546 -26.6357 +v 32.5608 91.3546 -24.3749 +v 34.2167 91.3546 -21.99 +v 35.6983 91.3546 -19.493 +v 36.998 91.3546 -16.8966 +v 38.1091 91.3546 -14.2141 +v 39.026 91.3546 -11.4593 +v 39.7441 91.3546 -8.64599 +v 40.2596 91.3546 -5.78865 +v 40.57 91.3546 -2.90182 +v 46.9471 88.2948 5.88009e-39 +v 46.8275 88.2948 3.34917 +v 46.4693 88.2948 6.68127 +v 45.8742 88.2948 9.97932 +v 45.0454 88.2948 13.2265 +v 43.9871 88.2948 16.4063 +v 42.7046 88.2948 19.5025 +v 41.2045 88.2948 22.4993 +v 39.4944 88.2948 25.3815 +v 37.5831 88.2948 28.1343 +v 35.4803 88.2948 30.7438 +v 33.1966 88.2948 33.1966 +v 30.7438 88.2948 35.4802 +v 28.1344 88.2948 37.5831 +v 25.3816 88.2948 39.4944 +v 22.4994 88.2948 41.2045 +v 19.5026 88.2948 42.7046 +v 16.4064 88.2948 43.9871 +v 13.2266 88.2948 45.0454 +v 9.97938 88.2948 45.8742 +v 6.68132 88.2948 46.4693 +v 3.34922 88.2948 46.8275 +v 5.95097e-05 88.2948 46.9471 +v -3.34911 88.2948 46.8275 +v -6.68121 88.2948 46.4693 +v -9.97927 88.2948 45.8742 +v -13.2265 88.2948 45.0455 +v -16.4063 88.2948 43.9871 +v -19.5025 88.2948 42.7046 +v -22.4993 88.2948 41.2045 +v -25.3815 88.2948 39.4945 +v -28.1343 88.2948 37.5832 +v -30.7438 88.2948 35.4803 +v -33.1966 88.2948 33.1967 +v -35.4802 88.2948 30.7439 +v -37.583 88.2948 28.1344 +v -39.4944 88.2948 25.3816 +v -41.2045 88.2948 22.4994 +v -42.7046 88.2948 19.5026 +v -43.9871 88.2948 16.4064 +v -45.0454 88.2948 13.2266 +v -45.8742 88.2948 9.97944 +v -46.4693 88.2948 6.68138 +v -46.8275 88.2948 3.34928 +v -46.9471 88.2948 0.000119019 +v -46.8275 88.2948 -3.34905 +v -46.4693 88.2948 -6.68115 +v -45.8743 88.2948 -9.97921 +v -45.0455 88.2948 -13.2264 +v -43.9871 88.2948 -16.4062 +v -42.7047 88.2948 -19.5024 +v -41.2046 88.2948 -22.4992 +v -39.4945 88.2948 -25.3814 +v -37.5832 88.2948 -28.1343 +v -35.4804 88.2948 -30.7437 +v -33.1967 88.2948 -33.1965 +v -30.7439 88.2948 -35.4802 +v -28.1345 88.2948 -37.583 +v -25.3817 88.2948 -39.4944 +v -22.4995 88.2948 -41.2044 +v -19.5027 88.2948 -42.7045 +v -16.4065 88.2948 -43.987 +v -13.2267 88.2948 -45.0454 +v -9.97948 88.2948 -45.8742 +v -6.68144 88.2948 -46.4692 +v -3.34934 88.2948 -46.8275 +v -0.000178529 88.2948 -46.9471 +v 3.34901 88.2948 -46.8275 +v 6.6811 88.2948 -46.4693 +v 9.97916 88.2948 -45.8743 +v 13.2264 88.2948 -45.0455 +v 16.4062 88.2948 -43.9872 +v 19.5024 88.2948 -42.7047 +v 22.4992 88.2948 -41.2046 +v 25.3814 88.2948 -39.4945 +v 28.1342 88.2948 -37.5832 +v 30.7437 88.2948 -35.4804 +v 33.1965 88.2948 -33.1968 +v 35.4801 88.2948 -30.744 +v 37.583 88.2948 -28.1345 +v 39.4943 88.2948 -25.3817 +v 41.2044 88.2948 -22.4995 +v 42.7045 88.2948 -19.5027 +v 43.987 88.2948 -16.4065 +v 45.0454 88.2948 -13.2267 +v 45.8742 88.2948 -9.97954 +v 46.4692 88.2948 -6.68149 +v 46.8275 88.2948 -3.3494 +v 52.9919 84.8048 5.88009e-39 +v 52.8569 84.8048 3.7804 +v 52.4525 84.8048 7.54153 +v 51.7809 84.8048 11.2642 +v 50.8453 84.8048 14.9295 +v 49.6507 84.8048 18.5188 +v 48.2031 84.8048 22.0136 +v 46.5099 84.8048 25.3963 +v 44.5796 84.8048 28.6496 +v 42.4222 84.8048 31.7568 +v 40.0486 84.8048 34.7023 +v 37.4709 84.8048 37.4709 +v 34.7023 84.8048 40.0486 +v 31.7569 84.8048 42.4222 +v 28.6496 84.8048 44.5796 +v 25.3963 84.8048 46.5098 +v 22.0137 84.8048 48.2031 +v 18.5188 84.8048 49.6507 +v 14.9296 84.8048 50.8453 +v 11.2643 84.8048 51.7808 +v 7.54159 84.8048 52.4525 +v 3.78046 84.8048 52.8569 +v 6.7172e-05 84.8048 52.9919 +v -3.78033 84.8048 52.8569 +v -7.54146 84.8048 52.4525 +v -11.2642 84.8048 51.7809 +v -14.9295 84.8048 50.8454 +v -18.5187 84.8048 49.6508 +v -22.0136 84.8048 48.2032 +v -25.3962 84.8048 46.5099 +v -28.6495 84.8048 44.5797 +v -31.7568 84.8048 42.4222 +v -34.7022 84.8048 40.0487 +v -37.4709 84.8048 37.471 +v -40.0485 84.8048 34.7024 +v -42.4221 84.8048 31.7569 +v -44.5796 84.8048 28.6497 +v -46.5098 84.8048 25.3964 +v -48.2031 84.8048 22.0137 +v -49.6507 84.8048 18.5189 +v -50.8453 84.8048 14.9297 +v -51.7808 84.8048 11.2644 +v -52.4525 84.8048 7.54165 +v -52.8569 84.8048 3.78052 +v -52.9919 84.8048 0.000134344 +v -52.8569 84.8048 -3.78027 +v -52.4525 84.8048 -7.5414 +v -51.7809 84.8048 -11.2641 +v -50.8454 84.8048 -14.9294 +v -49.6508 84.8048 -18.5186 +v -48.2032 84.8048 -22.0135 +v -46.5099 84.8048 -25.3962 +v -44.5797 84.8048 -28.6495 +v -42.4223 84.8048 -31.7567 +v -40.0487 84.8048 -34.7022 +v -37.471 84.8048 -37.4708 +v -34.7024 84.8048 -40.0485 +v -31.757 84.8048 -42.4221 +v -28.6497 84.8048 -44.5795 +v -25.3965 84.8048 -46.5098 +v -22.0138 84.8048 -48.203 +v -18.5189 84.8048 -49.6507 +v -14.9297 84.8048 -50.8453 +v -11.2644 84.8048 -51.7808 +v -7.54172 84.8048 -52.4525 +v -3.78059 84.8048 -52.8569 +v -0.000201516 84.8048 -52.9919 +v 3.78021 84.8048 -52.8569 +v 7.54134 84.8048 -52.4525 +v 11.264 84.8048 -51.7809 +v 14.9293 84.8048 -50.8454 +v 18.5186 84.8048 -49.6508 +v 22.0134 84.8048 -48.2032 +v 25.3961 84.8048 -46.51 +v 28.6494 84.8048 -44.5797 +v 31.7567 84.8048 -42.4223 +v 34.7021 84.8048 -40.0487 +v 37.4708 84.8048 -37.4711 +v 40.0485 84.8048 -34.7025 +v 42.4221 84.8048 -31.757 +v 44.5795 84.8048 -28.6498 +v 46.5098 84.8048 -25.3965 +v 48.203 84.8048 -22.0139 +v 49.6507 84.8048 -18.519 +v 50.8453 84.8048 -14.9298 +v 51.7808 84.8048 -11.2645 +v 52.4525 84.8048 -7.54178 +v 52.8569 84.8048 -3.78066 +v 58.7785 80.9017 5.88009e-39 +v 58.6287 80.9017 4.19321 +v 58.1802 80.9017 8.36504 +v 57.4352 80.9017 12.4943 +v 56.3975 80.9017 16.5598 +v 55.0725 80.9017 20.541 +v 53.4668 80.9017 24.4174 +v 51.5887 80.9017 28.1695 +v 49.4476 80.9017 31.778 +v 47.0546 80.9017 35.2246 +v 44.4218 80.9017 38.4917 +v 41.5627 80.9017 41.5626 +v 38.4918 80.9017 44.4218 +v 35.2247 80.9017 47.0546 +v 31.7781 80.9017 49.4476 +v 28.1696 80.9017 51.5886 +v 24.4175 80.9017 53.4668 +v 20.541 80.9017 55.0725 +v 16.5599 80.9017 56.3975 +v 12.4943 80.9017 57.4352 +v 8.36512 80.9017 58.1802 +v 4.19327 80.9017 58.6287 +v 7.45071e-05 80.9017 58.7785 +v -4.19313 80.9017 58.6287 +v -8.36497 80.9017 58.1802 +v -12.4942 80.9017 57.4352 +v -16.5597 80.9017 56.3976 +v -20.5409 80.9017 55.0725 +v -24.4174 80.9017 53.4668 +v -28.1695 80.9017 51.5887 +v -31.778 80.9017 49.4477 +v -35.2246 80.9017 47.0547 +v -38.4916 80.9017 44.4219 +v -41.5626 80.9017 41.5627 +v -44.4217 80.9017 38.4918 +v -47.0545 80.9017 35.2247 +v -49.4476 80.9017 31.7781 +v -51.5886 80.9017 28.1696 +v -53.4667 80.9017 24.4176 +v -55.0724 80.9017 20.5411 +v -56.3975 80.9017 16.5599 +v -57.4352 80.9017 12.4944 +v -58.1802 80.9017 8.36518 +v -58.6287 80.9017 4.19335 +v -58.7785 80.9017 0.000149014 +v -58.6287 80.9017 -4.19307 +v -58.1802 80.9017 -8.3649 +v -57.4352 80.9017 -12.4941 +v -56.3976 80.9017 -16.5597 +v -55.0725 80.9017 -20.5408 +v -53.4669 80.9017 -24.4173 +v -51.5887 80.9017 -28.1694 +v -49.4477 80.9017 -31.7779 +v -47.0547 80.9017 -35.2245 +v -44.4219 80.9017 -38.4916 +v -41.5628 80.9017 -41.5625 +v -38.4919 80.9017 -44.4217 +v -35.2248 80.9017 -47.0545 +v -31.7782 80.9017 -49.4475 +v -28.1697 80.9017 -51.5886 +v -24.4176 80.9017 -53.4667 +v -20.5412 80.9017 -55.0724 +v -16.56 80.9017 -56.3975 +v -12.4945 80.9017 -57.4352 +v -8.36526 80.9017 -58.1802 +v -4.19342 80.9017 -58.6287 +v -0.000223521 80.9017 -58.7785 +v 4.19301 80.9017 -58.6287 +v 8.36484 80.9017 -58.1802 +v 12.4941 80.9017 -57.4353 +v 16.5596 80.9017 -56.3976 +v 20.5408 80.9017 -55.0726 +v 24.4173 80.9017 -53.4669 +v 28.1693 80.9017 -51.5888 +v 31.7779 80.9017 -49.4477 +v 35.2244 80.9017 -47.0547 +v 38.4915 80.9017 -44.422 +v 41.5625 80.9017 -41.5629 +v 44.4217 80.9017 -38.4919 +v 47.0545 80.9017 -35.2248 +v 49.4475 80.9017 -31.7783 +v 51.5885 80.9017 -28.1698 +v 53.4667 80.9017 -24.4177 +v 55.0724 80.9017 -20.5412 +v 56.3975 80.9017 -16.5601 +v 57.4352 80.9017 -12.4945 +v 58.1802 80.9017 -8.36533 +v 58.6287 80.9017 -4.1935 +v 64.2787 76.6045 5.88009e-39 +v 64.115 76.6045 4.58559 +v 63.6245 76.6045 9.14781 +v 62.8098 76.6045 13.6634 +v 61.675 76.6045 18.1094 +v 60.2259 76.6045 22.4631 +v 58.47 76.6045 26.7023 +v 56.4161 76.6045 30.8055 +v 54.0747 76.6045 34.7517 +v 51.4578 76.6045 38.5208 +v 48.5786 76.6045 42.0936 +v 45.452 76.6045 45.4519 +v 42.0936 76.6045 48.5786 +v 38.5208 76.6045 51.4577 +v 34.7517 76.6045 54.0747 +v 30.8056 76.6045 56.4161 +v 26.7024 76.6045 58.47 +v 22.4632 76.6045 60.2259 +v 18.1095 76.6045 61.675 +v 13.6635 76.6045 62.8097 +v 9.14789 76.6045 63.6245 +v 4.58566 76.6045 64.1149 +v 8.14791e-05 76.6045 64.2787 +v -4.58551 76.6045 64.115 +v -9.14773 76.6045 63.6245 +v -13.6633 76.6045 62.8098 +v -18.1093 76.6045 61.675 +v -22.463 76.6045 60.226 +v -26.7023 76.6045 58.47 +v -30.8054 76.6045 56.4161 +v -34.7516 76.6045 54.0748 +v -38.5207 76.6045 51.4578 +v -42.0935 76.6045 48.5787 +v -45.4518 76.6045 45.452 +v -48.5785 76.6045 42.0937 +v -51.4577 76.6045 38.5209 +v -54.0746 76.6045 34.7518 +v -56.416 76.6045 30.8056 +v -58.4699 76.6045 26.7025 +v -60.2259 76.6045 22.4632 +v -61.6749 76.6045 18.1095 +v -62.8097 76.6045 13.6636 +v -63.6244 76.6045 9.14796 +v -64.1149 76.6045 4.58574 +v -64.2787 76.6045 0.000162958 +v -64.115 76.6045 -4.58544 +v -63.6245 76.6045 -9.14765 +v -62.8098 76.6045 -13.6633 +v -61.675 76.6045 -18.1092 +v -60.226 76.6045 -22.4629 +v -58.4701 76.6045 -26.7022 +v -56.4162 76.6045 -30.8054 +v -54.0748 76.6045 -34.7516 +v -51.4579 76.6045 -38.5207 +v -48.5787 76.6045 -42.0935 +v -45.4521 76.6045 -45.4518 +v -42.0938 76.6045 -48.5785 +v -38.521 76.6045 -51.4577 +v -34.7519 76.6045 -54.0746 +v -30.8057 76.6045 -56.416 +v -26.7025 76.6045 -58.4699 +v -22.4633 76.6045 -60.2259 +v -18.1096 76.6045 -61.6749 +v -13.6636 76.6045 -62.8097 +v -9.14804 76.6045 -63.6244 +v -4.58583 76.6045 -64.1149 +v -0.000244437 76.6045 -64.2787 +v 4.58537 76.6045 -64.115 +v 9.14759 76.6045 -63.6245 +v 13.6632 76.6045 -62.8098 +v 18.1092 76.6045 -61.6751 +v 22.4629 76.6045 -60.226 +v 26.7021 76.6045 -58.4701 +v 30.8053 76.6045 -56.4162 +v 34.7515 76.6045 -54.0748 +v 38.5206 76.6045 -51.4579 +v 42.0934 76.6045 -48.5788 +v 45.4517 76.6045 -45.4521 +v 48.5784 76.6045 -42.0938 +v 51.4576 76.6045 -38.521 +v 54.0746 76.6045 -34.7519 +v 56.4159 76.6045 -30.8058 +v 58.4699 76.6045 -26.7026 +v 60.2258 76.6045 -22.4634 +v 61.6749 76.6045 -18.1097 +v 62.8097 76.6045 -13.6637 +v 63.6244 76.6045 -9.14812 +v 64.1149 76.6045 -4.58591 +v 69.4658 71.934 5.88009e-39 +v 69.2888 71.934 4.95563 +v 68.7587 71.934 9.88601 +v 67.8783 71.934 14.766 +v 66.6519 71.934 19.5708 +v 65.086 71.934 24.2758 +v 63.1883 71.934 28.8571 +v 60.9687 71.934 33.2914 +v 58.4384 71.934 37.556 +v 55.6103 71.934 41.6293 +v 52.4988 71.934 45.4904 +v 49.1198 71.934 49.1197 +v 45.4905 71.934 52.4987 +v 41.6293 71.934 55.6102 +v 37.5561 71.934 58.4383 +v 33.2915 71.934 60.9686 +v 28.8572 71.934 63.1883 +v 24.2759 71.934 65.0859 +v 19.5708 71.934 66.6519 +v 14.7661 71.934 67.8783 +v 9.88609 71.934 68.7587 +v 4.95571 71.934 69.2888 +v 8.80542e-05 71.934 69.4658 +v -4.95554 71.934 69.2888 +v -9.88592 71.934 68.7588 +v -14.7659 71.934 67.8783 +v -19.5707 71.934 66.652 +v -24.2757 71.934 65.086 +v -28.857 71.934 63.1884 +v -33.2913 71.934 60.9687 +v -37.5559 71.934 58.4384 +v -41.6292 71.934 55.6103 +v -45.4903 71.934 52.4988 +v -49.1196 71.934 49.1198 +v -52.4987 71.934 45.4905 +v -55.6102 71.934 41.6294 +v -58.4383 71.934 37.5562 +v -60.9686 71.934 33.2915 +v -63.1883 71.934 28.8573 +v -65.0859 71.934 24.2759 +v -66.6519 71.934 19.5709 +v -67.8783 71.934 14.7662 +v -68.7587 71.934 9.88617 +v -69.2888 71.934 4.9558 +v -69.4658 71.934 0.000176108 +v -69.2888 71.934 -4.95546 +v -68.7588 71.934 -9.88584 +v -67.8783 71.934 -14.7658 +v -66.652 71.934 -19.5706 +v -65.086 71.934 -24.2756 +v -63.1884 71.934 -28.857 +v -60.9688 71.934 -33.2912 +v -58.4384 71.934 -37.5559 +v -55.6104 71.934 -41.6291 +v -52.4989 71.934 -45.4903 +v -49.1199 71.934 -49.1196 +v -45.4906 71.934 -52.4986 +v -41.6295 71.934 -55.6101 +v -37.5562 71.934 -58.4382 +v -33.2916 71.934 -60.9686 +v -28.8574 71.934 -63.1882 +v -24.276 71.934 -65.0859 +v -19.571 71.934 -66.6519 +v -14.7662 71.934 -67.8782 +v -9.88626 71.934 -68.7587 +v -4.95589 71.934 -69.2888 +v -0.000264163 71.934 -69.4658 +v 4.95539 71.934 -69.2888 +v 9.88577 71.934 -68.7588 +v 14.7658 71.934 -67.8783 +v 19.5705 71.934 -66.652 +v 24.2755 71.934 -65.0861 +v 28.8569 71.934 -63.1884 +v 33.2912 71.934 -60.9688 +v 37.5558 71.934 -58.4385 +v 41.6291 71.934 -55.6104 +v 45.4902 71.934 -52.4989 +v 49.1195 71.934 -49.12 +v 52.4986 71.934 -45.4906 +v 55.6101 71.934 -41.6295 +v 58.4382 71.934 -37.5563 +v 60.9685 71.934 -33.2917 +v 63.1882 71.934 -28.8574 +v 65.0859 71.934 -24.2761 +v 66.6519 71.934 -19.5711 +v 67.8782 71.934 -14.7663 +v 68.7587 71.934 -9.88634 +v 69.2888 71.934 -4.95597 +v 74.3144 66.9131 5.88009e-39 +v 74.1251 66.9131 5.30153 +v 73.558 66.9131 10.576 +v 72.6161 66.9131 15.7967 +v 71.3042 66.9131 20.9368 +v 69.6289 66.9131 25.9702 +v 67.5988 66.9131 30.8713 +v 65.2242 66.9131 35.6151 +v 62.5173 66.9131 40.1774 +v 59.4918 66.9131 44.535 +v 56.1631 66.9131 48.6656 +v 52.5483 66.9131 52.5482 +v 48.6656 66.9131 56.1631 +v 44.535 66.9131 59.4917 +v 40.1775 66.9131 62.5173 +v 35.6152 66.9131 65.2242 +v 30.8714 66.9131 67.5988 +v 25.9703 66.9131 69.6289 +v 20.9369 66.9131 71.3042 +v 15.7967 66.9131 72.6161 +v 10.5761 66.9131 73.558 +v 5.30161 66.9131 74.1251 +v 9.42003e-05 66.9131 74.3144 +v -5.30144 66.9131 74.1251 +v -10.576 66.9131 73.558 +v -15.7966 66.9131 72.6161 +v -20.9367 66.9131 71.3042 +v -25.9701 66.9131 69.6289 +v -30.8712 66.9131 67.5988 +v -35.615 66.9131 65.2243 +v -40.1773 66.9131 62.5174 +v -44.5349 66.9131 59.4918 +v -48.6655 66.9131 56.1632 +v -52.5481 66.9131 52.5483 +v -56.163 66.9131 48.6657 +v -59.4917 66.9131 44.5351 +v -62.5172 66.9131 40.1775 +v -65.2242 66.9131 35.6152 +v -67.5987 66.9131 30.8715 +v -69.6288 66.9131 25.9704 +v -71.3041 66.9131 20.937 +v -72.6161 66.9131 15.7968 +v -73.558 66.9131 10.5762 +v -74.1251 66.9131 5.30171 +v -74.3144 66.9131 0.000188401 +v -74.1251 66.9131 -5.30135 +v -73.5581 66.9131 -10.5759 +v -72.6162 66.9131 -15.7965 +v -71.3042 66.9131 -20.9366 +v -69.629 66.9131 -25.97 +v -67.5989 66.9131 -30.8712 +v -65.2243 66.9131 -35.6149 +v -62.5174 66.9131 -40.1772 +v -59.4919 66.9131 -44.5348 +v -56.1633 66.9131 -48.6654 +v -52.5484 66.9131 -52.5481 +v -48.6658 66.9131 -56.163 +v -44.5352 66.9131 -59.4916 +v -40.1776 66.9131 -62.5172 +v -35.6153 66.9131 -65.2241 +v -30.8716 66.9131 -67.5987 +v -25.9705 66.9131 -69.6288 +v -20.937 66.9131 -71.3041 +v -15.7969 66.9131 -72.6161 +v -10.5763 66.9131 -73.558 +v -5.3018 66.9131 -74.1251 +v -0.000282601 66.9131 -74.3144 +v 5.30127 66.9131 -74.1251 +v 10.5758 66.9131 -73.5581 +v 15.7964 66.9131 -72.6162 +v 20.9365 66.9131 -71.3043 +v 25.97 66.9131 -69.629 +v 30.8711 66.9131 -67.5989 +v 35.6149 66.9131 -65.2244 +v 40.1772 66.9131 -62.5174 +v 44.5347 66.9131 -59.492 +v 48.6654 66.9131 -56.1633 +v 52.548 66.9131 -52.5485 +v 56.1629 66.9131 -48.6658 +v 59.4916 66.9131 -44.5352 +v 62.5171 66.9131 -40.1777 +v 65.2241 66.9131 -35.6154 +v 67.5986 66.9131 -30.8716 +v 69.6288 66.9131 -25.9705 +v 71.3041 66.9131 -20.9371 +v 72.616 66.9131 -15.797 +v 73.558 66.9131 -10.5764 +v 74.1251 66.9131 -5.3019 +v 78.801 61.5662 5.88009e-39 +v 78.6003 61.5662 5.6216 +v 77.999 61.5662 11.2145 +v 77.0002 61.5662 16.7504 +v 75.609 61.5662 22.2008 +v 73.8326 61.5662 27.5381 +v 71.68 61.5662 32.7351 +v 69.162 61.5662 37.7653 +v 66.2917 61.5662 42.603 +v 63.0835 61.5662 47.2237 +v 59.5539 61.5662 51.6037 +v 55.7208 61.5662 55.7207 +v 51.6037 61.5662 59.5538 +v 47.2237 61.5662 63.0834 +v 42.6031 61.5662 66.2916 +v 37.7654 61.5662 69.162 +v 32.7352 61.5662 71.6799 +v 27.5382 61.5662 73.8326 +v 22.2009 61.5662 75.609 +v 16.7504 61.5662 77.0002 +v 11.2146 61.5662 77.9989 +v 5.62169 61.5662 78.6003 +v 9.98875e-05 61.5662 78.801 +v -5.6215 61.5662 78.6003 +v -11.2145 61.5662 77.999 +v -16.7503 61.5662 77.0002 +v -22.2007 61.5662 75.6091 +v -27.538 61.5662 73.8326 +v -32.735 61.5662 71.68 +v -37.7652 61.5662 69.1621 +v -42.6029 61.5662 66.2917 +v -47.2236 61.5662 63.0836 +v -51.6036 61.5662 59.5539 +v -55.7206 61.5662 55.7209 +v -59.5538 61.5662 51.6038 +v -63.0834 61.5662 47.2238 +v -66.2916 61.5662 42.6032 +v -69.1619 61.5662 37.7655 +v -71.6799 61.5662 32.7353 +v -73.8326 61.5662 27.5383 +v -75.609 61.5662 22.201 +v -77.0001 61.5662 16.7505 +v -77.9989 61.5662 11.2147 +v -78.6002 61.5662 5.62179 +v -78.801 61.5662 0.000199775 +v -78.6003 61.5662 -5.62141 +v -77.999 61.5662 -11.2144 +v -77.0002 61.5662 -16.7502 +v -75.6091 61.5662 -22.2006 +v -73.8327 61.5662 -27.5379 +v -71.68 61.5662 -32.7349 +v -69.1621 61.5662 -37.7651 +v -66.2918 61.5662 -42.6029 +v -63.0836 61.5662 -47.2235 +v -59.554 61.5662 -51.6035 +v -55.7209 61.5662 -55.7206 +v -51.6039 61.5662 -59.5537 +v -47.2239 61.5662 -63.0833 +v -42.6033 61.5662 -66.2915 +v -37.7655 61.5662 -69.1619 +v -32.7354 61.5662 -71.6798 +v -27.5384 61.5662 -73.8325 +v -22.2011 61.5662 -75.609 +v -16.7506 61.5662 -77.0001 +v -11.2148 61.5662 -77.9989 +v -5.62189 61.5662 -78.6002 +v -0.000299662 61.5662 -78.801 +v 5.62133 61.5662 -78.6003 +v 11.2143 61.5662 -77.999 +v 16.7501 61.5662 -77.0002 +v 22.2005 61.5662 -75.6091 +v 27.5378 61.5662 -73.8327 +v 32.7349 61.5662 -71.6801 +v 37.765 61.5662 -69.1622 +v 42.6028 61.5662 -66.2918 +v 47.2234 61.5662 -63.0837 +v 51.6034 61.5662 -59.5541 +v 55.7205 61.5662 -55.721 +v 59.5536 61.5662 -51.6039 +v 63.0833 61.5662 -47.224 +v 66.2915 61.5662 -42.6033 +v 69.1618 61.5662 -37.7656 +v 71.6798 61.5662 -32.7355 +v 73.8325 61.5662 -27.5385 +v 75.6089 61.5662 -22.2012 +v 77.0001 61.5662 -16.7507 +v 77.9989 61.5662 -11.2149 +v 78.6002 61.5662 -5.62199 +v 82.9037 55.9194 5.88009e-39 +v 82.6925 55.9194 5.91428 +v 82.0599 55.9194 11.7984 +v 81.0091 55.9194 17.6224 +v 79.5455 55.9194 23.3567 +v 77.6766 55.9194 28.9719 +v 75.4119 55.9194 34.4394 +v 72.7629 55.9194 39.7315 +v 69.7431 55.9194 44.8211 +v 66.3679 55.9194 49.6823 +v 62.6545 55.9194 54.2904 +v 58.6218 55.9194 58.6217 +v 54.2904 55.9194 62.6544 +v 49.6824 55.9194 66.3678 +v 44.8212 55.9194 69.743 +v 39.7316 55.9194 72.7628 +v 34.4395 55.9194 75.4118 +v 28.972 55.9194 77.6766 +v 23.3568 55.9194 79.5455 +v 17.6225 55.9194 81.0091 +v 11.7985 55.9194 82.0599 +v 5.91438 55.9194 82.6925 +v 0.000105088 55.9194 82.9037 +v -5.91418 55.9194 82.6925 +v -11.7983 55.9194 82.0599 +v -17.6223 55.9194 81.0091 +v -23.3566 55.9194 79.5456 +v -28.9718 55.9194 77.6767 +v -34.4393 55.9194 75.4119 +v -39.7314 55.9194 72.7629 +v -44.821 55.9194 69.7431 +v -49.6822 55.9194 66.3679 +v -54.2903 55.9194 62.6545 +v -58.6217 55.9194 58.6219 +v -62.6544 55.9194 54.2905 +v -66.3677 55.9194 49.6825 +v -69.743 55.9194 44.8213 +v -72.7628 55.9194 39.7317 +v -75.4118 55.9194 34.4396 +v -77.6766 55.9194 28.972 +v -79.5455 55.9194 23.3569 +v -81.0091 55.9194 17.6226 +v -82.0599 55.9194 11.7986 +v -82.6925 55.9194 5.91448 +v -82.9037 55.9194 0.000210176 +v -82.6925 55.9194 -5.91408 +v -82.0599 55.9194 -11.7982 +v -81.0091 55.9194 -17.6223 +v -79.5456 55.9194 -23.3565 +v -77.6767 55.9194 -28.9717 +v -75.412 55.9194 -34.4392 +v -72.763 55.9194 -39.7313 +v -69.7432 55.9194 -44.8209 +v -66.368 55.9194 -49.6822 +v -62.6546 55.9194 -54.2902 +v -58.622 55.9194 -58.6216 +v -54.2906 55.9194 -62.6543 +v -49.6825 55.9194 -66.3677 +v -44.8214 55.9194 -69.7429 +v -39.7318 55.9194 -72.7627 +v -34.4397 55.9194 -75.4118 +v -28.9722 55.9194 -77.6765 +v -23.3569 55.9194 -79.5455 +v -17.6227 55.9194 -81.009 +v -11.7987 55.9194 -82.0598 +v -5.91459 55.9194 -82.6925 +v -0.000315264 55.9194 -82.9037 +v 5.914 55.9194 -82.6925 +v 11.7981 55.9194 -82.0599 +v 17.6221 55.9194 -81.0092 +v 23.3564 55.9194 -79.5456 +v 28.9716 55.9194 -77.6767 +v 34.4392 55.9194 -75.412 +v 39.7312 55.9194 -72.763 +v 44.8209 55.9194 -69.7432 +v 49.6821 55.9194 -66.368 +v 54.2901 55.9194 -62.6547 +v 58.6215 55.9194 -58.622 +v 62.6542 55.9194 -54.2906 +v 66.3676 55.9194 -49.6826 +v 69.7429 55.9194 -44.8214 +v 72.7627 55.9194 -39.7319 +v 75.4117 55.9194 -34.4398 +v 77.6765 55.9194 -28.9722 +v 79.5454 55.9194 -23.357 +v 81.009 55.9194 -17.6228 +v 82.0598 55.9194 -11.7988 +v 82.6925 55.9194 -5.91469 +v 86.6025 50.0001 5.88009e-39 +v 86.3819 50.0001 6.17815 +v 85.721 50.0001 12.3248 +v 84.6234 50.0001 18.4087 +v 83.0945 50.0001 24.3987 +v 81.1422 50.0001 30.2645 +v 78.7764 50.0001 35.976 +v 76.0092 50.0001 41.5041 +v 72.8547 50.0001 46.8208 +v 69.3289 50.0001 51.8989 +v 65.4498 50.0001 56.7125 +v 61.2373 50.0001 61.2372 +v 56.7126 50.0001 65.4498 +v 51.899 50.0001 69.3288 +v 46.8209 50.0001 72.8546 +v 41.5042 50.0001 76.0092 +v 35.976 50.0001 78.7764 +v 30.2645 50.0001 81.1422 +v 24.3988 50.0001 83.0945 +v 18.4088 50.0001 84.6233 +v 12.3249 50.0001 85.721 +v 6.17825 50.0001 86.3818 +v 0.000109777 50.0001 86.6025 +v -6.17804 50.0001 86.3819 +v -12.3247 50.0001 85.721 +v -18.4086 50.0001 84.6234 +v -24.3986 50.0001 83.0945 +v -30.2643 50.0001 81.1422 +v -35.9759 50.0001 78.7765 +v -41.504 50.0001 76.0093 +v -46.8207 50.0001 72.8547 +v -51.8988 50.0001 69.329 +v -56.7125 50.0001 65.4499 +v -61.2371 50.0001 61.2373 +v -65.4497 50.0001 56.7127 +v -69.3288 50.0001 51.8991 +v -72.8546 50.0001 46.821 +v -76.0091 50.0001 41.5043 +v -78.7763 50.0001 35.9761 +v -81.1421 50.0001 30.2646 +v -83.0944 50.0001 24.3989 +v -84.6233 50.0001 18.4089 +v -85.721 50.0001 12.325 +v -86.3818 50.0001 6.17836 +v -86.6025 50.0001 0.000219553 +v -86.3819 50.0001 -6.17794 +v -85.721 50.0001 -12.3246 +v -84.6234 50.0001 -18.4085 +v -83.0946 50.0001 -24.3985 +v -81.1423 50.0001 -30.2642 +v -78.7765 50.0001 -35.9758 +v -76.0093 50.0001 -41.5039 +v -72.8548 50.0001 -46.8206 +v -69.329 50.0001 -51.8987 +v -65.45 50.0001 -56.7124 +v -61.2374 50.0001 -61.237 +v -56.7128 50.0001 -65.4496 +v -51.8992 50.0001 -69.3287 +v -46.8211 50.0001 -72.8545 +v -41.5044 50.0001 -76.0091 +v -35.9762 50.0001 -78.7763 +v -30.2648 50.0001 -81.1421 +v -24.399 50.0001 -83.0944 +v -18.409 50.0001 -84.6233 +v -12.3251 50.0001 -85.721 +v -6.17847 50.0001 -86.3818 +v -0.00032933 50.0001 -86.6025 +v 6.17785 50.0001 -86.3819 +v 12.3245 50.0001 -85.7211 +v 18.4084 50.0001 -84.6234 +v 24.3984 50.0001 -83.0946 +v 30.2641 50.0001 -81.1423 +v 35.9757 50.0001 -78.7765 +v 41.5039 50.0001 -76.0094 +v 46.8206 50.0001 -72.8549 +v 51.8987 50.0001 -69.3291 +v 56.7123 50.0001 -65.4501 +v 61.2369 50.0001 -61.2375 +v 65.4496 50.0001 -56.7128 +v 69.3287 50.0001 -51.8992 +v 72.8545 50.0001 -46.8212 +v 76.009 50.0001 -41.5045 +v 78.7762 50.0001 -35.9763 +v 81.1421 50.0001 -30.2648 +v 83.0944 50.0001 -24.3991 +v 84.6233 50.0001 -18.4091 +v 85.721 50.0001 -12.3252 +v 86.3818 50.0001 -6.17858 +v 89.8794 43.8372 5.88009e-39 +v 89.6504 43.8372 6.41192 +v 88.9645 43.8372 12.7912 +v 87.8253 43.8372 19.1052 +v 86.2386 43.8372 25.3219 +v 84.2125 43.8372 31.4096 +v 81.7572 43.8372 37.3372 +v 78.8852 43.8372 43.0746 +v 75.6114 43.8372 48.5924 +v 71.9522 43.8372 53.8627 +v 67.9263 43.8372 58.8584 +v 63.5543 43.8372 63.5543 +v 58.8585 43.8372 67.9263 +v 53.8627 43.8372 71.9521 +v 48.5925 43.8372 75.6113 +v 43.0747 43.8372 78.8852 +v 37.3373 43.8372 81.7571 +v 31.4097 43.8372 84.2124 +v 25.322 43.8372 86.2386 +v 19.1053 43.8372 87.8253 +v 12.7913 43.8372 88.9645 +v 6.41202 43.8372 89.6504 +v 0.00011393 43.8372 89.8794 +v -6.4118 43.8372 89.6504 +v -12.791 43.8372 88.9645 +v -19.1051 43.8372 87.8254 +v -25.3218 43.8372 86.2387 +v -31.4095 43.8372 84.2125 +v -37.3371 43.8372 81.7572 +v -43.0745 43.8372 78.8853 +v -48.5923 43.8372 75.6114 +v -53.8626 43.8372 71.9522 +v -58.8583 43.8372 67.9264 +v -63.5542 43.8372 63.5544 +v -67.9262 43.8372 58.8586 +v -71.952 43.8372 53.8628 +v -75.6112 43.8372 48.5926 +v -78.8851 43.8372 43.0748 +v -81.7571 43.8372 37.3374 +v -84.2124 43.8372 31.4098 +v -86.2386 43.8372 25.3221 +v -87.8253 43.8372 19.1054 +v -88.9645 43.8372 12.7914 +v -89.6503 43.8372 6.41213 +v -89.8794 43.8372 0.000227861 +v -89.6504 43.8372 -6.4117 +v -88.9646 43.8372 -12.7909 +v -87.8254 43.8372 -19.105 +v -86.2387 43.8372 -25.3217 +v -84.2125 43.8372 -31.4094 +v -81.7572 43.8372 -37.337 +v -78.8854 43.8372 -43.0744 +v -75.6115 43.8372 -48.5922 +v -71.9523 43.8372 -53.8625 +v -67.9265 43.8372 -58.8583 +v -63.5545 43.8372 -63.5541 +v -58.8587 43.8372 -67.9261 +v -53.8629 43.8372 -71.952 +v -48.5927 43.8372 -75.6112 +v -43.0749 43.8372 -78.8851 +v -37.3375 43.8372 -81.757 +v -31.4099 43.8372 -84.2123 +v -25.3222 43.8372 -86.2385 +v -19.1055 43.8372 -87.8253 +v -12.7915 43.8372 -88.9645 +v -6.41225 43.8372 -89.6503 +v -0.000341791 43.8372 -89.8794 +v 6.41161 43.8372 -89.6504 +v 12.7908 43.8372 -88.9646 +v 19.1049 43.8372 -87.8254 +v 25.3216 43.8372 -86.2387 +v 31.4093 43.8372 -84.2126 +v 37.3369 43.8372 -81.7573 +v 43.0743 43.8372 -78.8854 +v 48.5922 43.8372 -75.6115 +v 53.8624 43.8372 -71.9524 +v 58.8582 43.8372 -67.9265 +v 63.554 43.8372 -63.5546 +v 67.926 43.8372 -58.8587 +v 71.9519 43.8372 -53.863 +v 75.6111 43.8372 -48.5928 +v 78.885 43.8372 -43.075 +v 81.757 43.8372 -37.3376 +v 84.2123 43.8372 -31.41 +v 86.2385 43.8372 -25.3223 +v 87.8252 43.8372 -19.1056 +v 88.9645 43.8372 -12.7916 +v 89.6503 43.8372 -6.41236 +v 92.7184 37.4607 5.88009e-39 +v 92.4821 37.4607 6.61445 +v 91.7746 37.4607 13.1952 +v 90.5994 37.4607 19.7087 +v 88.9626 37.4607 26.1218 +v 86.8724 37.4607 32.4017 +v 84.3396 37.4607 38.5166 +v 81.377 37.4607 44.4351 +v 77.9997 37.4607 50.1273 +v 74.2249 37.4607 55.564 +v 70.0719 37.4607 60.7176 +v 65.5618 37.4607 65.5617 +v 60.7177 37.4607 70.0718 +v 55.5641 37.4607 74.2248 +v 50.1274 37.4607 77.9996 +v 44.4352 37.4607 81.3769 +v 38.5167 37.4607 84.3395 +v 32.4018 37.4607 86.8724 +v 26.1219 37.4607 88.9626 +v 19.7088 37.4607 90.5994 +v 13.1953 37.4607 91.7746 +v 6.61456 37.4607 92.4821 +v 0.000117529 37.4607 92.7184 +v -6.61433 37.4607 92.4821 +v -13.1951 37.4607 91.7746 +v -19.7086 37.4607 90.5995 +v -26.1217 37.4607 88.9626 +v -32.4016 37.4607 86.8725 +v -38.5165 37.4607 84.3396 +v -44.4351 37.4607 81.377 +v -50.1272 37.4607 77.9997 +v -55.5639 37.4607 74.225 +v -60.7175 37.4607 70.072 +v -65.5617 37.4607 65.5619 +v -70.0717 37.4607 60.7177 +v -74.2248 37.4607 55.5642 +v -77.9995 37.4607 50.1275 +v -81.3769 37.4607 44.4353 +v -84.3395 37.4607 38.5168 +v -86.8724 37.4607 32.4019 +v -88.9625 37.4607 26.122 +v -90.5994 37.4607 19.7089 +v -91.7746 37.4607 13.1954 +v -92.4821 37.4607 6.61467 +v -92.7184 37.4607 0.000235058 +v -92.4821 37.4607 -6.61423 +v -91.7747 37.4607 -13.195 +v -90.5995 37.4607 -19.7085 +v -88.9627 37.4607 -26.1215 +v -86.8725 37.4607 -32.4015 +v -84.3397 37.4607 -38.5164 +v -81.3771 37.4607 -44.4349 +v -77.9998 37.4607 -50.1271 +v -74.225 37.4607 -55.5638 +v -70.072 37.4607 -60.7174 +v -65.562 37.4607 -65.5616 +v -60.7178 37.4607 -70.0717 +v -55.5643 37.4607 -74.2247 +v -50.1276 37.4607 -77.9995 +v -44.4354 37.4607 -81.3768 +v -38.5169 37.4607 -84.3394 +v -32.4021 37.4607 -86.8723 +v -26.1221 37.4607 -88.9625 +v -19.709 37.4607 -90.5994 +v -13.1955 37.4607 -91.7746 +v -6.61479 37.4607 -92.4821 +v -0.000352587 37.4607 -92.7184 +v 6.61413 37.4607 -92.4821 +v 13.1949 37.4607 -91.7747 +v 19.7084 37.4607 -90.5995 +v 26.1214 37.4607 -88.9627 +v 32.4014 37.4607 -86.8726 +v 38.5163 37.4607 -84.3397 +v 44.4349 37.4607 -81.3771 +v 50.127 37.4607 -77.9998 +v 55.5637 37.4607 -74.2251 +v 60.7173 37.4607 -70.0721 +v 65.5615 37.4607 -65.5621 +v 70.0716 37.4607 -60.7179 +v 74.2246 37.4607 -55.5644 +v 77.9994 37.4607 -50.1277 +v 81.3767 37.4607 -44.4355 +v 84.3394 37.4607 -38.517 +v 86.8723 37.4607 -32.4021 +v 88.9625 37.4607 -26.1222 +v 90.5994 37.4607 -19.7091 +v 91.7746 37.4607 -13.1956 +v 92.4821 37.4607 -6.61491 +v 95.1056 30.9018 5.88009e-39 +v 94.8633 30.9018 6.78475 +v 94.1376 30.9018 13.5349 +v 92.9322 30.9018 20.2161 +v 91.2532 30.9018 26.7943 +v 89.1092 30.9018 33.236 +v 86.5111 30.9018 39.5083 +v 83.4722 30.9018 45.5792 +v 80.008 30.9018 51.4179 +v 76.136 30.9018 56.9946 +v 71.8761 30.9018 62.2809 +v 67.2499 30.9018 67.2498 +v 62.281 30.9018 71.876 +v 56.9947 30.9018 76.1359 +v 51.418 30.9018 80.0079 +v 45.5793 30.9018 83.4722 +v 39.5084 30.9018 86.5111 +v 33.2361 30.9018 89.1092 +v 26.7944 30.9018 91.2532 +v 20.2163 30.9018 92.9321 +v 13.535 30.9018 94.1376 +v 6.78486 30.9018 94.8633 +v 0.000120555 30.9018 95.1056 +v -6.78463 30.9018 94.8633 +v -13.5348 30.9018 94.1376 +v -20.216 30.9018 92.9322 +v -26.7942 30.9018 91.2532 +v -33.2359 30.9018 89.1092 +v -39.5082 30.9018 86.5112 +v -45.5791 30.9018 83.4723 +v -51.4178 30.9018 80.008 +v -56.9946 30.9018 76.1361 +v -62.2808 30.9018 71.8761 +v -67.2497 30.9018 67.25 +v -71.8759 30.9018 62.2811 +v -76.1359 30.9018 56.9948 +v -80.0078 30.9018 51.4181 +v -83.4721 30.9018 45.5794 +v -86.511 30.9018 39.5085 +v -89.1091 30.9018 33.2362 +v -91.2531 30.9018 26.7945 +v -92.9321 30.9018 20.2164 +v -94.1376 30.9018 13.5352 +v -94.8633 30.9018 6.78498 +v -95.1056 30.9018 0.00024111 +v -94.8633 30.9018 -6.78453 +v -94.1376 30.9018 -13.5347 +v -92.9322 30.9018 -20.2159 +v -91.2532 30.9018 -26.7941 +v -89.1093 30.9018 -33.2358 +v -86.5112 30.9018 -39.5081 +v -83.4723 30.9018 -45.579 +v -80.0081 30.9018 -51.4178 +v -76.1361 30.9018 -56.9945 +v -71.8762 30.9018 -62.2807 +v -67.25 30.9018 -67.2496 +v -62.2812 30.9018 -71.8758 +v -56.9949 30.9018 -76.1358 +v -51.4182 30.9018 -80.0078 +v -45.5795 30.9018 -83.4721 +v -39.5086 30.9018 -86.511 +v -33.2363 30.9018 -89.1091 +v -26.7946 30.9018 -91.2531 +v -20.2165 30.9018 -92.9321 +v -13.5353 30.9018 -94.1375 +v -6.7851 30.9018 -94.8633 +v -0.000361665 30.9018 -95.1056 +v 6.78443 30.9018 -94.8633 +v 13.5346 30.9018 -94.1376 +v 20.2158 30.9018 -92.9322 +v 26.794 30.9018 -91.2533 +v 33.2356 30.9018 -89.1093 +v 39.508 30.9018 -86.5113 +v 45.5789 30.9018 -83.4724 +v 51.4177 30.9018 -80.0081 +v 56.9944 30.9018 -76.1362 +v 62.2806 30.9018 -71.8763 +v 67.2495 30.9018 -67.2501 +v 71.8758 30.9018 -62.2812 +v 76.1357 30.9018 -56.995 +v 80.0077 30.9018 -51.4183 +v 83.472 30.9018 -45.5797 +v 86.5109 30.9018 -39.5087 +v 89.109 30.9018 -33.2364 +v 91.2531 30.9018 -26.7948 +v 92.9321 30.9018 -20.2166 +v 94.1375 30.9018 -13.5354 +v 94.8633 30.9018 -6.78522 +v 97.0295 24.1923 5.88009e-39 +v 96.7823 24.1923 6.922 +v 96.0419 24.1923 13.8087 +v 94.8121 24.1923 20.6251 +v 93.0992 24.1923 27.3364 +v 90.9118 24.1923 33.9083 +v 88.2612 24.1923 40.3075 +v 85.1608 24.1923 46.5013 +v 81.6265 24.1923 52.4581 +v 77.6762 24.1923 58.1476 +v 73.3301 24.1923 63.5408 +v 68.6103 24.1923 68.6102 +v 63.5409 24.1923 73.33 +v 58.1477 24.1923 77.6761 +v 52.4582 24.1923 81.6264 +v 46.5014 24.1923 85.1608 +v 40.3076 24.1923 88.2611 +v 33.9084 24.1923 90.9118 +v 27.3365 24.1923 93.0991 +v 20.6252 24.1923 94.8121 +v 13.8089 24.1923 96.0419 +v 6.92212 24.1923 96.7823 +v 0.000122994 24.1923 97.0295 +v -6.92188 24.1923 96.7823 +v -13.8086 24.1923 96.0419 +v -20.625 24.1923 94.8121 +v -27.3363 24.1923 93.0992 +v -33.9082 24.1923 90.9119 +v -40.3074 24.1923 88.2612 +v -46.5012 24.1923 85.1609 +v -52.458 24.1923 81.6265 +v -58.1475 24.1923 77.6762 +v -63.5407 24.1923 73.3302 +v -68.6101 24.1923 68.6104 +v -73.3299 24.1923 63.541 +v -77.676 24.1923 58.1478 +v -81.6264 24.1923 52.4583 +v -85.1607 24.1923 46.5015 +v -88.2611 24.1923 40.3077 +v -90.9117 24.1923 33.9085 +v -93.0991 24.1923 27.3366 +v -94.8121 24.1923 20.6253 +v -96.0419 24.1923 13.809 +v -96.7823 24.1923 6.92224 +v -97.0295 24.1923 0.000245988 +v -96.7823 24.1923 -6.92177 +v -96.042 24.1923 -13.8085 +v -94.8122 24.1923 -20.6249 +v -93.0992 24.1923 -27.3361 +v -90.9119 24.1923 -33.9081 +v -88.2613 24.1923 -40.3073 +v -85.1609 24.1923 -46.5011 +v -81.6266 24.1923 -52.4579 +v -77.6763 24.1923 -58.1474 +v -73.3302 24.1923 -63.5406 +v -68.6105 24.1923 -68.6101 +v -63.5411 24.1923 -73.3298 +v -58.1479 24.1923 -77.676 +v -52.4584 24.1923 -81.6263 +v -46.5016 24.1923 -85.1606 +v -40.3078 24.1923 -88.261 +v -33.9087 24.1923 -90.9117 +v -27.3367 24.1923 -93.0991 +v -20.6254 24.1923 -94.812 +v -13.8091 24.1923 -96.0419 +v -6.92236 24.1923 -96.7823 +v -0.000368981 24.1923 -97.0295 +v 6.92167 24.1923 -96.7824 +v 13.8084 24.1923 -96.042 +v 20.6248 24.1923 -94.8122 +v 27.336 24.1923 -93.0993 +v 33.908 24.1923 -90.9119 +v 40.3072 24.1923 -88.2613 +v 46.501 24.1923 -85.161 +v 52.4578 24.1923 -81.6267 +v 58.1473 24.1923 -77.6764 +v 63.5405 24.1923 -73.3303 +v 68.6099 24.1923 -68.6106 +v 73.3298 24.1923 -63.5411 +v 77.6759 24.1923 -58.148 +v 81.6262 24.1923 -52.4585 +v 85.1606 24.1923 -46.5017 +v 88.261 24.1923 -40.3079 +v 90.9117 24.1923 -33.9087 +v 93.099 24.1923 -27.3368 +v 94.812 24.1923 -20.6256 +v 96.0419 24.1923 -13.8092 +v 96.7823 24.1923 -6.92249 +v 98.4808 17.3649 5.88009e-39 +v 98.2298 17.3649 7.02553 +v 97.4784 17.3649 14.0153 +v 96.2302 17.3649 20.9336 +v 94.4916 17.3649 27.7452 +v 92.2715 17.3649 34.4155 +v 89.5813 17.3649 40.9104 +v 86.4345 17.3649 47.1968 +v 82.8473 17.3649 53.2427 +v 78.8379 17.3649 59.0173 +v 74.4268 17.3649 64.4911 +v 69.6365 17.3649 69.6364 +v 64.4912 17.3649 74.4268 +v 59.0174 17.3649 78.8379 +v 53.2428 17.3649 82.8472 +v 47.1969 17.3649 86.4345 +v 40.9105 17.3649 89.5812 +v 34.4156 17.3649 92.2715 +v 27.7453 17.3649 94.4916 +v 20.9337 17.3649 96.2301 +v 14.0154 17.3649 97.4783 +v 7.02565 17.3649 98.2298 +v 0.000124833 17.3649 98.4808 +v -7.02541 17.3649 98.2299 +v -14.0151 17.3649 97.4784 +v -20.9335 17.3649 96.2302 +v -27.7451 17.3649 94.4916 +v -34.4154 17.3649 92.2716 +v -40.9102 17.3649 89.5813 +v -47.1967 17.3649 86.4346 +v -53.2426 17.3649 82.8474 +v -59.0172 17.3649 78.838 +v -64.4911 17.3649 74.4269 +v -69.6363 17.3649 69.6365 +v -74.4267 17.3649 64.4913 +v -78.8378 17.3649 59.0175 +v -82.8472 17.3649 53.2429 +v -86.4344 17.3649 47.197 +v -89.5812 17.3649 40.9106 +v -92.2714 17.3649 34.4157 +v -94.4915 17.3649 27.7454 +v -96.2301 17.3649 20.9338 +v -97.4783 17.3649 14.0155 +v -98.2298 17.3649 7.02577 +v -98.4808 17.3649 0.000249667 +v -98.2299 17.3649 -7.0253 +v -97.4784 17.3649 -14.015 +v -96.2302 17.3649 -20.9334 +v -94.4917 17.3649 -27.745 +v -92.2716 17.3649 -34.4152 +v -89.5814 17.3649 -40.9101 +v -86.4346 17.3649 -47.1966 +v -82.8474 17.3649 -53.2425 +v -78.8381 17.3649 -59.0171 +v -74.427 17.3649 -64.491 +v -69.6366 17.3649 -69.6362 +v -64.4914 17.3649 -74.4266 +v -59.0176 17.3649 -78.8377 +v -53.243 17.3649 -82.8471 +v -47.1971 17.3649 -86.4343 +v -40.9107 17.3649 -89.5811 +v -34.4158 17.3649 -92.2714 +v -27.7455 17.3649 -94.4915 +v -20.9339 17.3649 -96.2301 +v -14.0156 17.3649 -97.4783 +v -7.0259 17.3649 -98.2298 +v -0.0003745 17.3649 -98.4808 +v 7.0252 17.3649 -98.2299 +v 14.0149 17.3649 -97.4784 +v 20.9332 17.3649 -96.2302 +v 27.7449 17.3649 -94.4917 +v 34.4151 17.3649 -92.2717 +v 40.9101 17.3649 -89.5814 +v 47.1965 17.3649 -86.4347 +v 53.2424 17.3649 -82.8475 +v 59.017 17.3649 -78.8382 +v 64.4909 17.3649 -74.4271 +v 69.6361 17.3649 -69.6367 +v 74.4265 17.3649 -64.4915 +v 78.8377 17.3649 -59.0177 +v 82.8471 17.3649 -53.2431 +v 86.4343 17.3649 -47.1972 +v 89.5811 17.3649 -40.9108 +v 92.2714 17.3649 -34.4159 +v 94.4915 17.3649 -27.7457 +v 96.2301 17.3649 -20.934 +v 97.4783 17.3649 -14.0157 +v 98.2298 17.3649 -7.02602 +v 99.4522 10.453 5.88009e-39 +v 99.1988 10.453 7.09483 +v 98.4399 10.453 14.1535 +v 97.1794 10.453 21.1401 +v 95.4237 10.453 28.0189 +v 93.1817 10.453 34.7549 +v 90.4649 10.453 41.3139 +v 87.2871 10.453 47.6623 +v 83.6645 10.453 53.7679 +v 79.6156 10.453 59.5994 +v 75.161 10.453 65.1273 +v 70.3234 10.453 70.3233 +v 65.1274 10.453 75.1609 +v 59.5995 10.453 79.6155 +v 53.768 10.453 83.6645 +v 47.6624 10.453 87.287 +v 41.314 10.453 90.4649 +v 34.7551 10.453 93.1817 +v 28.019 10.453 95.4236 +v 21.1402 10.453 97.1794 +v 14.1536 10.453 98.4399 +v 7.09495 10.453 99.1988 +v 0.000126065 10.453 99.4522 +v -7.09471 10.453 99.1988 +v -14.1534 10.453 98.4399 +v -21.1399 10.453 97.1794 +v -28.0188 10.453 95.4237 +v -34.7548 10.453 93.1817 +v -41.3138 10.453 90.465 +v -47.6622 10.453 87.2872 +v -53.7678 10.453 83.6646 +v -59.5993 10.453 79.6157 +v -65.1272 10.453 75.1611 +v -70.3232 10.453 70.3234 +v -75.1608 10.453 65.1275 +v -79.6155 10.453 59.5996 +v -83.6644 10.453 53.7681 +v -87.287 10.453 47.6625 +v -90.4648 10.453 41.3141 +v -93.1816 10.453 34.7552 +v -95.4236 10.453 28.0191 +v -97.1793 10.453 21.1403 +v -98.4399 10.453 14.1537 +v -99.1988 10.453 7.09507 +v -99.4522 10.453 0.000252129 +v -99.1988 10.453 -7.09459 +v -98.4399 10.453 -14.1533 +v -97.1794 10.453 -21.1398 +v -95.4237 10.453 -28.0187 +v -93.1818 10.453 -34.7547 +v -90.465 10.453 -41.3137 +v -87.2872 10.453 -47.6621 +v -83.6646 10.453 -53.7677 +v -79.6157 10.453 -59.5992 +v -75.1611 10.453 -65.1271 +v -70.3235 10.453 -70.3231 +v -65.1276 10.453 -75.1607 +v -59.5997 10.453 -79.6154 +v -53.7682 10.453 -83.6643 +v -47.6626 10.453 -87.2869 +v -41.3142 10.453 -90.4647 +v -34.7553 10.453 -93.1816 +v -28.0192 10.453 -95.4236 +v -21.1404 10.453 -97.1793 +v -14.1539 10.453 -98.4398 +v -7.0952 10.453 -99.1988 +v -0.000378194 10.453 -99.4522 +v 7.09449 10.453 -99.1988 +v 14.1532 10.453 -98.4399 +v 21.1397 10.453 -97.1795 +v 28.0185 10.453 -95.4238 +v 34.7546 10.453 -93.1818 +v 41.3136 10.453 -90.465 +v 47.662 10.453 -87.2873 +v 53.7676 10.453 -83.6647 +v 59.5991 10.453 -79.6158 +v 65.127 10.453 -75.1612 +v 70.323 10.453 -70.3236 +v 75.1607 10.453 -65.1276 +v 79.6153 10.453 -59.5998 +v 83.6643 10.453 -53.7683 +v 87.2869 10.453 -47.6628 +v 90.4647 10.453 -41.3144 +v 93.1815 10.453 -34.7554 +v 95.4235 10.453 -28.0193 +v 97.1793 10.453 -21.1405 +v 98.4398 10.453 -14.154 +v 99.1988 10.453 -7.09533 +v 99.9391 3.49007 5.88009e-39 +v 99.6844 3.49007 7.12957 +v 98.9218 3.49007 14.2228 +v 97.6552 3.49007 21.2436 +v 95.8909 3.49007 28.1561 +v 93.6379 3.49007 34.9251 +v 90.9078 3.49007 41.5162 +v 87.7144 3.49007 47.8957 +v 84.0741 3.49007 54.0311 +v 80.0054 3.49007 59.8912 +v 75.529 3.49007 65.4461 +v 70.6676 3.49007 70.6676 +v 65.4462 3.49007 75.5289 +v 59.8913 3.49007 80.0053 +v 54.0312 3.49007 84.0741 +v 47.8958 3.49007 87.7144 +v 41.5163 3.49007 90.9077 +v 34.9252 3.49007 93.6379 +v 28.1562 3.49007 95.8908 +v 21.2437 3.49007 97.6551 +v 14.2229 3.49007 98.9218 +v 7.12968 3.49007 99.6844 +v 0.000126682 3.49007 99.9391 +v -7.12944 3.49007 99.6845 +v -14.2227 3.49007 98.9219 +v -21.2434 3.49007 97.6552 +v -28.156 3.49007 95.8909 +v -34.925 3.49007 93.6379 +v -41.5161 3.49007 90.9078 +v -47.8956 3.49007 87.7145 +v -54.031 3.49007 84.0742 +v -59.8911 3.49007 80.0054 +v -65.446 3.49007 75.529 +v -70.6675 3.49007 70.6677 +v -75.5288 3.49007 65.4463 +v -80.0052 3.49007 59.8914 +v -84.074 3.49007 54.0313 +v -87.7143 3.49007 47.8959 +v -90.9077 3.49007 41.5164 +v -93.6378 3.49007 34.9253 +v -95.8908 3.49007 28.1563 +v -97.6551 3.49007 21.2438 +v -98.9218 3.49007 14.223 +v -99.6844 3.49007 7.12981 +v -99.9391 3.49007 0.000253364 +v -99.6845 3.49007 -7.12933 +v -98.9219 3.49007 -14.2226 +v -97.6552 3.49007 -21.2433 +v -95.8909 3.49007 -28.1558 +v -93.638 3.49007 -34.9249 +v -90.9079 3.49007 -41.5159 +v -87.7146 3.49007 -47.8955 +v -84.0742 3.49007 -54.0309 +v -80.0055 3.49007 -59.891 +v -75.5291 3.49007 -65.446 +v -70.6678 3.49007 -70.6674 +v -65.4464 3.49007 -75.5287 +v -59.8915 3.49007 -80.0052 +v -54.0314 3.49007 -84.0739 +v -47.896 3.49007 -87.7143 +v -41.5165 3.49007 -90.9076 +v -34.9255 3.49007 -93.6378 +v -28.1564 3.49007 -95.8908 +v -21.2439 3.49007 -97.6551 +v -14.2232 3.49007 -98.9218 +v -7.12994 3.49007 -99.6844 +v -0.000380046 3.49007 -99.9391 +v 7.12923 3.49007 -99.6845 +v 14.2225 3.49007 -98.9219 +v 21.2432 3.49007 -97.6552 +v 28.1557 3.49007 -95.891 +v 34.9247 3.49007 -93.638 +v 41.5159 3.49007 -90.9079 +v 47.8954 3.49007 -87.7146 +v 54.0308 3.49007 -84.0743 +v 59.8909 3.49007 -80.0056 +v 65.4459 3.49007 -75.5292 +v 70.6673 3.49007 -70.6679 +v 75.5286 3.49007 -65.4465 +v 80.0051 3.49007 -59.8916 +v 84.0739 3.49007 -54.0315 +v 87.7142 3.49007 -47.8961 +v 90.9076 3.49007 -41.5166 +v 93.6377 3.49007 -34.9255 +v 95.8907 3.49007 -28.1565 +v 97.6551 3.49007 -21.244 +v 98.9218 3.49007 -14.2233 +v 99.6844 3.49007 -7.13006 +v 99.9391 -3.48983 5.88009e-39 +v 99.6845 -3.48983 7.12957 +v 98.9219 -3.48983 14.2228 +v 97.6552 -3.48983 21.2436 +v 95.8909 -3.48983 28.1561 +v 93.6379 -3.48983 34.9251 +v 90.9078 -3.48983 41.5162 +v 87.7145 -3.48983 47.8957 +v 84.0741 -3.48983 54.0311 +v 80.0054 -3.48983 59.8912 +v 75.529 -3.48983 65.4461 +v 70.6676 -3.48983 70.6676 +v 65.4462 -3.48983 75.5289 +v 59.8913 -3.48983 80.0053 +v 54.0312 -3.48983 84.0741 +v 47.8958 -3.48983 87.7144 +v 41.5163 -3.48983 90.9078 +v 34.9252 -3.48983 93.6379 +v 28.1562 -3.48983 95.8908 +v 21.2437 -3.48983 97.6551 +v 14.2229 -3.48983 98.9218 +v 7.12968 -3.48983 99.6844 +v 0.000126682 -3.48983 99.9391 +v -7.12944 -3.48983 99.6845 +v -14.2227 -3.48983 98.9219 +v -21.2435 -3.48983 97.6552 +v -28.156 -3.48983 95.8909 +v -34.925 -3.48983 93.638 +v -41.5161 -3.48983 90.9079 +v -47.8956 -3.48983 87.7145 +v -54.031 -3.48983 84.0742 +v -59.8911 -3.48983 80.0055 +v -65.4461 -3.48983 75.529 +v -70.6675 -3.48983 70.6677 +v -75.5288 -3.48983 65.4463 +v -80.0052 -3.48983 59.8914 +v -84.074 -3.48983 54.0313 +v -87.7143 -3.48983 47.8959 +v -90.9077 -3.48983 41.5164 +v -93.6378 -3.48983 34.9253 +v -95.8908 -3.48983 28.1563 +v -97.6551 -3.48983 21.2438 +v -98.9218 -3.48983 14.223 +v -99.6844 -3.48983 7.12981 +v -99.9391 -3.48983 0.000253364 +v -99.6845 -3.48983 -7.12933 +v -98.9219 -3.48983 -14.2226 +v -97.6552 -3.48983 -21.2433 +v -95.8909 -3.48983 -28.1558 +v -93.638 -3.48983 -34.9249 +v -90.9079 -3.48983 -41.516 +v -87.7146 -3.48983 -47.8955 +v -84.0743 -3.48983 -54.0309 +v -80.0055 -3.48983 -59.891 +v -75.5291 -3.48983 -65.446 +v -70.6678 -3.48983 -70.6674 +v -65.4464 -3.48983 -75.5287 +v -59.8915 -3.48983 -80.0052 +v -54.0314 -3.48983 -84.0739 +v -47.896 -3.48983 -87.7143 +v -41.5165 -3.48983 -90.9076 +v -34.9255 -3.48983 -93.6378 +v -28.1564 -3.48983 -95.8908 +v -21.2439 -3.48983 -97.6551 +v -14.2232 -3.48983 -98.9218 +v -7.12994 -3.48983 -99.6844 +v -0.000380046 -3.48983 -99.9391 +v 7.12923 -3.48983 -99.6845 +v 14.2225 -3.48983 -98.9219 +v 21.2432 -3.48983 -97.6552 +v 28.1557 -3.48983 -95.891 +v 34.9248 -3.48983 -93.638 +v 41.5159 -3.48983 -90.9079 +v 47.8954 -3.48983 -87.7146 +v 54.0308 -3.48983 -84.0743 +v 59.8909 -3.48983 -80.0056 +v 65.4459 -3.48983 -75.5292 +v 70.6673 -3.48983 -70.6679 +v 75.5287 -3.48983 -65.4465 +v 80.0051 -3.48983 -59.8916 +v 84.0739 -3.48983 -54.0315 +v 87.7142 -3.48983 -47.8961 +v 90.9076 -3.48983 -41.5166 +v 93.6377 -3.48983 -34.9255 +v 95.8907 -3.48983 -28.1565 +v 97.6551 -3.48983 -21.244 +v 98.9218 -3.48983 -14.2233 +v 99.6844 -3.48983 -7.13006 +v 99.4522 -10.4527 5.88009e-39 +v 99.1988 -10.4527 7.09483 +v 98.4399 -10.4527 14.1535 +v 97.1794 -10.4527 21.1401 +v 95.4237 -10.4527 28.0189 +v 93.1817 -10.4527 34.755 +v 90.4649 -10.4527 41.3139 +v 87.2871 -10.4527 47.6623 +v 83.6645 -10.4527 53.7679 +v 79.6156 -10.4527 59.5994 +v 75.161 -10.4527 65.1273 +v 70.3234 -10.4527 70.3233 +v 65.1274 -10.4527 75.1609 +v 59.5995 -10.4527 79.6155 +v 53.768 -10.4527 83.6645 +v 47.6624 -10.4527 87.2871 +v 41.314 -10.4527 90.4649 +v 34.7551 -10.4527 93.1817 +v 28.019 -10.4527 95.4237 +v 21.1402 -10.4527 97.1794 +v 14.1536 -10.4527 98.4399 +v 7.09495 -10.4527 99.1988 +v 0.000126065 -10.4527 99.4522 +v -7.09471 -10.4527 99.1988 +v -14.1534 -10.4527 98.4399 +v -21.14 -10.4527 97.1794 +v -28.0188 -10.4527 95.4237 +v -34.7548 -10.4527 93.1818 +v -41.3138 -10.4527 90.465 +v -47.6622 -10.4527 87.2872 +v -53.7678 -10.4527 83.6646 +v -59.5994 -10.4527 79.6157 +v -65.1272 -10.4527 75.1611 +v -70.3232 -10.4527 70.3235 +v -75.1608 -10.4527 65.1275 +v -79.6155 -10.4527 59.5996 +v -83.6644 -10.4527 53.7681 +v -87.287 -10.4527 47.6625 +v -90.4648 -10.4527 41.3141 +v -93.1816 -10.4527 34.7552 +v -95.4236 -10.4527 28.0191 +v -97.1794 -10.4527 21.1403 +v -98.4399 -10.4527 14.1537 +v -99.1988 -10.4527 7.09508 +v -99.4522 -10.4527 0.000252129 +v -99.1988 -10.4527 -7.0946 +v -98.44 -10.4527 -14.1533 +v -97.1795 -10.4527 -21.1398 +v -95.4238 -10.4527 -28.0187 +v -93.1818 -10.4527 -34.7547 +v -90.465 -10.4527 -41.3137 +v -87.2872 -10.4527 -47.6621 +v -83.6647 -10.4527 -53.7677 +v -79.6158 -10.4527 -59.5993 +v -75.1612 -10.4527 -65.1271 +v -70.3235 -10.4527 -70.3231 +v -65.1276 -10.4527 -75.1608 +v -59.5997 -10.4527 -79.6154 +v -53.7682 -10.4527 -83.6643 +v -47.6627 -10.4527 -87.2869 +v -41.3142 -10.4527 -90.4648 +v -34.7553 -10.4527 -93.1816 +v -28.0192 -10.4527 -95.4236 +v -21.1404 -10.4527 -97.1793 +v -14.1539 -10.4527 -98.4399 +v -7.0952 -10.4527 -99.1988 +v -0.000378194 -10.4527 -99.4522 +v 7.09449 -10.4527 -99.1988 +v 14.1532 -10.4527 -98.44 +v 21.1397 -10.4527 -97.1795 +v 28.0186 -10.4527 -95.4238 +v 34.7546 -10.4527 -93.1819 +v 41.3136 -10.4527 -90.4651 +v 47.662 -10.4527 -87.2873 +v 53.7676 -10.4527 -83.6647 +v 59.5992 -10.4527 -79.6158 +v 65.127 -10.4527 -75.1612 +v 70.323 -10.4527 -70.3236 +v 75.1607 -10.4527 -65.1276 +v 79.6153 -10.4527 -59.5998 +v 83.6643 -10.4527 -53.7683 +v 87.2869 -10.4527 -47.6628 +v 90.4647 -10.4527 -41.3144 +v 93.1816 -10.4527 -34.7554 +v 95.4236 -10.4527 -28.0194 +v 97.1793 -10.4527 -21.1405 +v 98.4399 -10.4527 -14.154 +v 99.1988 -10.4527 -7.09533 +v 98.4808 -17.3647 5.88009e-39 +v 98.2299 -17.3647 7.02553 +v 97.4784 -17.3647 14.0153 +v 96.2302 -17.3647 20.9336 +v 94.4916 -17.3647 27.7452 +v 92.2716 -17.3647 34.4155 +v 89.5813 -17.3647 40.9104 +v 86.4345 -17.3647 47.1968 +v 82.8473 -17.3647 53.2427 +v 78.838 -17.3647 59.0173 +v 74.4269 -17.3647 64.4912 +v 69.6365 -17.3647 69.6364 +v 64.4913 -17.3647 74.4268 +v 59.0174 -17.3647 78.8379 +v 53.2428 -17.3647 82.8473 +v 47.1969 -17.3647 86.4345 +v 40.9105 -17.3647 89.5812 +v 34.4156 -17.3647 92.2715 +v 27.7453 -17.3647 94.4916 +v 20.9337 -17.3647 96.2302 +v 14.0154 -17.3647 97.4784 +v 7.02565 -17.3647 98.2299 +v 0.000124833 -17.3647 98.4808 +v -7.02541 -17.3647 98.2299 +v -14.0152 -17.3647 97.4784 +v -20.9335 -17.3647 96.2302 +v -27.7451 -17.3647 94.4917 +v -34.4154 -17.3647 92.2716 +v -40.9103 -17.3647 89.5813 +v -47.1967 -17.3647 86.4346 +v -53.2426 -17.3647 82.8474 +v -59.0172 -17.3647 78.838 +v -64.4911 -17.3647 74.4269 +v -69.6363 -17.3647 69.6366 +v -74.4267 -17.3647 64.4913 +v -78.8378 -17.3647 59.0175 +v -82.8472 -17.3647 53.2429 +v -86.4344 -17.3647 47.197 +v -89.5812 -17.3647 40.9106 +v -92.2715 -17.3647 34.4157 +v -94.4916 -17.3647 27.7455 +v -96.2302 -17.3647 20.9338 +v -97.4784 -17.3647 14.0155 +v -98.2299 -17.3647 7.02577 +v -98.4808 -17.3647 0.000249667 +v -98.2299 -17.3647 -7.0253 +v -97.4784 -17.3647 -14.015 +v -96.2303 -17.3647 -20.9334 +v -94.4917 -17.3647 -27.745 +v -92.2717 -17.3647 -34.4153 +v -89.5814 -17.3647 -40.9102 +v -86.4347 -17.3647 -47.1966 +v -82.8475 -17.3647 -53.2425 +v -78.8381 -17.3647 -59.0171 +v -74.427 -17.3647 -64.491 +v -69.6366 -17.3647 -69.6362 +v -64.4914 -17.3647 -74.4266 +v -59.0176 -17.3647 -78.8378 +v -53.243 -17.3647 -82.8472 +v -47.1971 -17.3647 -86.4344 +v -40.9107 -17.3647 -89.5811 +v -34.4158 -17.3647 -92.2714 +v -27.7456 -17.3647 -94.4915 +v -20.9339 -17.3647 -96.2301 +v -14.0156 -17.3647 -97.4784 +v -7.0259 -17.3647 -98.2299 +v -0.0003745 -17.3647 -98.4808 +v 7.0252 -17.3647 -98.2299 +v 14.0149 -17.3647 -97.4785 +v 20.9332 -17.3647 -96.2303 +v 27.7449 -17.3647 -94.4917 +v 34.4151 -17.3647 -92.2717 +v 40.9101 -17.3647 -89.5814 +v 47.1965 -17.3647 -86.4347 +v 53.2424 -17.3647 -82.8475 +v 59.017 -17.3647 -78.8382 +v 64.4909 -17.3647 -74.4271 +v 69.6361 -17.3647 -69.6367 +v 74.4266 -17.3647 -64.4915 +v 78.8377 -17.3647 -59.0177 +v 82.8471 -17.3647 -53.2431 +v 86.4343 -17.3647 -47.1972 +v 89.5811 -17.3647 -40.9108 +v 92.2714 -17.3647 -34.4159 +v 94.4915 -17.3647 -27.7457 +v 96.2301 -17.3647 -20.934 +v 97.4783 -17.3647 -14.0157 +v 98.2298 -17.3647 -7.02602 +v 97.0296 -24.1921 5.88009e-39 +v 96.7824 -24.1921 6.92201 +v 96.042 -24.1921 13.8087 +v 94.8122 -24.1921 20.6251 +v 93.0992 -24.1921 27.3364 +v 90.9119 -24.1921 33.9083 +v 88.2612 -24.1921 40.3075 +v 85.1609 -24.1921 46.5013 +v 81.6265 -24.1921 52.4581 +v 77.6762 -24.1921 58.1476 +v 73.3301 -24.1921 63.5408 +v 68.6103 -24.1921 68.6102 +v 63.5409 -24.1921 73.33 +v 58.1477 -24.1921 77.6762 +v 52.4582 -24.1921 81.6265 +v 46.5014 -24.1921 85.1608 +v 40.3076 -24.1921 88.2612 +v 33.9085 -24.1921 90.9118 +v 27.3365 -24.1921 93.0992 +v 20.6252 -24.1921 94.8121 +v 13.8089 -24.1921 96.042 +v 6.92212 -24.1921 96.7824 +v 0.000122994 -24.1921 97.0296 +v -6.92189 -24.1921 96.7824 +v -13.8086 -24.1921 96.042 +v -20.625 -24.1921 94.8122 +v -27.3363 -24.1921 93.0993 +v -33.9082 -24.1921 90.9119 +v -40.3074 -24.1921 88.2613 +v -46.5012 -24.1921 85.1609 +v -52.458 -24.1921 81.6266 +v -58.1475 -24.1921 77.6763 +v -63.5407 -24.1921 73.3302 +v -68.6102 -24.1921 68.6104 +v -73.33 -24.1921 63.541 +v -77.6761 -24.1921 58.1478 +v -81.6264 -24.1921 52.4583 +v -85.1608 -24.1921 46.5015 +v -88.2611 -24.1921 40.3077 +v -90.9118 -24.1921 33.9086 +v -93.0992 -24.1921 27.3366 +v -94.8121 -24.1921 20.6253 +v -96.0419 -24.1921 13.809 +v -96.7824 -24.1921 6.92224 +v -97.0296 -24.1921 0.000245988 +v -96.7824 -24.1921 -6.92178 +v -96.042 -24.1921 -13.8085 +v -94.8122 -24.1921 -20.6249 +v -93.0993 -24.1921 -27.3362 +v -90.912 -24.1921 -33.9081 +v -88.2613 -24.1921 -40.3073 +v -85.161 -24.1921 -46.5011 +v -81.6266 -24.1921 -52.4579 +v -77.6764 -24.1921 -58.1474 +v -73.3303 -24.1921 -63.5407 +v -68.6105 -24.1921 -68.6101 +v -63.5411 -24.1921 -73.3299 +v -58.1479 -24.1921 -77.676 +v -52.4584 -24.1921 -81.6263 +v -46.5016 -24.1921 -85.1607 +v -40.3079 -24.1921 -88.2611 +v -33.9087 -24.1921 -90.9117 +v -27.3367 -24.1921 -93.0991 +v -20.6254 -24.1921 -94.8121 +v -13.8091 -24.1921 -96.0419 +v -6.92237 -24.1921 -96.7824 +v -0.000368982 -24.1921 -97.0296 +v 6.92168 -24.1921 -96.7824 +v 13.8084 -24.1921 -96.042 +v 20.6248 -24.1921 -94.8122 +v 27.336 -24.1921 -93.0993 +v 33.908 -24.1921 -90.912 +v 40.3072 -24.1921 -88.2614 +v 46.501 -24.1921 -85.161 +v 52.4578 -24.1921 -81.6267 +v 58.1474 -24.1921 -77.6764 +v 63.5406 -24.1921 -73.3304 +v 68.61 -24.1921 -68.6106 +v 73.3298 -24.1921 -63.5412 +v 77.6759 -24.1921 -58.148 +v 81.6263 -24.1921 -52.4585 +v 85.1606 -24.1921 -46.5017 +v 88.261 -24.1921 -40.308 +v 90.9117 -24.1921 -33.9088 +v 93.0991 -24.1921 -27.3368 +v 94.8121 -24.1921 -20.6256 +v 96.0419 -24.1921 -13.8092 +v 96.7823 -24.1921 -6.92249 +v 95.1057 -30.9016 5.88009e-39 +v 94.8634 -30.9016 6.78476 +v 94.1377 -30.9016 13.5349 +v 92.9322 -30.9016 20.2162 +v 91.2533 -30.9016 26.7944 +v 89.1093 -30.9016 33.236 +v 86.5112 -30.9016 39.5083 +v 83.4723 -30.9016 45.5793 +v 80.008 -30.9016 51.418 +v 76.1361 -30.9016 56.9947 +v 71.8761 -30.9016 62.2809 +v 67.2499 -30.9016 67.2498 +v 62.281 -30.9016 71.8761 +v 56.9948 -30.9016 76.136 +v 51.4181 -30.9016 80.008 +v 45.5794 -30.9016 83.4722 +v 39.5084 -30.9016 86.5112 +v 33.2361 -30.9016 89.1092 +v 26.7945 -30.9016 91.2532 +v 20.2163 -30.9016 92.9322 +v 13.5351 -30.9016 94.1376 +v 6.78487 -30.9016 94.8634 +v 0.000120555 -30.9016 95.1057 +v -6.78464 -30.9016 94.8634 +v -13.5348 -30.9016 94.1377 +v -20.216 -30.9016 92.9323 +v -26.7942 -30.9016 91.2533 +v -33.2359 -30.9016 89.1093 +v -39.5082 -30.9016 86.5112 +v -45.5792 -30.9016 83.4723 +v -51.4179 -30.9016 80.0081 +v -56.9946 -30.9016 76.1361 +v -62.2809 -30.9016 71.8762 +v -67.2498 -30.9016 67.25 +v -71.876 -30.9016 62.2811 +v -76.1359 -30.9016 56.9949 +v -80.0079 -30.9016 51.4182 +v -83.4722 -30.9016 45.5795 +v -86.5111 -30.9016 39.5085 +v -89.1092 -30.9016 33.2362 +v -91.2532 -30.9016 26.7946 +v -92.9322 -30.9016 20.2164 +v -94.1376 -30.9016 13.5352 +v -94.8634 -30.9016 6.78499 +v -95.1057 -30.9016 0.00024111 +v -94.8634 -30.9016 -6.78453 +v -94.1377 -30.9016 -13.5347 +v -92.9323 -30.9016 -20.2159 +v -91.2533 -30.9016 -26.7941 +v -89.1094 -30.9016 -33.2358 +v -86.5113 -30.9016 -39.5081 +v -83.4724 -30.9016 -45.5791 +v -80.0081 -30.9016 -51.4178 +v -76.1362 -30.9016 -56.9945 +v -71.8763 -30.9016 -62.2808 +v -67.2501 -30.9016 -67.2497 +v -62.2812 -30.9016 -71.8759 +v -56.9949 -30.9016 -76.1359 +v -51.4183 -30.9016 -80.0078 +v -45.5796 -30.9016 -83.4721 +v -39.5086 -30.9016 -86.511 +v -33.2364 -30.9016 -89.1091 +v -26.7947 -30.9016 -91.2532 +v -20.2165 -30.9016 -92.9322 +v -13.5353 -30.9016 -94.1376 +v -6.78511 -30.9016 -94.8634 +v -0.000361665 -30.9016 -95.1057 +v 6.78443 -30.9016 -94.8634 +v 13.5346 -30.9016 -94.1377 +v 20.2158 -30.9016 -92.9323 +v 26.794 -30.9016 -91.2534 +v 33.2357 -30.9016 -89.1094 +v 39.508 -30.9016 -86.5113 +v 45.579 -30.9016 -83.4725 +v 51.4177 -30.9016 -80.0082 +v 56.9944 -30.9016 -76.1363 +v 62.2807 -30.9016 -71.8764 +v 67.2496 -30.9016 -67.2502 +v 71.8758 -30.9016 -62.2813 +v 76.1358 -30.9016 -56.995 +v 80.0078 -30.9016 -51.4184 +v 83.4721 -30.9016 -45.5797 +v 86.511 -30.9016 -39.5087 +v 89.1091 -30.9016 -33.2364 +v 91.2531 -30.9016 -26.7948 +v 92.9321 -30.9016 -20.2166 +v 94.1376 -30.9016 -13.5354 +v 94.8633 -30.9016 -6.78523 +v 92.7184 -37.4605 5.88009e-39 +v 92.4822 -37.4605 6.61445 +v 91.7747 -37.4605 13.1952 +v 90.5995 -37.4605 19.7087 +v 88.9627 -37.4605 26.1218 +v 86.8725 -37.4605 32.4018 +v 84.3397 -37.4605 38.5166 +v 81.377 -37.4605 44.4352 +v 77.9997 -37.4605 50.1273 +v 74.225 -37.4605 55.5641 +v 70.072 -37.4605 60.7176 +v 65.5619 -37.4605 65.5618 +v 60.7177 -37.4605 70.0719 +v 55.5641 -37.4605 74.2249 +v 50.1274 -37.4605 77.9997 +v 44.4353 -37.4605 81.377 +v 38.5167 -37.4605 84.3396 +v 32.4019 -37.4605 86.8725 +v 26.1219 -37.4605 88.9627 +v 19.7088 -37.4605 90.5995 +v 13.1953 -37.4605 91.7747 +v 6.61456 -37.4605 92.4822 +v 0.000117529 -37.4605 92.7184 +v -6.61434 -37.4605 92.4822 +v -13.1951 -37.4605 91.7747 +v -19.7086 -37.4605 90.5996 +v -26.1217 -37.4605 88.9627 +v -32.4016 -37.4605 86.8726 +v -38.5165 -37.4605 84.3397 +v -44.4351 -37.4605 81.3771 +v -50.1272 -37.4605 77.9998 +v -55.564 -37.4605 74.225 +v -60.7175 -37.4605 70.072 +v -65.5617 -37.4605 65.562 +v -70.0718 -37.4605 60.7178 +v -74.2248 -37.4605 55.5642 +v -77.9996 -37.4605 50.1275 +v -81.3769 -37.4605 44.4354 +v -84.3396 -37.4605 38.5168 +v -86.8725 -37.4605 32.402 +v -88.9626 -37.4605 26.122 +v -90.5995 -37.4605 19.7089 +v -91.7747 -37.4605 13.1954 +v -92.4822 -37.4605 6.61468 +v -92.7184 -37.4605 0.000235058 +v -92.4822 -37.4605 -6.61423 +v -91.7747 -37.4605 -13.195 +v -90.5996 -37.4605 -19.7085 +v -88.9628 -37.4605 -26.1216 +v -86.8726 -37.4605 -32.4015 +v -84.3398 -37.4605 -38.5164 +v -81.3772 -37.4605 -44.435 +v -77.9999 -37.4605 -50.1272 +v -74.2251 -37.4605 -55.5639 +v -70.0721 -37.4605 -60.7175 +v -65.562 -37.4605 -65.5616 +v -60.7179 -37.4605 -70.0717 +v -55.5643 -37.4605 -74.2248 +v -50.1276 -37.4605 -77.9996 +v -44.4355 -37.4605 -81.3769 +v -38.5169 -37.4605 -84.3395 +v -32.4021 -37.4605 -86.8724 +v -26.1221 -37.4605 -88.9626 +v -19.709 -37.4605 -90.5995 +v -13.1955 -37.4605 -91.7747 +v -6.6148 -37.4605 -92.4822 +v -0.000352587 -37.4605 -92.7184 +v 6.61414 -37.4605 -92.4822 +v 13.1949 -37.4605 -91.7747 +v 19.7084 -37.4605 -90.5996 +v 26.1215 -37.4605 -88.9628 +v 32.4014 -37.4605 -86.8727 +v 38.5163 -37.4605 -84.3398 +v 44.4349 -37.4605 -81.3772 +v 50.1271 -37.4605 -77.9999 +v 55.5638 -37.4605 -74.2252 +v 60.7174 -37.4605 -70.0722 +v 65.5616 -37.4605 -65.5621 +v 70.0717 -37.4605 -60.718 +v 74.2247 -37.4605 -55.5644 +v 77.9995 -37.4605 -50.1277 +v 81.3768 -37.4605 -44.4356 +v 84.3395 -37.4605 -38.517 +v 86.8724 -37.4605 -32.4022 +v 88.9626 -37.4605 -26.1222 +v 90.5994 -37.4605 -19.7091 +v 91.7746 -37.4605 -13.1956 +v 92.4822 -37.4605 -6.61491 +v 89.8795 -43.837 5.88009e-39 +v 89.6505 -43.837 6.41192 +v 88.9646 -43.837 12.7912 +v 87.8254 -43.837 19.1052 +v 86.2387 -43.837 25.322 +v 84.2126 -43.837 31.4096 +v 81.7573 -43.837 37.3373 +v 78.8853 -43.837 43.0746 +v 75.6114 -43.837 48.5925 +v 71.9522 -43.837 53.8627 +v 67.9264 -43.837 58.8585 +v 63.5544 -43.837 63.5543 +v 58.8586 -43.837 67.9263 +v 53.8628 -43.837 71.9522 +v 48.5926 -43.837 75.6114 +v 43.0747 -43.837 78.8853 +v 37.3374 -43.837 81.7572 +v 31.4097 -43.837 84.2125 +v 25.3221 -43.837 86.2387 +v 19.1054 -43.837 87.8254 +v 12.7913 -43.837 88.9646 +v 6.41203 -43.837 89.6505 +v 0.00011393 -43.837 89.8795 +v -6.41181 -43.837 89.6505 +v -12.7911 -43.837 88.9646 +v -19.1051 -43.837 87.8255 +v -25.3219 -43.837 86.2388 +v -31.4095 -43.837 84.2126 +v -37.3372 -43.837 81.7573 +v -43.0745 -43.837 78.8854 +v -48.5924 -43.837 75.6115 +v -53.8626 -43.837 71.9523 +v -58.8584 -43.837 67.9265 +v -63.5543 -43.837 63.5545 +v -67.9263 -43.837 58.8587 +v -71.9521 -43.837 53.8629 +v -75.6113 -43.837 48.5927 +v -78.8852 -43.837 43.0748 +v -81.7572 -43.837 37.3375 +v -84.2125 -43.837 31.4098 +v -86.2387 -43.837 25.3222 +v -87.8254 -43.837 19.1055 +v -88.9646 -43.837 12.7914 +v -89.6505 -43.837 6.41214 +v -89.8795 -43.837 0.000227861 +v -89.6505 -43.837 -6.41171 +v -88.9647 -43.837 -12.791 +v -87.8255 -43.837 -19.105 +v -86.2388 -43.837 -25.3217 +v -84.2126 -43.837 -31.4094 +v -81.7573 -43.837 -37.3371 +v -78.8854 -43.837 -43.0744 +v -75.6116 -43.837 -48.5923 +v -71.9524 -43.837 -53.8626 +v -67.9266 -43.837 -58.8583 +v -63.5546 -43.837 -63.5542 +v -58.8587 -43.837 -67.9262 +v -53.863 -43.837 -71.9521 +v -48.5927 -43.837 -75.6113 +v -43.0749 -43.837 -78.8852 +v -37.3376 -43.837 -81.7571 +v -31.41 -43.837 -84.2124 +v -25.3223 -43.837 -86.2386 +v -19.1056 -43.837 -87.8254 +v -12.7915 -43.837 -88.9646 +v -6.41226 -43.837 -89.6504 +v -0.000341791 -43.837 -89.8795 +v 6.41162 -43.837 -89.6505 +v 12.7909 -43.837 -88.9647 +v 19.1049 -43.837 -87.8255 +v 25.3216 -43.837 -86.2388 +v 31.4093 -43.837 -84.2127 +v 37.337 -43.837 -81.7574 +v 43.0743 -43.837 -78.8855 +v 48.5922 -43.837 -75.6116 +v 53.8625 -43.837 -71.9524 +v 58.8582 -43.837 -67.9266 +v 63.5541 -43.837 -63.5547 +v 67.9261 -43.837 -58.8588 +v 71.952 -43.837 -53.8631 +v 75.6112 -43.837 -48.5928 +v 78.8851 -43.837 -43.075 +v 81.7571 -43.837 -37.3377 +v 84.2124 -43.837 -31.41 +v 86.2386 -43.837 -25.3224 +v 87.8254 -43.837 -19.1057 +v 88.9646 -43.837 -12.7916 +v 89.6504 -43.837 -6.41237 +v 86.6026 -49.9999 5.88009e-39 +v 86.382 -49.9999 6.17816 +v 85.7211 -49.9999 12.3248 +v 84.6235 -49.9999 18.4087 +v 83.0946 -49.9999 24.3988 +v 81.1423 -49.9999 30.2645 +v 78.7765 -49.9999 35.976 +v 76.0093 -49.9999 41.5042 +v 72.8548 -49.9999 46.8209 +v 69.329 -49.9999 51.899 +v 65.4499 -49.9999 56.7126 +v 61.2373 -49.9999 61.2373 +v 56.7127 -49.9999 65.4499 +v 51.8991 -49.9999 69.3289 +v 46.821 -49.9999 72.8547 +v 41.5043 -49.9999 76.0093 +v 35.9761 -49.9999 78.7765 +v 30.2646 -49.9999 81.1423 +v 24.3989 -49.9999 83.0946 +v 18.4088 -49.9999 84.6235 +v 12.3249 -49.9999 85.7211 +v 6.17826 -49.9999 86.382 +v 0.000109777 -49.9999 86.6026 +v -6.17805 -49.9999 86.382 +v -12.3247 -49.9999 85.7211 +v -18.4086 -49.9999 84.6235 +v -24.3987 -49.9999 83.0946 +v -30.2644 -49.9999 81.1423 +v -35.9759 -49.9999 78.7766 +v -41.5041 -49.9999 76.0094 +v -46.8208 -49.9999 72.8548 +v -51.8989 -49.9999 69.3291 +v -56.7125 -49.9999 65.45 +v -61.2372 -49.9999 61.2374 +v -65.4498 -49.9999 56.7128 +v -69.3289 -49.9999 51.8992 +v -72.8547 -49.9999 46.821 +v -76.0092 -49.9999 41.5044 +v -78.7764 -49.9999 35.9762 +v -81.1422 -49.9999 30.2647 +v -83.0946 -49.9999 24.399 +v -84.6234 -49.9999 18.4089 +v -85.7211 -49.9999 12.325 +v -86.382 -49.9999 6.17837 +v -86.6026 -49.9999 0.000219553 +v -86.382 -49.9999 -6.17795 +v -85.7212 -49.9999 -12.3246 +v -84.6235 -49.9999 -18.4085 +v -83.0947 -49.9999 -24.3986 +v -81.1424 -49.9999 -30.2643 +v -78.7766 -49.9999 -35.9758 +v -76.0094 -49.9999 -41.504 +v -72.8549 -49.9999 -46.8207 +v -69.3291 -49.9999 -51.8988 +v -65.4501 -49.9999 -56.7125 +v -61.2375 -49.9999 -61.2371 +v -56.7129 -49.9999 -65.4497 +v -51.8992 -49.9999 -69.3288 +v -46.8211 -49.9999 -72.8546 +v -41.5045 -49.9999 -76.0092 +v -35.9763 -49.9999 -78.7764 +v -30.2648 -49.9999 -81.1422 +v -24.399 -49.9999 -83.0945 +v -18.409 -49.9999 -84.6234 +v -12.3251 -49.9999 -85.7211 +v -6.17848 -49.9999 -86.382 +v -0.00032933 -49.9999 -86.6026 +v 6.17786 -49.9999 -86.382 +v 12.3245 -49.9999 -85.7212 +v 18.4084 -49.9999 -84.6236 +v 24.3985 -49.9999 -83.0947 +v 30.2642 -49.9999 -81.1424 +v 35.9757 -49.9999 -78.7766 +v 41.5039 -49.9999 -76.0095 +v 46.8206 -49.9999 -72.8549 +v 51.8987 -49.9999 -69.3292 +v 56.7124 -49.9999 -65.4501 +v 61.237 -49.9999 -61.2376 +v 65.4497 -49.9999 -56.7129 +v 69.3288 -49.9999 -51.8993 +v 72.8546 -49.9999 -46.8212 +v 76.0091 -49.9999 -41.5046 +v 78.7764 -49.9999 -35.9764 +v 81.1422 -49.9999 -30.2649 +v 83.0945 -49.9999 -24.3992 +v 84.6234 -49.9999 -18.4091 +v 85.7211 -49.9999 -12.3252 +v 86.3819 -49.9999 -6.17859 +v 82.9038 -55.9192 5.88009e-39 +v 82.6926 -55.9192 5.91429 +v 82.06 -55.9192 11.7984 +v 81.0092 -55.9192 17.6225 +v 79.5457 -55.9192 23.3567 +v 77.6767 -55.9192 28.9719 +v 75.412 -55.9192 34.4395 +v 72.763 -55.9192 39.7316 +v 69.7432 -55.9192 44.8212 +v 66.368 -55.9192 49.6824 +v 62.6546 -55.9192 54.2904 +v 58.6219 -55.9192 58.6218 +v 54.2905 -55.9192 62.6545 +v 49.6825 -55.9192 66.3679 +v 44.8213 -55.9192 69.7431 +v 39.7316 -55.9192 72.7629 +v 34.4396 -55.9192 75.412 +v 28.972 -55.9192 77.6767 +v 23.3568 -55.9192 79.5456 +v 17.6226 -55.9192 81.0092 +v 11.7985 -55.9192 82.06 +v 5.91438 -55.9192 82.6926 +v 0.000105088 -55.9192 82.9038 +v -5.91419 -55.9192 82.6926 +v -11.7983 -55.9192 82.06 +v -17.6224 -55.9192 81.0092 +v -23.3566 -55.9192 79.5457 +v -28.9718 -55.9192 77.6768 +v -34.4394 -55.9192 75.412 +v -39.7315 -55.9192 72.763 +v -44.8211 -55.9192 69.7432 +v -49.6823 -55.9192 66.368 +v -54.2904 -55.9192 62.6546 +v -58.6218 -55.9192 58.622 +v -62.6544 -55.9192 54.2906 +v -66.3678 -55.9192 49.6825 +v -69.7431 -55.9192 44.8213 +v -72.7629 -55.9192 39.7317 +v -75.4119 -55.9192 34.4397 +v -77.6767 -55.9192 28.9721 +v -79.5456 -55.9192 23.3569 +v -81.0092 -55.9192 17.6227 +v -82.06 -55.9192 11.7986 +v -82.6926 -55.9192 5.91449 +v -82.9038 -55.9192 0.000210176 +v -82.6926 -55.9192 -5.91409 +v -82.06 -55.9192 -11.7982 +v -81.0093 -55.9192 -17.6223 +v -79.5457 -55.9192 -23.3565 +v -77.6768 -55.9192 -28.9717 +v -75.4121 -55.9192 -34.4393 +v -72.7631 -55.9192 -39.7314 +v -69.7433 -55.9192 -44.821 +v -66.3681 -55.9192 -49.6822 +v -62.6547 -55.9192 -54.2903 +v -58.622 -55.9192 -58.6217 +v -54.2907 -55.9192 -62.6544 +v -49.6826 -55.9192 -66.3678 +v -44.8214 -55.9192 -69.743 +v -39.7318 -55.9192 -72.7628 +v -34.4398 -55.9192 -75.4119 +v -28.9722 -55.9192 -77.6766 +v -23.357 -55.9192 -79.5456 +v -17.6228 -55.9192 -81.0092 +v -11.7987 -55.9192 -82.06 +v -5.91459 -55.9192 -82.6926 +v -0.000315264 -55.9192 -82.9038 +v 5.91401 -55.9192 -82.6926 +v 11.7982 -55.9192 -82.06 +v 17.6222 -55.9192 -81.0093 +v 23.3564 -55.9192 -79.5457 +v 28.9716 -55.9192 -77.6768 +v 34.4392 -55.9192 -75.4121 +v 39.7313 -55.9192 -72.7631 +v 44.8209 -55.9192 -69.7433 +v 49.6821 -55.9192 -66.3681 +v 54.2902 -55.9192 -62.6548 +v 58.6216 -55.9192 -58.6221 +v 62.6543 -55.9192 -54.2907 +v 66.3677 -55.9192 -49.6827 +v 69.743 -55.9192 -44.8215 +v 72.7628 -55.9192 -39.7319 +v 75.4118 -55.9192 -34.4399 +v 77.6766 -55.9192 -28.9723 +v 79.5455 -55.9192 -23.3571 +v 81.0091 -55.9192 -17.6229 +v 82.0599 -55.9192 -11.7988 +v 82.6926 -55.9192 -5.9147 +v 78.8012 -61.566 5.88009e-39 +v 78.6004 -61.566 5.62161 +v 77.9991 -61.566 11.2146 +v 77.0003 -61.566 16.7504 +v 75.6092 -61.566 22.2008 +v 73.8327 -61.566 27.5382 +v 71.6801 -61.566 32.7352 +v 69.1622 -61.566 37.7654 +v 66.2918 -61.566 42.6031 +v 63.0836 -61.566 47.2238 +v 59.554 -61.566 51.6038 +v 55.7209 -61.566 55.7208 +v 51.6038 -61.566 59.5539 +v 47.2238 -61.566 63.0836 +v 42.6032 -61.566 66.2917 +v 37.7654 -61.566 69.1621 +v 32.7353 -61.566 71.68 +v 27.5383 -61.566 73.8327 +v 22.2009 -61.566 75.6092 +v 16.7505 -61.566 77.0003 +v 11.2147 -61.566 77.9991 +v 5.6217 -61.566 78.6004 +v 9.98876e-05 -61.566 78.8012 +v -5.62151 -61.566 78.6004 +v -11.2145 -61.566 77.9991 +v -16.7503 -61.566 77.0003 +v -22.2008 -61.566 75.6092 +v -27.5381 -61.566 73.8328 +v -32.7351 -61.566 71.6801 +v -37.7653 -61.566 69.1622 +v -42.603 -61.566 66.2918 +v -47.2237 -61.566 63.0837 +v -51.6037 -61.566 59.554 +v -55.7207 -61.566 55.721 +v -59.5539 -61.566 51.6039 +v -63.0835 -61.566 47.2239 +v -66.2917 -61.566 42.6033 +v -69.1621 -61.566 37.7655 +v -71.68 -61.566 32.7353 +v -73.8327 -61.566 27.5383 +v -75.6091 -61.566 22.201 +v -77.0003 -61.566 16.7506 +v -77.9991 -61.566 11.2148 +v -78.6004 -61.566 5.6218 +v -78.8012 -61.566 0.000199775 +v -78.6004 -61.566 -5.62142 +v -77.9991 -61.566 -11.2144 +v -77.0004 -61.566 -16.7502 +v -75.6092 -61.566 -22.2007 +v -73.8328 -61.566 -27.538 +v -71.6802 -61.566 -32.735 +v -69.1622 -61.566 -37.7652 +v -66.2919 -61.566 -42.603 +v -63.0837 -61.566 -47.2236 +v -59.5541 -61.566 -51.6036 +v -55.721 -61.566 -55.7207 +v -51.604 -61.566 -59.5538 +v -47.224 -61.566 -63.0835 +v -42.6033 -61.566 -66.2916 +v -37.7656 -61.566 -69.162 +v -32.7354 -61.566 -71.68 +v -27.5385 -61.566 -73.8326 +v -22.2011 -61.566 -75.6091 +v -16.7507 -61.566 -77.0003 +v -11.2149 -61.566 -77.9991 +v -5.6219 -61.566 -78.6004 +v -0.000299663 -61.566 -78.8012 +v 5.62134 -61.566 -78.6004 +v 11.2143 -61.566 -77.9991 +v 16.7501 -61.566 -77.0004 +v 22.2006 -61.566 -75.6093 +v 27.5379 -61.566 -73.8329 +v 32.7349 -61.566 -71.6802 +v 37.7651 -61.566 -69.1623 +v 42.6029 -61.566 -66.2919 +v 47.2235 -61.566 -63.0838 +v 51.6035 -61.566 -59.5542 +v 55.7206 -61.566 -55.7211 +v 59.5537 -61.566 -51.604 +v 63.0834 -61.566 -47.2241 +v 66.2916 -61.566 -42.6034 +v 69.162 -61.566 -37.7657 +v 71.6799 -61.566 -32.7355 +v 73.8326 -61.566 -27.5385 +v 75.6091 -61.566 -22.2012 +v 77.0002 -61.566 -16.7508 +v 77.999 -61.566 -11.2149 +v 78.6004 -61.566 -5.622 +v 74.3146 -66.9129 5.88009e-39 +v 74.1253 -66.9129 5.30154 +v 73.5582 -66.9129 10.5761 +v 72.6163 -66.9129 15.7967 +v 71.3043 -66.9129 20.9368 +v 69.6291 -66.9129 25.9703 +v 67.599 -66.9129 30.8714 +v 65.2244 -66.9129 35.6152 +v 62.5174 -66.9129 40.1775 +v 59.4919 -66.9129 44.5351 +v 56.1633 -66.9129 48.6657 +v 52.5484 -66.9129 52.5483 +v 48.6658 -66.9129 56.1632 +v 44.5351 -66.9129 59.4919 +v 40.1776 -66.9129 62.5174 +v 35.6153 -66.9129 65.2243 +v 30.8715 -66.9129 67.5989 +v 25.9704 -66.9129 69.629 +v 20.9369 -66.9129 71.3043 +v 15.7968 -66.9129 72.6163 +v 10.5762 -66.9129 73.5582 +v 5.30163 -66.9129 74.1253 +v 9.42005e-05 -66.9129 74.3146 +v -5.30145 -66.9129 74.1253 +v -10.576 -66.9129 73.5582 +v -15.7966 -66.9129 72.6163 +v -20.9367 -66.9129 71.3044 +v -25.9702 -66.9129 69.6291 +v -30.8713 -66.9129 67.599 +v -35.6151 -66.9129 65.2244 +v -40.1774 -66.9129 62.5175 +v -44.535 -66.9129 59.492 +v -48.6656 -66.9129 56.1633 +v -52.5483 -66.9129 52.5485 +v -56.1631 -66.9129 48.6658 +v -59.4918 -66.9129 44.5352 +v -62.5173 -66.9129 40.1776 +v -65.2243 -66.9129 35.6153 +v -67.5989 -66.9129 30.8715 +v -69.629 -66.9129 25.9704 +v -71.3043 -66.9129 20.937 +v -72.6162 -66.9129 15.7969 +v -73.5582 -66.9129 10.5762 +v -74.1252 -66.9129 5.30172 +v -74.3146 -66.9129 0.000188401 +v -74.1253 -66.9129 -5.30136 +v -73.5582 -66.9129 -10.5759 +v -72.6163 -66.9129 -15.7965 +v -71.3044 -66.9129 -20.9367 +v -69.6291 -66.9129 -25.9701 +v -67.599 -66.9129 -30.8712 +v -65.2245 -66.9129 -35.615 +v -62.5175 -66.9129 -40.1773 +v -59.492 -66.9129 -44.5349 +v -56.1634 -66.9129 -48.6655 +v -52.5485 -66.9129 -52.5482 +v -48.6659 -66.9129 -56.1631 +v -44.5353 -66.9129 -59.4918 +v -40.1777 -66.9129 -62.5173 +v -35.6154 -66.9129 -65.2243 +v -30.8716 -66.9129 -67.5988 +v -25.9705 -66.9129 -69.629 +v -20.9371 -66.9129 -71.3043 +v -15.797 -66.9129 -72.6162 +v -10.5763 -66.9129 -73.5582 +v -5.30181 -66.9129 -74.1252 +v -0.000282602 -66.9129 -74.3146 +v 5.30129 -66.9129 -74.1253 +v 10.5758 -66.9129 -73.5582 +v 15.7964 -66.9129 -72.6163 +v 20.9366 -66.9129 -71.3044 +v 25.97 -66.9129 -69.6292 +v 30.8712 -66.9129 -67.5991 +v 35.6149 -66.9129 -65.2245 +v 40.1773 -66.9129 -62.5176 +v 44.5348 -66.9129 -59.4921 +v 48.6655 -66.9129 -56.1634 +v 52.5481 -66.9129 -52.5486 +v 56.163 -66.9129 -48.6659 +v 59.4917 -66.9129 -44.5353 +v 62.5172 -66.9129 -40.1778 +v 65.2242 -66.9129 -35.6155 +v 67.5988 -66.9129 -30.8717 +v 69.6289 -66.9129 -25.9706 +v 71.3042 -66.9129 -20.9372 +v 72.6162 -66.9129 -15.797 +v 73.5581 -66.9129 -10.5764 +v 74.1252 -66.9129 -5.30191 +v 69.466 -71.9339 5.88009e-39 +v 69.289 -71.9339 4.95564 +v 68.7589 -71.9339 9.88603 +v 67.8785 -71.9339 14.766 +v 66.6521 -71.9339 19.5708 +v 65.0861 -71.9339 24.2758 +v 63.1885 -71.9339 28.8572 +v 60.9688 -71.9339 33.2915 +v 58.4385 -71.9339 37.5561 +v 55.6104 -71.9339 41.6294 +v 52.4989 -71.9339 45.4905 +v 49.1199 -71.9339 49.1198 +v 45.4906 -71.9339 52.4988 +v 41.6294 -71.9339 55.6103 +v 37.5562 -71.9339 58.4385 +v 33.2915 -71.9339 60.9688 +v 28.8573 -71.9339 63.1884 +v 24.2759 -71.9339 65.0861 +v 19.5709 -71.9339 66.6521 +v 14.7661 -71.9339 67.8784 +v 9.88611 -71.9339 68.7589 +v 4.95572 -71.9339 69.289 +v 8.80544e-05 -71.9339 69.466 +v -4.95556 -71.9339 69.289 +v -9.88595 -71.9339 68.7589 +v -14.766 -71.9339 67.8785 +v -19.5707 -71.9339 66.6521 +v -24.2758 -71.9339 65.0862 +v -28.8571 -71.9339 63.1885 +v -33.2914 -71.9339 60.9689 +v -37.556 -71.9339 58.4386 +v -41.6293 -71.9339 55.6104 +v -45.4904 -71.9339 52.499 +v -49.1198 -71.9339 49.1199 +v -52.4988 -71.9339 45.4906 +v -55.6103 -71.9339 41.6295 +v -58.4384 -71.9339 37.5562 +v -60.9688 -71.9339 33.2916 +v -63.1884 -71.9339 28.8573 +v -65.0861 -71.9339 24.276 +v -66.6521 -71.9339 19.571 +v -67.8784 -71.9339 14.7662 +v -68.7589 -71.9339 9.88619 +v -69.289 -71.9339 4.95581 +v -69.466 -71.9339 0.000176109 +v -69.289 -71.9339 -4.95548 +v -68.7589 -71.9339 -9.88586 +v -67.8785 -71.9339 -14.7659 +v -66.6522 -71.9339 -19.5706 +v -65.0862 -71.9339 -24.2757 +v -63.1885 -71.9339 -28.857 +v -60.9689 -71.9339 -33.2913 +v -58.4386 -71.9339 -37.556 +v -55.6105 -71.9339 -41.6292 +v -52.499 -71.9339 -45.4904 +v -49.12 -71.9339 -49.1197 +v -45.4907 -71.9339 -52.4987 +v -41.6296 -71.9339 -55.6102 +v -37.5563 -71.9339 -58.4384 +v -33.2917 -71.9339 -60.9687 +v -28.8574 -71.9339 -63.1884 +v -24.2761 -71.9339 -65.086 +v -19.571 -71.9339 -66.652 +v -14.7663 -71.9339 -67.8784 +v -9.88628 -71.9339 -68.7589 +v -4.9559 -71.9339 -69.289 +v -0.000264163 -71.9339 -69.466 +v 4.9554 -71.9339 -69.289 +v 9.88579 -71.9339 -68.7589 +v 14.7658 -71.9339 -67.8785 +v 19.5706 -71.9339 -66.6522 +v 24.2756 -71.9339 -65.0862 +v 28.857 -71.9339 -63.1886 +v 33.2913 -71.9339 -60.9689 +v 37.5559 -71.9339 -58.4386 +v 41.6292 -71.9339 -55.6105 +v 45.4903 -71.9339 -52.4991 +v 49.1196 -71.9339 -49.1201 +v 52.4987 -71.9339 -45.4907 +v 55.6102 -71.9339 -41.6296 +v 58.4383 -71.9339 -37.5564 +v 60.9687 -71.9339 -33.2918 +v 63.1883 -71.9339 -28.8575 +v 65.086 -71.9339 -24.2761 +v 66.652 -71.9339 -19.5711 +v 67.8784 -71.9339 -14.7664 +v 68.7589 -71.9339 -9.88637 +v 69.2889 -71.9339 -4.95599 +v 64.2789 -76.6043 5.88009e-39 +v 64.1151 -76.6043 4.5856 +v 63.6246 -76.6043 9.14784 +v 62.8099 -76.6043 13.6635 +v 61.6752 -76.6043 18.1094 +v 60.2261 -76.6043 22.4632 +v 58.4702 -76.6043 26.7024 +v 56.4163 -76.6043 30.8056 +v 54.0749 -76.6043 34.7518 +v 51.4579 -76.6043 38.5209 +v 48.5788 -76.6043 42.0937 +v 45.4521 -76.6043 45.452 +v 42.0938 -76.6043 48.5787 +v 38.521 -76.6043 51.4579 +v 34.7518 -76.6043 54.0748 +v 30.8056 -76.6043 56.4162 +v 26.7025 -76.6043 58.4701 +v 22.4632 -76.6043 60.2261 +v 18.1095 -76.6043 61.6751 +v 13.6635 -76.6043 62.8099 +v 9.14791 -76.6043 63.6246 +v 4.58568 -76.6043 64.1151 +v 8.14794e-05 -76.6043 64.2789 +v -4.58552 -76.6043 64.1151 +v -9.14776 -76.6043 63.6247 +v -13.6634 -76.6043 62.81 +v -18.1094 -76.6043 61.6752 +v -22.4631 -76.6043 60.2261 +v -26.7023 -76.6043 58.4702 +v -30.8055 -76.6043 56.4163 +v -34.7517 -76.6043 54.0749 +v -38.5208 -76.6043 51.458 +v -42.0936 -76.6043 48.5788 +v -45.452 -76.6043 45.4521 +v -48.5787 -76.6043 42.0938 +v -51.4578 -76.6043 38.521 +v -54.0748 -76.6043 34.7519 +v -56.4162 -76.6043 30.8057 +v -58.4701 -76.6043 26.7025 +v -60.2261 -76.6043 22.4633 +v -61.6751 -76.6043 18.1096 +v -62.8099 -76.6043 13.6636 +v -63.6246 -76.6043 9.14799 +v -64.1151 -76.6043 4.58576 +v -64.2789 -76.6043 0.000162959 +v -64.1151 -76.6043 -4.58545 +v -63.6247 -76.6043 -9.14768 +v -62.81 -76.6043 -13.6633 +v -61.6752 -76.6043 -18.1093 +v -60.2262 -76.6043 -22.463 +v -58.4702 -76.6043 -26.7023 +v -56.4163 -76.6043 -30.8054 +v -54.075 -76.6043 -34.7517 +v -51.458 -76.6043 -38.5208 +v -48.5789 -76.6043 -42.0936 +v -45.4522 -76.6043 -45.4519 +v -42.0939 -76.6043 -48.5786 +v -38.5211 -76.6043 -51.4578 +v -34.752 -76.6043 -54.0747 +v -30.8058 -76.6043 -56.4161 +v -26.7026 -76.6043 -58.4701 +v -22.4634 -76.6043 -60.226 +v -18.1097 -76.6043 -61.6751 +v -13.6637 -76.6043 -62.8099 +v -9.14807 -76.6043 -63.6246 +v -4.58584 -76.6043 -64.1151 +v -0.000244438 -76.6043 -64.2789 +v 4.58538 -76.6043 -64.1152 +v 9.14761 -76.6043 -63.6247 +v 13.6632 -76.6043 -62.81 +v 18.1092 -76.6043 -61.6752 +v 22.4629 -76.6043 -60.2262 +v 26.7022 -76.6043 -58.4702 +v 30.8054 -76.6043 -56.4164 +v 34.7516 -76.6043 -54.075 +v 38.5207 -76.6043 -51.4581 +v 42.0935 -76.6043 -48.5789 +v 45.4519 -76.6043 -45.4523 +v 48.5786 -76.6043 -42.0939 +v 51.4578 -76.6043 -38.5211 +v 54.0747 -76.6043 -34.752 +v 56.4161 -76.6043 -30.8059 +v 58.47 -76.6043 -26.7027 +v 60.226 -76.6043 -22.4634 +v 61.6751 -76.6043 -18.1097 +v 62.8099 -76.6043 -13.6638 +v 63.6246 -76.6043 -9.14815 +v 64.1151 -76.6043 -4.58592 +v 58.7787 -80.9016 5.88009e-39 +v 58.6289 -80.9016 4.19322 +v 58.1804 -80.9016 8.36507 +v 57.4354 -80.9016 12.4943 +v 56.3977 -80.9016 16.5599 +v 55.0727 -80.9016 20.541 +v 53.467 -80.9016 24.4175 +v 51.5888 -80.9016 28.1696 +v 49.4478 -80.9016 31.7781 +v 47.0548 -80.9016 35.2247 +v 44.422 -80.9016 38.4918 +v 41.5628 -80.9016 41.5628 +v 38.4919 -80.9016 44.4219 +v 35.2248 -80.9016 47.0547 +v 31.7782 -80.9016 49.4477 +v 28.1697 -80.9016 51.5888 +v 24.4176 -80.9016 53.4669 +v 20.5411 -80.9016 55.0726 +v 16.5599 -80.9016 56.3977 +v 12.4944 -80.9016 57.4354 +v 8.36514 -80.9016 58.1804 +v 4.19329 -80.9016 58.6289 +v 7.45073e-05 -80.9016 58.7787 +v -4.19315 -80.9016 58.6289 +v -8.365 -80.9016 58.1804 +v -12.4942 -80.9016 57.4354 +v -16.5598 -80.9016 56.3977 +v -20.541 -80.9016 55.0727 +v -24.4175 -80.9016 53.467 +v -28.1695 -80.9016 51.5889 +v -31.7781 -80.9016 49.4478 +v -35.2247 -80.9016 47.0548 +v -38.4918 -80.9016 44.422 +v -41.5627 -80.9016 41.5629 +v -44.4219 -80.9016 38.4919 +v -47.0547 -80.9016 35.2248 +v -49.4477 -80.9016 31.7782 +v -51.5888 -80.9016 28.1697 +v -53.4669 -80.9016 24.4177 +v -55.0726 -80.9016 20.5412 +v -56.3977 -80.9016 16.56 +v -57.4354 -80.9016 12.4944 +v -58.1804 -80.9016 8.36521 +v -58.6289 -80.9016 4.19336 +v -58.7787 -80.9016 0.000149015 +v -58.6289 -80.9016 -4.19308 +v -58.1804 -80.9016 -8.36493 +v -57.4354 -80.9016 -12.4942 +v -56.3978 -80.9016 -16.5597 +v -55.0727 -80.9016 -20.5409 +v -53.467 -80.9016 -24.4174 +v -51.5889 -80.9016 -28.1695 +v -49.4479 -80.9016 -31.778 +v -47.0549 -80.9016 -35.2246 +v -44.4221 -80.9016 -38.4917 +v -41.5629 -80.9016 -41.5627 +v -38.492 -80.9016 -44.4218 +v -35.2249 -80.9016 -47.0546 +v -31.7783 -80.9016 -49.4477 +v -28.1698 -80.9016 -51.5887 +v -24.4177 -80.9016 -53.4669 +v -20.5412 -80.9016 -55.0726 +v -16.56 -80.9016 -56.3977 +v -12.4945 -80.9016 -57.4354 +v -8.36528 -80.9016 -58.1804 +v -4.19344 -80.9016 -58.6289 +v -0.000223522 -80.9016 -58.7787 +v 4.19302 -80.9016 -58.6289 +v 8.36487 -80.9016 -58.1804 +v 12.4941 -80.9016 -57.4354 +v 16.5596 -80.9016 -56.3978 +v 20.5408 -80.9016 -55.0727 +v 24.4173 -80.9016 -53.4671 +v 28.1694 -80.9016 -51.5889 +v 31.778 -80.9016 -49.4479 +v 35.2246 -80.9016 -47.0549 +v 38.4917 -80.9016 -44.4221 +v 41.5626 -80.9016 -41.563 +v 44.4218 -80.9016 -38.492 +v 47.0546 -80.9016 -35.2249 +v 49.4476 -80.9016 -31.7784 +v 51.5887 -80.9016 -28.1699 +v 53.4669 -80.9016 -24.4178 +v 55.0726 -80.9016 -20.5413 +v 56.3977 -80.9016 -16.5601 +v 57.4353 -80.9016 -12.4946 +v 58.1804 -80.9016 -8.36536 +v 58.6289 -80.9016 -4.19351 +v 52.9921 -84.8047 5.88009e-39 +v 52.8571 -84.8047 3.78041 +v 52.4527 -84.8047 7.54156 +v 51.7811 -84.8047 11.2643 +v 50.8455 -84.8047 14.9296 +v 49.6509 -84.8047 18.5188 +v 48.2033 -84.8047 22.0137 +v 46.5101 -84.8047 25.3964 +v 44.5798 -84.8047 28.6497 +v 42.4224 -84.8047 31.757 +v 40.0488 -84.8047 34.7024 +v 37.4711 -84.8047 37.471 +v 34.7025 -84.8047 40.0487 +v 31.757 -84.8047 42.4223 +v 28.6497 -84.8047 44.5798 +v 25.3964 -84.8047 46.51 +v 22.0138 -84.8047 48.2033 +v 18.5189 -84.8047 49.6509 +v 14.9296 -84.8047 50.8455 +v 11.2643 -84.8047 51.781 +v 7.54162 -84.8047 52.4527 +v 3.78047 -84.8047 52.8571 +v 6.71723e-05 -84.8047 52.9921 +v -3.78034 -84.8047 52.8571 +v -7.54149 -84.8047 52.4527 +v -11.2642 -84.8047 51.7811 +v -14.9295 -84.8047 50.8456 +v -18.5188 -84.8047 49.651 +v -22.0136 -84.8047 48.2033 +v -25.3963 -84.8047 46.5101 +v -28.6496 -84.8047 44.5798 +v -31.7569 -84.8047 42.4224 +v -34.7024 -84.8047 40.0488 +v -37.471 -84.8047 37.4711 +v -40.0487 -84.8047 34.7025 +v -42.4223 -84.8047 31.7571 +v -44.5797 -84.8047 28.6498 +v -46.51 -84.8047 25.3965 +v -48.2033 -84.8047 22.0138 +v -49.6509 -84.8047 18.5189 +v -50.8455 -84.8047 14.9297 +v -51.781 -84.8047 11.2644 +v -52.4527 -84.8047 7.54168 +v -52.8571 -84.8047 3.78054 +v -52.9921 -84.8047 0.000134345 +v -52.8571 -84.8047 -3.78028 +v -52.4527 -84.8047 -7.54143 +v -51.7811 -84.8047 -11.2642 +v -50.8456 -84.8047 -14.9295 +v -49.651 -84.8047 -18.5187 +v -48.2034 -84.8047 -22.0136 +v -46.5101 -84.8047 -25.3963 +v -44.5799 -84.8047 -28.6496 +v -42.4225 -84.8047 -31.7569 +v -40.0489 -84.8047 -34.7023 +v -37.4712 -84.8047 -37.471 +v -34.7026 -84.8047 -40.0486 +v -31.7571 -84.8047 -42.4223 +v -28.6498 -84.8047 -44.5797 +v -25.3966 -84.8047 -46.51 +v -22.0139 -84.8047 -48.2032 +v -18.519 -84.8047 -49.6509 +v -14.9298 -84.8047 -50.8455 +v -11.2645 -84.8047 -51.781 +v -7.54175 -84.8047 -52.4527 +v -3.78061 -84.8047 -52.8571 +v -0.000201517 -84.8047 -52.9921 +v 3.78023 -84.8047 -52.8571 +v 7.54137 -84.8047 -52.4527 +v 11.2641 -84.8047 -51.7811 +v 14.9294 -84.8047 -50.8456 +v 18.5186 -84.8047 -49.651 +v 22.0135 -84.8047 -48.2034 +v 25.3962 -84.8047 -46.5101 +v 28.6495 -84.8047 -44.5799 +v 31.7568 -84.8047 -42.4225 +v 34.7023 -84.8047 -40.0489 +v 37.4709 -84.8047 -37.4712 +v 40.0486 -84.8047 -34.7026 +v 42.4222 -84.8047 -31.7572 +v 44.5797 -84.8047 -28.6499 +v 46.5099 -84.8047 -25.3966 +v 48.2032 -84.8047 -22.0139 +v 49.6508 -84.8047 -18.5191 +v 50.8455 -84.8047 -14.9298 +v 51.781 -84.8047 -11.2645 +v 52.4527 -84.8047 -7.54181 +v 52.8571 -84.8047 -3.78067 +v 46.9473 -88.2947 5.88009e-39 +v 46.8277 -88.2947 3.34918 +v 46.4695 -88.2947 6.6813 +v 45.8744 -88.2947 9.97936 +v 45.0456 -88.2947 13.2266 +v 43.9873 -88.2947 16.4064 +v 42.7048 -88.2947 19.5026 +v 41.2047 -88.2947 22.4994 +v 39.4946 -88.2947 25.3816 +v 37.5833 -88.2947 28.1345 +v 35.4804 -88.2947 30.7439 +v 33.1968 -88.2947 33.1968 +v 30.744 -88.2947 35.4804 +v 28.1345 -88.2947 37.5833 +v 25.3817 -88.2947 39.4946 +v 22.4995 -88.2947 41.2047 +v 19.5027 -88.2947 42.7048 +v 16.4064 -88.2947 43.9873 +v 13.2266 -88.2947 45.0456 +v 9.97942 -88.2947 45.8744 +v 6.68135 -88.2947 46.4695 +v 3.34924 -88.2947 46.8277 +v 5.951e-05 -88.2947 46.9473 +v -3.34912 -88.2947 46.8277 +v -6.68124 -88.2947 46.4695 +v -9.97931 -88.2947 45.8744 +v -13.2265 -88.2947 45.0456 +v -16.4063 -88.2947 43.9873 +v -19.5026 -88.2947 42.7048 +v -22.4994 -88.2947 41.2047 +v -25.3816 -88.2947 39.4946 +v -28.1344 -88.2947 37.5833 +v -30.7439 -88.2947 35.4805 +v -33.1967 -88.2947 33.1968 +v -35.4804 -88.2947 30.744 +v -37.5832 -88.2947 28.1346 +v -39.4946 -88.2947 25.3817 +v -41.2046 -88.2947 22.4995 +v -42.7048 -88.2947 19.5027 +v -43.9873 -88.2947 16.4065 +v -45.0456 -88.2947 13.2267 +v -45.8744 -88.2947 9.97948 +v -46.4695 -88.2947 6.68141 +v -46.8277 -88.2947 3.3493 +v -46.9473 -88.2947 0.00011902 +v -46.8277 -88.2947 -3.34907 +v -46.4695 -88.2947 -6.68118 +v -45.8745 -88.2947 -9.97926 +v -45.0457 -88.2947 -13.2265 +v -43.9873 -88.2947 -16.4063 +v -42.7048 -88.2947 -19.5025 +v -41.2047 -88.2947 -22.4993 +v -39.4947 -88.2947 -25.3815 +v -37.5834 -88.2947 -28.1344 +v -35.4805 -88.2947 -30.7439 +v -33.1969 -88.2947 -33.1967 +v -30.7441 -88.2947 -35.4803 +v -28.1346 -88.2947 -37.5832 +v -25.3818 -88.2947 -39.4945 +v -22.4996 -88.2947 -41.2046 +v -19.5028 -88.2947 -42.7047 +v -16.4066 -88.2947 -43.9872 +v -13.2267 -88.2947 -45.0456 +v -9.97953 -88.2947 -45.8744 +v -6.68146 -88.2947 -46.4694 +v -3.34936 -88.2947 -46.8277 +v -0.00017853 -88.2947 -46.9473 +v 3.34902 -88.2947 -46.8277 +v 6.68113 -88.2947 -46.4695 +v 9.9792 -88.2947 -45.8745 +v 13.2264 -88.2947 -45.0457 +v 16.4062 -88.2947 -43.9874 +v 19.5025 -88.2947 -42.7049 +v 22.4993 -88.2947 -41.2048 +v 25.3815 -88.2947 -39.4947 +v 28.1343 -88.2947 -37.5834 +v 30.7438 -88.2947 -35.4806 +v 33.1966 -88.2947 -33.1969 +v 35.4803 -88.2947 -30.7441 +v 37.5832 -88.2947 -28.1346 +v 39.4945 -88.2947 -25.3818 +v 41.2046 -88.2947 -22.4996 +v 42.7047 -88.2947 -19.5028 +v 43.9872 -88.2947 -16.4066 +v 45.0456 -88.2947 -13.2268 +v 45.8744 -88.2947 -9.97958 +v 46.4694 -88.2947 -6.68152 +v 46.8277 -88.2947 -3.34941 +v 40.6739 -91.3545 5.88009e-39 +v 40.5702 -91.3545 2.90164 +v 40.2599 -91.3545 5.78849 +v 39.7443 -91.3545 8.64584 +v 39.0263 -91.3545 11.4591 +v 38.1094 -91.3545 14.214 +v 36.9982 -91.3545 16.8965 +v 35.6986 -91.3545 19.4929 +v 34.217 -91.3545 21.9899 +v 32.5611 -91.3545 24.3749 +v 30.7393 -91.3545 26.6357 +v 28.7608 -91.3545 28.7607 +v 26.6357 -91.3545 30.7392 +v 24.375 -91.3545 32.5611 +v 21.99 -91.3545 34.217 +v 19.4929 -91.3545 35.6986 +v 16.8966 -91.3545 36.9982 +v 14.2141 -91.3545 38.1093 +v 11.4592 -91.3545 39.0263 +v 8.64589 -91.3545 39.7443 +v 5.78854 -91.3545 40.2598 +v 2.90169 -91.3545 40.5702 +v 5.15578e-05 -91.3545 40.6739 +v -2.90159 -91.3545 40.5702 +v -5.78844 -91.3545 40.2599 +v -8.6458 -91.3545 39.7443 +v -11.4591 -91.3545 39.0263 +v -14.214 -91.3545 38.1094 +v -16.8965 -91.3545 36.9983 +v -19.4928 -91.3545 35.6986 +v -21.9899 -91.3545 34.2171 +v -24.3749 -91.3545 32.5611 +v -26.6357 -91.3545 30.7393 +v -28.7607 -91.3545 28.7608 +v -30.7392 -91.3545 26.6358 +v -32.5611 -91.3545 24.375 +v -34.217 -91.3545 21.99 +v -35.6985 -91.3545 19.493 +v -36.9982 -91.3545 16.8966 +v -38.1093 -91.3545 14.2141 +v -39.0263 -91.3545 11.4592 +v -39.7443 -91.3545 8.64594 +v -40.2598 -91.3545 5.78858 +v -40.5702 -91.3545 2.90174 +v -40.6739 -91.3545 0.000103116 +v -40.5702 -91.3545 -2.90154 +v -40.2599 -91.3545 -5.78839 +v -39.7444 -91.3545 -8.64575 +v -39.0263 -91.3545 -11.459 +v -38.1094 -91.3545 -14.2139 +v -36.9983 -91.3545 -16.8964 +v -35.6986 -91.3545 -19.4928 +v -34.2171 -91.3545 -21.9899 +v -32.5612 -91.3545 -24.3748 +v -30.7393 -91.3545 -26.6356 +v -28.7608 -91.3545 -28.7607 +v -26.6358 -91.3545 -30.7392 +v -24.375 -91.3545 -32.561 +v -21.9901 -91.3545 -34.217 +v -19.493 -91.3545 -35.6985 +v -16.8967 -91.3545 -36.9982 +v -14.2142 -91.3545 -38.1093 +v -11.4593 -91.3545 -39.0262 +v -8.64598 -91.3545 -39.7443 +v -5.78863 -91.3545 -40.2598 +v -2.90179 -91.3545 -40.5702 +v -0.000154673 -91.3545 -40.6739 +v 2.9015 -91.3545 -40.5702 +v 5.78835 -91.3545 -40.2599 +v 8.6457 -91.3545 -39.7444 +v 11.459 -91.3545 -39.0263 +v 14.2139 -91.3545 -38.1094 +v 16.8964 -91.3545 -36.9983 +v 19.4928 -91.3545 -35.6987 +v 21.9898 -91.3545 -34.2171 +v 24.3748 -91.3545 -32.5612 +v 26.6356 -91.3545 -30.7394 +v 28.7606 -91.3545 -28.7609 +v 30.7391 -91.3545 -26.6358 +v 32.561 -91.3545 -24.3751 +v 34.2169 -91.3545 -21.9901 +v 35.6985 -91.3545 -19.4931 +v 36.9982 -91.3545 -16.8967 +v 38.1093 -91.3545 -14.2142 +v 39.0262 -91.3545 -11.4593 +v 39.7443 -91.3545 -8.64603 +v 40.2598 -91.3545 -5.78869 +v 40.5702 -91.3545 -2.90184 +v 34.2022 -93.9692 5.88009e-39 +v 34.1151 -93.9692 2.43996 +v 33.8541 -93.9692 4.86748 +v 33.4206 -93.9692 7.2702 +v 32.8168 -93.9692 9.63587 +v 32.0457 -93.9692 11.9524 +v 31.1114 -93.9692 14.2081 +v 30.0186 -93.9692 16.3914 +v 28.7727 -93.9692 18.4911 +v 27.3803 -93.9692 20.4966 +v 25.8483 -93.9692 22.3977 +v 24.1846 -93.9692 24.1846 +v 22.3977 -93.9692 25.8483 +v 20.4966 -93.9692 27.3803 +v 18.4911 -93.9692 28.7727 +v 16.3914 -93.9692 30.0185 +v 14.2081 -93.9692 31.1114 +v 11.9525 -93.9692 32.0457 +v 9.6359 -93.9692 32.8168 +v 7.27024 -93.9692 33.4206 +v 4.86752 -93.9692 33.8541 +v 2.44 -93.9692 34.1151 +v 4.33544e-05 -93.9692 34.2022 +v -2.43991 -93.9692 34.1151 +v -4.86744 -93.9692 33.8541 +v -7.27016 -93.9692 33.4206 +v -9.63583 -93.9692 32.8168 +v -11.9524 -93.9692 32.0458 +v -14.2081 -93.9692 31.1114 +v -16.3913 -93.9692 30.0186 +v -18.4911 -93.9692 28.7728 +v -20.4966 -93.9692 27.3803 +v -22.3976 -93.9692 25.8483 +v -24.1846 -93.9692 24.1847 +v -25.8483 -93.9692 22.3977 +v -27.3802 -93.9692 20.4967 +v -28.7727 -93.9692 18.4912 +v -30.0185 -93.9692 16.3914 +v -31.1114 -93.9692 14.2082 +v -32.0457 -93.9692 11.9525 +v -32.8167 -93.9692 9.63595 +v -33.4206 -93.9692 7.27028 +v -33.8541 -93.9692 4.86756 +v -34.1151 -93.9692 2.44004 +v -34.2022 -93.9692 8.67088e-05 +v -34.1151 -93.9692 -2.43987 +v -33.8541 -93.9692 -4.86739 +v -33.4206 -93.9692 -7.27012 +v -32.8168 -93.9692 -9.63579 +v -32.0458 -93.9692 -11.9524 +v -31.1115 -93.9692 -14.208 +v -30.0186 -93.9692 -16.3913 +v -28.7728 -93.9692 -18.491 +v -27.3803 -93.9692 -20.4965 +v -25.8484 -93.9692 -22.3976 +v -24.1847 -93.9692 -24.1845 +v -22.3978 -93.9692 -25.8482 +v -20.4967 -93.9692 -27.3802 +v -18.4912 -93.9692 -28.7727 +v -16.3915 -93.9692 -30.0185 +v -14.2082 -93.9692 -31.1114 +v -11.9526 -93.9692 -32.0457 +v -9.63598 -93.9692 -32.8167 +v -7.27031 -93.9692 -33.4206 +v -4.8676 -93.9692 -33.8541 +v -2.44008 -93.9692 -34.1151 +v -0.000130063 -93.9692 -34.2022 +v 2.43984 -93.9692 -34.1151 +v 4.86736 -93.9692 -33.8541 +v 7.27008 -93.9692 -33.4206 +v 9.63575 -93.9692 -32.8168 +v 11.9523 -93.9692 -32.0458 +v 14.208 -93.9692 -31.1115 +v 16.3913 -93.9692 -30.0186 +v 18.491 -93.9692 -28.7728 +v 20.4965 -93.9692 -27.3804 +v 22.3976 -93.9692 -25.8484 +v 24.1845 -93.9692 -24.1847 +v 25.8482 -93.9692 -22.3978 +v 27.3802 -93.9692 -20.4967 +v 28.7726 -93.9692 -18.4912 +v 30.0185 -93.9692 -16.3915 +v 31.1114 -93.9692 -14.2083 +v 32.0457 -93.9692 -11.9526 +v 32.8167 -93.9692 -9.63602 +v 33.4205 -93.9692 -7.27036 +v 33.854 -93.9692 -4.86764 +v 34.115 -93.9692 -2.44013 +v 27.5639 -96.1261 5.88009e-39 +v 27.4937 -96.1261 1.96639 +v 27.2834 -96.1261 3.92276 +v 26.934 -96.1261 5.85913 +v 26.4474 -96.1261 7.76565 +v 25.826 -96.1261 9.6326 +v 25.073 -96.1261 11.4505 +v 24.1923 -96.1261 13.21 +v 23.1883 -96.1261 14.9022 +v 22.0661 -96.1261 16.5184 +v 20.8314 -96.1261 18.0505 +v 19.4907 -96.1261 19.4906 +v 18.0506 -96.1261 20.8314 +v 16.5185 -96.1261 22.0661 +v 14.9022 -96.1261 23.1883 +v 13.21 -96.1261 24.1923 +v 11.4505 -96.1261 25.073 +v 9.63263 -96.1261 25.826 +v 7.76568 -96.1261 26.4474 +v 5.85917 -96.1261 26.934 +v 3.92279 -96.1261 27.2834 +v 1.96642 -96.1261 27.4937 +v 3.49398e-05 -96.1261 27.5639 +v -1.96635 -96.1261 27.4937 +v -3.92272 -96.1261 27.2834 +v -5.8591 -96.1261 26.934 +v -7.76562 -96.1261 26.4474 +v -9.63257 -96.1261 25.826 +v -11.4504 -96.1261 25.0731 +v -13.21 -96.1261 24.1923 +v -14.9022 -96.1261 23.1883 +v -16.5184 -96.1261 22.0661 +v -18.0505 -96.1261 20.8315 +v -19.4906 -96.1261 19.4907 +v -20.8314 -96.1261 18.0506 +v -22.066 -96.1261 16.5185 +v -23.1882 -96.1261 14.9022 +v -24.1923 -96.1261 13.21 +v -25.073 -96.1261 11.4505 +v -25.826 -96.1261 9.63266 +v -26.4474 -96.1261 7.76572 +v -26.934 -96.1261 5.8592 +v -27.2834 -96.1261 3.92282 +v -27.4937 -96.1261 1.96645 +v -27.5639 -96.1261 6.98796e-05 +v -27.4937 -96.1261 -1.96632 +v -27.2834 -96.1261 -3.92269 +v -26.934 -96.1261 -5.85907 +v -26.4474 -96.1261 -7.76559 +v -25.8261 -96.1261 -9.63254 +v -25.0731 -96.1261 -11.4504 +v -24.1923 -96.1261 -13.2099 +v -23.1883 -96.1261 -14.9021 +v -22.0661 -96.1261 -16.5184 +v -20.8315 -96.1261 -18.0505 +v -19.4907 -96.1261 -19.4906 +v -18.0506 -96.1261 -20.8314 +v -16.5185 -96.1261 -22.066 +v -14.9023 -96.1261 -23.1882 +v -13.2101 -96.1261 -24.1922 +v -11.4506 -96.1261 -25.073 +v -9.6327 -96.1261 -25.826 +v -7.76575 -96.1261 -26.4474 +v -5.85923 -96.1261 -26.934 +v -3.92285 -96.1261 -27.2834 +v -1.96649 -96.1261 -27.4937 +v -0.000104819 -96.1261 -27.5639 +v 1.96629 -96.1261 -27.4937 +v 3.92266 -96.1261 -27.2834 +v 5.85904 -96.1261 -26.934 +v 7.76556 -96.1261 -26.4474 +v 9.63251 -96.1261 -25.8261 +v 11.4504 -96.1261 -25.0731 +v 13.2099 -96.1261 -24.1923 +v 14.9021 -96.1261 -23.1883 +v 16.5184 -96.1261 -22.0661 +v 18.0505 -96.1261 -20.8315 +v 19.4906 -96.1261 -19.4907 +v 20.8314 -96.1261 -18.0506 +v 22.066 -96.1261 -16.5185 +v 23.1882 -96.1261 -14.9023 +v 24.1922 -96.1261 -13.2101 +v 25.073 -96.1261 -11.4506 +v 25.826 -96.1261 -9.63272 +v 26.4474 -96.1261 -7.76578 +v 26.934 -96.1261 -5.85926 +v 27.2834 -96.1261 -3.92289 +v 27.4937 -96.1261 -1.96652 +v 20.7914 -97.8147 5.88009e-39 +v 20.7384 -97.8147 1.48324 +v 20.5798 -97.8147 2.95892 +v 20.3162 -97.8147 4.41953 +v 19.9492 -97.8147 5.85761 +v 19.4805 -97.8147 7.26584 +v 18.9125 -97.8147 8.63705 +v 18.2482 -97.8147 9.96425 +v 17.4908 -97.8147 11.2407 +v 16.6444 -97.8147 12.4598 +v 15.7131 -97.8147 13.6155 +v 14.7017 -97.8147 14.7017 +v 13.6155 -97.8147 15.7131 +v 12.4598 -97.8147 16.6444 +v 11.2407 -97.8147 17.4908 +v 9.96427 -97.8147 18.2482 +v 8.63707 -97.8147 18.9125 +v 7.26587 -97.8147 19.4805 +v 5.85763 -97.8147 19.9492 +v 4.41955 -97.8147 20.3162 +v 2.95895 -97.8147 20.5798 +v 1.48326 -97.8147 20.7384 +v 2.6355e-05 -97.8147 20.7914 +v -1.48321 -97.8147 20.7384 +v -2.9589 -97.8147 20.5798 +v -4.4195 -97.8147 20.3163 +v -5.85759 -97.8147 19.9492 +v -7.26582 -97.8147 19.4805 +v -8.63703 -97.8147 18.9125 +v -9.96423 -97.8147 18.2482 +v -11.2406 -97.8147 17.4909 +v -12.4598 -97.8147 16.6444 +v -13.6154 -97.8147 15.7131 +v -14.7017 -97.8147 14.7018 +v -15.7131 -97.8147 13.6155 +v -16.6443 -97.8147 12.4599 +v -17.4908 -97.8147 11.2407 +v -18.2481 -97.8147 9.96429 +v -18.9125 -97.8147 8.6371 +v -19.4805 -97.8147 7.26589 +v -19.9492 -97.8147 5.85766 +v -20.3162 -97.8147 4.41958 +v -20.5798 -97.8147 2.95897 +v -20.7384 -97.8147 1.48329 +v -20.7914 -97.8147 5.271e-05 +v -20.7384 -97.8147 -1.48319 +v -20.5798 -97.8147 -2.95887 +v -20.3163 -97.8147 -4.41948 +v -19.9492 -97.8147 -5.85756 +v -19.4805 -97.8147 -7.26579 +v -18.9125 -97.8147 -8.63701 +v -18.2482 -97.8147 -9.9642 +v -17.4909 -97.8147 -11.2406 +v -16.6444 -97.8147 -12.4598 +v -15.7131 -97.8147 -13.6154 +v -14.7018 -97.8147 -14.7017 +v -13.6155 -97.8147 -15.713 +v -12.4599 -97.8147 -16.6443 +v -11.2407 -97.8147 -17.4908 +v -9.96431 -97.8147 -18.2481 +v -8.63712 -97.8147 -18.9125 +v -7.26592 -97.8147 -19.4805 +v -5.85768 -97.8147 -19.9492 +v -4.4196 -97.8147 -20.3162 +v -2.959 -97.8147 -20.5798 +v -1.48332 -97.8147 -20.7384 +v -7.90649e-05 -97.8147 -20.7914 +v 1.48317 -97.8147 -20.7384 +v 2.95885 -97.8147 -20.5798 +v 4.41945 -97.8147 -20.3163 +v 5.85753 -97.8147 -19.9492 +v 7.26577 -97.8147 -19.4805 +v 8.63699 -97.8147 -18.9125 +v 9.96418 -97.8147 -18.2482 +v 11.2406 -97.8147 -17.4909 +v 12.4598 -97.8147 -16.6444 +v 13.6154 -97.8147 -15.7131 +v 14.7017 -97.8147 -14.7018 +v 15.713 -97.8147 -13.6155 +v 16.6443 -97.8147 -12.4599 +v 17.4908 -97.8147 -11.2408 +v 18.2481 -97.8147 -9.96434 +v 18.9125 -97.8147 -8.63715 +v 19.4805 -97.8147 -7.26593 +v 19.9492 -97.8147 -5.8577 +v 20.3162 -97.8147 -4.41962 +v 20.5798 -97.8147 -2.95902 +v 20.7384 -97.8147 -1.48334 +v 13.9175 -99.0268 5.88009e-39 +v 13.8821 -99.0268 0.992864 +v 13.7759 -99.0268 1.98067 +v 13.5995 -99.0268 2.95838 +v 13.3538 -99.0268 3.92102 +v 13.04 -99.0268 4.86367 +v 12.6598 -99.0268 5.78155 +v 12.2151 -99.0268 6.66996 +v 11.7082 -99.0268 7.52438 +v 11.1416 -99.0268 8.34046 +v 10.5182 -99.0268 9.11404 +v 9.84119 -99.0268 9.84117 +v 9.11405 -99.0268 10.5182 +v 8.34047 -99.0268 11.1416 +v 7.52439 -99.0268 11.7082 +v 6.66997 -99.0268 12.2151 +v 5.78156 -99.0268 12.6598 +v 4.86369 -99.0268 13.04 +v 3.92103 -99.0268 13.3538 +v 2.9584 -99.0268 13.5995 +v 1.98069 -99.0268 13.7759 +v 0.992881 -99.0268 13.8821 +v 1.76417e-05 -99.0268 13.9175 +v -0.992847 -99.0268 13.8821 +v -1.98065 -99.0268 13.7759 +v -2.95837 -99.0268 13.5995 +v -3.921 -99.0268 13.3538 +v -4.86366 -99.0268 13.04 +v -5.78153 -99.0268 12.6598 +v -6.66994 -99.0268 12.2151 +v -7.52436 -99.0268 11.7082 +v -8.34045 -99.0268 11.1416 +v -9.11403 -99.0268 10.5182 +v -9.84116 -99.0268 9.8412 +v -10.5182 -99.0268 9.11406 +v -11.1415 -99.0268 8.34049 +v -11.7082 -99.0268 7.52441 +v -12.2151 -99.0268 6.66999 +v -12.6598 -99.0268 5.78158 +v -13.04 -99.0268 4.86371 +v -13.3538 -99.0268 3.92105 +v -13.5995 -99.0268 2.95842 +v -13.7759 -99.0268 1.9807 +v -13.8821 -99.0268 0.992898 +v -13.9175 -99.0268 3.52835e-05 +v -13.8821 -99.0268 -0.992831 +v -13.7759 -99.0268 -1.98064 +v -13.5995 -99.0268 -2.95835 +v -13.3538 -99.0268 -3.92099 +v -13.04 -99.0268 -4.86364 +v -12.6598 -99.0268 -5.78152 +v -12.2151 -99.0268 -6.66993 +v -11.7082 -99.0268 -7.52435 +v -11.1416 -99.0268 -8.34043 +v -10.5182 -99.0268 -9.11401 +v -9.84121 -99.0268 -9.84115 +v -9.11408 -99.0268 -10.5181 +v -8.3405 -99.0268 -11.1415 +v -7.52442 -99.0268 -11.7081 +v -6.67 -99.0268 -12.2151 +v -5.78159 -99.0268 -12.6598 +v -4.86372 -99.0268 -13.04 +v -3.92106 -99.0268 -13.3538 +v -2.95843 -99.0268 -13.5995 +v -1.98072 -99.0268 -13.7759 +v -0.992916 -99.0268 -13.8821 +v -5.29252e-05 -99.0268 -13.9175 +v 0.992817 -99.0268 -13.8821 +v 1.98062 -99.0268 -13.7759 +v 2.95833 -99.0268 -13.5995 +v 3.92097 -99.0268 -13.3538 +v 4.86363 -99.0268 -13.04 +v 5.7815 -99.0268 -12.6599 +v 6.66992 -99.0268 -12.2151 +v 7.52434 -99.0268 -11.7082 +v 8.34042 -99.0268 -11.1416 +v 9.114 -99.0268 -10.5182 +v 9.84114 -99.0268 -9.84122 +v 10.5181 -99.0268 -9.11409 +v 11.1415 -99.0268 -8.34051 +v 11.7081 -99.0268 -7.52444 +v 12.2151 -99.0268 -6.67002 +v 12.6598 -99.0268 -5.78161 +v 13.04 -99.0268 -4.86373 +v 13.3538 -99.0268 -3.92108 +v 13.5995 -99.0268 -2.95845 +v 13.7759 -99.0268 -1.98074 +v 13.8821 -99.0268 -0.992934 +v 6.97588 -99.7564 5.88009e-39 +v 6.95811 -99.7564 0.497654 +v 6.90488 -99.7564 0.992771 +v 6.81646 -99.7564 1.48283 +v 6.69331 -99.7564 1.96533 +v 6.53605 -99.7564 2.43782 +v 6.34549 -99.7564 2.89789 +v 6.12259 -99.7564 3.34318 +v 5.86849 -99.7564 3.77145 +v 5.58449 -99.7564 4.18049 +v 5.27202 -99.7564 4.56823 +v 4.9327 -99.7564 4.93269 +v 4.56824 -99.7564 5.27202 +v 4.1805 -99.7564 5.58448 +v 3.77145 -99.7564 5.86848 +v 3.34319 -99.7564 6.12258 +v 2.89789 -99.7564 6.34549 +v 2.43783 -99.7564 6.53605 +v 1.96534 -99.7564 6.69331 +v 1.48284 -99.7564 6.81646 +v 0.992779 -99.7564 6.90488 +v 0.497662 -99.7564 6.95811 +v 8.84257e-06 -99.7564 6.97588 +v -0.497645 -99.7564 6.95811 +v -0.992763 -99.7564 6.90488 +v -1.48282 -99.7564 6.81647 +v -1.96532 -99.7564 6.69332 +v -2.43781 -99.7564 6.53606 +v -2.89788 -99.7564 6.34549 +v -3.34318 -99.7564 6.12259 +v -3.77144 -99.7564 5.86849 +v -4.18048 -99.7564 5.58449 +v -4.56822 -99.7564 5.27203 +v -4.93269 -99.7564 4.9327 +v -5.27201 -99.7564 4.56824 +v -5.58448 -99.7564 4.1805 +v -5.86848 -99.7564 3.77146 +v -6.12258 -99.7564 3.3432 +v -6.34548 -99.7564 2.8979 +v -6.53605 -99.7564 2.43784 +v -6.69331 -99.7564 1.96535 +v -6.81646 -99.7564 1.48285 +v -6.90488 -99.7564 0.992787 +v -6.95811 -99.7564 0.497671 +v -6.97588 -99.7564 1.76851e-05 +v -6.95811 -99.7564 -0.497637 +v -6.90488 -99.7564 -0.992754 +v -6.81647 -99.7564 -1.48281 +v -6.69332 -99.7564 -1.96532 +v -6.53606 -99.7564 -2.4378 +v -6.3455 -99.7564 -2.89787 +v -6.1226 -99.7564 -3.34317 +v -5.8685 -99.7564 -3.77143 +v -5.5845 -99.7564 -4.18048 +v -5.27204 -99.7564 -4.56822 +v -4.93271 -99.7564 -4.93268 +v -4.56825 -99.7564 -5.27201 +v -4.18051 -99.7564 -5.58447 +v -3.77147 -99.7564 -5.86848 +v -3.34321 -99.7564 -6.12258 +v -2.89791 -99.7564 -6.34548 +v -2.43784 -99.7564 -6.53604 +v -1.96536 -99.7564 -6.69331 +v -1.48285 -99.7564 -6.81646 +v -0.992796 -99.7564 -6.90488 +v -0.497679 -99.7564 -6.95811 +v -2.65277e-05 -99.7564 -6.97588 +v 0.49763 -99.7564 -6.95811 +v 0.992747 -99.7564 -6.90488 +v 1.48281 -99.7564 -6.81647 +v 1.96531 -99.7564 -6.69332 +v 2.4378 -99.7564 -6.53606 +v 2.89786 -99.7564 -6.3455 +v 3.34316 -99.7564 -6.1226 +v 3.77142 -99.7564 -5.8685 +v 4.18047 -99.7564 -5.5845 +v 4.56821 -99.7564 -5.27204 +v 4.93267 -99.7564 -4.93272 +v 5.272 -99.7564 -4.56825 +v 5.58447 -99.7564 -4.18052 +v 5.86847 -99.7564 -3.77147 +v 6.12257 -99.7564 -3.34321 +v 6.34547 -99.7564 -2.89792 +v 6.53604 -99.7564 -2.43785 +v 6.6933 -99.7564 -1.96536 +v 6.81646 -99.7564 -1.48286 +v 6.90488 -99.7564 -0.992805 +v 6.95811 -99.7564 -0.497688 +f 3 4 92 91 +f 4 5 93 92 +f 5 6 94 93 +f 6 7 95 94 +f 7 8 96 95 +f 8 9 97 96 +f 9 10 98 97 +f 10 11 99 98 +f 11 12 100 99 +f 12 13 101 100 +f 13 14 102 101 +f 14 15 103 102 +f 15 16 104 103 +f 16 17 105 104 +f 17 18 106 105 +f 18 19 107 106 +f 19 20 108 107 +f 20 21 109 108 +f 21 22 110 109 +f 22 23 111 110 +f 23 24 112 111 +f 24 25 113 112 +f 25 26 114 113 +f 26 27 115 114 +f 27 28 116 115 +f 28 29 117 116 +f 29 30 118 117 +f 30 31 119 118 +f 31 32 120 119 +f 32 33 121 120 +f 33 34 122 121 +f 34 35 123 122 +f 35 36 124 123 +f 36 37 125 124 +f 37 38 126 125 +f 38 39 127 126 +f 39 40 128 127 +f 40 41 129 128 +f 41 42 130 129 +f 42 43 131 130 +f 43 44 132 131 +f 44 45 133 132 +f 45 46 134 133 +f 46 47 135 134 +f 47 48 136 135 +f 48 49 137 136 +f 49 50 138 137 +f 50 51 139 138 +f 51 52 140 139 +f 52 53 141 140 +f 53 54 142 141 +f 54 55 143 142 +f 55 56 144 143 +f 56 57 145 144 +f 57 58 146 145 +f 58 59 147 146 +f 59 60 148 147 +f 60 61 149 148 +f 61 62 150 149 +f 62 63 151 150 +f 63 64 152 151 +f 64 65 153 152 +f 65 66 154 153 +f 66 67 155 154 +f 67 68 156 155 +f 68 69 157 156 +f 69 70 158 157 +f 70 71 159 158 +f 71 72 160 159 +f 72 73 161 160 +f 73 74 162 161 +f 74 75 163 162 +f 75 76 164 163 +f 76 77 165 164 +f 77 78 166 165 +f 78 79 167 166 +f 79 80 168 167 +f 80 81 169 168 +f 81 82 170 169 +f 82 83 171 170 +f 83 84 172 171 +f 84 85 173 172 +f 85 86 174 173 +f 86 87 175 174 +f 87 88 176 175 +f 88 89 177 176 +f 89 90 178 177 +f 90 3 91 178 +f 91 92 180 179 +f 92 93 181 180 +f 93 94 182 181 +f 94 95 183 182 +f 95 96 184 183 +f 96 97 185 184 +f 97 98 186 185 +f 98 99 187 186 +f 99 100 188 187 +f 100 101 189 188 +f 101 102 190 189 +f 102 103 191 190 +f 103 104 192 191 +f 104 105 193 192 +f 105 106 194 193 +f 106 107 195 194 +f 107 108 196 195 +f 108 109 197 196 +f 109 110 198 197 +f 110 111 199 198 +f 111 112 200 199 +f 112 113 201 200 +f 113 114 202 201 +f 114 115 203 202 +f 115 116 204 203 +f 116 117 205 204 +f 117 118 206 205 +f 118 119 207 206 +f 119 120 208 207 +f 120 121 209 208 +f 121 122 210 209 +f 122 123 211 210 +f 123 124 212 211 +f 124 125 213 212 +f 125 126 214 213 +f 126 127 215 214 +f 127 128 216 215 +f 128 129 217 216 +f 129 130 218 217 +f 130 131 219 218 +f 131 132 220 219 +f 132 133 221 220 +f 133 134 222 221 +f 134 135 223 222 +f 135 136 224 223 +f 136 137 225 224 +f 137 138 226 225 +f 138 139 227 226 +f 139 140 228 227 +f 140 141 229 228 +f 141 142 230 229 +f 142 143 231 230 +f 143 144 232 231 +f 144 145 233 232 +f 145 146 234 233 +f 146 147 235 234 +f 147 148 236 235 +f 148 149 237 236 +f 149 150 238 237 +f 150 151 239 238 +f 151 152 240 239 +f 152 153 241 240 +f 153 154 242 241 +f 154 155 243 242 +f 155 156 244 243 +f 156 157 245 244 +f 157 158 246 245 +f 158 159 247 246 +f 159 160 248 247 +f 160 161 249 248 +f 161 162 250 249 +f 162 163 251 250 +f 163 164 252 251 +f 164 165 253 252 +f 165 166 254 253 +f 166 167 255 254 +f 167 168 256 255 +f 168 169 257 256 +f 169 170 258 257 +f 170 171 259 258 +f 171 172 260 259 +f 172 173 261 260 +f 173 174 262 261 +f 174 175 263 262 +f 175 176 264 263 +f 176 177 265 264 +f 177 178 266 265 +f 178 91 179 266 +f 179 180 268 267 +f 180 181 269 268 +f 181 182 270 269 +f 182 183 271 270 +f 183 184 272 271 +f 184 185 273 272 +f 185 186 274 273 +f 186 187 275 274 +f 187 188 276 275 +f 188 189 277 276 +f 189 190 278 277 +f 190 191 279 278 +f 191 192 280 279 +f 192 193 281 280 +f 193 194 282 281 +f 194 195 283 282 +f 195 196 284 283 +f 196 197 285 284 +f 197 198 286 285 +f 198 199 287 286 +f 199 200 288 287 +f 200 201 289 288 +f 201 202 290 289 +f 202 203 291 290 +f 203 204 292 291 +f 204 205 293 292 +f 205 206 294 293 +f 206 207 295 294 +f 207 208 296 295 +f 208 209 297 296 +f 209 210 298 297 +f 210 211 299 298 +f 211 212 300 299 +f 212 213 301 300 +f 213 214 302 301 +f 214 215 303 302 +f 215 216 304 303 +f 216 217 305 304 +f 217 218 306 305 +f 218 219 307 306 +f 219 220 308 307 +f 220 221 309 308 +f 221 222 310 309 +f 222 223 311 310 +f 223 224 312 311 +f 224 225 313 312 +f 225 226 314 313 +f 226 227 315 314 +f 227 228 316 315 +f 228 229 317 316 +f 229 230 318 317 +f 230 231 319 318 +f 231 232 320 319 +f 232 233 321 320 +f 233 234 322 321 +f 234 235 323 322 +f 235 236 324 323 +f 236 237 325 324 +f 237 238 326 325 +f 238 239 327 326 +f 239 240 328 327 +f 240 241 329 328 +f 241 242 330 329 +f 242 243 331 330 +f 243 244 332 331 +f 244 245 333 332 +f 245 246 334 333 +f 246 247 335 334 +f 247 248 336 335 +f 248 249 337 336 +f 249 250 338 337 +f 250 251 339 338 +f 251 252 340 339 +f 252 253 341 340 +f 253 254 342 341 +f 254 255 343 342 +f 255 256 344 343 +f 256 257 345 344 +f 257 258 346 345 +f 258 259 347 346 +f 259 260 348 347 +f 260 261 349 348 +f 261 262 350 349 +f 262 263 351 350 +f 263 264 352 351 +f 264 265 353 352 +f 265 266 354 353 +f 266 179 267 354 +f 267 268 356 355 +f 268 269 357 356 +f 269 270 358 357 +f 270 271 359 358 +f 271 272 360 359 +f 272 273 361 360 +f 273 274 362 361 +f 274 275 363 362 +f 275 276 364 363 +f 276 277 365 364 +f 277 278 366 365 +f 278 279 367 366 +f 279 280 368 367 +f 280 281 369 368 +f 281 282 370 369 +f 282 283 371 370 +f 283 284 372 371 +f 284 285 373 372 +f 285 286 374 373 +f 286 287 375 374 +f 287 288 376 375 +f 288 289 377 376 +f 289 290 378 377 +f 290 291 379 378 +f 291 292 380 379 +f 292 293 381 380 +f 293 294 382 381 +f 294 295 383 382 +f 295 296 384 383 +f 296 297 385 384 +f 297 298 386 385 +f 298 299 387 386 +f 299 300 388 387 +f 300 301 389 388 +f 301 302 390 389 +f 302 303 391 390 +f 303 304 392 391 +f 304 305 393 392 +f 305 306 394 393 +f 306 307 395 394 +f 307 308 396 395 +f 308 309 397 396 +f 309 310 398 397 +f 310 311 399 398 +f 311 312 400 399 +f 312 313 401 400 +f 313 314 402 401 +f 314 315 403 402 +f 315 316 404 403 +f 316 317 405 404 +f 317 318 406 405 +f 318 319 407 406 +f 319 320 408 407 +f 320 321 409 408 +f 321 322 410 409 +f 322 323 411 410 +f 323 324 412 411 +f 324 325 413 412 +f 325 326 414 413 +f 326 327 415 414 +f 327 328 416 415 +f 328 329 417 416 +f 329 330 418 417 +f 330 331 419 418 +f 331 332 420 419 +f 332 333 421 420 +f 333 334 422 421 +f 334 335 423 422 +f 335 336 424 423 +f 336 337 425 424 +f 337 338 426 425 +f 338 339 427 426 +f 339 340 428 427 +f 340 341 429 428 +f 341 342 430 429 +f 342 343 431 430 +f 343 344 432 431 +f 344 345 433 432 +f 345 346 434 433 +f 346 347 435 434 +f 347 348 436 435 +f 348 349 437 436 +f 349 350 438 437 +f 350 351 439 438 +f 351 352 440 439 +f 352 353 441 440 +f 353 354 442 441 +f 354 267 355 442 +f 355 356 444 443 +f 356 357 445 444 +f 357 358 446 445 +f 358 359 447 446 +f 359 360 448 447 +f 360 361 449 448 +f 361 362 450 449 +f 362 363 451 450 +f 363 364 452 451 +f 364 365 453 452 +f 365 366 454 453 +f 366 367 455 454 +f 367 368 456 455 +f 368 369 457 456 +f 369 370 458 457 +f 370 371 459 458 +f 371 372 460 459 +f 372 373 461 460 +f 373 374 462 461 +f 374 375 463 462 +f 375 376 464 463 +f 376 377 465 464 +f 377 378 466 465 +f 378 379 467 466 +f 379 380 468 467 +f 380 381 469 468 +f 381 382 470 469 +f 382 383 471 470 +f 383 384 472 471 +f 384 385 473 472 +f 385 386 474 473 +f 386 387 475 474 +f 387 388 476 475 +f 388 389 477 476 +f 389 390 478 477 +f 390 391 479 478 +f 391 392 480 479 +f 392 393 481 480 +f 393 394 482 481 +f 394 395 483 482 +f 395 396 484 483 +f 396 397 485 484 +f 397 398 486 485 +f 398 399 487 486 +f 399 400 488 487 +f 400 401 489 488 +f 401 402 490 489 +f 402 403 491 490 +f 403 404 492 491 +f 404 405 493 492 +f 405 406 494 493 +f 406 407 495 494 +f 407 408 496 495 +f 408 409 497 496 +f 409 410 498 497 +f 410 411 499 498 +f 411 412 500 499 +f 412 413 501 500 +f 413 414 502 501 +f 414 415 503 502 +f 415 416 504 503 +f 416 417 505 504 +f 417 418 506 505 +f 418 419 507 506 +f 419 420 508 507 +f 420 421 509 508 +f 421 422 510 509 +f 422 423 511 510 +f 423 424 512 511 +f 424 425 513 512 +f 425 426 514 513 +f 426 427 515 514 +f 427 428 516 515 +f 428 429 517 516 +f 429 430 518 517 +f 430 431 519 518 +f 431 432 520 519 +f 432 433 521 520 +f 433 434 522 521 +f 434 435 523 522 +f 435 436 524 523 +f 436 437 525 524 +f 437 438 526 525 +f 438 439 527 526 +f 439 440 528 527 +f 440 441 529 528 +f 441 442 530 529 +f 442 355 443 530 +f 443 444 532 531 +f 444 445 533 532 +f 445 446 534 533 +f 446 447 535 534 +f 447 448 536 535 +f 448 449 537 536 +f 449 450 538 537 +f 450 451 539 538 +f 451 452 540 539 +f 452 453 541 540 +f 453 454 542 541 +f 454 455 543 542 +f 455 456 544 543 +f 456 457 545 544 +f 457 458 546 545 +f 458 459 547 546 +f 459 460 548 547 +f 460 461 549 548 +f 461 462 550 549 +f 462 463 551 550 +f 463 464 552 551 +f 464 465 553 552 +f 465 466 554 553 +f 466 467 555 554 +f 467 468 556 555 +f 468 469 557 556 +f 469 470 558 557 +f 470 471 559 558 +f 471 472 560 559 +f 472 473 561 560 +f 473 474 562 561 +f 474 475 563 562 +f 475 476 564 563 +f 476 477 565 564 +f 477 478 566 565 +f 478 479 567 566 +f 479 480 568 567 +f 480 481 569 568 +f 481 482 570 569 +f 482 483 571 570 +f 483 484 572 571 +f 484 485 573 572 +f 485 486 574 573 +f 486 487 575 574 +f 487 488 576 575 +f 488 489 577 576 +f 489 490 578 577 +f 490 491 579 578 +f 491 492 580 579 +f 492 493 581 580 +f 493 494 582 581 +f 494 495 583 582 +f 495 496 584 583 +f 496 497 585 584 +f 497 498 586 585 +f 498 499 587 586 +f 499 500 588 587 +f 500 501 589 588 +f 501 502 590 589 +f 502 503 591 590 +f 503 504 592 591 +f 504 505 593 592 +f 505 506 594 593 +f 506 507 595 594 +f 507 508 596 595 +f 508 509 597 596 +f 509 510 598 597 +f 510 511 599 598 +f 511 512 600 599 +f 512 513 601 600 +f 513 514 602 601 +f 514 515 603 602 +f 515 516 604 603 +f 516 517 605 604 +f 517 518 606 605 +f 518 519 607 606 +f 519 520 608 607 +f 520 521 609 608 +f 521 522 610 609 +f 522 523 611 610 +f 523 524 612 611 +f 524 525 613 612 +f 525 526 614 613 +f 526 527 615 614 +f 527 528 616 615 +f 528 529 617 616 +f 529 530 618 617 +f 530 443 531 618 +f 531 532 620 619 +f 532 533 621 620 +f 533 534 622 621 +f 534 535 623 622 +f 535 536 624 623 +f 536 537 625 624 +f 537 538 626 625 +f 538 539 627 626 +f 539 540 628 627 +f 540 541 629 628 +f 541 542 630 629 +f 542 543 631 630 +f 543 544 632 631 +f 544 545 633 632 +f 545 546 634 633 +f 546 547 635 634 +f 547 548 636 635 +f 548 549 637 636 +f 549 550 638 637 +f 550 551 639 638 +f 551 552 640 639 +f 552 553 641 640 +f 553 554 642 641 +f 554 555 643 642 +f 555 556 644 643 +f 556 557 645 644 +f 557 558 646 645 +f 558 559 647 646 +f 559 560 648 647 +f 560 561 649 648 +f 561 562 650 649 +f 562 563 651 650 +f 563 564 652 651 +f 564 565 653 652 +f 565 566 654 653 +f 566 567 655 654 +f 567 568 656 655 +f 568 569 657 656 +f 569 570 658 657 +f 570 571 659 658 +f 571 572 660 659 +f 572 573 661 660 +f 573 574 662 661 +f 574 575 663 662 +f 575 576 664 663 +f 576 577 665 664 +f 577 578 666 665 +f 578 579 667 666 +f 579 580 668 667 +f 580 581 669 668 +f 581 582 670 669 +f 582 583 671 670 +f 583 584 672 671 +f 584 585 673 672 +f 585 586 674 673 +f 586 587 675 674 +f 587 588 676 675 +f 588 589 677 676 +f 589 590 678 677 +f 590 591 679 678 +f 591 592 680 679 +f 592 593 681 680 +f 593 594 682 681 +f 594 595 683 682 +f 595 596 684 683 +f 596 597 685 684 +f 597 598 686 685 +f 598 599 687 686 +f 599 600 688 687 +f 600 601 689 688 +f 601 602 690 689 +f 602 603 691 690 +f 603 604 692 691 +f 604 605 693 692 +f 605 606 694 693 +f 606 607 695 694 +f 607 608 696 695 +f 608 609 697 696 +f 609 610 698 697 +f 610 611 699 698 +f 611 612 700 699 +f 612 613 701 700 +f 613 614 702 701 +f 614 615 703 702 +f 615 616 704 703 +f 616 617 705 704 +f 617 618 706 705 +f 618 531 619 706 +f 619 620 708 707 +f 620 621 709 708 +f 621 622 710 709 +f 622 623 711 710 +f 623 624 712 711 +f 624 625 713 712 +f 625 626 714 713 +f 626 627 715 714 +f 627 628 716 715 +f 628 629 717 716 +f 629 630 718 717 +f 630 631 719 718 +f 631 632 720 719 +f 632 633 721 720 +f 633 634 722 721 +f 634 635 723 722 +f 635 636 724 723 +f 636 637 725 724 +f 637 638 726 725 +f 638 639 727 726 +f 639 640 728 727 +f 640 641 729 728 +f 641 642 730 729 +f 642 643 731 730 +f 643 644 732 731 +f 644 645 733 732 +f 645 646 734 733 +f 646 647 735 734 +f 647 648 736 735 +f 648 649 737 736 +f 649 650 738 737 +f 650 651 739 738 +f 651 652 740 739 +f 652 653 741 740 +f 653 654 742 741 +f 654 655 743 742 +f 655 656 744 743 +f 656 657 745 744 +f 657 658 746 745 +f 658 659 747 746 +f 659 660 748 747 +f 660 661 749 748 +f 661 662 750 749 +f 662 663 751 750 +f 663 664 752 751 +f 664 665 753 752 +f 665 666 754 753 +f 666 667 755 754 +f 667 668 756 755 +f 668 669 757 756 +f 669 670 758 757 +f 670 671 759 758 +f 671 672 760 759 +f 672 673 761 760 +f 673 674 762 761 +f 674 675 763 762 +f 675 676 764 763 +f 676 677 765 764 +f 677 678 766 765 +f 678 679 767 766 +f 679 680 768 767 +f 680 681 769 768 +f 681 682 770 769 +f 682 683 771 770 +f 683 684 772 771 +f 684 685 773 772 +f 685 686 774 773 +f 686 687 775 774 +f 687 688 776 775 +f 688 689 777 776 +f 689 690 778 777 +f 690 691 779 778 +f 691 692 780 779 +f 692 693 781 780 +f 693 694 782 781 +f 694 695 783 782 +f 695 696 784 783 +f 696 697 785 784 +f 697 698 786 785 +f 698 699 787 786 +f 699 700 788 787 +f 700 701 789 788 +f 701 702 790 789 +f 702 703 791 790 +f 703 704 792 791 +f 704 705 793 792 +f 705 706 794 793 +f 706 619 707 794 +f 707 708 796 795 +f 708 709 797 796 +f 709 710 798 797 +f 710 711 799 798 +f 711 712 800 799 +f 712 713 801 800 +f 713 714 802 801 +f 714 715 803 802 +f 715 716 804 803 +f 716 717 805 804 +f 717 718 806 805 +f 718 719 807 806 +f 719 720 808 807 +f 720 721 809 808 +f 721 722 810 809 +f 722 723 811 810 +f 723 724 812 811 +f 724 725 813 812 +f 725 726 814 813 +f 726 727 815 814 +f 727 728 816 815 +f 728 729 817 816 +f 729 730 818 817 +f 730 731 819 818 +f 731 732 820 819 +f 732 733 821 820 +f 733 734 822 821 +f 734 735 823 822 +f 735 736 824 823 +f 736 737 825 824 +f 737 738 826 825 +f 738 739 827 826 +f 739 740 828 827 +f 740 741 829 828 +f 741 742 830 829 +f 742 743 831 830 +f 743 744 832 831 +f 744 745 833 832 +f 745 746 834 833 +f 746 747 835 834 +f 747 748 836 835 +f 748 749 837 836 +f 749 750 838 837 +f 750 751 839 838 +f 751 752 840 839 +f 752 753 841 840 +f 753 754 842 841 +f 754 755 843 842 +f 755 756 844 843 +f 756 757 845 844 +f 757 758 846 845 +f 758 759 847 846 +f 759 760 848 847 +f 760 761 849 848 +f 761 762 850 849 +f 762 763 851 850 +f 763 764 852 851 +f 764 765 853 852 +f 765 766 854 853 +f 766 767 855 854 +f 767 768 856 855 +f 768 769 857 856 +f 769 770 858 857 +f 770 771 859 858 +f 771 772 860 859 +f 772 773 861 860 +f 773 774 862 861 +f 774 775 863 862 +f 775 776 864 863 +f 776 777 865 864 +f 777 778 866 865 +f 778 779 867 866 +f 779 780 868 867 +f 780 781 869 868 +f 781 782 870 869 +f 782 783 871 870 +f 783 784 872 871 +f 784 785 873 872 +f 785 786 874 873 +f 786 787 875 874 +f 787 788 876 875 +f 788 789 877 876 +f 789 790 878 877 +f 790 791 879 878 +f 791 792 880 879 +f 792 793 881 880 +f 793 794 882 881 +f 794 707 795 882 +f 795 796 884 883 +f 796 797 885 884 +f 797 798 886 885 +f 798 799 887 886 +f 799 800 888 887 +f 800 801 889 888 +f 801 802 890 889 +f 802 803 891 890 +f 803 804 892 891 +f 804 805 893 892 +f 805 806 894 893 +f 806 807 895 894 +f 807 808 896 895 +f 808 809 897 896 +f 809 810 898 897 +f 810 811 899 898 +f 811 812 900 899 +f 812 813 901 900 +f 813 814 902 901 +f 814 815 903 902 +f 815 816 904 903 +f 816 817 905 904 +f 817 818 906 905 +f 818 819 907 906 +f 819 820 908 907 +f 820 821 909 908 +f 821 822 910 909 +f 822 823 911 910 +f 823 824 912 911 +f 824 825 913 912 +f 825 826 914 913 +f 826 827 915 914 +f 827 828 916 915 +f 828 829 917 916 +f 829 830 918 917 +f 830 831 919 918 +f 831 832 920 919 +f 832 833 921 920 +f 833 834 922 921 +f 834 835 923 922 +f 835 836 924 923 +f 836 837 925 924 +f 837 838 926 925 +f 838 839 927 926 +f 839 840 928 927 +f 840 841 929 928 +f 841 842 930 929 +f 842 843 931 930 +f 843 844 932 931 +f 844 845 933 932 +f 845 846 934 933 +f 846 847 935 934 +f 847 848 936 935 +f 848 849 937 936 +f 849 850 938 937 +f 850 851 939 938 +f 851 852 940 939 +f 852 853 941 940 +f 853 854 942 941 +f 854 855 943 942 +f 855 856 944 943 +f 856 857 945 944 +f 857 858 946 945 +f 858 859 947 946 +f 859 860 948 947 +f 860 861 949 948 +f 861 862 950 949 +f 862 863 951 950 +f 863 864 952 951 +f 864 865 953 952 +f 865 866 954 953 +f 866 867 955 954 +f 867 868 956 955 +f 868 869 957 956 +f 869 870 958 957 +f 870 871 959 958 +f 871 872 960 959 +f 872 873 961 960 +f 873 874 962 961 +f 874 875 963 962 +f 875 876 964 963 +f 876 877 965 964 +f 877 878 966 965 +f 878 879 967 966 +f 879 880 968 967 +f 880 881 969 968 +f 881 882 970 969 +f 882 795 883 970 +f 883 884 972 971 +f 884 885 973 972 +f 885 886 974 973 +f 886 887 975 974 +f 887 888 976 975 +f 888 889 977 976 +f 889 890 978 977 +f 890 891 979 978 +f 891 892 980 979 +f 892 893 981 980 +f 893 894 982 981 +f 894 895 983 982 +f 895 896 984 983 +f 896 897 985 984 +f 897 898 986 985 +f 898 899 987 986 +f 899 900 988 987 +f 900 901 989 988 +f 901 902 990 989 +f 902 903 991 990 +f 903 904 992 991 +f 904 905 993 992 +f 905 906 994 993 +f 906 907 995 994 +f 907 908 996 995 +f 908 909 997 996 +f 909 910 998 997 +f 910 911 999 998 +f 911 912 1000 999 +f 912 913 1001 1000 +f 913 914 1002 1001 +f 914 915 1003 1002 +f 915 916 1004 1003 +f 916 917 1005 1004 +f 917 918 1006 1005 +f 918 919 1007 1006 +f 919 920 1008 1007 +f 920 921 1009 1008 +f 921 922 1010 1009 +f 922 923 1011 1010 +f 923 924 1012 1011 +f 924 925 1013 1012 +f 925 926 1014 1013 +f 926 927 1015 1014 +f 927 928 1016 1015 +f 928 929 1017 1016 +f 929 930 1018 1017 +f 930 931 1019 1018 +f 931 932 1020 1019 +f 932 933 1021 1020 +f 933 934 1022 1021 +f 934 935 1023 1022 +f 935 936 1024 1023 +f 936 937 1025 1024 +f 937 938 1026 1025 +f 938 939 1027 1026 +f 939 940 1028 1027 +f 940 941 1029 1028 +f 941 942 1030 1029 +f 942 943 1031 1030 +f 943 944 1032 1031 +f 944 945 1033 1032 +f 945 946 1034 1033 +f 946 947 1035 1034 +f 947 948 1036 1035 +f 948 949 1037 1036 +f 949 950 1038 1037 +f 950 951 1039 1038 +f 951 952 1040 1039 +f 952 953 1041 1040 +f 953 954 1042 1041 +f 954 955 1043 1042 +f 955 956 1044 1043 +f 956 957 1045 1044 +f 957 958 1046 1045 +f 958 959 1047 1046 +f 959 960 1048 1047 +f 960 961 1049 1048 +f 961 962 1050 1049 +f 962 963 1051 1050 +f 963 964 1052 1051 +f 964 965 1053 1052 +f 965 966 1054 1053 +f 966 967 1055 1054 +f 967 968 1056 1055 +f 968 969 1057 1056 +f 969 970 1058 1057 +f 970 883 971 1058 +f 971 972 1060 1059 +f 972 973 1061 1060 +f 973 974 1062 1061 +f 974 975 1063 1062 +f 975 976 1064 1063 +f 976 977 1065 1064 +f 977 978 1066 1065 +f 978 979 1067 1066 +f 979 980 1068 1067 +f 980 981 1069 1068 +f 981 982 1070 1069 +f 982 983 1071 1070 +f 983 984 1072 1071 +f 984 985 1073 1072 +f 985 986 1074 1073 +f 986 987 1075 1074 +f 987 988 1076 1075 +f 988 989 1077 1076 +f 989 990 1078 1077 +f 990 991 1079 1078 +f 991 992 1080 1079 +f 992 993 1081 1080 +f 993 994 1082 1081 +f 994 995 1083 1082 +f 995 996 1084 1083 +f 996 997 1085 1084 +f 997 998 1086 1085 +f 998 999 1087 1086 +f 999 1000 1088 1087 +f 1000 1001 1089 1088 +f 1001 1002 1090 1089 +f 1002 1003 1091 1090 +f 1003 1004 1092 1091 +f 1004 1005 1093 1092 +f 1005 1006 1094 1093 +f 1006 1007 1095 1094 +f 1007 1008 1096 1095 +f 1008 1009 1097 1096 +f 1009 1010 1098 1097 +f 1010 1011 1099 1098 +f 1011 1012 1100 1099 +f 1012 1013 1101 1100 +f 1013 1014 1102 1101 +f 1014 1015 1103 1102 +f 1015 1016 1104 1103 +f 1016 1017 1105 1104 +f 1017 1018 1106 1105 +f 1018 1019 1107 1106 +f 1019 1020 1108 1107 +f 1020 1021 1109 1108 +f 1021 1022 1110 1109 +f 1022 1023 1111 1110 +f 1023 1024 1112 1111 +f 1024 1025 1113 1112 +f 1025 1026 1114 1113 +f 1026 1027 1115 1114 +f 1027 1028 1116 1115 +f 1028 1029 1117 1116 +f 1029 1030 1118 1117 +f 1030 1031 1119 1118 +f 1031 1032 1120 1119 +f 1032 1033 1121 1120 +f 1033 1034 1122 1121 +f 1034 1035 1123 1122 +f 1035 1036 1124 1123 +f 1036 1037 1125 1124 +f 1037 1038 1126 1125 +f 1038 1039 1127 1126 +f 1039 1040 1128 1127 +f 1040 1041 1129 1128 +f 1041 1042 1130 1129 +f 1042 1043 1131 1130 +f 1043 1044 1132 1131 +f 1044 1045 1133 1132 +f 1045 1046 1134 1133 +f 1046 1047 1135 1134 +f 1047 1048 1136 1135 +f 1048 1049 1137 1136 +f 1049 1050 1138 1137 +f 1050 1051 1139 1138 +f 1051 1052 1140 1139 +f 1052 1053 1141 1140 +f 1053 1054 1142 1141 +f 1054 1055 1143 1142 +f 1055 1056 1144 1143 +f 1056 1057 1145 1144 +f 1057 1058 1146 1145 +f 1058 971 1059 1146 +f 1059 1060 1148 1147 +f 1060 1061 1149 1148 +f 1061 1062 1150 1149 +f 1062 1063 1151 1150 +f 1063 1064 1152 1151 +f 1064 1065 1153 1152 +f 1065 1066 1154 1153 +f 1066 1067 1155 1154 +f 1067 1068 1156 1155 +f 1068 1069 1157 1156 +f 1069 1070 1158 1157 +f 1070 1071 1159 1158 +f 1071 1072 1160 1159 +f 1072 1073 1161 1160 +f 1073 1074 1162 1161 +f 1074 1075 1163 1162 +f 1075 1076 1164 1163 +f 1076 1077 1165 1164 +f 1077 1078 1166 1165 +f 1078 1079 1167 1166 +f 1079 1080 1168 1167 +f 1080 1081 1169 1168 +f 1081 1082 1170 1169 +f 1082 1083 1171 1170 +f 1083 1084 1172 1171 +f 1084 1085 1173 1172 +f 1085 1086 1174 1173 +f 1086 1087 1175 1174 +f 1087 1088 1176 1175 +f 1088 1089 1177 1176 +f 1089 1090 1178 1177 +f 1090 1091 1179 1178 +f 1091 1092 1180 1179 +f 1092 1093 1181 1180 +f 1093 1094 1182 1181 +f 1094 1095 1183 1182 +f 1095 1096 1184 1183 +f 1096 1097 1185 1184 +f 1097 1098 1186 1185 +f 1098 1099 1187 1186 +f 1099 1100 1188 1187 +f 1100 1101 1189 1188 +f 1101 1102 1190 1189 +f 1102 1103 1191 1190 +f 1103 1104 1192 1191 +f 1104 1105 1193 1192 +f 1105 1106 1194 1193 +f 1106 1107 1195 1194 +f 1107 1108 1196 1195 +f 1108 1109 1197 1196 +f 1109 1110 1198 1197 +f 1110 1111 1199 1198 +f 1111 1112 1200 1199 +f 1112 1113 1201 1200 +f 1113 1114 1202 1201 +f 1114 1115 1203 1202 +f 1115 1116 1204 1203 +f 1116 1117 1205 1204 +f 1117 1118 1206 1205 +f 1118 1119 1207 1206 +f 1119 1120 1208 1207 +f 1120 1121 1209 1208 +f 1121 1122 1210 1209 +f 1122 1123 1211 1210 +f 1123 1124 1212 1211 +f 1124 1125 1213 1212 +f 1125 1126 1214 1213 +f 1126 1127 1215 1214 +f 1127 1128 1216 1215 +f 1128 1129 1217 1216 +f 1129 1130 1218 1217 +f 1130 1131 1219 1218 +f 1131 1132 1220 1219 +f 1132 1133 1221 1220 +f 1133 1134 1222 1221 +f 1134 1135 1223 1222 +f 1135 1136 1224 1223 +f 1136 1137 1225 1224 +f 1137 1138 1226 1225 +f 1138 1139 1227 1226 +f 1139 1140 1228 1227 +f 1140 1141 1229 1228 +f 1141 1142 1230 1229 +f 1142 1143 1231 1230 +f 1143 1144 1232 1231 +f 1144 1145 1233 1232 +f 1145 1146 1234 1233 +f 1146 1059 1147 1234 +f 1147 1148 1236 1235 +f 1148 1149 1237 1236 +f 1149 1150 1238 1237 +f 1150 1151 1239 1238 +f 1151 1152 1240 1239 +f 1152 1153 1241 1240 +f 1153 1154 1242 1241 +f 1154 1155 1243 1242 +f 1155 1156 1244 1243 +f 1156 1157 1245 1244 +f 1157 1158 1246 1245 +f 1158 1159 1247 1246 +f 1159 1160 1248 1247 +f 1160 1161 1249 1248 +f 1161 1162 1250 1249 +f 1162 1163 1251 1250 +f 1163 1164 1252 1251 +f 1164 1165 1253 1252 +f 1165 1166 1254 1253 +f 1166 1167 1255 1254 +f 1167 1168 1256 1255 +f 1168 1169 1257 1256 +f 1169 1170 1258 1257 +f 1170 1171 1259 1258 +f 1171 1172 1260 1259 +f 1172 1173 1261 1260 +f 1173 1174 1262 1261 +f 1174 1175 1263 1262 +f 1175 1176 1264 1263 +f 1176 1177 1265 1264 +f 1177 1178 1266 1265 +f 1178 1179 1267 1266 +f 1179 1180 1268 1267 +f 1180 1181 1269 1268 +f 1181 1182 1270 1269 +f 1182 1183 1271 1270 +f 1183 1184 1272 1271 +f 1184 1185 1273 1272 +f 1185 1186 1274 1273 +f 1186 1187 1275 1274 +f 1187 1188 1276 1275 +f 1188 1189 1277 1276 +f 1189 1190 1278 1277 +f 1190 1191 1279 1278 +f 1191 1192 1280 1279 +f 1192 1193 1281 1280 +f 1193 1194 1282 1281 +f 1194 1195 1283 1282 +f 1195 1196 1284 1283 +f 1196 1197 1285 1284 +f 1197 1198 1286 1285 +f 1198 1199 1287 1286 +f 1199 1200 1288 1287 +f 1200 1201 1289 1288 +f 1201 1202 1290 1289 +f 1202 1203 1291 1290 +f 1203 1204 1292 1291 +f 1204 1205 1293 1292 +f 1205 1206 1294 1293 +f 1206 1207 1295 1294 +f 1207 1208 1296 1295 +f 1208 1209 1297 1296 +f 1209 1210 1298 1297 +f 1210 1211 1299 1298 +f 1211 1212 1300 1299 +f 1212 1213 1301 1300 +f 1213 1214 1302 1301 +f 1214 1215 1303 1302 +f 1215 1216 1304 1303 +f 1216 1217 1305 1304 +f 1217 1218 1306 1305 +f 1218 1219 1307 1306 +f 1219 1220 1308 1307 +f 1220 1221 1309 1308 +f 1221 1222 1310 1309 +f 1222 1223 1311 1310 +f 1223 1224 1312 1311 +f 1224 1225 1313 1312 +f 1225 1226 1314 1313 +f 1226 1227 1315 1314 +f 1227 1228 1316 1315 +f 1228 1229 1317 1316 +f 1229 1230 1318 1317 +f 1230 1231 1319 1318 +f 1231 1232 1320 1319 +f 1232 1233 1321 1320 +f 1233 1234 1322 1321 +f 1234 1147 1235 1322 +f 1235 1236 1324 1323 +f 1236 1237 1325 1324 +f 1237 1238 1326 1325 +f 1238 1239 1327 1326 +f 1239 1240 1328 1327 +f 1240 1241 1329 1328 +f 1241 1242 1330 1329 +f 1242 1243 1331 1330 +f 1243 1244 1332 1331 +f 1244 1245 1333 1332 +f 1245 1246 1334 1333 +f 1246 1247 1335 1334 +f 1247 1248 1336 1335 +f 1248 1249 1337 1336 +f 1249 1250 1338 1337 +f 1250 1251 1339 1338 +f 1251 1252 1340 1339 +f 1252 1253 1341 1340 +f 1253 1254 1342 1341 +f 1254 1255 1343 1342 +f 1255 1256 1344 1343 +f 1256 1257 1345 1344 +f 1257 1258 1346 1345 +f 1258 1259 1347 1346 +f 1259 1260 1348 1347 +f 1260 1261 1349 1348 +f 1261 1262 1350 1349 +f 1262 1263 1351 1350 +f 1263 1264 1352 1351 +f 1264 1265 1353 1352 +f 1265 1266 1354 1353 +f 1266 1267 1355 1354 +f 1267 1268 1356 1355 +f 1268 1269 1357 1356 +f 1269 1270 1358 1357 +f 1270 1271 1359 1358 +f 1271 1272 1360 1359 +f 1272 1273 1361 1360 +f 1273 1274 1362 1361 +f 1274 1275 1363 1362 +f 1275 1276 1364 1363 +f 1276 1277 1365 1364 +f 1277 1278 1366 1365 +f 1278 1279 1367 1366 +f 1279 1280 1368 1367 +f 1280 1281 1369 1368 +f 1281 1282 1370 1369 +f 1282 1283 1371 1370 +f 1283 1284 1372 1371 +f 1284 1285 1373 1372 +f 1285 1286 1374 1373 +f 1286 1287 1375 1374 +f 1287 1288 1376 1375 +f 1288 1289 1377 1376 +f 1289 1290 1378 1377 +f 1290 1291 1379 1378 +f 1291 1292 1380 1379 +f 1292 1293 1381 1380 +f 1293 1294 1382 1381 +f 1294 1295 1383 1382 +f 1295 1296 1384 1383 +f 1296 1297 1385 1384 +f 1297 1298 1386 1385 +f 1298 1299 1387 1386 +f 1299 1300 1388 1387 +f 1300 1301 1389 1388 +f 1301 1302 1390 1389 +f 1302 1303 1391 1390 +f 1303 1304 1392 1391 +f 1304 1305 1393 1392 +f 1305 1306 1394 1393 +f 1306 1307 1395 1394 +f 1307 1308 1396 1395 +f 1308 1309 1397 1396 +f 1309 1310 1398 1397 +f 1310 1311 1399 1398 +f 1311 1312 1400 1399 +f 1312 1313 1401 1400 +f 1313 1314 1402 1401 +f 1314 1315 1403 1402 +f 1315 1316 1404 1403 +f 1316 1317 1405 1404 +f 1317 1318 1406 1405 +f 1318 1319 1407 1406 +f 1319 1320 1408 1407 +f 1320 1321 1409 1408 +f 1321 1322 1410 1409 +f 1322 1235 1323 1410 +f 1323 1324 1412 1411 +f 1324 1325 1413 1412 +f 1325 1326 1414 1413 +f 1326 1327 1415 1414 +f 1327 1328 1416 1415 +f 1328 1329 1417 1416 +f 1329 1330 1418 1417 +f 1330 1331 1419 1418 +f 1331 1332 1420 1419 +f 1332 1333 1421 1420 +f 1333 1334 1422 1421 +f 1334 1335 1423 1422 +f 1335 1336 1424 1423 +f 1336 1337 1425 1424 +f 1337 1338 1426 1425 +f 1338 1339 1427 1426 +f 1339 1340 1428 1427 +f 1340 1341 1429 1428 +f 1341 1342 1430 1429 +f 1342 1343 1431 1430 +f 1343 1344 1432 1431 +f 1344 1345 1433 1432 +f 1345 1346 1434 1433 +f 1346 1347 1435 1434 +f 1347 1348 1436 1435 +f 1348 1349 1437 1436 +f 1349 1350 1438 1437 +f 1350 1351 1439 1438 +f 1351 1352 1440 1439 +f 1352 1353 1441 1440 +f 1353 1354 1442 1441 +f 1354 1355 1443 1442 +f 1355 1356 1444 1443 +f 1356 1357 1445 1444 +f 1357 1358 1446 1445 +f 1358 1359 1447 1446 +f 1359 1360 1448 1447 +f 1360 1361 1449 1448 +f 1361 1362 1450 1449 +f 1362 1363 1451 1450 +f 1363 1364 1452 1451 +f 1364 1365 1453 1452 +f 1365 1366 1454 1453 +f 1366 1367 1455 1454 +f 1367 1368 1456 1455 +f 1368 1369 1457 1456 +f 1369 1370 1458 1457 +f 1370 1371 1459 1458 +f 1371 1372 1460 1459 +f 1372 1373 1461 1460 +f 1373 1374 1462 1461 +f 1374 1375 1463 1462 +f 1375 1376 1464 1463 +f 1376 1377 1465 1464 +f 1377 1378 1466 1465 +f 1378 1379 1467 1466 +f 1379 1380 1468 1467 +f 1380 1381 1469 1468 +f 1381 1382 1470 1469 +f 1382 1383 1471 1470 +f 1383 1384 1472 1471 +f 1384 1385 1473 1472 +f 1385 1386 1474 1473 +f 1386 1387 1475 1474 +f 1387 1388 1476 1475 +f 1388 1389 1477 1476 +f 1389 1390 1478 1477 +f 1390 1391 1479 1478 +f 1391 1392 1480 1479 +f 1392 1393 1481 1480 +f 1393 1394 1482 1481 +f 1394 1395 1483 1482 +f 1395 1396 1484 1483 +f 1396 1397 1485 1484 +f 1397 1398 1486 1485 +f 1398 1399 1487 1486 +f 1399 1400 1488 1487 +f 1400 1401 1489 1488 +f 1401 1402 1490 1489 +f 1402 1403 1491 1490 +f 1403 1404 1492 1491 +f 1404 1405 1493 1492 +f 1405 1406 1494 1493 +f 1406 1407 1495 1494 +f 1407 1408 1496 1495 +f 1408 1409 1497 1496 +f 1409 1410 1498 1497 +f 1410 1323 1411 1498 +f 1411 1412 1500 1499 +f 1412 1413 1501 1500 +f 1413 1414 1502 1501 +f 1414 1415 1503 1502 +f 1415 1416 1504 1503 +f 1416 1417 1505 1504 +f 1417 1418 1506 1505 +f 1418 1419 1507 1506 +f 1419 1420 1508 1507 +f 1420 1421 1509 1508 +f 1421 1422 1510 1509 +f 1422 1423 1511 1510 +f 1423 1424 1512 1511 +f 1424 1425 1513 1512 +f 1425 1426 1514 1513 +f 1426 1427 1515 1514 +f 1427 1428 1516 1515 +f 1428 1429 1517 1516 +f 1429 1430 1518 1517 +f 1430 1431 1519 1518 +f 1431 1432 1520 1519 +f 1432 1433 1521 1520 +f 1433 1434 1522 1521 +f 1434 1435 1523 1522 +f 1435 1436 1524 1523 +f 1436 1437 1525 1524 +f 1437 1438 1526 1525 +f 1438 1439 1527 1526 +f 1439 1440 1528 1527 +f 1440 1441 1529 1528 +f 1441 1442 1530 1529 +f 1442 1443 1531 1530 +f 1443 1444 1532 1531 +f 1444 1445 1533 1532 +f 1445 1446 1534 1533 +f 1446 1447 1535 1534 +f 1447 1448 1536 1535 +f 1448 1449 1537 1536 +f 1449 1450 1538 1537 +f 1450 1451 1539 1538 +f 1451 1452 1540 1539 +f 1452 1453 1541 1540 +f 1453 1454 1542 1541 +f 1454 1455 1543 1542 +f 1455 1456 1544 1543 +f 1456 1457 1545 1544 +f 1457 1458 1546 1545 +f 1458 1459 1547 1546 +f 1459 1460 1548 1547 +f 1460 1461 1549 1548 +f 1461 1462 1550 1549 +f 1462 1463 1551 1550 +f 1463 1464 1552 1551 +f 1464 1465 1553 1552 +f 1465 1466 1554 1553 +f 1466 1467 1555 1554 +f 1467 1468 1556 1555 +f 1468 1469 1557 1556 +f 1469 1470 1558 1557 +f 1470 1471 1559 1558 +f 1471 1472 1560 1559 +f 1472 1473 1561 1560 +f 1473 1474 1562 1561 +f 1474 1475 1563 1562 +f 1475 1476 1564 1563 +f 1476 1477 1565 1564 +f 1477 1478 1566 1565 +f 1478 1479 1567 1566 +f 1479 1480 1568 1567 +f 1480 1481 1569 1568 +f 1481 1482 1570 1569 +f 1482 1483 1571 1570 +f 1483 1484 1572 1571 +f 1484 1485 1573 1572 +f 1485 1486 1574 1573 +f 1486 1487 1575 1574 +f 1487 1488 1576 1575 +f 1488 1489 1577 1576 +f 1489 1490 1578 1577 +f 1490 1491 1579 1578 +f 1491 1492 1580 1579 +f 1492 1493 1581 1580 +f 1493 1494 1582 1581 +f 1494 1495 1583 1582 +f 1495 1496 1584 1583 +f 1496 1497 1585 1584 +f 1497 1498 1586 1585 +f 1498 1411 1499 1586 +f 1499 1500 1588 1587 +f 1500 1501 1589 1588 +f 1501 1502 1590 1589 +f 1502 1503 1591 1590 +f 1503 1504 1592 1591 +f 1504 1505 1593 1592 +f 1505 1506 1594 1593 +f 1506 1507 1595 1594 +f 1507 1508 1596 1595 +f 1508 1509 1597 1596 +f 1509 1510 1598 1597 +f 1510 1511 1599 1598 +f 1511 1512 1600 1599 +f 1512 1513 1601 1600 +f 1513 1514 1602 1601 +f 1514 1515 1603 1602 +f 1515 1516 1604 1603 +f 1516 1517 1605 1604 +f 1517 1518 1606 1605 +f 1518 1519 1607 1606 +f 1519 1520 1608 1607 +f 1520 1521 1609 1608 +f 1521 1522 1610 1609 +f 1522 1523 1611 1610 +f 1523 1524 1612 1611 +f 1524 1525 1613 1612 +f 1525 1526 1614 1613 +f 1526 1527 1615 1614 +f 1527 1528 1616 1615 +f 1528 1529 1617 1616 +f 1529 1530 1618 1617 +f 1530 1531 1619 1618 +f 1531 1532 1620 1619 +f 1532 1533 1621 1620 +f 1533 1534 1622 1621 +f 1534 1535 1623 1622 +f 1535 1536 1624 1623 +f 1536 1537 1625 1624 +f 1537 1538 1626 1625 +f 1538 1539 1627 1626 +f 1539 1540 1628 1627 +f 1540 1541 1629 1628 +f 1541 1542 1630 1629 +f 1542 1543 1631 1630 +f 1543 1544 1632 1631 +f 1544 1545 1633 1632 +f 1545 1546 1634 1633 +f 1546 1547 1635 1634 +f 1547 1548 1636 1635 +f 1548 1549 1637 1636 +f 1549 1550 1638 1637 +f 1550 1551 1639 1638 +f 1551 1552 1640 1639 +f 1552 1553 1641 1640 +f 1553 1554 1642 1641 +f 1554 1555 1643 1642 +f 1555 1556 1644 1643 +f 1556 1557 1645 1644 +f 1557 1558 1646 1645 +f 1558 1559 1647 1646 +f 1559 1560 1648 1647 +f 1560 1561 1649 1648 +f 1561 1562 1650 1649 +f 1562 1563 1651 1650 +f 1563 1564 1652 1651 +f 1564 1565 1653 1652 +f 1565 1566 1654 1653 +f 1566 1567 1655 1654 +f 1567 1568 1656 1655 +f 1568 1569 1657 1656 +f 1569 1570 1658 1657 +f 1570 1571 1659 1658 +f 1571 1572 1660 1659 +f 1572 1573 1661 1660 +f 1573 1574 1662 1661 +f 1574 1575 1663 1662 +f 1575 1576 1664 1663 +f 1576 1577 1665 1664 +f 1577 1578 1666 1665 +f 1578 1579 1667 1666 +f 1579 1580 1668 1667 +f 1580 1581 1669 1668 +f 1581 1582 1670 1669 +f 1582 1583 1671 1670 +f 1583 1584 1672 1671 +f 1584 1585 1673 1672 +f 1585 1586 1674 1673 +f 1586 1499 1587 1674 +f 1587 1588 1676 1675 +f 1588 1589 1677 1676 +f 1589 1590 1678 1677 +f 1590 1591 1679 1678 +f 1591 1592 1680 1679 +f 1592 1593 1681 1680 +f 1593 1594 1682 1681 +f 1594 1595 1683 1682 +f 1595 1596 1684 1683 +f 1596 1597 1685 1684 +f 1597 1598 1686 1685 +f 1598 1599 1687 1686 +f 1599 1600 1688 1687 +f 1600 1601 1689 1688 +f 1601 1602 1690 1689 +f 1602 1603 1691 1690 +f 1603 1604 1692 1691 +f 1604 1605 1693 1692 +f 1605 1606 1694 1693 +f 1606 1607 1695 1694 +f 1607 1608 1696 1695 +f 1608 1609 1697 1696 +f 1609 1610 1698 1697 +f 1610 1611 1699 1698 +f 1611 1612 1700 1699 +f 1612 1613 1701 1700 +f 1613 1614 1702 1701 +f 1614 1615 1703 1702 +f 1615 1616 1704 1703 +f 1616 1617 1705 1704 +f 1617 1618 1706 1705 +f 1618 1619 1707 1706 +f 1619 1620 1708 1707 +f 1620 1621 1709 1708 +f 1621 1622 1710 1709 +f 1622 1623 1711 1710 +f 1623 1624 1712 1711 +f 1624 1625 1713 1712 +f 1625 1626 1714 1713 +f 1626 1627 1715 1714 +f 1627 1628 1716 1715 +f 1628 1629 1717 1716 +f 1629 1630 1718 1717 +f 1630 1631 1719 1718 +f 1631 1632 1720 1719 +f 1632 1633 1721 1720 +f 1633 1634 1722 1721 +f 1634 1635 1723 1722 +f 1635 1636 1724 1723 +f 1636 1637 1725 1724 +f 1637 1638 1726 1725 +f 1638 1639 1727 1726 +f 1639 1640 1728 1727 +f 1640 1641 1729 1728 +f 1641 1642 1730 1729 +f 1642 1643 1731 1730 +f 1643 1644 1732 1731 +f 1644 1645 1733 1732 +f 1645 1646 1734 1733 +f 1646 1647 1735 1734 +f 1647 1648 1736 1735 +f 1648 1649 1737 1736 +f 1649 1650 1738 1737 +f 1650 1651 1739 1738 +f 1651 1652 1740 1739 +f 1652 1653 1741 1740 +f 1653 1654 1742 1741 +f 1654 1655 1743 1742 +f 1655 1656 1744 1743 +f 1656 1657 1745 1744 +f 1657 1658 1746 1745 +f 1658 1659 1747 1746 +f 1659 1660 1748 1747 +f 1660 1661 1749 1748 +f 1661 1662 1750 1749 +f 1662 1663 1751 1750 +f 1663 1664 1752 1751 +f 1664 1665 1753 1752 +f 1665 1666 1754 1753 +f 1666 1667 1755 1754 +f 1667 1668 1756 1755 +f 1668 1669 1757 1756 +f 1669 1670 1758 1757 +f 1670 1671 1759 1758 +f 1671 1672 1760 1759 +f 1672 1673 1761 1760 +f 1673 1674 1762 1761 +f 1674 1587 1675 1762 +f 1675 1676 1764 1763 +f 1676 1677 1765 1764 +f 1677 1678 1766 1765 +f 1678 1679 1767 1766 +f 1679 1680 1768 1767 +f 1680 1681 1769 1768 +f 1681 1682 1770 1769 +f 1682 1683 1771 1770 +f 1683 1684 1772 1771 +f 1684 1685 1773 1772 +f 1685 1686 1774 1773 +f 1686 1687 1775 1774 +f 1687 1688 1776 1775 +f 1688 1689 1777 1776 +f 1689 1690 1778 1777 +f 1690 1691 1779 1778 +f 1691 1692 1780 1779 +f 1692 1693 1781 1780 +f 1693 1694 1782 1781 +f 1694 1695 1783 1782 +f 1695 1696 1784 1783 +f 1696 1697 1785 1784 +f 1697 1698 1786 1785 +f 1698 1699 1787 1786 +f 1699 1700 1788 1787 +f 1700 1701 1789 1788 +f 1701 1702 1790 1789 +f 1702 1703 1791 1790 +f 1703 1704 1792 1791 +f 1704 1705 1793 1792 +f 1705 1706 1794 1793 +f 1706 1707 1795 1794 +f 1707 1708 1796 1795 +f 1708 1709 1797 1796 +f 1709 1710 1798 1797 +f 1710 1711 1799 1798 +f 1711 1712 1800 1799 +f 1712 1713 1801 1800 +f 1713 1714 1802 1801 +f 1714 1715 1803 1802 +f 1715 1716 1804 1803 +f 1716 1717 1805 1804 +f 1717 1718 1806 1805 +f 1718 1719 1807 1806 +f 1719 1720 1808 1807 +f 1720 1721 1809 1808 +f 1721 1722 1810 1809 +f 1722 1723 1811 1810 +f 1723 1724 1812 1811 +f 1724 1725 1813 1812 +f 1725 1726 1814 1813 +f 1726 1727 1815 1814 +f 1727 1728 1816 1815 +f 1728 1729 1817 1816 +f 1729 1730 1818 1817 +f 1730 1731 1819 1818 +f 1731 1732 1820 1819 +f 1732 1733 1821 1820 +f 1733 1734 1822 1821 +f 1734 1735 1823 1822 +f 1735 1736 1824 1823 +f 1736 1737 1825 1824 +f 1737 1738 1826 1825 +f 1738 1739 1827 1826 +f 1739 1740 1828 1827 +f 1740 1741 1829 1828 +f 1741 1742 1830 1829 +f 1742 1743 1831 1830 +f 1743 1744 1832 1831 +f 1744 1745 1833 1832 +f 1745 1746 1834 1833 +f 1746 1747 1835 1834 +f 1747 1748 1836 1835 +f 1748 1749 1837 1836 +f 1749 1750 1838 1837 +f 1750 1751 1839 1838 +f 1751 1752 1840 1839 +f 1752 1753 1841 1840 +f 1753 1754 1842 1841 +f 1754 1755 1843 1842 +f 1755 1756 1844 1843 +f 1756 1757 1845 1844 +f 1757 1758 1846 1845 +f 1758 1759 1847 1846 +f 1759 1760 1848 1847 +f 1760 1761 1849 1848 +f 1761 1762 1850 1849 +f 1762 1675 1763 1850 +f 1763 1764 1852 1851 +f 1764 1765 1853 1852 +f 1765 1766 1854 1853 +f 1766 1767 1855 1854 +f 1767 1768 1856 1855 +f 1768 1769 1857 1856 +f 1769 1770 1858 1857 +f 1770 1771 1859 1858 +f 1771 1772 1860 1859 +f 1772 1773 1861 1860 +f 1773 1774 1862 1861 +f 1774 1775 1863 1862 +f 1775 1776 1864 1863 +f 1776 1777 1865 1864 +f 1777 1778 1866 1865 +f 1778 1779 1867 1866 +f 1779 1780 1868 1867 +f 1780 1781 1869 1868 +f 1781 1782 1870 1869 +f 1782 1783 1871 1870 +f 1783 1784 1872 1871 +f 1784 1785 1873 1872 +f 1785 1786 1874 1873 +f 1786 1787 1875 1874 +f 1787 1788 1876 1875 +f 1788 1789 1877 1876 +f 1789 1790 1878 1877 +f 1790 1791 1879 1878 +f 1791 1792 1880 1879 +f 1792 1793 1881 1880 +f 1793 1794 1882 1881 +f 1794 1795 1883 1882 +f 1795 1796 1884 1883 +f 1796 1797 1885 1884 +f 1797 1798 1886 1885 +f 1798 1799 1887 1886 +f 1799 1800 1888 1887 +f 1800 1801 1889 1888 +f 1801 1802 1890 1889 +f 1802 1803 1891 1890 +f 1803 1804 1892 1891 +f 1804 1805 1893 1892 +f 1805 1806 1894 1893 +f 1806 1807 1895 1894 +f 1807 1808 1896 1895 +f 1808 1809 1897 1896 +f 1809 1810 1898 1897 +f 1810 1811 1899 1898 +f 1811 1812 1900 1899 +f 1812 1813 1901 1900 +f 1813 1814 1902 1901 +f 1814 1815 1903 1902 +f 1815 1816 1904 1903 +f 1816 1817 1905 1904 +f 1817 1818 1906 1905 +f 1818 1819 1907 1906 +f 1819 1820 1908 1907 +f 1820 1821 1909 1908 +f 1821 1822 1910 1909 +f 1822 1823 1911 1910 +f 1823 1824 1912 1911 +f 1824 1825 1913 1912 +f 1825 1826 1914 1913 +f 1826 1827 1915 1914 +f 1827 1828 1916 1915 +f 1828 1829 1917 1916 +f 1829 1830 1918 1917 +f 1830 1831 1919 1918 +f 1831 1832 1920 1919 +f 1832 1833 1921 1920 +f 1833 1834 1922 1921 +f 1834 1835 1923 1922 +f 1835 1836 1924 1923 +f 1836 1837 1925 1924 +f 1837 1838 1926 1925 +f 1838 1839 1927 1926 +f 1839 1840 1928 1927 +f 1840 1841 1929 1928 +f 1841 1842 1930 1929 +f 1842 1843 1931 1930 +f 1843 1844 1932 1931 +f 1844 1845 1933 1932 +f 1845 1846 1934 1933 +f 1846 1847 1935 1934 +f 1847 1848 1936 1935 +f 1848 1849 1937 1936 +f 1849 1850 1938 1937 +f 1850 1763 1851 1938 +f 1851 1852 1940 1939 +f 1852 1853 1941 1940 +f 1853 1854 1942 1941 +f 1854 1855 1943 1942 +f 1855 1856 1944 1943 +f 1856 1857 1945 1944 +f 1857 1858 1946 1945 +f 1858 1859 1947 1946 +f 1859 1860 1948 1947 +f 1860 1861 1949 1948 +f 1861 1862 1950 1949 +f 1862 1863 1951 1950 +f 1863 1864 1952 1951 +f 1864 1865 1953 1952 +f 1865 1866 1954 1953 +f 1866 1867 1955 1954 +f 1867 1868 1956 1955 +f 1868 1869 1957 1956 +f 1869 1870 1958 1957 +f 1870 1871 1959 1958 +f 1871 1872 1960 1959 +f 1872 1873 1961 1960 +f 1873 1874 1962 1961 +f 1874 1875 1963 1962 +f 1875 1876 1964 1963 +f 1876 1877 1965 1964 +f 1877 1878 1966 1965 +f 1878 1879 1967 1966 +f 1879 1880 1968 1967 +f 1880 1881 1969 1968 +f 1881 1882 1970 1969 +f 1882 1883 1971 1970 +f 1883 1884 1972 1971 +f 1884 1885 1973 1972 +f 1885 1886 1974 1973 +f 1886 1887 1975 1974 +f 1887 1888 1976 1975 +f 1888 1889 1977 1976 +f 1889 1890 1978 1977 +f 1890 1891 1979 1978 +f 1891 1892 1980 1979 +f 1892 1893 1981 1980 +f 1893 1894 1982 1981 +f 1894 1895 1983 1982 +f 1895 1896 1984 1983 +f 1896 1897 1985 1984 +f 1897 1898 1986 1985 +f 1898 1899 1987 1986 +f 1899 1900 1988 1987 +f 1900 1901 1989 1988 +f 1901 1902 1990 1989 +f 1902 1903 1991 1990 +f 1903 1904 1992 1991 +f 1904 1905 1993 1992 +f 1905 1906 1994 1993 +f 1906 1907 1995 1994 +f 1907 1908 1996 1995 +f 1908 1909 1997 1996 +f 1909 1910 1998 1997 +f 1910 1911 1999 1998 +f 1911 1912 2000 1999 +f 1912 1913 2001 2000 +f 1913 1914 2002 2001 +f 1914 1915 2003 2002 +f 1915 1916 2004 2003 +f 1916 1917 2005 2004 +f 1917 1918 2006 2005 +f 1918 1919 2007 2006 +f 1919 1920 2008 2007 +f 1920 1921 2009 2008 +f 1921 1922 2010 2009 +f 1922 1923 2011 2010 +f 1923 1924 2012 2011 +f 1924 1925 2013 2012 +f 1925 1926 2014 2013 +f 1926 1927 2015 2014 +f 1927 1928 2016 2015 +f 1928 1929 2017 2016 +f 1929 1930 2018 2017 +f 1930 1931 2019 2018 +f 1931 1932 2020 2019 +f 1932 1933 2021 2020 +f 1933 1934 2022 2021 +f 1934 1935 2023 2022 +f 1935 1936 2024 2023 +f 1936 1937 2025 2024 +f 1937 1938 2026 2025 +f 1938 1851 1939 2026 +f 1939 1940 2028 2027 +f 1940 1941 2029 2028 +f 1941 1942 2030 2029 +f 1942 1943 2031 2030 +f 1943 1944 2032 2031 +f 1944 1945 2033 2032 +f 1945 1946 2034 2033 +f 1946 1947 2035 2034 +f 1947 1948 2036 2035 +f 1948 1949 2037 2036 +f 1949 1950 2038 2037 +f 1950 1951 2039 2038 +f 1951 1952 2040 2039 +f 1952 1953 2041 2040 +f 1953 1954 2042 2041 +f 1954 1955 2043 2042 +f 1955 1956 2044 2043 +f 1956 1957 2045 2044 +f 1957 1958 2046 2045 +f 1958 1959 2047 2046 +f 1959 1960 2048 2047 +f 1960 1961 2049 2048 +f 1961 1962 2050 2049 +f 1962 1963 2051 2050 +f 1963 1964 2052 2051 +f 1964 1965 2053 2052 +f 1965 1966 2054 2053 +f 1966 1967 2055 2054 +f 1967 1968 2056 2055 +f 1968 1969 2057 2056 +f 1969 1970 2058 2057 +f 1970 1971 2059 2058 +f 1971 1972 2060 2059 +f 1972 1973 2061 2060 +f 1973 1974 2062 2061 +f 1974 1975 2063 2062 +f 1975 1976 2064 2063 +f 1976 1977 2065 2064 +f 1977 1978 2066 2065 +f 1978 1979 2067 2066 +f 1979 1980 2068 2067 +f 1980 1981 2069 2068 +f 1981 1982 2070 2069 +f 1982 1983 2071 2070 +f 1983 1984 2072 2071 +f 1984 1985 2073 2072 +f 1985 1986 2074 2073 +f 1986 1987 2075 2074 +f 1987 1988 2076 2075 +f 1988 1989 2077 2076 +f 1989 1990 2078 2077 +f 1990 1991 2079 2078 +f 1991 1992 2080 2079 +f 1992 1993 2081 2080 +f 1993 1994 2082 2081 +f 1994 1995 2083 2082 +f 1995 1996 2084 2083 +f 1996 1997 2085 2084 +f 1997 1998 2086 2085 +f 1998 1999 2087 2086 +f 1999 2000 2088 2087 +f 2000 2001 2089 2088 +f 2001 2002 2090 2089 +f 2002 2003 2091 2090 +f 2003 2004 2092 2091 +f 2004 2005 2093 2092 +f 2005 2006 2094 2093 +f 2006 2007 2095 2094 +f 2007 2008 2096 2095 +f 2008 2009 2097 2096 +f 2009 2010 2098 2097 +f 2010 2011 2099 2098 +f 2011 2012 2100 2099 +f 2012 2013 2101 2100 +f 2013 2014 2102 2101 +f 2014 2015 2103 2102 +f 2015 2016 2104 2103 +f 2016 2017 2105 2104 +f 2017 2018 2106 2105 +f 2018 2019 2107 2106 +f 2019 2020 2108 2107 +f 2020 2021 2109 2108 +f 2021 2022 2110 2109 +f 2022 2023 2111 2110 +f 2023 2024 2112 2111 +f 2024 2025 2113 2112 +f 2025 2026 2114 2113 +f 2026 1939 2027 2114 +f 2027 2028 2116 2115 +f 2028 2029 2117 2116 +f 2029 2030 2118 2117 +f 2030 2031 2119 2118 +f 2031 2032 2120 2119 +f 2032 2033 2121 2120 +f 2033 2034 2122 2121 +f 2034 2035 2123 2122 +f 2035 2036 2124 2123 +f 2036 2037 2125 2124 +f 2037 2038 2126 2125 +f 2038 2039 2127 2126 +f 2039 2040 2128 2127 +f 2040 2041 2129 2128 +f 2041 2042 2130 2129 +f 2042 2043 2131 2130 +f 2043 2044 2132 2131 +f 2044 2045 2133 2132 +f 2045 2046 2134 2133 +f 2046 2047 2135 2134 +f 2047 2048 2136 2135 +f 2048 2049 2137 2136 +f 2049 2050 2138 2137 +f 2050 2051 2139 2138 +f 2051 2052 2140 2139 +f 2052 2053 2141 2140 +f 2053 2054 2142 2141 +f 2054 2055 2143 2142 +f 2055 2056 2144 2143 +f 2056 2057 2145 2144 +f 2057 2058 2146 2145 +f 2058 2059 2147 2146 +f 2059 2060 2148 2147 +f 2060 2061 2149 2148 +f 2061 2062 2150 2149 +f 2062 2063 2151 2150 +f 2063 2064 2152 2151 +f 2064 2065 2153 2152 +f 2065 2066 2154 2153 +f 2066 2067 2155 2154 +f 2067 2068 2156 2155 +f 2068 2069 2157 2156 +f 2069 2070 2158 2157 +f 2070 2071 2159 2158 +f 2071 2072 2160 2159 +f 2072 2073 2161 2160 +f 2073 2074 2162 2161 +f 2074 2075 2163 2162 +f 2075 2076 2164 2163 +f 2076 2077 2165 2164 +f 2077 2078 2166 2165 +f 2078 2079 2167 2166 +f 2079 2080 2168 2167 +f 2080 2081 2169 2168 +f 2081 2082 2170 2169 +f 2082 2083 2171 2170 +f 2083 2084 2172 2171 +f 2084 2085 2173 2172 +f 2085 2086 2174 2173 +f 2086 2087 2175 2174 +f 2087 2088 2176 2175 +f 2088 2089 2177 2176 +f 2089 2090 2178 2177 +f 2090 2091 2179 2178 +f 2091 2092 2180 2179 +f 2092 2093 2181 2180 +f 2093 2094 2182 2181 +f 2094 2095 2183 2182 +f 2095 2096 2184 2183 +f 2096 2097 2185 2184 +f 2097 2098 2186 2185 +f 2098 2099 2187 2186 +f 2099 2100 2188 2187 +f 2100 2101 2189 2188 +f 2101 2102 2190 2189 +f 2102 2103 2191 2190 +f 2103 2104 2192 2191 +f 2104 2105 2193 2192 +f 2105 2106 2194 2193 +f 2106 2107 2195 2194 +f 2107 2108 2196 2195 +f 2108 2109 2197 2196 +f 2109 2110 2198 2197 +f 2110 2111 2199 2198 +f 2111 2112 2200 2199 +f 2112 2113 2201 2200 +f 2113 2114 2202 2201 +f 2114 2027 2115 2202 +f 2115 2116 2204 2203 +f 2116 2117 2205 2204 +f 2117 2118 2206 2205 +f 2118 2119 2207 2206 +f 2119 2120 2208 2207 +f 2120 2121 2209 2208 +f 2121 2122 2210 2209 +f 2122 2123 2211 2210 +f 2123 2124 2212 2211 +f 2124 2125 2213 2212 +f 2125 2126 2214 2213 +f 2126 2127 2215 2214 +f 2127 2128 2216 2215 +f 2128 2129 2217 2216 +f 2129 2130 2218 2217 +f 2130 2131 2219 2218 +f 2131 2132 2220 2219 +f 2132 2133 2221 2220 +f 2133 2134 2222 2221 +f 2134 2135 2223 2222 +f 2135 2136 2224 2223 +f 2136 2137 2225 2224 +f 2137 2138 2226 2225 +f 2138 2139 2227 2226 +f 2139 2140 2228 2227 +f 2140 2141 2229 2228 +f 2141 2142 2230 2229 +f 2142 2143 2231 2230 +f 2143 2144 2232 2231 +f 2144 2145 2233 2232 +f 2145 2146 2234 2233 +f 2146 2147 2235 2234 +f 2147 2148 2236 2235 +f 2148 2149 2237 2236 +f 2149 2150 2238 2237 +f 2150 2151 2239 2238 +f 2151 2152 2240 2239 +f 2152 2153 2241 2240 +f 2153 2154 2242 2241 +f 2154 2155 2243 2242 +f 2155 2156 2244 2243 +f 2156 2157 2245 2244 +f 2157 2158 2246 2245 +f 2158 2159 2247 2246 +f 2159 2160 2248 2247 +f 2160 2161 2249 2248 +f 2161 2162 2250 2249 +f 2162 2163 2251 2250 +f 2163 2164 2252 2251 +f 2164 2165 2253 2252 +f 2165 2166 2254 2253 +f 2166 2167 2255 2254 +f 2167 2168 2256 2255 +f 2168 2169 2257 2256 +f 2169 2170 2258 2257 +f 2170 2171 2259 2258 +f 2171 2172 2260 2259 +f 2172 2173 2261 2260 +f 2173 2174 2262 2261 +f 2174 2175 2263 2262 +f 2175 2176 2264 2263 +f 2176 2177 2265 2264 +f 2177 2178 2266 2265 +f 2178 2179 2267 2266 +f 2179 2180 2268 2267 +f 2180 2181 2269 2268 +f 2181 2182 2270 2269 +f 2182 2183 2271 2270 +f 2183 2184 2272 2271 +f 2184 2185 2273 2272 +f 2185 2186 2274 2273 +f 2186 2187 2275 2274 +f 2187 2188 2276 2275 +f 2188 2189 2277 2276 +f 2189 2190 2278 2277 +f 2190 2191 2279 2278 +f 2191 2192 2280 2279 +f 2192 2193 2281 2280 +f 2193 2194 2282 2281 +f 2194 2195 2283 2282 +f 2195 2196 2284 2283 +f 2196 2197 2285 2284 +f 2197 2198 2286 2285 +f 2198 2199 2287 2286 +f 2199 2200 2288 2287 +f 2200 2201 2289 2288 +f 2201 2202 2290 2289 +f 2202 2115 2203 2290 +f 2203 2204 2292 2291 +f 2204 2205 2293 2292 +f 2205 2206 2294 2293 +f 2206 2207 2295 2294 +f 2207 2208 2296 2295 +f 2208 2209 2297 2296 +f 2209 2210 2298 2297 +f 2210 2211 2299 2298 +f 2211 2212 2300 2299 +f 2212 2213 2301 2300 +f 2213 2214 2302 2301 +f 2214 2215 2303 2302 +f 2215 2216 2304 2303 +f 2216 2217 2305 2304 +f 2217 2218 2306 2305 +f 2218 2219 2307 2306 +f 2219 2220 2308 2307 +f 2220 2221 2309 2308 +f 2221 2222 2310 2309 +f 2222 2223 2311 2310 +f 2223 2224 2312 2311 +f 2224 2225 2313 2312 +f 2225 2226 2314 2313 +f 2226 2227 2315 2314 +f 2227 2228 2316 2315 +f 2228 2229 2317 2316 +f 2229 2230 2318 2317 +f 2230 2231 2319 2318 +f 2231 2232 2320 2319 +f 2232 2233 2321 2320 +f 2233 2234 2322 2321 +f 2234 2235 2323 2322 +f 2235 2236 2324 2323 +f 2236 2237 2325 2324 +f 2237 2238 2326 2325 +f 2238 2239 2327 2326 +f 2239 2240 2328 2327 +f 2240 2241 2329 2328 +f 2241 2242 2330 2329 +f 2242 2243 2331 2330 +f 2243 2244 2332 2331 +f 2244 2245 2333 2332 +f 2245 2246 2334 2333 +f 2246 2247 2335 2334 +f 2247 2248 2336 2335 +f 2248 2249 2337 2336 +f 2249 2250 2338 2337 +f 2250 2251 2339 2338 +f 2251 2252 2340 2339 +f 2252 2253 2341 2340 +f 2253 2254 2342 2341 +f 2254 2255 2343 2342 +f 2255 2256 2344 2343 +f 2256 2257 2345 2344 +f 2257 2258 2346 2345 +f 2258 2259 2347 2346 +f 2259 2260 2348 2347 +f 2260 2261 2349 2348 +f 2261 2262 2350 2349 +f 2262 2263 2351 2350 +f 2263 2264 2352 2351 +f 2264 2265 2353 2352 +f 2265 2266 2354 2353 +f 2266 2267 2355 2354 +f 2267 2268 2356 2355 +f 2268 2269 2357 2356 +f 2269 2270 2358 2357 +f 2270 2271 2359 2358 +f 2271 2272 2360 2359 +f 2272 2273 2361 2360 +f 2273 2274 2362 2361 +f 2274 2275 2363 2362 +f 2275 2276 2364 2363 +f 2276 2277 2365 2364 +f 2277 2278 2366 2365 +f 2278 2279 2367 2366 +f 2279 2280 2368 2367 +f 2280 2281 2369 2368 +f 2281 2282 2370 2369 +f 2282 2283 2371 2370 +f 2283 2284 2372 2371 +f 2284 2285 2373 2372 +f 2285 2286 2374 2373 +f 2286 2287 2375 2374 +f 2287 2288 2376 2375 +f 2288 2289 2377 2376 +f 2289 2290 2378 2377 +f 2290 2203 2291 2378 +f 2291 2292 2380 2379 +f 2292 2293 2381 2380 +f 2293 2294 2382 2381 +f 2294 2295 2383 2382 +f 2295 2296 2384 2383 +f 2296 2297 2385 2384 +f 2297 2298 2386 2385 +f 2298 2299 2387 2386 +f 2299 2300 2388 2387 +f 2300 2301 2389 2388 +f 2301 2302 2390 2389 +f 2302 2303 2391 2390 +f 2303 2304 2392 2391 +f 2304 2305 2393 2392 +f 2305 2306 2394 2393 +f 2306 2307 2395 2394 +f 2307 2308 2396 2395 +f 2308 2309 2397 2396 +f 2309 2310 2398 2397 +f 2310 2311 2399 2398 +f 2311 2312 2400 2399 +f 2312 2313 2401 2400 +f 2313 2314 2402 2401 +f 2314 2315 2403 2402 +f 2315 2316 2404 2403 +f 2316 2317 2405 2404 +f 2317 2318 2406 2405 +f 2318 2319 2407 2406 +f 2319 2320 2408 2407 +f 2320 2321 2409 2408 +f 2321 2322 2410 2409 +f 2322 2323 2411 2410 +f 2323 2324 2412 2411 +f 2324 2325 2413 2412 +f 2325 2326 2414 2413 +f 2326 2327 2415 2414 +f 2327 2328 2416 2415 +f 2328 2329 2417 2416 +f 2329 2330 2418 2417 +f 2330 2331 2419 2418 +f 2331 2332 2420 2419 +f 2332 2333 2421 2420 +f 2333 2334 2422 2421 +f 2334 2335 2423 2422 +f 2335 2336 2424 2423 +f 2336 2337 2425 2424 +f 2337 2338 2426 2425 +f 2338 2339 2427 2426 +f 2339 2340 2428 2427 +f 2340 2341 2429 2428 +f 2341 2342 2430 2429 +f 2342 2343 2431 2430 +f 2343 2344 2432 2431 +f 2344 2345 2433 2432 +f 2345 2346 2434 2433 +f 2346 2347 2435 2434 +f 2347 2348 2436 2435 +f 2348 2349 2437 2436 +f 2349 2350 2438 2437 +f 2350 2351 2439 2438 +f 2351 2352 2440 2439 +f 2352 2353 2441 2440 +f 2353 2354 2442 2441 +f 2354 2355 2443 2442 +f 2355 2356 2444 2443 +f 2356 2357 2445 2444 +f 2357 2358 2446 2445 +f 2358 2359 2447 2446 +f 2359 2360 2448 2447 +f 2360 2361 2449 2448 +f 2361 2362 2450 2449 +f 2362 2363 2451 2450 +f 2363 2364 2452 2451 +f 2364 2365 2453 2452 +f 2365 2366 2454 2453 +f 2366 2367 2455 2454 +f 2367 2368 2456 2455 +f 2368 2369 2457 2456 +f 2369 2370 2458 2457 +f 2370 2371 2459 2458 +f 2371 2372 2460 2459 +f 2372 2373 2461 2460 +f 2373 2374 2462 2461 +f 2374 2375 2463 2462 +f 2375 2376 2464 2463 +f 2376 2377 2465 2464 +f 2377 2378 2466 2465 +f 2378 2291 2379 2466 +f 2379 2380 2468 2467 +f 2380 2381 2469 2468 +f 2381 2382 2470 2469 +f 2382 2383 2471 2470 +f 2383 2384 2472 2471 +f 2384 2385 2473 2472 +f 2385 2386 2474 2473 +f 2386 2387 2475 2474 +f 2387 2388 2476 2475 +f 2388 2389 2477 2476 +f 2389 2390 2478 2477 +f 2390 2391 2479 2478 +f 2391 2392 2480 2479 +f 2392 2393 2481 2480 +f 2393 2394 2482 2481 +f 2394 2395 2483 2482 +f 2395 2396 2484 2483 +f 2396 2397 2485 2484 +f 2397 2398 2486 2485 +f 2398 2399 2487 2486 +f 2399 2400 2488 2487 +f 2400 2401 2489 2488 +f 2401 2402 2490 2489 +f 2402 2403 2491 2490 +f 2403 2404 2492 2491 +f 2404 2405 2493 2492 +f 2405 2406 2494 2493 +f 2406 2407 2495 2494 +f 2407 2408 2496 2495 +f 2408 2409 2497 2496 +f 2409 2410 2498 2497 +f 2410 2411 2499 2498 +f 2411 2412 2500 2499 +f 2412 2413 2501 2500 +f 2413 2414 2502 2501 +f 2414 2415 2503 2502 +f 2415 2416 2504 2503 +f 2416 2417 2505 2504 +f 2417 2418 2506 2505 +f 2418 2419 2507 2506 +f 2419 2420 2508 2507 +f 2420 2421 2509 2508 +f 2421 2422 2510 2509 +f 2422 2423 2511 2510 +f 2423 2424 2512 2511 +f 2424 2425 2513 2512 +f 2425 2426 2514 2513 +f 2426 2427 2515 2514 +f 2427 2428 2516 2515 +f 2428 2429 2517 2516 +f 2429 2430 2518 2517 +f 2430 2431 2519 2518 +f 2431 2432 2520 2519 +f 2432 2433 2521 2520 +f 2433 2434 2522 2521 +f 2434 2435 2523 2522 +f 2435 2436 2524 2523 +f 2436 2437 2525 2524 +f 2437 2438 2526 2525 +f 2438 2439 2527 2526 +f 2439 2440 2528 2527 +f 2440 2441 2529 2528 +f 2441 2442 2530 2529 +f 2442 2443 2531 2530 +f 2443 2444 2532 2531 +f 2444 2445 2533 2532 +f 2445 2446 2534 2533 +f 2446 2447 2535 2534 +f 2447 2448 2536 2535 +f 2448 2449 2537 2536 +f 2449 2450 2538 2537 +f 2450 2451 2539 2538 +f 2451 2452 2540 2539 +f 2452 2453 2541 2540 +f 2453 2454 2542 2541 +f 2454 2455 2543 2542 +f 2455 2456 2544 2543 +f 2456 2457 2545 2544 +f 2457 2458 2546 2545 +f 2458 2459 2547 2546 +f 2459 2460 2548 2547 +f 2460 2461 2549 2548 +f 2461 2462 2550 2549 +f 2462 2463 2551 2550 +f 2463 2464 2552 2551 +f 2464 2465 2553 2552 +f 2465 2466 2554 2553 +f 2466 2379 2467 2554 +f 2467 2468 2556 2555 +f 2468 2469 2557 2556 +f 2469 2470 2558 2557 +f 2470 2471 2559 2558 +f 2471 2472 2560 2559 +f 2472 2473 2561 2560 +f 2473 2474 2562 2561 +f 2474 2475 2563 2562 +f 2475 2476 2564 2563 +f 2476 2477 2565 2564 +f 2477 2478 2566 2565 +f 2478 2479 2567 2566 +f 2479 2480 2568 2567 +f 2480 2481 2569 2568 +f 2481 2482 2570 2569 +f 2482 2483 2571 2570 +f 2483 2484 2572 2571 +f 2484 2485 2573 2572 +f 2485 2486 2574 2573 +f 2486 2487 2575 2574 +f 2487 2488 2576 2575 +f 2488 2489 2577 2576 +f 2489 2490 2578 2577 +f 2490 2491 2579 2578 +f 2491 2492 2580 2579 +f 2492 2493 2581 2580 +f 2493 2494 2582 2581 +f 2494 2495 2583 2582 +f 2495 2496 2584 2583 +f 2496 2497 2585 2584 +f 2497 2498 2586 2585 +f 2498 2499 2587 2586 +f 2499 2500 2588 2587 +f 2500 2501 2589 2588 +f 2501 2502 2590 2589 +f 2502 2503 2591 2590 +f 2503 2504 2592 2591 +f 2504 2505 2593 2592 +f 2505 2506 2594 2593 +f 2506 2507 2595 2594 +f 2507 2508 2596 2595 +f 2508 2509 2597 2596 +f 2509 2510 2598 2597 +f 2510 2511 2599 2598 +f 2511 2512 2600 2599 +f 2512 2513 2601 2600 +f 2513 2514 2602 2601 +f 2514 2515 2603 2602 +f 2515 2516 2604 2603 +f 2516 2517 2605 2604 +f 2517 2518 2606 2605 +f 2518 2519 2607 2606 +f 2519 2520 2608 2607 +f 2520 2521 2609 2608 +f 2521 2522 2610 2609 +f 2522 2523 2611 2610 +f 2523 2524 2612 2611 +f 2524 2525 2613 2612 +f 2525 2526 2614 2613 +f 2526 2527 2615 2614 +f 2527 2528 2616 2615 +f 2528 2529 2617 2616 +f 2529 2530 2618 2617 +f 2530 2531 2619 2618 +f 2531 2532 2620 2619 +f 2532 2533 2621 2620 +f 2533 2534 2622 2621 +f 2534 2535 2623 2622 +f 2535 2536 2624 2623 +f 2536 2537 2625 2624 +f 2537 2538 2626 2625 +f 2538 2539 2627 2626 +f 2539 2540 2628 2627 +f 2540 2541 2629 2628 +f 2541 2542 2630 2629 +f 2542 2543 2631 2630 +f 2543 2544 2632 2631 +f 2544 2545 2633 2632 +f 2545 2546 2634 2633 +f 2546 2547 2635 2634 +f 2547 2548 2636 2635 +f 2548 2549 2637 2636 +f 2549 2550 2638 2637 +f 2550 2551 2639 2638 +f 2551 2552 2640 2639 +f 2552 2553 2641 2640 +f 2553 2554 2642 2641 +f 2554 2467 2555 2642 +f 2555 2556 2644 2643 +f 2556 2557 2645 2644 +f 2557 2558 2646 2645 +f 2558 2559 2647 2646 +f 2559 2560 2648 2647 +f 2560 2561 2649 2648 +f 2561 2562 2650 2649 +f 2562 2563 2651 2650 +f 2563 2564 2652 2651 +f 2564 2565 2653 2652 +f 2565 2566 2654 2653 +f 2566 2567 2655 2654 +f 2567 2568 2656 2655 +f 2568 2569 2657 2656 +f 2569 2570 2658 2657 +f 2570 2571 2659 2658 +f 2571 2572 2660 2659 +f 2572 2573 2661 2660 +f 2573 2574 2662 2661 +f 2574 2575 2663 2662 +f 2575 2576 2664 2663 +f 2576 2577 2665 2664 +f 2577 2578 2666 2665 +f 2578 2579 2667 2666 +f 2579 2580 2668 2667 +f 2580 2581 2669 2668 +f 2581 2582 2670 2669 +f 2582 2583 2671 2670 +f 2583 2584 2672 2671 +f 2584 2585 2673 2672 +f 2585 2586 2674 2673 +f 2586 2587 2675 2674 +f 2587 2588 2676 2675 +f 2588 2589 2677 2676 +f 2589 2590 2678 2677 +f 2590 2591 2679 2678 +f 2591 2592 2680 2679 +f 2592 2593 2681 2680 +f 2593 2594 2682 2681 +f 2594 2595 2683 2682 +f 2595 2596 2684 2683 +f 2596 2597 2685 2684 +f 2597 2598 2686 2685 +f 2598 2599 2687 2686 +f 2599 2600 2688 2687 +f 2600 2601 2689 2688 +f 2601 2602 2690 2689 +f 2602 2603 2691 2690 +f 2603 2604 2692 2691 +f 2604 2605 2693 2692 +f 2605 2606 2694 2693 +f 2606 2607 2695 2694 +f 2607 2608 2696 2695 +f 2608 2609 2697 2696 +f 2609 2610 2698 2697 +f 2610 2611 2699 2698 +f 2611 2612 2700 2699 +f 2612 2613 2701 2700 +f 2613 2614 2702 2701 +f 2614 2615 2703 2702 +f 2615 2616 2704 2703 +f 2616 2617 2705 2704 +f 2617 2618 2706 2705 +f 2618 2619 2707 2706 +f 2619 2620 2708 2707 +f 2620 2621 2709 2708 +f 2621 2622 2710 2709 +f 2622 2623 2711 2710 +f 2623 2624 2712 2711 +f 2624 2625 2713 2712 +f 2625 2626 2714 2713 +f 2626 2627 2715 2714 +f 2627 2628 2716 2715 +f 2628 2629 2717 2716 +f 2629 2630 2718 2717 +f 2630 2631 2719 2718 +f 2631 2632 2720 2719 +f 2632 2633 2721 2720 +f 2633 2634 2722 2721 +f 2634 2635 2723 2722 +f 2635 2636 2724 2723 +f 2636 2637 2725 2724 +f 2637 2638 2726 2725 +f 2638 2639 2727 2726 +f 2639 2640 2728 2727 +f 2640 2641 2729 2728 +f 2641 2642 2730 2729 +f 2642 2555 2643 2730 +f 2643 2644 2732 2731 +f 2644 2645 2733 2732 +f 2645 2646 2734 2733 +f 2646 2647 2735 2734 +f 2647 2648 2736 2735 +f 2648 2649 2737 2736 +f 2649 2650 2738 2737 +f 2650 2651 2739 2738 +f 2651 2652 2740 2739 +f 2652 2653 2741 2740 +f 2653 2654 2742 2741 +f 2654 2655 2743 2742 +f 2655 2656 2744 2743 +f 2656 2657 2745 2744 +f 2657 2658 2746 2745 +f 2658 2659 2747 2746 +f 2659 2660 2748 2747 +f 2660 2661 2749 2748 +f 2661 2662 2750 2749 +f 2662 2663 2751 2750 +f 2663 2664 2752 2751 +f 2664 2665 2753 2752 +f 2665 2666 2754 2753 +f 2666 2667 2755 2754 +f 2667 2668 2756 2755 +f 2668 2669 2757 2756 +f 2669 2670 2758 2757 +f 2670 2671 2759 2758 +f 2671 2672 2760 2759 +f 2672 2673 2761 2760 +f 2673 2674 2762 2761 +f 2674 2675 2763 2762 +f 2675 2676 2764 2763 +f 2676 2677 2765 2764 +f 2677 2678 2766 2765 +f 2678 2679 2767 2766 +f 2679 2680 2768 2767 +f 2680 2681 2769 2768 +f 2681 2682 2770 2769 +f 2682 2683 2771 2770 +f 2683 2684 2772 2771 +f 2684 2685 2773 2772 +f 2685 2686 2774 2773 +f 2686 2687 2775 2774 +f 2687 2688 2776 2775 +f 2688 2689 2777 2776 +f 2689 2690 2778 2777 +f 2690 2691 2779 2778 +f 2691 2692 2780 2779 +f 2692 2693 2781 2780 +f 2693 2694 2782 2781 +f 2694 2695 2783 2782 +f 2695 2696 2784 2783 +f 2696 2697 2785 2784 +f 2697 2698 2786 2785 +f 2698 2699 2787 2786 +f 2699 2700 2788 2787 +f 2700 2701 2789 2788 +f 2701 2702 2790 2789 +f 2702 2703 2791 2790 +f 2703 2704 2792 2791 +f 2704 2705 2793 2792 +f 2705 2706 2794 2793 +f 2706 2707 2795 2794 +f 2707 2708 2796 2795 +f 2708 2709 2797 2796 +f 2709 2710 2798 2797 +f 2710 2711 2799 2798 +f 2711 2712 2800 2799 +f 2712 2713 2801 2800 +f 2713 2714 2802 2801 +f 2714 2715 2803 2802 +f 2715 2716 2804 2803 +f 2716 2717 2805 2804 +f 2717 2718 2806 2805 +f 2718 2719 2807 2806 +f 2719 2720 2808 2807 +f 2720 2721 2809 2808 +f 2721 2722 2810 2809 +f 2722 2723 2811 2810 +f 2723 2724 2812 2811 +f 2724 2725 2813 2812 +f 2725 2726 2814 2813 +f 2726 2727 2815 2814 +f 2727 2728 2816 2815 +f 2728 2729 2817 2816 +f 2729 2730 2818 2817 +f 2730 2643 2731 2818 +f 2731 2732 2820 2819 +f 2732 2733 2821 2820 +f 2733 2734 2822 2821 +f 2734 2735 2823 2822 +f 2735 2736 2824 2823 +f 2736 2737 2825 2824 +f 2737 2738 2826 2825 +f 2738 2739 2827 2826 +f 2739 2740 2828 2827 +f 2740 2741 2829 2828 +f 2741 2742 2830 2829 +f 2742 2743 2831 2830 +f 2743 2744 2832 2831 +f 2744 2745 2833 2832 +f 2745 2746 2834 2833 +f 2746 2747 2835 2834 +f 2747 2748 2836 2835 +f 2748 2749 2837 2836 +f 2749 2750 2838 2837 +f 2750 2751 2839 2838 +f 2751 2752 2840 2839 +f 2752 2753 2841 2840 +f 2753 2754 2842 2841 +f 2754 2755 2843 2842 +f 2755 2756 2844 2843 +f 2756 2757 2845 2844 +f 2757 2758 2846 2845 +f 2758 2759 2847 2846 +f 2759 2760 2848 2847 +f 2760 2761 2849 2848 +f 2761 2762 2850 2849 +f 2762 2763 2851 2850 +f 2763 2764 2852 2851 +f 2764 2765 2853 2852 +f 2765 2766 2854 2853 +f 2766 2767 2855 2854 +f 2767 2768 2856 2855 +f 2768 2769 2857 2856 +f 2769 2770 2858 2857 +f 2770 2771 2859 2858 +f 2771 2772 2860 2859 +f 2772 2773 2861 2860 +f 2773 2774 2862 2861 +f 2774 2775 2863 2862 +f 2775 2776 2864 2863 +f 2776 2777 2865 2864 +f 2777 2778 2866 2865 +f 2778 2779 2867 2866 +f 2779 2780 2868 2867 +f 2780 2781 2869 2868 +f 2781 2782 2870 2869 +f 2782 2783 2871 2870 +f 2783 2784 2872 2871 +f 2784 2785 2873 2872 +f 2785 2786 2874 2873 +f 2786 2787 2875 2874 +f 2787 2788 2876 2875 +f 2788 2789 2877 2876 +f 2789 2790 2878 2877 +f 2790 2791 2879 2878 +f 2791 2792 2880 2879 +f 2792 2793 2881 2880 +f 2793 2794 2882 2881 +f 2794 2795 2883 2882 +f 2795 2796 2884 2883 +f 2796 2797 2885 2884 +f 2797 2798 2886 2885 +f 2798 2799 2887 2886 +f 2799 2800 2888 2887 +f 2800 2801 2889 2888 +f 2801 2802 2890 2889 +f 2802 2803 2891 2890 +f 2803 2804 2892 2891 +f 2804 2805 2893 2892 +f 2805 2806 2894 2893 +f 2806 2807 2895 2894 +f 2807 2808 2896 2895 +f 2808 2809 2897 2896 +f 2809 2810 2898 2897 +f 2810 2811 2899 2898 +f 2811 2812 2900 2899 +f 2812 2813 2901 2900 +f 2813 2814 2902 2901 +f 2814 2815 2903 2902 +f 2815 2816 2904 2903 +f 2816 2817 2905 2904 +f 2817 2818 2906 2905 +f 2818 2731 2819 2906 +f 2819 2820 2908 2907 +f 2820 2821 2909 2908 +f 2821 2822 2910 2909 +f 2822 2823 2911 2910 +f 2823 2824 2912 2911 +f 2824 2825 2913 2912 +f 2825 2826 2914 2913 +f 2826 2827 2915 2914 +f 2827 2828 2916 2915 +f 2828 2829 2917 2916 +f 2829 2830 2918 2917 +f 2830 2831 2919 2918 +f 2831 2832 2920 2919 +f 2832 2833 2921 2920 +f 2833 2834 2922 2921 +f 2834 2835 2923 2922 +f 2835 2836 2924 2923 +f 2836 2837 2925 2924 +f 2837 2838 2926 2925 +f 2838 2839 2927 2926 +f 2839 2840 2928 2927 +f 2840 2841 2929 2928 +f 2841 2842 2930 2929 +f 2842 2843 2931 2930 +f 2843 2844 2932 2931 +f 2844 2845 2933 2932 +f 2845 2846 2934 2933 +f 2846 2847 2935 2934 +f 2847 2848 2936 2935 +f 2848 2849 2937 2936 +f 2849 2850 2938 2937 +f 2850 2851 2939 2938 +f 2851 2852 2940 2939 +f 2852 2853 2941 2940 +f 2853 2854 2942 2941 +f 2854 2855 2943 2942 +f 2855 2856 2944 2943 +f 2856 2857 2945 2944 +f 2857 2858 2946 2945 +f 2858 2859 2947 2946 +f 2859 2860 2948 2947 +f 2860 2861 2949 2948 +f 2861 2862 2950 2949 +f 2862 2863 2951 2950 +f 2863 2864 2952 2951 +f 2864 2865 2953 2952 +f 2865 2866 2954 2953 +f 2866 2867 2955 2954 +f 2867 2868 2956 2955 +f 2868 2869 2957 2956 +f 2869 2870 2958 2957 +f 2870 2871 2959 2958 +f 2871 2872 2960 2959 +f 2872 2873 2961 2960 +f 2873 2874 2962 2961 +f 2874 2875 2963 2962 +f 2875 2876 2964 2963 +f 2876 2877 2965 2964 +f 2877 2878 2966 2965 +f 2878 2879 2967 2966 +f 2879 2880 2968 2967 +f 2880 2881 2969 2968 +f 2881 2882 2970 2969 +f 2882 2883 2971 2970 +f 2883 2884 2972 2971 +f 2884 2885 2973 2972 +f 2885 2886 2974 2973 +f 2886 2887 2975 2974 +f 2887 2888 2976 2975 +f 2888 2889 2977 2976 +f 2889 2890 2978 2977 +f 2890 2891 2979 2978 +f 2891 2892 2980 2979 +f 2892 2893 2981 2980 +f 2893 2894 2982 2981 +f 2894 2895 2983 2982 +f 2895 2896 2984 2983 +f 2896 2897 2985 2984 +f 2897 2898 2986 2985 +f 2898 2899 2987 2986 +f 2899 2900 2988 2987 +f 2900 2901 2989 2988 +f 2901 2902 2990 2989 +f 2902 2903 2991 2990 +f 2903 2904 2992 2991 +f 2904 2905 2993 2992 +f 2905 2906 2994 2993 +f 2906 2819 2907 2994 +f 2907 2908 2996 2995 +f 2908 2909 2997 2996 +f 2909 2910 2998 2997 +f 2910 2911 2999 2998 +f 2911 2912 3000 2999 +f 2912 2913 3001 3000 +f 2913 2914 3002 3001 +f 2914 2915 3003 3002 +f 2915 2916 3004 3003 +f 2916 2917 3005 3004 +f 2917 2918 3006 3005 +f 2918 2919 3007 3006 +f 2919 2920 3008 3007 +f 2920 2921 3009 3008 +f 2921 2922 3010 3009 +f 2922 2923 3011 3010 +f 2923 2924 3012 3011 +f 2924 2925 3013 3012 +f 2925 2926 3014 3013 +f 2926 2927 3015 3014 +f 2927 2928 3016 3015 +f 2928 2929 3017 3016 +f 2929 2930 3018 3017 +f 2930 2931 3019 3018 +f 2931 2932 3020 3019 +f 2932 2933 3021 3020 +f 2933 2934 3022 3021 +f 2934 2935 3023 3022 +f 2935 2936 3024 3023 +f 2936 2937 3025 3024 +f 2937 2938 3026 3025 +f 2938 2939 3027 3026 +f 2939 2940 3028 3027 +f 2940 2941 3029 3028 +f 2941 2942 3030 3029 +f 2942 2943 3031 3030 +f 2943 2944 3032 3031 +f 2944 2945 3033 3032 +f 2945 2946 3034 3033 +f 2946 2947 3035 3034 +f 2947 2948 3036 3035 +f 2948 2949 3037 3036 +f 2949 2950 3038 3037 +f 2950 2951 3039 3038 +f 2951 2952 3040 3039 +f 2952 2953 3041 3040 +f 2953 2954 3042 3041 +f 2954 2955 3043 3042 +f 2955 2956 3044 3043 +f 2956 2957 3045 3044 +f 2957 2958 3046 3045 +f 2958 2959 3047 3046 +f 2959 2960 3048 3047 +f 2960 2961 3049 3048 +f 2961 2962 3050 3049 +f 2962 2963 3051 3050 +f 2963 2964 3052 3051 +f 2964 2965 3053 3052 +f 2965 2966 3054 3053 +f 2966 2967 3055 3054 +f 2967 2968 3056 3055 +f 2968 2969 3057 3056 +f 2969 2970 3058 3057 +f 2970 2971 3059 3058 +f 2971 2972 3060 3059 +f 2972 2973 3061 3060 +f 2973 2974 3062 3061 +f 2974 2975 3063 3062 +f 2975 2976 3064 3063 +f 2976 2977 3065 3064 +f 2977 2978 3066 3065 +f 2978 2979 3067 3066 +f 2979 2980 3068 3067 +f 2980 2981 3069 3068 +f 2981 2982 3070 3069 +f 2982 2983 3071 3070 +f 2983 2984 3072 3071 +f 2984 2985 3073 3072 +f 2985 2986 3074 3073 +f 2986 2987 3075 3074 +f 2987 2988 3076 3075 +f 2988 2989 3077 3076 +f 2989 2990 3078 3077 +f 2990 2991 3079 3078 +f 2991 2992 3080 3079 +f 2992 2993 3081 3080 +f 2993 2994 3082 3081 +f 2994 2907 2995 3082 +f 2995 2996 3084 3083 +f 2996 2997 3085 3084 +f 2997 2998 3086 3085 +f 2998 2999 3087 3086 +f 2999 3000 3088 3087 +f 3000 3001 3089 3088 +f 3001 3002 3090 3089 +f 3002 3003 3091 3090 +f 3003 3004 3092 3091 +f 3004 3005 3093 3092 +f 3005 3006 3094 3093 +f 3006 3007 3095 3094 +f 3007 3008 3096 3095 +f 3008 3009 3097 3096 +f 3009 3010 3098 3097 +f 3010 3011 3099 3098 +f 3011 3012 3100 3099 +f 3012 3013 3101 3100 +f 3013 3014 3102 3101 +f 3014 3015 3103 3102 +f 3015 3016 3104 3103 +f 3016 3017 3105 3104 +f 3017 3018 3106 3105 +f 3018 3019 3107 3106 +f 3019 3020 3108 3107 +f 3020 3021 3109 3108 +f 3021 3022 3110 3109 +f 3022 3023 3111 3110 +f 3023 3024 3112 3111 +f 3024 3025 3113 3112 +f 3025 3026 3114 3113 +f 3026 3027 3115 3114 +f 3027 3028 3116 3115 +f 3028 3029 3117 3116 +f 3029 3030 3118 3117 +f 3030 3031 3119 3118 +f 3031 3032 3120 3119 +f 3032 3033 3121 3120 +f 3033 3034 3122 3121 +f 3034 3035 3123 3122 +f 3035 3036 3124 3123 +f 3036 3037 3125 3124 +f 3037 3038 3126 3125 +f 3038 3039 3127 3126 +f 3039 3040 3128 3127 +f 3040 3041 3129 3128 +f 3041 3042 3130 3129 +f 3042 3043 3131 3130 +f 3043 3044 3132 3131 +f 3044 3045 3133 3132 +f 3045 3046 3134 3133 +f 3046 3047 3135 3134 +f 3047 3048 3136 3135 +f 3048 3049 3137 3136 +f 3049 3050 3138 3137 +f 3050 3051 3139 3138 +f 3051 3052 3140 3139 +f 3052 3053 3141 3140 +f 3053 3054 3142 3141 +f 3054 3055 3143 3142 +f 3055 3056 3144 3143 +f 3056 3057 3145 3144 +f 3057 3058 3146 3145 +f 3058 3059 3147 3146 +f 3059 3060 3148 3147 +f 3060 3061 3149 3148 +f 3061 3062 3150 3149 +f 3062 3063 3151 3150 +f 3063 3064 3152 3151 +f 3064 3065 3153 3152 +f 3065 3066 3154 3153 +f 3066 3067 3155 3154 +f 3067 3068 3156 3155 +f 3068 3069 3157 3156 +f 3069 3070 3158 3157 +f 3070 3071 3159 3158 +f 3071 3072 3160 3159 +f 3072 3073 3161 3160 +f 3073 3074 3162 3161 +f 3074 3075 3163 3162 +f 3075 3076 3164 3163 +f 3076 3077 3165 3164 +f 3077 3078 3166 3165 +f 3078 3079 3167 3166 +f 3079 3080 3168 3167 +f 3080 3081 3169 3168 +f 3081 3082 3170 3169 +f 3082 2995 3083 3170 +f 3083 3084 3172 3171 +f 3084 3085 3173 3172 +f 3085 3086 3174 3173 +f 3086 3087 3175 3174 +f 3087 3088 3176 3175 +f 3088 3089 3177 3176 +f 3089 3090 3178 3177 +f 3090 3091 3179 3178 +f 3091 3092 3180 3179 +f 3092 3093 3181 3180 +f 3093 3094 3182 3181 +f 3094 3095 3183 3182 +f 3095 3096 3184 3183 +f 3096 3097 3185 3184 +f 3097 3098 3186 3185 +f 3098 3099 3187 3186 +f 3099 3100 3188 3187 +f 3100 3101 3189 3188 +f 3101 3102 3190 3189 +f 3102 3103 3191 3190 +f 3103 3104 3192 3191 +f 3104 3105 3193 3192 +f 3105 3106 3194 3193 +f 3106 3107 3195 3194 +f 3107 3108 3196 3195 +f 3108 3109 3197 3196 +f 3109 3110 3198 3197 +f 3110 3111 3199 3198 +f 3111 3112 3200 3199 +f 3112 3113 3201 3200 +f 3113 3114 3202 3201 +f 3114 3115 3203 3202 +f 3115 3116 3204 3203 +f 3116 3117 3205 3204 +f 3117 3118 3206 3205 +f 3118 3119 3207 3206 +f 3119 3120 3208 3207 +f 3120 3121 3209 3208 +f 3121 3122 3210 3209 +f 3122 3123 3211 3210 +f 3123 3124 3212 3211 +f 3124 3125 3213 3212 +f 3125 3126 3214 3213 +f 3126 3127 3215 3214 +f 3127 3128 3216 3215 +f 3128 3129 3217 3216 +f 3129 3130 3218 3217 +f 3130 3131 3219 3218 +f 3131 3132 3220 3219 +f 3132 3133 3221 3220 +f 3133 3134 3222 3221 +f 3134 3135 3223 3222 +f 3135 3136 3224 3223 +f 3136 3137 3225 3224 +f 3137 3138 3226 3225 +f 3138 3139 3227 3226 +f 3139 3140 3228 3227 +f 3140 3141 3229 3228 +f 3141 3142 3230 3229 +f 3142 3143 3231 3230 +f 3143 3144 3232 3231 +f 3144 3145 3233 3232 +f 3145 3146 3234 3233 +f 3146 3147 3235 3234 +f 3147 3148 3236 3235 +f 3148 3149 3237 3236 +f 3149 3150 3238 3237 +f 3150 3151 3239 3238 +f 3151 3152 3240 3239 +f 3152 3153 3241 3240 +f 3153 3154 3242 3241 +f 3154 3155 3243 3242 +f 3155 3156 3244 3243 +f 3156 3157 3245 3244 +f 3157 3158 3246 3245 +f 3158 3159 3247 3246 +f 3159 3160 3248 3247 +f 3160 3161 3249 3248 +f 3161 3162 3250 3249 +f 3162 3163 3251 3250 +f 3163 3164 3252 3251 +f 3164 3165 3253 3252 +f 3165 3166 3254 3253 +f 3166 3167 3255 3254 +f 3167 3168 3256 3255 +f 3168 3169 3257 3256 +f 3169 3170 3258 3257 +f 3170 3083 3171 3258 +f 3171 3172 3260 3259 +f 3172 3173 3261 3260 +f 3173 3174 3262 3261 +f 3174 3175 3263 3262 +f 3175 3176 3264 3263 +f 3176 3177 3265 3264 +f 3177 3178 3266 3265 +f 3178 3179 3267 3266 +f 3179 3180 3268 3267 +f 3180 3181 3269 3268 +f 3181 3182 3270 3269 +f 3182 3183 3271 3270 +f 3183 3184 3272 3271 +f 3184 3185 3273 3272 +f 3185 3186 3274 3273 +f 3186 3187 3275 3274 +f 3187 3188 3276 3275 +f 3188 3189 3277 3276 +f 3189 3190 3278 3277 +f 3190 3191 3279 3278 +f 3191 3192 3280 3279 +f 3192 3193 3281 3280 +f 3193 3194 3282 3281 +f 3194 3195 3283 3282 +f 3195 3196 3284 3283 +f 3196 3197 3285 3284 +f 3197 3198 3286 3285 +f 3198 3199 3287 3286 +f 3199 3200 3288 3287 +f 3200 3201 3289 3288 +f 3201 3202 3290 3289 +f 3202 3203 3291 3290 +f 3203 3204 3292 3291 +f 3204 3205 3293 3292 +f 3205 3206 3294 3293 +f 3206 3207 3295 3294 +f 3207 3208 3296 3295 +f 3208 3209 3297 3296 +f 3209 3210 3298 3297 +f 3210 3211 3299 3298 +f 3211 3212 3300 3299 +f 3212 3213 3301 3300 +f 3213 3214 3302 3301 +f 3214 3215 3303 3302 +f 3215 3216 3304 3303 +f 3216 3217 3305 3304 +f 3217 3218 3306 3305 +f 3218 3219 3307 3306 +f 3219 3220 3308 3307 +f 3220 3221 3309 3308 +f 3221 3222 3310 3309 +f 3222 3223 3311 3310 +f 3223 3224 3312 3311 +f 3224 3225 3313 3312 +f 3225 3226 3314 3313 +f 3226 3227 3315 3314 +f 3227 3228 3316 3315 +f 3228 3229 3317 3316 +f 3229 3230 3318 3317 +f 3230 3231 3319 3318 +f 3231 3232 3320 3319 +f 3232 3233 3321 3320 +f 3233 3234 3322 3321 +f 3234 3235 3323 3322 +f 3235 3236 3324 3323 +f 3236 3237 3325 3324 +f 3237 3238 3326 3325 +f 3238 3239 3327 3326 +f 3239 3240 3328 3327 +f 3240 3241 3329 3328 +f 3241 3242 3330 3329 +f 3242 3243 3331 3330 +f 3243 3244 3332 3331 +f 3244 3245 3333 3332 +f 3245 3246 3334 3333 +f 3246 3247 3335 3334 +f 3247 3248 3336 3335 +f 3248 3249 3337 3336 +f 3249 3250 3338 3337 +f 3250 3251 3339 3338 +f 3251 3252 3340 3339 +f 3252 3253 3341 3340 +f 3253 3254 3342 3341 +f 3254 3255 3343 3342 +f 3255 3256 3344 3343 +f 3256 3257 3345 3344 +f 3257 3258 3346 3345 +f 3258 3171 3259 3346 +f 3259 3260 3348 3347 +f 3260 3261 3349 3348 +f 3261 3262 3350 3349 +f 3262 3263 3351 3350 +f 3263 3264 3352 3351 +f 3264 3265 3353 3352 +f 3265 3266 3354 3353 +f 3266 3267 3355 3354 +f 3267 3268 3356 3355 +f 3268 3269 3357 3356 +f 3269 3270 3358 3357 +f 3270 3271 3359 3358 +f 3271 3272 3360 3359 +f 3272 3273 3361 3360 +f 3273 3274 3362 3361 +f 3274 3275 3363 3362 +f 3275 3276 3364 3363 +f 3276 3277 3365 3364 +f 3277 3278 3366 3365 +f 3278 3279 3367 3366 +f 3279 3280 3368 3367 +f 3280 3281 3369 3368 +f 3281 3282 3370 3369 +f 3282 3283 3371 3370 +f 3283 3284 3372 3371 +f 3284 3285 3373 3372 +f 3285 3286 3374 3373 +f 3286 3287 3375 3374 +f 3287 3288 3376 3375 +f 3288 3289 3377 3376 +f 3289 3290 3378 3377 +f 3290 3291 3379 3378 +f 3291 3292 3380 3379 +f 3292 3293 3381 3380 +f 3293 3294 3382 3381 +f 3294 3295 3383 3382 +f 3295 3296 3384 3383 +f 3296 3297 3385 3384 +f 3297 3298 3386 3385 +f 3298 3299 3387 3386 +f 3299 3300 3388 3387 +f 3300 3301 3389 3388 +f 3301 3302 3390 3389 +f 3302 3303 3391 3390 +f 3303 3304 3392 3391 +f 3304 3305 3393 3392 +f 3305 3306 3394 3393 +f 3306 3307 3395 3394 +f 3307 3308 3396 3395 +f 3308 3309 3397 3396 +f 3309 3310 3398 3397 +f 3310 3311 3399 3398 +f 3311 3312 3400 3399 +f 3312 3313 3401 3400 +f 3313 3314 3402 3401 +f 3314 3315 3403 3402 +f 3315 3316 3404 3403 +f 3316 3317 3405 3404 +f 3317 3318 3406 3405 +f 3318 3319 3407 3406 +f 3319 3320 3408 3407 +f 3320 3321 3409 3408 +f 3321 3322 3410 3409 +f 3322 3323 3411 3410 +f 3323 3324 3412 3411 +f 3324 3325 3413 3412 +f 3325 3326 3414 3413 +f 3326 3327 3415 3414 +f 3327 3328 3416 3415 +f 3328 3329 3417 3416 +f 3329 3330 3418 3417 +f 3330 3331 3419 3418 +f 3331 3332 3420 3419 +f 3332 3333 3421 3420 +f 3333 3334 3422 3421 +f 3334 3335 3423 3422 +f 3335 3336 3424 3423 +f 3336 3337 3425 3424 +f 3337 3338 3426 3425 +f 3338 3339 3427 3426 +f 3339 3340 3428 3427 +f 3340 3341 3429 3428 +f 3341 3342 3430 3429 +f 3342 3343 3431 3430 +f 3343 3344 3432 3431 +f 3344 3345 3433 3432 +f 3345 3346 3434 3433 +f 3346 3259 3347 3434 +f 3347 3348 3436 3435 +f 3348 3349 3437 3436 +f 3349 3350 3438 3437 +f 3350 3351 3439 3438 +f 3351 3352 3440 3439 +f 3352 3353 3441 3440 +f 3353 3354 3442 3441 +f 3354 3355 3443 3442 +f 3355 3356 3444 3443 +f 3356 3357 3445 3444 +f 3357 3358 3446 3445 +f 3358 3359 3447 3446 +f 3359 3360 3448 3447 +f 3360 3361 3449 3448 +f 3361 3362 3450 3449 +f 3362 3363 3451 3450 +f 3363 3364 3452 3451 +f 3364 3365 3453 3452 +f 3365 3366 3454 3453 +f 3366 3367 3455 3454 +f 3367 3368 3456 3455 +f 3368 3369 3457 3456 +f 3369 3370 3458 3457 +f 3370 3371 3459 3458 +f 3371 3372 3460 3459 +f 3372 3373 3461 3460 +f 3373 3374 3462 3461 +f 3374 3375 3463 3462 +f 3375 3376 3464 3463 +f 3376 3377 3465 3464 +f 3377 3378 3466 3465 +f 3378 3379 3467 3466 +f 3379 3380 3468 3467 +f 3380 3381 3469 3468 +f 3381 3382 3470 3469 +f 3382 3383 3471 3470 +f 3383 3384 3472 3471 +f 3384 3385 3473 3472 +f 3385 3386 3474 3473 +f 3386 3387 3475 3474 +f 3387 3388 3476 3475 +f 3388 3389 3477 3476 +f 3389 3390 3478 3477 +f 3390 3391 3479 3478 +f 3391 3392 3480 3479 +f 3392 3393 3481 3480 +f 3393 3394 3482 3481 +f 3394 3395 3483 3482 +f 3395 3396 3484 3483 +f 3396 3397 3485 3484 +f 3397 3398 3486 3485 +f 3398 3399 3487 3486 +f 3399 3400 3488 3487 +f 3400 3401 3489 3488 +f 3401 3402 3490 3489 +f 3402 3403 3491 3490 +f 3403 3404 3492 3491 +f 3404 3405 3493 3492 +f 3405 3406 3494 3493 +f 3406 3407 3495 3494 +f 3407 3408 3496 3495 +f 3408 3409 3497 3496 +f 3409 3410 3498 3497 +f 3410 3411 3499 3498 +f 3411 3412 3500 3499 +f 3412 3413 3501 3500 +f 3413 3414 3502 3501 +f 3414 3415 3503 3502 +f 3415 3416 3504 3503 +f 3416 3417 3505 3504 +f 3417 3418 3506 3505 +f 3418 3419 3507 3506 +f 3419 3420 3508 3507 +f 3420 3421 3509 3508 +f 3421 3422 3510 3509 +f 3422 3423 3511 3510 +f 3423 3424 3512 3511 +f 3424 3425 3513 3512 +f 3425 3426 3514 3513 +f 3426 3427 3515 3514 +f 3427 3428 3516 3515 +f 3428 3429 3517 3516 +f 3429 3430 3518 3517 +f 3430 3431 3519 3518 +f 3431 3432 3520 3519 +f 3432 3433 3521 3520 +f 3433 3434 3522 3521 +f 3434 3347 3435 3522 +f 3435 3436 3524 3523 +f 3436 3437 3525 3524 +f 3437 3438 3526 3525 +f 3438 3439 3527 3526 +f 3439 3440 3528 3527 +f 3440 3441 3529 3528 +f 3441 3442 3530 3529 +f 3442 3443 3531 3530 +f 3443 3444 3532 3531 +f 3444 3445 3533 3532 +f 3445 3446 3534 3533 +f 3446 3447 3535 3534 +f 3447 3448 3536 3535 +f 3448 3449 3537 3536 +f 3449 3450 3538 3537 +f 3450 3451 3539 3538 +f 3451 3452 3540 3539 +f 3452 3453 3541 3540 +f 3453 3454 3542 3541 +f 3454 3455 3543 3542 +f 3455 3456 3544 3543 +f 3456 3457 3545 3544 +f 3457 3458 3546 3545 +f 3458 3459 3547 3546 +f 3459 3460 3548 3547 +f 3460 3461 3549 3548 +f 3461 3462 3550 3549 +f 3462 3463 3551 3550 +f 3463 3464 3552 3551 +f 3464 3465 3553 3552 +f 3465 3466 3554 3553 +f 3466 3467 3555 3554 +f 3467 3468 3556 3555 +f 3468 3469 3557 3556 +f 3469 3470 3558 3557 +f 3470 3471 3559 3558 +f 3471 3472 3560 3559 +f 3472 3473 3561 3560 +f 3473 3474 3562 3561 +f 3474 3475 3563 3562 +f 3475 3476 3564 3563 +f 3476 3477 3565 3564 +f 3477 3478 3566 3565 +f 3478 3479 3567 3566 +f 3479 3480 3568 3567 +f 3480 3481 3569 3568 +f 3481 3482 3570 3569 +f 3482 3483 3571 3570 +f 3483 3484 3572 3571 +f 3484 3485 3573 3572 +f 3485 3486 3574 3573 +f 3486 3487 3575 3574 +f 3487 3488 3576 3575 +f 3488 3489 3577 3576 +f 3489 3490 3578 3577 +f 3490 3491 3579 3578 +f 3491 3492 3580 3579 +f 3492 3493 3581 3580 +f 3493 3494 3582 3581 +f 3494 3495 3583 3582 +f 3495 3496 3584 3583 +f 3496 3497 3585 3584 +f 3497 3498 3586 3585 +f 3498 3499 3587 3586 +f 3499 3500 3588 3587 +f 3500 3501 3589 3588 +f 3501 3502 3590 3589 +f 3502 3503 3591 3590 +f 3503 3504 3592 3591 +f 3504 3505 3593 3592 +f 3505 3506 3594 3593 +f 3506 3507 3595 3594 +f 3507 3508 3596 3595 +f 3508 3509 3597 3596 +f 3509 3510 3598 3597 +f 3510 3511 3599 3598 +f 3511 3512 3600 3599 +f 3512 3513 3601 3600 +f 3513 3514 3602 3601 +f 3514 3515 3603 3602 +f 3515 3516 3604 3603 +f 3516 3517 3605 3604 +f 3517 3518 3606 3605 +f 3518 3519 3607 3606 +f 3519 3520 3608 3607 +f 3520 3521 3609 3608 +f 3521 3522 3610 3609 +f 3522 3435 3523 3610 +f 3523 3524 3612 3611 +f 3524 3525 3613 3612 +f 3525 3526 3614 3613 +f 3526 3527 3615 3614 +f 3527 3528 3616 3615 +f 3528 3529 3617 3616 +f 3529 3530 3618 3617 +f 3530 3531 3619 3618 +f 3531 3532 3620 3619 +f 3532 3533 3621 3620 +f 3533 3534 3622 3621 +f 3534 3535 3623 3622 +f 3535 3536 3624 3623 +f 3536 3537 3625 3624 +f 3537 3538 3626 3625 +f 3538 3539 3627 3626 +f 3539 3540 3628 3627 +f 3540 3541 3629 3628 +f 3541 3542 3630 3629 +f 3542 3543 3631 3630 +f 3543 3544 3632 3631 +f 3544 3545 3633 3632 +f 3545 3546 3634 3633 +f 3546 3547 3635 3634 +f 3547 3548 3636 3635 +f 3548 3549 3637 3636 +f 3549 3550 3638 3637 +f 3550 3551 3639 3638 +f 3551 3552 3640 3639 +f 3552 3553 3641 3640 +f 3553 3554 3642 3641 +f 3554 3555 3643 3642 +f 3555 3556 3644 3643 +f 3556 3557 3645 3644 +f 3557 3558 3646 3645 +f 3558 3559 3647 3646 +f 3559 3560 3648 3647 +f 3560 3561 3649 3648 +f 3561 3562 3650 3649 +f 3562 3563 3651 3650 +f 3563 3564 3652 3651 +f 3564 3565 3653 3652 +f 3565 3566 3654 3653 +f 3566 3567 3655 3654 +f 3567 3568 3656 3655 +f 3568 3569 3657 3656 +f 3569 3570 3658 3657 +f 3570 3571 3659 3658 +f 3571 3572 3660 3659 +f 3572 3573 3661 3660 +f 3573 3574 3662 3661 +f 3574 3575 3663 3662 +f 3575 3576 3664 3663 +f 3576 3577 3665 3664 +f 3577 3578 3666 3665 +f 3578 3579 3667 3666 +f 3579 3580 3668 3667 +f 3580 3581 3669 3668 +f 3581 3582 3670 3669 +f 3582 3583 3671 3670 +f 3583 3584 3672 3671 +f 3584 3585 3673 3672 +f 3585 3586 3674 3673 +f 3586 3587 3675 3674 +f 3587 3588 3676 3675 +f 3588 3589 3677 3676 +f 3589 3590 3678 3677 +f 3590 3591 3679 3678 +f 3591 3592 3680 3679 +f 3592 3593 3681 3680 +f 3593 3594 3682 3681 +f 3594 3595 3683 3682 +f 3595 3596 3684 3683 +f 3596 3597 3685 3684 +f 3597 3598 3686 3685 +f 3598 3599 3687 3686 +f 3599 3600 3688 3687 +f 3600 3601 3689 3688 +f 3601 3602 3690 3689 +f 3602 3603 3691 3690 +f 3603 3604 3692 3691 +f 3604 3605 3693 3692 +f 3605 3606 3694 3693 +f 3606 3607 3695 3694 +f 3607 3608 3696 3695 +f 3608 3609 3697 3696 +f 3609 3610 3698 3697 +f 3610 3523 3611 3698 +f 3611 3612 3700 3699 +f 3612 3613 3701 3700 +f 3613 3614 3702 3701 +f 3614 3615 3703 3702 +f 3615 3616 3704 3703 +f 3616 3617 3705 3704 +f 3617 3618 3706 3705 +f 3618 3619 3707 3706 +f 3619 3620 3708 3707 +f 3620 3621 3709 3708 +f 3621 3622 3710 3709 +f 3622 3623 3711 3710 +f 3623 3624 3712 3711 +f 3624 3625 3713 3712 +f 3625 3626 3714 3713 +f 3626 3627 3715 3714 +f 3627 3628 3716 3715 +f 3628 3629 3717 3716 +f 3629 3630 3718 3717 +f 3630 3631 3719 3718 +f 3631 3632 3720 3719 +f 3632 3633 3721 3720 +f 3633 3634 3722 3721 +f 3634 3635 3723 3722 +f 3635 3636 3724 3723 +f 3636 3637 3725 3724 +f 3637 3638 3726 3725 +f 3638 3639 3727 3726 +f 3639 3640 3728 3727 +f 3640 3641 3729 3728 +f 3641 3642 3730 3729 +f 3642 3643 3731 3730 +f 3643 3644 3732 3731 +f 3644 3645 3733 3732 +f 3645 3646 3734 3733 +f 3646 3647 3735 3734 +f 3647 3648 3736 3735 +f 3648 3649 3737 3736 +f 3649 3650 3738 3737 +f 3650 3651 3739 3738 +f 3651 3652 3740 3739 +f 3652 3653 3741 3740 +f 3653 3654 3742 3741 +f 3654 3655 3743 3742 +f 3655 3656 3744 3743 +f 3656 3657 3745 3744 +f 3657 3658 3746 3745 +f 3658 3659 3747 3746 +f 3659 3660 3748 3747 +f 3660 3661 3749 3748 +f 3661 3662 3750 3749 +f 3662 3663 3751 3750 +f 3663 3664 3752 3751 +f 3664 3665 3753 3752 +f 3665 3666 3754 3753 +f 3666 3667 3755 3754 +f 3667 3668 3756 3755 +f 3668 3669 3757 3756 +f 3669 3670 3758 3757 +f 3670 3671 3759 3758 +f 3671 3672 3760 3759 +f 3672 3673 3761 3760 +f 3673 3674 3762 3761 +f 3674 3675 3763 3762 +f 3675 3676 3764 3763 +f 3676 3677 3765 3764 +f 3677 3678 3766 3765 +f 3678 3679 3767 3766 +f 3679 3680 3768 3767 +f 3680 3681 3769 3768 +f 3681 3682 3770 3769 +f 3682 3683 3771 3770 +f 3683 3684 3772 3771 +f 3684 3685 3773 3772 +f 3685 3686 3774 3773 +f 3686 3687 3775 3774 +f 3687 3688 3776 3775 +f 3688 3689 3777 3776 +f 3689 3690 3778 3777 +f 3690 3691 3779 3778 +f 3691 3692 3780 3779 +f 3692 3693 3781 3780 +f 3693 3694 3782 3781 +f 3694 3695 3783 3782 +f 3695 3696 3784 3783 +f 3696 3697 3785 3784 +f 3697 3698 3786 3785 +f 3698 3611 3699 3786 +f 3699 3700 3788 3787 +f 3700 3701 3789 3788 +f 3701 3702 3790 3789 +f 3702 3703 3791 3790 +f 3703 3704 3792 3791 +f 3704 3705 3793 3792 +f 3705 3706 3794 3793 +f 3706 3707 3795 3794 +f 3707 3708 3796 3795 +f 3708 3709 3797 3796 +f 3709 3710 3798 3797 +f 3710 3711 3799 3798 +f 3711 3712 3800 3799 +f 3712 3713 3801 3800 +f 3713 3714 3802 3801 +f 3714 3715 3803 3802 +f 3715 3716 3804 3803 +f 3716 3717 3805 3804 +f 3717 3718 3806 3805 +f 3718 3719 3807 3806 +f 3719 3720 3808 3807 +f 3720 3721 3809 3808 +f 3721 3722 3810 3809 +f 3722 3723 3811 3810 +f 3723 3724 3812 3811 +f 3724 3725 3813 3812 +f 3725 3726 3814 3813 +f 3726 3727 3815 3814 +f 3727 3728 3816 3815 +f 3728 3729 3817 3816 +f 3729 3730 3818 3817 +f 3730 3731 3819 3818 +f 3731 3732 3820 3819 +f 3732 3733 3821 3820 +f 3733 3734 3822 3821 +f 3734 3735 3823 3822 +f 3735 3736 3824 3823 +f 3736 3737 3825 3824 +f 3737 3738 3826 3825 +f 3738 3739 3827 3826 +f 3739 3740 3828 3827 +f 3740 3741 3829 3828 +f 3741 3742 3830 3829 +f 3742 3743 3831 3830 +f 3743 3744 3832 3831 +f 3744 3745 3833 3832 +f 3745 3746 3834 3833 +f 3746 3747 3835 3834 +f 3747 3748 3836 3835 +f 3748 3749 3837 3836 +f 3749 3750 3838 3837 +f 3750 3751 3839 3838 +f 3751 3752 3840 3839 +f 3752 3753 3841 3840 +f 3753 3754 3842 3841 +f 3754 3755 3843 3842 +f 3755 3756 3844 3843 +f 3756 3757 3845 3844 +f 3757 3758 3846 3845 +f 3758 3759 3847 3846 +f 3759 3760 3848 3847 +f 3760 3761 3849 3848 +f 3761 3762 3850 3849 +f 3762 3763 3851 3850 +f 3763 3764 3852 3851 +f 3764 3765 3853 3852 +f 3765 3766 3854 3853 +f 3766 3767 3855 3854 +f 3767 3768 3856 3855 +f 3768 3769 3857 3856 +f 3769 3770 3858 3857 +f 3770 3771 3859 3858 +f 3771 3772 3860 3859 +f 3772 3773 3861 3860 +f 3773 3774 3862 3861 +f 3774 3775 3863 3862 +f 3775 3776 3864 3863 +f 3776 3777 3865 3864 +f 3777 3778 3866 3865 +f 3778 3779 3867 3866 +f 3779 3780 3868 3867 +f 3780 3781 3869 3868 +f 3781 3782 3870 3869 +f 3782 3783 3871 3870 +f 3783 3784 3872 3871 +f 3784 3785 3873 3872 +f 3785 3786 3874 3873 +f 3786 3699 3787 3874 +f 1 4 3 +f 2 3787 3788 +f 1 5 4 +f 2 3788 3789 +f 1 6 5 +f 2 3789 3790 +f 1 7 6 +f 2 3790 3791 +f 1 8 7 +f 2 3791 3792 +f 1 9 8 +f 2 3792 3793 +f 1 10 9 +f 2 3793 3794 +f 1 11 10 +f 2 3794 3795 +f 1 12 11 +f 2 3795 3796 +f 1 13 12 +f 2 3796 3797 +f 1 14 13 +f 2 3797 3798 +f 1 15 14 +f 2 3798 3799 +f 1 16 15 +f 2 3799 3800 +f 1 17 16 +f 2 3800 3801 +f 1 18 17 +f 2 3801 3802 +f 1 19 18 +f 2 3802 3803 +f 1 20 19 +f 2 3803 3804 +f 1 21 20 +f 2 3804 3805 +f 1 22 21 +f 2 3805 3806 +f 1 23 22 +f 2 3806 3807 +f 1 24 23 +f 2 3807 3808 +f 1 25 24 +f 2 3808 3809 +f 1 26 25 +f 2 3809 3810 +f 1 27 26 +f 2 3810 3811 +f 1 28 27 +f 2 3811 3812 +f 1 29 28 +f 2 3812 3813 +f 1 30 29 +f 2 3813 3814 +f 1 31 30 +f 2 3814 3815 +f 1 32 31 +f 2 3815 3816 +f 1 33 32 +f 2 3816 3817 +f 1 34 33 +f 2 3817 3818 +f 1 35 34 +f 2 3818 3819 +f 1 36 35 +f 2 3819 3820 +f 1 37 36 +f 2 3820 3821 +f 1 38 37 +f 2 3821 3822 +f 1 39 38 +f 2 3822 3823 +f 1 40 39 +f 2 3823 3824 +f 1 41 40 +f 2 3824 3825 +f 1 42 41 +f 2 3825 3826 +f 1 43 42 +f 2 3826 3827 +f 1 44 43 +f 2 3827 3828 +f 1 45 44 +f 2 3828 3829 +f 1 46 45 +f 2 3829 3830 +f 1 47 46 +f 2 3830 3831 +f 1 48 47 +f 2 3831 3832 +f 1 49 48 +f 2 3832 3833 +f 1 50 49 +f 2 3833 3834 +f 1 51 50 +f 2 3834 3835 +f 1 52 51 +f 2 3835 3836 +f 1 53 52 +f 2 3836 3837 +f 1 54 53 +f 2 3837 3838 +f 1 55 54 +f 2 3838 3839 +f 1 56 55 +f 2 3839 3840 +f 1 57 56 +f 2 3840 3841 +f 1 58 57 +f 2 3841 3842 +f 1 59 58 +f 2 3842 3843 +f 1 60 59 +f 2 3843 3844 +f 1 61 60 +f 2 3844 3845 +f 1 62 61 +f 2 3845 3846 +f 1 63 62 +f 2 3846 3847 +f 1 64 63 +f 2 3847 3848 +f 1 65 64 +f 2 3848 3849 +f 1 66 65 +f 2 3849 3850 +f 1 67 66 +f 2 3850 3851 +f 1 68 67 +f 2 3851 3852 +f 1 69 68 +f 2 3852 3853 +f 1 70 69 +f 2 3853 3854 +f 1 71 70 +f 2 3854 3855 +f 1 72 71 +f 2 3855 3856 +f 1 73 72 +f 2 3856 3857 +f 1 74 73 +f 2 3857 3858 +f 1 75 74 +f 2 3858 3859 +f 1 76 75 +f 2 3859 3860 +f 1 77 76 +f 2 3860 3861 +f 1 78 77 +f 2 3861 3862 +f 1 79 78 +f 2 3862 3863 +f 1 80 79 +f 2 3863 3864 +f 1 81 80 +f 2 3864 3865 +f 1 82 81 +f 2 3865 3866 +f 1 83 82 +f 2 3866 3867 +f 1 84 83 +f 2 3867 3868 +f 1 85 84 +f 2 3868 3869 +f 1 86 85 +f 2 3869 3870 +f 1 87 86 +f 2 3870 3871 +f 1 88 87 +f 2 3871 3872 +f 1 89 88 +f 2 3872 3873 +f 1 90 89 +f 2 3873 3874 +f 1 3 90 +f 2 3874 3787 diff --git a/data/spheres/23.obj b/data/spheres/23.obj new file mode 100644 index 0000000..e1e4149 --- /dev/null +++ b/data/spheres/23.obj @@ -0,0 +1,8558 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 6.67926 99.7767 5.88009e-39 +v 6.66369 99.7767 0.455808 +v 6.61705 99.7767 0.909492 +v 6.53956 99.7767 1.35893 +v 6.43157 99.7767 1.80204 +v 6.2936 99.7767 2.23675 +v 6.12629 99.7767 2.66102 +v 5.93042 99.7767 3.07289 +v 5.70689 99.7767 3.47043 +v 5.45675 99.7767 3.85179 +v 5.18118 99.7767 4.2152 +v 4.88144 99.7767 4.55895 +v 4.55895 99.7767 4.88144 +v 4.2152 99.7767 5.18117 +v 3.8518 99.7767 5.45675 +v 3.47044 99.7767 5.70689 +v 3.0729 99.7767 5.93041 +v 2.66103 99.7767 6.12629 +v 2.23675 99.7767 6.2936 +v 1.80205 99.7767 6.43157 +v 1.35894 99.7767 6.53955 +v 0.9095 99.7767 6.61705 +v 0.455816 99.7767 6.66369 +v 7.67034e-06 99.7767 6.67926 +v -0.4558 99.7767 6.66369 +v -0.909484 99.7767 6.61705 +v -1.35893 99.7767 6.53956 +v -1.80203 99.7767 6.43158 +v -2.23674 99.7767 6.29361 +v -2.66101 99.7767 6.1263 +v -3.07288 99.7767 5.93042 +v -3.47043 99.7767 5.70689 +v -3.85179 99.7767 5.45676 +v -4.21519 99.7767 5.18118 +v -4.55894 99.7767 4.88145 +v -4.88143 99.7767 4.55896 +v -5.18117 99.7767 4.21521 +v -5.45675 99.7767 3.85181 +v -5.70688 99.7767 3.47045 +v -5.93041 99.7767 3.0729 +v -6.12629 99.7767 2.66104 +v -6.2936 99.7767 2.23676 +v -6.43157 99.7767 1.80206 +v -6.53955 99.7767 1.35895 +v -6.61705 99.7767 0.909507 +v -6.66369 99.7767 0.455824 +v -6.67926 99.7767 1.53407e-05 +v -6.66369 99.7767 -0.455793 +v -6.61705 99.7767 -0.909475 +v -6.53956 99.7767 -1.35892 +v -6.43158 99.7767 -1.80203 +v -6.29361 99.7767 -2.23673 +v -6.1263 99.7767 -2.66101 +v -5.93042 99.7767 -3.07288 +v -5.7069 99.7767 -3.47042 +v -5.45676 99.7767 -3.85178 +v -5.18119 99.7767 -4.21518 +v -4.88146 99.7767 -4.55893 +v -4.55896 99.7767 -4.88143 +v -4.21522 99.7767 -5.18116 +v -3.85181 99.7767 -5.45674 +v -3.47045 99.7767 -5.70688 +v -3.07291 99.7767 -5.9304 +v -2.66104 99.7767 -6.12628 +v -2.23677 99.7767 -6.2936 +v -1.80206 99.7767 -6.43157 +v -1.35896 99.7767 -6.53955 +v -0.909514 99.7767 -6.61704 +v -0.455831 99.7767 -6.66369 +v -2.22148e-05 99.7767 -6.67926 +v 0.455786 99.7767 -6.66369 +v 0.909467 99.7767 -6.61705 +v 1.35891 99.7767 -6.53956 +v 1.80202 99.7767 -6.43158 +v 2.23672 99.7767 -6.29361 +v 2.661 99.7767 -6.1263 +v 3.07287 99.7767 -5.93043 +v 3.47041 99.7767 -5.7069 +v 3.85178 99.7767 -5.45677 +v 4.21518 99.7767 -5.18119 +v 4.55893 99.7767 -4.88146 +v 4.88142 99.7767 -4.55897 +v 5.18116 99.7767 -4.21522 +v 5.45674 99.7767 -3.85182 +v 5.70687 99.7767 -3.47046 +v 5.9304 99.7767 -3.07292 +v 6.12628 99.7767 -2.66105 +v 6.29359 99.7767 -2.23678 +v 6.43157 99.7767 -1.80207 +v 6.53955 99.7767 -1.35897 +v 6.61704 99.7767 -0.909522 +v 6.66369 99.7767 -0.455839 +v 13.3287 99.1077 5.88009e-39 +v 13.2976 99.1077 0.909581 +v 13.2045 99.1077 1.81492 +v 13.0499 99.1077 2.7118 +v 12.8344 99.1077 3.59603 +v 12.5591 99.1077 4.4635 +v 12.2252 99.1077 5.31016 +v 11.8343 99.1077 6.13206 +v 11.3883 99.1077 6.92537 +v 10.8891 99.1077 7.68639 +v 10.3392 99.1077 8.41157 +v 9.74109 99.1077 9.09753 +v 9.09754 99.1077 9.74108 +v 8.41158 99.1077 10.3392 +v 7.6864 99.1077 10.8891 +v 6.92538 99.1077 11.3883 +v 6.13207 99.1077 11.8343 +v 5.31017 99.1077 12.2252 +v 4.46352 99.1077 12.5591 +v 3.59605 99.1077 12.8344 +v 2.71181 99.1077 13.0499 +v 1.81494 99.1077 13.2045 +v 0.909597 99.1077 13.2976 +v 1.53064e-05 99.1077 13.3287 +v -0.909565 99.1077 13.2976 +v -1.81491 99.1077 13.2045 +v -2.71178 99.1077 13.0499 +v -3.59602 99.1077 12.8344 +v -4.46349 99.1077 12.5591 +v -5.31014 99.1077 12.2252 +v -6.13204 99.1077 11.8344 +v -6.92535 99.1077 11.3883 +v -7.68637 99.1077 10.8891 +v -8.41156 99.1077 10.3392 +v -9.09752 99.1077 9.7411 +v -9.74107 99.1077 9.09755 +v -10.3392 99.1077 8.41159 +v -10.8891 99.1077 7.68641 +v -11.3883 99.1077 6.92539 +v -11.8343 99.1077 6.13209 +v -12.2252 99.1077 5.31019 +v -12.5591 99.1077 4.46353 +v -12.8344 99.1077 3.59607 +v -13.0499 99.1077 2.71183 +v -13.2045 99.1077 1.81495 +v -13.2976 99.1077 0.909612 +v -13.3287 99.1077 3.06128e-05 +v -13.2976 99.1077 -0.909551 +v -13.2045 99.1077 -1.81489 +v -13.0499 99.1077 -2.71177 +v -12.8344 99.1077 -3.596 +v -12.5591 99.1077 -4.46347 +v -12.2252 99.1077 -5.31013 +v -11.8344 99.1077 -6.13203 +v -11.3883 99.1077 -6.92534 +v -10.8892 99.1077 -7.68636 +v -10.3392 99.1077 -8.41154 +v -9.74111 99.1077 -9.09751 +v -9.09756 99.1077 -9.74106 +v -8.41161 99.1077 -10.3392 +v -7.68643 99.1077 -10.8891 +v -6.92541 99.1077 -11.3883 +v -6.1321 99.1077 -11.8343 +v -5.3102 99.1077 -12.2252 +v -4.46355 99.1077 -12.5591 +v -3.59608 99.1077 -12.8344 +v -2.71184 99.1077 -13.0499 +v -1.81497 99.1077 -13.2045 +v -0.909626 99.1077 -13.2976 +v -4.43303e-05 99.1077 -13.3287 +v 0.909537 99.1077 -13.2976 +v 1.81487 99.1077 -13.2045 +v 2.71175 99.1077 -13.0499 +v 3.59599 99.1077 -12.8344 +v 4.46346 99.1077 -12.5591 +v 5.31012 99.1077 -12.2252 +v 6.13202 99.1077 -11.8344 +v 6.92533 99.1077 -11.3883 +v 7.68635 99.1077 -10.8892 +v 8.41153 99.1077 -10.3392 +v 9.0975 99.1077 -9.74112 +v 9.74105 99.1077 -9.09758 +v 10.3392 99.1077 -8.41161 +v 10.8891 99.1077 -7.68643 +v 11.3883 99.1077 -6.92542 +v 11.8343 99.1077 -6.13212 +v 12.2252 99.1077 -5.31022 +v 12.5591 99.1077 -4.46356 +v 12.8344 99.1077 -3.59609 +v 13.0499 99.1077 -2.71186 +v 13.2045 99.1077 -1.81498 +v 13.2976 99.1077 -0.909643 +v 19.9186 97.9962 5.88009e-39 +v 19.8722 97.9962 1.35929 +v 19.7331 97.9962 2.71224 +v 19.502 97.9962 4.05255 +v 19.18 97.9962 5.37397 +v 18.7685 97.9962 6.67032 +v 18.2696 97.9962 7.93558 +v 17.6854 97.9962 9.16384 +v 17.0188 97.9962 10.3494 +v 16.2729 97.9962 11.4866 +v 15.4511 97.9962 12.5704 +v 14.5572 97.9962 13.5955 +v 13.5955 97.9962 14.5572 +v 12.5704 97.9962 15.4511 +v 11.4867 97.9962 16.2729 +v 10.3494 97.9962 17.0188 +v 9.16386 97.9962 17.6854 +v 7.9356 97.9962 18.2695 +v 6.67035 97.9962 18.7685 +v 5.37399 97.9962 19.1799 +v 4.05258 97.9962 19.502 +v 2.71227 97.9962 19.7331 +v 1.35931 97.9962 19.8721 +v 2.28741e-05 97.9962 19.9186 +v -1.35927 97.9962 19.8722 +v -2.71222 97.9962 19.7331 +v -4.05253 97.9962 19.502 +v -5.37394 97.9962 19.18 +v -6.6703 97.9962 18.7685 +v -7.93556 97.9962 18.2696 +v -9.16382 97.9962 17.6854 +v -10.3493 97.9962 17.0188 +v -11.4866 97.9962 16.2729 +v -12.5704 97.9962 15.4511 +v -13.5955 97.9962 14.5572 +v -14.5572 97.9962 13.5955 +v -15.451 97.9962 12.5704 +v -16.2729 97.9962 11.4867 +v -17.0188 97.9962 10.3494 +v -17.6854 97.9962 9.16388 +v -18.2695 97.9962 7.93562 +v -18.7685 97.9962 6.67037 +v -19.1799 97.9962 5.37401 +v -19.502 97.9962 4.0526 +v -19.7331 97.9962 2.71229 +v -19.8721 97.9962 1.35934 +v -19.9186 97.9962 4.57483e-05 +v -19.8722 97.9962 -1.35925 +v -19.7331 97.9962 -2.7122 +v -19.502 97.9962 -4.05251 +v -19.18 97.9962 -5.37392 +v -18.7685 97.9962 -6.67028 +v -18.2696 97.9962 -7.93554 +v -17.6854 97.9962 -9.1638 +v -17.0189 97.9962 -10.3493 +v -16.2729 97.9962 -11.4866 +v -15.4511 97.9962 -12.5703 +v -14.5573 97.9962 -13.5955 +v -13.5955 97.9962 -14.5572 +v -12.5704 97.9962 -15.451 +v -11.4867 97.9962 -16.2728 +v -10.3494 97.9962 -17.0188 +v -9.1639 97.9962 -17.6854 +v -7.93565 97.9962 -18.2695 +v -6.67039 97.9962 -18.7685 +v -5.37403 97.9962 -19.1799 +v -4.05262 97.9962 -19.502 +v -2.71231 97.9962 -19.7331 +v -1.35936 97.9962 -19.8721 +v -6.62479e-05 97.9962 -19.9186 +v 1.35923 97.9962 -19.8722 +v 2.71217 97.9962 -19.7331 +v 4.05248 97.9962 -19.502 +v 5.3739 97.9962 -19.18 +v 6.67026 97.9962 -18.7685 +v 7.93551 97.9962 -18.2696 +v 9.16378 97.9962 -17.6855 +v 10.3493 97.9962 -17.0189 +v 11.4866 97.9962 -16.2729 +v 12.5703 97.9962 -15.4511 +v 13.5954 97.9962 -14.5573 +v 14.5572 97.9962 -13.5956 +v 15.451 97.9962 -12.5704 +v 16.2728 97.9962 -11.4867 +v 17.0188 97.9962 -10.3495 +v 17.6854 97.9962 -9.16392 +v 18.2695 97.9962 -7.93567 +v 18.7685 97.9962 -6.67041 +v 19.1799 97.9962 -5.37406 +v 19.502 97.9962 -4.05264 +v 19.733 97.9962 -2.71234 +v 19.8721 97.9962 -1.35938 +v 26.4195 96.4469 5.88009e-39 +v 26.3579 96.4469 1.80293 +v 26.1734 96.4469 3.59746 +v 25.8669 96.4469 5.37521 +v 25.4398 96.4469 7.1279 +v 24.8941 96.4469 8.84735 +v 24.2323 96.4469 10.5256 +v 23.4575 96.4469 12.1547 +v 22.5734 96.4469 13.7271 +v 21.584 96.4469 15.2356 +v 20.4939 96.4469 16.673 +v 19.3083 96.4469 18.0327 +v 18.0327 96.4469 19.3083 +v 16.6731 96.4469 20.4939 +v 15.2356 96.4469 21.5839 +v 13.7272 96.4469 22.5733 +v 12.1547 96.4469 23.4575 +v 10.5256 96.4469 24.2323 +v 8.84738 96.4469 24.8941 +v 7.12793 96.4469 25.4398 +v 5.37524 96.4469 25.8669 +v 3.59749 96.4469 26.1734 +v 1.80296 96.4469 26.3579 +v 3.03397e-05 96.4469 26.4195 +v -1.8029 96.4469 26.3579 +v -3.59742 96.4469 26.1735 +v -5.37518 96.4469 25.8669 +v -7.12787 96.4469 25.4398 +v -8.84732 96.4469 24.8941 +v -10.5255 96.4469 24.2323 +v -12.1547 96.4469 23.4575 +v -13.7271 96.4469 22.5734 +v -15.2356 96.4469 21.584 +v -16.673 96.4469 20.4939 +v -18.0327 96.4469 19.3084 +v -19.3083 96.4469 18.0328 +v -20.4939 96.4469 16.6731 +v -21.5839 96.4469 15.2357 +v -22.5733 96.4469 13.7272 +v -23.4575 96.4469 12.1547 +v -24.2323 96.4469 10.5256 +v -24.8941 96.4469 8.84741 +v -25.4398 96.4469 7.12796 +v -25.8669 96.4469 5.37527 +v -26.1734 96.4469 3.59752 +v -26.3579 96.4469 1.80299 +v -26.4195 96.4469 6.06794e-05 +v -26.3579 96.4469 -1.80287 +v -26.1735 96.4469 -3.59739 +v -25.8669 96.4469 -5.37514 +v -25.4398 96.4469 -7.12784 +v -24.8941 96.4469 -8.84729 +v -24.2323 96.4469 -10.5255 +v -23.4575 96.4469 -12.1546 +v -22.5734 96.4469 -13.7271 +v -21.584 96.4469 -15.2356 +v -20.494 96.4469 -16.673 +v -19.3084 96.4469 -18.0327 +v -18.0328 96.4469 -19.3083 +v -16.6731 96.4469 -20.4939 +v -15.2357 96.4469 -21.5839 +v -13.7272 96.4469 -22.5733 +v -12.1548 96.4469 -23.4575 +v -10.5256 96.4469 -24.2323 +v -8.84744 96.4469 -24.8941 +v -7.12799 96.4469 -25.4398 +v -5.3753 96.4469 -25.8669 +v -3.59754 96.4469 -26.1734 +v -1.80302 96.4469 -26.3579 +v -8.78696e-05 96.4469 -26.4195 +v 1.80284 96.4469 -26.3579 +v 3.59736 96.4469 -26.1735 +v 5.37511 96.4469 -25.867 +v 7.1278 96.4469 -25.4398 +v 8.84726 96.4469 -24.8941 +v 10.5255 96.4469 -24.2323 +v 12.1546 96.4469 -23.4576 +v 13.7271 96.4469 -22.5734 +v 15.2355 96.4469 -21.584 +v 16.673 96.4469 -20.494 +v 18.0327 96.4469 -19.3084 +v 19.3083 96.4469 -18.0328 +v 20.4939 96.4469 -16.6731 +v 21.5839 96.4469 -15.2357 +v 22.5733 96.4469 -13.7273 +v 23.4574 96.4469 -12.1548 +v 24.2322 96.4469 -10.5257 +v 24.894 96.4469 -8.84747 +v 25.4398 96.4469 -7.12802 +v 25.8669 96.4469 -5.37533 +v 26.1734 96.4469 -3.59758 +v 26.3579 96.4469 -1.80305 +v 32.8025 94.4669 5.88009e-39 +v 32.726 94.4669 2.23852 +v 32.4969 94.4669 4.4666 +v 32.1164 94.4669 6.67385 +v 31.5861 94.4669 8.84999 +v 30.9085 94.4669 10.9849 +v 30.0868 94.4669 13.0685 +v 29.1248 94.4669 15.0913 +v 28.0271 94.4669 17.0436 +v 26.7986 94.4669 18.9165 +v 25.4453 94.4669 20.7012 +v 23.9732 94.4669 22.3894 +v 22.3894 94.4669 23.9732 +v 20.7013 94.4669 25.4452 +v 18.9166 94.4669 26.7986 +v 17.0437 94.4669 28.027 +v 15.0913 94.4669 29.1248 +v 13.0686 94.4669 30.0868 +v 10.9849 94.4669 30.9085 +v 8.85003 94.4669 31.5861 +v 6.67389 94.4669 32.1164 +v 4.46664 94.4669 32.4969 +v 2.23856 94.4669 32.726 +v 3.76697e-05 94.4669 32.8025 +v -2.23848 94.4669 32.726 +v -4.46656 94.4669 32.4969 +v -6.67382 94.4669 32.1164 +v -8.84996 94.4669 31.5861 +v -10.9848 94.4669 30.9085 +v -13.0685 94.4669 30.0868 +v -15.0912 94.4669 29.1248 +v -17.0436 94.4669 28.0271 +v -18.9165 94.4669 26.7987 +v -20.7012 94.4669 25.4453 +v -22.3894 94.4669 23.9733 +v -23.9732 94.4669 22.3895 +v -25.4452 94.4669 20.7013 +v -26.7986 94.4669 18.9166 +v -28.027 94.4669 17.0437 +v -29.1248 94.4669 15.0913 +v -30.0868 94.4669 13.0686 +v -30.9085 94.4669 10.9849 +v -31.586 94.4669 8.85007 +v -32.1164 94.4669 6.67393 +v -32.4969 94.4669 4.46668 +v -32.726 94.4669 2.23859 +v -32.8025 94.4669 7.53395e-05 +v -32.726 94.4669 -2.23844 +v -32.497 94.4669 -4.46652 +v -32.1164 94.4669 -6.67378 +v -31.5861 94.4669 -8.84992 +v -30.9085 94.4669 -10.9848 +v -30.0868 94.4669 -13.0685 +v -29.1249 94.4669 -15.0912 +v -28.0271 94.4669 -17.0436 +v -26.7987 94.4669 -18.9165 +v -25.4453 94.4669 -20.7012 +v -23.9733 94.4669 -22.3894 +v -22.3895 94.4669 -23.9732 +v -20.7013 94.4669 -25.4452 +v -18.9166 94.4669 -26.7986 +v -17.0437 94.4669 -28.027 +v -15.0914 94.4669 -29.1248 +v -13.0686 94.4669 -30.0867 +v -10.985 94.4669 -30.9084 +v -8.8501 94.4669 -31.586 +v -6.67396 94.4669 -32.1163 +v -4.46671 94.4669 -32.4969 +v -2.23863 94.4669 -32.726 +v -0.000109099 94.4669 -32.8025 +v 2.23841 94.4669 -32.726 +v 4.46648 94.4669 -32.497 +v 6.67374 94.4669 -32.1164 +v 8.84988 94.4669 -31.5861 +v 10.9848 94.4669 -30.9085 +v 13.0684 94.4669 -30.0868 +v 15.0912 94.4669 -29.1249 +v 17.0435 94.4669 -28.0271 +v 18.9164 94.4669 -26.7987 +v 20.7011 94.4669 -25.4453 +v 22.3893 94.4669 -23.9733 +v 23.9731 94.4669 -22.3895 +v 25.4452 94.4669 -20.7013 +v 26.7985 94.4669 -18.9166 +v 28.027 94.4669 -17.0438 +v 29.1248 94.4669 -15.0914 +v 30.0867 94.4669 -13.0687 +v 30.9084 94.4669 -10.985 +v 31.586 94.4669 -8.85014 +v 32.1163 94.4669 -6.674 +v 32.4969 94.4669 -4.46675 +v 32.726 94.4669 -2.23867 +v 39.0389 92.065 5.88009e-39 +v 38.9479 92.065 2.66411 +v 38.6753 92.065 5.31579 +v 38.2224 92.065 7.94269 +v 37.5912 92.065 10.5326 +v 36.7848 92.065 13.0733 +v 35.8069 92.065 15.5531 +v 34.6621 92.065 17.9604 +v 33.3556 92.065 20.284 +v 31.8936 92.065 22.5129 +v 30.2829 92.065 24.637 +v 28.531 92.065 26.6461 +v 26.6461 92.065 28.531 +v 24.637 92.065 30.2829 +v 22.513 92.065 31.8936 +v 20.284 92.065 33.3556 +v 17.9605 92.065 34.662 +v 15.5532 92.065 35.8069 +v 13.0734 92.065 36.7848 +v 10.5326 92.065 37.5912 +v 7.94274 92.065 38.2224 +v 5.31584 92.065 38.6753 +v 2.66415 92.065 38.9479 +v 4.48315e-05 92.065 39.0389 +v -2.66406 92.065 38.9479 +v -5.31575 92.065 38.6753 +v -7.94265 92.065 38.2224 +v -10.5325 92.065 37.5912 +v -13.0733 92.065 36.7848 +v -15.5531 92.065 35.8069 +v -17.9604 92.065 34.6621 +v -20.2839 92.065 33.3556 +v -22.5129 92.065 31.8936 +v -24.6369 92.065 30.283 +v -26.6461 92.065 28.5311 +v -28.531 92.065 26.6462 +v -30.2829 92.065 24.637 +v -31.8936 92.065 22.513 +v -33.3556 92.065 20.284 +v -34.662 92.065 17.9605 +v -35.8069 92.065 15.5532 +v -36.7848 92.065 13.0734 +v -37.5912 92.065 10.5327 +v -38.2223 92.065 7.94278 +v -38.6753 92.065 5.31588 +v -38.9479 92.065 2.6642 +v -39.0389 92.065 8.96631e-05 +v -38.9479 92.065 -2.66402 +v -38.6753 92.065 -5.3157 +v -38.2224 92.065 -7.9426 +v -37.5913 92.065 -10.5325 +v -36.7849 92.065 -13.0732 +v -35.807 92.065 -15.553 +v -34.6621 92.065 -17.9603 +v -33.3556 92.065 -20.2839 +v -31.8937 92.065 -22.5129 +v -30.283 92.065 -24.6369 +v -28.5311 92.065 -26.646 +v -26.6462 92.065 -28.531 +v -24.6371 92.065 -30.2828 +v -22.5131 92.065 -31.8935 +v -20.2841 92.065 -33.3555 +v -17.9605 92.065 -34.662 +v -15.5533 92.065 -35.8069 +v -13.0735 92.065 -36.7848 +v -10.5327 92.065 -37.5912 +v -7.94282 92.065 -38.2223 +v -5.31592 92.065 -38.6753 +v -2.66424 92.065 -38.9479 +v -0.000129841 92.065 -39.0389 +v 2.66398 92.065 -38.9479 +v 5.31565 92.065 -38.6753 +v 7.94255 92.065 -38.2224 +v 10.5324 92.065 -37.5913 +v 13.0732 92.065 -36.7849 +v 15.553 92.065 -35.807 +v 17.9603 92.065 -34.6621 +v 20.2839 92.065 -33.3557 +v 22.5128 92.065 -31.8937 +v 24.6369 92.065 -30.283 +v 26.646 92.065 -28.5311 +v 28.5309 92.065 -26.6462 +v 30.2828 92.065 -24.6371 +v 31.8935 92.065 -22.5131 +v 33.3555 92.065 -20.2841 +v 34.662 92.065 -17.9606 +v 35.8069 92.065 -15.5533 +v 36.7848 92.065 -13.0735 +v 37.5912 92.065 -10.5327 +v 38.2223 92.065 -7.94287 +v 38.6753 92.065 -5.31597 +v 38.9479 92.065 -2.66429 +v 45.101 89.2519 5.88009e-39 +v 44.9958 89.2519 3.0778 +v 44.6809 89.2519 6.14125 +v 44.1577 89.2519 9.17606 +v 43.4285 89.2519 12.1681 +v 42.4969 89.2519 15.1034 +v 41.3671 89.2519 17.9683 +v 40.0445 89.2519 20.7494 +v 38.5352 89.2519 23.4337 +v 36.8462 89.2519 26.0088 +v 34.9854 89.2519 28.4627 +v 32.9614 89.2519 30.7838 +v 30.7838 89.2519 32.9614 +v 28.4627 89.2519 34.9853 +v 26.0089 89.2519 36.8461 +v 23.4338 89.2519 38.5351 +v 20.7494 89.2519 40.0445 +v 17.9683 89.2519 41.3671 +v 15.1034 89.2519 42.4969 +v 12.1681 89.2519 43.4285 +v 9.17611 89.2519 44.1576 +v 6.1413 89.2519 44.6809 +v 3.07785 89.2519 44.9958 +v 5.17931e-05 89.2519 45.101 +v -3.07774 89.2519 44.9958 +v -6.14119 89.2519 44.6809 +v -9.17601 89.2519 44.1577 +v -12.168 89.2519 43.4285 +v -15.1033 89.2519 42.4969 +v -17.9682 89.2519 41.3672 +v -20.7493 89.2519 40.0445 +v -23.4337 89.2519 38.5352 +v -26.0088 89.2519 36.8462 +v -28.4626 89.2519 34.9854 +v -30.7838 89.2519 32.9615 +v -32.9614 89.2519 30.7839 +v -34.9853 89.2519 28.4628 +v -36.8461 89.2519 26.0089 +v -38.5351 89.2519 23.4338 +v -40.0445 89.2519 20.7495 +v -41.3671 89.2519 17.9684 +v -42.4969 89.2519 15.1035 +v -43.4285 89.2519 12.1682 +v -44.1576 89.2519 9.17617 +v -44.6809 89.2519 6.14135 +v -44.9958 89.2519 3.0779 +v -45.101 89.2519 0.000103586 +v -44.9958 89.2519 -3.0777 +v -44.6809 89.2519 -6.14114 +v -44.1577 89.2519 -9.17595 +v -43.4285 89.2519 -12.168 +v -42.4969 89.2519 -15.1033 +v -41.3672 89.2519 -17.9682 +v -40.0446 89.2519 -20.7493 +v -38.5352 89.2519 -23.4336 +v -36.8462 89.2519 -26.0087 +v -34.9854 89.2519 -28.4626 +v -32.9615 89.2519 -30.7837 +v -30.7839 89.2519 -32.9613 +v -28.4628 89.2519 -34.9853 +v -26.009 89.2519 -36.8461 +v -23.4339 89.2519 -38.5351 +v -20.7495 89.2519 -40.0444 +v -17.9684 89.2519 -41.3671 +v -15.1035 89.2519 -42.4968 +v -12.1682 89.2519 -43.4285 +v -9.17621 89.2519 -44.1576 +v -6.1414 89.2519 -44.6809 +v -3.07795 89.2519 -44.9958 +v -0.000150003 89.2519 -45.101 +v 3.07765 89.2519 -44.9959 +v 6.14108 89.2519 -44.6809 +v 9.1759 89.2519 -44.1577 +v 12.1679 89.2519 -43.4286 +v 15.1032 89.2519 -42.497 +v 17.9681 89.2519 -41.3672 +v 20.7492 89.2519 -40.0446 +v 23.4336 89.2519 -38.5352 +v 26.0087 89.2519 -36.8462 +v 28.4625 89.2519 -34.9855 +v 30.7837 89.2519 -32.9615 +v 32.9613 89.2519 -30.7839 +v 34.9852 89.2519 -28.4628 +v 36.846 89.2519 -26.009 +v 38.535 89.2519 -23.4339 +v 40.0444 89.2519 -20.7496 +v 41.3671 89.2519 -17.9685 +v 42.4968 89.2519 -15.1036 +v 43.4285 89.2519 -12.1683 +v 44.1576 89.2519 -9.17627 +v 44.6809 89.2519 -6.14145 +v 44.9958 89.2519 -3.07801 +v 50.9616 86.0402 5.88009e-39 +v 50.8428 86.0402 3.47774 +v 50.487 86.0402 6.93927 +v 49.8957 86.0402 10.3684 +v 49.0718 86.0402 13.7493 +v 48.0192 86.0402 17.066 +v 46.7426 86.0402 20.3032 +v 45.2481 86.0402 23.4456 +v 43.5426 86.0402 26.4788 +v 41.6341 86.0402 29.3885 +v 39.5315 86.0402 32.1613 +v 37.2446 86.0402 34.784 +v 34.784 86.0402 37.2446 +v 32.1613 86.0402 39.5315 +v 29.3886 86.0402 41.6341 +v 26.4789 86.0402 43.5426 +v 23.4457 86.0402 45.2481 +v 20.3032 86.0402 46.7426 +v 17.0661 86.0402 48.0191 +v 13.7493 86.0402 49.0718 +v 10.3685 86.0402 49.8957 +v 6.93933 86.0402 50.487 +v 3.4778 86.0402 50.8428 +v 5.85234e-05 86.0402 50.9616 +v -3.47768 86.0402 50.8428 +v -6.93921 86.0402 50.487 +v -10.3684 86.0402 49.8957 +v -13.7492 86.0402 49.0719 +v -17.0659 86.0402 48.0192 +v -20.3031 86.0402 46.7426 +v -23.4456 86.0402 45.2481 +v -26.4788 86.0402 43.5426 +v -29.3885 86.0402 41.6342 +v -32.1612 86.0402 39.5316 +v -34.784 86.0402 37.2447 +v -37.2445 86.0402 34.7841 +v -39.5315 86.0402 32.1613 +v -41.6341 86.0402 29.3887 +v -43.5426 86.0402 26.4789 +v -45.248 86.0402 23.4458 +v -46.7425 86.0402 20.3033 +v -48.0191 86.0402 17.0661 +v -49.0718 86.0402 13.7494 +v -49.8957 86.0402 10.3686 +v -50.487 86.0402 6.93939 +v -50.8428 86.0402 3.47786 +v -50.9616 86.0402 0.000117047 +v -50.8428 86.0402 -3.47763 +v -50.487 86.0402 -6.93915 +v -49.8957 86.0402 -10.3683 +v -49.0719 86.0402 -13.7492 +v -48.0192 86.0402 -17.0659 +v -46.7426 86.0402 -20.303 +v -45.2481 86.0402 -23.4455 +v -43.5427 86.0402 -26.4787 +v -41.6342 86.0402 -29.3884 +v -39.5316 86.0402 -32.1612 +v -37.2447 86.0402 -34.7839 +v -34.7841 86.0402 -37.2445 +v -32.1614 86.0402 -39.5314 +v -29.3887 86.0402 -41.634 +v -26.479 86.0402 -43.5425 +v -23.4458 86.0402 -45.248 +v -20.3033 86.0402 -46.7425 +v -17.0662 86.0402 -48.0191 +v -13.7494 86.0402 -49.0718 +v -10.3686 86.0402 -49.8957 +v -6.93944 86.0402 -50.4869 +v -3.47791 86.0402 -50.8428 +v -0.000169495 86.0402 -50.9616 +v 3.47758 86.0402 -50.8428 +v 6.93908 86.0402 -50.487 +v 10.3683 86.0402 -49.8958 +v 13.7491 86.0402 -49.0719 +v 17.0658 86.0402 -48.0192 +v 20.303 86.0402 -46.7427 +v 23.4455 86.0402 -45.2482 +v 26.4787 86.0402 -43.5427 +v 29.3884 86.0402 -41.6342 +v 32.1611 86.0402 -39.5316 +v 34.7839 86.0402 -37.2447 +v 37.2445 86.0402 -34.7842 +v 39.5314 86.0402 -32.1614 +v 41.634 86.0402 -29.3887 +v 43.5425 86.0402 -26.479 +v 45.248 86.0402 -23.4459 +v 46.7425 86.0402 -20.3034 +v 48.0191 86.0402 -17.0662 +v 49.0718 86.0402 -13.7495 +v 49.8957 86.0402 -10.3687 +v 50.4869 86.0402 -6.93951 +v 50.8428 86.0402 -3.47798 +v 56.5947 82.4442 5.88009e-39 +v 56.4627 82.4442 3.86215 +v 56.0675 82.4442 7.7063 +v 55.4109 82.4442 11.5145 +v 54.496 82.4442 15.269 +v 53.327 82.4442 18.9524 +v 51.9093 82.4442 22.5474 +v 50.2496 82.4442 26.0372 +v 48.3556 82.4442 29.4057 +v 46.2362 82.4442 32.637 +v 43.9011 82.4442 35.7162 +v 41.3614 82.4442 38.6288 +v 38.6289 82.4442 41.3614 +v 35.7162 82.4442 43.9011 +v 32.6371 82.4442 46.2361 +v 29.4057 82.4442 48.3556 +v 26.0373 82.4442 50.2495 +v 22.5474 82.4442 51.9093 +v 18.9525 82.4442 53.3269 +v 15.2691 82.4442 54.496 +v 11.5146 82.4442 55.4109 +v 7.70637 82.4442 56.0675 +v 3.86222 82.4442 56.4627 +v 6.49923e-05 82.4442 56.5947 +v -3.86208 82.4442 56.4627 +v -7.70623 82.4442 56.0676 +v -11.5145 82.4442 55.411 +v -15.269 82.4442 54.496 +v -18.9523 82.4442 53.327 +v -22.5473 82.4442 51.9093 +v -26.0371 82.4442 50.2496 +v -29.4056 82.4442 48.3556 +v -32.637 82.4442 46.2362 +v -35.7161 82.4442 43.9012 +v -38.6288 82.4442 41.3615 +v -41.3614 82.4442 38.6289 +v -43.9011 82.4442 35.7163 +v -46.2361 82.4442 32.6371 +v -48.3555 82.4442 29.4058 +v -50.2495 82.4442 26.0373 +v -51.9092 82.4442 22.5475 +v -53.3269 82.4442 18.9525 +v -54.496 82.4442 15.2692 +v -55.4109 82.4442 11.5147 +v -56.0675 82.4442 7.70643 +v -56.4627 82.4442 3.86229 +v -56.5947 82.4442 0.000129985 +v -56.4627 82.4442 -3.86203 +v -56.0676 82.4442 -7.70616 +v -55.411 82.4442 -11.5144 +v -54.496 82.4442 -15.2689 +v -53.327 82.4442 -18.9523 +v -51.9093 82.4442 -22.5472 +v -50.2496 82.4442 -26.0371 +v -48.3557 82.4442 -29.4056 +v -46.2362 82.4442 -32.6369 +v -43.9012 82.4442 -35.7161 +v -41.3615 82.4442 -38.6287 +v -38.629 82.4442 -41.3613 +v -35.7164 82.4442 -43.901 +v -32.6372 82.4442 -46.236 +v -29.4058 82.4442 -48.3555 +v -26.0374 82.4442 -50.2495 +v -22.5475 82.4442 -51.9092 +v -18.9526 82.4442 -53.3269 +v -15.2692 82.4442 -54.4959 +v -11.5147 82.4442 -55.4109 +v -7.70649 82.4442 -56.0675 +v -3.86234 82.4442 -56.4627 +v -0.00018823 82.4442 -56.5947 +v 3.86197 82.4442 -56.4627 +v 7.70609 82.4442 -56.0676 +v 11.5143 82.4442 -55.411 +v 15.2688 82.4442 -54.496 +v 18.9522 82.4442 -53.327 +v 22.5472 82.4442 -51.9094 +v 26.037 82.4442 -50.2497 +v 29.4055 82.4442 -48.3557 +v 32.6369 82.4442 -46.2363 +v 35.716 82.4442 -43.9013 +v 38.6287 82.4442 -41.3616 +v 41.3613 82.4442 -38.629 +v 43.901 82.4442 -35.7164 +v 46.236 82.4442 -32.6372 +v 48.3555 82.4442 -29.4059 +v 50.2495 82.4442 -26.0375 +v 51.9092 82.4442 -22.5476 +v 53.3269 82.4442 -18.9526 +v 54.4959 82.4442 -15.2693 +v 55.4109 82.4442 -11.5148 +v 56.0675 82.4442 -7.70656 +v 56.4627 82.4442 -3.86242 +v 61.9749 78.48 5.88009e-39 +v 61.8305 78.48 4.22932 +v 61.3977 78.48 8.43892 +v 60.6787 78.48 12.6092 +v 59.6768 78.48 16.7206 +v 58.3966 78.48 20.7541 +v 56.8441 78.48 24.6909 +v 55.0267 78.48 28.5125 +v 52.9526 78.48 32.2012 +v 50.6317 78.48 35.7397 +v 48.0747 78.48 39.1116 +v 45.2935 78.48 42.3012 +v 42.3012 78.48 45.2935 +v 39.1117 78.48 48.0746 +v 35.7398 78.48 50.6316 +v 32.2012 78.48 52.9526 +v 28.5126 78.48 55.0266 +v 24.6909 78.48 56.8441 +v 20.7542 78.48 58.3966 +v 16.7207 78.48 59.6767 +v 12.6092 78.48 60.6787 +v 8.43899 78.48 61.3977 +v 4.22939 78.48 61.8305 +v 7.11709e-05 78.48 61.9749 +v -4.22924 78.48 61.8305 +v -8.43884 78.48 61.3977 +v -12.6091 78.48 60.6787 +v -16.7206 78.48 59.6768 +v -20.7541 78.48 58.3966 +v -24.6908 78.48 56.8442 +v -28.5124 78.48 55.0267 +v -32.2011 78.48 52.9527 +v -35.7397 78.48 50.6317 +v -39.1116 78.48 48.0747 +v -42.3011 78.48 45.2936 +v -45.2934 78.48 42.3013 +v -48.0746 78.48 39.1117 +v -50.6316 78.48 35.7398 +v -52.9525 78.48 32.2013 +v -55.0266 78.48 28.5126 +v -56.8441 78.48 24.691 +v -58.3965 78.48 20.7543 +v -59.6767 78.48 16.7208 +v -60.6787 78.48 12.6093 +v -61.3977 78.48 8.43906 +v -61.8305 78.48 4.22946 +v -61.9749 78.48 0.000142342 +v -61.8305 78.48 -4.22918 +v -61.3977 78.48 -8.43876 +v -60.6787 78.48 -12.609 +v -59.6768 78.48 -16.7205 +v -58.3966 78.48 -20.754 +v -56.8442 78.48 -24.6907 +v -55.0267 78.48 -28.5124 +v -52.9527 78.48 -32.201 +v -50.6318 78.48 -35.7396 +v -48.0748 78.48 -39.1115 +v -45.2936 78.48 -42.3011 +v -42.3013 78.48 -45.2934 +v -39.1118 78.48 -48.0745 +v -35.7399 78.48 -50.6316 +v -32.2014 78.48 -52.9525 +v -28.5127 78.48 -55.0266 +v -24.6911 78.48 -56.844 +v -20.7543 78.48 -58.3965 +v -16.7208 78.48 -59.6767 +v -12.6094 78.48 -60.6786 +v -8.43912 78.48 -61.3977 +v -4.22953 78.48 -61.8305 +v -0.000206125 78.48 -61.9749 +v 4.22911 78.48 -61.8305 +v 8.43869 78.48 -61.3977 +v 12.6089 78.48 -60.6787 +v 16.7204 78.48 -59.6768 +v 20.7539 78.48 -58.3967 +v 24.6907 78.48 -56.8442 +v 28.5123 78.48 -55.0268 +v 32.201 78.48 -52.9527 +v 35.7395 78.48 -50.6318 +v 39.1115 78.48 -48.0748 +v 42.301 78.48 -45.2937 +v 45.2934 78.48 -42.3014 +v 48.0745 78.48 -39.1118 +v 50.6315 78.48 -35.7399 +v 52.9525 78.48 -32.2014 +v 55.0265 78.48 -28.5128 +v 56.844 78.48 -24.6911 +v 58.3965 78.48 -20.7544 +v 59.6767 78.48 -16.7209 +v 60.6786 78.48 -12.6095 +v 61.3977 78.48 -8.4392 +v 61.8305 78.48 -4.2296 +v 67.0784 74.1652 5.88009e-39 +v 66.9221 74.1652 4.57759 +v 66.4537 74.1652 9.13384 +v 65.6754 74.1652 13.6475 +v 64.591 74.1652 18.0975 +v 63.2054 74.1652 22.4632 +v 61.5251 74.1652 26.7241 +v 59.558 74.1652 30.8604 +v 57.3131 74.1652 34.8529 +v 54.8011 74.1652 38.6828 +v 52.0335 74.1652 42.3324 +v 49.0234 74.1652 45.7846 +v 45.7846 74.1652 49.0233 +v 42.3324 74.1652 52.0335 +v 38.6829 74.1652 54.801 +v 34.8529 74.1652 57.3131 +v 30.8605 74.1652 59.5579 +v 26.7242 74.1652 61.5251 +v 22.4633 74.1652 63.2054 +v 18.0976 74.1652 64.591 +v 13.6476 74.1652 65.6754 +v 9.13392 74.1652 66.4537 +v 4.57767 74.1652 66.9221 +v 7.70316e-05 74.1652 67.0784 +v -4.57751 74.1652 66.9221 +v -9.13376 74.1652 66.4537 +v -13.6474 74.1652 65.6754 +v -18.0975 74.1652 64.591 +v -22.4631 74.1652 63.2054 +v -26.724 74.1652 61.5251 +v -30.8603 74.1652 59.558 +v -34.8528 74.1652 57.3132 +v -38.6827 74.1652 54.8011 +v -42.3323 74.1652 52.0336 +v -45.7845 74.1652 49.0234 +v -49.0233 74.1652 45.7847 +v -52.0334 74.1652 42.3325 +v -54.801 74.1652 38.6829 +v -57.313 74.1652 34.853 +v -59.5579 74.1652 30.8606 +v -61.525 74.1652 26.7242 +v -63.2053 74.1652 22.4633 +v -64.591 74.1652 18.0977 +v -65.6754 74.1652 13.6477 +v -66.4536 74.1652 9.134 +v -66.9221 74.1652 4.57775 +v -67.0784 74.1652 0.000154063 +v -66.9221 74.1652 -4.57744 +v -66.4537 74.1652 -9.13368 +v -65.6755 74.1652 -13.6473 +v -64.591 74.1652 -18.0974 +v -63.2054 74.1652 -22.463 +v -61.5252 74.1652 -26.724 +v -59.558 74.1652 -30.8603 +v -57.3132 74.1652 -34.8527 +v -54.8012 74.1652 -38.6827 +v -52.0336 74.1652 -42.3322 +v -49.0235 74.1652 -45.7845 +v -45.7847 74.1652 -49.0232 +v -42.3326 74.1652 -52.0334 +v -38.683 74.1652 -54.8009 +v -34.8531 74.1652 -57.313 +v -30.8606 74.1652 -59.5579 +v -26.7243 74.1652 -61.525 +v -22.4634 74.1652 -63.2053 +v -18.0978 74.1652 -64.5909 +v -13.6477 74.1652 -65.6754 +v -9.13407 74.1652 -66.4536 +v -4.57782 74.1652 -66.9221 +v -0.000223099 74.1652 -67.0784 +v 4.57737 74.1652 -66.9221 +v 9.13359 74.1652 -66.4537 +v 13.6473 74.1652 -65.6755 +v 18.0973 74.1652 -64.5911 +v 22.463 74.1652 -63.2055 +v 26.7239 74.1652 -61.5252 +v 30.8602 74.1652 -59.5581 +v 34.8527 74.1652 -57.3133 +v 38.6826 74.1652 -54.8012 +v 42.3322 74.1652 -52.0337 +v 45.7844 74.1652 -49.0235 +v 49.0232 74.1652 -45.7848 +v 52.0333 74.1652 -42.3326 +v 54.8009 74.1652 -38.683 +v 57.313 74.1652 -34.8531 +v 59.5578 74.1652 -30.8607 +v 61.525 74.1652 -26.7244 +v 63.2053 74.1652 -22.4635 +v 64.5909 74.1652 -18.0978 +v 65.6754 74.1652 -13.6478 +v 66.4536 74.1652 -9.13415 +v 66.922 74.1652 -4.5779 +v 71.8823 69.5193 5.88009e-39 +v 71.7148 69.5193 4.90542 +v 71.2128 69.5193 9.78797 +v 70.3788 69.5193 14.6249 +v 69.2167 69.5193 19.3936 +v 67.7319 69.5193 24.0719 +v 65.9313 69.5193 28.638 +v 63.8233 69.5193 33.0705 +v 61.4177 69.5193 37.3489 +v 58.7257 69.5193 41.4531 +v 55.76 69.5193 45.364 +v 52.5342 69.5193 49.0635 +v 49.0635 69.5193 52.5342 +v 45.3641 69.5193 55.7599 +v 41.4532 69.5193 58.7257 +v 37.3489 69.5193 61.4176 +v 33.0706 69.5193 63.8232 +v 28.6381 69.5193 65.9313 +v 24.072 69.5193 67.7319 +v 19.3937 69.5193 69.2167 +v 14.625 69.5193 70.3788 +v 9.78806 69.5193 71.2128 +v 4.9055 69.5193 71.7147 +v 8.25483e-05 69.5193 71.8823 +v -4.90533 69.5193 71.7148 +v -9.78788 69.5193 71.2128 +v -14.6248 69.5193 70.3789 +v -19.3935 69.5193 69.2168 +v -24.0718 69.5193 67.7319 +v -28.6379 69.5193 65.9313 +v -33.0704 69.5193 63.8233 +v -37.3488 69.5193 61.4177 +v -41.453 69.5193 58.7258 +v -45.364 69.5193 55.76 +v -49.0634 69.5193 52.5343 +v -52.5341 69.5193 49.0636 +v -55.7598 69.5193 45.3642 +v -58.7256 69.5193 41.4532 +v -61.4176 69.5193 37.349 +v -63.8232 69.5193 33.0707 +v -65.9312 69.5193 28.6381 +v -67.7319 69.5193 24.0721 +v -69.2167 69.5193 19.3938 +v -70.3788 69.5193 14.625 +v -71.2128 69.5193 9.78814 +v -71.7147 69.5193 4.90559 +v -71.8823 69.5193 0.000165097 +v -71.7148 69.5193 -4.90526 +v -71.2128 69.5193 -9.78779 +v -70.3789 69.5193 -14.6247 +v -69.2168 69.5193 -19.3934 +v -67.732 69.5193 -24.0717 +v -65.9314 69.5193 -28.6378 +v -63.8233 69.5193 -33.0704 +v -61.4178 69.5193 -37.3487 +v -58.7258 69.5193 -41.453 +v -55.7601 69.5193 -45.3639 +v -52.5343 69.5193 -49.0634 +v -49.0637 69.5193 -52.534 +v -45.3642 69.5193 -55.7598 +v -41.4533 69.5193 -58.7256 +v -37.3491 69.5193 -61.4175 +v -33.0708 69.5193 -63.8231 +v -28.6382 69.5193 -65.9312 +v -24.0721 69.5193 -67.7318 +v -19.3938 69.5193 -69.2167 +v -14.6251 69.5193 -70.3788 +v -9.78821 69.5193 -71.2128 +v -4.90566 69.5193 -71.7147 +v -0.000239076 69.5193 -71.8823 +v 4.90518 69.5193 -71.7148 +v 9.7877 69.5193 -71.2128 +v 14.6246 69.5193 -70.3789 +v 19.3934 69.5193 -69.2168 +v 24.0717 69.5193 -67.732 +v 28.6377 69.5193 -65.9314 +v 33.0703 69.5193 -63.8234 +v 37.3487 69.5193 -61.4178 +v 41.4529 69.5193 -58.7259 +v 45.3638 69.5193 -55.7601 +v 49.0633 69.5193 -52.5344 +v 52.534 69.5193 -49.0637 +v 55.7598 69.5193 -45.3643 +v 58.7255 69.5193 -41.4534 +v 61.4175 69.5193 -37.3492 +v 63.8231 69.5193 -33.0708 +v 65.9312 69.5193 -28.6383 +v 67.7318 69.5193 -24.0722 +v 69.2166 69.5193 -19.3939 +v 70.3788 69.5193 -14.6252 +v 71.2128 69.5193 -9.7883 +v 71.7147 69.5193 -4.90575 +v 76.3652 64.5628 5.88009e-39 +v 76.1871 64.5628 5.21134 +v 75.6539 64.5628 10.3984 +v 74.7679 64.5628 15.5369 +v 73.5333 64.5628 20.6031 +v 71.9559 64.5628 25.5731 +v 70.043 64.5628 30.4239 +v 67.8035 64.5628 35.1329 +v 65.2479 64.5628 39.6781 +v 62.3881 64.5628 44.0383 +v 59.2374 64.5628 48.1931 +v 55.8104 64.5628 52.1233 +v 52.1233 64.5628 55.8104 +v 48.1932 64.5628 59.2373 +v 44.0383 64.5628 62.388 +v 39.6782 64.5628 65.2479 +v 35.133 64.5628 67.8035 +v 30.424 64.5628 70.043 +v 25.5732 64.5628 71.9559 +v 20.6031 64.5628 73.5333 +v 15.537 64.5628 74.7679 +v 10.3985 64.5628 75.6539 +v 5.21143 64.5628 76.1871 +v 8.76964e-05 64.5628 76.3652 +v -5.21125 64.5628 76.1872 +v -10.3983 64.5628 75.6539 +v -15.5369 64.5628 74.7679 +v -20.603 64.5628 73.5334 +v -25.573 64.5628 71.956 +v -30.4239 64.5628 70.043 +v -35.1328 64.5628 67.8036 +v -39.678 64.5628 65.2479 +v -44.0382 64.5628 62.3881 +v -48.193 64.5628 59.2374 +v -52.1232 64.5628 55.8105 +v -55.8103 64.5628 52.1234 +v -59.2372 64.5628 48.1933 +v -62.388 64.5628 44.0384 +v -65.2478 64.5628 39.6782 +v -67.8034 64.5628 35.1331 +v -70.0429 64.5628 30.4241 +v -71.9559 64.5628 25.5733 +v -73.5333 64.5628 20.6032 +v -74.7679 64.5628 15.5371 +v -75.6539 64.5628 10.3986 +v -76.1871 64.5628 5.21152 +v -76.3652 64.5628 0.000175393 +v -76.1872 64.5628 -5.21117 +v -75.6539 64.5628 -10.3982 +v -74.768 64.5628 -15.5368 +v -73.5334 64.5628 -20.6029 +v -71.956 64.5628 -25.573 +v -70.0431 64.5628 -30.4238 +v -67.8036 64.5628 -35.1328 +v -65.248 64.5628 -39.6779 +v -62.3882 64.5628 -44.0381 +v -59.2375 64.5628 -48.193 +v -55.8106 64.5628 -52.1231 +v -52.1235 64.5628 -55.8103 +v -48.1933 64.5628 -59.2372 +v -44.0385 64.5628 -62.3879 +v -39.6783 64.5628 -65.2478 +v -35.1332 64.5628 -67.8034 +v -30.4242 64.5628 -70.0429 +v -25.5734 64.5628 -71.9558 +v -20.6033 64.5628 -73.5333 +v -15.5372 64.5628 -74.7679 +v -10.3986 64.5628 -75.6539 +v -5.2116 64.5628 -76.1871 +v -0.000253986 64.5628 -76.3652 +v 5.21109 64.5628 -76.1872 +v 10.3981 64.5628 -75.6539 +v 15.5367 64.5628 -74.768 +v 20.6028 64.5628 -73.5334 +v 25.5729 64.5628 -71.956 +v 30.4237 64.5628 -70.0431 +v 35.1327 64.5628 -67.8036 +v 39.6779 64.5628 -65.248 +v 44.038 64.5628 -62.3882 +v 48.1929 64.5628 -59.2375 +v 52.1231 64.5628 -55.8106 +v 55.8102 64.5628 -52.1235 +v 59.2371 64.5628 -48.1934 +v 62.3879 64.5628 -44.0385 +v 65.2477 64.5628 -39.6784 +v 67.8034 64.5628 -35.1333 +v 70.0429 64.5628 -30.4243 +v 71.9558 64.5628 -25.5735 +v 73.5332 64.5628 -20.6034 +v 74.7679 64.5628 -15.5373 +v 75.6539 64.5628 -10.3987 +v 76.1871 64.5628 -5.21169 +v 80.507 59.318 5.88009e-39 +v 80.3193 59.318 5.49399 +v 79.7571 59.318 10.9624 +v 78.8231 59.318 16.3796 +v 77.5216 59.318 21.7205 +v 75.8586 59.318 26.9601 +v 73.8419 59.318 32.074 +v 71.481 59.318 37.0384 +v 68.7867 59.318 41.8301 +v 65.7718 59.318 46.4268 +v 62.4502 59.318 50.8069 +v 58.8374 59.318 54.9502 +v 54.9503 59.318 58.8373 +v 50.807 59.318 62.4501 +v 46.4268 59.318 65.7717 +v 41.8302 59.318 68.7867 +v 37.0385 59.318 71.4809 +v 32.0741 59.318 73.8419 +v 26.9602 59.318 75.8585 +v 21.7206 59.318 77.5215 +v 16.3797 59.318 78.8231 +v 10.9625 59.318 79.7571 +v 5.49408 59.318 80.3193 +v 9.24527e-05 59.318 80.507 +v -5.49389 59.318 80.3193 +v -10.9623 59.318 79.7571 +v -16.3795 59.318 78.8231 +v -21.7204 59.318 77.5216 +v -26.96 59.318 75.8586 +v -32.074 59.318 73.8419 +v -37.0383 59.318 71.481 +v -41.83 59.318 68.7868 +v -46.4267 59.318 65.7718 +v -50.8069 59.318 62.4502 +v -54.9502 59.318 58.8375 +v -58.8373 59.318 54.9504 +v -62.4501 59.318 50.8071 +v -65.7717 59.318 46.4269 +v -68.7866 59.318 41.8303 +v -71.4809 59.318 37.0386 +v -73.8418 59.318 32.0742 +v -75.8585 59.318 26.9603 +v -77.5215 59.318 21.7207 +v -78.8231 59.318 16.3798 +v -79.7571 59.318 10.9625 +v -80.3193 59.318 5.49417 +v -80.507 59.318 0.000184905 +v -80.3193 59.318 -5.4938 +v -79.7571 59.318 -10.9622 +v -78.8231 59.318 -16.3794 +v -77.5216 59.318 -21.7203 +v -75.8586 59.318 -26.9599 +v -73.842 59.318 -32.0739 +v -71.481 59.318 -37.0383 +v -68.7868 59.318 -41.8299 +v -65.7719 59.318 -46.4266 +v -62.4503 59.318 -50.8068 +v -58.8375 59.318 -54.9501 +v -54.9505 59.318 -58.8372 +v -50.8072 59.318 -62.45 +v -46.427 59.318 -65.7716 +v -41.8303 59.318 -68.7866 +v -37.0387 59.318 -71.4808 +v -32.0743 59.318 -73.8418 +v -26.9604 59.318 -75.8585 +v -21.7208 59.318 -77.5215 +v -16.3799 59.318 -78.823 +v -10.9626 59.318 -79.7571 +v -5.49426 59.318 -80.3193 +v -0.000267761 59.318 -80.507 +v 5.49372 59.318 -80.3193 +v 10.9621 59.318 -79.7572 +v 16.3793 59.318 -78.8232 +v 21.7202 59.318 -77.5216 +v 26.9598 59.318 -75.8587 +v 32.0738 59.318 -73.842 +v 37.0382 59.318 -71.4811 +v 41.8299 59.318 -68.7869 +v 46.4265 59.318 -65.7719 +v 50.8067 59.318 -62.4504 +v 54.9501 59.318 -58.8376 +v 58.8372 59.318 -54.9505 +v 62.45 59.318 -50.8072 +v 65.7716 59.318 -46.427 +v 68.7865 59.318 -41.8304 +v 71.4808 59.318 -37.0388 +v 73.8418 59.318 -32.0744 +v 75.8584 59.318 -26.9605 +v 77.5215 59.318 -21.7209 +v 78.823 59.318 -16.38 +v 79.7571 59.318 -10.9627 +v 80.3193 59.318 -5.49436 +v 84.2892 53.8083 5.88009e-39 +v 84.0927 53.8083 5.75209 +v 83.5041 53.8083 11.4774 +v 82.5262 53.8083 17.1491 +v 81.1635 53.8083 22.7409 +v 79.4224 53.8083 28.2267 +v 77.311 53.8083 33.5809 +v 74.8391 53.8083 38.7785 +v 72.0183 53.8083 43.7953 +v 68.8618 53.8083 48.6079 +v 65.3841 53.8083 53.1939 +v 61.6016 53.8083 57.5318 +v 57.5319 53.8083 61.6015 +v 53.1939 53.8083 65.384 +v 48.608 53.8083 68.8617 +v 43.7954 53.8083 72.0183 +v 38.7786 53.8083 74.8391 +v 33.581 53.8083 77.311 +v 28.2268 53.8083 79.4224 +v 22.741 53.8083 81.1635 +v 17.1492 53.8083 82.5262 +v 11.4775 53.8083 83.5041 +v 5.75219 53.8083 84.0927 +v 9.67961e-05 53.8083 84.2892 +v -5.75199 53.8083 84.0927 +v -11.4773 53.8083 83.5041 +v -17.149 53.8083 82.5262 +v -22.7408 53.8083 81.1636 +v -28.2266 53.8083 79.4225 +v -33.5808 53.8083 77.3111 +v -38.7784 53.8083 74.8392 +v -43.7952 53.8083 72.0184 +v -48.6078 53.8083 68.8618 +v -53.1938 53.8083 65.3842 +v -57.5317 53.8083 61.6017 +v -61.6015 53.8083 57.532 +v -65.384 53.8083 53.194 +v -68.8616 53.8083 48.6081 +v -72.0182 53.8083 43.7955 +v -74.8391 53.8083 38.7787 +v -77.3109 53.8083 33.5811 +v -79.4224 53.8083 28.2269 +v -81.1635 53.8083 22.7411 +v -82.5262 53.8083 17.1493 +v -83.5041 53.8083 11.4776 +v -84.0927 53.8083 5.75229 +v -84.2892 53.8083 0.000193592 +v -84.0927 53.8083 -5.7519 +v -83.5042 53.8083 -11.4772 +v -82.5263 53.8083 -17.1489 +v -81.1636 53.8083 -22.7407 +v -79.4225 53.8083 -28.2265 +v -77.3111 53.8083 -33.5807 +v -74.8392 53.8083 -38.7783 +v -72.0184 53.8083 -43.7951 +v -68.8619 53.8083 -48.6077 +v -65.3842 53.8083 -53.1937 +v -61.6017 53.8083 -57.5317 +v -57.532 53.8083 -61.6014 +v -53.1941 53.8083 -65.3839 +v -48.6081 53.8083 -68.8616 +v -43.7955 53.8083 -72.0182 +v -38.7788 53.8083 -74.839 +v -33.5812 53.8083 -77.3109 +v -28.227 53.8083 -79.4223 +v -22.7412 53.8083 -81.1634 +v -17.1494 53.8083 -82.5262 +v -11.4777 53.8083 -83.5041 +v -5.75238 53.8083 -84.0927 +v -0.00028034 53.8083 -84.2892 +v 5.75182 53.8083 -84.0927 +v 11.4771 53.8083 -83.5042 +v 17.1488 53.8083 -82.5263 +v 22.7406 53.8083 -81.1636 +v 28.2264 53.8083 -79.4225 +v 33.5806 53.8083 -77.3111 +v 38.7782 53.8083 -74.8393 +v 43.795 53.8083 -72.0185 +v 48.6076 53.8083 -68.8619 +v 53.1936 53.8083 -65.3843 +v 57.5316 53.8083 -61.6018 +v 61.6013 53.8083 -57.5321 +v 65.3839 53.8083 -53.1942 +v 68.8615 53.8083 -48.6082 +v 72.0181 53.8083 -43.7956 +v 74.839 53.8083 -38.7788 +v 77.3108 53.8083 -33.5813 +v 79.4223 53.8083 -28.2271 +v 81.1634 53.8083 -22.7413 +v 82.5261 53.8083 -17.1495 +v 83.5041 53.8083 -11.4778 +v 84.0927 53.8083 -5.75248 +v 87.695 48.0582 5.88009e-39 +v 87.4905 48.0582 5.98451 +v 86.8782 48.0582 11.9411 +v 85.8607 48.0582 17.8421 +v 84.443 48.0582 23.6598 +v 82.6315 48.0582 29.3672 +v 80.4348 48.0582 34.9377 +v 77.8631 48.0582 40.3454 +v 74.9283 48.0582 45.5649 +v 71.6442 48.0582 50.5719 +v 68.026 48.0582 55.3432 +v 64.0907 48.0582 59.8564 +v 59.8565 48.0582 64.0906 +v 55.3433 48.0582 68.0259 +v 50.572 48.0582 71.6441 +v 45.5649 48.0582 74.9282 +v 40.3454 48.0582 77.863 +v 34.9378 48.0582 80.4348 +v 29.3673 48.0582 82.6315 +v 23.6599 48.0582 84.443 +v 17.8421 48.0582 85.8607 +v 11.9412 48.0582 86.8781 +v 5.98461 48.0582 87.4905 +v 0.000100707 48.0582 87.695 +v -5.9844 48.0582 87.4905 +v -11.941 48.0582 86.8782 +v -17.842 48.0582 85.8608 +v -23.6597 48.0582 84.443 +v -29.3671 48.0582 82.6316 +v -34.9376 48.0582 80.4349 +v -40.3453 48.0582 77.8631 +v -45.5648 48.0582 74.9283 +v -50.5718 48.0582 71.6442 +v -55.3431 48.0582 68.0261 +v -59.8564 48.0582 64.0907 +v -64.0905 48.0582 59.8566 +v -68.0259 48.0582 55.3434 +v -71.644 48.0582 50.5721 +v -74.9282 48.0582 45.565 +v -77.863 48.0582 40.3455 +v -80.4347 48.0582 34.9379 +v -82.6315 48.0582 29.3674 +v -84.4429 48.0582 23.66 +v -85.8607 48.0582 17.8423 +v -86.8781 48.0582 11.9413 +v -87.4905 48.0582 5.98471 +v -87.695 48.0582 0.000201415 +v -87.4905 48.0582 -5.98431 +v -86.8782 48.0582 -11.9409 +v -85.8608 48.0582 -17.8418 +v -84.443 48.0582 -23.6596 +v -82.6316 48.0582 -29.367 +v -80.4349 48.0582 -34.9376 +v -77.8632 48.0582 -40.3452 +v -74.9284 48.0582 -45.5647 +v -71.6443 48.0582 -50.5717 +v -68.0261 48.0582 -55.343 +v -64.0908 48.0582 -59.8563 +v -59.8567 48.0582 -64.0905 +v -55.3434 48.0582 -68.0258 +v -50.5722 48.0582 -71.644 +v -45.5651 48.0582 -74.9281 +v -40.3456 48.0582 -77.8629 +v -34.938 48.0582 -80.4347 +v -29.3675 48.0582 -82.6314 +v -23.6601 48.0582 -84.4429 +v -17.8423 48.0582 -85.8607 +v -11.9414 48.0582 -86.8781 +v -5.98481 48.0582 -87.4905 +v -0.000291668 48.0582 -87.695 +v 5.98422 48.0582 -87.4905 +v 11.9408 48.0582 -86.8782 +v 17.8417 48.0582 -85.8608 +v 23.6595 48.0582 -84.4431 +v 29.3669 48.0582 -82.6316 +v 34.9375 48.0582 -80.4349 +v 40.3451 48.0582 -77.8632 +v 45.5646 48.0582 -74.9285 +v 50.5717 48.0582 -71.6443 +v 55.343 48.0582 -68.0262 +v 59.8562 48.0582 -64.0909 +v 64.0904 48.0582 -59.8567 +v 68.0257 48.0582 -55.3435 +v 71.6439 48.0582 -50.5722 +v 74.9281 48.0582 -45.5652 +v 77.8629 48.0582 -40.3457 +v 80.4346 48.0582 -34.9381 +v 82.6314 48.0582 -29.3676 +v 84.4429 48.0582 -23.6602 +v 85.8606 48.0582 -17.8425 +v 86.8781 48.0582 -11.9415 +v 87.4905 48.0582 -5.98492 +v 90.7091 42.0936 5.88009e-39 +v 90.4976 42.0936 6.1902 +v 89.8642 42.0936 12.3515 +v 88.8118 42.0936 18.4553 +v 87.3453 42.0936 24.473 +v 85.4716 42.0936 30.3766 +v 83.1994 42.0936 36.1386 +v 80.5392 42.0936 41.732 +v 77.5036 42.0936 47.1309 +v 74.1066 42.0936 52.3101 +v 70.3641 42.0936 57.2454 +v 66.2935 42.0936 61.9137 +v 61.9138 42.0936 66.2934 +v 57.2454 42.0936 70.364 +v 52.3102 42.0936 74.1065 +v 47.131 42.0936 77.5035 +v 41.7321 42.0936 80.5392 +v 36.1387 42.0936 83.1993 +v 30.3767 42.0936 85.4716 +v 24.4731 42.0936 87.3453 +v 18.4554 42.0936 88.8118 +v 12.3516 42.0936 89.8642 +v 6.19031 42.0936 90.4976 +v 0.000104169 42.0936 90.7091 +v -6.19009 42.0936 90.4976 +v -12.3514 42.0936 89.8642 +v -18.4552 42.0936 88.8118 +v -24.4729 42.0936 87.3453 +v -30.3765 42.0936 85.4716 +v -36.1385 42.0936 83.1994 +v -41.7319 42.0936 80.5393 +v -47.1308 42.0936 77.5037 +v -52.31 42.0936 74.1067 +v -57.2453 42.0936 70.3641 +v -61.9136 42.0936 66.2935 +v -66.2933 42.0936 61.9139 +v -70.3639 42.0936 57.2455 +v -74.1065 42.0936 52.3103 +v -77.5035 42.0936 47.1311 +v -80.5391 42.0936 41.7322 +v -83.1993 42.0936 36.1387 +v -85.4715 42.0936 30.3768 +v -87.3453 42.0936 24.4732 +v -88.8118 42.0936 18.4555 +v -89.8642 42.0936 12.3518 +v -90.4976 42.0936 6.19041 +v -90.7091 42.0936 0.000208337 +v -90.4976 42.0936 -6.19 +v -89.8642 42.0936 -12.3513 +v -88.8118 42.0936 -18.4551 +v -87.3454 42.0936 -24.4728 +v -85.4717 42.0936 -30.3764 +v -83.1995 42.0936 -36.1384 +v -80.5393 42.0936 -41.7319 +v -77.5037 42.0936 -47.1308 +v -74.1067 42.0936 -52.3099 +v -70.3642 42.0936 -57.2452 +v -66.2936 42.0936 -61.9136 +v -61.9139 42.0936 -66.2933 +v -57.2456 42.0936 -70.3639 +v -52.3104 42.0936 -74.1064 +v -47.1312 42.0936 -77.5034 +v -41.7323 42.0936 -80.5391 +v -36.1389 42.0936 -83.1992 +v -30.3769 42.0936 -85.4715 +v -24.4733 42.0936 -87.3452 +v -18.4556 42.0936 -88.8117 +v -12.3518 42.0936 -89.8641 +v -6.1905 42.0936 -90.4976 +v -0.000301692 42.0936 -90.7091 +v 6.1899 42.0936 -90.4976 +v 12.3512 42.0936 -89.8642 +v 18.455 42.0936 -88.8119 +v 24.4727 42.0936 -87.3454 +v 30.3763 42.0936 -85.4717 +v 36.1383 42.0936 -83.1995 +v 41.7318 42.0936 -80.5394 +v 47.1307 42.0936 -77.5038 +v 52.3098 42.0936 -74.1068 +v 57.2451 42.0936 -70.3643 +v 61.9135 42.0936 -66.2937 +v 66.2932 42.0936 -61.914 +v 70.3638 42.0936 -57.2457 +v 74.1064 42.0936 -52.3104 +v 77.5034 42.0936 -47.1313 +v 80.539 42.0936 -41.7324 +v 83.1992 42.0936 -36.139 +v 85.4715 42.0936 -30.377 +v 87.3452 42.0936 -24.4734 +v 88.8117 42.0936 -18.4557 +v 89.8641 42.0936 -12.352 +v 90.4976 42.0936 -6.19062 +v 93.318 35.9409 5.88009e-39 +v 93.1005 35.9409 6.36824 +v 92.4489 35.9409 12.7068 +v 91.3662 35.9409 18.9861 +v 89.8575 35.9409 25.1769 +v 87.9299 35.9409 31.2503 +v 85.5924 35.9409 37.178 +v 82.8557 35.9409 42.9323 +v 79.7327 35.9409 48.4865 +v 76.238 35.9409 53.8146 +v 72.3879 35.9409 58.8918 +v 68.2002 35.9409 63.6945 +v 63.6946 35.9409 68.2001 +v 58.8919 35.9409 72.3878 +v 53.8147 35.9409 76.238 +v 48.4866 35.9409 79.7327 +v 42.9324 35.9409 82.8557 +v 37.1781 35.9409 85.5923 +v 31.2504 35.9409 87.9299 +v 25.177 35.9409 89.8575 +v 18.9862 35.9409 91.3662 +v 12.7069 35.9409 92.4488 +v 6.36835 35.9409 93.1005 +v 0.000107165 35.9409 93.318 +v -6.36813 35.9409 93.1005 +v -12.7067 35.9409 92.4489 +v -18.986 35.9409 91.3662 +v -25.1768 35.9409 89.8576 +v -31.2502 35.9409 87.93 +v -37.1779 35.9409 85.5924 +v -42.9322 35.9409 82.8558 +v -48.4864 35.9409 79.7328 +v -53.8145 35.9409 76.2381 +v -58.8918 35.9409 72.3879 +v -63.6944 35.9409 68.2003 +v -68.2001 35.9409 63.6946 +v -72.3877 35.9409 58.892 +v -76.2379 35.9409 53.8148 +v -79.7326 35.9409 48.4867 +v -82.8556 35.9409 42.9325 +v -85.5923 35.9409 37.1782 +v -87.9299 35.9409 31.2505 +v -89.8575 35.9409 25.1771 +v -91.3661 35.9409 18.9863 +v -92.4488 35.9409 12.707 +v -93.1005 35.9409 6.36846 +v -93.318 35.9409 0.000214329 +v -93.1005 35.9409 -6.36803 +v -92.4489 35.9409 -12.7066 +v -91.3662 35.9409 -18.9859 +v -89.8576 35.9409 -25.1767 +v -87.93 35.9409 -31.2501 +v -85.5924 35.9409 -37.1778 +v -82.8558 35.9409 -42.9321 +v -79.7329 35.9409 -48.4863 +v -76.2382 35.9409 -53.8144 +v -72.388 35.9409 -58.8917 +v -68.2004 35.9409 -63.6943 +v -63.6947 35.9409 -68.2 +v -58.8921 35.9409 -72.3877 +v -53.8149 35.9409 -76.2378 +v -48.4868 35.9409 -79.7326 +v -42.9326 35.9409 -82.8556 +v -37.1783 35.9409 -85.5922 +v -31.2506 35.9409 -87.9298 +v -25.1772 35.9409 -89.8575 +v -18.9864 35.9409 -91.3661 +v -12.7071 35.9409 -92.4488 +v -6.36856 35.9409 -93.1005 +v -0.00031037 35.9409 -93.318 +v 6.36794 35.9409 -93.1005 +v 12.7064 35.9409 -92.4489 +v 18.9858 35.9409 -91.3663 +v 25.1766 35.9409 -89.8576 +v 31.25 35.9409 -87.93 +v 37.1777 35.9409 -85.5925 +v 42.932 35.9409 -82.8559 +v 48.4862 35.9409 -79.7329 +v 53.8144 35.9409 -76.2382 +v 58.8916 35.9409 -72.3881 +v 63.6942 35.9409 -68.2004 +v 68.1999 35.9409 -63.6948 +v 72.3876 35.9409 -58.8922 +v 76.2378 35.9409 -53.815 +v 79.7325 35.9409 -48.4869 +v 82.8555 35.9409 -42.9327 +v 85.5922 35.9409 -37.1784 +v 87.9298 35.9409 -31.2507 +v 89.8574 35.9409 -25.1773 +v 91.3661 35.9409 -18.9865 +v 92.4488 35.9409 -12.7072 +v 93.1004 35.9409 -6.36867 +v 95.5102 29.6276 5.88009e-39 +v 95.2876 29.6276 6.51784 +v 94.6206 29.6276 13.0053 +v 93.5125 29.6276 19.4321 +v 91.9685 29.6276 25.7683 +v 89.9956 29.6276 31.9844 +v 87.6031 29.6276 38.0513 +v 84.8021 29.6276 43.9409 +v 81.6058 29.6276 49.6255 +v 78.029 29.6276 55.0788 +v 74.0884 29.6276 60.2753 +v 69.8023 29.6276 65.1908 +v 65.1908 29.6276 69.8023 +v 60.2754 29.6276 74.0883 +v 55.0789 29.6276 78.0289 +v 49.6256 29.6276 81.6058 +v 43.941 29.6276 84.8021 +v 38.0514 29.6276 87.603 +v 31.9845 29.6276 89.9955 +v 25.7684 29.6276 91.9684 +v 19.4322 29.6276 93.5125 +v 13.0054 29.6276 94.6206 +v 6.51796 29.6276 95.2876 +v 0.000109682 29.6276 95.5102 +v -6.51773 29.6276 95.2876 +v -13.0052 29.6276 94.6207 +v -19.432 29.6276 93.5126 +v -25.7682 29.6276 91.9685 +v -31.9843 29.6276 89.9956 +v -38.0512 29.6276 87.6031 +v -43.9408 29.6276 84.8022 +v -49.6254 29.6276 81.6059 +v -55.0787 29.6276 78.0291 +v -60.2752 29.6276 74.0885 +v -65.1907 29.6276 69.8024 +v -69.8022 29.6276 65.1909 +v -74.0882 29.6276 60.2755 +v -78.0289 29.6276 55.079 +v -81.6057 29.6276 49.6257 +v -84.802 29.6276 43.9411 +v -87.603 29.6276 38.0516 +v -89.9955 29.6276 31.9846 +v -91.9684 29.6276 25.7686 +v -93.5125 29.6276 19.4323 +v -94.6206 29.6276 13.0055 +v -95.2876 29.6276 6.51807 +v -95.5102 29.6276 0.000219364 +v -95.2876 29.6276 -6.51763 +v -94.6207 29.6276 -13.0051 +v -93.5126 29.6276 -19.4319 +v -91.9685 29.6276 -25.7681 +v -89.9956 29.6276 -31.9842 +v -87.6032 29.6276 -38.0511 +v -84.8022 29.6276 -43.9407 +v -81.6059 29.6276 -49.6254 +v -78.0291 29.6276 -55.0786 +v -74.0885 29.6276 -60.2751 +v -69.8025 29.6276 -65.1906 +v -65.191 29.6276 -69.8021 +v -60.2756 29.6276 -74.0882 +v -55.0791 29.6276 -78.0288 +v -49.6258 29.6276 -81.6056 +v -43.9412 29.6276 -84.802 +v -38.0517 29.6276 -87.6029 +v -31.9847 29.6276 -89.9954 +v -25.7687 29.6276 -91.9684 +v -19.4324 29.6276 -93.5125 +v -13.0056 29.6276 -94.6206 +v -6.51816 29.6276 -95.2875 +v -0.000317661 29.6276 -95.5102 +v 6.51753 29.6276 -95.2876 +v 13.0049 29.6276 -94.6207 +v 19.4318 29.6276 -93.5126 +v 25.768 29.6276 -91.9685 +v 31.9841 29.6276 -89.9957 +v 38.051 29.6276 -87.6032 +v 43.9406 29.6276 -84.8023 +v 49.6253 29.6276 -81.606 +v 55.0786 29.6276 -78.0292 +v 60.2751 29.6276 -74.0886 +v 65.1905 29.6276 -69.8026 +v 69.802 29.6276 -65.1911 +v 74.0881 29.6276 -60.2756 +v 78.0288 29.6276 -55.0792 +v 81.6056 29.6276 -49.6259 +v 84.8019 29.6276 -43.9413 +v 87.6029 29.6276 -38.0518 +v 89.9954 29.6276 -31.9848 +v 91.9683 29.6276 -25.7688 +v 93.5125 29.6276 -19.4326 +v 94.6206 29.6276 -13.0057 +v 95.2875 29.6276 -6.51828 +v 97.2758 23.1821 5.88009e-39 +v 97.0491 23.1821 6.63833 +v 96.3698 23.1821 13.2457 +v 95.2412 23.1821 19.7913 +v 93.6686 23.1821 26.2447 +v 91.6592 23.1821 32.5757 +v 89.2225 23.1821 38.7548 +v 86.3698 23.1821 44.7532 +v 83.1144 23.1821 50.5429 +v 79.4715 23.1821 56.097 +v 75.458 23.1821 61.3896 +v 71.0927 23.1821 66.3959 +v 66.396 23.1821 71.0926 +v 61.3897 23.1821 75.4579 +v 56.0971 23.1821 79.4714 +v 50.543 23.1821 83.1143 +v 44.7533 23.1821 86.3697 +v 38.7549 23.1821 89.2225 +v 32.5758 23.1821 91.6592 +v 26.2448 23.1821 93.6686 +v 19.7914 23.1821 95.2412 +v 13.2458 23.1821 96.3698 +v 6.63845 23.1821 97.0491 +v 0.00011171 23.1821 97.2758 +v -6.63821 23.1821 97.0491 +v -13.2456 23.1821 96.3698 +v -19.7912 23.1821 95.2413 +v -26.2446 23.1821 93.6686 +v -32.5756 23.1821 91.6593 +v -38.7547 23.1821 89.2226 +v -44.7531 23.1821 86.3699 +v -50.5428 23.1821 83.1144 +v -56.0969 23.1821 79.4715 +v -61.3895 23.1821 75.4581 +v -66.3958 23.1821 71.0928 +v -71.0926 23.1821 66.396 +v -75.4578 23.1821 61.3898 +v -79.4713 23.1821 56.0972 +v -83.1143 23.1821 50.5431 +v -86.3697 23.1821 44.7534 +v -89.2224 23.1821 38.755 +v -91.6592 23.1821 32.5759 +v -93.6685 23.1821 26.2449 +v -95.2412 23.1821 19.7916 +v -96.3698 23.1821 13.2459 +v -97.049 23.1821 6.63856 +v -97.2758 23.1821 0.00022342 +v -97.0491 23.1821 -6.63811 +v -96.3698 23.1821 -13.2455 +v -95.2413 23.1821 -19.7911 +v -93.6687 23.1821 -26.2445 +v -91.6593 23.1821 -32.5755 +v -89.2226 23.1821 -38.7546 +v -86.3699 23.1821 -44.753 +v -83.1145 23.1821 -50.5427 +v -79.4716 23.1821 -56.0968 +v -75.4581 23.1821 -61.3894 +v -71.0929 23.1821 -66.3957 +v -66.3961 23.1821 -71.0925 +v -61.3899 23.1821 -75.4578 +v -56.0973 23.1821 -79.4713 +v -50.5432 23.1821 -83.1142 +v -44.7535 23.1821 -86.3696 +v -38.7551 23.1821 -89.2224 +v -32.576 23.1821 -91.6591 +v -26.245 23.1821 -93.6685 +v -19.7917 23.1821 -95.2412 +v -13.246 23.1821 -96.3698 +v -6.63866 23.1821 -97.049 +v -0.000323533 23.1821 -97.2758 +v 6.63801 23.1821 -97.0491 +v 13.2454 23.1821 -96.3699 +v 19.791 23.1821 -95.2413 +v 26.2443 23.1821 -93.6687 +v 32.5753 23.1821 -91.6593 +v 38.7545 23.1821 -89.2226 +v 44.7529 23.1821 -86.37 +v 50.5426 23.1821 -83.1146 +v 56.0968 23.1821 -79.4717 +v 61.3893 23.1821 -75.4582 +v 66.3957 23.1821 -71.0929 +v 71.0924 23.1821 -66.3962 +v 75.4577 23.1821 -61.3899 +v 79.4712 23.1821 -56.0974 +v 83.1141 23.1821 -50.5433 +v 86.3696 23.1821 -44.7536 +v 89.2223 23.1821 -38.7552 +v 91.6591 23.1821 -32.5761 +v 93.6685 23.1821 -26.2451 +v 95.2411 23.1821 -19.7918 +v 96.3698 23.1821 -13.2462 +v 97.049 23.1821 -6.63878 +v 98.607 16.633 5.88009e-39 +v 98.3771 16.633 6.72918 +v 97.6886 16.633 13.427 +v 96.5446 16.633 20.0622 +v 94.9504 16.633 26.6038 +v 92.9135 16.633 33.0215 +v 90.4435 16.633 39.2851 +v 87.5517 16.633 45.3656 +v 84.2518 16.633 51.2346 +v 80.559 16.633 56.8647 +v 76.4906 16.633 62.2297 +v 72.0656 16.633 67.3045 +v 67.3046 16.633 72.0655 +v 62.2297 16.633 76.4905 +v 56.8648 16.633 80.5589 +v 51.2347 16.633 84.2517 +v 45.3657 16.633 87.5517 +v 39.2852 16.633 90.4434 +v 33.0216 16.633 92.9135 +v 26.6039 16.633 94.9504 +v 20.0623 16.633 96.5445 +v 13.4271 16.633 97.6886 +v 6.72929 16.633 98.3771 +v 0.000113238 16.633 98.607 +v -6.72905 16.633 98.3771 +v -13.4269 16.633 97.6886 +v -20.0621 16.633 96.5446 +v -26.6037 16.633 94.9504 +v -33.0213 16.633 92.9136 +v -39.285 16.633 90.4435 +v -45.3655 16.633 87.5518 +v -51.2345 16.633 84.2518 +v -56.8646 16.633 80.5591 +v -62.2296 16.633 76.4907 +v -67.3044 16.633 72.0657 +v -72.0654 16.633 67.3046 +v -76.4904 16.633 62.2298 +v -80.5588 16.633 56.8649 +v -84.2516 16.633 51.2348 +v -87.5516 16.633 45.3658 +v -90.4434 16.633 39.2853 +v -92.9135 16.633 33.0217 +v -94.9503 16.633 26.6041 +v -96.5445 16.633 20.0624 +v -97.6885 16.633 13.4272 +v -98.3771 16.633 6.7294 +v -98.607 16.633 0.000226477 +v -98.3772 16.633 -6.72895 +v -97.6886 16.633 -13.4267 +v -96.5446 16.633 -20.0619 +v -94.9505 16.633 -26.6036 +v -92.9136 16.633 -33.0212 +v -90.4436 16.633 -39.2849 +v -87.5518 16.633 -45.3654 +v -84.2519 16.633 -51.2344 +v -80.5591 16.633 -56.8645 +v -76.4908 16.633 -62.2295 +v -72.0657 16.633 -67.3043 +v -67.3047 16.633 -72.0654 +v -62.2299 16.633 -76.4904 +v -56.865 16.633 -80.5588 +v -51.2349 16.633 -84.2516 +v -45.3659 16.633 -87.5516 +v -39.2854 16.633 -90.4433 +v -33.0218 16.633 -92.9134 +v -26.6042 16.633 -94.9503 +v -20.0625 16.633 -96.5445 +v -13.4273 16.633 -97.6885 +v -6.72951 16.633 -98.3771 +v -0.000327961 16.633 -98.607 +v 6.72885 16.633 -98.3772 +v 13.4266 16.633 -97.6886 +v 20.0618 16.633 -96.5446 +v 26.6035 16.633 -94.9505 +v 33.0211 16.633 -92.9137 +v 39.2848 16.633 -90.4436 +v 45.3653 16.633 -87.5519 +v 51.2343 16.633 -84.2519 +v 56.8644 16.633 -80.5592 +v 62.2294 16.633 -76.4908 +v 67.3042 16.633 -72.0658 +v 72.0653 16.633 -67.3048 +v 76.4903 16.633 -62.23 +v 80.5587 16.633 -56.865 +v 84.2515 16.633 -51.235 +v 87.5515 16.633 -45.366 +v 90.4433 16.633 -39.2855 +v 92.9134 16.633 -33.0219 +v 94.9503 16.633 -26.6043 +v 96.5445 16.633 -20.0626 +v 97.6885 16.633 -13.4274 +v 98.3771 16.633 -6.72963 +v 99.4978 10.0097 5.88009e-39 +v 99.2658 10.0097 6.78996 +v 98.571 10.0097 13.5483 +v 97.4167 10.0097 20.2434 +v 95.8081 10.0097 26.8442 +v 93.7529 10.0097 33.3198 +v 91.2605 10.0097 39.64 +v 88.3426 10.0097 45.7754 +v 85.0128 10.0097 51.6974 +v 81.2867 10.0097 57.3784 +v 77.1816 10.0097 62.7918 +v 72.7166 10.0097 67.9125 +v 67.9126 10.0097 72.7165 +v 62.7919 10.0097 77.1815 +v 57.3785 10.0097 81.2866 +v 51.6975 10.0097 85.0128 +v 45.7755 10.0097 88.3426 +v 39.6401 10.0097 91.2604 +v 33.3199 10.0097 93.7528 +v 26.8443 10.0097 95.8081 +v 20.2435 10.0097 97.4167 +v 13.5484 10.0097 98.571 +v 6.79008 10.0097 99.2658 +v 0.000114261 10.0097 99.4978 +v -6.78984 10.0097 99.2658 +v -13.5482 10.0097 98.5711 +v -20.2433 10.0097 97.4167 +v -26.8441 10.0097 95.8082 +v -33.3196 10.0097 93.7529 +v -39.6399 10.0097 91.2605 +v -45.7753 10.0097 88.3427 +v -51.6973 10.0097 85.0129 +v -57.3783 10.0097 81.2868 +v -62.7917 10.0097 77.1816 +v -67.9124 10.0097 72.7167 +v -72.7164 10.0097 67.9126 +v -77.1814 10.0097 62.792 +v -81.2866 10.0097 57.3786 +v -85.0127 10.0097 51.6976 +v -88.3425 10.0097 45.7756 +v -91.2604 10.0097 39.6402 +v -93.7528 10.0097 33.32 +v -95.8081 10.0097 26.8444 +v -97.4166 10.0097 20.2436 +v -98.571 10.0097 13.5485 +v -99.2658 10.0097 6.79019 +v -99.4978 10.0097 0.000228523 +v -99.2658 10.0097 -6.78974 +v -98.5711 10.0097 -13.548 +v -97.4167 10.0097 -20.2432 +v -95.8082 10.0097 -26.8439 +v -93.753 10.0097 -33.3195 +v -91.2606 10.0097 -39.6398 +v -88.3427 10.0097 -45.7752 +v -85.013 10.0097 -51.6972 +v -81.2868 10.0097 -57.3782 +v -77.1817 10.0097 -62.7916 +v -72.7168 10.0097 -67.9123 +v -67.9127 10.0097 -72.7164 +v -62.7921 10.0097 -77.1813 +v -57.3787 10.0097 -81.2865 +v -51.6977 10.0097 -85.0127 +v -45.7757 10.0097 -88.3425 +v -39.6403 10.0097 -91.2604 +v -33.3201 10.0097 -93.7528 +v -26.8445 10.0097 -95.808 +v -20.2437 10.0097 -97.4166 +v -13.5486 10.0097 -98.571 +v -6.7903 10.0097 -99.2658 +v -0.000330923 10.0097 -99.4978 +v 6.78964 10.0097 -99.2658 +v 13.5479 10.0097 -98.5711 +v 20.243 10.0097 -97.4168 +v 26.8438 10.0097 -95.8082 +v 33.3194 10.0097 -93.753 +v 39.6397 10.0097 -91.2606 +v 45.7751 10.0097 -88.3428 +v 51.6971 10.0097 -85.013 +v 57.3781 10.0097 -81.2869 +v 62.7915 10.0097 -77.1818 +v 67.9122 10.0097 -72.7168 +v 72.7163 10.0097 -67.9128 +v 77.1813 10.0097 -62.7922 +v 81.2865 10.0097 -57.3787 +v 85.0126 10.0097 -51.6978 +v 88.3424 10.0097 -45.7758 +v 91.2603 10.0097 -39.6404 +v 93.7527 10.0097 -33.3202 +v 95.808 10.0097 -26.8446 +v 97.4166 10.0097 -20.2439 +v 98.571 10.0097 -13.5487 +v 99.2658 10.0097 -6.79042 +v 99.9442 3.34161 5.88009e-39 +v 99.7112 3.34161 6.82043 +v 99.0133 3.34161 13.6091 +v 97.8537 3.34161 20.3342 +v 96.238 3.34161 26.9646 +v 94.1735 3.34161 33.4692 +v 91.6699 3.34161 39.8178 +v 88.739 3.34161 45.9808 +v 85.3942 3.34161 51.9293 +v 81.6514 3.34161 57.6358 +v 77.5278 3.34161 63.0735 +v 73.0428 3.34161 68.2172 +v 68.2172 3.34161 73.0427 +v 63.0736 3.34161 77.5278 +v 57.6359 3.34161 81.6513 +v 51.9294 3.34161 85.3942 +v 45.9809 3.34161 88.7389 +v 39.8179 3.34161 91.6699 +v 33.4693 3.34161 94.1734 +v 26.9647 3.34161 96.2379 +v 20.3343 3.34161 97.8537 +v 13.6092 3.34161 99.0133 +v 6.82054 3.34161 99.7112 +v 0.000114774 3.34161 99.9442 +v -6.8203 3.34161 99.7112 +v -13.6089 3.34161 99.0133 +v -20.3341 3.34161 97.8538 +v -26.9645 3.34161 96.238 +v -33.4691 3.34161 94.1735 +v -39.8177 3.34161 91.67 +v -45.9807 3.34161 88.739 +v -51.9292 3.34161 85.3943 +v -57.6357 3.34161 81.6515 +v -63.0734 3.34161 77.5279 +v -68.2171 3.34161 73.0429 +v -73.0427 3.34161 68.2173 +v -77.5277 3.34161 63.0737 +v -81.6513 3.34161 57.636 +v -85.3941 3.34161 51.9295 +v -88.7388 3.34161 45.981 +v -91.6698 3.34161 39.818 +v -94.1734 3.34161 33.4694 +v -96.2379 3.34161 26.9648 +v -97.8537 3.34161 20.3345 +v -99.0132 3.34161 13.6093 +v -99.7111 3.34161 6.82066 +v -99.9442 3.34161 0.000229548 +v -99.7112 3.34161 -6.8202 +v -99.0133 3.34161 -13.6088 +v -97.8538 3.34161 -20.334 +v -96.238 3.34161 -26.9644 +v -94.1736 3.34161 -33.469 +v -91.67 3.34161 -39.8176 +v -88.7391 3.34161 -45.9806 +v -85.3944 3.34161 -51.9292 +v -81.6515 3.34161 -57.6356 +v -77.528 3.34161 -63.0733 +v -73.043 3.34161 -68.217 +v -68.2174 3.34161 -73.0426 +v -63.0738 3.34161 -77.5276 +v -57.6361 3.34161 -81.6512 +v -51.9297 3.34161 -85.3941 +v -45.9811 3.34161 -88.7388 +v -39.8182 3.34161 -91.6698 +v -33.4696 3.34161 -94.1734 +v -26.9649 3.34161 -96.2379 +v -20.3346 3.34161 -97.8537 +v -13.6094 3.34161 -99.0132 +v -6.82076 3.34161 -99.7111 +v -0.000332408 3.34161 -99.9442 +v 6.8201 3.34161 -99.7112 +v 13.6087 3.34161 -99.0133 +v 20.3339 3.34161 -97.8538 +v 26.9642 3.34161 -96.2381 +v 33.4689 3.34161 -94.1736 +v 39.8175 3.34161 -91.6701 +v 45.9805 3.34161 -88.7391 +v 51.929 3.34161 -85.3944 +v 57.6355 3.34161 -81.6516 +v 63.0732 3.34161 -77.5281 +v 68.2169 3.34161 -73.0431 +v 73.0425 3.34161 -68.2175 +v 77.5276 3.34161 -63.0739 +v 81.6511 3.34161 -57.6362 +v 85.394 3.34161 -51.9298 +v 88.7387 3.34161 -45.9812 +v 91.6697 3.34161 -39.8183 +v 94.1733 3.34161 -33.4697 +v 96.2378 3.34161 -26.965 +v 97.8536 3.34161 -20.3347 +v 99.0132 3.34161 -13.6095 +v 99.7111 3.34161 -6.82089 +v 99.9442 -3.34138 5.88009e-39 +v 99.7112 -3.34138 6.82043 +v 99.0133 -3.34138 13.6091 +v 97.8537 -3.34138 20.3342 +v 96.238 -3.34138 26.9646 +v 94.1735 -3.34138 33.4692 +v 91.6699 -3.34138 39.8178 +v 88.739 -3.34138 45.9808 +v 85.3942 -3.34138 51.9293 +v 81.6514 -3.34138 57.6358 +v 77.5278 -3.34138 63.0735 +v 73.0428 -3.34138 68.2172 +v 68.2172 -3.34138 73.0427 +v 63.0736 -3.34138 77.5278 +v 57.6359 -3.34138 81.6513 +v 51.9295 -3.34138 85.3942 +v 45.9809 -3.34138 88.7389 +v 39.8179 -3.34138 91.6699 +v 33.4694 -3.34138 94.1734 +v 26.9647 -3.34138 96.2379 +v 20.3343 -3.34138 97.8537 +v 13.6092 -3.34138 99.0133 +v 6.82054 -3.34138 99.7112 +v 0.000114774 -3.34138 99.9442 +v -6.8203 -3.34138 99.7112 +v -13.6089 -3.34138 99.0133 +v -20.3341 -3.34138 97.8538 +v -26.9645 -3.34138 96.238 +v -33.4691 -3.34138 94.1735 +v -39.8177 -3.34138 91.67 +v -45.9807 -3.34138 88.739 +v -51.9292 -3.34138 85.3943 +v -57.6357 -3.34138 81.6515 +v -63.0734 -3.34138 77.5279 +v -68.2171 -3.34138 73.0429 +v -73.0427 -3.34138 68.2173 +v -77.5277 -3.34138 63.0737 +v -81.6513 -3.34138 57.636 +v -85.3941 -3.34138 51.9295 +v -88.7389 -3.34138 45.981 +v -91.6698 -3.34138 39.818 +v -94.1734 -3.34138 33.4694 +v -96.2379 -3.34138 26.9648 +v -97.8537 -3.34138 20.3345 +v -99.0132 -3.34138 13.6093 +v -99.7112 -3.34138 6.82066 +v -99.9442 -3.34138 0.000229548 +v -99.7112 -3.34138 -6.8202 +v -99.0133 -3.34138 -13.6088 +v -97.8538 -3.34138 -20.334 +v -96.238 -3.34138 -26.9644 +v -94.1736 -3.34138 -33.469 +v -91.67 -3.34138 -39.8176 +v -88.7391 -3.34138 -45.9806 +v -85.3944 -3.34138 -51.9292 +v -81.6515 -3.34138 -57.6356 +v -77.528 -3.34138 -63.0733 +v -73.043 -3.34138 -68.217 +v -68.2174 -3.34138 -73.0426 +v -63.0738 -3.34138 -77.5276 +v -57.6361 -3.34138 -81.6512 +v -51.9297 -3.34138 -85.3941 +v -45.9811 -3.34138 -88.7388 +v -39.8182 -3.34138 -91.6698 +v -33.4696 -3.34138 -94.1734 +v -26.9649 -3.34138 -96.2379 +v -20.3346 -3.34138 -97.8537 +v -13.6094 -3.34138 -99.0132 +v -6.82076 -3.34138 -99.7111 +v -0.000332408 -3.34138 -99.9442 +v 6.8201 -3.34138 -99.7112 +v 13.6087 -3.34138 -99.0133 +v 20.3339 -3.34138 -97.8538 +v 26.9642 -3.34138 -96.2381 +v 33.4689 -3.34138 -94.1736 +v 39.8175 -3.34138 -91.6701 +v 45.9805 -3.34138 -88.7391 +v 51.929 -3.34138 -85.3944 +v 57.6355 -3.34138 -81.6516 +v 63.0732 -3.34138 -77.5281 +v 68.2169 -3.34138 -73.0431 +v 73.0425 -3.34138 -68.2175 +v 77.5276 -3.34138 -63.0739 +v 81.6511 -3.34138 -57.6362 +v 85.394 -3.34138 -51.9298 +v 88.7387 -3.34138 -45.9812 +v 91.6697 -3.34138 -39.8183 +v 94.1733 -3.34138 -33.4697 +v 96.2378 -3.34138 -26.965 +v 97.8536 -3.34138 -20.3347 +v 99.0132 -3.34138 -13.6095 +v 99.7111 -3.34138 -6.82089 +v 99.4978 -10.0094 5.88009e-39 +v 99.2658 -10.0094 6.78996 +v 98.5711 -10.0094 13.5483 +v 97.4167 -10.0094 20.2434 +v 95.8082 -10.0094 26.8442 +v 93.7529 -10.0094 33.3198 +v 91.2605 -10.0094 39.64 +v 88.3426 -10.0094 45.7754 +v 85.0129 -10.0094 51.6974 +v 81.2867 -10.0094 57.3784 +v 77.1816 -10.0094 62.7918 +v 72.7166 -10.0094 67.9125 +v 67.9126 -10.0094 72.7165 +v 62.7919 -10.0094 77.1815 +v 57.3785 -10.0094 81.2867 +v 51.6975 -10.0094 85.0128 +v 45.7755 -10.0094 88.3426 +v 39.6401 -10.0094 91.2605 +v 33.3199 -10.0094 93.7529 +v 26.8443 -10.0094 95.8081 +v 20.2435 -10.0094 97.4167 +v 13.5484 -10.0094 98.5711 +v 6.79008 -10.0094 99.2658 +v 0.000114261 -10.0094 99.4978 +v -6.78984 -10.0094 99.2659 +v -13.5482 -10.0094 98.5711 +v -20.2433 -10.0094 97.4167 +v -26.8441 -10.0094 95.8082 +v -33.3196 -10.0094 93.7529 +v -39.6399 -10.0094 91.2606 +v -45.7753 -10.0094 88.3427 +v -51.6973 -10.0094 85.0129 +v -57.3783 -10.0094 81.2868 +v -62.7917 -10.0094 77.1817 +v -67.9124 -10.0094 72.7167 +v -72.7165 -10.0094 67.9127 +v -77.1814 -10.0094 62.792 +v -81.2866 -10.0094 57.3786 +v -85.0127 -10.0094 51.6976 +v -88.3425 -10.0094 45.7756 +v -91.2604 -10.0094 39.6402 +v -93.7528 -10.0094 33.32 +v -95.8081 -10.0094 26.8444 +v -97.4167 -10.0094 20.2436 +v -98.571 -10.0094 13.5485 +v -99.2658 -10.0094 6.7902 +v -99.4978 -10.0094 0.000228523 +v -99.2659 -10.0094 -6.78974 +v -98.5711 -10.0094 -13.548 +v -97.4168 -10.0094 -20.2432 +v -95.8082 -10.0094 -26.8439 +v -93.753 -10.0094 -33.3195 +v -91.2606 -10.0094 -39.6398 +v -88.3427 -10.0094 -45.7752 +v -85.013 -10.0094 -51.6972 +v -81.2869 -10.0094 -57.3782 +v -77.1817 -10.0094 -62.7916 +v -72.7168 -10.0094 -67.9123 +v -67.9127 -10.0094 -72.7164 +v -62.7921 -10.0094 -77.1814 +v -57.3787 -10.0094 -81.2865 +v -51.6977 -10.0094 -85.0127 +v -45.7757 -10.0094 -88.3425 +v -39.6403 -10.0094 -91.2604 +v -33.3201 -10.0094 -93.7528 +v -26.8445 -10.0094 -95.8081 +v -20.2437 -10.0094 -97.4166 +v -13.5486 -10.0094 -98.571 +v -6.7903 -10.0094 -99.2658 +v -0.000330923 -10.0094 -99.4978 +v 6.78964 -10.0094 -99.2659 +v 13.5479 -10.0094 -98.5711 +v 20.243 -10.0094 -97.4168 +v 26.8438 -10.0094 -95.8083 +v 33.3194 -10.0094 -93.753 +v 39.6397 -10.0094 -91.2607 +v 45.7751 -10.0094 -88.3428 +v 51.6971 -10.0094 -85.013 +v 57.3781 -10.0094 -81.2869 +v 62.7916 -10.0094 -77.1818 +v 67.9122 -10.0094 -72.7168 +v 72.7163 -10.0094 -67.9128 +v 77.1813 -10.0094 -62.7922 +v 81.2865 -10.0094 -57.3787 +v 85.0126 -10.0094 -51.6978 +v 88.3424 -10.0094 -45.7759 +v 91.2603 -10.0094 -39.6404 +v 93.7527 -10.0094 -33.3202 +v 95.808 -10.0094 -26.8446 +v 97.4166 -10.0094 -20.2439 +v 98.571 -10.0094 -13.5487 +v 99.2658 -10.0094 -6.79042 +v 98.607 -16.6328 5.88009e-39 +v 98.3772 -16.6328 6.72918 +v 97.6886 -16.6328 13.427 +v 96.5446 -16.6328 20.0622 +v 94.9504 -16.6328 26.6038 +v 92.9136 -16.6328 33.0215 +v 90.4435 -16.6328 39.2851 +v 87.5518 -16.6328 45.3656 +v 84.2518 -16.6328 51.2346 +v 80.559 -16.6328 56.8647 +v 76.4906 -16.6328 62.2297 +v 72.0656 -16.6328 67.3045 +v 67.3046 -16.6328 72.0655 +v 62.2298 -16.6328 76.4906 +v 56.8648 -16.6328 80.5589 +v 51.2347 -16.6328 84.2517 +v 45.3657 -16.6328 87.5517 +v 39.2852 -16.6328 90.4435 +v 33.0216 -16.6328 92.9135 +v 26.604 -16.6328 94.9504 +v 20.0623 -16.6328 96.5446 +v 13.4271 -16.6328 97.6886 +v 6.72929 -16.6328 98.3772 +v 0.000113239 -16.6328 98.607 +v -6.72906 -16.6328 98.3772 +v -13.4269 -16.6328 97.6886 +v -20.0621 -16.6328 96.5446 +v -26.6037 -16.6328 94.9505 +v -33.0214 -16.6328 92.9136 +v -39.285 -16.6328 90.4436 +v -45.3655 -16.6328 87.5518 +v -51.2345 -16.6328 84.2519 +v -56.8646 -16.6328 80.5591 +v -62.2296 -16.6328 76.4907 +v -67.3044 -16.6328 72.0657 +v -72.0655 -16.6328 67.3047 +v -76.4905 -16.6328 62.2299 +v -80.5589 -16.6328 56.8649 +v -84.2517 -16.6328 51.2348 +v -87.5517 -16.6328 45.3658 +v -90.4434 -16.6328 39.2853 +v -92.9135 -16.6328 33.0217 +v -94.9504 -16.6328 26.6041 +v -96.5445 -16.6328 20.0624 +v -97.6886 -16.6328 13.4272 +v -98.3772 -16.6328 6.72941 +v -98.607 -16.6328 0.000226477 +v -98.3772 -16.6328 -6.72896 +v -97.6887 -16.6328 -13.4267 +v -96.5446 -16.6328 -20.0619 +v -94.9505 -16.6328 -26.6036 +v -92.9137 -16.6328 -33.0212 +v -90.4436 -16.6328 -39.2849 +v -87.5519 -16.6328 -45.3654 +v -84.2519 -16.6328 -51.2344 +v -80.5592 -16.6328 -56.8645 +v -76.4908 -16.6328 -62.2295 +v -72.0658 -16.6328 -67.3043 +v -67.3048 -16.6328 -72.0654 +v -62.23 -16.6328 -76.4904 +v -56.865 -16.6328 -80.5588 +v -51.2349 -16.6328 -84.2516 +v -45.3659 -16.6328 -87.5516 +v -39.2854 -16.6328 -90.4434 +v -33.0218 -16.6328 -92.9135 +v -26.6042 -16.6328 -94.9503 +v -20.0625 -16.6328 -96.5445 +v -13.4273 -16.6328 -97.6886 +v -6.72951 -16.6328 -98.3772 +v -0.000327961 -16.6328 -98.607 +v 6.72885 -16.6328 -98.3772 +v 13.4266 -16.6328 -97.6887 +v 20.0618 -16.6328 -96.5447 +v 26.6035 -16.6328 -94.9505 +v 33.0211 -16.6328 -92.9137 +v 39.2848 -16.6328 -90.4436 +v 45.3653 -16.6328 -87.5519 +v 51.2343 -16.6328 -84.252 +v 56.8644 -16.6328 -80.5592 +v 62.2294 -16.6328 -76.4908 +v 67.3043 -16.6328 -72.0658 +v 72.0653 -16.6328 -67.3048 +v 76.4904 -16.6328 -62.23 +v 80.5588 -16.6328 -56.8651 +v 84.2515 -16.6328 -51.235 +v 87.5515 -16.6328 -45.3661 +v 90.4433 -16.6328 -39.2856 +v 92.9134 -16.6328 -33.0219 +v 94.9503 -16.6328 -26.6043 +v 96.5445 -16.6328 -20.0626 +v 97.6886 -16.6328 -13.4274 +v 98.3771 -16.6328 -6.72963 +v 97.2759 -23.1819 5.88009e-39 +v 97.0491 -23.1819 6.63834 +v 96.3699 -23.1819 13.2457 +v 95.2413 -23.1819 19.7913 +v 93.6686 -23.1819 26.2447 +v 91.6593 -23.1819 32.5757 +v 89.2226 -23.1819 38.7548 +v 86.3698 -23.1819 44.7532 +v 83.1144 -23.1819 50.543 +v 79.4715 -23.1819 56.0971 +v 75.458 -23.1819 61.3896 +v 71.0928 -23.1819 66.3959 +v 66.396 -23.1819 71.0927 +v 61.3897 -23.1819 75.458 +v 56.0972 -23.1819 79.4714 +v 50.5431 -23.1819 83.1144 +v 44.7533 -23.1819 86.3698 +v 38.7549 -23.1819 89.2225 +v 32.5758 -23.1819 91.6592 +v 26.2448 -23.1819 93.6686 +v 19.7915 -23.1819 95.2413 +v 13.2458 -23.1819 96.3699 +v 6.63845 -23.1819 97.0491 +v 0.00011171 -23.1819 97.2759 +v -6.63822 -23.1819 97.0491 +v -13.2456 -23.1819 96.3699 +v -19.7912 -23.1819 95.2413 +v -26.2446 -23.1819 93.6687 +v -32.5756 -23.1819 91.6593 +v -38.7547 -23.1819 89.2226 +v -44.7531 -23.1819 86.3699 +v -50.5429 -23.1819 83.1145 +v -56.097 -23.1819 79.4716 +v -61.3895 -23.1819 75.4581 +v -66.3959 -23.1819 71.0928 +v -71.0926 -23.1819 66.3961 +v -75.4579 -23.1819 61.3898 +v -79.4714 -23.1819 56.0972 +v -83.1143 -23.1819 50.5432 +v -86.3697 -23.1819 44.7534 +v -89.2225 -23.1819 38.755 +v -91.6592 -23.1819 32.5759 +v -93.6686 -23.1819 26.2449 +v -95.2412 -23.1819 19.7916 +v -96.3698 -23.1819 13.246 +v -97.0491 -23.1819 6.63856 +v -97.2759 -23.1819 0.00022342 +v -97.0491 -23.1819 -6.63812 +v -96.3699 -23.1819 -13.2455 +v -95.2413 -23.1819 -19.7911 +v -93.6687 -23.1819 -26.2445 +v -91.6594 -23.1819 -32.5755 +v -89.2226 -23.1819 -38.7546 +v -86.3699 -23.1819 -44.753 +v -83.1145 -23.1819 -50.5428 +v -79.4716 -23.1819 -56.0969 +v -75.4582 -23.1819 -61.3894 +v -71.0929 -23.1819 -66.3958 +v -66.3962 -23.1819 -71.0925 +v -61.3899 -23.1819 -75.4578 +v -56.0973 -23.1819 -79.4713 +v -50.5433 -23.1819 -83.1143 +v -44.7535 -23.1819 -86.3697 +v -38.7551 -23.1819 -89.2224 +v -32.576 -23.1819 -91.6592 +v -26.245 -23.1819 -93.6686 +v -19.7917 -23.1819 -95.2412 +v -13.2461 -23.1819 -96.3698 +v -6.63866 -23.1819 -97.0491 +v -0.000323533 -23.1819 -97.2759 +v 6.63802 -23.1819 -97.0491 +v 13.2454 -23.1819 -96.3699 +v 19.791 -23.1819 -95.2414 +v 26.2444 -23.1819 -93.6687 +v 32.5754 -23.1819 -91.6594 +v 38.7545 -23.1819 -89.2227 +v 44.7529 -23.1819 -86.37 +v 50.5427 -23.1819 -83.1146 +v 56.0968 -23.1819 -79.4717 +v 61.3893 -23.1819 -75.4583 +v 66.3957 -23.1819 -71.093 +v 71.0925 -23.1819 -66.3962 +v 75.4578 -23.1819 -61.3899 +v 79.4713 -23.1819 -56.0974 +v 83.1142 -23.1819 -50.5434 +v 86.3696 -23.1819 -44.7536 +v 89.2224 -23.1819 -38.7552 +v 91.6591 -23.1819 -32.5761 +v 93.6685 -23.1819 -26.2451 +v 95.2412 -23.1819 -19.7918 +v 96.3698 -23.1819 -13.2462 +v 97.0491 -23.1819 -6.63879 +v 95.5103 -29.6274 5.88009e-39 +v 95.2876 -29.6274 6.51785 +v 94.6207 -29.6274 13.0053 +v 93.5126 -29.6274 19.4321 +v 91.9685 -29.6274 25.7684 +v 89.9956 -29.6274 31.9844 +v 87.6031 -29.6274 38.0514 +v 84.8022 -29.6274 43.9409 +v 81.6059 -29.6274 49.6256 +v 78.0291 -29.6274 55.0789 +v 74.0884 -29.6274 60.2754 +v 69.8024 -29.6274 65.1908 +v 65.1909 -29.6274 69.8023 +v 60.2754 -29.6274 74.0884 +v 55.079 -29.6274 78.029 +v 49.6257 -29.6274 81.6058 +v 43.941 -29.6274 84.8021 +v 38.0515 -29.6274 87.6031 +v 31.9845 -29.6274 89.9956 +v 25.7685 -29.6274 91.9685 +v 19.4322 -29.6274 93.5126 +v 13.0054 -29.6274 94.6207 +v 6.51796 -29.6274 95.2876 +v 0.000109682 -29.6274 95.5103 +v -6.51773 -29.6274 95.2876 +v -13.0052 -29.6274 94.6207 +v -19.432 -29.6274 93.5126 +v -25.7682 -29.6274 91.9685 +v -31.9843 -29.6274 89.9957 +v -38.0513 -29.6274 87.6032 +v -43.9408 -29.6274 84.8022 +v -49.6255 -29.6274 81.6059 +v -55.0788 -29.6274 78.0291 +v -60.2753 -29.6274 74.0885 +v -65.1907 -29.6274 69.8025 +v -69.8022 -29.6274 65.191 +v -74.0883 -29.6274 60.2755 +v -78.0289 -29.6274 55.0791 +v -81.6058 -29.6274 49.6258 +v -84.8021 -29.6274 43.9411 +v -87.603 -29.6274 38.0516 +v -89.9956 -29.6274 31.9846 +v -91.9685 -29.6274 25.7686 +v -93.5126 -29.6274 19.4324 +v -94.6207 -29.6274 13.0055 +v -95.2876 -29.6274 6.51807 +v -95.5103 -29.6274 0.000219365 +v -95.2877 -29.6274 -6.51763 +v -94.6207 -29.6274 -13.0051 +v -93.5127 -29.6274 -19.4319 +v -91.9686 -29.6274 -25.7681 +v -89.9957 -29.6274 -31.9842 +v -87.6032 -29.6274 -38.0512 +v -84.8023 -29.6274 -43.9407 +v -81.606 -29.6274 -49.6254 +v -78.0292 -29.6274 -55.0787 +v -74.0886 -29.6274 -60.2752 +v -69.8025 -29.6274 -65.1906 +v -65.1911 -29.6274 -69.8022 +v -60.2756 -29.6274 -74.0882 +v -55.0792 -29.6274 -78.0289 +v -49.6259 -29.6274 -81.6057 +v -43.9412 -29.6274 -84.802 +v -38.0517 -29.6274 -87.603 +v -31.9847 -29.6274 -89.9955 +v -25.7687 -29.6274 -91.9684 +v -19.4325 -29.6274 -93.5125 +v -13.0056 -29.6274 -94.6207 +v -6.51817 -29.6274 -95.2876 +v -0.000317661 -29.6274 -95.5103 +v 6.51753 -29.6274 -95.2877 +v 13.005 -29.6274 -94.6208 +v 19.4318 -29.6274 -93.5127 +v 25.768 -29.6274 -91.9686 +v 31.9841 -29.6274 -89.9957 +v 38.0511 -29.6274 -87.6033 +v 43.9406 -29.6274 -84.8023 +v 49.6253 -29.6274 -81.606 +v 55.0786 -29.6274 -78.0293 +v 60.2751 -29.6274 -74.0886 +v 65.1906 -29.6274 -69.8026 +v 69.8021 -29.6274 -65.1911 +v 74.0882 -29.6274 -60.2757 +v 78.0288 -29.6274 -55.0792 +v 81.6056 -29.6274 -49.626 +v 84.802 -29.6274 -43.9413 +v 87.603 -29.6274 -38.0518 +v 89.9955 -29.6274 -31.9849 +v 91.9684 -29.6274 -25.7688 +v 93.5125 -29.6274 -19.4326 +v 94.6206 -29.6274 -13.0057 +v 95.2876 -29.6274 -6.51829 +v 93.3181 -35.9406 5.88009e-39 +v 93.1006 -35.9406 6.36825 +v 92.4489 -35.9406 12.7068 +v 91.3663 -35.9406 18.9861 +v 89.8576 -35.9406 25.1769 +v 87.93 -35.9406 31.2503 +v 85.5924 -35.9406 37.178 +v 82.8558 -35.9406 42.9324 +v 79.7328 -35.9406 48.4866 +v 76.2381 -35.9406 53.8147 +v 72.3879 -35.9406 58.8919 +v 68.2003 -35.9406 63.6945 +v 63.6946 -35.9406 68.2002 +v 58.892 -35.9406 72.3879 +v 53.8148 -35.9406 76.2381 +v 48.4867 -35.9406 79.7328 +v 42.9325 -35.9406 82.8557 +v 37.1781 -35.9406 85.5924 +v 31.2504 -35.9406 87.93 +v 25.177 -35.9406 89.8576 +v 18.9862 -35.9406 91.3663 +v 12.7069 -35.9406 92.4489 +v 6.36836 -35.9406 93.1006 +v 0.000107165 -35.9406 93.3181 +v -6.36813 -35.9406 93.1006 +v -12.7067 -35.9406 92.449 +v -18.986 -35.9406 91.3663 +v -25.1768 -35.9406 89.8577 +v -31.2502 -35.9406 87.9301 +v -37.1779 -35.9406 85.5925 +v -42.9323 -35.9406 82.8558 +v -48.4865 -35.9406 79.7329 +v -53.8146 -35.9406 76.2382 +v -58.8918 -35.9406 72.388 +v -63.6945 -35.9406 68.2003 +v -68.2001 -35.9406 63.6947 +v -72.3878 -35.9406 58.8921 +v -76.238 -35.9406 53.8149 +v -79.7327 -35.9406 48.4868 +v -82.8557 -35.9406 42.9326 +v -85.5924 -35.9406 37.1782 +v -87.93 -35.9406 31.2505 +v -89.8576 -35.9406 25.1771 +v -91.3662 -35.9406 18.9863 +v -92.4489 -35.9406 12.707 +v -93.1006 -35.9406 6.36847 +v -93.3181 -35.9406 0.00021433 +v -93.1006 -35.9406 -6.36804 +v -92.449 -35.9406 -12.7066 +v -91.3663 -35.9406 -18.9859 +v -89.8577 -35.9406 -25.1767 +v -87.9301 -35.9406 -31.2501 +v -85.5925 -35.9406 -37.1778 +v -82.8559 -35.9406 -42.9322 +v -79.7329 -35.9406 -48.4864 +v -76.2382 -35.9406 -53.8145 +v -72.3881 -35.9406 -58.8917 +v -68.2004 -35.9406 -63.6944 +v -63.6948 -35.9406 -68.2001 +v -58.8922 -35.9406 -72.3877 +v -53.815 -35.9406 -76.2379 +v -48.4869 -35.9406 -79.7327 +v -42.9327 -35.9406 -82.8556 +v -37.1783 -35.9406 -85.5923 +v -31.2506 -35.9406 -87.9299 +v -25.1772 -35.9406 -89.8575 +v -18.9864 -35.9406 -91.3662 +v -12.7071 -35.9406 -92.4489 +v -6.36856 -35.9406 -93.1005 +v -0.00031037 -35.9406 -93.3181 +v 6.36794 -35.9406 -93.1006 +v 12.7065 -35.9406 -92.449 +v 18.9858 -35.9406 -91.3664 +v 25.1766 -35.9406 -89.8577 +v 31.25 -35.9406 -87.9301 +v 37.1777 -35.9406 -85.5926 +v 42.9321 -35.9406 -82.8559 +v 48.4863 -35.9406 -79.733 +v 53.8144 -35.9406 -76.2383 +v 58.8917 -35.9406 -72.3881 +v 63.6943 -35.9406 -68.2005 +v 68.2 -35.9406 -63.6948 +v 72.3877 -35.9406 -58.8922 +v 76.2379 -35.9406 -53.815 +v 79.7326 -35.9406 -48.487 +v 82.8556 -35.9406 -42.9328 +v 85.5923 -35.9406 -37.1784 +v 87.9299 -35.9406 -31.2507 +v 89.8575 -35.9406 -25.1773 +v 91.3662 -35.9406 -18.9865 +v 92.4489 -35.9406 -12.7072 +v 93.1005 -35.9406 -6.36868 +v 90.7092 -42.0933 5.88009e-39 +v 90.4977 -42.0933 6.19021 +v 89.8643 -42.0933 12.3516 +v 88.8119 -42.0933 18.4553 +v 87.3454 -42.0933 24.473 +v 85.4717 -42.0933 30.3766 +v 83.1995 -42.0933 36.1386 +v 80.5393 -42.0933 41.7321 +v 77.5037 -42.0933 47.131 +v 74.1067 -42.0933 52.3101 +v 70.3641 -42.0933 57.2454 +v 66.2935 -42.0933 61.9138 +v 61.9139 -42.0933 66.2935 +v 57.2455 -42.0933 70.3641 +v 52.3102 -42.0933 74.1066 +v 47.1311 -42.0933 77.5036 +v 41.7322 -42.0933 80.5393 +v 36.1387 -42.0933 83.1994 +v 30.3767 -42.0933 85.4717 +v 24.4731 -42.0933 87.3454 +v 18.4554 -42.0933 88.8119 +v 12.3517 -42.0933 89.8643 +v 6.19031 -42.0933 90.4977 +v 0.000104169 -42.0933 90.7092 +v -6.1901 -42.0933 90.4977 +v -12.3514 -42.0933 89.8643 +v -18.4552 -42.0933 88.8119 +v -24.4729 -42.0933 87.3454 +v -30.3765 -42.0933 85.4717 +v -36.1385 -42.0933 83.1995 +v -41.732 -42.0933 80.5394 +v -47.1309 -42.0933 77.5037 +v -52.3101 -42.0933 74.1067 +v -57.2453 -42.0933 70.3642 +v -61.9137 -42.0933 66.2936 +v -66.2934 -42.0933 61.9139 +v -70.364 -42.0933 57.2456 +v -74.1065 -42.0933 52.3103 +v -77.5036 -42.0933 47.1312 +v -80.5392 -42.0933 41.7323 +v -83.1994 -42.0933 36.1388 +v -85.4716 -42.0933 30.3768 +v -87.3454 -42.0933 24.4732 +v -88.8118 -42.0933 18.4555 +v -89.8643 -42.0933 12.3518 +v -90.4977 -42.0933 6.19042 +v -90.7092 -42.0933 0.000208337 +v -90.4977 -42.0933 -6.19 +v -89.8643 -42.0933 -12.3513 +v -88.8119 -42.0933 -18.4551 +v -87.3455 -42.0933 -24.4728 +v -85.4718 -42.0933 -30.3764 +v -83.1996 -42.0933 -36.1384 +v -80.5394 -42.0933 -41.7319 +v -77.5038 -42.0933 -47.1308 +v -74.1068 -42.0933 -52.31 +v -70.3643 -42.0933 -57.2452 +v -66.2937 -42.0933 -61.9136 +v -61.914 -42.0933 -66.2933 +v -57.2457 -42.0933 -70.3639 +v -52.3104 -42.0933 -74.1065 +v -47.1313 -42.0933 -77.5035 +v -41.7324 -42.0933 -80.5392 +v -36.1389 -42.0933 -83.1993 +v -30.3769 -42.0933 -85.4716 +v -24.4733 -42.0933 -87.3453 +v -18.4556 -42.0933 -88.8118 +v -12.3519 -42.0933 -89.8642 +v -6.19051 -42.0933 -90.4977 +v -0.000301693 -42.0933 -90.7092 +v 6.18991 -42.0933 -90.4977 +v 12.3512 -42.0933 -89.8643 +v 18.455 -42.0933 -88.812 +v 24.4727 -42.0933 -87.3455 +v 30.3763 -42.0933 -85.4718 +v 36.1383 -42.0933 -83.1996 +v 41.7318 -42.0933 -80.5395 +v 47.1307 -42.0933 -77.5038 +v 52.3099 -42.0933 -74.1068 +v 57.2452 -42.0933 -70.3643 +v 61.9136 -42.0933 -66.2938 +v 66.2933 -42.0933 -61.9141 +v 70.3639 -42.0933 -57.2457 +v 74.1064 -42.0933 -52.3105 +v 77.5034 -42.0933 -47.1314 +v 80.5391 -42.0933 -41.7325 +v 83.1993 -42.0933 -36.139 +v 85.4715 -42.0933 -30.377 +v 87.3453 -42.0933 -24.4734 +v 88.8118 -42.0933 -18.4557 +v 89.8642 -42.0933 -12.352 +v 90.4977 -42.0933 -6.19063 +v 87.6951 -48.058 5.88009e-39 +v 87.4906 -48.058 5.98452 +v 86.8783 -48.058 11.9411 +v 85.8608 -48.058 17.8421 +v 84.4431 -48.058 23.6598 +v 82.6316 -48.058 29.3673 +v 80.4349 -48.058 34.9378 +v 77.8632 -48.058 40.3454 +v 74.9284 -48.058 45.5649 +v 71.6443 -48.058 50.572 +v 68.0261 -48.058 55.3433 +v 64.0907 -48.058 59.8565 +v 59.8566 -48.058 64.0907 +v 55.3433 -48.058 68.026 +v 50.5721 -48.058 71.6442 +v 45.565 -48.058 74.9283 +v 40.3455 -48.058 77.8631 +v 34.9379 -48.058 80.4349 +v 29.3674 -48.058 82.6316 +v 23.6599 -48.058 84.4431 +v 17.8422 -48.058 85.8608 +v 11.9412 -48.058 86.8783 +v 5.98462 -48.058 87.4906 +v 0.000100707 -48.058 87.6951 +v -5.98441 -48.058 87.4906 +v -11.941 -48.058 86.8783 +v -17.842 -48.058 85.8609 +v -23.6597 -48.058 84.4431 +v -29.3672 -48.058 82.6317 +v -34.9377 -48.058 80.435 +v -40.3453 -48.058 77.8632 +v -45.5648 -48.058 74.9284 +v -50.5719 -48.058 71.6443 +v -55.3432 -48.058 68.0261 +v -59.8564 -48.058 64.0908 +v -64.0906 -48.058 59.8567 +v -68.0259 -48.058 55.3434 +v -71.6441 -48.058 50.5722 +v -74.9283 -48.058 45.5651 +v -77.8631 -48.058 40.3456 +v -80.4348 -48.058 34.938 +v -82.6316 -48.058 29.3675 +v -84.443 -48.058 23.66 +v -85.8608 -48.058 17.8423 +v -86.8782 -48.058 11.9413 +v -87.4906 -48.058 5.98472 +v -87.6951 -48.058 0.000201415 +v -87.4906 -48.058 -5.98432 +v -86.8783 -48.058 -11.9409 +v -85.8609 -48.058 -17.8419 +v -84.4432 -48.058 -23.6596 +v -82.6317 -48.058 -29.3671 +v -80.435 -48.058 -34.9376 +v -77.8633 -48.058 -40.3452 +v -74.9285 -48.058 -45.5648 +v -71.6444 -48.058 -50.5718 +v -68.0262 -48.058 -55.3431 +v -64.0909 -48.058 -59.8564 +v -59.8567 -48.058 -64.0905 +v -55.3435 -48.058 -68.0259 +v -50.5723 -48.058 -71.6441 +v -45.5652 -48.058 -74.9282 +v -40.3457 -48.058 -77.863 +v -34.9381 -48.058 -80.4348 +v -29.3676 -48.058 -82.6315 +v -23.6601 -48.058 -84.443 +v -17.8424 -48.058 -85.8608 +v -11.9414 -48.058 -86.8782 +v -5.98481 -48.058 -87.4906 +v -0.000291668 -48.058 -87.6951 +v 5.98423 -48.058 -87.4907 +v 11.9408 -48.058 -86.8783 +v 17.8418 -48.058 -85.8609 +v 23.6595 -48.058 -84.4432 +v 29.367 -48.058 -82.6318 +v 34.9375 -48.058 -80.435 +v 40.3451 -48.058 -77.8633 +v 45.5647 -48.058 -74.9285 +v 50.5717 -48.058 -71.6444 +v 55.343 -48.058 -68.0263 +v 59.8563 -48.058 -64.091 +v 64.0905 -48.058 -59.8568 +v 68.0258 -48.058 -55.3436 +v 71.644 -48.058 -50.5723 +v 74.9282 -48.058 -45.5653 +v 77.863 -48.058 -40.3458 +v 80.4348 -48.058 -34.9382 +v 82.6315 -48.058 -29.3677 +v 84.443 -48.058 -23.6602 +v 85.8608 -48.058 -17.8425 +v 86.8782 -48.058 -11.9415 +v 87.4906 -48.058 -5.98492 +v 84.2893 -53.8081 5.88009e-39 +v 84.0928 -53.8081 5.7521 +v 83.5042 -53.8081 11.4774 +v 82.5263 -53.8081 17.1492 +v 81.1636 -53.8081 22.741 +v 79.4225 -53.8081 28.2268 +v 77.3111 -53.8081 33.5809 +v 74.8392 -53.8081 38.7785 +v 72.0184 -53.8081 43.7953 +v 68.8619 -53.8081 48.608 +v 65.3842 -53.8081 53.1939 +v 61.6017 -53.8081 57.5319 +v 57.532 -53.8081 61.6016 +v 53.194 -53.8081 65.3841 +v 48.608 -53.8081 68.8618 +v 43.7954 -53.8081 72.0184 +v 38.7786 -53.8081 74.8392 +v 33.581 -53.8081 77.3111 +v 28.2268 -53.8081 79.4225 +v 22.7411 -53.8081 81.1636 +v 17.1493 -53.8081 82.5263 +v 11.4775 -53.8081 83.5042 +v 5.7522 -53.8081 84.0928 +v 9.67963e-05 -53.8081 84.2893 +v -5.752 -53.8081 84.0928 +v -11.4773 -53.8081 83.5043 +v -17.1491 -53.8081 82.5264 +v -22.7409 -53.8081 81.1637 +v -28.2267 -53.8081 79.4226 +v -33.5808 -53.8081 77.3112 +v -38.7784 -53.8081 74.8393 +v -43.7953 -53.8081 72.0185 +v -48.6079 -53.8081 68.8619 +v -53.1939 -53.8081 65.3843 +v -57.5318 -53.8081 61.6018 +v -61.6016 -53.8081 57.532 +v -65.3841 -53.8081 53.1941 +v -68.8617 -53.8081 48.6081 +v -72.0183 -53.8081 43.7955 +v -74.8392 -53.8081 38.7787 +v -77.311 -53.8081 33.5811 +v -79.4225 -53.8081 28.2269 +v -81.1636 -53.8081 22.7412 +v -82.5263 -53.8081 17.1494 +v -83.5042 -53.8081 11.4776 +v -84.0928 -53.8081 5.7523 +v -84.2893 -53.8081 0.000193593 +v -84.0928 -53.8081 -5.75191 +v -83.5043 -53.8081 -11.4772 +v -82.5264 -53.8081 -17.149 +v -81.1637 -53.8081 -22.7408 +v -79.4226 -53.8081 -28.2266 +v -77.3112 -53.8081 -33.5808 +v -74.8393 -53.8081 -38.7784 +v -72.0185 -53.8081 -43.7952 +v -68.862 -53.8081 -48.6078 +v -65.3843 -53.8081 -53.1938 +v -61.6018 -53.8081 -57.5318 +v -57.5321 -53.8081 -61.6015 +v -53.1942 -53.8081 -65.384 +v -48.6082 -53.8081 -68.8617 +v -43.7956 -53.8081 -72.0183 +v -38.7788 -53.8081 -74.8391 +v -33.5812 -53.8081 -77.311 +v -28.227 -53.8081 -79.4224 +v -22.7413 -53.8081 -81.1636 +v -17.1494 -53.8081 -82.5263 +v -11.4777 -53.8081 -83.5042 +v -5.75238 -53.8081 -84.0928 +v -0.000280341 -53.8081 -84.2893 +v 5.75183 -53.8081 -84.0928 +v 11.4771 -53.8081 -83.5043 +v 17.1489 -53.8081 -82.5264 +v 22.7407 -53.8081 -81.1637 +v 28.2265 -53.8081 -79.4226 +v 33.5807 -53.8081 -77.3112 +v 38.7783 -53.8081 -74.8394 +v 43.7951 -53.8081 -72.0186 +v 48.6077 -53.8081 -68.862 +v 53.1937 -53.8081 -65.3844 +v 57.5317 -53.8081 -61.6019 +v 61.6014 -53.8081 -57.5322 +v 65.384 -53.8081 -53.1942 +v 68.8616 -53.8081 -48.6083 +v 72.0182 -53.8081 -43.7957 +v 74.8391 -53.8081 -38.7789 +v 77.311 -53.8081 -33.5813 +v 79.4224 -53.8081 -28.2271 +v 81.1635 -53.8081 -22.7414 +v 82.5262 -53.8081 -17.1495 +v 83.5042 -53.8081 -11.4778 +v 84.0928 -53.8081 -5.75249 +v 80.5071 -59.3178 5.88009e-39 +v 80.3194 -59.3178 5.49399 +v 79.7573 -59.3178 10.9624 +v 78.8232 -59.3178 16.3796 +v 77.5217 -59.3178 21.7205 +v 75.8587 -59.3178 26.9602 +v 73.842 -59.3178 32.0741 +v 71.4811 -59.3178 37.0385 +v 68.7868 -59.3178 41.8302 +v 65.7719 -59.3178 46.4268 +v 62.4503 -59.3178 50.807 +v 58.8375 -59.3178 54.9503 +v 54.9504 -59.3178 58.8375 +v 50.8071 -59.3178 62.4502 +v 46.4269 -59.3178 65.7718 +v 41.8303 -59.3178 68.7868 +v 37.0386 -59.3178 71.481 +v 32.0742 -59.3178 73.842 +v 26.9603 -59.3178 75.8587 +v 21.7206 -59.3178 77.5217 +v 16.3797 -59.3178 78.8232 +v 10.9625 -59.3178 79.7572 +v 5.49409 -59.3178 80.3194 +v 9.24529e-05 -59.3178 80.5071 +v -5.4939 -59.3178 80.3194 +v -10.9623 -59.3178 79.7573 +v -16.3796 -59.3178 78.8232 +v -21.7205 -59.3178 77.5217 +v -26.9601 -59.3178 75.8587 +v -32.074 -59.3178 73.8421 +v -37.0384 -59.3178 71.4811 +v -41.8301 -59.3178 68.7869 +v -46.4268 -59.3178 65.772 +v -50.807 -59.3178 62.4504 +v -54.9503 -59.3178 58.8376 +v -58.8374 -59.3178 54.9505 +v -62.4502 -59.3178 50.8072 +v -65.7718 -59.3178 46.427 +v -68.7868 -59.3178 41.8303 +v -71.481 -59.3178 37.0386 +v -73.842 -59.3178 32.0743 +v -75.8586 -59.3178 26.9603 +v -77.5216 -59.3178 21.7207 +v -78.8232 -59.3178 16.3798 +v -79.7572 -59.3178 10.9626 +v -80.3194 -59.3178 5.49418 +v -80.5071 -59.3178 0.000184906 +v -80.3194 -59.3178 -5.49381 +v -79.7573 -59.3178 -10.9622 +v -78.8233 -59.3178 -16.3795 +v -77.5217 -59.3178 -21.7204 +v -75.8588 -59.3178 -26.96 +v -73.8421 -59.3178 -32.0739 +v -71.4812 -59.3178 -37.0383 +v -68.7869 -59.3178 -41.83 +v -65.772 -59.3178 -46.4267 +v -62.4504 -59.3178 -50.8069 +v -58.8376 -59.3178 -54.9502 +v -54.9506 -59.3178 -58.8373 +v -50.8073 -59.3178 -62.4501 +v -46.4271 -59.3178 -65.7717 +v -41.8304 -59.3178 -68.7867 +v -37.0387 -59.3178 -71.4809 +v -32.0744 -59.3178 -73.8419 +v -26.9604 -59.3178 -75.8586 +v -21.7208 -59.3178 -77.5216 +v -16.3799 -59.3178 -78.8232 +v -10.9626 -59.3178 -79.7572 +v -5.49427 -59.3178 -80.3194 +v -0.000267761 -59.3178 -80.5071 +v 5.49373 -59.3178 -80.3194 +v 10.9621 -59.3178 -79.7573 +v 16.3794 -59.3178 -78.8233 +v 21.7203 -59.3178 -77.5218 +v 26.9599 -59.3178 -75.8588 +v 32.0738 -59.3178 -73.8421 +v 37.0382 -59.3178 -71.4812 +v 41.8299 -59.3178 -68.787 +v 46.4266 -59.3178 -65.7721 +v 50.8068 -59.3178 -62.4505 +v 54.9501 -59.3178 -58.8377 +v 58.8373 -59.3178 -54.9506 +v 62.4501 -59.3178 -50.8073 +v 65.7717 -59.3178 -46.4271 +v 68.7866 -59.3178 -41.8305 +v 71.4809 -59.3178 -37.0388 +v 73.8419 -59.3178 -32.0745 +v 75.8586 -59.3178 -26.9605 +v 77.5216 -59.3178 -21.7209 +v 78.8232 -59.3178 -16.38 +v 79.7572 -59.3178 -10.9627 +v 80.3194 -59.3178 -5.49437 +v 76.3653 -64.5627 5.88009e-39 +v 76.1873 -64.5627 5.21135 +v 75.6541 -64.5627 10.3984 +v 74.7681 -64.5627 15.537 +v 73.5335 -64.5627 20.6031 +v 71.9561 -64.5627 25.5732 +v 70.0432 -64.5627 30.424 +v 67.8037 -64.5627 35.133 +v 65.248 -64.5627 39.6782 +v 62.3882 -64.5627 44.0384 +v 59.2375 -64.5627 48.1932 +v 55.8106 -64.5627 52.1234 +v 52.1234 -64.5627 55.8105 +v 48.1933 -64.5627 59.2374 +v 44.0384 -64.5627 62.3881 +v 39.6783 -64.5627 65.248 +v 35.1331 -64.5627 67.8036 +v 30.4241 -64.5627 70.0431 +v 25.5733 -64.5627 71.956 +v 20.6032 -64.5627 73.5335 +v 15.5371 -64.5627 74.7681 +v 10.3985 -64.5627 75.6541 +v 5.21144 -64.5627 76.1873 +v 8.76965e-05 -64.5627 76.3653 +v -5.21126 -64.5627 76.1873 +v -10.3983 -64.5627 75.6541 +v -15.5369 -64.5627 74.7681 +v -20.603 -64.5627 73.5335 +v -25.5731 -64.5627 71.9561 +v -30.4239 -64.5627 70.0432 +v -35.1329 -64.5627 67.8037 +v -39.6781 -64.5627 65.2481 +v -44.0383 -64.5627 62.3882 +v -48.1931 -64.5627 59.2375 +v -52.1233 -64.5627 55.8106 +v -55.8104 -64.5627 52.1235 +v -59.2374 -64.5627 48.1934 +v -62.3881 -64.5627 44.0385 +v -65.2479 -64.5627 39.6783 +v -67.8036 -64.5627 35.1332 +v -70.0431 -64.5627 30.4242 +v -71.956 -64.5627 25.5733 +v -73.5335 -64.5627 20.6033 +v -74.7681 -64.5627 15.5372 +v -75.654 -64.5627 10.3986 +v -76.1873 -64.5627 5.21153 +v -76.3653 -64.5627 0.000175393 +v -76.1873 -64.5627 -5.21118 +v -75.6541 -64.5627 -10.3982 +v -74.7681 -64.5627 -15.5368 +v -73.5336 -64.5627 -20.6029 +v -71.9561 -64.5627 -25.573 +v -70.0432 -64.5627 -30.4238 +v -67.8037 -64.5627 -35.1328 +v -65.2481 -64.5627 -39.678 +v -62.3883 -64.5627 -44.0382 +v -59.2376 -64.5627 -48.1931 +v -55.8107 -64.5627 -52.1232 +v -52.1236 -64.5627 -55.8104 +v -48.1934 -64.5627 -59.2373 +v -44.0386 -64.5627 -62.388 +v -39.6784 -64.5627 -65.2479 +v -35.1332 -64.5627 -67.8035 +v -30.4243 -64.5627 -70.043 +v -25.5734 -64.5627 -71.956 +v -20.6034 -64.5627 -73.5334 +v -15.5372 -64.5627 -74.768 +v -10.3987 -64.5627 -75.654 +v -5.21161 -64.5627 -76.1873 +v -0.000253986 -64.5627 -76.3653 +v 5.2111 -64.5627 -76.1873 +v 10.3981 -64.5627 -75.6541 +v 15.5367 -64.5627 -74.7681 +v 20.6028 -64.5627 -73.5336 +v 25.5729 -64.5627 -71.9562 +v 30.4238 -64.5627 -70.0433 +v 35.1328 -64.5627 -67.8038 +v 39.6779 -64.5627 -65.2482 +v 44.0381 -64.5627 -62.3884 +v 48.193 -64.5627 -59.2376 +v 52.1232 -64.5627 -55.8107 +v 55.8103 -64.5627 -52.1236 +v 59.2373 -64.5627 -48.1935 +v 62.388 -64.5627 -44.0386 +v 65.2478 -64.5627 -39.6785 +v 67.8035 -64.5627 -35.1333 +v 70.043 -64.5627 -30.4243 +v 71.956 -64.5627 -25.5735 +v 73.5334 -64.5627 -20.6035 +v 74.768 -64.5627 -15.5373 +v 75.654 -64.5627 -10.3988 +v 76.1873 -64.5627 -5.2117 +v 71.8825 -69.5191 5.88009e-39 +v 71.7149 -69.5191 4.90543 +v 71.213 -69.5191 9.78799 +v 70.379 -69.5191 14.6249 +v 69.2169 -69.5191 19.3937 +v 67.7321 -69.5191 24.072 +v 65.9314 -69.5191 28.638 +v 63.8234 -69.5191 33.0706 +v 61.4178 -69.5191 37.349 +v 58.7259 -69.5191 41.4532 +v 55.7601 -69.5191 45.3641 +v 52.5343 -69.5191 49.0636 +v 49.0637 -69.5191 52.5343 +v 45.3642 -69.5191 55.76 +v 41.4533 -69.5191 58.7258 +v 37.349 -69.5191 61.4178 +v 33.0707 -69.5191 63.8234 +v 28.6381 -69.5191 65.9314 +v 24.072 -69.5191 67.732 +v 19.3937 -69.5191 69.2169 +v 14.625 -69.5191 70.379 +v 9.78808 -69.5191 71.213 +v 4.90552 -69.5191 71.7149 +v 8.25485e-05 -69.5191 71.8825 +v -4.90534 -69.5191 71.7149 +v -9.78791 -69.5191 71.213 +v -14.6248 -69.5191 70.379 +v -19.3936 -69.5191 69.2169 +v -24.0719 -69.5191 67.7321 +v -28.638 -69.5191 65.9315 +v -33.0705 -69.5191 63.8235 +v -37.3489 -69.5191 61.4179 +v -41.4531 -69.5191 58.7259 +v -45.3641 -69.5191 55.7601 +v -49.0635 -69.5191 52.5344 +v -52.5342 -69.5191 49.0637 +v -55.76 -69.5191 45.3643 +v -58.7257 -69.5191 41.4533 +v -61.4177 -69.5191 37.3491 +v -63.8233 -69.5191 33.0707 +v -65.9314 -69.5191 28.6382 +v -67.732 -69.5191 24.0721 +v -69.2169 -69.5191 19.3938 +v -70.379 -69.5191 14.6251 +v -71.213 -69.5191 9.78816 +v -71.7149 -69.5191 4.9056 +v -71.8825 -69.5191 0.000165097 +v -71.7149 -69.5191 -4.90527 +v -71.213 -69.5191 -9.78782 +v -70.379 -69.5191 -14.6247 +v -69.2169 -69.5191 -19.3935 +v -67.7321 -69.5191 -24.0718 +v -65.9315 -69.5191 -28.6379 +v -63.8235 -69.5191 -33.0705 +v -61.4179 -69.5191 -37.3488 +v -58.726 -69.5191 -41.453 +v -55.7602 -69.5191 -45.364 +v -52.5345 -69.5191 -49.0635 +v -49.0638 -69.5191 -52.5342 +v -45.3644 -69.5191 -55.7599 +v -41.4534 -69.5191 -58.7257 +v -37.3492 -69.5191 -61.4177 +v -33.0708 -69.5191 -63.8233 +v -28.6383 -69.5191 -65.9313 +v -24.0722 -69.5191 -67.732 +v -19.3939 -69.5191 -69.2168 +v -14.6252 -69.5191 -70.379 +v -9.78823 -69.5191 -71.2129 +v -4.90567 -69.5191 -71.7149 +v -0.000239077 -69.5191 -71.8825 +v 4.9052 -69.5191 -71.7149 +v 9.78773 -69.5191 -71.213 +v 14.6247 -69.5191 -70.3791 +v 19.3934 -69.5191 -69.217 +v 24.0717 -69.5191 -67.7322 +v 28.6378 -69.5191 -65.9315 +v 33.0704 -69.5191 -63.8235 +v 37.3487 -69.5191 -61.4179 +v 41.453 -69.5191 -58.726 +v 45.364 -69.5191 -55.7602 +v 49.0634 -69.5191 -52.5345 +v 52.5341 -69.5191 -49.0638 +v 55.7599 -69.5191 -45.3644 +v 58.7257 -69.5191 -41.4535 +v 61.4176 -69.5191 -37.3493 +v 63.8233 -69.5191 -33.0709 +v 65.9313 -69.5191 -28.6384 +v 67.732 -69.5191 -24.0723 +v 69.2168 -69.5191 -19.394 +v 70.3789 -69.5191 -14.6252 +v 71.2129 -69.5191 -9.78832 +v 71.7149 -69.5191 -4.90576 +v 67.0786 -74.1651 5.88009e-39 +v 66.9222 -74.1651 4.5776 +v 66.4538 -74.1651 9.13386 +v 65.6756 -74.1651 13.6475 +v 64.5912 -74.1651 18.0976 +v 63.2056 -74.1651 22.4632 +v 61.5253 -74.1651 26.7242 +v 59.5581 -74.1651 30.8605 +v 57.3133 -74.1651 34.8529 +v 54.8012 -74.1651 38.6829 +v 52.0337 -74.1651 42.3325 +v 49.0235 -74.1651 45.7847 +v 45.7847 -74.1651 49.0234 +v 42.3325 -74.1651 52.0336 +v 38.683 -74.1651 54.8012 +v 34.853 -74.1651 57.3132 +v 30.8606 -74.1651 59.5581 +v 26.7242 -74.1651 61.5252 +v 22.4633 -74.1651 63.2055 +v 18.0977 -74.1651 64.5911 +v 13.6476 -74.1651 65.6756 +v 9.13394 -74.1651 66.4538 +v 4.57768 -74.1651 66.9222 +v 7.70318e-05 -74.1651 67.0786 +v -4.57752 -74.1651 66.9222 +v -9.13378 -74.1651 66.4538 +v -13.6475 -74.1651 65.6756 +v -18.0975 -74.1651 64.5912 +v -22.4632 -74.1651 63.2056 +v -26.7241 -74.1651 61.5253 +v -30.8604 -74.1651 59.5582 +v -34.8529 -74.1651 57.3133 +v -38.6828 -74.1651 54.8013 +v -42.3324 -74.1651 52.0337 +v -45.7846 -74.1651 49.0235 +v -49.0234 -74.1651 45.7848 +v -52.0336 -74.1651 42.3326 +v -54.8011 -74.1651 38.683 +v -57.3132 -74.1651 34.8531 +v -59.558 -74.1651 30.8606 +v -61.5252 -74.1651 26.7243 +v -63.2055 -74.1651 22.4634 +v -64.5911 -74.1651 18.0977 +v -65.6756 -74.1651 13.6477 +v -66.4538 -74.1651 9.13402 +v -66.9222 -74.1651 4.57776 +v -67.0786 -74.1651 0.000154064 +v -66.9222 -74.1651 -4.57745 +v -66.4539 -74.1651 -9.1337 +v -65.6756 -74.1651 -13.6474 +v -64.5912 -74.1651 -18.0974 +v -63.2056 -74.1651 -22.4631 +v -61.5253 -74.1651 -26.724 +v -59.5582 -74.1651 -30.8604 +v -57.3134 -74.1651 -34.8528 +v -54.8013 -74.1651 -38.6828 +v -52.0338 -74.1651 -42.3324 +v -49.0236 -74.1651 -45.7846 +v -45.7849 -74.1651 -49.0233 +v -42.3327 -74.1651 -52.0335 +v -38.6831 -74.1651 -54.8011 +v -34.8532 -74.1651 -57.3132 +v -30.8607 -74.1651 -59.558 +v -26.7244 -74.1651 -61.5252 +v -22.4635 -74.1651 -63.2055 +v -18.0978 -74.1651 -64.5911 +v -13.6478 -74.1651 -65.6756 +v -9.13409 -74.1651 -66.4538 +v -4.57783 -74.1651 -66.9222 +v -0.000223099 -74.1651 -67.0786 +v 4.57738 -74.1651 -66.9223 +v 9.13362 -74.1651 -66.4539 +v 13.6473 -74.1651 -65.6757 +v 18.0973 -74.1651 -64.5912 +v 22.463 -74.1651 -63.2056 +v 26.724 -74.1651 -61.5254 +v 30.8603 -74.1651 -59.5582 +v 34.8527 -74.1651 -57.3134 +v 38.6827 -74.1651 -54.8014 +v 42.3323 -74.1651 -52.0338 +v 45.7845 -74.1651 -49.0236 +v 49.0233 -74.1651 -45.7849 +v 52.0335 -74.1651 -42.3327 +v 54.8011 -74.1651 -38.6831 +v 57.3131 -74.1651 -34.8532 +v 59.558 -74.1651 -30.8608 +v 61.5251 -74.1651 -26.7245 +v 63.2055 -74.1651 -22.4635 +v 64.5911 -74.1651 -18.0979 +v 65.6755 -74.1651 -13.6478 +v 66.4538 -74.1651 -9.13417 +v 66.9222 -74.1651 -4.57791 +v 61.9751 -78.4798 5.88009e-39 +v 61.8306 -78.4798 4.22933 +v 61.3979 -78.4798 8.43894 +v 60.6789 -78.4798 12.6092 +v 59.6769 -78.4798 16.7207 +v 58.3967 -78.4798 20.7542 +v 56.8443 -78.4798 24.6909 +v 55.0268 -78.4798 28.5126 +v 52.9528 -78.4798 32.2013 +v 50.6318 -78.4798 35.7398 +v 48.0748 -78.4798 39.1117 +v 45.2937 -78.4798 42.3013 +v 42.3013 -78.4798 45.2936 +v 39.1118 -78.4798 48.0748 +v 35.7399 -78.4798 50.6318 +v 32.2013 -78.4798 52.9527 +v 28.5126 -78.4798 55.0268 +v 24.691 -78.4798 56.8443 +v 20.7543 -78.4798 58.3967 +v 16.7207 -78.4798 59.6769 +v 12.6093 -78.4798 60.6788 +v 8.43901 -78.4798 61.3979 +v 4.2294 -78.4798 61.8306 +v 7.11711e-05 -78.4798 61.9751 +v -4.22925 -78.4798 61.8307 +v -8.43887 -78.4798 61.3979 +v -12.6091 -78.4798 60.6789 +v -16.7206 -78.4798 59.6769 +v -20.7541 -78.4798 58.3968 +v -24.6909 -78.4798 56.8443 +v -28.5125 -78.4798 55.0268 +v -32.2012 -78.4798 52.9528 +v -35.7398 -78.4798 50.6319 +v -39.1117 -78.4798 48.0749 +v -42.3012 -78.4798 45.2937 +v -45.2936 -78.4798 42.3014 +v -48.0747 -78.4798 39.1118 +v -50.6317 -78.4798 35.7399 +v -52.9527 -78.4798 32.2014 +v -55.0267 -78.4798 28.5127 +v -56.8442 -78.4798 24.6911 +v -58.3967 -78.4798 20.7543 +v -59.6769 -78.4798 16.7208 +v -60.6788 -78.4798 12.6093 +v -61.3979 -78.4798 8.43908 +v -61.8306 -78.4798 4.22947 +v -61.9751 -78.4798 0.000142342 +v -61.8307 -78.4798 -4.22919 +v -61.3979 -78.4798 -8.43879 +v -60.6789 -78.4798 -12.6091 +v -59.677 -78.4798 -16.7205 +v -58.3968 -78.4798 -20.7541 +v -56.8443 -78.4798 -24.6908 +v -55.0269 -78.4798 -28.5124 +v -52.9528 -78.4798 -32.2011 +v -50.6319 -78.4798 -35.7397 +v -48.0749 -78.4798 -39.1116 +v -45.2938 -78.4798 -42.3012 +v -42.3014 -78.4798 -45.2935 +v -39.1119 -78.4798 -48.0747 +v -35.74 -78.4798 -50.6317 +v -32.2015 -78.4798 -52.9526 +v -28.5128 -78.4798 -55.0267 +v -24.6911 -78.4798 -56.8442 +v -20.7544 -78.4798 -58.3967 +v -16.7209 -78.4798 -59.6769 +v -12.6094 -78.4798 -60.6788 +v -8.43915 -78.4798 -61.3979 +v -4.22954 -78.4798 -61.8306 +v -0.000206125 -78.4798 -61.9751 +v 4.22913 -78.4798 -61.8307 +v 8.43871 -78.4798 -61.3979 +v 12.609 -78.4798 -60.6789 +v 16.7205 -78.4798 -59.677 +v 20.754 -78.4798 -58.3968 +v 24.6907 -78.4798 -56.8444 +v 28.5124 -78.4798 -55.0269 +v 32.2011 -78.4798 -52.9529 +v 35.7396 -78.4798 -50.632 +v 39.1116 -78.4798 -48.075 +v 42.3011 -78.4798 -45.2938 +v 45.2935 -78.4798 -42.3015 +v 48.0746 -78.4798 -39.1119 +v 50.6317 -78.4798 -35.74 +v 52.9526 -78.4798 -32.2015 +v 55.0267 -78.4798 -28.5128 +v 56.8442 -78.4798 -24.6912 +v 58.3966 -78.4798 -20.7545 +v 59.6768 -78.4798 -16.721 +v 60.6788 -78.4798 -12.6095 +v 61.3978 -78.4798 -8.43923 +v 61.8306 -78.4798 -4.22962 +v 56.5949 -82.4441 5.88009e-39 +v 56.4629 -82.4441 3.86217 +v 56.0677 -82.4441 7.70633 +v 55.4111 -82.4441 11.5146 +v 54.4962 -82.4441 15.2691 +v 53.3271 -82.4441 18.9525 +v 51.9095 -82.4441 22.5474 +v 50.2497 -82.4441 26.0373 +v 48.3558 -82.4441 29.4058 +v 46.2363 -82.4441 32.6371 +v 43.9013 -82.4441 35.7163 +v 41.3616 -82.4441 38.629 +v 38.629 -82.4441 41.3615 +v 35.7164 -82.4441 43.9012 +v 32.6372 -82.4441 46.2363 +v 29.4058 -82.4441 48.3557 +v 26.0374 -82.4441 50.2497 +v 22.5475 -82.4441 51.9094 +v 18.9525 -82.4441 53.3271 +v 15.2692 -82.4441 54.4962 +v 11.5146 -82.4441 55.4111 +v 7.7064 -82.4441 56.0677 +v 3.86223 -82.4441 56.4629 +v 6.49925e-05 -82.4441 56.5949 +v -3.8621 -82.4441 56.4629 +v -7.70626 -82.4441 56.0677 +v -11.5145 -82.4441 55.4111 +v -15.269 -82.4441 54.4962 +v -18.9524 -82.4441 53.3272 +v -22.5474 -82.4441 51.9095 +v -26.0372 -82.4441 50.2498 +v -29.4057 -82.4441 48.3558 +v -32.6371 -82.4441 46.2364 +v -35.7163 -82.4441 43.9013 +v -38.6289 -82.4441 41.3616 +v -41.3615 -82.4441 38.6291 +v -43.9012 -82.4441 35.7164 +v -46.2362 -82.4441 32.6372 +v -48.3557 -82.4441 29.4059 +v -50.2497 -82.4441 26.0374 +v -51.9094 -82.4441 22.5476 +v -53.3271 -82.4441 18.9526 +v -54.4961 -82.4441 15.2692 +v -55.4111 -82.4441 11.5147 +v -56.0677 -82.4441 7.70646 +v -56.4629 -82.4441 3.8623 +v -56.5949 -82.4441 0.000129985 +v -56.4629 -82.4441 -3.86204 +v -56.0678 -82.4441 -7.70619 +v -55.4112 -82.4441 -11.5144 +v -54.4962 -82.4441 -15.269 +v -53.3272 -82.4441 -18.9523 +v -51.9095 -82.4441 -22.5473 +v -50.2498 -82.4441 -26.0372 +v -48.3558 -82.4441 -29.4057 +v -46.2364 -82.4441 -32.637 +v -43.9014 -82.4441 -35.7162 +v -41.3617 -82.4441 -38.6289 +v -38.6291 -82.4441 -41.3614 +v -35.7165 -82.4441 -43.9012 +v -32.6373 -82.4441 -46.2362 +v -29.4059 -82.4441 -48.3557 +v -26.0375 -82.4441 -50.2497 +v -22.5476 -82.4441 -51.9094 +v -18.9526 -82.4441 -53.3271 +v -15.2693 -82.4441 -54.4961 +v -11.5147 -82.4441 -55.4111 +v -7.70652 -82.4441 -56.0677 +v -3.86236 -82.4441 -56.4629 +v -0.000188231 -82.4441 -56.5949 +v 3.86198 -82.4441 -56.4629 +v 7.70612 -82.4441 -56.0678 +v 11.5144 -82.4441 -55.4112 +v 15.2689 -82.4441 -54.4962 +v 18.9523 -82.4441 -53.3272 +v 22.5473 -82.4441 -51.9095 +v 26.0371 -82.4441 -50.2498 +v 29.4056 -82.4441 -48.3559 +v 32.637 -82.4441 -46.2364 +v 35.7162 -82.4441 -43.9014 +v 38.6288 -82.4441 -41.3617 +v 41.3614 -82.4441 -38.6292 +v 43.9011 -82.4441 -35.7165 +v 46.2362 -82.4441 -32.6373 +v 48.3556 -82.4441 -29.406 +v 50.2496 -82.4441 -26.0375 +v 51.9093 -82.4441 -22.5477 +v 53.327 -82.4441 -18.9527 +v 54.4961 -82.4441 -15.2694 +v 55.4111 -82.4441 -11.5148 +v 56.0677 -82.4441 -7.70659 +v 56.4629 -82.4441 -3.86243 +v 50.9618 -86.0401 5.88009e-39 +v 50.843 -86.0401 3.47776 +v 50.4872 -86.0401 6.9393 +v 49.8959 -86.0401 10.3685 +v 49.072 -86.0401 13.7493 +v 48.0193 -86.0401 17.0661 +v 46.7428 -86.0401 20.3032 +v 45.2483 -86.0401 23.4457 +v 43.5428 -86.0401 26.4789 +v 41.6343 -86.0401 29.3887 +v 39.5317 -86.0401 32.1614 +v 37.2448 -86.0401 34.7841 +v 34.7842 -86.0401 37.2447 +v 32.1614 -86.0401 39.5316 +v 29.3887 -86.0401 41.6343 +v 26.479 -86.0401 43.5428 +v 23.4458 -86.0401 45.2482 +v 20.3033 -86.0401 46.7427 +v 17.0661 -86.0401 48.0193 +v 13.7494 -86.0401 49.072 +v 10.3685 -86.0401 49.8959 +v 6.93936 -86.0401 50.4872 +v 3.47782 -86.0401 50.843 +v 5.85236e-05 -86.0401 50.9618 +v -3.47769 -86.0401 50.843 +v -6.93924 -86.0401 50.4872 +v -10.3684 -86.0401 49.8959 +v -13.7493 -86.0401 49.072 +v -17.066 -86.0401 48.0194 +v -20.3032 -86.0401 46.7428 +v -23.4457 -86.0401 45.2483 +v -26.4789 -86.0401 43.5428 +v -29.3886 -86.0401 41.6343 +v -32.1613 -86.0401 39.5317 +v -34.7841 -86.0401 37.2448 +v -37.2447 -86.0401 34.7842 +v -39.5316 -86.0401 32.1615 +v -41.6342 -86.0401 29.3888 +v -43.5427 -86.0401 26.479 +v -45.2482 -86.0401 23.4458 +v -46.7427 -86.0401 20.3033 +v -48.0193 -86.0401 17.0662 +v -49.072 -86.0401 13.7494 +v -49.8959 -86.0401 10.3686 +v -50.4871 -86.0401 6.93942 +v -50.843 -86.0401 3.47787 +v -50.9618 -86.0401 0.000117047 +v -50.843 -86.0401 -3.47764 +v -50.4872 -86.0401 -6.93917 +v -49.8959 -86.0401 -10.3684 +v -49.0721 -86.0401 -13.7492 +v -48.0194 -86.0401 -17.066 +v -46.7428 -86.0401 -20.3031 +v -45.2483 -86.0401 -23.4456 +v -43.5428 -86.0401 -26.4788 +v -41.6344 -86.0401 -29.3886 +v -39.5318 -86.0401 -32.1613 +v -37.2448 -86.0401 -34.784 +v -34.7843 -86.0401 -37.2446 +v -32.1615 -86.0401 -39.5316 +v -29.3888 -86.0401 -41.6342 +v -26.4791 -86.0401 -43.5427 +v -23.4459 -86.0401 -45.2482 +v -20.3034 -86.0401 -46.7427 +v -17.0662 -86.0401 -48.0193 +v -13.7495 -86.0401 -49.072 +v -10.3687 -86.0401 -49.8959 +v -6.93947 -86.0401 -50.4871 +v -3.47793 -86.0401 -50.843 +v -0.000169496 -86.0401 -50.9618 +v 3.47759 -86.0401 -50.843 +v 6.93911 -86.0401 -50.4872 +v 10.3683 -86.0401 -49.896 +v 13.7491 -86.0401 -49.0721 +v 17.0659 -86.0401 -48.0194 +v 20.3031 -86.0401 -46.7428 +v 23.4456 -86.0401 -45.2483 +v 26.4788 -86.0401 -43.5429 +v 29.3885 -86.0401 -41.6344 +v 32.1612 -86.0401 -39.5318 +v 34.784 -86.0401 -37.2449 +v 37.2446 -86.0401 -34.7843 +v 39.5315 -86.0401 -32.1616 +v 41.6342 -86.0401 -29.3888 +v 43.5427 -86.0401 -26.4791 +v 45.2481 -86.0401 -23.446 +v 46.7427 -86.0401 -20.3035 +v 48.0193 -86.0401 -17.0663 +v 49.072 -86.0401 -13.7496 +v 49.8959 -86.0401 -10.3687 +v 50.4871 -86.0401 -6.93953 +v 50.843 -86.0401 -3.47799 +v 45.1012 -89.2518 5.88009e-39 +v 44.996 -89.2518 3.07781 +v 44.6811 -89.2518 6.14127 +v 44.1579 -89.2518 9.1761 +v 43.4287 -89.2518 12.1681 +v 42.4971 -89.2518 15.1035 +v 41.3673 -89.2518 17.9683 +v 40.0447 -89.2518 20.7495 +v 38.5353 -89.2518 23.4338 +v 36.8463 -89.2518 26.009 +v 34.9855 -89.2518 28.4628 +v 32.9616 -89.2518 30.7839 +v 30.784 -89.2518 32.9616 +v 28.4628 -89.2518 34.9855 +v 26.009 -89.2518 36.8463 +v 23.4339 -89.2518 38.5353 +v 20.7495 -89.2518 40.0447 +v 17.9684 -89.2518 41.3673 +v 15.1035 -89.2518 42.4971 +v 12.1682 -89.2518 43.4287 +v 9.17615 -89.2518 44.1578 +v 6.14133 -89.2518 44.6811 +v 3.07787 -89.2518 44.996 +v 5.17934e-05 -89.2518 45.1012 +v -3.07776 -89.2518 44.9961 +v -6.14122 -89.2518 44.6811 +v -9.17605 -89.2518 44.1579 +v -12.1681 -89.2518 43.4287 +v -15.1034 -89.2518 42.4971 +v -17.9683 -89.2518 41.3673 +v -20.7494 -89.2518 40.0447 +v -23.4338 -89.2518 38.5354 +v -26.0089 -89.2518 36.8464 +v -28.4628 -89.2518 34.9855 +v -30.7839 -89.2518 32.9616 +v -32.9615 -89.2518 30.784 +v -34.9854 -89.2518 28.4629 +v -36.8463 -89.2518 26.009 +v -38.5353 -89.2518 23.4339 +v -40.0446 -89.2518 20.7496 +v -41.3673 -89.2518 17.9684 +v -42.4971 -89.2518 15.1036 +v -43.4287 -89.2518 12.1683 +v -44.1578 -89.2518 9.17621 +v -44.6811 -89.2518 6.14138 +v -44.996 -89.2518 3.07792 +v -45.1012 -89.2518 0.000103587 +v -44.9961 -89.2518 -3.07771 +v -44.6811 -89.2518 -6.14116 +v -44.1579 -89.2518 -9.17599 +v -43.4287 -89.2518 -12.168 +v -42.4971 -89.2518 -15.1034 +v -41.3674 -89.2518 -17.9683 +v -40.0447 -89.2518 -20.7494 +v -38.5354 -89.2518 -23.4338 +v -36.8464 -89.2518 -26.0089 +v -34.9856 -89.2518 -28.4627 +v -32.9617 -89.2518 -30.7839 +v -30.7841 -89.2518 -32.9615 +v -28.4629 -89.2518 -34.9854 +v -26.0091 -89.2518 -36.8462 +v -23.434 -89.2518 -38.5353 +v -20.7496 -89.2518 -40.0446 +v -17.9685 -89.2518 -41.3673 +v -15.1036 -89.2518 -42.497 +v -12.1683 -89.2518 -43.4287 +v -9.17625 -89.2518 -44.1578 +v -6.14143 -89.2518 -44.6811 +v -3.07796 -89.2518 -44.996 +v -0.000150004 -89.2518 -45.1012 +v 3.07766 -89.2518 -44.9961 +v 6.14111 -89.2518 -44.6811 +v 9.17594 -89.2518 -44.1579 +v 12.168 -89.2518 -43.4288 +v 15.1033 -89.2518 -42.4971 +v 17.9682 -89.2518 -41.3674 +v 20.7493 -89.2518 -40.0448 +v 23.4337 -89.2518 -38.5354 +v 26.0088 -89.2518 -36.8464 +v 28.4627 -89.2518 -34.9856 +v 30.7838 -89.2518 -32.9617 +v 32.9614 -89.2518 -30.7841 +v 34.9854 -89.2518 -28.463 +v 36.8462 -89.2518 -26.0091 +v 38.5352 -89.2518 -23.434 +v 40.0446 -89.2518 -20.7497 +v 41.3672 -89.2518 -17.9685 +v 42.497 -89.2518 -15.1037 +v 43.4287 -89.2518 -12.1684 +v 44.1578 -89.2518 -9.17631 +v 44.6811 -89.2518 -6.14148 +v 44.996 -89.2518 -3.07802 +v 39.0391 -92.0649 5.88009e-39 +v 38.9481 -92.0649 2.66412 +v 38.6755 -92.0649 5.31582 +v 38.2226 -92.0649 7.94274 +v 37.5914 -92.0649 10.5326 +v 36.785 -92.0649 13.0734 +v 35.8071 -92.0649 15.5532 +v 34.6623 -92.0649 17.9605 +v 33.3558 -92.0649 20.2841 +v 31.8938 -92.0649 22.5131 +v 30.2831 -92.0649 24.6371 +v 28.5312 -92.0649 26.6463 +v 26.6463 -92.0649 28.5312 +v 24.6371 -92.0649 30.2831 +v 22.5131 -92.0649 31.8938 +v 20.2841 -92.0649 33.3558 +v 17.9606 -92.0649 34.6622 +v 15.5533 -92.0649 35.8071 +v 13.0734 -92.0649 36.785 +v 10.5327 -92.0649 37.5914 +v 7.94278 -92.0649 38.2226 +v 5.31587 -92.0649 38.6755 +v 2.66417 -92.0649 38.9481 +v 4.48318e-05 -92.0649 39.0391 +v -2.66407 -92.0649 38.9481 +v -5.31578 -92.0649 38.6755 +v -7.94269 -92.0649 38.2226 +v -10.5326 -92.0649 37.5915 +v -13.0734 -92.0649 36.7851 +v -15.5532 -92.0649 35.8071 +v -17.9605 -92.0649 34.6623 +v -20.284 -92.0649 33.3558 +v -22.513 -92.0649 31.8938 +v -24.6371 -92.0649 30.2831 +v -26.6462 -92.0649 28.5312 +v -28.5311 -92.0649 26.6463 +v -30.283 -92.0649 24.6372 +v -31.8937 -92.0649 22.5132 +v -33.3557 -92.0649 20.2842 +v -34.6622 -92.0649 17.9606 +v -35.8071 -92.0649 15.5533 +v -36.785 -92.0649 13.0735 +v -37.5914 -92.0649 10.5327 +v -38.2226 -92.0649 7.94283 +v -38.6755 -92.0649 5.31591 +v -38.9481 -92.0649 2.66421 +v -39.0391 -92.0649 8.96636e-05 +v -38.9481 -92.0649 -2.66403 +v -38.6755 -92.0649 -5.31573 +v -38.2226 -92.0649 -7.94264 +v -37.5915 -92.0649 -10.5325 +v -36.7851 -92.0649 -13.0733 +v -35.8072 -92.0649 -15.5531 +v -34.6623 -92.0649 -17.9604 +v -33.3558 -92.0649 -20.284 +v -31.8938 -92.0649 -22.513 +v -30.2832 -92.0649 -24.637 +v -28.5313 -92.0649 -26.6462 +v -26.6464 -92.0649 -28.5311 +v -24.6372 -92.0649 -30.283 +v -22.5132 -92.0649 -31.8937 +v -20.2842 -92.0649 -33.3557 +v -17.9606 -92.0649 -34.6622 +v -15.5533 -92.0649 -35.8071 +v -13.0735 -92.0649 -36.785 +v -10.5328 -92.0649 -37.5914 +v -7.94287 -92.0649 -38.2225 +v -5.31595 -92.0649 -38.6755 +v -2.66425 -92.0649 -38.9481 +v -0.000129842 -92.0649 -39.0391 +v 2.66399 -92.0649 -38.9481 +v 5.31568 -92.0649 -38.6755 +v 7.9426 -92.0649 -38.2226 +v 10.5325 -92.0649 -37.5915 +v 13.0733 -92.0649 -36.7851 +v 15.5531 -92.0649 -35.8072 +v 17.9604 -92.0649 -34.6623 +v 20.284 -92.0649 -33.3559 +v 22.513 -92.0649 -31.8939 +v 24.637 -92.0649 -30.2832 +v 26.6462 -92.0649 -28.5313 +v 28.5311 -92.0649 -26.6464 +v 30.283 -92.0649 -24.6372 +v 31.8937 -92.0649 -22.5132 +v 33.3557 -92.0649 -20.2842 +v 34.6622 -92.0649 -17.9607 +v 35.807 -92.0649 -15.5534 +v 36.785 -92.0649 -13.0736 +v 37.5914 -92.0649 -10.5328 +v 38.2225 -92.0649 -7.94292 +v 38.6755 -92.0649 -5.316 +v 38.9481 -92.0649 -2.6643 +v 32.8027 -94.4668 5.88009e-39 +v 32.7262 -94.4668 2.23853 +v 32.4972 -94.4668 4.46663 +v 32.1166 -94.4668 6.6739 +v 31.5863 -94.4668 8.85005 +v 30.9087 -94.4668 10.9849 +v 30.087 -94.4668 13.0686 +v 29.125 -94.4668 15.0914 +v 28.0273 -94.4668 17.0437 +v 26.7988 -94.4668 18.9167 +v 25.4454 -94.4668 20.7014 +v 23.9734 -94.4668 22.3896 +v 22.3896 -94.4668 23.9734 +v 20.7014 -94.4668 25.4454 +v 18.9167 -94.4668 26.7988 +v 17.0438 -94.4668 28.0272 +v 15.0914 -94.4668 29.125 +v 13.0687 -94.4668 30.087 +v 10.985 -94.4668 30.9087 +v 8.85009 -94.4668 31.5863 +v 6.67394 -94.4668 32.1166 +v 4.46667 -94.4668 32.4972 +v 2.23857 -94.4668 32.7262 +v 3.767e-05 -94.4668 32.8027 +v -2.23849 -94.4668 32.7262 +v -4.46659 -94.4668 32.4972 +v -6.67386 -94.4668 32.1166 +v -8.85002 -94.4668 31.5863 +v -10.9849 -94.4668 30.9087 +v -13.0686 -94.4668 30.087 +v -15.0913 -94.4668 29.125 +v -17.0437 -94.4668 28.0273 +v -18.9166 -94.4668 26.7988 +v -20.7013 -94.4668 25.4454 +v -22.3895 -94.4668 23.9734 +v -23.9733 -94.4668 22.3896 +v -25.4454 -94.4668 20.7014 +v -26.7988 -94.4668 18.9167 +v -28.0272 -94.4668 17.0438 +v -29.125 -94.4668 15.0914 +v -30.087 -94.4668 13.0687 +v -30.9087 -94.4668 10.985 +v -31.5863 -94.4668 8.85013 +v -32.1166 -94.4668 6.67398 +v -32.4972 -94.4668 4.46671 +v -32.7262 -94.4668 2.23861 +v -32.8027 -94.4668 7.534e-05 +v -32.7262 -94.4668 -2.23846 +v -32.4972 -94.4668 -4.46655 +v -32.1166 -94.4668 -6.67382 +v -31.5863 -94.4668 -8.84998 +v -30.9087 -94.4668 -10.9849 +v -30.087 -94.4668 -13.0685 +v -29.1251 -94.4668 -15.0913 +v -28.0273 -94.4668 -17.0437 +v -26.7989 -94.4668 -18.9166 +v -25.4455 -94.4668 -20.7013 +v -23.9734 -94.4668 -22.3895 +v -22.3896 -94.4668 -23.9733 +v -20.7015 -94.4668 -25.4454 +v -18.9167 -94.4668 -26.7987 +v -17.0438 -94.4668 -28.0272 +v -15.0915 -94.4668 -29.125 +v -13.0687 -94.4668 -30.087 +v -10.9851 -94.4668 -30.9087 +v -8.85016 -94.4668 -31.5862 +v -6.67401 -94.4668 -32.1166 +v -4.46674 -94.4668 -32.4971 +v -2.23864 -94.4668 -32.7262 +v -0.0001091 -94.4668 -32.8027 +v 2.23843 -94.4668 -32.7262 +v 4.46651 -94.4668 -32.4972 +v 6.67378 -94.4668 -32.1166 +v 8.84994 -94.4668 -31.5863 +v 10.9848 -94.4668 -30.9087 +v 13.0685 -94.4668 -30.087 +v 15.0913 -94.4668 -29.1251 +v 17.0436 -94.4668 -28.0273 +v 18.9166 -94.4668 -26.7989 +v 20.7013 -94.4668 -25.4455 +v 22.3895 -94.4668 -23.9735 +v 23.9733 -94.4668 -22.3897 +v 25.4453 -94.4668 -20.7015 +v 26.7987 -94.4668 -18.9168 +v 28.0272 -94.4668 -17.0439 +v 29.125 -94.4668 -15.0915 +v 30.0869 -94.4668 -13.0688 +v 30.9086 -94.4668 -10.9851 +v 31.5862 -94.4668 -8.8502 +v 32.1166 -94.4668 -6.67405 +v 32.4971 -94.4668 -4.46678 +v 32.7262 -94.4668 -2.23868 +v 26.4198 -96.4469 5.88009e-39 +v 26.3582 -96.4469 1.80295 +v 26.1737 -96.4469 3.59749 +v 25.8672 -96.4469 5.37525 +v 25.44 -96.4469 7.12796 +v 24.8943 -96.4469 8.84743 +v 24.2325 -96.4469 10.5257 +v 23.4577 -96.4469 12.1548 +v 22.5736 -96.4469 13.7273 +v 21.5842 -96.4469 15.2357 +v 20.4941 -96.4469 16.6732 +v 19.3085 -96.4469 18.0329 +v 18.0329 -96.4469 19.3085 +v 16.6732 -96.4469 20.4941 +v 15.2358 -96.4469 21.5841 +v 13.7273 -96.4469 22.5735 +v 12.1548 -96.4469 23.4577 +v 10.5257 -96.4469 24.2325 +v 8.84746 -96.4469 24.8943 +v 7.12799 -96.4469 25.44 +v 5.37528 -96.4469 25.8672 +v 3.59752 -96.4469 26.1737 +v 1.80298 -96.4469 26.3582 +v 3.034e-05 -96.4469 26.4198 +v -1.80291 -96.4469 26.3582 +v -3.59746 -96.4469 26.1737 +v -5.37522 -96.4469 25.8672 +v -7.12793 -96.4469 25.44 +v -8.8474 -96.4469 24.8943 +v -10.5256 -96.4469 24.2325 +v -12.1548 -96.4469 23.4577 +v -13.7272 -96.4469 22.5736 +v -15.2357 -96.4469 21.5842 +v -16.6732 -96.4469 20.4941 +v -18.0329 -96.4469 19.3085 +v -19.3085 -96.4469 18.0329 +v -20.4941 -96.4469 16.6732 +v -21.5841 -96.4469 15.2358 +v -22.5735 -96.4469 13.7273 +v -23.4577 -96.4469 12.1549 +v -24.2325 -96.4469 10.5257 +v -24.8943 -96.4469 8.84749 +v -25.44 -96.4469 7.12802 +v -25.8671 -96.4469 5.37532 +v -26.1737 -96.4469 3.59755 +v -26.3582 -96.4469 1.80301 +v -26.4198 -96.4469 6.06799e-05 +v -26.3582 -96.4469 -1.80289 +v -26.1737 -96.4469 -3.59742 +v -25.8672 -96.4469 -5.37519 +v -25.4401 -96.4469 -7.1279 +v -24.8943 -96.4469 -8.84737 +v -24.2325 -96.4469 -10.5256 +v -23.4577 -96.4469 -12.1547 +v -22.5736 -96.4469 -13.7272 +v -21.5842 -96.4469 -15.2357 +v -20.4942 -96.4469 -16.6731 +v -19.3086 -96.4469 -18.0328 +v -18.0329 -96.4469 -19.3085 +v -16.6733 -96.4469 -20.494 +v -15.2358 -96.4469 -21.5841 +v -13.7274 -96.4469 -22.5735 +v -12.1549 -96.4469 -23.4577 +v -10.5257 -96.4469 -24.2325 +v -8.84752 -96.4469 -24.8943 +v -7.12805 -96.4469 -25.44 +v -5.37534 -96.4469 -25.8671 +v -3.59758 -96.4469 -26.1737 +v -1.80304 -96.4469 -26.3582 +v -8.78704e-05 -96.4469 -26.4198 +v 1.80286 -96.4469 -26.3582 +v 3.59739 -96.4469 -26.1737 +v 5.37516 -96.4469 -25.8672 +v 7.12787 -96.4469 -25.4401 +v 8.84734 -96.4469 -24.8943 +v 10.5256 -96.4469 -24.2325 +v 12.1547 -96.4469 -23.4578 +v 13.7272 -96.4469 -22.5736 +v 15.2357 -96.4469 -21.5842 +v 16.6731 -96.4469 -20.4942 +v 18.0328 -96.4469 -19.3086 +v 19.3084 -96.4469 -18.033 +v 20.494 -96.4469 -16.6733 +v 21.5841 -96.4469 -15.2358 +v 22.5735 -96.4469 -13.7274 +v 23.4577 -96.4469 -12.1549 +v 24.2324 -96.4469 -10.5258 +v 24.8943 -96.4469 -8.84755 +v 25.44 -96.4469 -7.12808 +v 25.8671 -96.4469 -5.37538 +v 26.1737 -96.4469 -3.59761 +v 26.3582 -96.4469 -1.80307 +v 19.9188 -97.9961 5.88009e-39 +v 19.8724 -97.9961 1.35931 +v 19.7333 -97.9961 2.71227 +v 19.5022 -97.9961 4.0526 +v 19.1802 -97.9961 5.37402 +v 18.7687 -97.9961 6.6704 +v 18.2698 -97.9961 7.93567 +v 17.6856 -97.9961 9.16394 +v 17.019 -97.9961 10.3495 +v 16.2731 -97.9961 11.4868 +v 15.4512 -97.9961 12.5705 +v 14.5574 -97.9961 13.5956 +v 13.5956 -97.9961 14.5574 +v 12.5705 -97.9961 15.4512 +v 11.4868 -97.9961 16.2731 +v 10.3495 -97.9961 17.019 +v 9.16396 -97.9961 17.6856 +v 7.93569 -97.9961 18.2697 +v 6.67042 -97.9961 18.7687 +v 5.37405 -97.9961 19.1802 +v 4.05262 -97.9961 19.5022 +v 2.7123 -97.9961 19.7333 +v 1.35933 -97.9961 19.8724 +v 2.28744e-05 -97.9961 19.9188 +v -1.35928 -97.9961 19.8724 +v -2.71225 -97.9961 19.7333 +v -4.05257 -97.9961 19.5022 +v -5.374 -97.9961 19.1802 +v -6.67037 -97.9961 18.7687 +v -7.93565 -97.9961 18.2698 +v -9.16392 -97.9961 17.6856 +v -10.3495 -97.9961 17.019 +v -11.4868 -97.9961 16.2731 +v -12.5705 -97.9961 15.4513 +v -13.5956 -97.9961 14.5574 +v -14.5574 -97.9961 13.5957 +v -15.4512 -97.9961 12.5705 +v -16.273 -97.9961 11.4868 +v -17.019 -97.9961 10.3495 +v -17.6856 -97.9961 9.16398 +v -18.2697 -97.9961 7.93571 +v -18.7687 -97.9961 6.67044 +v -19.1801 -97.9961 5.37407 +v -19.5022 -97.9961 4.05264 +v -19.7333 -97.9961 2.71232 +v -19.8724 -97.9961 1.35935 +v -19.9188 -97.9961 4.57488e-05 +v -19.8724 -97.9961 -1.35926 +v -19.7333 -97.9961 -2.71223 +v -19.5022 -97.9961 -4.05255 +v -19.1802 -97.9961 -5.37398 +v -18.7687 -97.9961 -6.67035 +v -18.2698 -97.9961 -7.93562 +v -17.6856 -97.9961 -9.1639 +v -17.019 -97.9961 -10.3494 +v -16.2731 -97.9961 -11.4867 +v -15.4513 -97.9961 -12.5705 +v -14.5574 -97.9961 -13.5956 +v -13.5957 -97.9961 -14.5573 +v -12.5706 -97.9961 -15.4512 +v -11.4868 -97.9961 -16.273 +v -10.3495 -97.9961 -17.019 +v -9.164 -97.9961 -17.6856 +v -7.93573 -97.9961 -18.2697 +v -6.67046 -97.9961 -18.7687 +v -5.37409 -97.9961 -19.1801 +v -4.05266 -97.9961 -19.5022 +v -2.71234 -97.9961 -19.7333 +v -1.35937 -97.9961 -19.8724 +v -6.62486e-05 -97.9961 -19.9188 +v 1.35924 -97.9961 -19.8724 +v 2.7122 -97.9961 -19.7333 +v 4.05252 -97.9961 -19.5022 +v 5.37395 -97.9961 -19.1802 +v 6.67033 -97.9961 -18.7687 +v 7.9356 -97.9961 -18.2698 +v 9.16387 -97.9961 -17.6856 +v 10.3494 -97.9961 -17.0191 +v 11.4867 -97.9961 -16.2731 +v 12.5705 -97.9961 -15.4513 +v 13.5956 -97.9961 -14.5574 +v 14.5573 -97.9961 -13.5957 +v 15.4512 -97.9961 -12.5706 +v 16.273 -97.9961 -11.4868 +v 17.019 -97.9961 -10.3496 +v 17.6856 -97.9961 -9.16402 +v 18.2697 -97.9961 -7.93575 +v 18.7687 -97.9961 -6.67049 +v 19.1801 -97.9961 -5.37411 +v 19.5022 -97.9961 -4.05269 +v 19.7333 -97.9961 -2.71237 +v 19.8724 -97.9961 -1.3594 +v 13.3289 -99.1077 5.88009e-39 +v 13.2978 -99.1077 0.909596 +v 13.2048 -99.1077 1.81495 +v 13.0501 -99.1077 2.71184 +v 12.8346 -99.1077 3.59609 +v 12.5593 -99.1077 4.46358 +v 12.2254 -99.1077 5.31025 +v 11.8345 -99.1077 6.13216 +v 11.3885 -99.1077 6.92548 +v 10.8893 -99.1077 7.68651 +v 10.3394 -99.1077 8.41171 +v 9.74125 -99.1077 9.09768 +v 9.09769 -99.1077 9.74124 +v 8.41172 -99.1077 10.3394 +v 7.68653 -99.1077 10.8893 +v 6.9255 -99.1077 11.3885 +v 6.13217 -99.1077 11.8345 +v 5.31026 -99.1077 12.2254 +v 4.46359 -99.1077 12.5593 +v 3.59611 -99.1077 12.8346 +v 2.71186 -99.1077 13.0501 +v 1.81497 -99.1077 13.2048 +v 0.909612 -99.1077 13.2978 +v 1.53067e-05 -99.1077 13.3289 +v -0.90958 -99.1077 13.2978 +v -1.81494 -99.1077 13.2048 +v -2.71183 -99.1077 13.0501 +v -3.59608 -99.1077 12.8346 +v -4.46356 -99.1077 12.5593 +v -5.31023 -99.1077 12.2254 +v -6.13214 -99.1077 11.8345 +v -6.92547 -99.1077 11.3885 +v -7.6865 -99.1077 10.8893 +v -8.4117 -99.1077 10.3394 +v -9.09767 -99.1077 9.74126 +v -9.74123 -99.1077 9.0977 +v -10.3394 -99.1077 8.41173 +v -10.8893 -99.1077 7.68654 +v -11.3885 -99.1077 6.92551 +v -11.8345 -99.1077 6.13219 +v -12.2254 -99.1077 5.31028 +v -12.5593 -99.1077 4.4636 +v -12.8346 -99.1077 3.59612 +v -13.0501 -99.1077 2.71188 +v -13.2048 -99.1077 1.81498 +v -13.2978 -99.1077 0.909627 +v -13.3289 -99.1077 3.06133e-05 +v -13.2978 -99.1077 -0.909566 +v -13.2048 -99.1077 -1.81492 +v -13.0501 -99.1077 -2.71181 +v -12.8346 -99.1077 -3.59606 +v -12.5593 -99.1077 -4.46355 +v -12.2254 -99.1077 -5.31022 +v -11.8346 -99.1077 -6.13213 +v -11.3885 -99.1077 -6.92546 +v -10.8893 -99.1077 -7.68649 +v -10.3394 -99.1077 -8.41168 +v -9.74127 -99.1077 -9.09766 +v -9.09772 -99.1077 -9.74122 +v -8.41175 -99.1077 -10.3394 +v -7.68655 -99.1077 -10.8893 +v -6.92552 -99.1077 -11.3885 +v -6.1322 -99.1077 -11.8345 +v -5.31029 -99.1077 -12.2254 +v -4.46362 -99.1077 -12.5593 +v -3.59614 -99.1077 -12.8346 +v -2.71189 -99.1077 -13.0501 +v -1.815 -99.1077 -13.2048 +v -0.909641 -99.1077 -13.2978 +v -4.43311e-05 -99.1077 -13.3289 +v 0.909552 -99.1077 -13.2978 +v 1.8149 -99.1077 -13.2048 +v 2.7118 -99.1077 -13.0501 +v 3.59605 -99.1077 -12.8346 +v 4.46353 -99.1077 -12.5593 +v 5.3102 -99.1077 -12.2254 +v 6.13212 -99.1077 -11.8346 +v 6.92544 -99.1077 -11.3885 +v 7.68648 -99.1077 -10.8893 +v 8.41167 -99.1077 -10.3394 +v 9.09765 -99.1077 -9.74128 +v 9.74121 -99.1077 -9.09773 +v 10.3393 -99.1077 -8.41175 +v 10.8893 -99.1077 -7.68656 +v 11.3884 -99.1077 -6.92554 +v 11.8345 -99.1077 -6.13222 +v 12.2254 -99.1077 -5.31031 +v 12.5593 -99.1077 -4.46364 +v 12.8346 -99.1077 -3.59615 +v 13.0501 -99.1077 -2.71191 +v 13.2048 -99.1077 -1.81501 +v 13.2978 -99.1077 -0.909658 +v 6.67948 -99.7767 5.88009e-39 +v 6.66391 -99.7767 0.455824 +v 6.61727 -99.7767 0.909522 +v 6.53978 -99.7767 1.35898 +v 6.43179 -99.7767 1.8021 +v 6.29382 -99.7767 2.23682 +v 6.1265 -99.7767 2.66111 +v 5.93062 -99.7767 3.073 +v 5.70708 -99.7767 3.47055 +v 5.45694 -99.7767 3.85192 +v 5.18135 -99.7767 4.21534 +v 4.88161 -99.7767 4.5591 +v 4.55911 -99.7767 4.8816 +v 4.21535 -99.7767 5.18135 +v 3.85193 -99.7767 5.45694 +v 3.47056 -99.7767 5.70708 +v 3.073 -99.7767 5.93061 +v 2.66112 -99.7767 6.1265 +v 2.23683 -99.7767 6.29382 +v 1.80211 -99.7767 6.43179 +v 1.35899 -99.7767 6.53978 +v 0.90953 -99.7767 6.61727 +v 0.455832 -99.7767 6.66391 +v 7.6706e-06 -99.7767 6.67948 +v -0.455816 -99.7767 6.66391 +v -0.909514 -99.7767 6.61727 +v -1.35897 -99.7767 6.53978 +v -1.80209 -99.7767 6.43179 +v -2.23681 -99.7767 6.29382 +v -2.66111 -99.7767 6.1265 +v -3.07299 -99.7767 5.93062 +v -3.47054 -99.7767 5.70709 +v -3.85192 -99.7767 5.45694 +v -4.21533 -99.7767 5.18136 +v -4.5591 -99.7767 4.88162 +v -4.8816 -99.7767 4.55911 +v -5.18134 -99.7767 4.21535 +v -5.45693 -99.7767 3.85194 +v -5.70707 -99.7767 3.47056 +v -5.93061 -99.7767 3.07301 +v -6.12649 -99.7767 2.66113 +v -6.29381 -99.7767 2.23684 +v -6.43179 -99.7767 1.80212 +v -6.53977 -99.7767 1.359 +v -6.61727 -99.7767 0.909538 +v -6.66391 -99.7767 0.455839 +v -6.67948 -99.7767 1.53412e-05 +v -6.66391 -99.7767 -0.455809 +v -6.61727 -99.7767 -0.909506 +v -6.53978 -99.7767 -1.35896 +v -6.4318 -99.7767 -1.80209 +v -6.29382 -99.7767 -2.23681 +v -6.12651 -99.7767 -2.6611 +v -5.93062 -99.7767 -3.07298 +v -5.70709 -99.7767 -3.47054 +v -5.45695 -99.7767 -3.85191 +v -5.18136 -99.7767 -4.21533 +v -4.88162 -99.7767 -4.55909 +v -4.55912 -99.7767 -4.88159 +v -4.21536 -99.7767 -5.18134 +v -3.85194 -99.7767 -5.45693 +v -3.47057 -99.7767 -5.70707 +v -3.07302 -99.7767 -5.93061 +v -2.66113 -99.7767 -6.12649 +v -2.23684 -99.7767 -6.29381 +v -1.80212 -99.7767 -6.43179 +v -1.359 -99.7767 -6.53977 +v -0.909545 -99.7767 -6.61727 +v -0.455846 -99.7767 -6.66391 +v -2.22155e-05 -99.7767 -6.67948 +v 0.455802 -99.7767 -6.66392 +v 0.909498 -99.7767 -6.61728 +v 1.35896 -99.7767 -6.53978 +v 1.80208 -99.7767 -6.4318 +v 2.2368 -99.7767 -6.29383 +v 2.66109 -99.7767 -6.12651 +v 3.07297 -99.7767 -5.93063 +v 3.47053 -99.7767 -5.7071 +v 3.85191 -99.7767 -5.45695 +v 4.21532 -99.7767 -5.18137 +v 4.55908 -99.7767 -4.88163 +v 4.88159 -99.7767 -4.55912 +v 5.18133 -99.7767 -4.21536 +v 5.45692 -99.7767 -3.85195 +v 5.70707 -99.7767 -3.47058 +v 5.9306 -99.7767 -3.07302 +v 6.12649 -99.7767 -2.66114 +v 6.29381 -99.7767 -2.23685 +v 6.43178 -99.7767 -1.80213 +v 6.53977 -99.7767 -1.35901 +v 6.61727 -99.7767 -0.909553 +v 6.66391 -99.7767 -0.455855 +f 3 4 96 95 +f 4 5 97 96 +f 5 6 98 97 +f 6 7 99 98 +f 7 8 100 99 +f 8 9 101 100 +f 9 10 102 101 +f 10 11 103 102 +f 11 12 104 103 +f 12 13 105 104 +f 13 14 106 105 +f 14 15 107 106 +f 15 16 108 107 +f 16 17 109 108 +f 17 18 110 109 +f 18 19 111 110 +f 19 20 112 111 +f 20 21 113 112 +f 21 22 114 113 +f 22 23 115 114 +f 23 24 116 115 +f 24 25 117 116 +f 25 26 118 117 +f 26 27 119 118 +f 27 28 120 119 +f 28 29 121 120 +f 29 30 122 121 +f 30 31 123 122 +f 31 32 124 123 +f 32 33 125 124 +f 33 34 126 125 +f 34 35 127 126 +f 35 36 128 127 +f 36 37 129 128 +f 37 38 130 129 +f 38 39 131 130 +f 39 40 132 131 +f 40 41 133 132 +f 41 42 134 133 +f 42 43 135 134 +f 43 44 136 135 +f 44 45 137 136 +f 45 46 138 137 +f 46 47 139 138 +f 47 48 140 139 +f 48 49 141 140 +f 49 50 142 141 +f 50 51 143 142 +f 51 52 144 143 +f 52 53 145 144 +f 53 54 146 145 +f 54 55 147 146 +f 55 56 148 147 +f 56 57 149 148 +f 57 58 150 149 +f 58 59 151 150 +f 59 60 152 151 +f 60 61 153 152 +f 61 62 154 153 +f 62 63 155 154 +f 63 64 156 155 +f 64 65 157 156 +f 65 66 158 157 +f 66 67 159 158 +f 67 68 160 159 +f 68 69 161 160 +f 69 70 162 161 +f 70 71 163 162 +f 71 72 164 163 +f 72 73 165 164 +f 73 74 166 165 +f 74 75 167 166 +f 75 76 168 167 +f 76 77 169 168 +f 77 78 170 169 +f 78 79 171 170 +f 79 80 172 171 +f 80 81 173 172 +f 81 82 174 173 +f 82 83 175 174 +f 83 84 176 175 +f 84 85 177 176 +f 85 86 178 177 +f 86 87 179 178 +f 87 88 180 179 +f 88 89 181 180 +f 89 90 182 181 +f 90 91 183 182 +f 91 92 184 183 +f 92 93 185 184 +f 93 94 186 185 +f 94 3 95 186 +f 95 96 188 187 +f 96 97 189 188 +f 97 98 190 189 +f 98 99 191 190 +f 99 100 192 191 +f 100 101 193 192 +f 101 102 194 193 +f 102 103 195 194 +f 103 104 196 195 +f 104 105 197 196 +f 105 106 198 197 +f 106 107 199 198 +f 107 108 200 199 +f 108 109 201 200 +f 109 110 202 201 +f 110 111 203 202 +f 111 112 204 203 +f 112 113 205 204 +f 113 114 206 205 +f 114 115 207 206 +f 115 116 208 207 +f 116 117 209 208 +f 117 118 210 209 +f 118 119 211 210 +f 119 120 212 211 +f 120 121 213 212 +f 121 122 214 213 +f 122 123 215 214 +f 123 124 216 215 +f 124 125 217 216 +f 125 126 218 217 +f 126 127 219 218 +f 127 128 220 219 +f 128 129 221 220 +f 129 130 222 221 +f 130 131 223 222 +f 131 132 224 223 +f 132 133 225 224 +f 133 134 226 225 +f 134 135 227 226 +f 135 136 228 227 +f 136 137 229 228 +f 137 138 230 229 +f 138 139 231 230 +f 139 140 232 231 +f 140 141 233 232 +f 141 142 234 233 +f 142 143 235 234 +f 143 144 236 235 +f 144 145 237 236 +f 145 146 238 237 +f 146 147 239 238 +f 147 148 240 239 +f 148 149 241 240 +f 149 150 242 241 +f 150 151 243 242 +f 151 152 244 243 +f 152 153 245 244 +f 153 154 246 245 +f 154 155 247 246 +f 155 156 248 247 +f 156 157 249 248 +f 157 158 250 249 +f 158 159 251 250 +f 159 160 252 251 +f 160 161 253 252 +f 161 162 254 253 +f 162 163 255 254 +f 163 164 256 255 +f 164 165 257 256 +f 165 166 258 257 +f 166 167 259 258 +f 167 168 260 259 +f 168 169 261 260 +f 169 170 262 261 +f 170 171 263 262 +f 171 172 264 263 +f 172 173 265 264 +f 173 174 266 265 +f 174 175 267 266 +f 175 176 268 267 +f 176 177 269 268 +f 177 178 270 269 +f 178 179 271 270 +f 179 180 272 271 +f 180 181 273 272 +f 181 182 274 273 +f 182 183 275 274 +f 183 184 276 275 +f 184 185 277 276 +f 185 186 278 277 +f 186 95 187 278 +f 187 188 280 279 +f 188 189 281 280 +f 189 190 282 281 +f 190 191 283 282 +f 191 192 284 283 +f 192 193 285 284 +f 193 194 286 285 +f 194 195 287 286 +f 195 196 288 287 +f 196 197 289 288 +f 197 198 290 289 +f 198 199 291 290 +f 199 200 292 291 +f 200 201 293 292 +f 201 202 294 293 +f 202 203 295 294 +f 203 204 296 295 +f 204 205 297 296 +f 205 206 298 297 +f 206 207 299 298 +f 207 208 300 299 +f 208 209 301 300 +f 209 210 302 301 +f 210 211 303 302 +f 211 212 304 303 +f 212 213 305 304 +f 213 214 306 305 +f 214 215 307 306 +f 215 216 308 307 +f 216 217 309 308 +f 217 218 310 309 +f 218 219 311 310 +f 219 220 312 311 +f 220 221 313 312 +f 221 222 314 313 +f 222 223 315 314 +f 223 224 316 315 +f 224 225 317 316 +f 225 226 318 317 +f 226 227 319 318 +f 227 228 320 319 +f 228 229 321 320 +f 229 230 322 321 +f 230 231 323 322 +f 231 232 324 323 +f 232 233 325 324 +f 233 234 326 325 +f 234 235 327 326 +f 235 236 328 327 +f 236 237 329 328 +f 237 238 330 329 +f 238 239 331 330 +f 239 240 332 331 +f 240 241 333 332 +f 241 242 334 333 +f 242 243 335 334 +f 243 244 336 335 +f 244 245 337 336 +f 245 246 338 337 +f 246 247 339 338 +f 247 248 340 339 +f 248 249 341 340 +f 249 250 342 341 +f 250 251 343 342 +f 251 252 344 343 +f 252 253 345 344 +f 253 254 346 345 +f 254 255 347 346 +f 255 256 348 347 +f 256 257 349 348 +f 257 258 350 349 +f 258 259 351 350 +f 259 260 352 351 +f 260 261 353 352 +f 261 262 354 353 +f 262 263 355 354 +f 263 264 356 355 +f 264 265 357 356 +f 265 266 358 357 +f 266 267 359 358 +f 267 268 360 359 +f 268 269 361 360 +f 269 270 362 361 +f 270 271 363 362 +f 271 272 364 363 +f 272 273 365 364 +f 273 274 366 365 +f 274 275 367 366 +f 275 276 368 367 +f 276 277 369 368 +f 277 278 370 369 +f 278 187 279 370 +f 279 280 372 371 +f 280 281 373 372 +f 281 282 374 373 +f 282 283 375 374 +f 283 284 376 375 +f 284 285 377 376 +f 285 286 378 377 +f 286 287 379 378 +f 287 288 380 379 +f 288 289 381 380 +f 289 290 382 381 +f 290 291 383 382 +f 291 292 384 383 +f 292 293 385 384 +f 293 294 386 385 +f 294 295 387 386 +f 295 296 388 387 +f 296 297 389 388 +f 297 298 390 389 +f 298 299 391 390 +f 299 300 392 391 +f 300 301 393 392 +f 301 302 394 393 +f 302 303 395 394 +f 303 304 396 395 +f 304 305 397 396 +f 305 306 398 397 +f 306 307 399 398 +f 307 308 400 399 +f 308 309 401 400 +f 309 310 402 401 +f 310 311 403 402 +f 311 312 404 403 +f 312 313 405 404 +f 313 314 406 405 +f 314 315 407 406 +f 315 316 408 407 +f 316 317 409 408 +f 317 318 410 409 +f 318 319 411 410 +f 319 320 412 411 +f 320 321 413 412 +f 321 322 414 413 +f 322 323 415 414 +f 323 324 416 415 +f 324 325 417 416 +f 325 326 418 417 +f 326 327 419 418 +f 327 328 420 419 +f 328 329 421 420 +f 329 330 422 421 +f 330 331 423 422 +f 331 332 424 423 +f 332 333 425 424 +f 333 334 426 425 +f 334 335 427 426 +f 335 336 428 427 +f 336 337 429 428 +f 337 338 430 429 +f 338 339 431 430 +f 339 340 432 431 +f 340 341 433 432 +f 341 342 434 433 +f 342 343 435 434 +f 343 344 436 435 +f 344 345 437 436 +f 345 346 438 437 +f 346 347 439 438 +f 347 348 440 439 +f 348 349 441 440 +f 349 350 442 441 +f 350 351 443 442 +f 351 352 444 443 +f 352 353 445 444 +f 353 354 446 445 +f 354 355 447 446 +f 355 356 448 447 +f 356 357 449 448 +f 357 358 450 449 +f 358 359 451 450 +f 359 360 452 451 +f 360 361 453 452 +f 361 362 454 453 +f 362 363 455 454 +f 363 364 456 455 +f 364 365 457 456 +f 365 366 458 457 +f 366 367 459 458 +f 367 368 460 459 +f 368 369 461 460 +f 369 370 462 461 +f 370 279 371 462 +f 371 372 464 463 +f 372 373 465 464 +f 373 374 466 465 +f 374 375 467 466 +f 375 376 468 467 +f 376 377 469 468 +f 377 378 470 469 +f 378 379 471 470 +f 379 380 472 471 +f 380 381 473 472 +f 381 382 474 473 +f 382 383 475 474 +f 383 384 476 475 +f 384 385 477 476 +f 385 386 478 477 +f 386 387 479 478 +f 387 388 480 479 +f 388 389 481 480 +f 389 390 482 481 +f 390 391 483 482 +f 391 392 484 483 +f 392 393 485 484 +f 393 394 486 485 +f 394 395 487 486 +f 395 396 488 487 +f 396 397 489 488 +f 397 398 490 489 +f 398 399 491 490 +f 399 400 492 491 +f 400 401 493 492 +f 401 402 494 493 +f 402 403 495 494 +f 403 404 496 495 +f 404 405 497 496 +f 405 406 498 497 +f 406 407 499 498 +f 407 408 500 499 +f 408 409 501 500 +f 409 410 502 501 +f 410 411 503 502 +f 411 412 504 503 +f 412 413 505 504 +f 413 414 506 505 +f 414 415 507 506 +f 415 416 508 507 +f 416 417 509 508 +f 417 418 510 509 +f 418 419 511 510 +f 419 420 512 511 +f 420 421 513 512 +f 421 422 514 513 +f 422 423 515 514 +f 423 424 516 515 +f 424 425 517 516 +f 425 426 518 517 +f 426 427 519 518 +f 427 428 520 519 +f 428 429 521 520 +f 429 430 522 521 +f 430 431 523 522 +f 431 432 524 523 +f 432 433 525 524 +f 433 434 526 525 +f 434 435 527 526 +f 435 436 528 527 +f 436 437 529 528 +f 437 438 530 529 +f 438 439 531 530 +f 439 440 532 531 +f 440 441 533 532 +f 441 442 534 533 +f 442 443 535 534 +f 443 444 536 535 +f 444 445 537 536 +f 445 446 538 537 +f 446 447 539 538 +f 447 448 540 539 +f 448 449 541 540 +f 449 450 542 541 +f 450 451 543 542 +f 451 452 544 543 +f 452 453 545 544 +f 453 454 546 545 +f 454 455 547 546 +f 455 456 548 547 +f 456 457 549 548 +f 457 458 550 549 +f 458 459 551 550 +f 459 460 552 551 +f 460 461 553 552 +f 461 462 554 553 +f 462 371 463 554 +f 463 464 556 555 +f 464 465 557 556 +f 465 466 558 557 +f 466 467 559 558 +f 467 468 560 559 +f 468 469 561 560 +f 469 470 562 561 +f 470 471 563 562 +f 471 472 564 563 +f 472 473 565 564 +f 473 474 566 565 +f 474 475 567 566 +f 475 476 568 567 +f 476 477 569 568 +f 477 478 570 569 +f 478 479 571 570 +f 479 480 572 571 +f 480 481 573 572 +f 481 482 574 573 +f 482 483 575 574 +f 483 484 576 575 +f 484 485 577 576 +f 485 486 578 577 +f 486 487 579 578 +f 487 488 580 579 +f 488 489 581 580 +f 489 490 582 581 +f 490 491 583 582 +f 491 492 584 583 +f 492 493 585 584 +f 493 494 586 585 +f 494 495 587 586 +f 495 496 588 587 +f 496 497 589 588 +f 497 498 590 589 +f 498 499 591 590 +f 499 500 592 591 +f 500 501 593 592 +f 501 502 594 593 +f 502 503 595 594 +f 503 504 596 595 +f 504 505 597 596 +f 505 506 598 597 +f 506 507 599 598 +f 507 508 600 599 +f 508 509 601 600 +f 509 510 602 601 +f 510 511 603 602 +f 511 512 604 603 +f 512 513 605 604 +f 513 514 606 605 +f 514 515 607 606 +f 515 516 608 607 +f 516 517 609 608 +f 517 518 610 609 +f 518 519 611 610 +f 519 520 612 611 +f 520 521 613 612 +f 521 522 614 613 +f 522 523 615 614 +f 523 524 616 615 +f 524 525 617 616 +f 525 526 618 617 +f 526 527 619 618 +f 527 528 620 619 +f 528 529 621 620 +f 529 530 622 621 +f 530 531 623 622 +f 531 532 624 623 +f 532 533 625 624 +f 533 534 626 625 +f 534 535 627 626 +f 535 536 628 627 +f 536 537 629 628 +f 537 538 630 629 +f 538 539 631 630 +f 539 540 632 631 +f 540 541 633 632 +f 541 542 634 633 +f 542 543 635 634 +f 543 544 636 635 +f 544 545 637 636 +f 545 546 638 637 +f 546 547 639 638 +f 547 548 640 639 +f 548 549 641 640 +f 549 550 642 641 +f 550 551 643 642 +f 551 552 644 643 +f 552 553 645 644 +f 553 554 646 645 +f 554 463 555 646 +f 555 556 648 647 +f 556 557 649 648 +f 557 558 650 649 +f 558 559 651 650 +f 559 560 652 651 +f 560 561 653 652 +f 561 562 654 653 +f 562 563 655 654 +f 563 564 656 655 +f 564 565 657 656 +f 565 566 658 657 +f 566 567 659 658 +f 567 568 660 659 +f 568 569 661 660 +f 569 570 662 661 +f 570 571 663 662 +f 571 572 664 663 +f 572 573 665 664 +f 573 574 666 665 +f 574 575 667 666 +f 575 576 668 667 +f 576 577 669 668 +f 577 578 670 669 +f 578 579 671 670 +f 579 580 672 671 +f 580 581 673 672 +f 581 582 674 673 +f 582 583 675 674 +f 583 584 676 675 +f 584 585 677 676 +f 585 586 678 677 +f 586 587 679 678 +f 587 588 680 679 +f 588 589 681 680 +f 589 590 682 681 +f 590 591 683 682 +f 591 592 684 683 +f 592 593 685 684 +f 593 594 686 685 +f 594 595 687 686 +f 595 596 688 687 +f 596 597 689 688 +f 597 598 690 689 +f 598 599 691 690 +f 599 600 692 691 +f 600 601 693 692 +f 601 602 694 693 +f 602 603 695 694 +f 603 604 696 695 +f 604 605 697 696 +f 605 606 698 697 +f 606 607 699 698 +f 607 608 700 699 +f 608 609 701 700 +f 609 610 702 701 +f 610 611 703 702 +f 611 612 704 703 +f 612 613 705 704 +f 613 614 706 705 +f 614 615 707 706 +f 615 616 708 707 +f 616 617 709 708 +f 617 618 710 709 +f 618 619 711 710 +f 619 620 712 711 +f 620 621 713 712 +f 621 622 714 713 +f 622 623 715 714 +f 623 624 716 715 +f 624 625 717 716 +f 625 626 718 717 +f 626 627 719 718 +f 627 628 720 719 +f 628 629 721 720 +f 629 630 722 721 +f 630 631 723 722 +f 631 632 724 723 +f 632 633 725 724 +f 633 634 726 725 +f 634 635 727 726 +f 635 636 728 727 +f 636 637 729 728 +f 637 638 730 729 +f 638 639 731 730 +f 639 640 732 731 +f 640 641 733 732 +f 641 642 734 733 +f 642 643 735 734 +f 643 644 736 735 +f 644 645 737 736 +f 645 646 738 737 +f 646 555 647 738 +f 647 648 740 739 +f 648 649 741 740 +f 649 650 742 741 +f 650 651 743 742 +f 651 652 744 743 +f 652 653 745 744 +f 653 654 746 745 +f 654 655 747 746 +f 655 656 748 747 +f 656 657 749 748 +f 657 658 750 749 +f 658 659 751 750 +f 659 660 752 751 +f 660 661 753 752 +f 661 662 754 753 +f 662 663 755 754 +f 663 664 756 755 +f 664 665 757 756 +f 665 666 758 757 +f 666 667 759 758 +f 667 668 760 759 +f 668 669 761 760 +f 669 670 762 761 +f 670 671 763 762 +f 671 672 764 763 +f 672 673 765 764 +f 673 674 766 765 +f 674 675 767 766 +f 675 676 768 767 +f 676 677 769 768 +f 677 678 770 769 +f 678 679 771 770 +f 679 680 772 771 +f 680 681 773 772 +f 681 682 774 773 +f 682 683 775 774 +f 683 684 776 775 +f 684 685 777 776 +f 685 686 778 777 +f 686 687 779 778 +f 687 688 780 779 +f 688 689 781 780 +f 689 690 782 781 +f 690 691 783 782 +f 691 692 784 783 +f 692 693 785 784 +f 693 694 786 785 +f 694 695 787 786 +f 695 696 788 787 +f 696 697 789 788 +f 697 698 790 789 +f 698 699 791 790 +f 699 700 792 791 +f 700 701 793 792 +f 701 702 794 793 +f 702 703 795 794 +f 703 704 796 795 +f 704 705 797 796 +f 705 706 798 797 +f 706 707 799 798 +f 707 708 800 799 +f 708 709 801 800 +f 709 710 802 801 +f 710 711 803 802 +f 711 712 804 803 +f 712 713 805 804 +f 713 714 806 805 +f 714 715 807 806 +f 715 716 808 807 +f 716 717 809 808 +f 717 718 810 809 +f 718 719 811 810 +f 719 720 812 811 +f 720 721 813 812 +f 721 722 814 813 +f 722 723 815 814 +f 723 724 816 815 +f 724 725 817 816 +f 725 726 818 817 +f 726 727 819 818 +f 727 728 820 819 +f 728 729 821 820 +f 729 730 822 821 +f 730 731 823 822 +f 731 732 824 823 +f 732 733 825 824 +f 733 734 826 825 +f 734 735 827 826 +f 735 736 828 827 +f 736 737 829 828 +f 737 738 830 829 +f 738 647 739 830 +f 739 740 832 831 +f 740 741 833 832 +f 741 742 834 833 +f 742 743 835 834 +f 743 744 836 835 +f 744 745 837 836 +f 745 746 838 837 +f 746 747 839 838 +f 747 748 840 839 +f 748 749 841 840 +f 749 750 842 841 +f 750 751 843 842 +f 751 752 844 843 +f 752 753 845 844 +f 753 754 846 845 +f 754 755 847 846 +f 755 756 848 847 +f 756 757 849 848 +f 757 758 850 849 +f 758 759 851 850 +f 759 760 852 851 +f 760 761 853 852 +f 761 762 854 853 +f 762 763 855 854 +f 763 764 856 855 +f 764 765 857 856 +f 765 766 858 857 +f 766 767 859 858 +f 767 768 860 859 +f 768 769 861 860 +f 769 770 862 861 +f 770 771 863 862 +f 771 772 864 863 +f 772 773 865 864 +f 773 774 866 865 +f 774 775 867 866 +f 775 776 868 867 +f 776 777 869 868 +f 777 778 870 869 +f 778 779 871 870 +f 779 780 872 871 +f 780 781 873 872 +f 781 782 874 873 +f 782 783 875 874 +f 783 784 876 875 +f 784 785 877 876 +f 785 786 878 877 +f 786 787 879 878 +f 787 788 880 879 +f 788 789 881 880 +f 789 790 882 881 +f 790 791 883 882 +f 791 792 884 883 +f 792 793 885 884 +f 793 794 886 885 +f 794 795 887 886 +f 795 796 888 887 +f 796 797 889 888 +f 797 798 890 889 +f 798 799 891 890 +f 799 800 892 891 +f 800 801 893 892 +f 801 802 894 893 +f 802 803 895 894 +f 803 804 896 895 +f 804 805 897 896 +f 805 806 898 897 +f 806 807 899 898 +f 807 808 900 899 +f 808 809 901 900 +f 809 810 902 901 +f 810 811 903 902 +f 811 812 904 903 +f 812 813 905 904 +f 813 814 906 905 +f 814 815 907 906 +f 815 816 908 907 +f 816 817 909 908 +f 817 818 910 909 +f 818 819 911 910 +f 819 820 912 911 +f 820 821 913 912 +f 821 822 914 913 +f 822 823 915 914 +f 823 824 916 915 +f 824 825 917 916 +f 825 826 918 917 +f 826 827 919 918 +f 827 828 920 919 +f 828 829 921 920 +f 829 830 922 921 +f 830 739 831 922 +f 831 832 924 923 +f 832 833 925 924 +f 833 834 926 925 +f 834 835 927 926 +f 835 836 928 927 +f 836 837 929 928 +f 837 838 930 929 +f 838 839 931 930 +f 839 840 932 931 +f 840 841 933 932 +f 841 842 934 933 +f 842 843 935 934 +f 843 844 936 935 +f 844 845 937 936 +f 845 846 938 937 +f 846 847 939 938 +f 847 848 940 939 +f 848 849 941 940 +f 849 850 942 941 +f 850 851 943 942 +f 851 852 944 943 +f 852 853 945 944 +f 853 854 946 945 +f 854 855 947 946 +f 855 856 948 947 +f 856 857 949 948 +f 857 858 950 949 +f 858 859 951 950 +f 859 860 952 951 +f 860 861 953 952 +f 861 862 954 953 +f 862 863 955 954 +f 863 864 956 955 +f 864 865 957 956 +f 865 866 958 957 +f 866 867 959 958 +f 867 868 960 959 +f 868 869 961 960 +f 869 870 962 961 +f 870 871 963 962 +f 871 872 964 963 +f 872 873 965 964 +f 873 874 966 965 +f 874 875 967 966 +f 875 876 968 967 +f 876 877 969 968 +f 877 878 970 969 +f 878 879 971 970 +f 879 880 972 971 +f 880 881 973 972 +f 881 882 974 973 +f 882 883 975 974 +f 883 884 976 975 +f 884 885 977 976 +f 885 886 978 977 +f 886 887 979 978 +f 887 888 980 979 +f 888 889 981 980 +f 889 890 982 981 +f 890 891 983 982 +f 891 892 984 983 +f 892 893 985 984 +f 893 894 986 985 +f 894 895 987 986 +f 895 896 988 987 +f 896 897 989 988 +f 897 898 990 989 +f 898 899 991 990 +f 899 900 992 991 +f 900 901 993 992 +f 901 902 994 993 +f 902 903 995 994 +f 903 904 996 995 +f 904 905 997 996 +f 905 906 998 997 +f 906 907 999 998 +f 907 908 1000 999 +f 908 909 1001 1000 +f 909 910 1002 1001 +f 910 911 1003 1002 +f 911 912 1004 1003 +f 912 913 1005 1004 +f 913 914 1006 1005 +f 914 915 1007 1006 +f 915 916 1008 1007 +f 916 917 1009 1008 +f 917 918 1010 1009 +f 918 919 1011 1010 +f 919 920 1012 1011 +f 920 921 1013 1012 +f 921 922 1014 1013 +f 922 831 923 1014 +f 923 924 1016 1015 +f 924 925 1017 1016 +f 925 926 1018 1017 +f 926 927 1019 1018 +f 927 928 1020 1019 +f 928 929 1021 1020 +f 929 930 1022 1021 +f 930 931 1023 1022 +f 931 932 1024 1023 +f 932 933 1025 1024 +f 933 934 1026 1025 +f 934 935 1027 1026 +f 935 936 1028 1027 +f 936 937 1029 1028 +f 937 938 1030 1029 +f 938 939 1031 1030 +f 939 940 1032 1031 +f 940 941 1033 1032 +f 941 942 1034 1033 +f 942 943 1035 1034 +f 943 944 1036 1035 +f 944 945 1037 1036 +f 945 946 1038 1037 +f 946 947 1039 1038 +f 947 948 1040 1039 +f 948 949 1041 1040 +f 949 950 1042 1041 +f 950 951 1043 1042 +f 951 952 1044 1043 +f 952 953 1045 1044 +f 953 954 1046 1045 +f 954 955 1047 1046 +f 955 956 1048 1047 +f 956 957 1049 1048 +f 957 958 1050 1049 +f 958 959 1051 1050 +f 959 960 1052 1051 +f 960 961 1053 1052 +f 961 962 1054 1053 +f 962 963 1055 1054 +f 963 964 1056 1055 +f 964 965 1057 1056 +f 965 966 1058 1057 +f 966 967 1059 1058 +f 967 968 1060 1059 +f 968 969 1061 1060 +f 969 970 1062 1061 +f 970 971 1063 1062 +f 971 972 1064 1063 +f 972 973 1065 1064 +f 973 974 1066 1065 +f 974 975 1067 1066 +f 975 976 1068 1067 +f 976 977 1069 1068 +f 977 978 1070 1069 +f 978 979 1071 1070 +f 979 980 1072 1071 +f 980 981 1073 1072 +f 981 982 1074 1073 +f 982 983 1075 1074 +f 983 984 1076 1075 +f 984 985 1077 1076 +f 985 986 1078 1077 +f 986 987 1079 1078 +f 987 988 1080 1079 +f 988 989 1081 1080 +f 989 990 1082 1081 +f 990 991 1083 1082 +f 991 992 1084 1083 +f 992 993 1085 1084 +f 993 994 1086 1085 +f 994 995 1087 1086 +f 995 996 1088 1087 +f 996 997 1089 1088 +f 997 998 1090 1089 +f 998 999 1091 1090 +f 999 1000 1092 1091 +f 1000 1001 1093 1092 +f 1001 1002 1094 1093 +f 1002 1003 1095 1094 +f 1003 1004 1096 1095 +f 1004 1005 1097 1096 +f 1005 1006 1098 1097 +f 1006 1007 1099 1098 +f 1007 1008 1100 1099 +f 1008 1009 1101 1100 +f 1009 1010 1102 1101 +f 1010 1011 1103 1102 +f 1011 1012 1104 1103 +f 1012 1013 1105 1104 +f 1013 1014 1106 1105 +f 1014 923 1015 1106 +f 1015 1016 1108 1107 +f 1016 1017 1109 1108 +f 1017 1018 1110 1109 +f 1018 1019 1111 1110 +f 1019 1020 1112 1111 +f 1020 1021 1113 1112 +f 1021 1022 1114 1113 +f 1022 1023 1115 1114 +f 1023 1024 1116 1115 +f 1024 1025 1117 1116 +f 1025 1026 1118 1117 +f 1026 1027 1119 1118 +f 1027 1028 1120 1119 +f 1028 1029 1121 1120 +f 1029 1030 1122 1121 +f 1030 1031 1123 1122 +f 1031 1032 1124 1123 +f 1032 1033 1125 1124 +f 1033 1034 1126 1125 +f 1034 1035 1127 1126 +f 1035 1036 1128 1127 +f 1036 1037 1129 1128 +f 1037 1038 1130 1129 +f 1038 1039 1131 1130 +f 1039 1040 1132 1131 +f 1040 1041 1133 1132 +f 1041 1042 1134 1133 +f 1042 1043 1135 1134 +f 1043 1044 1136 1135 +f 1044 1045 1137 1136 +f 1045 1046 1138 1137 +f 1046 1047 1139 1138 +f 1047 1048 1140 1139 +f 1048 1049 1141 1140 +f 1049 1050 1142 1141 +f 1050 1051 1143 1142 +f 1051 1052 1144 1143 +f 1052 1053 1145 1144 +f 1053 1054 1146 1145 +f 1054 1055 1147 1146 +f 1055 1056 1148 1147 +f 1056 1057 1149 1148 +f 1057 1058 1150 1149 +f 1058 1059 1151 1150 +f 1059 1060 1152 1151 +f 1060 1061 1153 1152 +f 1061 1062 1154 1153 +f 1062 1063 1155 1154 +f 1063 1064 1156 1155 +f 1064 1065 1157 1156 +f 1065 1066 1158 1157 +f 1066 1067 1159 1158 +f 1067 1068 1160 1159 +f 1068 1069 1161 1160 +f 1069 1070 1162 1161 +f 1070 1071 1163 1162 +f 1071 1072 1164 1163 +f 1072 1073 1165 1164 +f 1073 1074 1166 1165 +f 1074 1075 1167 1166 +f 1075 1076 1168 1167 +f 1076 1077 1169 1168 +f 1077 1078 1170 1169 +f 1078 1079 1171 1170 +f 1079 1080 1172 1171 +f 1080 1081 1173 1172 +f 1081 1082 1174 1173 +f 1082 1083 1175 1174 +f 1083 1084 1176 1175 +f 1084 1085 1177 1176 +f 1085 1086 1178 1177 +f 1086 1087 1179 1178 +f 1087 1088 1180 1179 +f 1088 1089 1181 1180 +f 1089 1090 1182 1181 +f 1090 1091 1183 1182 +f 1091 1092 1184 1183 +f 1092 1093 1185 1184 +f 1093 1094 1186 1185 +f 1094 1095 1187 1186 +f 1095 1096 1188 1187 +f 1096 1097 1189 1188 +f 1097 1098 1190 1189 +f 1098 1099 1191 1190 +f 1099 1100 1192 1191 +f 1100 1101 1193 1192 +f 1101 1102 1194 1193 +f 1102 1103 1195 1194 +f 1103 1104 1196 1195 +f 1104 1105 1197 1196 +f 1105 1106 1198 1197 +f 1106 1015 1107 1198 +f 1107 1108 1200 1199 +f 1108 1109 1201 1200 +f 1109 1110 1202 1201 +f 1110 1111 1203 1202 +f 1111 1112 1204 1203 +f 1112 1113 1205 1204 +f 1113 1114 1206 1205 +f 1114 1115 1207 1206 +f 1115 1116 1208 1207 +f 1116 1117 1209 1208 +f 1117 1118 1210 1209 +f 1118 1119 1211 1210 +f 1119 1120 1212 1211 +f 1120 1121 1213 1212 +f 1121 1122 1214 1213 +f 1122 1123 1215 1214 +f 1123 1124 1216 1215 +f 1124 1125 1217 1216 +f 1125 1126 1218 1217 +f 1126 1127 1219 1218 +f 1127 1128 1220 1219 +f 1128 1129 1221 1220 +f 1129 1130 1222 1221 +f 1130 1131 1223 1222 +f 1131 1132 1224 1223 +f 1132 1133 1225 1224 +f 1133 1134 1226 1225 +f 1134 1135 1227 1226 +f 1135 1136 1228 1227 +f 1136 1137 1229 1228 +f 1137 1138 1230 1229 +f 1138 1139 1231 1230 +f 1139 1140 1232 1231 +f 1140 1141 1233 1232 +f 1141 1142 1234 1233 +f 1142 1143 1235 1234 +f 1143 1144 1236 1235 +f 1144 1145 1237 1236 +f 1145 1146 1238 1237 +f 1146 1147 1239 1238 +f 1147 1148 1240 1239 +f 1148 1149 1241 1240 +f 1149 1150 1242 1241 +f 1150 1151 1243 1242 +f 1151 1152 1244 1243 +f 1152 1153 1245 1244 +f 1153 1154 1246 1245 +f 1154 1155 1247 1246 +f 1155 1156 1248 1247 +f 1156 1157 1249 1248 +f 1157 1158 1250 1249 +f 1158 1159 1251 1250 +f 1159 1160 1252 1251 +f 1160 1161 1253 1252 +f 1161 1162 1254 1253 +f 1162 1163 1255 1254 +f 1163 1164 1256 1255 +f 1164 1165 1257 1256 +f 1165 1166 1258 1257 +f 1166 1167 1259 1258 +f 1167 1168 1260 1259 +f 1168 1169 1261 1260 +f 1169 1170 1262 1261 +f 1170 1171 1263 1262 +f 1171 1172 1264 1263 +f 1172 1173 1265 1264 +f 1173 1174 1266 1265 +f 1174 1175 1267 1266 +f 1175 1176 1268 1267 +f 1176 1177 1269 1268 +f 1177 1178 1270 1269 +f 1178 1179 1271 1270 +f 1179 1180 1272 1271 +f 1180 1181 1273 1272 +f 1181 1182 1274 1273 +f 1182 1183 1275 1274 +f 1183 1184 1276 1275 +f 1184 1185 1277 1276 +f 1185 1186 1278 1277 +f 1186 1187 1279 1278 +f 1187 1188 1280 1279 +f 1188 1189 1281 1280 +f 1189 1190 1282 1281 +f 1190 1191 1283 1282 +f 1191 1192 1284 1283 +f 1192 1193 1285 1284 +f 1193 1194 1286 1285 +f 1194 1195 1287 1286 +f 1195 1196 1288 1287 +f 1196 1197 1289 1288 +f 1197 1198 1290 1289 +f 1198 1107 1199 1290 +f 1199 1200 1292 1291 +f 1200 1201 1293 1292 +f 1201 1202 1294 1293 +f 1202 1203 1295 1294 +f 1203 1204 1296 1295 +f 1204 1205 1297 1296 +f 1205 1206 1298 1297 +f 1206 1207 1299 1298 +f 1207 1208 1300 1299 +f 1208 1209 1301 1300 +f 1209 1210 1302 1301 +f 1210 1211 1303 1302 +f 1211 1212 1304 1303 +f 1212 1213 1305 1304 +f 1213 1214 1306 1305 +f 1214 1215 1307 1306 +f 1215 1216 1308 1307 +f 1216 1217 1309 1308 +f 1217 1218 1310 1309 +f 1218 1219 1311 1310 +f 1219 1220 1312 1311 +f 1220 1221 1313 1312 +f 1221 1222 1314 1313 +f 1222 1223 1315 1314 +f 1223 1224 1316 1315 +f 1224 1225 1317 1316 +f 1225 1226 1318 1317 +f 1226 1227 1319 1318 +f 1227 1228 1320 1319 +f 1228 1229 1321 1320 +f 1229 1230 1322 1321 +f 1230 1231 1323 1322 +f 1231 1232 1324 1323 +f 1232 1233 1325 1324 +f 1233 1234 1326 1325 +f 1234 1235 1327 1326 +f 1235 1236 1328 1327 +f 1236 1237 1329 1328 +f 1237 1238 1330 1329 +f 1238 1239 1331 1330 +f 1239 1240 1332 1331 +f 1240 1241 1333 1332 +f 1241 1242 1334 1333 +f 1242 1243 1335 1334 +f 1243 1244 1336 1335 +f 1244 1245 1337 1336 +f 1245 1246 1338 1337 +f 1246 1247 1339 1338 +f 1247 1248 1340 1339 +f 1248 1249 1341 1340 +f 1249 1250 1342 1341 +f 1250 1251 1343 1342 +f 1251 1252 1344 1343 +f 1252 1253 1345 1344 +f 1253 1254 1346 1345 +f 1254 1255 1347 1346 +f 1255 1256 1348 1347 +f 1256 1257 1349 1348 +f 1257 1258 1350 1349 +f 1258 1259 1351 1350 +f 1259 1260 1352 1351 +f 1260 1261 1353 1352 +f 1261 1262 1354 1353 +f 1262 1263 1355 1354 +f 1263 1264 1356 1355 +f 1264 1265 1357 1356 +f 1265 1266 1358 1357 +f 1266 1267 1359 1358 +f 1267 1268 1360 1359 +f 1268 1269 1361 1360 +f 1269 1270 1362 1361 +f 1270 1271 1363 1362 +f 1271 1272 1364 1363 +f 1272 1273 1365 1364 +f 1273 1274 1366 1365 +f 1274 1275 1367 1366 +f 1275 1276 1368 1367 +f 1276 1277 1369 1368 +f 1277 1278 1370 1369 +f 1278 1279 1371 1370 +f 1279 1280 1372 1371 +f 1280 1281 1373 1372 +f 1281 1282 1374 1373 +f 1282 1283 1375 1374 +f 1283 1284 1376 1375 +f 1284 1285 1377 1376 +f 1285 1286 1378 1377 +f 1286 1287 1379 1378 +f 1287 1288 1380 1379 +f 1288 1289 1381 1380 +f 1289 1290 1382 1381 +f 1290 1199 1291 1382 +f 1291 1292 1384 1383 +f 1292 1293 1385 1384 +f 1293 1294 1386 1385 +f 1294 1295 1387 1386 +f 1295 1296 1388 1387 +f 1296 1297 1389 1388 +f 1297 1298 1390 1389 +f 1298 1299 1391 1390 +f 1299 1300 1392 1391 +f 1300 1301 1393 1392 +f 1301 1302 1394 1393 +f 1302 1303 1395 1394 +f 1303 1304 1396 1395 +f 1304 1305 1397 1396 +f 1305 1306 1398 1397 +f 1306 1307 1399 1398 +f 1307 1308 1400 1399 +f 1308 1309 1401 1400 +f 1309 1310 1402 1401 +f 1310 1311 1403 1402 +f 1311 1312 1404 1403 +f 1312 1313 1405 1404 +f 1313 1314 1406 1405 +f 1314 1315 1407 1406 +f 1315 1316 1408 1407 +f 1316 1317 1409 1408 +f 1317 1318 1410 1409 +f 1318 1319 1411 1410 +f 1319 1320 1412 1411 +f 1320 1321 1413 1412 +f 1321 1322 1414 1413 +f 1322 1323 1415 1414 +f 1323 1324 1416 1415 +f 1324 1325 1417 1416 +f 1325 1326 1418 1417 +f 1326 1327 1419 1418 +f 1327 1328 1420 1419 +f 1328 1329 1421 1420 +f 1329 1330 1422 1421 +f 1330 1331 1423 1422 +f 1331 1332 1424 1423 +f 1332 1333 1425 1424 +f 1333 1334 1426 1425 +f 1334 1335 1427 1426 +f 1335 1336 1428 1427 +f 1336 1337 1429 1428 +f 1337 1338 1430 1429 +f 1338 1339 1431 1430 +f 1339 1340 1432 1431 +f 1340 1341 1433 1432 +f 1341 1342 1434 1433 +f 1342 1343 1435 1434 +f 1343 1344 1436 1435 +f 1344 1345 1437 1436 +f 1345 1346 1438 1437 +f 1346 1347 1439 1438 +f 1347 1348 1440 1439 +f 1348 1349 1441 1440 +f 1349 1350 1442 1441 +f 1350 1351 1443 1442 +f 1351 1352 1444 1443 +f 1352 1353 1445 1444 +f 1353 1354 1446 1445 +f 1354 1355 1447 1446 +f 1355 1356 1448 1447 +f 1356 1357 1449 1448 +f 1357 1358 1450 1449 +f 1358 1359 1451 1450 +f 1359 1360 1452 1451 +f 1360 1361 1453 1452 +f 1361 1362 1454 1453 +f 1362 1363 1455 1454 +f 1363 1364 1456 1455 +f 1364 1365 1457 1456 +f 1365 1366 1458 1457 +f 1366 1367 1459 1458 +f 1367 1368 1460 1459 +f 1368 1369 1461 1460 +f 1369 1370 1462 1461 +f 1370 1371 1463 1462 +f 1371 1372 1464 1463 +f 1372 1373 1465 1464 +f 1373 1374 1466 1465 +f 1374 1375 1467 1466 +f 1375 1376 1468 1467 +f 1376 1377 1469 1468 +f 1377 1378 1470 1469 +f 1378 1379 1471 1470 +f 1379 1380 1472 1471 +f 1380 1381 1473 1472 +f 1381 1382 1474 1473 +f 1382 1291 1383 1474 +f 1383 1384 1476 1475 +f 1384 1385 1477 1476 +f 1385 1386 1478 1477 +f 1386 1387 1479 1478 +f 1387 1388 1480 1479 +f 1388 1389 1481 1480 +f 1389 1390 1482 1481 +f 1390 1391 1483 1482 +f 1391 1392 1484 1483 +f 1392 1393 1485 1484 +f 1393 1394 1486 1485 +f 1394 1395 1487 1486 +f 1395 1396 1488 1487 +f 1396 1397 1489 1488 +f 1397 1398 1490 1489 +f 1398 1399 1491 1490 +f 1399 1400 1492 1491 +f 1400 1401 1493 1492 +f 1401 1402 1494 1493 +f 1402 1403 1495 1494 +f 1403 1404 1496 1495 +f 1404 1405 1497 1496 +f 1405 1406 1498 1497 +f 1406 1407 1499 1498 +f 1407 1408 1500 1499 +f 1408 1409 1501 1500 +f 1409 1410 1502 1501 +f 1410 1411 1503 1502 +f 1411 1412 1504 1503 +f 1412 1413 1505 1504 +f 1413 1414 1506 1505 +f 1414 1415 1507 1506 +f 1415 1416 1508 1507 +f 1416 1417 1509 1508 +f 1417 1418 1510 1509 +f 1418 1419 1511 1510 +f 1419 1420 1512 1511 +f 1420 1421 1513 1512 +f 1421 1422 1514 1513 +f 1422 1423 1515 1514 +f 1423 1424 1516 1515 +f 1424 1425 1517 1516 +f 1425 1426 1518 1517 +f 1426 1427 1519 1518 +f 1427 1428 1520 1519 +f 1428 1429 1521 1520 +f 1429 1430 1522 1521 +f 1430 1431 1523 1522 +f 1431 1432 1524 1523 +f 1432 1433 1525 1524 +f 1433 1434 1526 1525 +f 1434 1435 1527 1526 +f 1435 1436 1528 1527 +f 1436 1437 1529 1528 +f 1437 1438 1530 1529 +f 1438 1439 1531 1530 +f 1439 1440 1532 1531 +f 1440 1441 1533 1532 +f 1441 1442 1534 1533 +f 1442 1443 1535 1534 +f 1443 1444 1536 1535 +f 1444 1445 1537 1536 +f 1445 1446 1538 1537 +f 1446 1447 1539 1538 +f 1447 1448 1540 1539 +f 1448 1449 1541 1540 +f 1449 1450 1542 1541 +f 1450 1451 1543 1542 +f 1451 1452 1544 1543 +f 1452 1453 1545 1544 +f 1453 1454 1546 1545 +f 1454 1455 1547 1546 +f 1455 1456 1548 1547 +f 1456 1457 1549 1548 +f 1457 1458 1550 1549 +f 1458 1459 1551 1550 +f 1459 1460 1552 1551 +f 1460 1461 1553 1552 +f 1461 1462 1554 1553 +f 1462 1463 1555 1554 +f 1463 1464 1556 1555 +f 1464 1465 1557 1556 +f 1465 1466 1558 1557 +f 1466 1467 1559 1558 +f 1467 1468 1560 1559 +f 1468 1469 1561 1560 +f 1469 1470 1562 1561 +f 1470 1471 1563 1562 +f 1471 1472 1564 1563 +f 1472 1473 1565 1564 +f 1473 1474 1566 1565 +f 1474 1383 1475 1566 +f 1475 1476 1568 1567 +f 1476 1477 1569 1568 +f 1477 1478 1570 1569 +f 1478 1479 1571 1570 +f 1479 1480 1572 1571 +f 1480 1481 1573 1572 +f 1481 1482 1574 1573 +f 1482 1483 1575 1574 +f 1483 1484 1576 1575 +f 1484 1485 1577 1576 +f 1485 1486 1578 1577 +f 1486 1487 1579 1578 +f 1487 1488 1580 1579 +f 1488 1489 1581 1580 +f 1489 1490 1582 1581 +f 1490 1491 1583 1582 +f 1491 1492 1584 1583 +f 1492 1493 1585 1584 +f 1493 1494 1586 1585 +f 1494 1495 1587 1586 +f 1495 1496 1588 1587 +f 1496 1497 1589 1588 +f 1497 1498 1590 1589 +f 1498 1499 1591 1590 +f 1499 1500 1592 1591 +f 1500 1501 1593 1592 +f 1501 1502 1594 1593 +f 1502 1503 1595 1594 +f 1503 1504 1596 1595 +f 1504 1505 1597 1596 +f 1505 1506 1598 1597 +f 1506 1507 1599 1598 +f 1507 1508 1600 1599 +f 1508 1509 1601 1600 +f 1509 1510 1602 1601 +f 1510 1511 1603 1602 +f 1511 1512 1604 1603 +f 1512 1513 1605 1604 +f 1513 1514 1606 1605 +f 1514 1515 1607 1606 +f 1515 1516 1608 1607 +f 1516 1517 1609 1608 +f 1517 1518 1610 1609 +f 1518 1519 1611 1610 +f 1519 1520 1612 1611 +f 1520 1521 1613 1612 +f 1521 1522 1614 1613 +f 1522 1523 1615 1614 +f 1523 1524 1616 1615 +f 1524 1525 1617 1616 +f 1525 1526 1618 1617 +f 1526 1527 1619 1618 +f 1527 1528 1620 1619 +f 1528 1529 1621 1620 +f 1529 1530 1622 1621 +f 1530 1531 1623 1622 +f 1531 1532 1624 1623 +f 1532 1533 1625 1624 +f 1533 1534 1626 1625 +f 1534 1535 1627 1626 +f 1535 1536 1628 1627 +f 1536 1537 1629 1628 +f 1537 1538 1630 1629 +f 1538 1539 1631 1630 +f 1539 1540 1632 1631 +f 1540 1541 1633 1632 +f 1541 1542 1634 1633 +f 1542 1543 1635 1634 +f 1543 1544 1636 1635 +f 1544 1545 1637 1636 +f 1545 1546 1638 1637 +f 1546 1547 1639 1638 +f 1547 1548 1640 1639 +f 1548 1549 1641 1640 +f 1549 1550 1642 1641 +f 1550 1551 1643 1642 +f 1551 1552 1644 1643 +f 1552 1553 1645 1644 +f 1553 1554 1646 1645 +f 1554 1555 1647 1646 +f 1555 1556 1648 1647 +f 1556 1557 1649 1648 +f 1557 1558 1650 1649 +f 1558 1559 1651 1650 +f 1559 1560 1652 1651 +f 1560 1561 1653 1652 +f 1561 1562 1654 1653 +f 1562 1563 1655 1654 +f 1563 1564 1656 1655 +f 1564 1565 1657 1656 +f 1565 1566 1658 1657 +f 1566 1475 1567 1658 +f 1567 1568 1660 1659 +f 1568 1569 1661 1660 +f 1569 1570 1662 1661 +f 1570 1571 1663 1662 +f 1571 1572 1664 1663 +f 1572 1573 1665 1664 +f 1573 1574 1666 1665 +f 1574 1575 1667 1666 +f 1575 1576 1668 1667 +f 1576 1577 1669 1668 +f 1577 1578 1670 1669 +f 1578 1579 1671 1670 +f 1579 1580 1672 1671 +f 1580 1581 1673 1672 +f 1581 1582 1674 1673 +f 1582 1583 1675 1674 +f 1583 1584 1676 1675 +f 1584 1585 1677 1676 +f 1585 1586 1678 1677 +f 1586 1587 1679 1678 +f 1587 1588 1680 1679 +f 1588 1589 1681 1680 +f 1589 1590 1682 1681 +f 1590 1591 1683 1682 +f 1591 1592 1684 1683 +f 1592 1593 1685 1684 +f 1593 1594 1686 1685 +f 1594 1595 1687 1686 +f 1595 1596 1688 1687 +f 1596 1597 1689 1688 +f 1597 1598 1690 1689 +f 1598 1599 1691 1690 +f 1599 1600 1692 1691 +f 1600 1601 1693 1692 +f 1601 1602 1694 1693 +f 1602 1603 1695 1694 +f 1603 1604 1696 1695 +f 1604 1605 1697 1696 +f 1605 1606 1698 1697 +f 1606 1607 1699 1698 +f 1607 1608 1700 1699 +f 1608 1609 1701 1700 +f 1609 1610 1702 1701 +f 1610 1611 1703 1702 +f 1611 1612 1704 1703 +f 1612 1613 1705 1704 +f 1613 1614 1706 1705 +f 1614 1615 1707 1706 +f 1615 1616 1708 1707 +f 1616 1617 1709 1708 +f 1617 1618 1710 1709 +f 1618 1619 1711 1710 +f 1619 1620 1712 1711 +f 1620 1621 1713 1712 +f 1621 1622 1714 1713 +f 1622 1623 1715 1714 +f 1623 1624 1716 1715 +f 1624 1625 1717 1716 +f 1625 1626 1718 1717 +f 1626 1627 1719 1718 +f 1627 1628 1720 1719 +f 1628 1629 1721 1720 +f 1629 1630 1722 1721 +f 1630 1631 1723 1722 +f 1631 1632 1724 1723 +f 1632 1633 1725 1724 +f 1633 1634 1726 1725 +f 1634 1635 1727 1726 +f 1635 1636 1728 1727 +f 1636 1637 1729 1728 +f 1637 1638 1730 1729 +f 1638 1639 1731 1730 +f 1639 1640 1732 1731 +f 1640 1641 1733 1732 +f 1641 1642 1734 1733 +f 1642 1643 1735 1734 +f 1643 1644 1736 1735 +f 1644 1645 1737 1736 +f 1645 1646 1738 1737 +f 1646 1647 1739 1738 +f 1647 1648 1740 1739 +f 1648 1649 1741 1740 +f 1649 1650 1742 1741 +f 1650 1651 1743 1742 +f 1651 1652 1744 1743 +f 1652 1653 1745 1744 +f 1653 1654 1746 1745 +f 1654 1655 1747 1746 +f 1655 1656 1748 1747 +f 1656 1657 1749 1748 +f 1657 1658 1750 1749 +f 1658 1567 1659 1750 +f 1659 1660 1752 1751 +f 1660 1661 1753 1752 +f 1661 1662 1754 1753 +f 1662 1663 1755 1754 +f 1663 1664 1756 1755 +f 1664 1665 1757 1756 +f 1665 1666 1758 1757 +f 1666 1667 1759 1758 +f 1667 1668 1760 1759 +f 1668 1669 1761 1760 +f 1669 1670 1762 1761 +f 1670 1671 1763 1762 +f 1671 1672 1764 1763 +f 1672 1673 1765 1764 +f 1673 1674 1766 1765 +f 1674 1675 1767 1766 +f 1675 1676 1768 1767 +f 1676 1677 1769 1768 +f 1677 1678 1770 1769 +f 1678 1679 1771 1770 +f 1679 1680 1772 1771 +f 1680 1681 1773 1772 +f 1681 1682 1774 1773 +f 1682 1683 1775 1774 +f 1683 1684 1776 1775 +f 1684 1685 1777 1776 +f 1685 1686 1778 1777 +f 1686 1687 1779 1778 +f 1687 1688 1780 1779 +f 1688 1689 1781 1780 +f 1689 1690 1782 1781 +f 1690 1691 1783 1782 +f 1691 1692 1784 1783 +f 1692 1693 1785 1784 +f 1693 1694 1786 1785 +f 1694 1695 1787 1786 +f 1695 1696 1788 1787 +f 1696 1697 1789 1788 +f 1697 1698 1790 1789 +f 1698 1699 1791 1790 +f 1699 1700 1792 1791 +f 1700 1701 1793 1792 +f 1701 1702 1794 1793 +f 1702 1703 1795 1794 +f 1703 1704 1796 1795 +f 1704 1705 1797 1796 +f 1705 1706 1798 1797 +f 1706 1707 1799 1798 +f 1707 1708 1800 1799 +f 1708 1709 1801 1800 +f 1709 1710 1802 1801 +f 1710 1711 1803 1802 +f 1711 1712 1804 1803 +f 1712 1713 1805 1804 +f 1713 1714 1806 1805 +f 1714 1715 1807 1806 +f 1715 1716 1808 1807 +f 1716 1717 1809 1808 +f 1717 1718 1810 1809 +f 1718 1719 1811 1810 +f 1719 1720 1812 1811 +f 1720 1721 1813 1812 +f 1721 1722 1814 1813 +f 1722 1723 1815 1814 +f 1723 1724 1816 1815 +f 1724 1725 1817 1816 +f 1725 1726 1818 1817 +f 1726 1727 1819 1818 +f 1727 1728 1820 1819 +f 1728 1729 1821 1820 +f 1729 1730 1822 1821 +f 1730 1731 1823 1822 +f 1731 1732 1824 1823 +f 1732 1733 1825 1824 +f 1733 1734 1826 1825 +f 1734 1735 1827 1826 +f 1735 1736 1828 1827 +f 1736 1737 1829 1828 +f 1737 1738 1830 1829 +f 1738 1739 1831 1830 +f 1739 1740 1832 1831 +f 1740 1741 1833 1832 +f 1741 1742 1834 1833 +f 1742 1743 1835 1834 +f 1743 1744 1836 1835 +f 1744 1745 1837 1836 +f 1745 1746 1838 1837 +f 1746 1747 1839 1838 +f 1747 1748 1840 1839 +f 1748 1749 1841 1840 +f 1749 1750 1842 1841 +f 1750 1659 1751 1842 +f 1751 1752 1844 1843 +f 1752 1753 1845 1844 +f 1753 1754 1846 1845 +f 1754 1755 1847 1846 +f 1755 1756 1848 1847 +f 1756 1757 1849 1848 +f 1757 1758 1850 1849 +f 1758 1759 1851 1850 +f 1759 1760 1852 1851 +f 1760 1761 1853 1852 +f 1761 1762 1854 1853 +f 1762 1763 1855 1854 +f 1763 1764 1856 1855 +f 1764 1765 1857 1856 +f 1765 1766 1858 1857 +f 1766 1767 1859 1858 +f 1767 1768 1860 1859 +f 1768 1769 1861 1860 +f 1769 1770 1862 1861 +f 1770 1771 1863 1862 +f 1771 1772 1864 1863 +f 1772 1773 1865 1864 +f 1773 1774 1866 1865 +f 1774 1775 1867 1866 +f 1775 1776 1868 1867 +f 1776 1777 1869 1868 +f 1777 1778 1870 1869 +f 1778 1779 1871 1870 +f 1779 1780 1872 1871 +f 1780 1781 1873 1872 +f 1781 1782 1874 1873 +f 1782 1783 1875 1874 +f 1783 1784 1876 1875 +f 1784 1785 1877 1876 +f 1785 1786 1878 1877 +f 1786 1787 1879 1878 +f 1787 1788 1880 1879 +f 1788 1789 1881 1880 +f 1789 1790 1882 1881 +f 1790 1791 1883 1882 +f 1791 1792 1884 1883 +f 1792 1793 1885 1884 +f 1793 1794 1886 1885 +f 1794 1795 1887 1886 +f 1795 1796 1888 1887 +f 1796 1797 1889 1888 +f 1797 1798 1890 1889 +f 1798 1799 1891 1890 +f 1799 1800 1892 1891 +f 1800 1801 1893 1892 +f 1801 1802 1894 1893 +f 1802 1803 1895 1894 +f 1803 1804 1896 1895 +f 1804 1805 1897 1896 +f 1805 1806 1898 1897 +f 1806 1807 1899 1898 +f 1807 1808 1900 1899 +f 1808 1809 1901 1900 +f 1809 1810 1902 1901 +f 1810 1811 1903 1902 +f 1811 1812 1904 1903 +f 1812 1813 1905 1904 +f 1813 1814 1906 1905 +f 1814 1815 1907 1906 +f 1815 1816 1908 1907 +f 1816 1817 1909 1908 +f 1817 1818 1910 1909 +f 1818 1819 1911 1910 +f 1819 1820 1912 1911 +f 1820 1821 1913 1912 +f 1821 1822 1914 1913 +f 1822 1823 1915 1914 +f 1823 1824 1916 1915 +f 1824 1825 1917 1916 +f 1825 1826 1918 1917 +f 1826 1827 1919 1918 +f 1827 1828 1920 1919 +f 1828 1829 1921 1920 +f 1829 1830 1922 1921 +f 1830 1831 1923 1922 +f 1831 1832 1924 1923 +f 1832 1833 1925 1924 +f 1833 1834 1926 1925 +f 1834 1835 1927 1926 +f 1835 1836 1928 1927 +f 1836 1837 1929 1928 +f 1837 1838 1930 1929 +f 1838 1839 1931 1930 +f 1839 1840 1932 1931 +f 1840 1841 1933 1932 +f 1841 1842 1934 1933 +f 1842 1751 1843 1934 +f 1843 1844 1936 1935 +f 1844 1845 1937 1936 +f 1845 1846 1938 1937 +f 1846 1847 1939 1938 +f 1847 1848 1940 1939 +f 1848 1849 1941 1940 +f 1849 1850 1942 1941 +f 1850 1851 1943 1942 +f 1851 1852 1944 1943 +f 1852 1853 1945 1944 +f 1853 1854 1946 1945 +f 1854 1855 1947 1946 +f 1855 1856 1948 1947 +f 1856 1857 1949 1948 +f 1857 1858 1950 1949 +f 1858 1859 1951 1950 +f 1859 1860 1952 1951 +f 1860 1861 1953 1952 +f 1861 1862 1954 1953 +f 1862 1863 1955 1954 +f 1863 1864 1956 1955 +f 1864 1865 1957 1956 +f 1865 1866 1958 1957 +f 1866 1867 1959 1958 +f 1867 1868 1960 1959 +f 1868 1869 1961 1960 +f 1869 1870 1962 1961 +f 1870 1871 1963 1962 +f 1871 1872 1964 1963 +f 1872 1873 1965 1964 +f 1873 1874 1966 1965 +f 1874 1875 1967 1966 +f 1875 1876 1968 1967 +f 1876 1877 1969 1968 +f 1877 1878 1970 1969 +f 1878 1879 1971 1970 +f 1879 1880 1972 1971 +f 1880 1881 1973 1972 +f 1881 1882 1974 1973 +f 1882 1883 1975 1974 +f 1883 1884 1976 1975 +f 1884 1885 1977 1976 +f 1885 1886 1978 1977 +f 1886 1887 1979 1978 +f 1887 1888 1980 1979 +f 1888 1889 1981 1980 +f 1889 1890 1982 1981 +f 1890 1891 1983 1982 +f 1891 1892 1984 1983 +f 1892 1893 1985 1984 +f 1893 1894 1986 1985 +f 1894 1895 1987 1986 +f 1895 1896 1988 1987 +f 1896 1897 1989 1988 +f 1897 1898 1990 1989 +f 1898 1899 1991 1990 +f 1899 1900 1992 1991 +f 1900 1901 1993 1992 +f 1901 1902 1994 1993 +f 1902 1903 1995 1994 +f 1903 1904 1996 1995 +f 1904 1905 1997 1996 +f 1905 1906 1998 1997 +f 1906 1907 1999 1998 +f 1907 1908 2000 1999 +f 1908 1909 2001 2000 +f 1909 1910 2002 2001 +f 1910 1911 2003 2002 +f 1911 1912 2004 2003 +f 1912 1913 2005 2004 +f 1913 1914 2006 2005 +f 1914 1915 2007 2006 +f 1915 1916 2008 2007 +f 1916 1917 2009 2008 +f 1917 1918 2010 2009 +f 1918 1919 2011 2010 +f 1919 1920 2012 2011 +f 1920 1921 2013 2012 +f 1921 1922 2014 2013 +f 1922 1923 2015 2014 +f 1923 1924 2016 2015 +f 1924 1925 2017 2016 +f 1925 1926 2018 2017 +f 1926 1927 2019 2018 +f 1927 1928 2020 2019 +f 1928 1929 2021 2020 +f 1929 1930 2022 2021 +f 1930 1931 2023 2022 +f 1931 1932 2024 2023 +f 1932 1933 2025 2024 +f 1933 1934 2026 2025 +f 1934 1843 1935 2026 +f 1935 1936 2028 2027 +f 1936 1937 2029 2028 +f 1937 1938 2030 2029 +f 1938 1939 2031 2030 +f 1939 1940 2032 2031 +f 1940 1941 2033 2032 +f 1941 1942 2034 2033 +f 1942 1943 2035 2034 +f 1943 1944 2036 2035 +f 1944 1945 2037 2036 +f 1945 1946 2038 2037 +f 1946 1947 2039 2038 +f 1947 1948 2040 2039 +f 1948 1949 2041 2040 +f 1949 1950 2042 2041 +f 1950 1951 2043 2042 +f 1951 1952 2044 2043 +f 1952 1953 2045 2044 +f 1953 1954 2046 2045 +f 1954 1955 2047 2046 +f 1955 1956 2048 2047 +f 1956 1957 2049 2048 +f 1957 1958 2050 2049 +f 1958 1959 2051 2050 +f 1959 1960 2052 2051 +f 1960 1961 2053 2052 +f 1961 1962 2054 2053 +f 1962 1963 2055 2054 +f 1963 1964 2056 2055 +f 1964 1965 2057 2056 +f 1965 1966 2058 2057 +f 1966 1967 2059 2058 +f 1967 1968 2060 2059 +f 1968 1969 2061 2060 +f 1969 1970 2062 2061 +f 1970 1971 2063 2062 +f 1971 1972 2064 2063 +f 1972 1973 2065 2064 +f 1973 1974 2066 2065 +f 1974 1975 2067 2066 +f 1975 1976 2068 2067 +f 1976 1977 2069 2068 +f 1977 1978 2070 2069 +f 1978 1979 2071 2070 +f 1979 1980 2072 2071 +f 1980 1981 2073 2072 +f 1981 1982 2074 2073 +f 1982 1983 2075 2074 +f 1983 1984 2076 2075 +f 1984 1985 2077 2076 +f 1985 1986 2078 2077 +f 1986 1987 2079 2078 +f 1987 1988 2080 2079 +f 1988 1989 2081 2080 +f 1989 1990 2082 2081 +f 1990 1991 2083 2082 +f 1991 1992 2084 2083 +f 1992 1993 2085 2084 +f 1993 1994 2086 2085 +f 1994 1995 2087 2086 +f 1995 1996 2088 2087 +f 1996 1997 2089 2088 +f 1997 1998 2090 2089 +f 1998 1999 2091 2090 +f 1999 2000 2092 2091 +f 2000 2001 2093 2092 +f 2001 2002 2094 2093 +f 2002 2003 2095 2094 +f 2003 2004 2096 2095 +f 2004 2005 2097 2096 +f 2005 2006 2098 2097 +f 2006 2007 2099 2098 +f 2007 2008 2100 2099 +f 2008 2009 2101 2100 +f 2009 2010 2102 2101 +f 2010 2011 2103 2102 +f 2011 2012 2104 2103 +f 2012 2013 2105 2104 +f 2013 2014 2106 2105 +f 2014 2015 2107 2106 +f 2015 2016 2108 2107 +f 2016 2017 2109 2108 +f 2017 2018 2110 2109 +f 2018 2019 2111 2110 +f 2019 2020 2112 2111 +f 2020 2021 2113 2112 +f 2021 2022 2114 2113 +f 2022 2023 2115 2114 +f 2023 2024 2116 2115 +f 2024 2025 2117 2116 +f 2025 2026 2118 2117 +f 2026 1935 2027 2118 +f 2027 2028 2120 2119 +f 2028 2029 2121 2120 +f 2029 2030 2122 2121 +f 2030 2031 2123 2122 +f 2031 2032 2124 2123 +f 2032 2033 2125 2124 +f 2033 2034 2126 2125 +f 2034 2035 2127 2126 +f 2035 2036 2128 2127 +f 2036 2037 2129 2128 +f 2037 2038 2130 2129 +f 2038 2039 2131 2130 +f 2039 2040 2132 2131 +f 2040 2041 2133 2132 +f 2041 2042 2134 2133 +f 2042 2043 2135 2134 +f 2043 2044 2136 2135 +f 2044 2045 2137 2136 +f 2045 2046 2138 2137 +f 2046 2047 2139 2138 +f 2047 2048 2140 2139 +f 2048 2049 2141 2140 +f 2049 2050 2142 2141 +f 2050 2051 2143 2142 +f 2051 2052 2144 2143 +f 2052 2053 2145 2144 +f 2053 2054 2146 2145 +f 2054 2055 2147 2146 +f 2055 2056 2148 2147 +f 2056 2057 2149 2148 +f 2057 2058 2150 2149 +f 2058 2059 2151 2150 +f 2059 2060 2152 2151 +f 2060 2061 2153 2152 +f 2061 2062 2154 2153 +f 2062 2063 2155 2154 +f 2063 2064 2156 2155 +f 2064 2065 2157 2156 +f 2065 2066 2158 2157 +f 2066 2067 2159 2158 +f 2067 2068 2160 2159 +f 2068 2069 2161 2160 +f 2069 2070 2162 2161 +f 2070 2071 2163 2162 +f 2071 2072 2164 2163 +f 2072 2073 2165 2164 +f 2073 2074 2166 2165 +f 2074 2075 2167 2166 +f 2075 2076 2168 2167 +f 2076 2077 2169 2168 +f 2077 2078 2170 2169 +f 2078 2079 2171 2170 +f 2079 2080 2172 2171 +f 2080 2081 2173 2172 +f 2081 2082 2174 2173 +f 2082 2083 2175 2174 +f 2083 2084 2176 2175 +f 2084 2085 2177 2176 +f 2085 2086 2178 2177 +f 2086 2087 2179 2178 +f 2087 2088 2180 2179 +f 2088 2089 2181 2180 +f 2089 2090 2182 2181 +f 2090 2091 2183 2182 +f 2091 2092 2184 2183 +f 2092 2093 2185 2184 +f 2093 2094 2186 2185 +f 2094 2095 2187 2186 +f 2095 2096 2188 2187 +f 2096 2097 2189 2188 +f 2097 2098 2190 2189 +f 2098 2099 2191 2190 +f 2099 2100 2192 2191 +f 2100 2101 2193 2192 +f 2101 2102 2194 2193 +f 2102 2103 2195 2194 +f 2103 2104 2196 2195 +f 2104 2105 2197 2196 +f 2105 2106 2198 2197 +f 2106 2107 2199 2198 +f 2107 2108 2200 2199 +f 2108 2109 2201 2200 +f 2109 2110 2202 2201 +f 2110 2111 2203 2202 +f 2111 2112 2204 2203 +f 2112 2113 2205 2204 +f 2113 2114 2206 2205 +f 2114 2115 2207 2206 +f 2115 2116 2208 2207 +f 2116 2117 2209 2208 +f 2117 2118 2210 2209 +f 2118 2027 2119 2210 +f 2119 2120 2212 2211 +f 2120 2121 2213 2212 +f 2121 2122 2214 2213 +f 2122 2123 2215 2214 +f 2123 2124 2216 2215 +f 2124 2125 2217 2216 +f 2125 2126 2218 2217 +f 2126 2127 2219 2218 +f 2127 2128 2220 2219 +f 2128 2129 2221 2220 +f 2129 2130 2222 2221 +f 2130 2131 2223 2222 +f 2131 2132 2224 2223 +f 2132 2133 2225 2224 +f 2133 2134 2226 2225 +f 2134 2135 2227 2226 +f 2135 2136 2228 2227 +f 2136 2137 2229 2228 +f 2137 2138 2230 2229 +f 2138 2139 2231 2230 +f 2139 2140 2232 2231 +f 2140 2141 2233 2232 +f 2141 2142 2234 2233 +f 2142 2143 2235 2234 +f 2143 2144 2236 2235 +f 2144 2145 2237 2236 +f 2145 2146 2238 2237 +f 2146 2147 2239 2238 +f 2147 2148 2240 2239 +f 2148 2149 2241 2240 +f 2149 2150 2242 2241 +f 2150 2151 2243 2242 +f 2151 2152 2244 2243 +f 2152 2153 2245 2244 +f 2153 2154 2246 2245 +f 2154 2155 2247 2246 +f 2155 2156 2248 2247 +f 2156 2157 2249 2248 +f 2157 2158 2250 2249 +f 2158 2159 2251 2250 +f 2159 2160 2252 2251 +f 2160 2161 2253 2252 +f 2161 2162 2254 2253 +f 2162 2163 2255 2254 +f 2163 2164 2256 2255 +f 2164 2165 2257 2256 +f 2165 2166 2258 2257 +f 2166 2167 2259 2258 +f 2167 2168 2260 2259 +f 2168 2169 2261 2260 +f 2169 2170 2262 2261 +f 2170 2171 2263 2262 +f 2171 2172 2264 2263 +f 2172 2173 2265 2264 +f 2173 2174 2266 2265 +f 2174 2175 2267 2266 +f 2175 2176 2268 2267 +f 2176 2177 2269 2268 +f 2177 2178 2270 2269 +f 2178 2179 2271 2270 +f 2179 2180 2272 2271 +f 2180 2181 2273 2272 +f 2181 2182 2274 2273 +f 2182 2183 2275 2274 +f 2183 2184 2276 2275 +f 2184 2185 2277 2276 +f 2185 2186 2278 2277 +f 2186 2187 2279 2278 +f 2187 2188 2280 2279 +f 2188 2189 2281 2280 +f 2189 2190 2282 2281 +f 2190 2191 2283 2282 +f 2191 2192 2284 2283 +f 2192 2193 2285 2284 +f 2193 2194 2286 2285 +f 2194 2195 2287 2286 +f 2195 2196 2288 2287 +f 2196 2197 2289 2288 +f 2197 2198 2290 2289 +f 2198 2199 2291 2290 +f 2199 2200 2292 2291 +f 2200 2201 2293 2292 +f 2201 2202 2294 2293 +f 2202 2203 2295 2294 +f 2203 2204 2296 2295 +f 2204 2205 2297 2296 +f 2205 2206 2298 2297 +f 2206 2207 2299 2298 +f 2207 2208 2300 2299 +f 2208 2209 2301 2300 +f 2209 2210 2302 2301 +f 2210 2119 2211 2302 +f 2211 2212 2304 2303 +f 2212 2213 2305 2304 +f 2213 2214 2306 2305 +f 2214 2215 2307 2306 +f 2215 2216 2308 2307 +f 2216 2217 2309 2308 +f 2217 2218 2310 2309 +f 2218 2219 2311 2310 +f 2219 2220 2312 2311 +f 2220 2221 2313 2312 +f 2221 2222 2314 2313 +f 2222 2223 2315 2314 +f 2223 2224 2316 2315 +f 2224 2225 2317 2316 +f 2225 2226 2318 2317 +f 2226 2227 2319 2318 +f 2227 2228 2320 2319 +f 2228 2229 2321 2320 +f 2229 2230 2322 2321 +f 2230 2231 2323 2322 +f 2231 2232 2324 2323 +f 2232 2233 2325 2324 +f 2233 2234 2326 2325 +f 2234 2235 2327 2326 +f 2235 2236 2328 2327 +f 2236 2237 2329 2328 +f 2237 2238 2330 2329 +f 2238 2239 2331 2330 +f 2239 2240 2332 2331 +f 2240 2241 2333 2332 +f 2241 2242 2334 2333 +f 2242 2243 2335 2334 +f 2243 2244 2336 2335 +f 2244 2245 2337 2336 +f 2245 2246 2338 2337 +f 2246 2247 2339 2338 +f 2247 2248 2340 2339 +f 2248 2249 2341 2340 +f 2249 2250 2342 2341 +f 2250 2251 2343 2342 +f 2251 2252 2344 2343 +f 2252 2253 2345 2344 +f 2253 2254 2346 2345 +f 2254 2255 2347 2346 +f 2255 2256 2348 2347 +f 2256 2257 2349 2348 +f 2257 2258 2350 2349 +f 2258 2259 2351 2350 +f 2259 2260 2352 2351 +f 2260 2261 2353 2352 +f 2261 2262 2354 2353 +f 2262 2263 2355 2354 +f 2263 2264 2356 2355 +f 2264 2265 2357 2356 +f 2265 2266 2358 2357 +f 2266 2267 2359 2358 +f 2267 2268 2360 2359 +f 2268 2269 2361 2360 +f 2269 2270 2362 2361 +f 2270 2271 2363 2362 +f 2271 2272 2364 2363 +f 2272 2273 2365 2364 +f 2273 2274 2366 2365 +f 2274 2275 2367 2366 +f 2275 2276 2368 2367 +f 2276 2277 2369 2368 +f 2277 2278 2370 2369 +f 2278 2279 2371 2370 +f 2279 2280 2372 2371 +f 2280 2281 2373 2372 +f 2281 2282 2374 2373 +f 2282 2283 2375 2374 +f 2283 2284 2376 2375 +f 2284 2285 2377 2376 +f 2285 2286 2378 2377 +f 2286 2287 2379 2378 +f 2287 2288 2380 2379 +f 2288 2289 2381 2380 +f 2289 2290 2382 2381 +f 2290 2291 2383 2382 +f 2291 2292 2384 2383 +f 2292 2293 2385 2384 +f 2293 2294 2386 2385 +f 2294 2295 2387 2386 +f 2295 2296 2388 2387 +f 2296 2297 2389 2388 +f 2297 2298 2390 2389 +f 2298 2299 2391 2390 +f 2299 2300 2392 2391 +f 2300 2301 2393 2392 +f 2301 2302 2394 2393 +f 2302 2211 2303 2394 +f 2303 2304 2396 2395 +f 2304 2305 2397 2396 +f 2305 2306 2398 2397 +f 2306 2307 2399 2398 +f 2307 2308 2400 2399 +f 2308 2309 2401 2400 +f 2309 2310 2402 2401 +f 2310 2311 2403 2402 +f 2311 2312 2404 2403 +f 2312 2313 2405 2404 +f 2313 2314 2406 2405 +f 2314 2315 2407 2406 +f 2315 2316 2408 2407 +f 2316 2317 2409 2408 +f 2317 2318 2410 2409 +f 2318 2319 2411 2410 +f 2319 2320 2412 2411 +f 2320 2321 2413 2412 +f 2321 2322 2414 2413 +f 2322 2323 2415 2414 +f 2323 2324 2416 2415 +f 2324 2325 2417 2416 +f 2325 2326 2418 2417 +f 2326 2327 2419 2418 +f 2327 2328 2420 2419 +f 2328 2329 2421 2420 +f 2329 2330 2422 2421 +f 2330 2331 2423 2422 +f 2331 2332 2424 2423 +f 2332 2333 2425 2424 +f 2333 2334 2426 2425 +f 2334 2335 2427 2426 +f 2335 2336 2428 2427 +f 2336 2337 2429 2428 +f 2337 2338 2430 2429 +f 2338 2339 2431 2430 +f 2339 2340 2432 2431 +f 2340 2341 2433 2432 +f 2341 2342 2434 2433 +f 2342 2343 2435 2434 +f 2343 2344 2436 2435 +f 2344 2345 2437 2436 +f 2345 2346 2438 2437 +f 2346 2347 2439 2438 +f 2347 2348 2440 2439 +f 2348 2349 2441 2440 +f 2349 2350 2442 2441 +f 2350 2351 2443 2442 +f 2351 2352 2444 2443 +f 2352 2353 2445 2444 +f 2353 2354 2446 2445 +f 2354 2355 2447 2446 +f 2355 2356 2448 2447 +f 2356 2357 2449 2448 +f 2357 2358 2450 2449 +f 2358 2359 2451 2450 +f 2359 2360 2452 2451 +f 2360 2361 2453 2452 +f 2361 2362 2454 2453 +f 2362 2363 2455 2454 +f 2363 2364 2456 2455 +f 2364 2365 2457 2456 +f 2365 2366 2458 2457 +f 2366 2367 2459 2458 +f 2367 2368 2460 2459 +f 2368 2369 2461 2460 +f 2369 2370 2462 2461 +f 2370 2371 2463 2462 +f 2371 2372 2464 2463 +f 2372 2373 2465 2464 +f 2373 2374 2466 2465 +f 2374 2375 2467 2466 +f 2375 2376 2468 2467 +f 2376 2377 2469 2468 +f 2377 2378 2470 2469 +f 2378 2379 2471 2470 +f 2379 2380 2472 2471 +f 2380 2381 2473 2472 +f 2381 2382 2474 2473 +f 2382 2383 2475 2474 +f 2383 2384 2476 2475 +f 2384 2385 2477 2476 +f 2385 2386 2478 2477 +f 2386 2387 2479 2478 +f 2387 2388 2480 2479 +f 2388 2389 2481 2480 +f 2389 2390 2482 2481 +f 2390 2391 2483 2482 +f 2391 2392 2484 2483 +f 2392 2393 2485 2484 +f 2393 2394 2486 2485 +f 2394 2303 2395 2486 +f 2395 2396 2488 2487 +f 2396 2397 2489 2488 +f 2397 2398 2490 2489 +f 2398 2399 2491 2490 +f 2399 2400 2492 2491 +f 2400 2401 2493 2492 +f 2401 2402 2494 2493 +f 2402 2403 2495 2494 +f 2403 2404 2496 2495 +f 2404 2405 2497 2496 +f 2405 2406 2498 2497 +f 2406 2407 2499 2498 +f 2407 2408 2500 2499 +f 2408 2409 2501 2500 +f 2409 2410 2502 2501 +f 2410 2411 2503 2502 +f 2411 2412 2504 2503 +f 2412 2413 2505 2504 +f 2413 2414 2506 2505 +f 2414 2415 2507 2506 +f 2415 2416 2508 2507 +f 2416 2417 2509 2508 +f 2417 2418 2510 2509 +f 2418 2419 2511 2510 +f 2419 2420 2512 2511 +f 2420 2421 2513 2512 +f 2421 2422 2514 2513 +f 2422 2423 2515 2514 +f 2423 2424 2516 2515 +f 2424 2425 2517 2516 +f 2425 2426 2518 2517 +f 2426 2427 2519 2518 +f 2427 2428 2520 2519 +f 2428 2429 2521 2520 +f 2429 2430 2522 2521 +f 2430 2431 2523 2522 +f 2431 2432 2524 2523 +f 2432 2433 2525 2524 +f 2433 2434 2526 2525 +f 2434 2435 2527 2526 +f 2435 2436 2528 2527 +f 2436 2437 2529 2528 +f 2437 2438 2530 2529 +f 2438 2439 2531 2530 +f 2439 2440 2532 2531 +f 2440 2441 2533 2532 +f 2441 2442 2534 2533 +f 2442 2443 2535 2534 +f 2443 2444 2536 2535 +f 2444 2445 2537 2536 +f 2445 2446 2538 2537 +f 2446 2447 2539 2538 +f 2447 2448 2540 2539 +f 2448 2449 2541 2540 +f 2449 2450 2542 2541 +f 2450 2451 2543 2542 +f 2451 2452 2544 2543 +f 2452 2453 2545 2544 +f 2453 2454 2546 2545 +f 2454 2455 2547 2546 +f 2455 2456 2548 2547 +f 2456 2457 2549 2548 +f 2457 2458 2550 2549 +f 2458 2459 2551 2550 +f 2459 2460 2552 2551 +f 2460 2461 2553 2552 +f 2461 2462 2554 2553 +f 2462 2463 2555 2554 +f 2463 2464 2556 2555 +f 2464 2465 2557 2556 +f 2465 2466 2558 2557 +f 2466 2467 2559 2558 +f 2467 2468 2560 2559 +f 2468 2469 2561 2560 +f 2469 2470 2562 2561 +f 2470 2471 2563 2562 +f 2471 2472 2564 2563 +f 2472 2473 2565 2564 +f 2473 2474 2566 2565 +f 2474 2475 2567 2566 +f 2475 2476 2568 2567 +f 2476 2477 2569 2568 +f 2477 2478 2570 2569 +f 2478 2479 2571 2570 +f 2479 2480 2572 2571 +f 2480 2481 2573 2572 +f 2481 2482 2574 2573 +f 2482 2483 2575 2574 +f 2483 2484 2576 2575 +f 2484 2485 2577 2576 +f 2485 2486 2578 2577 +f 2486 2395 2487 2578 +f 2487 2488 2580 2579 +f 2488 2489 2581 2580 +f 2489 2490 2582 2581 +f 2490 2491 2583 2582 +f 2491 2492 2584 2583 +f 2492 2493 2585 2584 +f 2493 2494 2586 2585 +f 2494 2495 2587 2586 +f 2495 2496 2588 2587 +f 2496 2497 2589 2588 +f 2497 2498 2590 2589 +f 2498 2499 2591 2590 +f 2499 2500 2592 2591 +f 2500 2501 2593 2592 +f 2501 2502 2594 2593 +f 2502 2503 2595 2594 +f 2503 2504 2596 2595 +f 2504 2505 2597 2596 +f 2505 2506 2598 2597 +f 2506 2507 2599 2598 +f 2507 2508 2600 2599 +f 2508 2509 2601 2600 +f 2509 2510 2602 2601 +f 2510 2511 2603 2602 +f 2511 2512 2604 2603 +f 2512 2513 2605 2604 +f 2513 2514 2606 2605 +f 2514 2515 2607 2606 +f 2515 2516 2608 2607 +f 2516 2517 2609 2608 +f 2517 2518 2610 2609 +f 2518 2519 2611 2610 +f 2519 2520 2612 2611 +f 2520 2521 2613 2612 +f 2521 2522 2614 2613 +f 2522 2523 2615 2614 +f 2523 2524 2616 2615 +f 2524 2525 2617 2616 +f 2525 2526 2618 2617 +f 2526 2527 2619 2618 +f 2527 2528 2620 2619 +f 2528 2529 2621 2620 +f 2529 2530 2622 2621 +f 2530 2531 2623 2622 +f 2531 2532 2624 2623 +f 2532 2533 2625 2624 +f 2533 2534 2626 2625 +f 2534 2535 2627 2626 +f 2535 2536 2628 2627 +f 2536 2537 2629 2628 +f 2537 2538 2630 2629 +f 2538 2539 2631 2630 +f 2539 2540 2632 2631 +f 2540 2541 2633 2632 +f 2541 2542 2634 2633 +f 2542 2543 2635 2634 +f 2543 2544 2636 2635 +f 2544 2545 2637 2636 +f 2545 2546 2638 2637 +f 2546 2547 2639 2638 +f 2547 2548 2640 2639 +f 2548 2549 2641 2640 +f 2549 2550 2642 2641 +f 2550 2551 2643 2642 +f 2551 2552 2644 2643 +f 2552 2553 2645 2644 +f 2553 2554 2646 2645 +f 2554 2555 2647 2646 +f 2555 2556 2648 2647 +f 2556 2557 2649 2648 +f 2557 2558 2650 2649 +f 2558 2559 2651 2650 +f 2559 2560 2652 2651 +f 2560 2561 2653 2652 +f 2561 2562 2654 2653 +f 2562 2563 2655 2654 +f 2563 2564 2656 2655 +f 2564 2565 2657 2656 +f 2565 2566 2658 2657 +f 2566 2567 2659 2658 +f 2567 2568 2660 2659 +f 2568 2569 2661 2660 +f 2569 2570 2662 2661 +f 2570 2571 2663 2662 +f 2571 2572 2664 2663 +f 2572 2573 2665 2664 +f 2573 2574 2666 2665 +f 2574 2575 2667 2666 +f 2575 2576 2668 2667 +f 2576 2577 2669 2668 +f 2577 2578 2670 2669 +f 2578 2487 2579 2670 +f 2579 2580 2672 2671 +f 2580 2581 2673 2672 +f 2581 2582 2674 2673 +f 2582 2583 2675 2674 +f 2583 2584 2676 2675 +f 2584 2585 2677 2676 +f 2585 2586 2678 2677 +f 2586 2587 2679 2678 +f 2587 2588 2680 2679 +f 2588 2589 2681 2680 +f 2589 2590 2682 2681 +f 2590 2591 2683 2682 +f 2591 2592 2684 2683 +f 2592 2593 2685 2684 +f 2593 2594 2686 2685 +f 2594 2595 2687 2686 +f 2595 2596 2688 2687 +f 2596 2597 2689 2688 +f 2597 2598 2690 2689 +f 2598 2599 2691 2690 +f 2599 2600 2692 2691 +f 2600 2601 2693 2692 +f 2601 2602 2694 2693 +f 2602 2603 2695 2694 +f 2603 2604 2696 2695 +f 2604 2605 2697 2696 +f 2605 2606 2698 2697 +f 2606 2607 2699 2698 +f 2607 2608 2700 2699 +f 2608 2609 2701 2700 +f 2609 2610 2702 2701 +f 2610 2611 2703 2702 +f 2611 2612 2704 2703 +f 2612 2613 2705 2704 +f 2613 2614 2706 2705 +f 2614 2615 2707 2706 +f 2615 2616 2708 2707 +f 2616 2617 2709 2708 +f 2617 2618 2710 2709 +f 2618 2619 2711 2710 +f 2619 2620 2712 2711 +f 2620 2621 2713 2712 +f 2621 2622 2714 2713 +f 2622 2623 2715 2714 +f 2623 2624 2716 2715 +f 2624 2625 2717 2716 +f 2625 2626 2718 2717 +f 2626 2627 2719 2718 +f 2627 2628 2720 2719 +f 2628 2629 2721 2720 +f 2629 2630 2722 2721 +f 2630 2631 2723 2722 +f 2631 2632 2724 2723 +f 2632 2633 2725 2724 +f 2633 2634 2726 2725 +f 2634 2635 2727 2726 +f 2635 2636 2728 2727 +f 2636 2637 2729 2728 +f 2637 2638 2730 2729 +f 2638 2639 2731 2730 +f 2639 2640 2732 2731 +f 2640 2641 2733 2732 +f 2641 2642 2734 2733 +f 2642 2643 2735 2734 +f 2643 2644 2736 2735 +f 2644 2645 2737 2736 +f 2645 2646 2738 2737 +f 2646 2647 2739 2738 +f 2647 2648 2740 2739 +f 2648 2649 2741 2740 +f 2649 2650 2742 2741 +f 2650 2651 2743 2742 +f 2651 2652 2744 2743 +f 2652 2653 2745 2744 +f 2653 2654 2746 2745 +f 2654 2655 2747 2746 +f 2655 2656 2748 2747 +f 2656 2657 2749 2748 +f 2657 2658 2750 2749 +f 2658 2659 2751 2750 +f 2659 2660 2752 2751 +f 2660 2661 2753 2752 +f 2661 2662 2754 2753 +f 2662 2663 2755 2754 +f 2663 2664 2756 2755 +f 2664 2665 2757 2756 +f 2665 2666 2758 2757 +f 2666 2667 2759 2758 +f 2667 2668 2760 2759 +f 2668 2669 2761 2760 +f 2669 2670 2762 2761 +f 2670 2579 2671 2762 +f 2671 2672 2764 2763 +f 2672 2673 2765 2764 +f 2673 2674 2766 2765 +f 2674 2675 2767 2766 +f 2675 2676 2768 2767 +f 2676 2677 2769 2768 +f 2677 2678 2770 2769 +f 2678 2679 2771 2770 +f 2679 2680 2772 2771 +f 2680 2681 2773 2772 +f 2681 2682 2774 2773 +f 2682 2683 2775 2774 +f 2683 2684 2776 2775 +f 2684 2685 2777 2776 +f 2685 2686 2778 2777 +f 2686 2687 2779 2778 +f 2687 2688 2780 2779 +f 2688 2689 2781 2780 +f 2689 2690 2782 2781 +f 2690 2691 2783 2782 +f 2691 2692 2784 2783 +f 2692 2693 2785 2784 +f 2693 2694 2786 2785 +f 2694 2695 2787 2786 +f 2695 2696 2788 2787 +f 2696 2697 2789 2788 +f 2697 2698 2790 2789 +f 2698 2699 2791 2790 +f 2699 2700 2792 2791 +f 2700 2701 2793 2792 +f 2701 2702 2794 2793 +f 2702 2703 2795 2794 +f 2703 2704 2796 2795 +f 2704 2705 2797 2796 +f 2705 2706 2798 2797 +f 2706 2707 2799 2798 +f 2707 2708 2800 2799 +f 2708 2709 2801 2800 +f 2709 2710 2802 2801 +f 2710 2711 2803 2802 +f 2711 2712 2804 2803 +f 2712 2713 2805 2804 +f 2713 2714 2806 2805 +f 2714 2715 2807 2806 +f 2715 2716 2808 2807 +f 2716 2717 2809 2808 +f 2717 2718 2810 2809 +f 2718 2719 2811 2810 +f 2719 2720 2812 2811 +f 2720 2721 2813 2812 +f 2721 2722 2814 2813 +f 2722 2723 2815 2814 +f 2723 2724 2816 2815 +f 2724 2725 2817 2816 +f 2725 2726 2818 2817 +f 2726 2727 2819 2818 +f 2727 2728 2820 2819 +f 2728 2729 2821 2820 +f 2729 2730 2822 2821 +f 2730 2731 2823 2822 +f 2731 2732 2824 2823 +f 2732 2733 2825 2824 +f 2733 2734 2826 2825 +f 2734 2735 2827 2826 +f 2735 2736 2828 2827 +f 2736 2737 2829 2828 +f 2737 2738 2830 2829 +f 2738 2739 2831 2830 +f 2739 2740 2832 2831 +f 2740 2741 2833 2832 +f 2741 2742 2834 2833 +f 2742 2743 2835 2834 +f 2743 2744 2836 2835 +f 2744 2745 2837 2836 +f 2745 2746 2838 2837 +f 2746 2747 2839 2838 +f 2747 2748 2840 2839 +f 2748 2749 2841 2840 +f 2749 2750 2842 2841 +f 2750 2751 2843 2842 +f 2751 2752 2844 2843 +f 2752 2753 2845 2844 +f 2753 2754 2846 2845 +f 2754 2755 2847 2846 +f 2755 2756 2848 2847 +f 2756 2757 2849 2848 +f 2757 2758 2850 2849 +f 2758 2759 2851 2850 +f 2759 2760 2852 2851 +f 2760 2761 2853 2852 +f 2761 2762 2854 2853 +f 2762 2671 2763 2854 +f 2763 2764 2856 2855 +f 2764 2765 2857 2856 +f 2765 2766 2858 2857 +f 2766 2767 2859 2858 +f 2767 2768 2860 2859 +f 2768 2769 2861 2860 +f 2769 2770 2862 2861 +f 2770 2771 2863 2862 +f 2771 2772 2864 2863 +f 2772 2773 2865 2864 +f 2773 2774 2866 2865 +f 2774 2775 2867 2866 +f 2775 2776 2868 2867 +f 2776 2777 2869 2868 +f 2777 2778 2870 2869 +f 2778 2779 2871 2870 +f 2779 2780 2872 2871 +f 2780 2781 2873 2872 +f 2781 2782 2874 2873 +f 2782 2783 2875 2874 +f 2783 2784 2876 2875 +f 2784 2785 2877 2876 +f 2785 2786 2878 2877 +f 2786 2787 2879 2878 +f 2787 2788 2880 2879 +f 2788 2789 2881 2880 +f 2789 2790 2882 2881 +f 2790 2791 2883 2882 +f 2791 2792 2884 2883 +f 2792 2793 2885 2884 +f 2793 2794 2886 2885 +f 2794 2795 2887 2886 +f 2795 2796 2888 2887 +f 2796 2797 2889 2888 +f 2797 2798 2890 2889 +f 2798 2799 2891 2890 +f 2799 2800 2892 2891 +f 2800 2801 2893 2892 +f 2801 2802 2894 2893 +f 2802 2803 2895 2894 +f 2803 2804 2896 2895 +f 2804 2805 2897 2896 +f 2805 2806 2898 2897 +f 2806 2807 2899 2898 +f 2807 2808 2900 2899 +f 2808 2809 2901 2900 +f 2809 2810 2902 2901 +f 2810 2811 2903 2902 +f 2811 2812 2904 2903 +f 2812 2813 2905 2904 +f 2813 2814 2906 2905 +f 2814 2815 2907 2906 +f 2815 2816 2908 2907 +f 2816 2817 2909 2908 +f 2817 2818 2910 2909 +f 2818 2819 2911 2910 +f 2819 2820 2912 2911 +f 2820 2821 2913 2912 +f 2821 2822 2914 2913 +f 2822 2823 2915 2914 +f 2823 2824 2916 2915 +f 2824 2825 2917 2916 +f 2825 2826 2918 2917 +f 2826 2827 2919 2918 +f 2827 2828 2920 2919 +f 2828 2829 2921 2920 +f 2829 2830 2922 2921 +f 2830 2831 2923 2922 +f 2831 2832 2924 2923 +f 2832 2833 2925 2924 +f 2833 2834 2926 2925 +f 2834 2835 2927 2926 +f 2835 2836 2928 2927 +f 2836 2837 2929 2928 +f 2837 2838 2930 2929 +f 2838 2839 2931 2930 +f 2839 2840 2932 2931 +f 2840 2841 2933 2932 +f 2841 2842 2934 2933 +f 2842 2843 2935 2934 +f 2843 2844 2936 2935 +f 2844 2845 2937 2936 +f 2845 2846 2938 2937 +f 2846 2847 2939 2938 +f 2847 2848 2940 2939 +f 2848 2849 2941 2940 +f 2849 2850 2942 2941 +f 2850 2851 2943 2942 +f 2851 2852 2944 2943 +f 2852 2853 2945 2944 +f 2853 2854 2946 2945 +f 2854 2763 2855 2946 +f 2855 2856 2948 2947 +f 2856 2857 2949 2948 +f 2857 2858 2950 2949 +f 2858 2859 2951 2950 +f 2859 2860 2952 2951 +f 2860 2861 2953 2952 +f 2861 2862 2954 2953 +f 2862 2863 2955 2954 +f 2863 2864 2956 2955 +f 2864 2865 2957 2956 +f 2865 2866 2958 2957 +f 2866 2867 2959 2958 +f 2867 2868 2960 2959 +f 2868 2869 2961 2960 +f 2869 2870 2962 2961 +f 2870 2871 2963 2962 +f 2871 2872 2964 2963 +f 2872 2873 2965 2964 +f 2873 2874 2966 2965 +f 2874 2875 2967 2966 +f 2875 2876 2968 2967 +f 2876 2877 2969 2968 +f 2877 2878 2970 2969 +f 2878 2879 2971 2970 +f 2879 2880 2972 2971 +f 2880 2881 2973 2972 +f 2881 2882 2974 2973 +f 2882 2883 2975 2974 +f 2883 2884 2976 2975 +f 2884 2885 2977 2976 +f 2885 2886 2978 2977 +f 2886 2887 2979 2978 +f 2887 2888 2980 2979 +f 2888 2889 2981 2980 +f 2889 2890 2982 2981 +f 2890 2891 2983 2982 +f 2891 2892 2984 2983 +f 2892 2893 2985 2984 +f 2893 2894 2986 2985 +f 2894 2895 2987 2986 +f 2895 2896 2988 2987 +f 2896 2897 2989 2988 +f 2897 2898 2990 2989 +f 2898 2899 2991 2990 +f 2899 2900 2992 2991 +f 2900 2901 2993 2992 +f 2901 2902 2994 2993 +f 2902 2903 2995 2994 +f 2903 2904 2996 2995 +f 2904 2905 2997 2996 +f 2905 2906 2998 2997 +f 2906 2907 2999 2998 +f 2907 2908 3000 2999 +f 2908 2909 3001 3000 +f 2909 2910 3002 3001 +f 2910 2911 3003 3002 +f 2911 2912 3004 3003 +f 2912 2913 3005 3004 +f 2913 2914 3006 3005 +f 2914 2915 3007 3006 +f 2915 2916 3008 3007 +f 2916 2917 3009 3008 +f 2917 2918 3010 3009 +f 2918 2919 3011 3010 +f 2919 2920 3012 3011 +f 2920 2921 3013 3012 +f 2921 2922 3014 3013 +f 2922 2923 3015 3014 +f 2923 2924 3016 3015 +f 2924 2925 3017 3016 +f 2925 2926 3018 3017 +f 2926 2927 3019 3018 +f 2927 2928 3020 3019 +f 2928 2929 3021 3020 +f 2929 2930 3022 3021 +f 2930 2931 3023 3022 +f 2931 2932 3024 3023 +f 2932 2933 3025 3024 +f 2933 2934 3026 3025 +f 2934 2935 3027 3026 +f 2935 2936 3028 3027 +f 2936 2937 3029 3028 +f 2937 2938 3030 3029 +f 2938 2939 3031 3030 +f 2939 2940 3032 3031 +f 2940 2941 3033 3032 +f 2941 2942 3034 3033 +f 2942 2943 3035 3034 +f 2943 2944 3036 3035 +f 2944 2945 3037 3036 +f 2945 2946 3038 3037 +f 2946 2855 2947 3038 +f 2947 2948 3040 3039 +f 2948 2949 3041 3040 +f 2949 2950 3042 3041 +f 2950 2951 3043 3042 +f 2951 2952 3044 3043 +f 2952 2953 3045 3044 +f 2953 2954 3046 3045 +f 2954 2955 3047 3046 +f 2955 2956 3048 3047 +f 2956 2957 3049 3048 +f 2957 2958 3050 3049 +f 2958 2959 3051 3050 +f 2959 2960 3052 3051 +f 2960 2961 3053 3052 +f 2961 2962 3054 3053 +f 2962 2963 3055 3054 +f 2963 2964 3056 3055 +f 2964 2965 3057 3056 +f 2965 2966 3058 3057 +f 2966 2967 3059 3058 +f 2967 2968 3060 3059 +f 2968 2969 3061 3060 +f 2969 2970 3062 3061 +f 2970 2971 3063 3062 +f 2971 2972 3064 3063 +f 2972 2973 3065 3064 +f 2973 2974 3066 3065 +f 2974 2975 3067 3066 +f 2975 2976 3068 3067 +f 2976 2977 3069 3068 +f 2977 2978 3070 3069 +f 2978 2979 3071 3070 +f 2979 2980 3072 3071 +f 2980 2981 3073 3072 +f 2981 2982 3074 3073 +f 2982 2983 3075 3074 +f 2983 2984 3076 3075 +f 2984 2985 3077 3076 +f 2985 2986 3078 3077 +f 2986 2987 3079 3078 +f 2987 2988 3080 3079 +f 2988 2989 3081 3080 +f 2989 2990 3082 3081 +f 2990 2991 3083 3082 +f 2991 2992 3084 3083 +f 2992 2993 3085 3084 +f 2993 2994 3086 3085 +f 2994 2995 3087 3086 +f 2995 2996 3088 3087 +f 2996 2997 3089 3088 +f 2997 2998 3090 3089 +f 2998 2999 3091 3090 +f 2999 3000 3092 3091 +f 3000 3001 3093 3092 +f 3001 3002 3094 3093 +f 3002 3003 3095 3094 +f 3003 3004 3096 3095 +f 3004 3005 3097 3096 +f 3005 3006 3098 3097 +f 3006 3007 3099 3098 +f 3007 3008 3100 3099 +f 3008 3009 3101 3100 +f 3009 3010 3102 3101 +f 3010 3011 3103 3102 +f 3011 3012 3104 3103 +f 3012 3013 3105 3104 +f 3013 3014 3106 3105 +f 3014 3015 3107 3106 +f 3015 3016 3108 3107 +f 3016 3017 3109 3108 +f 3017 3018 3110 3109 +f 3018 3019 3111 3110 +f 3019 3020 3112 3111 +f 3020 3021 3113 3112 +f 3021 3022 3114 3113 +f 3022 3023 3115 3114 +f 3023 3024 3116 3115 +f 3024 3025 3117 3116 +f 3025 3026 3118 3117 +f 3026 3027 3119 3118 +f 3027 3028 3120 3119 +f 3028 3029 3121 3120 +f 3029 3030 3122 3121 +f 3030 3031 3123 3122 +f 3031 3032 3124 3123 +f 3032 3033 3125 3124 +f 3033 3034 3126 3125 +f 3034 3035 3127 3126 +f 3035 3036 3128 3127 +f 3036 3037 3129 3128 +f 3037 3038 3130 3129 +f 3038 2947 3039 3130 +f 3039 3040 3132 3131 +f 3040 3041 3133 3132 +f 3041 3042 3134 3133 +f 3042 3043 3135 3134 +f 3043 3044 3136 3135 +f 3044 3045 3137 3136 +f 3045 3046 3138 3137 +f 3046 3047 3139 3138 +f 3047 3048 3140 3139 +f 3048 3049 3141 3140 +f 3049 3050 3142 3141 +f 3050 3051 3143 3142 +f 3051 3052 3144 3143 +f 3052 3053 3145 3144 +f 3053 3054 3146 3145 +f 3054 3055 3147 3146 +f 3055 3056 3148 3147 +f 3056 3057 3149 3148 +f 3057 3058 3150 3149 +f 3058 3059 3151 3150 +f 3059 3060 3152 3151 +f 3060 3061 3153 3152 +f 3061 3062 3154 3153 +f 3062 3063 3155 3154 +f 3063 3064 3156 3155 +f 3064 3065 3157 3156 +f 3065 3066 3158 3157 +f 3066 3067 3159 3158 +f 3067 3068 3160 3159 +f 3068 3069 3161 3160 +f 3069 3070 3162 3161 +f 3070 3071 3163 3162 +f 3071 3072 3164 3163 +f 3072 3073 3165 3164 +f 3073 3074 3166 3165 +f 3074 3075 3167 3166 +f 3075 3076 3168 3167 +f 3076 3077 3169 3168 +f 3077 3078 3170 3169 +f 3078 3079 3171 3170 +f 3079 3080 3172 3171 +f 3080 3081 3173 3172 +f 3081 3082 3174 3173 +f 3082 3083 3175 3174 +f 3083 3084 3176 3175 +f 3084 3085 3177 3176 +f 3085 3086 3178 3177 +f 3086 3087 3179 3178 +f 3087 3088 3180 3179 +f 3088 3089 3181 3180 +f 3089 3090 3182 3181 +f 3090 3091 3183 3182 +f 3091 3092 3184 3183 +f 3092 3093 3185 3184 +f 3093 3094 3186 3185 +f 3094 3095 3187 3186 +f 3095 3096 3188 3187 +f 3096 3097 3189 3188 +f 3097 3098 3190 3189 +f 3098 3099 3191 3190 +f 3099 3100 3192 3191 +f 3100 3101 3193 3192 +f 3101 3102 3194 3193 +f 3102 3103 3195 3194 +f 3103 3104 3196 3195 +f 3104 3105 3197 3196 +f 3105 3106 3198 3197 +f 3106 3107 3199 3198 +f 3107 3108 3200 3199 +f 3108 3109 3201 3200 +f 3109 3110 3202 3201 +f 3110 3111 3203 3202 +f 3111 3112 3204 3203 +f 3112 3113 3205 3204 +f 3113 3114 3206 3205 +f 3114 3115 3207 3206 +f 3115 3116 3208 3207 +f 3116 3117 3209 3208 +f 3117 3118 3210 3209 +f 3118 3119 3211 3210 +f 3119 3120 3212 3211 +f 3120 3121 3213 3212 +f 3121 3122 3214 3213 +f 3122 3123 3215 3214 +f 3123 3124 3216 3215 +f 3124 3125 3217 3216 +f 3125 3126 3218 3217 +f 3126 3127 3219 3218 +f 3127 3128 3220 3219 +f 3128 3129 3221 3220 +f 3129 3130 3222 3221 +f 3130 3039 3131 3222 +f 3131 3132 3224 3223 +f 3132 3133 3225 3224 +f 3133 3134 3226 3225 +f 3134 3135 3227 3226 +f 3135 3136 3228 3227 +f 3136 3137 3229 3228 +f 3137 3138 3230 3229 +f 3138 3139 3231 3230 +f 3139 3140 3232 3231 +f 3140 3141 3233 3232 +f 3141 3142 3234 3233 +f 3142 3143 3235 3234 +f 3143 3144 3236 3235 +f 3144 3145 3237 3236 +f 3145 3146 3238 3237 +f 3146 3147 3239 3238 +f 3147 3148 3240 3239 +f 3148 3149 3241 3240 +f 3149 3150 3242 3241 +f 3150 3151 3243 3242 +f 3151 3152 3244 3243 +f 3152 3153 3245 3244 +f 3153 3154 3246 3245 +f 3154 3155 3247 3246 +f 3155 3156 3248 3247 +f 3156 3157 3249 3248 +f 3157 3158 3250 3249 +f 3158 3159 3251 3250 +f 3159 3160 3252 3251 +f 3160 3161 3253 3252 +f 3161 3162 3254 3253 +f 3162 3163 3255 3254 +f 3163 3164 3256 3255 +f 3164 3165 3257 3256 +f 3165 3166 3258 3257 +f 3166 3167 3259 3258 +f 3167 3168 3260 3259 +f 3168 3169 3261 3260 +f 3169 3170 3262 3261 +f 3170 3171 3263 3262 +f 3171 3172 3264 3263 +f 3172 3173 3265 3264 +f 3173 3174 3266 3265 +f 3174 3175 3267 3266 +f 3175 3176 3268 3267 +f 3176 3177 3269 3268 +f 3177 3178 3270 3269 +f 3178 3179 3271 3270 +f 3179 3180 3272 3271 +f 3180 3181 3273 3272 +f 3181 3182 3274 3273 +f 3182 3183 3275 3274 +f 3183 3184 3276 3275 +f 3184 3185 3277 3276 +f 3185 3186 3278 3277 +f 3186 3187 3279 3278 +f 3187 3188 3280 3279 +f 3188 3189 3281 3280 +f 3189 3190 3282 3281 +f 3190 3191 3283 3282 +f 3191 3192 3284 3283 +f 3192 3193 3285 3284 +f 3193 3194 3286 3285 +f 3194 3195 3287 3286 +f 3195 3196 3288 3287 +f 3196 3197 3289 3288 +f 3197 3198 3290 3289 +f 3198 3199 3291 3290 +f 3199 3200 3292 3291 +f 3200 3201 3293 3292 +f 3201 3202 3294 3293 +f 3202 3203 3295 3294 +f 3203 3204 3296 3295 +f 3204 3205 3297 3296 +f 3205 3206 3298 3297 +f 3206 3207 3299 3298 +f 3207 3208 3300 3299 +f 3208 3209 3301 3300 +f 3209 3210 3302 3301 +f 3210 3211 3303 3302 +f 3211 3212 3304 3303 +f 3212 3213 3305 3304 +f 3213 3214 3306 3305 +f 3214 3215 3307 3306 +f 3215 3216 3308 3307 +f 3216 3217 3309 3308 +f 3217 3218 3310 3309 +f 3218 3219 3311 3310 +f 3219 3220 3312 3311 +f 3220 3221 3313 3312 +f 3221 3222 3314 3313 +f 3222 3131 3223 3314 +f 3223 3224 3316 3315 +f 3224 3225 3317 3316 +f 3225 3226 3318 3317 +f 3226 3227 3319 3318 +f 3227 3228 3320 3319 +f 3228 3229 3321 3320 +f 3229 3230 3322 3321 +f 3230 3231 3323 3322 +f 3231 3232 3324 3323 +f 3232 3233 3325 3324 +f 3233 3234 3326 3325 +f 3234 3235 3327 3326 +f 3235 3236 3328 3327 +f 3236 3237 3329 3328 +f 3237 3238 3330 3329 +f 3238 3239 3331 3330 +f 3239 3240 3332 3331 +f 3240 3241 3333 3332 +f 3241 3242 3334 3333 +f 3242 3243 3335 3334 +f 3243 3244 3336 3335 +f 3244 3245 3337 3336 +f 3245 3246 3338 3337 +f 3246 3247 3339 3338 +f 3247 3248 3340 3339 +f 3248 3249 3341 3340 +f 3249 3250 3342 3341 +f 3250 3251 3343 3342 +f 3251 3252 3344 3343 +f 3252 3253 3345 3344 +f 3253 3254 3346 3345 +f 3254 3255 3347 3346 +f 3255 3256 3348 3347 +f 3256 3257 3349 3348 +f 3257 3258 3350 3349 +f 3258 3259 3351 3350 +f 3259 3260 3352 3351 +f 3260 3261 3353 3352 +f 3261 3262 3354 3353 +f 3262 3263 3355 3354 +f 3263 3264 3356 3355 +f 3264 3265 3357 3356 +f 3265 3266 3358 3357 +f 3266 3267 3359 3358 +f 3267 3268 3360 3359 +f 3268 3269 3361 3360 +f 3269 3270 3362 3361 +f 3270 3271 3363 3362 +f 3271 3272 3364 3363 +f 3272 3273 3365 3364 +f 3273 3274 3366 3365 +f 3274 3275 3367 3366 +f 3275 3276 3368 3367 +f 3276 3277 3369 3368 +f 3277 3278 3370 3369 +f 3278 3279 3371 3370 +f 3279 3280 3372 3371 +f 3280 3281 3373 3372 +f 3281 3282 3374 3373 +f 3282 3283 3375 3374 +f 3283 3284 3376 3375 +f 3284 3285 3377 3376 +f 3285 3286 3378 3377 +f 3286 3287 3379 3378 +f 3287 3288 3380 3379 +f 3288 3289 3381 3380 +f 3289 3290 3382 3381 +f 3290 3291 3383 3382 +f 3291 3292 3384 3383 +f 3292 3293 3385 3384 +f 3293 3294 3386 3385 +f 3294 3295 3387 3386 +f 3295 3296 3388 3387 +f 3296 3297 3389 3388 +f 3297 3298 3390 3389 +f 3298 3299 3391 3390 +f 3299 3300 3392 3391 +f 3300 3301 3393 3392 +f 3301 3302 3394 3393 +f 3302 3303 3395 3394 +f 3303 3304 3396 3395 +f 3304 3305 3397 3396 +f 3305 3306 3398 3397 +f 3306 3307 3399 3398 +f 3307 3308 3400 3399 +f 3308 3309 3401 3400 +f 3309 3310 3402 3401 +f 3310 3311 3403 3402 +f 3311 3312 3404 3403 +f 3312 3313 3405 3404 +f 3313 3314 3406 3405 +f 3314 3223 3315 3406 +f 3315 3316 3408 3407 +f 3316 3317 3409 3408 +f 3317 3318 3410 3409 +f 3318 3319 3411 3410 +f 3319 3320 3412 3411 +f 3320 3321 3413 3412 +f 3321 3322 3414 3413 +f 3322 3323 3415 3414 +f 3323 3324 3416 3415 +f 3324 3325 3417 3416 +f 3325 3326 3418 3417 +f 3326 3327 3419 3418 +f 3327 3328 3420 3419 +f 3328 3329 3421 3420 +f 3329 3330 3422 3421 +f 3330 3331 3423 3422 +f 3331 3332 3424 3423 +f 3332 3333 3425 3424 +f 3333 3334 3426 3425 +f 3334 3335 3427 3426 +f 3335 3336 3428 3427 +f 3336 3337 3429 3428 +f 3337 3338 3430 3429 +f 3338 3339 3431 3430 +f 3339 3340 3432 3431 +f 3340 3341 3433 3432 +f 3341 3342 3434 3433 +f 3342 3343 3435 3434 +f 3343 3344 3436 3435 +f 3344 3345 3437 3436 +f 3345 3346 3438 3437 +f 3346 3347 3439 3438 +f 3347 3348 3440 3439 +f 3348 3349 3441 3440 +f 3349 3350 3442 3441 +f 3350 3351 3443 3442 +f 3351 3352 3444 3443 +f 3352 3353 3445 3444 +f 3353 3354 3446 3445 +f 3354 3355 3447 3446 +f 3355 3356 3448 3447 +f 3356 3357 3449 3448 +f 3357 3358 3450 3449 +f 3358 3359 3451 3450 +f 3359 3360 3452 3451 +f 3360 3361 3453 3452 +f 3361 3362 3454 3453 +f 3362 3363 3455 3454 +f 3363 3364 3456 3455 +f 3364 3365 3457 3456 +f 3365 3366 3458 3457 +f 3366 3367 3459 3458 +f 3367 3368 3460 3459 +f 3368 3369 3461 3460 +f 3369 3370 3462 3461 +f 3370 3371 3463 3462 +f 3371 3372 3464 3463 +f 3372 3373 3465 3464 +f 3373 3374 3466 3465 +f 3374 3375 3467 3466 +f 3375 3376 3468 3467 +f 3376 3377 3469 3468 +f 3377 3378 3470 3469 +f 3378 3379 3471 3470 +f 3379 3380 3472 3471 +f 3380 3381 3473 3472 +f 3381 3382 3474 3473 +f 3382 3383 3475 3474 +f 3383 3384 3476 3475 +f 3384 3385 3477 3476 +f 3385 3386 3478 3477 +f 3386 3387 3479 3478 +f 3387 3388 3480 3479 +f 3388 3389 3481 3480 +f 3389 3390 3482 3481 +f 3390 3391 3483 3482 +f 3391 3392 3484 3483 +f 3392 3393 3485 3484 +f 3393 3394 3486 3485 +f 3394 3395 3487 3486 +f 3395 3396 3488 3487 +f 3396 3397 3489 3488 +f 3397 3398 3490 3489 +f 3398 3399 3491 3490 +f 3399 3400 3492 3491 +f 3400 3401 3493 3492 +f 3401 3402 3494 3493 +f 3402 3403 3495 3494 +f 3403 3404 3496 3495 +f 3404 3405 3497 3496 +f 3405 3406 3498 3497 +f 3406 3315 3407 3498 +f 3407 3408 3500 3499 +f 3408 3409 3501 3500 +f 3409 3410 3502 3501 +f 3410 3411 3503 3502 +f 3411 3412 3504 3503 +f 3412 3413 3505 3504 +f 3413 3414 3506 3505 +f 3414 3415 3507 3506 +f 3415 3416 3508 3507 +f 3416 3417 3509 3508 +f 3417 3418 3510 3509 +f 3418 3419 3511 3510 +f 3419 3420 3512 3511 +f 3420 3421 3513 3512 +f 3421 3422 3514 3513 +f 3422 3423 3515 3514 +f 3423 3424 3516 3515 +f 3424 3425 3517 3516 +f 3425 3426 3518 3517 +f 3426 3427 3519 3518 +f 3427 3428 3520 3519 +f 3428 3429 3521 3520 +f 3429 3430 3522 3521 +f 3430 3431 3523 3522 +f 3431 3432 3524 3523 +f 3432 3433 3525 3524 +f 3433 3434 3526 3525 +f 3434 3435 3527 3526 +f 3435 3436 3528 3527 +f 3436 3437 3529 3528 +f 3437 3438 3530 3529 +f 3438 3439 3531 3530 +f 3439 3440 3532 3531 +f 3440 3441 3533 3532 +f 3441 3442 3534 3533 +f 3442 3443 3535 3534 +f 3443 3444 3536 3535 +f 3444 3445 3537 3536 +f 3445 3446 3538 3537 +f 3446 3447 3539 3538 +f 3447 3448 3540 3539 +f 3448 3449 3541 3540 +f 3449 3450 3542 3541 +f 3450 3451 3543 3542 +f 3451 3452 3544 3543 +f 3452 3453 3545 3544 +f 3453 3454 3546 3545 +f 3454 3455 3547 3546 +f 3455 3456 3548 3547 +f 3456 3457 3549 3548 +f 3457 3458 3550 3549 +f 3458 3459 3551 3550 +f 3459 3460 3552 3551 +f 3460 3461 3553 3552 +f 3461 3462 3554 3553 +f 3462 3463 3555 3554 +f 3463 3464 3556 3555 +f 3464 3465 3557 3556 +f 3465 3466 3558 3557 +f 3466 3467 3559 3558 +f 3467 3468 3560 3559 +f 3468 3469 3561 3560 +f 3469 3470 3562 3561 +f 3470 3471 3563 3562 +f 3471 3472 3564 3563 +f 3472 3473 3565 3564 +f 3473 3474 3566 3565 +f 3474 3475 3567 3566 +f 3475 3476 3568 3567 +f 3476 3477 3569 3568 +f 3477 3478 3570 3569 +f 3478 3479 3571 3570 +f 3479 3480 3572 3571 +f 3480 3481 3573 3572 +f 3481 3482 3574 3573 +f 3482 3483 3575 3574 +f 3483 3484 3576 3575 +f 3484 3485 3577 3576 +f 3485 3486 3578 3577 +f 3486 3487 3579 3578 +f 3487 3488 3580 3579 +f 3488 3489 3581 3580 +f 3489 3490 3582 3581 +f 3490 3491 3583 3582 +f 3491 3492 3584 3583 +f 3492 3493 3585 3584 +f 3493 3494 3586 3585 +f 3494 3495 3587 3586 +f 3495 3496 3588 3587 +f 3496 3497 3589 3588 +f 3497 3498 3590 3589 +f 3498 3407 3499 3590 +f 3499 3500 3592 3591 +f 3500 3501 3593 3592 +f 3501 3502 3594 3593 +f 3502 3503 3595 3594 +f 3503 3504 3596 3595 +f 3504 3505 3597 3596 +f 3505 3506 3598 3597 +f 3506 3507 3599 3598 +f 3507 3508 3600 3599 +f 3508 3509 3601 3600 +f 3509 3510 3602 3601 +f 3510 3511 3603 3602 +f 3511 3512 3604 3603 +f 3512 3513 3605 3604 +f 3513 3514 3606 3605 +f 3514 3515 3607 3606 +f 3515 3516 3608 3607 +f 3516 3517 3609 3608 +f 3517 3518 3610 3609 +f 3518 3519 3611 3610 +f 3519 3520 3612 3611 +f 3520 3521 3613 3612 +f 3521 3522 3614 3613 +f 3522 3523 3615 3614 +f 3523 3524 3616 3615 +f 3524 3525 3617 3616 +f 3525 3526 3618 3617 +f 3526 3527 3619 3618 +f 3527 3528 3620 3619 +f 3528 3529 3621 3620 +f 3529 3530 3622 3621 +f 3530 3531 3623 3622 +f 3531 3532 3624 3623 +f 3532 3533 3625 3624 +f 3533 3534 3626 3625 +f 3534 3535 3627 3626 +f 3535 3536 3628 3627 +f 3536 3537 3629 3628 +f 3537 3538 3630 3629 +f 3538 3539 3631 3630 +f 3539 3540 3632 3631 +f 3540 3541 3633 3632 +f 3541 3542 3634 3633 +f 3542 3543 3635 3634 +f 3543 3544 3636 3635 +f 3544 3545 3637 3636 +f 3545 3546 3638 3637 +f 3546 3547 3639 3638 +f 3547 3548 3640 3639 +f 3548 3549 3641 3640 +f 3549 3550 3642 3641 +f 3550 3551 3643 3642 +f 3551 3552 3644 3643 +f 3552 3553 3645 3644 +f 3553 3554 3646 3645 +f 3554 3555 3647 3646 +f 3555 3556 3648 3647 +f 3556 3557 3649 3648 +f 3557 3558 3650 3649 +f 3558 3559 3651 3650 +f 3559 3560 3652 3651 +f 3560 3561 3653 3652 +f 3561 3562 3654 3653 +f 3562 3563 3655 3654 +f 3563 3564 3656 3655 +f 3564 3565 3657 3656 +f 3565 3566 3658 3657 +f 3566 3567 3659 3658 +f 3567 3568 3660 3659 +f 3568 3569 3661 3660 +f 3569 3570 3662 3661 +f 3570 3571 3663 3662 +f 3571 3572 3664 3663 +f 3572 3573 3665 3664 +f 3573 3574 3666 3665 +f 3574 3575 3667 3666 +f 3575 3576 3668 3667 +f 3576 3577 3669 3668 +f 3577 3578 3670 3669 +f 3578 3579 3671 3670 +f 3579 3580 3672 3671 +f 3580 3581 3673 3672 +f 3581 3582 3674 3673 +f 3582 3583 3675 3674 +f 3583 3584 3676 3675 +f 3584 3585 3677 3676 +f 3585 3586 3678 3677 +f 3586 3587 3679 3678 +f 3587 3588 3680 3679 +f 3588 3589 3681 3680 +f 3589 3590 3682 3681 +f 3590 3499 3591 3682 +f 3591 3592 3684 3683 +f 3592 3593 3685 3684 +f 3593 3594 3686 3685 +f 3594 3595 3687 3686 +f 3595 3596 3688 3687 +f 3596 3597 3689 3688 +f 3597 3598 3690 3689 +f 3598 3599 3691 3690 +f 3599 3600 3692 3691 +f 3600 3601 3693 3692 +f 3601 3602 3694 3693 +f 3602 3603 3695 3694 +f 3603 3604 3696 3695 +f 3604 3605 3697 3696 +f 3605 3606 3698 3697 +f 3606 3607 3699 3698 +f 3607 3608 3700 3699 +f 3608 3609 3701 3700 +f 3609 3610 3702 3701 +f 3610 3611 3703 3702 +f 3611 3612 3704 3703 +f 3612 3613 3705 3704 +f 3613 3614 3706 3705 +f 3614 3615 3707 3706 +f 3615 3616 3708 3707 +f 3616 3617 3709 3708 +f 3617 3618 3710 3709 +f 3618 3619 3711 3710 +f 3619 3620 3712 3711 +f 3620 3621 3713 3712 +f 3621 3622 3714 3713 +f 3622 3623 3715 3714 +f 3623 3624 3716 3715 +f 3624 3625 3717 3716 +f 3625 3626 3718 3717 +f 3626 3627 3719 3718 +f 3627 3628 3720 3719 +f 3628 3629 3721 3720 +f 3629 3630 3722 3721 +f 3630 3631 3723 3722 +f 3631 3632 3724 3723 +f 3632 3633 3725 3724 +f 3633 3634 3726 3725 +f 3634 3635 3727 3726 +f 3635 3636 3728 3727 +f 3636 3637 3729 3728 +f 3637 3638 3730 3729 +f 3638 3639 3731 3730 +f 3639 3640 3732 3731 +f 3640 3641 3733 3732 +f 3641 3642 3734 3733 +f 3642 3643 3735 3734 +f 3643 3644 3736 3735 +f 3644 3645 3737 3736 +f 3645 3646 3738 3737 +f 3646 3647 3739 3738 +f 3647 3648 3740 3739 +f 3648 3649 3741 3740 +f 3649 3650 3742 3741 +f 3650 3651 3743 3742 +f 3651 3652 3744 3743 +f 3652 3653 3745 3744 +f 3653 3654 3746 3745 +f 3654 3655 3747 3746 +f 3655 3656 3748 3747 +f 3656 3657 3749 3748 +f 3657 3658 3750 3749 +f 3658 3659 3751 3750 +f 3659 3660 3752 3751 +f 3660 3661 3753 3752 +f 3661 3662 3754 3753 +f 3662 3663 3755 3754 +f 3663 3664 3756 3755 +f 3664 3665 3757 3756 +f 3665 3666 3758 3757 +f 3666 3667 3759 3758 +f 3667 3668 3760 3759 +f 3668 3669 3761 3760 +f 3669 3670 3762 3761 +f 3670 3671 3763 3762 +f 3671 3672 3764 3763 +f 3672 3673 3765 3764 +f 3673 3674 3766 3765 +f 3674 3675 3767 3766 +f 3675 3676 3768 3767 +f 3676 3677 3769 3768 +f 3677 3678 3770 3769 +f 3678 3679 3771 3770 +f 3679 3680 3772 3771 +f 3680 3681 3773 3772 +f 3681 3682 3774 3773 +f 3682 3591 3683 3774 +f 3683 3684 3776 3775 +f 3684 3685 3777 3776 +f 3685 3686 3778 3777 +f 3686 3687 3779 3778 +f 3687 3688 3780 3779 +f 3688 3689 3781 3780 +f 3689 3690 3782 3781 +f 3690 3691 3783 3782 +f 3691 3692 3784 3783 +f 3692 3693 3785 3784 +f 3693 3694 3786 3785 +f 3694 3695 3787 3786 +f 3695 3696 3788 3787 +f 3696 3697 3789 3788 +f 3697 3698 3790 3789 +f 3698 3699 3791 3790 +f 3699 3700 3792 3791 +f 3700 3701 3793 3792 +f 3701 3702 3794 3793 +f 3702 3703 3795 3794 +f 3703 3704 3796 3795 +f 3704 3705 3797 3796 +f 3705 3706 3798 3797 +f 3706 3707 3799 3798 +f 3707 3708 3800 3799 +f 3708 3709 3801 3800 +f 3709 3710 3802 3801 +f 3710 3711 3803 3802 +f 3711 3712 3804 3803 +f 3712 3713 3805 3804 +f 3713 3714 3806 3805 +f 3714 3715 3807 3806 +f 3715 3716 3808 3807 +f 3716 3717 3809 3808 +f 3717 3718 3810 3809 +f 3718 3719 3811 3810 +f 3719 3720 3812 3811 +f 3720 3721 3813 3812 +f 3721 3722 3814 3813 +f 3722 3723 3815 3814 +f 3723 3724 3816 3815 +f 3724 3725 3817 3816 +f 3725 3726 3818 3817 +f 3726 3727 3819 3818 +f 3727 3728 3820 3819 +f 3728 3729 3821 3820 +f 3729 3730 3822 3821 +f 3730 3731 3823 3822 +f 3731 3732 3824 3823 +f 3732 3733 3825 3824 +f 3733 3734 3826 3825 +f 3734 3735 3827 3826 +f 3735 3736 3828 3827 +f 3736 3737 3829 3828 +f 3737 3738 3830 3829 +f 3738 3739 3831 3830 +f 3739 3740 3832 3831 +f 3740 3741 3833 3832 +f 3741 3742 3834 3833 +f 3742 3743 3835 3834 +f 3743 3744 3836 3835 +f 3744 3745 3837 3836 +f 3745 3746 3838 3837 +f 3746 3747 3839 3838 +f 3747 3748 3840 3839 +f 3748 3749 3841 3840 +f 3749 3750 3842 3841 +f 3750 3751 3843 3842 +f 3751 3752 3844 3843 +f 3752 3753 3845 3844 +f 3753 3754 3846 3845 +f 3754 3755 3847 3846 +f 3755 3756 3848 3847 +f 3756 3757 3849 3848 +f 3757 3758 3850 3849 +f 3758 3759 3851 3850 +f 3759 3760 3852 3851 +f 3760 3761 3853 3852 +f 3761 3762 3854 3853 +f 3762 3763 3855 3854 +f 3763 3764 3856 3855 +f 3764 3765 3857 3856 +f 3765 3766 3858 3857 +f 3766 3767 3859 3858 +f 3767 3768 3860 3859 +f 3768 3769 3861 3860 +f 3769 3770 3862 3861 +f 3770 3771 3863 3862 +f 3771 3772 3864 3863 +f 3772 3773 3865 3864 +f 3773 3774 3866 3865 +f 3774 3683 3775 3866 +f 3775 3776 3868 3867 +f 3776 3777 3869 3868 +f 3777 3778 3870 3869 +f 3778 3779 3871 3870 +f 3779 3780 3872 3871 +f 3780 3781 3873 3872 +f 3781 3782 3874 3873 +f 3782 3783 3875 3874 +f 3783 3784 3876 3875 +f 3784 3785 3877 3876 +f 3785 3786 3878 3877 +f 3786 3787 3879 3878 +f 3787 3788 3880 3879 +f 3788 3789 3881 3880 +f 3789 3790 3882 3881 +f 3790 3791 3883 3882 +f 3791 3792 3884 3883 +f 3792 3793 3885 3884 +f 3793 3794 3886 3885 +f 3794 3795 3887 3886 +f 3795 3796 3888 3887 +f 3796 3797 3889 3888 +f 3797 3798 3890 3889 +f 3798 3799 3891 3890 +f 3799 3800 3892 3891 +f 3800 3801 3893 3892 +f 3801 3802 3894 3893 +f 3802 3803 3895 3894 +f 3803 3804 3896 3895 +f 3804 3805 3897 3896 +f 3805 3806 3898 3897 +f 3806 3807 3899 3898 +f 3807 3808 3900 3899 +f 3808 3809 3901 3900 +f 3809 3810 3902 3901 +f 3810 3811 3903 3902 +f 3811 3812 3904 3903 +f 3812 3813 3905 3904 +f 3813 3814 3906 3905 +f 3814 3815 3907 3906 +f 3815 3816 3908 3907 +f 3816 3817 3909 3908 +f 3817 3818 3910 3909 +f 3818 3819 3911 3910 +f 3819 3820 3912 3911 +f 3820 3821 3913 3912 +f 3821 3822 3914 3913 +f 3822 3823 3915 3914 +f 3823 3824 3916 3915 +f 3824 3825 3917 3916 +f 3825 3826 3918 3917 +f 3826 3827 3919 3918 +f 3827 3828 3920 3919 +f 3828 3829 3921 3920 +f 3829 3830 3922 3921 +f 3830 3831 3923 3922 +f 3831 3832 3924 3923 +f 3832 3833 3925 3924 +f 3833 3834 3926 3925 +f 3834 3835 3927 3926 +f 3835 3836 3928 3927 +f 3836 3837 3929 3928 +f 3837 3838 3930 3929 +f 3838 3839 3931 3930 +f 3839 3840 3932 3931 +f 3840 3841 3933 3932 +f 3841 3842 3934 3933 +f 3842 3843 3935 3934 +f 3843 3844 3936 3935 +f 3844 3845 3937 3936 +f 3845 3846 3938 3937 +f 3846 3847 3939 3938 +f 3847 3848 3940 3939 +f 3848 3849 3941 3940 +f 3849 3850 3942 3941 +f 3850 3851 3943 3942 +f 3851 3852 3944 3943 +f 3852 3853 3945 3944 +f 3853 3854 3946 3945 +f 3854 3855 3947 3946 +f 3855 3856 3948 3947 +f 3856 3857 3949 3948 +f 3857 3858 3950 3949 +f 3858 3859 3951 3950 +f 3859 3860 3952 3951 +f 3860 3861 3953 3952 +f 3861 3862 3954 3953 +f 3862 3863 3955 3954 +f 3863 3864 3956 3955 +f 3864 3865 3957 3956 +f 3865 3866 3958 3957 +f 3866 3775 3867 3958 +f 3867 3868 3960 3959 +f 3868 3869 3961 3960 +f 3869 3870 3962 3961 +f 3870 3871 3963 3962 +f 3871 3872 3964 3963 +f 3872 3873 3965 3964 +f 3873 3874 3966 3965 +f 3874 3875 3967 3966 +f 3875 3876 3968 3967 +f 3876 3877 3969 3968 +f 3877 3878 3970 3969 +f 3878 3879 3971 3970 +f 3879 3880 3972 3971 +f 3880 3881 3973 3972 +f 3881 3882 3974 3973 +f 3882 3883 3975 3974 +f 3883 3884 3976 3975 +f 3884 3885 3977 3976 +f 3885 3886 3978 3977 +f 3886 3887 3979 3978 +f 3887 3888 3980 3979 +f 3888 3889 3981 3980 +f 3889 3890 3982 3981 +f 3890 3891 3983 3982 +f 3891 3892 3984 3983 +f 3892 3893 3985 3984 +f 3893 3894 3986 3985 +f 3894 3895 3987 3986 +f 3895 3896 3988 3987 +f 3896 3897 3989 3988 +f 3897 3898 3990 3989 +f 3898 3899 3991 3990 +f 3899 3900 3992 3991 +f 3900 3901 3993 3992 +f 3901 3902 3994 3993 +f 3902 3903 3995 3994 +f 3903 3904 3996 3995 +f 3904 3905 3997 3996 +f 3905 3906 3998 3997 +f 3906 3907 3999 3998 +f 3907 3908 4000 3999 +f 3908 3909 4001 4000 +f 3909 3910 4002 4001 +f 3910 3911 4003 4002 +f 3911 3912 4004 4003 +f 3912 3913 4005 4004 +f 3913 3914 4006 4005 +f 3914 3915 4007 4006 +f 3915 3916 4008 4007 +f 3916 3917 4009 4008 +f 3917 3918 4010 4009 +f 3918 3919 4011 4010 +f 3919 3920 4012 4011 +f 3920 3921 4013 4012 +f 3921 3922 4014 4013 +f 3922 3923 4015 4014 +f 3923 3924 4016 4015 +f 3924 3925 4017 4016 +f 3925 3926 4018 4017 +f 3926 3927 4019 4018 +f 3927 3928 4020 4019 +f 3928 3929 4021 4020 +f 3929 3930 4022 4021 +f 3930 3931 4023 4022 +f 3931 3932 4024 4023 +f 3932 3933 4025 4024 +f 3933 3934 4026 4025 +f 3934 3935 4027 4026 +f 3935 3936 4028 4027 +f 3936 3937 4029 4028 +f 3937 3938 4030 4029 +f 3938 3939 4031 4030 +f 3939 3940 4032 4031 +f 3940 3941 4033 4032 +f 3941 3942 4034 4033 +f 3942 3943 4035 4034 +f 3943 3944 4036 4035 +f 3944 3945 4037 4036 +f 3945 3946 4038 4037 +f 3946 3947 4039 4038 +f 3947 3948 4040 4039 +f 3948 3949 4041 4040 +f 3949 3950 4042 4041 +f 3950 3951 4043 4042 +f 3951 3952 4044 4043 +f 3952 3953 4045 4044 +f 3953 3954 4046 4045 +f 3954 3955 4047 4046 +f 3955 3956 4048 4047 +f 3956 3957 4049 4048 +f 3957 3958 4050 4049 +f 3958 3867 3959 4050 +f 3959 3960 4052 4051 +f 3960 3961 4053 4052 +f 3961 3962 4054 4053 +f 3962 3963 4055 4054 +f 3963 3964 4056 4055 +f 3964 3965 4057 4056 +f 3965 3966 4058 4057 +f 3966 3967 4059 4058 +f 3967 3968 4060 4059 +f 3968 3969 4061 4060 +f 3969 3970 4062 4061 +f 3970 3971 4063 4062 +f 3971 3972 4064 4063 +f 3972 3973 4065 4064 +f 3973 3974 4066 4065 +f 3974 3975 4067 4066 +f 3975 3976 4068 4067 +f 3976 3977 4069 4068 +f 3977 3978 4070 4069 +f 3978 3979 4071 4070 +f 3979 3980 4072 4071 +f 3980 3981 4073 4072 +f 3981 3982 4074 4073 +f 3982 3983 4075 4074 +f 3983 3984 4076 4075 +f 3984 3985 4077 4076 +f 3985 3986 4078 4077 +f 3986 3987 4079 4078 +f 3987 3988 4080 4079 +f 3988 3989 4081 4080 +f 3989 3990 4082 4081 +f 3990 3991 4083 4082 +f 3991 3992 4084 4083 +f 3992 3993 4085 4084 +f 3993 3994 4086 4085 +f 3994 3995 4087 4086 +f 3995 3996 4088 4087 +f 3996 3997 4089 4088 +f 3997 3998 4090 4089 +f 3998 3999 4091 4090 +f 3999 4000 4092 4091 +f 4000 4001 4093 4092 +f 4001 4002 4094 4093 +f 4002 4003 4095 4094 +f 4003 4004 4096 4095 +f 4004 4005 4097 4096 +f 4005 4006 4098 4097 +f 4006 4007 4099 4098 +f 4007 4008 4100 4099 +f 4008 4009 4101 4100 +f 4009 4010 4102 4101 +f 4010 4011 4103 4102 +f 4011 4012 4104 4103 +f 4012 4013 4105 4104 +f 4013 4014 4106 4105 +f 4014 4015 4107 4106 +f 4015 4016 4108 4107 +f 4016 4017 4109 4108 +f 4017 4018 4110 4109 +f 4018 4019 4111 4110 +f 4019 4020 4112 4111 +f 4020 4021 4113 4112 +f 4021 4022 4114 4113 +f 4022 4023 4115 4114 +f 4023 4024 4116 4115 +f 4024 4025 4117 4116 +f 4025 4026 4118 4117 +f 4026 4027 4119 4118 +f 4027 4028 4120 4119 +f 4028 4029 4121 4120 +f 4029 4030 4122 4121 +f 4030 4031 4123 4122 +f 4031 4032 4124 4123 +f 4032 4033 4125 4124 +f 4033 4034 4126 4125 +f 4034 4035 4127 4126 +f 4035 4036 4128 4127 +f 4036 4037 4129 4128 +f 4037 4038 4130 4129 +f 4038 4039 4131 4130 +f 4039 4040 4132 4131 +f 4040 4041 4133 4132 +f 4041 4042 4134 4133 +f 4042 4043 4135 4134 +f 4043 4044 4136 4135 +f 4044 4045 4137 4136 +f 4045 4046 4138 4137 +f 4046 4047 4139 4138 +f 4047 4048 4140 4139 +f 4048 4049 4141 4140 +f 4049 4050 4142 4141 +f 4050 3959 4051 4142 +f 4051 4052 4144 4143 +f 4052 4053 4145 4144 +f 4053 4054 4146 4145 +f 4054 4055 4147 4146 +f 4055 4056 4148 4147 +f 4056 4057 4149 4148 +f 4057 4058 4150 4149 +f 4058 4059 4151 4150 +f 4059 4060 4152 4151 +f 4060 4061 4153 4152 +f 4061 4062 4154 4153 +f 4062 4063 4155 4154 +f 4063 4064 4156 4155 +f 4064 4065 4157 4156 +f 4065 4066 4158 4157 +f 4066 4067 4159 4158 +f 4067 4068 4160 4159 +f 4068 4069 4161 4160 +f 4069 4070 4162 4161 +f 4070 4071 4163 4162 +f 4071 4072 4164 4163 +f 4072 4073 4165 4164 +f 4073 4074 4166 4165 +f 4074 4075 4167 4166 +f 4075 4076 4168 4167 +f 4076 4077 4169 4168 +f 4077 4078 4170 4169 +f 4078 4079 4171 4170 +f 4079 4080 4172 4171 +f 4080 4081 4173 4172 +f 4081 4082 4174 4173 +f 4082 4083 4175 4174 +f 4083 4084 4176 4175 +f 4084 4085 4177 4176 +f 4085 4086 4178 4177 +f 4086 4087 4179 4178 +f 4087 4088 4180 4179 +f 4088 4089 4181 4180 +f 4089 4090 4182 4181 +f 4090 4091 4183 4182 +f 4091 4092 4184 4183 +f 4092 4093 4185 4184 +f 4093 4094 4186 4185 +f 4094 4095 4187 4186 +f 4095 4096 4188 4187 +f 4096 4097 4189 4188 +f 4097 4098 4190 4189 +f 4098 4099 4191 4190 +f 4099 4100 4192 4191 +f 4100 4101 4193 4192 +f 4101 4102 4194 4193 +f 4102 4103 4195 4194 +f 4103 4104 4196 4195 +f 4104 4105 4197 4196 +f 4105 4106 4198 4197 +f 4106 4107 4199 4198 +f 4107 4108 4200 4199 +f 4108 4109 4201 4200 +f 4109 4110 4202 4201 +f 4110 4111 4203 4202 +f 4111 4112 4204 4203 +f 4112 4113 4205 4204 +f 4113 4114 4206 4205 +f 4114 4115 4207 4206 +f 4115 4116 4208 4207 +f 4116 4117 4209 4208 +f 4117 4118 4210 4209 +f 4118 4119 4211 4210 +f 4119 4120 4212 4211 +f 4120 4121 4213 4212 +f 4121 4122 4214 4213 +f 4122 4123 4215 4214 +f 4123 4124 4216 4215 +f 4124 4125 4217 4216 +f 4125 4126 4218 4217 +f 4126 4127 4219 4218 +f 4127 4128 4220 4219 +f 4128 4129 4221 4220 +f 4129 4130 4222 4221 +f 4130 4131 4223 4222 +f 4131 4132 4224 4223 +f 4132 4133 4225 4224 +f 4133 4134 4226 4225 +f 4134 4135 4227 4226 +f 4135 4136 4228 4227 +f 4136 4137 4229 4228 +f 4137 4138 4230 4229 +f 4138 4139 4231 4230 +f 4139 4140 4232 4231 +f 4140 4141 4233 4232 +f 4141 4142 4234 4233 +f 4142 4051 4143 4234 +f 1 4 3 +f 2 4143 4144 +f 1 5 4 +f 2 4144 4145 +f 1 6 5 +f 2 4145 4146 +f 1 7 6 +f 2 4146 4147 +f 1 8 7 +f 2 4147 4148 +f 1 9 8 +f 2 4148 4149 +f 1 10 9 +f 2 4149 4150 +f 1 11 10 +f 2 4150 4151 +f 1 12 11 +f 2 4151 4152 +f 1 13 12 +f 2 4152 4153 +f 1 14 13 +f 2 4153 4154 +f 1 15 14 +f 2 4154 4155 +f 1 16 15 +f 2 4155 4156 +f 1 17 16 +f 2 4156 4157 +f 1 18 17 +f 2 4157 4158 +f 1 19 18 +f 2 4158 4159 +f 1 20 19 +f 2 4159 4160 +f 1 21 20 +f 2 4160 4161 +f 1 22 21 +f 2 4161 4162 +f 1 23 22 +f 2 4162 4163 +f 1 24 23 +f 2 4163 4164 +f 1 25 24 +f 2 4164 4165 +f 1 26 25 +f 2 4165 4166 +f 1 27 26 +f 2 4166 4167 +f 1 28 27 +f 2 4167 4168 +f 1 29 28 +f 2 4168 4169 +f 1 30 29 +f 2 4169 4170 +f 1 31 30 +f 2 4170 4171 +f 1 32 31 +f 2 4171 4172 +f 1 33 32 +f 2 4172 4173 +f 1 34 33 +f 2 4173 4174 +f 1 35 34 +f 2 4174 4175 +f 1 36 35 +f 2 4175 4176 +f 1 37 36 +f 2 4176 4177 +f 1 38 37 +f 2 4177 4178 +f 1 39 38 +f 2 4178 4179 +f 1 40 39 +f 2 4179 4180 +f 1 41 40 +f 2 4180 4181 +f 1 42 41 +f 2 4181 4182 +f 1 43 42 +f 2 4182 4183 +f 1 44 43 +f 2 4183 4184 +f 1 45 44 +f 2 4184 4185 +f 1 46 45 +f 2 4185 4186 +f 1 47 46 +f 2 4186 4187 +f 1 48 47 +f 2 4187 4188 +f 1 49 48 +f 2 4188 4189 +f 1 50 49 +f 2 4189 4190 +f 1 51 50 +f 2 4190 4191 +f 1 52 51 +f 2 4191 4192 +f 1 53 52 +f 2 4192 4193 +f 1 54 53 +f 2 4193 4194 +f 1 55 54 +f 2 4194 4195 +f 1 56 55 +f 2 4195 4196 +f 1 57 56 +f 2 4196 4197 +f 1 58 57 +f 2 4197 4198 +f 1 59 58 +f 2 4198 4199 +f 1 60 59 +f 2 4199 4200 +f 1 61 60 +f 2 4200 4201 +f 1 62 61 +f 2 4201 4202 +f 1 63 62 +f 2 4202 4203 +f 1 64 63 +f 2 4203 4204 +f 1 65 64 +f 2 4204 4205 +f 1 66 65 +f 2 4205 4206 +f 1 67 66 +f 2 4206 4207 +f 1 68 67 +f 2 4207 4208 +f 1 69 68 +f 2 4208 4209 +f 1 70 69 +f 2 4209 4210 +f 1 71 70 +f 2 4210 4211 +f 1 72 71 +f 2 4211 4212 +f 1 73 72 +f 2 4212 4213 +f 1 74 73 +f 2 4213 4214 +f 1 75 74 +f 2 4214 4215 +f 1 76 75 +f 2 4215 4216 +f 1 77 76 +f 2 4216 4217 +f 1 78 77 +f 2 4217 4218 +f 1 79 78 +f 2 4218 4219 +f 1 80 79 +f 2 4219 4220 +f 1 81 80 +f 2 4220 4221 +f 1 82 81 +f 2 4221 4222 +f 1 83 82 +f 2 4222 4223 +f 1 84 83 +f 2 4223 4224 +f 1 85 84 +f 2 4224 4225 +f 1 86 85 +f 2 4225 4226 +f 1 87 86 +f 2 4226 4227 +f 1 88 87 +f 2 4227 4228 +f 1 89 88 +f 2 4228 4229 +f 1 90 89 +f 2 4229 4230 +f 1 91 90 +f 2 4230 4231 +f 1 92 91 +f 2 4231 4232 +f 1 93 92 +f 2 4232 4233 +f 1 94 93 +f 2 4233 4234 +f 1 3 94 +f 2 4234 4143 diff --git a/data/spheres/24.obj b/data/spheres/24.obj new file mode 100644 index 0000000..6004eba --- /dev/null +++ b/data/spheres/24.obj @@ -0,0 +1,9314 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 6.40702 99.7945 5.88009e-39 +v 6.3933 99.7945 0.419039 +v 6.3522 99.7945 0.836283 +v 6.28391 99.7945 1.24995 +v 6.1887 99.7945 1.65826 +v 6.067 99.7945 2.05947 +v 5.91931 99.7945 2.45186 +v 5.74628 99.7945 2.83375 +v 5.54864 99.7945 3.20351 +v 5.32724 99.7945 3.55955 +v 5.08303 99.7945 3.90034 +v 4.81705 99.7945 4.22444 +v 4.53045 99.7945 4.53044 +v 4.22444 99.7945 4.81705 +v 3.90035 99.7945 5.08303 +v 3.55955 99.7945 5.32724 +v 3.20351 99.7945 5.54864 +v 2.83376 99.7945 5.74628 +v 2.45186 99.7945 5.91931 +v 2.05947 99.7945 6.067 +v 1.65826 99.7945 6.1887 +v 1.24995 99.7945 6.28391 +v 0.836291 99.7945 6.3522 +v 0.419046 99.7945 6.3933 +v 8.12148e-06 99.7945 6.40702 +v -0.419031 99.7945 6.3933 +v -0.836275 99.7945 6.35221 +v -1.24994 99.7945 6.28391 +v -1.65825 99.7945 6.18871 +v -2.05946 99.7945 6.067 +v -2.45185 99.7945 5.91932 +v -2.83374 99.7945 5.74628 +v -3.2035 99.7945 5.54865 +v -3.55954 99.7945 5.32725 +v -3.90034 99.7945 5.08303 +v -4.22443 99.7945 4.81706 +v -4.53044 99.7945 4.53045 +v -4.81704 99.7945 4.22445 +v -5.08302 99.7945 3.90035 +v -5.32723 99.7945 3.55956 +v -5.54863 99.7945 3.20352 +v -5.74627 99.7945 2.83376 +v -5.91931 99.7945 2.45187 +v -6.06699 99.7945 2.05948 +v -6.1887 99.7945 1.65827 +v -6.28391 99.7945 1.24996 +v -6.3522 99.7945 0.836298 +v -6.3933 99.7945 0.419054 +v -6.40702 99.7945 1.6243e-05 +v -6.3933 99.7945 -0.419023 +v -6.35221 99.7945 -0.836267 +v -6.28391 99.7945 -1.24993 +v -6.18871 99.7945 -1.65824 +v -6.067 99.7945 -2.05945 +v -5.91932 99.7945 -2.45184 +v -5.74629 99.7945 -2.83374 +v -5.54865 99.7945 -3.20349 +v -5.32725 99.7945 -3.55953 +v -5.08304 99.7945 -3.90033 +v -4.81706 99.7945 -4.22443 +v -4.53046 99.7945 -4.53043 +v -4.22445 99.7945 -4.81704 +v -3.90036 99.7945 -5.08302 +v -3.55956 99.7945 -5.32723 +v -3.20353 99.7945 -5.54863 +v -2.83377 99.7945 -5.74627 +v -2.45188 99.7945 -5.9193 +v -2.05949 99.7945 -6.06699 +v -1.65828 99.7945 -6.1887 +v -1.24997 99.7945 -6.2839 +v -0.836306 99.7945 -6.3522 +v -0.419062 99.7945 -6.3933 +v -2.43644e-05 99.7945 -6.40702 +v 0.419017 99.7945 -6.3933 +v 0.836261 99.7945 -6.35221 +v 1.24992 99.7945 -6.28391 +v 1.65823 99.7945 -6.18871 +v 2.05944 99.7945 -6.06701 +v 2.45183 99.7945 -5.91932 +v 2.83373 99.7945 -5.74629 +v 3.20349 99.7945 -5.54865 +v 3.55953 99.7945 -5.32725 +v 3.90032 99.7945 -5.08305 +v 4.22442 99.7945 -4.81707 +v 4.53043 99.7945 -4.53047 +v 4.81703 99.7945 -4.22446 +v 5.08301 99.7945 -3.90037 +v 5.32722 99.7945 -3.55957 +v 5.54863 99.7945 -3.20353 +v 5.74627 99.7945 -2.83378 +v 5.9193 99.7945 -2.45189 +v 6.06699 99.7945 -2.05949 +v 6.1887 99.7945 -1.65829 +v 6.2839 99.7945 -1.24998 +v 6.3522 99.7945 -0.836314 +v 6.3933 99.7945 -0.419071 +v 12.7877 99.179 5.88009e-39 +v 12.7603 99.179 0.836355 +v 12.6783 99.179 1.66913 +v 12.542 99.179 2.49476 +v 12.352 99.179 3.3097 +v 12.1091 99.179 4.11047 +v 11.8143 99.179 4.89364 +v 11.4689 99.179 5.65585 +v 11.0745 99.179 6.39385 +v 10.6326 99.179 7.10446 +v 10.1452 99.179 7.78466 +v 9.61431 99.179 8.43152 +v 9.04228 99.179 9.04227 +v 8.43153 99.179 9.6143 +v 7.78467 99.179 10.1452 +v 7.10448 99.179 10.6326 +v 6.39386 99.179 11.0745 +v 5.65587 99.179 11.4689 +v 4.89365 99.179 11.8143 +v 4.11049 99.179 12.1091 +v 3.30971 99.179 12.352 +v 2.49477 99.179 12.542 +v 1.66914 99.179 12.6783 +v 0.836371 99.179 12.7603 +v 1.62096e-05 99.179 12.7877 +v -0.83634 99.179 12.7603 +v -1.66911 99.179 12.6783 +v -2.49474 99.179 12.542 +v -3.30968 99.179 12.352 +v -4.11046 99.179 12.1091 +v -4.89363 99.179 11.8143 +v -5.65584 99.179 11.469 +v -6.39384 99.179 11.0745 +v -7.10445 99.179 10.6326 +v -7.78465 99.179 10.1452 +v -8.4315 99.179 9.61432 +v -9.04226 99.179 9.04229 +v -9.61429 99.179 8.43154 +v -10.1452 99.179 7.78468 +v -10.6326 99.179 7.10449 +v -11.0745 99.179 6.39387 +v -11.4689 99.179 5.65588 +v -11.8143 99.179 4.89367 +v -12.1091 99.179 4.1105 +v -12.352 99.179 3.30973 +v -12.542 99.179 2.49479 +v -12.6783 99.179 1.66916 +v -12.7603 99.179 0.836387 +v -12.7877 99.179 3.24192e-05 +v -12.7603 99.179 -0.836325 +v -12.6783 99.179 -1.6691 +v -12.542 99.179 -2.49473 +v -12.352 99.179 -3.30967 +v -12.1091 99.179 -4.11044 +v -11.8143 99.179 -4.89361 +v -11.469 99.179 -5.65583 +v -11.0745 99.179 -6.39382 +v -10.6326 99.179 -7.10444 +v -10.1452 99.179 -7.78463 +v -9.61433 99.179 -8.43149 +v -9.0423 99.179 -9.04225 +v -8.43155 99.179 -9.61428 +v -7.78469 99.179 -10.1451 +v -7.1045 99.179 -10.6326 +v -6.39389 99.179 -11.0745 +v -5.6559 99.179 -11.4689 +v -4.89368 99.179 -11.8143 +v -4.11051 99.179 -12.1091 +v -3.30974 99.179 -12.352 +v -2.4948 99.179 -12.542 +v -1.66918 99.179 -12.6783 +v -0.836403 99.179 -12.7603 +v -4.86287e-05 99.179 -12.7877 +v 0.836312 99.179 -12.7603 +v 1.66909 99.179 -12.6783 +v 2.49471 99.179 -12.542 +v 3.30965 99.179 -12.352 +v 4.11042 99.179 -12.1091 +v 4.89359 99.179 -11.8143 +v 5.65581 99.179 -11.469 +v 6.39381 99.179 -11.0745 +v 7.10443 99.179 -10.6326 +v 7.78462 99.179 -10.1452 +v 8.43148 99.179 -9.61434 +v 9.04223 99.179 -9.04231 +v 9.61427 99.179 -8.43156 +v 10.1451 99.179 -7.78471 +v 10.6326 99.179 -7.10452 +v 11.0744 99.179 -6.3939 +v 11.4689 99.179 -5.65591 +v 11.8143 99.179 -4.8937 +v 12.109 99.179 -4.11053 +v 12.352 99.179 -3.30976 +v 12.542 99.179 -2.49482 +v 12.6783 99.179 -1.66919 +v 12.7603 99.179 -0.836419 +v 19.1158 98.1559 5.88009e-39 +v 19.0749 98.1559 1.25024 +v 18.9523 98.1559 2.49512 +v 18.7485 98.1559 3.72931 +v 18.4645 98.1559 4.94754 +v 18.1014 98.1559 6.14458 +v 17.6607 98.1559 7.31531 +v 17.1445 98.1559 8.45472 +v 16.5548 98.1559 9.55792 +v 15.8943 98.1559 10.6202 +v 15.1656 98.1559 11.637 +v 14.3721 98.1559 12.6039 +v 13.517 98.1559 13.5169 +v 12.604 98.1559 14.372 +v 11.637 98.1559 15.1656 +v 10.6202 98.1559 15.8942 +v 9.55794 98.1559 16.5548 +v 8.45474 98.1559 17.1445 +v 7.31533 98.1559 17.6607 +v 6.14461 98.1559 18.1014 +v 4.94756 98.1559 18.4645 +v 3.72934 98.1559 18.7485 +v 2.49514 98.1559 18.9523 +v 1.25026 98.1559 19.0749 +v 2.42311e-05 98.1559 19.1158 +v -1.25021 98.1559 19.0749 +v -2.49509 98.1559 18.9523 +v -3.72929 98.1559 18.7485 +v -4.94752 98.1559 18.4645 +v -6.14456 98.1559 18.1014 +v -7.31529 98.1559 17.6607 +v -8.4547 98.1559 17.1445 +v -9.5579 98.1559 16.5548 +v -10.6202 98.1559 15.8943 +v -11.637 98.1559 15.1656 +v -12.6039 98.1559 14.3721 +v -13.5169 98.1559 13.517 +v -14.372 98.1559 12.604 +v -15.1656 98.1559 11.637 +v -15.8942 98.1559 10.6202 +v -16.5548 98.1559 9.55796 +v -17.1445 98.1559 8.45476 +v -17.6607 98.1559 7.31536 +v -18.1014 98.1559 6.14463 +v -18.4645 98.1559 4.94759 +v -18.7485 98.1559 3.72936 +v -18.9523 98.1559 2.49516 +v -19.0749 98.1559 1.25028 +v -19.1158 98.1559 4.84621e-05 +v -19.0749 98.1559 -1.25019 +v -18.9523 98.1559 -2.49507 +v -18.7486 98.1559 -3.72927 +v -18.4645 98.1559 -4.9475 +v -18.1014 98.1559 -6.14454 +v -17.6608 98.1559 -7.31527 +v -17.1445 98.1559 -8.45468 +v -16.5548 98.1559 -9.55788 +v -15.8943 98.1559 -10.6202 +v -15.1657 98.1559 -11.6369 +v -14.3721 98.1559 -12.6039 +v -13.517 98.1559 -13.5169 +v -12.604 98.1559 -14.372 +v -11.637 98.1559 -15.1656 +v -10.6202 98.1559 -15.8942 +v -9.55798 98.1559 -16.5548 +v -8.45478 98.1559 -17.1445 +v -7.31538 98.1559 -17.6607 +v -6.14464 98.1559 -18.1014 +v -4.94761 98.1559 -18.4645 +v -3.72938 98.1559 -18.7485 +v -2.49519 98.1559 -18.9523 +v -1.25031 98.1559 -19.0749 +v -7.26932e-05 98.1559 -19.1158 +v 1.25017 98.1559 -19.0749 +v 2.49505 98.1559 -18.9523 +v 3.72925 98.1559 -18.7486 +v 4.94747 98.1559 -18.4645 +v 6.14452 98.1559 -18.1014 +v 7.31525 98.1559 -17.6608 +v 8.45466 98.1559 -17.1445 +v 9.55786 98.1559 -16.5548 +v 10.6201 98.1559 -15.8943 +v 11.6369 98.1559 -15.1657 +v 12.6039 98.1559 -14.3721 +v 13.5169 98.1559 -13.517 +v 14.372 98.1559 -12.604 +v 15.1656 98.1559 -11.6371 +v 15.8942 98.1559 -10.6203 +v 16.5548 98.1559 -9.558 +v 17.1444 98.1559 -8.4548 +v 17.6607 98.1559 -7.3154 +v 18.1013 98.1559 -6.14467 +v 18.4645 98.1559 -4.94763 +v 18.7485 98.1559 -3.7294 +v 18.9523 98.1559 -2.49521 +v 19.0749 98.1559 -1.25033 +v 25.3654 96.7295 5.88009e-39 +v 25.3111 96.7295 1.65898 +v 25.1484 96.7295 3.31085 +v 24.878 96.7295 4.94855 +v 24.5011 96.7295 6.56505 +v 24.0193 96.7295 8.15345 +v 23.4346 96.7295 9.70693 +v 22.7496 96.7295 11.2188 +v 21.9671 96.7295 12.6827 +v 21.0906 96.7295 14.0923 +v 20.1238 96.7295 15.4415 +v 19.0708 96.7295 16.7246 +v 17.9361 96.7295 17.9361 +v 16.7246 96.7295 19.0707 +v 15.4415 96.7295 20.1237 +v 14.0923 96.7295 21.0906 +v 12.6827 96.7295 21.9671 +v 11.2189 96.7295 22.7496 +v 9.70695 96.7295 23.4346 +v 8.15348 96.7295 24.0193 +v 6.56508 96.7295 24.5011 +v 4.94858 96.7295 24.878 +v 3.31088 96.7295 25.1484 +v 1.65901 96.7295 25.3111 +v 3.2153e-05 96.7295 25.3654 +v -1.65895 96.7295 25.3111 +v -3.31082 96.7295 25.1484 +v -4.94852 96.7295 24.8781 +v -6.56502 96.7295 24.5011 +v -8.15342 96.7295 24.0193 +v -9.7069 96.7295 23.4346 +v -11.2188 96.7295 22.7496 +v -12.6827 96.7295 21.9671 +v -14.0922 96.7295 21.0906 +v -15.4415 96.7295 20.1238 +v -16.7246 96.7295 19.0708 +v -17.936 96.7295 17.9361 +v -19.0707 96.7295 16.7246 +v -20.1237 96.7295 15.4415 +v -21.0906 96.7295 14.0923 +v -21.9671 96.7295 12.6828 +v -22.7495 96.7295 11.2189 +v -23.4346 96.7295 9.70699 +v -24.0193 96.7295 8.1535 +v -24.5011 96.7295 6.56511 +v -24.878 96.7295 4.94861 +v -25.1484 96.7295 3.31091 +v -25.3111 96.7295 1.65904 +v -25.3654 96.7295 6.4306e-05 +v -25.3111 96.7295 -1.65892 +v -25.1484 96.7295 -3.31079 +v -24.8781 96.7295 -4.94849 +v -24.5011 96.7295 -6.565 +v -24.0193 96.7295 -8.15339 +v -23.4346 96.7295 -9.70687 +v -22.7496 96.7295 -11.2188 +v -21.9671 96.7295 -12.6827 +v -21.0906 96.7295 -14.0922 +v -20.1238 96.7295 -15.4414 +v -19.0708 96.7295 -16.7245 +v -17.9361 96.7295 -17.936 +v -16.7247 96.7295 -19.0707 +v -15.4416 96.7295 -20.1237 +v -14.0923 96.7295 -21.0905 +v -12.6828 96.7295 -21.9671 +v -11.2189 96.7295 -22.7495 +v -9.70702 96.7295 -23.4346 +v -8.15353 96.7295 -24.0193 +v -6.56514 96.7295 -24.5011 +v -4.94864 96.7295 -24.878 +v -3.31094 96.7295 -25.1484 +v -1.65907 96.7295 -25.3111 +v -9.6459e-05 96.7295 -25.3654 +v 1.65889 96.7295 -25.3111 +v 3.31076 96.7295 -25.1484 +v 4.94846 96.7295 -24.8781 +v 6.56496 96.7295 -24.5012 +v 8.15336 96.7295 -24.0193 +v 9.70684 96.7295 -23.4346 +v 11.2188 96.7295 -22.7496 +v 12.6826 96.7295 -21.9672 +v 14.0922 96.7295 -21.0906 +v 15.4414 96.7295 -20.1238 +v 16.7245 96.7295 -19.0708 +v 17.936 96.7295 -17.9362 +v 19.0707 96.7295 -16.7247 +v 20.1237 96.7295 -15.4416 +v 21.0905 96.7295 -14.0924 +v 21.9671 96.7295 -12.6828 +v 22.7495 96.7295 -11.219 +v 23.4346 96.7295 -9.70704 +v 24.0193 96.7295 -8.15356 +v 24.5011 96.7295 -6.56517 +v 24.878 96.7295 -4.94867 +v 25.1484 96.7295 -3.31097 +v 25.3111 96.7295 -1.6591 +v 31.5108 94.9056 5.88009e-39 +v 31.4433 94.9056 2.0609 +v 31.2412 94.9056 4.11298 +v 30.9053 94.9056 6.14745 +v 30.4371 94.9056 8.15559 +v 29.8385 94.9056 10.1288 +v 29.1122 94.9056 12.0587 +v 28.2612 94.9056 13.9369 +v 27.2892 94.9056 15.7554 +v 26.2003 94.9056 17.5065 +v 24.9992 94.9056 19.1825 +v 23.6911 94.9056 20.7765 +v 22.2815 94.9056 22.2815 +v 20.7765 94.9056 23.6911 +v 19.1826 94.9056 24.9992 +v 17.5065 94.9056 26.2003 +v 15.7554 94.9056 27.2891 +v 13.9369 94.9056 28.2612 +v 12.0587 94.9056 29.1122 +v 10.1288 94.9056 29.8385 +v 8.15562 94.9056 30.4371 +v 6.14749 94.9056 30.9053 +v 4.11302 94.9056 31.2412 +v 2.06094 94.9056 31.4433 +v 3.99428e-05 94.9056 31.5108 +v -2.06086 94.9056 31.4433 +v -4.11294 94.9056 31.2412 +v -6.14741 94.9056 30.9053 +v -8.15555 94.9056 30.4371 +v -10.1288 94.9056 29.8385 +v -12.0586 94.9056 29.1122 +v -13.9368 94.9056 28.2612 +v -15.7554 94.9056 27.2892 +v -17.5064 94.9056 26.2003 +v -19.1825 94.9056 24.9992 +v -20.7765 94.9056 23.6911 +v -22.2815 94.9056 22.2815 +v -23.691 94.9056 20.7766 +v -24.9992 94.9056 19.1826 +v -26.2002 94.9056 17.5065 +v -27.2891 94.9056 15.7555 +v -28.2611 94.9056 13.9369 +v -29.1122 94.9056 12.0587 +v -29.8385 94.9056 10.1289 +v -30.4371 94.9056 8.15566 +v -30.9053 94.9056 6.14753 +v -31.2412 94.9056 4.11306 +v -31.4433 94.9056 2.06098 +v -31.5108 94.9056 7.98856e-05 +v -31.4433 94.9056 -2.06083 +v -31.2412 94.9056 -4.1129 +v -30.9053 94.9056 -6.14738 +v -30.4371 94.9056 -8.15552 +v -29.8386 94.9056 -10.1287 +v -29.1122 94.9056 -12.0586 +v -28.2612 94.9056 -13.9368 +v -27.2892 94.9056 -15.7553 +v -26.2003 94.9056 -17.5064 +v -24.9993 94.9056 -19.1825 +v -23.6911 94.9056 -20.7764 +v -22.2816 94.9056 -22.2814 +v -20.7766 94.9056 -23.691 +v -19.1826 94.9056 -24.9991 +v -17.5065 94.9056 -26.2002 +v -15.7555 94.9056 -27.2891 +v -13.937 94.9056 -28.2611 +v -12.0588 94.9056 -29.1121 +v -10.1289 94.9056 -29.8385 +v -8.15569 94.9056 -30.4371 +v -6.14756 94.9056 -30.9053 +v -4.1131 94.9056 -31.2412 +v -2.06102 94.9056 -31.4433 +v -0.000119828 94.9056 -31.5108 +v 2.0608 94.9056 -31.4433 +v 4.11287 94.9056 -31.2412 +v 6.14734 94.9056 -30.9054 +v 8.15548 94.9056 -30.4371 +v 10.1287 94.9056 -29.8386 +v 12.0585 94.9056 -29.1122 +v 13.9368 94.9056 -28.2612 +v 15.7553 94.9056 -27.2892 +v 17.5064 94.9056 -26.2003 +v 19.1825 94.9056 -24.9993 +v 20.7764 94.9056 -23.6912 +v 22.2814 94.9056 -22.2816 +v 23.691 94.9056 -20.7766 +v 24.9991 94.9056 -19.1827 +v 26.2002 94.9056 -17.5066 +v 27.2891 94.9056 -15.7555 +v 28.2611 94.9056 -13.937 +v 29.1121 94.9056 -12.0588 +v 29.8385 94.9056 -10.1289 +v 30.4371 94.9056 -8.15573 +v 30.9053 94.9056 -6.1476 +v 31.2412 94.9056 -4.11313 +v 31.4433 94.9056 -2.06106 +v 37.5267 92.6917 5.88009e-39 +v 37.4463 92.6917 2.45436 +v 37.2056 92.6917 4.89821 +v 36.8056 92.6917 7.32108 +v 36.248 92.6917 9.71261 +v 35.5351 92.6917 12.0625 +v 34.6701 92.6917 14.3608 +v 33.6567 92.6917 16.5976 +v 32.4991 92.6917 18.7633 +v 31.2023 92.6917 20.8487 +v 29.7719 92.6917 22.8448 +v 28.2141 92.6917 24.743 +v 26.5354 92.6917 26.5353 +v 24.7431 92.6917 28.214 +v 22.8448 92.6917 29.7719 +v 20.8487 92.6917 31.2023 +v 18.7634 92.6917 32.499 +v 16.5977 92.6917 33.6566 +v 14.3609 92.6917 34.6701 +v 12.0626 92.6917 35.5351 +v 9.71265 92.6917 36.248 +v 7.32113 92.6917 36.8056 +v 4.89826 92.6917 37.2056 +v 2.4544 92.6917 37.4463 +v 4.75685e-05 92.6917 37.5267 +v -2.45431 92.6917 37.4463 +v -4.89817 92.6917 37.2056 +v -7.32104 92.6917 36.8056 +v -9.71257 92.6917 36.248 +v -12.0625 92.6917 35.5352 +v -14.3608 92.6917 34.6701 +v -16.5976 92.6917 33.6567 +v -18.7633 92.6917 32.4991 +v -20.8486 92.6917 31.2023 +v -22.8447 92.6917 29.7719 +v -24.743 92.6917 28.2141 +v -26.5353 92.6917 26.5354 +v -28.214 92.6917 24.7431 +v -29.7719 92.6917 22.8448 +v -31.2022 92.6917 20.8488 +v -32.499 92.6917 18.7634 +v -33.6566 92.6917 16.5977 +v -34.6701 92.6917 14.3609 +v -35.5351 92.6917 12.0626 +v -36.248 92.6917 9.7127 +v -36.8056 92.6917 7.32118 +v -37.2056 92.6917 4.8983 +v -37.4463 92.6917 2.45445 +v -37.5267 92.6917 9.51369e-05 +v -37.4463 92.6917 -2.45427 +v -37.2056 92.6917 -4.89812 +v -36.8056 92.6917 -7.321 +v -36.248 92.6917 -9.71252 +v -35.5352 92.6917 -12.0625 +v -34.6702 92.6917 -14.3607 +v -33.6567 92.6917 -16.5975 +v -32.4991 92.6917 -18.7632 +v -31.2023 92.6917 -20.8486 +v -29.772 92.6917 -22.8447 +v -28.2141 92.6917 -24.743 +v -26.5354 92.6917 -26.5353 +v -24.7431 92.6917 -28.214 +v -22.8449 92.6917 -29.7718 +v -20.8488 92.6917 -31.2022 +v -18.7634 92.6917 -32.499 +v -16.5977 92.6917 -33.6566 +v -14.361 92.6917 -34.6701 +v -12.0627 92.6917 -35.5351 +v -9.71274 92.6917 -36.248 +v -7.32122 92.6917 -36.8056 +v -4.89835 92.6917 -37.2056 +v -2.4545 92.6917 -37.4463 +v -0.000142705 92.6917 -37.5267 +v 2.45423 92.6917 -37.4463 +v 4.89808 92.6917 -37.2056 +v 7.32095 92.6917 -36.8056 +v 9.71248 92.6917 -36.248 +v 12.0624 92.6917 -35.5352 +v 14.3607 92.6917 -34.6702 +v 16.5975 92.6917 -33.6567 +v 18.7632 92.6917 -32.4991 +v 20.8486 92.6917 -31.2024 +v 22.8447 92.6917 -29.772 +v 24.7429 92.6917 -28.2142 +v 26.5352 92.6917 -26.5355 +v 28.2139 92.6917 -24.7432 +v 29.7718 92.6917 -22.8449 +v 31.2022 92.6917 -20.8488 +v 32.499 92.6917 -18.7635 +v 33.6566 92.6917 -16.5978 +v 34.6701 92.6917 -14.361 +v 35.5351 92.6917 -12.0627 +v 36.2479 92.6917 -9.71278 +v 36.8056 92.6917 -7.32126 +v 37.2056 92.6917 -4.89839 +v 37.4463 92.6917 -2.45455 +v 43.3883 90.0969 5.88009e-39 +v 43.2954 90.0969 2.83773 +v 43.0172 90.0969 5.66331 +v 42.5546 90.0969 8.46464 +v 41.9099 90.0969 11.2297 +v 41.0857 90.0969 13.9467 +v 40.0856 90.0969 16.604 +v 38.9138 90.0969 19.1902 +v 37.5754 90.0969 21.6942 +v 36.0761 90.0969 24.1053 +v 34.4223 90.0969 26.4131 +v 32.6211 90.0969 28.6079 +v 30.6802 90.0969 30.6802 +v 28.6079 90.0969 32.6211 +v 26.4132 90.0969 34.4223 +v 24.1053 90.0969 36.0761 +v 21.6942 90.0969 37.5754 +v 19.1902 90.0969 38.9138 +v 16.604 90.0969 40.0856 +v 13.9468 90.0969 41.0857 +v 11.2298 90.0969 41.9099 +v 8.46469 90.0969 42.5546 +v 5.66336 90.0969 43.0171 +v 2.83778 90.0969 43.2954 +v 5.49987e-05 90.0969 43.3883 +v -2.83768 90.0969 43.2954 +v -5.66326 90.0969 43.0172 +v -8.46459 90.0969 42.5547 +v -11.2297 90.0969 41.9099 +v -13.9467 90.0969 41.0858 +v -16.6039 90.0969 40.0856 +v -19.1901 90.0969 38.9139 +v -21.6941 90.0969 37.5754 +v -24.1052 90.0969 36.0761 +v -26.4131 90.0969 34.4223 +v -28.6079 90.0969 32.6211 +v -30.6801 90.0969 30.6803 +v -32.621 90.0969 28.608 +v -34.4222 90.0969 26.4132 +v -36.076 90.0969 24.1053 +v -37.5754 90.0969 21.6942 +v -38.9138 90.0969 19.1903 +v -40.0856 90.0969 16.6041 +v -41.0857 90.0969 13.9468 +v -41.9099 90.0969 11.2298 +v -42.5546 90.0969 8.46475 +v -43.0171 90.0969 5.66341 +v -43.2954 90.0969 2.83784 +v -43.3883 90.0969 0.000109997 +v -43.2955 90.0969 -2.83763 +v -43.0172 90.0969 -5.66321 +v -42.5547 90.0969 -8.46454 +v -41.91 90.0969 -11.2296 +v -41.0858 90.0969 -13.9466 +v -40.0856 90.0969 -16.6039 +v -38.9139 90.0969 -19.1901 +v -37.5755 90.0969 -21.6941 +v -36.0762 90.0969 -24.1052 +v -34.4224 90.0969 -26.413 +v -32.6212 90.0969 -28.6078 +v -30.6803 90.0969 -30.6801 +v -28.608 90.0969 -32.621 +v -26.4133 90.0969 -34.4222 +v -24.1054 90.0969 -36.076 +v -21.6943 90.0969 -37.5753 +v -19.1903 90.0969 -38.9138 +v -16.6041 90.0969 -40.0855 +v -13.9469 90.0969 -41.0857 +v -11.2299 90.0969 -41.9099 +v -8.46479 90.0969 -42.5546 +v -5.66347 90.0969 -43.0171 +v -2.83789 90.0969 -43.2954 +v -0.000164996 90.0969 -43.3883 +v 2.83758 90.0969 -43.2955 +v 5.66316 90.0969 -43.0172 +v 8.46449 90.0969 -42.5547 +v 11.2296 90.0969 -41.91 +v 13.9466 90.0969 -41.0858 +v 16.6038 90.0969 -40.0857 +v 19.19 90.0969 -38.9139 +v 21.694 90.0969 -37.5755 +v 24.1051 90.0969 -36.0762 +v 26.413 90.0969 -34.4224 +v 28.6078 90.0969 -32.6212 +v 30.6801 90.0969 -30.6803 +v 32.621 90.0969 -28.6081 +v 34.4222 90.0969 -26.4133 +v 36.076 90.0969 -24.1054 +v 37.5753 90.0969 -21.6943 +v 38.9137 90.0969 -19.1904 +v 40.0855 90.0969 -16.6042 +v 41.0857 90.0969 -13.9469 +v 41.9099 90.0969 -11.2299 +v 42.5546 90.0969 -8.46484 +v 43.0171 90.0969 -5.66352 +v 43.2954 90.0969 -2.83795 +v 49.0717 87.1319 5.88009e-39 +v 48.9667 87.1319 3.20944 +v 48.6519 87.1319 6.40514 +v 48.1288 87.1319 9.57341 +v 47.3996 87.1319 12.7007 +v 46.4675 87.1319 15.7736 +v 45.3364 87.1319 18.7789 +v 44.0111 87.1319 21.7039 +v 42.4974 87.1319 24.5358 +v 40.8017 87.1319 27.2628 +v 38.9312 87.1319 29.873 +v 36.8941 87.1319 32.3552 +v 34.699 87.1319 34.6989 +v 32.3553 87.1319 36.8941 +v 29.873 87.1319 38.9312 +v 27.2628 87.1319 40.8016 +v 24.5359 87.1319 42.4973 +v 21.7039 87.1319 44.0111 +v 18.779 87.1319 45.3363 +v 15.7736 87.1319 46.4675 +v 12.7007 87.1319 47.3996 +v 9.57347 87.1319 48.1288 +v 6.4052 87.1319 48.6519 +v 3.2095 87.1319 48.9667 +v 6.22029e-05 87.1319 49.0717 +v -3.20938 87.1319 48.9667 +v -6.40508 87.1319 48.6519 +v -9.57335 87.1319 48.1288 +v -12.7006 87.1319 47.3997 +v -15.7735 87.1319 46.4675 +v -18.7789 87.1319 45.3364 +v -21.7038 87.1319 44.0111 +v -24.5358 87.1319 42.4974 +v -27.2627 87.1319 40.8017 +v -29.8729 87.1319 38.9313 +v -32.3552 87.1319 36.8941 +v -34.6989 87.1319 34.699 +v -36.894 87.1319 32.3553 +v -38.9312 87.1319 29.873 +v -40.8016 87.1319 27.2629 +v -42.4973 87.1319 24.5359 +v -44.011 87.1319 21.704 +v -45.3363 87.1319 18.779 +v -46.4675 87.1319 15.7737 +v -47.3996 87.1319 12.7008 +v -48.1288 87.1319 9.57353 +v -48.6519 87.1319 6.40526 +v -48.9666 87.1319 3.20956 +v -49.0717 87.1319 0.000124406 +v -48.9667 87.1319 -3.20933 +v -48.6519 87.1319 -6.40502 +v -48.1288 87.1319 -9.5733 +v -47.3997 87.1319 -12.7006 +v -46.4675 87.1319 -15.7735 +v -45.3364 87.1319 -18.7788 +v -44.0111 87.1319 -21.7037 +v -42.4974 87.1319 -24.5357 +v -40.8017 87.1319 -27.2627 +v -38.9313 87.1319 -29.8729 +v -36.8942 87.1319 -32.3551 +v -34.699 87.1319 -34.6988 +v -32.3553 87.1319 -36.894 +v -29.8731 87.1319 -38.9311 +v -27.2629 87.1319 -40.8016 +v -24.536 87.1319 -42.4973 +v -21.704 87.1319 -44.011 +v -18.7791 87.1319 -45.3363 +v -15.7737 87.1319 -46.4674 +v -12.7009 87.1319 -47.3996 +v -9.57358 87.1319 -48.1288 +v -6.40532 87.1319 -48.6519 +v -3.20962 87.1319 -48.9666 +v -0.000186609 87.1319 -49.0717 +v 3.20927 87.1319 -48.9667 +v 6.40497 87.1319 -48.6519 +v 9.57324 87.1319 -48.1289 +v 12.7005 87.1319 -47.3997 +v 15.7734 87.1319 -46.4676 +v 18.7787 87.1319 -45.3364 +v 21.7037 87.1319 -44.0112 +v 24.5357 87.1319 -42.4975 +v 27.2626 87.1319 -40.8018 +v 29.8728 87.1319 -38.9313 +v 32.3551 87.1319 -36.8942 +v 34.6988 87.1319 -34.6991 +v 36.8939 87.1319 -32.3554 +v 38.9311 87.1319 -29.8731 +v 40.8015 87.1319 -27.263 +v 42.4972 87.1319 -24.5361 +v 44.011 87.1319 -21.7041 +v 45.3363 87.1319 -18.7792 +v 46.4674 87.1319 -15.7738 +v 47.3996 87.1319 -12.7009 +v 48.1288 87.1319 -9.57364 +v 48.6519 87.1319 -6.40538 +v 48.9666 87.1319 -3.20969 +v 54.5535 83.8088 5.88009e-39 +v 54.4366 83.8088 3.56796 +v 54.0867 83.8088 7.12065 +v 53.5052 83.8088 10.6428 +v 52.6946 83.8088 14.1195 +v 51.6583 83.8088 17.5356 +v 50.4008 83.8088 20.8767 +v 48.9275 83.8088 24.1284 +v 47.2447 83.8088 27.2767 +v 45.3596 83.8088 30.3083 +v 43.2802 83.8088 33.21 +v 41.0155 83.8088 35.9696 +v 38.5751 83.8088 38.5751 +v 35.9696 83.8088 41.0154 +v 33.2101 83.8088 43.2801 +v 30.3083 83.8088 45.3595 +v 27.2768 83.8088 47.2447 +v 24.1284 83.8088 48.9275 +v 20.8768 83.8088 50.4008 +v 17.5357 83.8088 51.6583 +v 14.1195 83.8088 52.6946 +v 10.6429 83.8088 53.5052 +v 7.12072 83.8088 54.0867 +v 3.56803 83.8088 54.4366 +v 6.91515e-05 83.8088 54.5535 +v -3.5679 83.8088 54.4367 +v -7.12058 83.8088 54.0868 +v -10.6428 83.8088 53.5052 +v -14.1194 83.8088 52.6946 +v -17.5356 83.8088 51.6583 +v -20.8766 83.8088 50.4008 +v -24.1283 83.8088 48.9275 +v -27.2766 83.8088 47.2447 +v -30.3082 83.8088 45.3596 +v -33.21 83.8088 43.2802 +v -35.9695 83.8088 41.0155 +v -38.575 83.8088 38.5752 +v -41.0154 83.8088 35.9697 +v -43.2801 83.8088 33.2101 +v -45.3595 83.8088 30.3084 +v -47.2446 83.8088 27.2768 +v -48.9275 83.8088 24.1285 +v -50.4008 83.8088 20.8768 +v -51.6583 83.8088 17.5357 +v -52.6946 83.8088 14.1196 +v -53.5052 83.8088 10.643 +v -54.0867 83.8088 7.12078 +v -54.4366 83.8088 3.5681 +v -54.5535 83.8088 0.000138303 +v -54.4367 83.8088 -3.56783 +v -54.0868 83.8088 -7.12052 +v -53.5052 83.8088 -10.6427 +v -52.6946 83.8088 -14.1193 +v -51.6584 83.8088 -17.5355 +v -50.4009 83.8088 -20.8766 +v -48.9276 83.8088 -24.1282 +v -47.2448 83.8088 -27.2766 +v -45.3596 83.8088 -30.3081 +v -43.2803 83.8088 -33.2099 +v -41.0156 83.8088 -35.9695 +v -38.5752 83.8088 -38.575 +v -35.9697 83.8088 -41.0153 +v -33.2102 83.8088 -43.2801 +v -30.3084 83.8088 -45.3594 +v -27.2769 83.8088 -47.2446 +v -24.1285 83.8088 -48.9274 +v -20.8769 83.8088 -50.4007 +v -17.5358 83.8088 -51.6583 +v -14.1196 83.8088 -52.6945 +v -10.643 83.8088 -53.5052 +v -7.12085 83.8088 -54.0867 +v -3.56817 83.8088 -54.4366 +v -0.000207454 83.8088 -54.5535 +v 3.56778 83.8088 -54.4367 +v 7.12046 83.8088 -54.0868 +v 10.6427 83.8088 -53.5053 +v 14.1193 83.8088 -52.6946 +v 17.5354 83.8088 -51.6584 +v 20.8765 83.8088 -50.4009 +v 24.1282 83.8088 -48.9276 +v 27.2765 83.8088 -47.2448 +v 30.3081 83.8088 -45.3597 +v 33.2099 83.8088 -43.2803 +v 35.9694 83.8088 -41.0156 +v 38.5749 83.8088 -38.5753 +v 41.0153 83.8088 -35.9698 +v 43.28 83.8088 -33.2102 +v 45.3594 83.8088 -30.3085 +v 47.2446 83.8088 -27.2769 +v 48.9274 83.8088 -24.1286 +v 50.4007 83.8088 -20.8769 +v 51.6582 83.8088 -17.5359 +v 52.6945 83.8088 -14.1197 +v 53.5052 83.8088 -10.6431 +v 54.0867 83.8088 -7.12091 +v 54.4366 83.8088 -3.56824 +v 59.811 80.1414 5.88009e-39 +v 59.683 80.1414 3.91182 +v 59.2993 80.1414 7.8069 +v 58.6618 80.1414 11.6685 +v 57.773 80.1414 15.4802 +v 56.6369 80.1414 19.2256 +v 55.2582 80.1414 22.8887 +v 53.6429 80.1414 26.4537 +v 51.7979 80.1414 29.9055 +v 49.7311 80.1414 33.2292 +v 47.4513 80.1414 36.4106 +v 44.9683 80.1414 39.4361 +v 42.2928 80.1414 42.2927 +v 39.4362 80.1414 44.9683 +v 36.4107 80.1414 47.4512 +v 33.2293 80.1414 49.731 +v 29.9056 80.1414 51.7978 +v 26.4538 80.1414 53.6428 +v 22.8887 80.1414 55.2582 +v 19.2257 80.1414 56.6368 +v 15.4803 80.1414 57.773 +v 11.6686 80.1414 58.6618 +v 7.80697 80.1414 59.2993 +v 3.9119 80.1414 59.683 +v 7.58159e-05 80.1414 59.811 +v -3.91175 80.1414 59.683 +v -7.80683 80.1414 59.2993 +v -11.6685 80.1414 58.6618 +v -15.4801 80.1414 57.773 +v -19.2255 80.1414 56.6369 +v -22.8886 80.1414 55.2582 +v -26.4537 80.1414 53.6429 +v -29.9054 80.1414 51.7979 +v -33.2291 80.1414 49.7311 +v -36.4106 80.1414 47.4513 +v -39.4361 80.1414 44.9684 +v -42.2927 80.1414 42.2929 +v -44.9682 80.1414 39.4362 +v -47.4512 80.1414 36.4107 +v -49.731 80.1414 33.2293 +v -51.7978 80.1414 29.9056 +v -53.6428 80.1414 26.4538 +v -55.2581 80.1414 22.8888 +v -56.6368 80.1414 19.2257 +v -57.773 80.1414 15.4804 +v -58.6617 80.1414 11.6687 +v -59.2993 80.1414 7.80704 +v -59.6829 80.1414 3.91197 +v -59.811 80.1414 0.000151632 +v -59.683 80.1414 -3.91168 +v -59.2993 80.1414 -7.80675 +v -58.6618 80.1414 -11.6684 +v -57.773 80.1414 -15.4801 +v -56.6369 80.1414 -19.2255 +v -55.2582 80.1414 -22.8885 +v -53.6429 80.1414 -26.4536 +v -51.7979 80.1414 -29.9054 +v -49.7311 80.1414 -33.2291 +v -47.4514 80.1414 -36.4105 +v -44.9684 80.1414 -39.436 +v -42.2929 80.1414 -42.2927 +v -39.4363 80.1414 -44.9682 +v -36.4108 80.1414 -47.4512 +v -33.2294 80.1414 -49.7309 +v -29.9057 80.1414 -51.7978 +v -26.4539 80.1414 -53.6428 +v -22.8889 80.1414 -55.2581 +v -19.2258 80.1414 -56.6368 +v -15.4804 80.1414 -57.773 +v -11.6687 80.1414 -58.6617 +v -7.80711 80.1414 -59.2993 +v -3.91205 80.1414 -59.6829 +v -0.000227448 80.1414 -59.811 +v 3.91162 80.1414 -59.683 +v 7.80669 80.1414 -59.2994 +v 11.6683 80.1414 -58.6618 +v 15.48 80.1414 -57.7731 +v 19.2254 80.1414 -56.6369 +v 22.8885 80.1414 -55.2583 +v 26.4535 80.1414 -53.643 +v 29.9053 80.1414 -51.798 +v 33.229 80.1414 -49.7312 +v 36.4104 80.1414 -47.4514 +v 39.436 80.1414 -44.9685 +v 42.2926 80.1414 -42.293 +v 44.9681 80.1414 -39.4363 +v 47.4511 80.1414 -36.4108 +v 49.7309 80.1414 -33.2294 +v 51.7977 80.1414 -29.9057 +v 53.6427 80.1414 -26.454 +v 55.2581 80.1414 -22.8889 +v 56.6368 80.1414 -19.2259 +v 57.7729 80.1414 -15.4805 +v 58.6617 80.1414 -11.6688 +v 59.2993 80.1414 -7.80719 +v 59.6829 80.1414 -3.91212 +v 64.8228 76.1446 5.88009e-39 +v 64.684 76.1446 4.23961 +v 64.2682 76.1446 8.46107 +v 63.5773 76.1446 12.6463 +v 62.614 76.1446 16.7774 +v 61.3827 76.1446 20.8366 +v 59.8885 76.1446 24.8066 +v 58.1378 76.1446 28.6704 +v 56.1382 76.1446 32.4114 +v 53.8982 76.1446 36.0136 +v 51.4274 76.1446 39.4616 +v 48.7364 76.1446 42.7406 +v 45.8367 76.1446 45.8366 +v 42.7407 76.1446 48.7363 +v 39.4617 76.1446 51.4274 +v 36.0137 76.1446 53.8982 +v 32.4114 76.1446 56.1382 +v 28.6704 76.1446 58.1378 +v 24.8067 76.1446 59.8884 +v 20.8367 76.1446 61.3826 +v 16.7774 76.1446 62.614 +v 12.6464 76.1446 63.5772 +v 8.46115 76.1446 64.2682 +v 4.23969 76.1446 64.684 +v 8.21688e-05 76.1446 64.8228 +v -4.23953 76.1446 64.684 +v -8.46099 76.1446 64.2682 +v -12.6462 76.1446 63.5773 +v -16.7773 76.1446 62.614 +v -20.8365 76.1446 61.3827 +v -24.8065 76.1446 59.8885 +v -28.6703 76.1446 58.1378 +v -32.4113 76.1446 56.1382 +v -36.0135 76.1446 53.8983 +v -39.4615 76.1446 51.4274 +v -42.7406 76.1446 48.7364 +v -45.8366 76.1446 45.8367 +v -48.7363 76.1446 42.7407 +v -51.4273 76.1446 39.4617 +v -53.8981 76.1446 36.0137 +v -56.1381 76.1446 32.4115 +v -58.1377 76.1446 28.6705 +v -59.8884 76.1446 24.8067 +v -61.3826 76.1446 20.8367 +v -62.614 76.1446 16.7775 +v -63.5772 76.1446 12.6465 +v -64.2682 76.1446 8.46122 +v -64.684 76.1446 4.23977 +v -64.8228 76.1446 0.000164338 +v -64.684 76.1446 -4.23946 +v -64.2682 76.1446 -8.46091 +v -63.5773 76.1446 -12.6461 +v -62.6141 76.1446 -16.7772 +v -61.3827 76.1446 -20.8364 +v -59.8885 76.1446 -24.8065 +v -58.1379 76.1446 -28.6702 +v -56.1383 76.1446 -32.4112 +v -53.8983 76.1446 -36.0135 +v -51.4275 76.1446 -39.4615 +v -48.7365 76.1446 -42.7405 +v -45.8368 76.1446 -45.8365 +v -42.7408 76.1446 -48.7362 +v -39.4618 76.1446 -51.4273 +v -36.0138 76.1446 -53.8981 +v -32.4116 76.1446 -56.1381 +v -28.6706 76.1446 -58.1377 +v -24.8068 76.1446 -59.8884 +v -20.8368 76.1446 -61.3826 +v -16.7776 76.1446 -62.614 +v -12.6465 76.1446 -63.5772 +v -8.4613 76.1446 -64.2682 +v -4.23985 76.1446 -64.684 +v -0.000246506 76.1446 -64.8228 +v 4.23939 76.1446 -64.684 +v 8.46084 76.1446 -64.2683 +v 12.6461 76.1446 -63.5773 +v 16.7771 76.1446 -62.6141 +v 20.8364 76.1446 -61.3827 +v 24.8064 76.1446 -59.8886 +v 28.6702 76.1446 -58.1379 +v 32.4112 76.1446 -56.1383 +v 36.0134 76.1446 -53.8983 +v 39.4614 76.1446 -51.4275 +v 42.7404 76.1446 -48.7365 +v 45.8364 76.1446 -45.8368 +v 48.7362 76.1446 -42.7408 +v 51.4272 76.1446 -39.4618 +v 53.898 76.1446 -36.0139 +v 56.138 76.1446 -32.4117 +v 58.1377 76.1446 -28.6707 +v 59.8883 76.1446 -24.8069 +v 61.3826 76.1446 -20.8369 +v 62.6139 76.1446 -16.7777 +v 63.5772 76.1446 -12.6466 +v 64.2682 76.1446 -8.46138 +v 64.684 76.1446 -4.23993 +v 69.5682 71.835 5.88009e-39 +v 69.4193 71.835 4.54997 +v 68.973 71.835 9.08047 +v 68.2315 71.835 13.5721 +v 67.1977 71.835 18.0056 +v 65.8762 71.835 22.362 +v 64.2727 71.835 26.6226 +v 62.3938 71.835 30.7692 +v 60.2478 71.835 34.7841 +v 57.8439 71.835 38.65 +v 55.1922 71.835 42.3504 +v 52.3042 71.835 45.8695 +v 49.1922 71.835 49.1921 +v 45.8695 71.835 52.3041 +v 42.3505 71.835 55.1921 +v 38.6501 71.835 57.8438 +v 34.7842 71.835 60.2478 +v 30.7693 71.835 62.3938 +v 26.6227 71.835 64.2726 +v 22.362 71.835 65.8762 +v 18.0056 71.835 67.1977 +v 13.5722 71.835 68.2315 +v 9.08055 71.835 68.973 +v 4.55006 71.835 69.4193 +v 8.8184e-05 71.835 69.5682 +v -4.54989 71.835 69.4193 +v -9.08038 71.835 68.9731 +v -13.572 71.835 68.2315 +v -18.0055 71.835 67.1978 +v -22.3619 71.835 65.8763 +v -26.6225 71.835 64.2727 +v -30.7691 71.835 62.3939 +v -34.784 71.835 60.2479 +v -38.6499 71.835 57.8439 +v -42.3503 71.835 55.1922 +v -45.8694 71.835 52.3042 +v -49.1921 71.835 49.1922 +v -52.3041 71.835 45.8696 +v -55.1921 71.835 42.3505 +v -57.8438 71.835 38.6501 +v -60.2478 71.835 34.7842 +v -62.3938 71.835 30.7694 +v -64.2726 71.835 26.6227 +v -65.8762 71.835 22.3621 +v -67.1977 71.835 18.0057 +v -68.2314 71.835 13.5722 +v -68.973 71.835 9.08063 +v -69.4192 71.835 4.55015 +v -69.5682 71.835 0.000176368 +v -69.4193 71.835 -4.54981 +v -68.9731 71.835 -9.0803 +v -68.2315 71.835 -13.5719 +v -67.1978 71.835 -18.0054 +v -65.8763 71.835 -22.3618 +v -64.2727 71.835 -26.6224 +v -62.3939 71.835 -30.7691 +v -60.2479 71.835 -34.7839 +v -57.844 71.835 -38.6499 +v -55.1923 71.835 -42.3503 +v -52.3043 71.835 -45.8693 +v -49.1923 71.835 -49.192 +v -45.8697 71.835 -52.304 +v -42.3506 71.835 -55.192 +v -38.6502 71.835 -57.8437 +v -34.7843 71.835 -60.2477 +v -30.7694 71.835 -62.3937 +v -26.6228 71.835 -64.2726 +v -22.3622 71.835 -65.8762 +v -18.0058 71.835 -67.1977 +v -13.5723 71.835 -68.2314 +v -9.08072 71.835 -68.973 +v -4.55023 71.835 -69.4192 +v -0.000264552 71.835 -69.5682 +v 4.54974 71.835 -69.4193 +v 9.08023 71.835 -68.9731 +v 13.5718 71.835 -68.2315 +v 18.0053 71.835 -67.1978 +v 22.3617 71.835 -65.8763 +v 26.6223 71.835 -64.2728 +v 30.769 71.835 -62.3939 +v 34.7839 71.835 -60.248 +v 38.6498 71.835 -57.844 +v 42.3502 71.835 -55.1923 +v 45.8693 71.835 -52.3043 +v 49.1919 71.835 -49.1924 +v 52.304 71.835 -45.8697 +v 55.192 71.835 -42.3507 +v 57.8437 71.835 -38.6503 +v 60.2477 71.835 -34.7844 +v 62.3937 71.835 -30.7695 +v 64.2725 71.835 -26.6229 +v 65.8761 71.835 -22.3623 +v 67.1976 71.835 -18.0059 +v 68.2314 71.835 -13.5724 +v 68.973 71.835 -9.0808 +v 69.4192 71.835 -4.55032 +v 74.0278 67.2301 5.88009e-39 +v 73.8693 67.2301 4.84164 +v 73.3944 67.2301 9.66255 +v 72.6053 67.2301 14.4421 +v 71.5053 67.2301 19.1598 +v 70.0991 67.2301 23.7954 +v 68.3927 67.2301 28.3292 +v 66.3935 67.2301 32.7416 +v 64.1099 67.2301 37.0139 +v 61.5518 67.2301 41.1276 +v 58.7302 67.2301 45.0652 +v 55.657 67.2301 48.8099 +v 52.3456 67.2301 52.3455 +v 48.8099 67.2301 55.657 +v 45.0653 67.2301 58.7301 +v 41.1277 67.2301 61.5518 +v 37.0139 67.2301 64.1099 +v 32.7417 67.2301 66.3934 +v 28.3293 67.2301 68.3927 +v 23.7955 67.2301 70.0991 +v 19.1599 67.2301 71.5053 +v 14.4422 67.2301 72.6053 +v 9.66264 67.2301 73.3944 +v 4.84173 67.2301 73.8692 +v 9.38369e-05 67.2301 74.0278 +v -4.84155 67.2301 73.8693 +v -9.66247 67.2301 73.3944 +v -14.442 67.2301 72.6054 +v -19.1597 67.2301 71.5053 +v -23.7953 67.2301 70.0991 +v -28.3291 67.2301 68.3928 +v -32.7415 67.2301 66.3935 +v -37.0138 67.2301 64.11 +v -41.1275 67.2301 61.5519 +v -45.0651 67.2301 58.7302 +v -48.8098 67.2301 55.6571 +v -52.3454 67.2301 52.3456 +v -55.6569 67.2301 48.81 +v -58.7301 67.2301 45.0654 +v -61.5517 67.2301 41.1277 +v -64.1098 67.2301 37.014 +v -66.3934 67.2301 32.7418 +v -68.3927 67.2301 28.3293 +v -70.0991 67.2301 23.7956 +v -71.5053 67.2301 19.16 +v -72.6053 67.2301 14.4423 +v -73.3944 67.2301 9.66273 +v -73.8692 67.2301 4.84182 +v -74.0278 67.2301 0.000187674 +v -73.8693 67.2301 -4.84147 +v -73.3945 67.2301 -9.66237 +v -72.6054 67.2301 -14.4419 +v -71.5054 67.2301 -19.1596 +v -70.0992 67.2301 -23.7953 +v -68.3928 67.2301 -28.329 +v -66.3936 67.2301 -32.7415 +v -64.11 67.2301 -37.0137 +v -61.5519 67.2301 -41.1274 +v -58.7303 67.2301 -45.0651 +v -55.6572 67.2301 -48.8097 +v -52.3457 67.2301 -52.3454 +v -48.8101 67.2301 -55.6569 +v -45.0654 67.2301 -58.73 +v -41.1278 67.2301 -61.5517 +v -37.0141 67.2301 -64.1098 +v -32.7419 67.2301 -66.3934 +v -28.3294 67.2301 -68.3926 +v -23.7957 67.2301 -70.099 +v -19.16 67.2301 -71.5053 +v -14.4423 67.2301 -72.6053 +v -9.66282 67.2301 -73.3944 +v -4.84192 67.2301 -73.8692 +v -0.000281511 67.2301 -74.0278 +v 4.84139 67.2301 -73.8693 +v 9.6623 67.2301 -73.3945 +v 14.4418 67.2301 -72.6054 +v 19.1595 67.2301 -71.5054 +v 23.7952 67.2301 -70.0992 +v 28.3289 67.2301 -68.3928 +v 32.7414 67.2301 -66.3936 +v 37.0136 67.2301 -64.1101 +v 41.1274 67.2301 -61.552 +v 45.065 67.2301 -58.7304 +v 48.8097 67.2301 -55.6572 +v 52.3453 67.2301 -52.3458 +v 55.6568 67.2301 -48.8101 +v 58.73 67.2301 -45.0655 +v 61.5517 67.2301 -41.1279 +v 64.1097 67.2301 -37.0142 +v 66.3933 67.2301 -32.7419 +v 68.3926 67.2301 -28.3295 +v 70.099 67.2301 -23.7958 +v 71.5052 67.2301 -19.1601 +v 72.6053 67.2301 -14.4424 +v 73.3944 67.2301 -9.66291 +v 73.8692 67.2301 -4.84201 +v 78.1831 62.349 5.88009e-39 +v 78.0157 62.349 5.11342 +v 77.5142 62.349 10.2049 +v 76.6808 62.349 15.2528 +v 75.5191 62.349 20.2353 +v 74.0339 62.349 25.1311 +v 72.2318 62.349 29.9194 +v 70.1203 62.349 34.5795 +v 67.7086 62.349 39.0915 +v 65.0069 62.349 43.4362 +v 62.0269 62.349 47.5948 +v 58.7812 62.349 51.5497 +v 55.2838 62.349 55.2838 +v 51.5497 62.349 58.7811 +v 47.5949 62.349 62.0268 +v 43.4363 62.349 65.0068 +v 39.0916 62.349 67.7085 +v 34.5796 62.349 70.1203 +v 29.9194 62.349 72.2317 +v 25.1312 62.349 74.0339 +v 20.2353 62.349 75.5191 +v 15.2529 62.349 76.6808 +v 10.205 62.349 77.5142 +v 5.11351 62.349 78.0157 +v 9.91042e-05 62.349 78.1831 +v -5.11332 62.349 78.0157 +v -10.2048 62.349 77.5143 +v -15.2527 62.349 76.6809 +v -20.2352 62.349 75.5191 +v -25.131 62.349 74.034 +v -29.9193 62.349 72.2318 +v -34.5794 62.349 70.1203 +v -39.0914 62.349 67.7086 +v -43.4361 62.349 65.007 +v -47.5948 62.349 62.0269 +v -51.5496 62.349 58.7813 +v -55.2837 62.349 55.2839 +v -58.7811 62.349 51.5498 +v -62.0267 62.349 47.595 +v -65.0068 62.349 43.4363 +v -67.7085 62.349 39.0917 +v -70.1202 62.349 34.5797 +v -72.2317 62.349 29.9195 +v -74.0339 62.349 25.1313 +v -75.519 62.349 20.2354 +v -76.6808 62.349 15.2529 +v -77.5142 62.349 10.2051 +v -78.0157 62.349 5.11361 +v -78.1831 62.349 0.000198208 +v -78.0157 62.349 -5.11323 +v -77.5143 62.349 -10.2047 +v -76.6809 62.349 -15.2526 +v -75.5191 62.349 -20.2351 +v -74.034 62.349 -25.1309 +v -72.2318 62.349 -29.9192 +v -70.1204 62.349 -34.5793 +v -67.7087 62.349 -39.0914 +v -65.007 62.349 -43.436 +v -62.027 62.349 -47.5947 +v -58.7813 62.349 -51.5495 +v -55.284 62.349 -55.2836 +v -51.5499 62.349 -58.781 +v -47.595 62.349 -62.0267 +v -43.4364 62.349 -65.0067 +v -39.0918 62.349 -67.7084 +v -34.5797 62.349 -70.1202 +v -29.9196 62.349 -72.2317 +v -25.1314 62.349 -74.0339 +v -20.2355 62.349 -75.519 +v -15.253 62.349 -76.6808 +v -10.2052 62.349 -77.5142 +v -5.11371 62.349 -78.0157 +v -0.000297313 62.349 -78.1831 +v 5.11315 62.349 -78.0157 +v 10.2047 62.349 -77.5143 +v 15.2525 62.349 -76.6809 +v 20.235 62.349 -75.5192 +v 25.1308 62.349 -74.034 +v 29.9191 62.349 -72.2319 +v 34.5792 62.349 -70.1204 +v 39.0913 62.349 -67.7087 +v 43.4359 62.349 -65.007 +v 47.5946 62.349 -62.027 +v 51.5494 62.349 -58.7814 +v 55.2836 62.349 -55.284 +v 58.781 62.349 -51.5499 +v 62.0266 62.349 -47.5951 +v 65.0067 62.349 -43.4365 +v 67.7084 62.349 -39.0919 +v 70.1201 62.349 -34.5798 +v 72.2316 62.349 -29.9197 +v 74.0338 62.349 -25.1315 +v 75.519 62.349 -20.2356 +v 76.6808 62.349 -15.2531 +v 77.5142 62.349 -10.2053 +v 78.0157 62.349 -5.1138 +v 82.0172 57.2117 5.88009e-39 +v 81.8416 57.2117 5.36418 +v 81.3155 57.2117 10.7054 +v 80.4412 57.2117 16.0007 +v 79.2225 57.2117 21.2276 +v 77.6645 57.2117 26.3635 +v 75.774 57.2117 31.3866 +v 73.559 57.2117 36.2752 +v 71.029 57.2117 41.0086 +v 68.1948 57.2117 45.5663 +v 65.0686 57.2117 49.9289 +v 61.6638 57.2117 54.0777 +v 57.9949 57.2117 57.9949 +v 54.0777 57.2117 61.6637 +v 49.9289 57.2117 65.0686 +v 45.5664 57.2117 68.1948 +v 41.0086 57.2117 71.0289 +v 36.2753 57.2117 73.5589 +v 31.3867 57.2117 75.774 +v 26.3636 57.2117 77.6645 +v 21.2277 57.2117 79.2225 +v 16.0008 57.2117 80.4412 +v 10.7055 57.2117 81.3155 +v 5.36427 57.2117 81.8416 +v 0.000103964 57.2117 82.0172 +v -5.36408 57.2117 81.8416 +v -10.7053 57.2117 81.3155 +v -16.0007 57.2117 80.4413 +v -21.2275 57.2117 79.2225 +v -26.3634 57.2117 77.6646 +v -31.3865 57.2117 75.774 +v -36.2752 57.2117 73.559 +v -41.0085 57.2117 71.029 +v -45.5662 57.2117 68.1949 +v -49.9288 57.2117 65.0687 +v -54.0776 57.2117 61.6639 +v -57.9948 57.2117 57.995 +v -61.6637 57.2117 54.0778 +v -65.0685 57.2117 49.929 +v -68.1947 57.2117 45.5664 +v -71.0289 57.2117 41.0087 +v -73.5589 57.2117 36.2754 +v -75.7739 57.2117 31.3868 +v -77.6645 57.2117 26.3637 +v -79.2225 57.2117 21.2278 +v -80.4412 57.2117 16.0009 +v -81.3155 57.2117 10.7056 +v -81.8416 57.2117 5.36438 +v -82.0172 57.2117 0.000207928 +v -81.8416 57.2117 -5.36398 +v -81.3155 57.2117 -10.7052 +v -80.4413 57.2117 -16.0006 +v -79.2226 57.2117 -21.2274 +v -77.6646 57.2117 -26.3633 +v -75.7741 57.2117 -31.3864 +v -73.5591 57.2117 -36.2751 +v -71.0291 57.2117 -41.0084 +v -68.1949 57.2117 -45.5661 +v -65.0687 57.2117 -49.9287 +v -61.6639 57.2117 -54.0775 +v -57.9951 57.2117 -57.9947 +v -54.0779 57.2117 -61.6636 +v -49.9291 57.2117 -65.0685 +v -45.5665 57.2117 -68.1947 +v -41.0088 57.2117 -71.0288 +v -36.2755 57.2117 -73.5589 +v -31.3869 57.2117 -75.7739 +v -26.3638 57.2117 -77.6645 +v -21.2279 57.2117 -79.2224 +v -16.001 57.2117 -80.4412 +v -10.7057 57.2117 -81.3155 +v -5.36448 57.2117 -81.8416 +v -0.000311893 57.2117 -82.0172 +v 5.3639 57.2117 -81.8416 +v 10.7051 57.2117 -81.3156 +v 16.0005 57.2117 -80.4413 +v 21.2273 57.2117 -79.2226 +v 26.3632 57.2117 -77.6646 +v 31.3863 57.2117 -75.7741 +v 36.275 57.2117 -73.5591 +v 41.0083 57.2117 -71.0291 +v 45.566 57.2117 -68.195 +v 49.9286 57.2117 -65.0688 +v 54.0774 57.2117 -61.664 +v 57.9946 57.2117 -57.9952 +v 61.6636 57.2117 -54.0779 +v 65.0684 57.2117 -49.9292 +v 68.1946 57.2117 -45.5666 +v 71.0288 57.2117 -41.0089 +v 73.5588 57.2117 -36.2756 +v 75.7738 57.2117 -31.387 +v 77.6644 57.2117 -26.3639 +v 79.2224 57.2117 -21.228 +v 80.4412 57.2117 -16.0011 +v 81.3155 57.2117 -10.7058 +v 81.8416 57.2117 -5.36458 +v 85.5142 51.8393 5.88009e-39 +v 85.3311 51.8393 5.59289 +v 84.7827 51.8393 11.1618 +v 83.8711 51.8393 16.683 +v 82.6004 51.8393 22.1327 +v 80.976 51.8393 27.4876 +v 79.0049 51.8393 32.7249 +v 76.6954 51.8393 37.822 +v 74.0575 51.8393 42.7571 +v 71.1025 51.8393 47.5091 +v 67.843 51.8393 52.0577 +v 64.293 51.8393 56.3834 +v 60.4677 51.8393 60.4677 +v 56.3835 51.8393 64.293 +v 52.0578 51.8393 67.843 +v 47.5092 51.8393 71.1025 +v 42.7572 51.8393 74.0575 +v 37.822 51.8393 76.6954 +v 32.725 51.8393 79.0048 +v 27.4877 51.8393 80.976 +v 22.1328 51.8393 82.6004 +v 16.6831 51.8393 83.8711 +v 11.1619 51.8393 84.7826 +v 5.593 51.8393 85.3311 +v 0.000108397 51.8393 85.5142 +v -5.59279 51.8393 85.3312 +v -11.1617 51.8393 84.7827 +v -16.6829 51.8393 83.8711 +v -22.1326 51.8393 82.6004 +v -27.4875 51.8393 80.976 +v -32.7248 51.8393 79.0049 +v -37.8219 51.8393 76.6954 +v -42.757 51.8393 74.0576 +v -47.509 51.8393 71.1026 +v -52.0577 51.8393 67.8431 +v -56.3833 51.8393 64.2931 +v -60.4676 51.8393 60.4678 +v -64.2929 51.8393 56.3836 +v -67.8429 51.8393 52.0579 +v -71.1024 51.8393 47.5093 +v -74.0574 51.8393 42.7573 +v -76.6953 51.8393 37.8221 +v -79.0048 51.8393 32.7251 +v -80.976 51.8393 27.4878 +v -82.6004 51.8393 22.1329 +v -83.8711 51.8393 16.6832 +v -84.7826 51.8393 11.162 +v -85.3311 51.8393 5.5931 +v -85.5142 51.8393 0.000216794 +v -85.3312 51.8393 -5.59269 +v -84.7827 51.8393 -11.1616 +v -83.8711 51.8393 -16.6828 +v -82.6005 51.8393 -22.1325 +v -80.9761 51.8393 -27.4874 +v -79.0049 51.8393 -32.7247 +v -76.6955 51.8393 -37.8218 +v -74.0576 51.8393 -42.7569 +v -71.1026 51.8393 -47.509 +v -67.8432 51.8393 -52.0576 +v -64.2932 51.8393 -56.3833 +v -60.4679 51.8393 -60.4675 +v -56.3837 51.8393 -64.2928 +v -52.058 51.8393 -67.8428 +v -47.5094 51.8393 -71.1023 +v -42.7574 51.8393 -74.0574 +v -37.8222 51.8393 -76.6953 +v -32.7252 51.8393 -79.0047 +v -27.4879 51.8393 -80.9759 +v -22.133 51.8393 -82.6003 +v -16.6833 51.8393 -83.871 +v -11.1621 51.8393 -84.7826 +v -5.59321 51.8393 -85.3311 +v -0.000325191 51.8393 -85.5142 +v 5.5926 51.8393 -85.3312 +v 11.1615 51.8393 -84.7827 +v 16.6827 51.8393 -83.8712 +v 22.1324 51.8393 -82.6005 +v 27.4873 51.8393 -80.9761 +v 32.7246 51.8393 -79.005 +v 37.8217 51.8393 -76.6955 +v 42.7568 51.8393 -74.0577 +v 47.5089 51.8393 -71.1027 +v 52.0575 51.8393 -67.8432 +v 56.3832 51.8393 -64.2933 +v 60.4674 51.8393 -60.468 +v 64.2928 51.8393 -56.3837 +v 67.8428 51.8393 -52.0581 +v 71.1023 51.8393 -47.5095 +v 74.0573 51.8393 -42.7575 +v 76.6952 51.8393 -37.8223 +v 79.0047 51.8393 -32.7253 +v 80.9759 51.8393 -27.488 +v 82.6003 51.8393 -22.1331 +v 83.871 51.8393 -16.6834 +v 84.7826 51.8393 -11.1623 +v 85.3311 51.8393 -5.59332 +v 88.6599 46.2539 5.88009e-39 +v 88.4701 46.2539 5.79863 +v 87.9014 46.2539 11.5724 +v 86.9563 46.2539 17.2967 +v 85.6389 46.2539 22.9468 +v 83.9547 46.2539 28.4988 +v 81.9111 46.2539 33.9286 +v 79.5167 46.2539 39.2132 +v 76.7817 46.2539 44.3299 +v 73.718 46.2539 49.2568 +v 70.3386 46.2539 53.9727 +v 66.6581 46.2539 58.4575 +v 62.692 46.2539 62.692 +v 58.4576 46.2539 66.658 +v 53.9728 46.2539 70.3386 +v 49.2569 46.2539 73.718 +v 44.33 46.2539 76.7817 +v 39.2133 46.2539 79.5166 +v 33.9287 46.2539 81.911 +v 28.4989 46.2539 83.9547 +v 22.947 46.2539 85.6389 +v 17.2968 46.2539 86.9563 +v 11.5725 46.2539 87.9014 +v 5.79873 46.2539 88.4701 +v 0.000112384 46.2539 88.6599 +v -5.79852 46.2539 88.4701 +v -11.5723 46.2539 87.9014 +v -17.2966 46.2539 86.9563 +v -22.9467 46.2539 85.6389 +v -28.4987 46.2539 83.9548 +v -33.9286 46.2539 81.9111 +v -39.2132 46.2539 79.5167 +v -44.3298 46.2539 76.7818 +v -49.2567 46.2539 73.7181 +v -53.9726 46.2539 70.3387 +v -58.4574 46.2539 66.6581 +v -62.6919 46.2539 62.6921 +v -66.6579 46.2539 58.4576 +v -70.3385 46.2539 53.9729 +v -73.7179 46.2539 49.2569 +v -76.7816 46.2539 44.3301 +v -79.5166 46.2539 39.2134 +v -81.911 46.2539 33.9289 +v -83.9547 46.2539 28.499 +v -85.6388 46.2539 22.9471 +v -86.9563 46.2539 17.2969 +v -87.9014 46.2539 11.5726 +v -88.47 46.2539 5.79885 +v -88.6599 46.2539 0.000224769 +v -88.4701 46.2539 -5.79842 +v -87.9014 46.2539 -11.5722 +v -86.9564 46.2539 -17.2965 +v -85.6389 46.2539 -22.9466 +v -83.9548 46.2539 -28.4986 +v -81.9111 46.2539 -33.9285 +v -79.5167 46.2539 -39.213 +v -76.7818 46.2539 -44.3297 +v -73.7181 46.2539 -49.2566 +v -70.3388 46.2539 -53.9725 +v -66.6582 46.2539 -58.4573 +v -62.6922 46.2539 -62.6918 +v -58.4577 46.2539 -66.6579 +v -53.9729 46.2539 -70.3385 +v -49.257 46.2539 -73.7178 +v -44.3302 46.2539 -76.7816 +v -39.2135 46.2539 -79.5165 +v -33.929 46.2539 -81.9109 +v -28.4991 46.2539 -83.9546 +v -22.9471 46.2539 -85.6388 +v -17.297 46.2539 -86.9563 +v -11.5727 46.2539 -87.9014 +v -5.79896 46.2539 -88.47 +v -0.000337153 46.2539 -88.6599 +v 5.79833 46.2539 -88.4701 +v 11.5721 46.2539 -87.9014 +v 17.2964 46.2539 -86.9564 +v 22.9465 46.2539 -85.639 +v 28.4985 46.2539 -83.9548 +v 33.9283 46.2539 -81.9112 +v 39.213 46.2539 -79.5168 +v 44.3296 46.2539 -76.7819 +v 49.2565 46.2539 -73.7182 +v 53.9724 46.2539 -70.3388 +v 58.4572 46.2539 -66.6583 +v 62.6917 46.2539 -62.6923 +v 66.6578 46.2539 -58.4578 +v 70.3384 46.2539 -53.973 +v 73.7178 46.2539 -49.2571 +v 76.7815 46.2539 -44.3303 +v 79.5165 46.2539 -39.2136 +v 81.9109 46.2539 -33.9291 +v 83.9546 46.2539 -28.4992 +v 85.6388 46.2539 -22.9473 +v 86.9562 46.2539 -17.2971 +v 87.9013 46.2539 -11.5729 +v 88.47 46.2539 -5.79907 +v 91.4412 40.4784 5.88009e-39 +v 91.2454 40.4784 5.98054 +v 90.6589 40.4784 11.9355 +v 89.6842 40.4784 17.8393 +v 88.3254 40.4784 23.6667 +v 86.5885 40.4784 29.3928 +v 84.4807 40.4784 34.993 +v 82.0112 40.4784 40.4434 +v 79.1904 40.4784 45.7206 +v 76.0306 40.4784 50.802 +v 72.5452 40.4784 55.6659 +v 68.7492 40.4784 60.2913 +v 64.6588 40.4784 64.6587 +v 60.2914 40.4784 68.7491 +v 55.6659 40.4784 72.5452 +v 50.8021 40.4784 76.0306 +v 45.7207 40.4784 79.1904 +v 40.4435 40.4784 82.0111 +v 34.9931 40.4784 84.4806 +v 29.3929 40.4784 86.5884 +v 23.6668 40.4784 88.3254 +v 17.8394 40.4784 89.6842 +v 11.9356 40.4784 90.6589 +v 5.98065 40.4784 91.2454 +v 0.00011591 40.4784 91.4412 +v -5.98043 40.4784 91.2454 +v -11.9354 40.4784 90.6589 +v -17.8392 40.4784 89.6842 +v -23.6666 40.4784 88.3255 +v -29.3927 40.4784 86.5885 +v -34.9929 40.4784 84.4807 +v -40.4433 40.4784 82.0112 +v -45.7205 40.4784 79.1905 +v -50.8019 40.4784 76.0307 +v -55.6658 40.4784 72.5453 +v -60.2913 40.4784 68.7493 +v -64.6586 40.4784 64.6588 +v -68.749 40.4784 60.2915 +v -72.5451 40.4784 55.666 +v -76.0305 40.4784 50.8022 +v -79.1903 40.4784 45.7208 +v -82.0111 40.4784 40.4436 +v -84.4806 40.4784 34.9932 +v -86.5884 40.4784 29.393 +v -88.3254 40.4784 23.6669 +v -89.6842 40.4784 17.8395 +v -90.6589 40.4784 11.9357 +v -91.2454 40.4784 5.98076 +v -91.4412 40.4784 0.00023182 +v -91.2455 40.4784 -5.98032 +v -90.659 40.4784 -11.9352 +v -89.6842 40.4784 -17.8391 +v -88.3255 40.4784 -23.6665 +v -86.5885 40.4784 -29.3926 +v -84.4808 40.4784 -34.9928 +v -82.0113 40.4784 -40.4432 +v -79.1906 40.4784 -45.7204 +v -76.0307 40.4784 -50.8018 +v -72.5454 40.4784 -55.6657 +v -68.7493 40.4784 -60.2912 +v -64.6589 40.4784 -64.6585 +v -60.2916 40.4784 -68.749 +v -55.6661 40.4784 -72.545 +v -50.8023 40.4784 -76.0304 +v -45.7209 40.4784 -79.1903 +v -40.4437 40.4784 -82.011 +v -34.9933 40.4784 -84.4806 +v -29.3931 40.4784 -86.5884 +v -23.667 40.4784 -88.3254 +v -17.8396 40.4784 -89.6841 +v -11.9358 40.4784 -90.6589 +v -5.98088 40.4784 -91.2454 +v -0.00034773 40.4784 -91.4412 +v 5.98023 40.4784 -91.2455 +v 11.9351 40.4784 -90.659 +v 17.839 40.4784 -89.6843 +v 23.6664 40.4784 -88.3255 +v 29.3925 40.4784 -86.5886 +v 34.9927 40.4784 -84.4808 +v 40.4431 40.4784 -82.0113 +v 45.7203 40.4784 -79.1906 +v 50.8017 40.4784 -76.0308 +v 55.6656 40.4784 -72.5454 +v 60.2911 40.4784 -68.7494 +v 64.6584 40.4784 -64.659 +v 68.7489 40.4784 -60.2917 +v 72.545 40.4784 -55.6662 +v 76.0304 40.4784 -50.8024 +v 79.1902 40.4784 -45.721 +v 82.011 40.4784 -40.4438 +v 84.4805 40.4784 -34.9934 +v 86.5883 40.4784 -29.3932 +v 88.3253 40.4784 -23.6671 +v 89.6841 40.4784 -17.8397 +v 90.6589 40.4784 -11.9359 +v 91.2454 40.4784 -5.98099 +v 93.8468 34.5366 5.88009e-39 +v 93.6459 34.5366 6.13787 +v 93.0439 34.5366 12.2495 +v 92.0436 34.5366 18.3086 +v 90.6491 34.5366 24.2893 +v 88.8664 34.5366 30.166 +v 86.7032 34.5366 35.9136 +v 84.1687 34.5366 41.5074 +v 81.2737 34.5366 46.9234 +v 78.0308 34.5366 52.1385 +v 74.4537 34.5366 57.1303 +v 70.5578 34.5366 61.8775 +v 66.3598 34.5366 66.3597 +v 61.8775 34.5366 70.5577 +v 57.1304 34.5366 74.4536 +v 52.1385 34.5366 78.0307 +v 46.9235 34.5366 81.2737 +v 41.5075 34.5366 84.1686 +v 35.9137 34.5366 86.7031 +v 30.1662 34.5366 88.8663 +v 24.2894 34.5366 90.649 +v 18.3087 34.5366 92.0435 +v 12.2496 34.5366 93.0439 +v 6.13798 34.5366 93.6459 +v 0.000118959 34.5366 93.8468 +v -6.13775 34.5366 93.6459 +v -12.2493 34.5366 93.044 +v -18.3085 34.5366 92.0436 +v -24.2892 34.5366 90.6491 +v -30.1659 34.5366 88.8664 +v -35.9135 34.5366 86.7032 +v -41.5073 34.5366 84.1687 +v -46.9233 34.5366 81.2738 +v -52.1384 34.5366 78.0309 +v -57.1302 34.5366 74.4538 +v -61.8774 34.5366 70.5579 +v -66.3596 34.5366 66.3598 +v -70.5577 34.5366 61.8776 +v -74.4536 34.5366 57.1305 +v -78.0307 34.5366 52.1387 +v -81.2736 34.5366 46.9236 +v -84.1686 34.5366 41.5076 +v -86.7031 34.5366 35.9138 +v -88.8663 34.5366 30.1663 +v -90.649 34.5366 24.2895 +v -92.0435 34.5366 18.3088 +v -93.0439 34.5366 12.2497 +v -93.6459 34.5366 6.1381 +v -93.8468 34.5366 0.000237919 +v -93.6459 34.5366 -6.13765 +v -93.044 34.5366 -12.2492 +v -92.0436 34.5366 -18.3084 +v -90.6491 34.5366 -24.2891 +v -88.8665 34.5366 -30.1658 +v -86.7032 34.5366 -35.9134 +v -84.1688 34.5366 -41.5072 +v -81.2739 34.5366 -46.9232 +v -78.0309 34.5366 -52.1383 +v -74.4538 34.5366 -57.1301 +v -70.558 34.5366 -61.8773 +v -66.3599 34.5366 -66.3595 +v -61.8777 34.5366 -70.5576 +v -57.1305 34.5366 -74.4535 +v -52.1387 34.5366 -78.0306 +v -46.9237 34.5366 -81.2736 +v -41.5077 34.5366 -84.1685 +v -35.9139 34.5366 -86.703 +v -30.1663 34.5366 -88.8663 +v -24.2896 34.5366 -90.649 +v -18.3089 34.5366 -92.0435 +v -12.2498 34.5366 -93.0439 +v -6.13822 34.5366 -93.6459 +v -0.000356878 34.5366 -93.8468 +v 6.13755 34.5366 -93.6459 +v 12.2491 34.5366 -93.044 +v 18.3083 34.5366 -92.0436 +v 24.289 34.5366 -90.6491 +v 30.1657 34.5366 -88.8665 +v 35.9133 34.5366 -86.7033 +v 41.5071 34.5366 -84.1688 +v 46.9231 34.5366 -81.2739 +v 52.1382 34.5366 -78.031 +v 57.13 34.5366 -74.4539 +v 61.8772 34.5366 -70.558 +v 66.3594 34.5366 -66.36 +v 70.5575 34.5366 -61.8778 +v 74.4534 34.5366 -57.1306 +v 78.0305 34.5366 -52.1388 +v 81.2735 34.5366 -46.9238 +v 84.1685 34.5366 -41.5078 +v 86.703 34.5366 -35.914 +v 88.8662 34.5366 -30.1665 +v 90.6489 34.5366 -24.2898 +v 92.0435 34.5366 -18.309 +v 93.0439 34.5366 -12.2499 +v 93.6458 34.5366 -6.13834 +v 95.8668 28.4529 5.88009e-39 +v 95.6615 28.4529 6.26998 +v 95.0466 28.4529 12.5131 +v 94.0247 28.4529 18.7027 +v 92.6002 28.4529 24.8121 +v 90.7791 28.4529 30.8153 +v 88.5694 28.4529 36.6866 +v 85.9803 28.4529 42.4008 +v 83.0231 28.4529 47.9333 +v 79.7103 28.4529 53.2607 +v 76.0562 28.4529 58.3599 +v 72.0765 28.4529 63.2093 +v 67.7881 28.4529 67.788 +v 63.2094 28.4529 72.0764 +v 58.36 28.4529 76.0562 +v 53.2608 28.4529 79.7103 +v 47.9334 28.4529 83.023 +v 42.4009 28.4529 85.9802 +v 36.6867 28.4529 88.5693 +v 30.8154 28.4529 90.7791 +v 24.8122 28.4529 92.6002 +v 18.7028 28.4529 94.0247 +v 12.5132 28.4529 95.0466 +v 6.27009 28.4529 95.6615 +v 0.00012152 28.4529 95.8668 +v -6.26986 28.4529 95.6615 +v -12.513 28.4529 95.0466 +v -18.7026 28.4529 94.0247 +v -24.812 28.4529 92.6002 +v -30.8152 28.4529 90.7792 +v -36.6865 28.4529 88.5694 +v -42.4007 28.4529 85.9803 +v -47.9332 28.4529 83.0231 +v -53.2606 28.4529 79.7104 +v -58.3599 28.4529 76.0563 +v -63.2092 28.4529 72.0766 +v -67.7879 28.4529 67.7882 +v -72.0763 28.4529 63.2095 +v -76.0561 28.4529 58.3601 +v -79.7102 28.4529 53.2609 +v -83.023 28.4529 47.9335 +v -85.9802 28.4529 42.401 +v -88.5693 28.4529 36.6868 +v -90.7791 28.4529 30.8156 +v -92.6001 28.4529 24.8124 +v -94.0247 28.4529 18.7029 +v -95.0466 28.4529 12.5133 +v -95.6615 28.4529 6.27022 +v -95.8668 28.4529 0.00024304 +v -95.6615 28.4529 -6.26975 +v -95.0466 28.4529 -12.5129 +v -94.0247 28.4529 -18.7024 +v -92.6002 28.4529 -24.8119 +v -90.7792 28.4529 -30.8151 +v -88.5694 28.4529 -36.6864 +v -85.9804 28.4529 -42.4005 +v -83.0232 28.4529 -47.9331 +v -79.7104 28.4529 -53.2605 +v -76.0564 28.4529 -58.3598 +v -72.0766 28.4529 -63.2091 +v -67.7882 28.4529 -67.7878 +v -63.2096 28.4529 -72.0763 +v -58.3602 28.4529 -76.056 +v -53.261 28.4529 -79.7101 +v -47.9336 28.4529 -83.0229 +v -42.4011 28.4529 -85.9801 +v -36.6869 28.4529 -88.5692 +v -30.8156 28.4529 -90.779 +v -24.8124 28.4529 -92.6001 +v -18.703 28.4529 -94.0246 +v -12.5135 28.4529 -95.0466 +v -6.27034 28.4529 -95.6615 +v -0.000364559 28.4529 -95.8668 +v 6.26966 28.4529 -95.6615 +v 12.5128 28.4529 -95.0467 +v 18.7023 28.4529 -94.0248 +v 24.8118 28.4529 -92.6003 +v 30.815 28.4529 -90.7792 +v 36.6863 28.4529 -88.5695 +v 42.4005 28.4529 -85.9804 +v 47.9331 28.4529 -83.0232 +v 53.2604 28.4529 -79.7105 +v 58.3597 28.4529 -76.0565 +v 63.209 28.4529 -72.0767 +v 67.7877 28.4529 -67.7883 +v 72.0762 28.4529 -63.2096 +v 76.056 28.4529 -58.3603 +v 79.7101 28.4529 -53.2611 +v 83.0228 28.4529 -47.9338 +v 85.9801 28.4529 -42.4012 +v 88.5692 28.4529 -36.687 +v 90.779 28.4529 -30.8158 +v 92.6001 28.4529 -24.8126 +v 94.0246 28.4529 -18.7031 +v 95.0465 28.4529 -12.5136 +v 95.6615 28.4529 -6.27046 +v 97.4928 22.2522 5.88009e-39 +v 97.284 22.2522 6.37633 +v 96.6587 22.2522 12.7254 +v 95.6195 22.2522 19.0199 +v 94.1708 22.2522 25.233 +v 92.3188 22.2522 31.338 +v 90.0716 22.2522 37.3088 +v 87.4386 22.2522 43.1199 +v 84.4312 22.2522 48.7463 +v 81.0623 22.2522 54.164 +v 77.3462 22.2522 59.3498 +v 73.299 22.2522 64.2814 +v 68.9378 22.2522 68.9378 +v 64.2815 22.2522 73.2989 +v 59.3499 22.2522 77.3462 +v 54.1641 22.2522 81.0622 +v 48.7465 22.2522 84.4312 +v 43.12 22.2522 87.4386 +v 37.309 22.2522 90.0715 +v 31.3381 22.2522 92.3188 +v 25.2331 22.2522 94.1708 +v 19.02 22.2522 95.6195 +v 12.7255 22.2522 96.6587 +v 6.37644 22.2522 97.284 +v 0.000123581 22.2522 97.4928 +v -6.37621 22.2522 97.284 +v -12.7252 22.2522 96.6587 +v -19.0198 22.2522 95.6195 +v -25.2328 22.2522 94.1708 +v -31.3379 22.2522 92.3189 +v -37.3087 22.2522 90.0716 +v -43.1198 22.2522 87.4387 +v -48.7462 22.2522 84.4313 +v -54.1639 22.2522 81.0624 +v -59.3497 22.2522 77.3463 +v -64.2813 22.2522 73.2991 +v -68.9377 22.2522 68.9379 +v -73.2988 22.2522 64.2816 +v -77.3461 22.2522 59.35 +v -81.0622 22.2522 54.1642 +v -84.4311 22.2522 48.7465 +v -87.4385 22.2522 43.1201 +v -90.0715 22.2522 37.3091 +v -92.3188 22.2522 31.3382 +v -94.1707 22.2522 25.2332 +v -95.6194 22.2522 19.0201 +v -96.6587 22.2522 12.7256 +v -97.284 22.2522 6.37657 +v -97.4928 22.2522 0.000247162 +v -97.284 22.2522 -6.3761 +v -96.6587 22.2522 -12.7251 +v -95.6195 22.2522 -19.0197 +v -94.1708 22.2522 -25.2327 +v -92.3189 22.2522 -31.3378 +v -90.0717 22.2522 -37.3086 +v -87.4387 22.2522 -43.1197 +v -84.4314 22.2522 -48.7461 +v -81.0624 22.2522 -54.1639 +v -77.3464 22.2522 -59.3496 +v -73.2991 22.2522 -64.2812 +v -68.938 22.2522 -68.9376 +v -64.2817 22.2522 -73.2987 +v -59.3501 22.2522 -77.346 +v -54.1643 22.2522 -81.0621 +v -48.7467 22.2522 -84.4311 +v -43.1202 22.2522 -87.4385 +v -37.3092 22.2522 -90.0714 +v -31.3383 22.2522 -92.3187 +v -25.2333 22.2522 -94.1707 +v -19.0202 22.2522 -95.6194 +v -12.7257 22.2522 -96.6587 +v -6.37669 22.2522 -97.284 +v -0.000370743 22.2522 -97.4928 +v 6.376 22.2522 -97.284 +v 12.725 22.2522 -96.6588 +v 19.0195 22.2522 -95.6195 +v 25.2326 22.2522 -94.1709 +v 31.3377 22.2522 -92.319 +v 37.3085 22.2522 -90.0717 +v 43.1196 22.2522 -87.4388 +v 48.7461 22.2522 -84.4314 +v 54.1638 22.2522 -81.0625 +v 59.3495 22.2522 -77.3465 +v 64.2811 22.2522 -73.2992 +v 68.9375 22.2522 -68.9381 +v 73.2987 22.2522 -64.2817 +v 77.346 22.2522 -59.3502 +v 81.062 22.2522 -54.1644 +v 84.431 22.2522 -48.7468 +v 87.4384 22.2522 -43.1204 +v 90.0714 22.2522 -37.3093 +v 92.3187 22.2522 -31.3384 +v 94.1707 22.2522 -25.2334 +v 95.6194 22.2522 -19.0203 +v 96.6586 22.2522 -12.7258 +v 97.284 22.2522 -6.37681 +v 98.7182 15.9601 5.88009e-39 +v 98.5068 15.9601 6.45647 +v 97.8736 15.9601 12.8853 +v 96.8213 15.9601 19.2589 +v 95.3544 15.9601 25.5501 +v 93.4792 15.9601 31.7319 +v 91.2037 15.9601 37.7778 +v 88.5376 15.9601 43.6619 +v 85.4925 15.9601 49.359 +v 82.0812 15.9601 54.8448 +v 78.3184 15.9601 60.0958 +v 74.2203 15.9601 65.0894 +v 69.8043 15.9601 69.8042 +v 65.0895 15.9601 74.2202 +v 60.0959 15.9601 78.3183 +v 54.8449 15.9601 82.0811 +v 49.3591 15.9601 85.4924 +v 43.662 15.9601 88.5376 +v 37.7779 15.9601 91.2037 +v 31.732 15.9601 93.4792 +v 25.5502 15.9601 95.3544 +v 19.2591 15.9601 96.8213 +v 12.8854 15.9601 97.8736 +v 6.45659 15.9601 98.5068 +v 0.000125134 15.9601 98.7182 +v -6.45635 15.9601 98.5068 +v -12.8852 15.9601 97.8736 +v -19.2588 15.9601 96.8213 +v -25.55 15.9601 95.3545 +v -31.7318 15.9601 93.4792 +v -37.7777 15.9601 91.2037 +v -43.6618 15.9601 88.5377 +v -49.3589 15.9601 85.4925 +v -54.8447 15.9601 82.0812 +v -60.0957 15.9601 78.3185 +v -65.0893 15.9601 74.2204 +v -69.8041 15.9601 69.8044 +v -74.2201 15.9601 65.0895 +v -78.3183 15.9601 60.096 +v -82.081 15.9601 54.845 +v -85.4923 15.9601 49.3592 +v -88.5375 15.9601 43.6621 +v -91.2036 15.9601 37.778 +v -93.4791 15.9601 31.7321 +v -95.3544 15.9601 25.5504 +v -96.8213 15.9601 19.2592 +v -97.8736 15.9601 12.8855 +v -98.5068 15.9601 6.45671 +v -98.7182 15.9601 0.000250268 +v -98.5068 15.9601 -6.45624 +v -97.8736 15.9601 -12.8851 +v -96.8214 15.9601 -19.2587 +v -95.3545 15.9601 -25.5499 +v -93.4793 15.9601 -31.7317 +v -91.2038 15.9601 -37.7776 +v -88.5378 15.9601 -43.6617 +v -85.4926 15.9601 -49.3588 +v -82.0813 15.9601 -54.8446 +v -78.3186 15.9601 -60.0956 +v -74.2204 15.9601 -65.0892 +v -69.8045 15.9601 -69.8041 +v -65.0896 15.9601 -74.22 +v -60.096 15.9601 -78.3182 +v -54.8451 15.9601 -82.081 +v -49.3594 15.9601 -85.4923 +v -43.6622 15.9601 -88.5375 +v -37.7781 15.9601 -91.2036 +v -31.7322 15.9601 -93.4791 +v -25.5505 15.9601 -95.3543 +v -19.2593 15.9601 -96.8213 +v -12.8857 15.9601 -97.8736 +v -6.45684 15.9601 -98.5068 +v -0.000375403 15.9601 -98.7182 +v 6.45614 15.9601 -98.5068 +v 12.885 15.9601 -97.8737 +v 19.2586 15.9601 -96.8214 +v 25.5498 15.9601 -95.3545 +v 31.7315 15.9601 -93.4793 +v 37.7774 15.9601 -91.2038 +v 43.6616 15.9601 -88.5378 +v 49.3587 15.9601 -85.4926 +v 54.8445 15.9601 -82.0814 +v 60.0955 15.9601 -78.3186 +v 65.0891 15.9601 -74.2205 +v 69.804 15.9601 -69.8046 +v 74.22 15.9601 -65.0897 +v 78.3181 15.9601 -60.0961 +v 82.0809 15.9601 -54.8452 +v 85.4922 15.9601 -49.3595 +v 88.5374 15.9601 -43.6623 +v 91.2035 15.9601 -37.7782 +v 93.4791 15.9601 -31.7323 +v 95.3543 15.9601 -25.5506 +v 96.8212 15.9601 -19.2594 +v 97.8736 15.9601 -12.8858 +v 98.5068 15.9601 -6.45696 +v 99.5379 9.60241 5.88009e-39 +v 99.3248 9.60241 6.51009 +v 98.6863 9.60241 12.9923 +v 97.6253 9.60241 19.4189 +v 96.1462 9.60241 25.7623 +v 94.2554 9.60241 31.9954 +v 91.961 9.60241 38.0915 +v 89.2729 9.60241 44.0245 +v 86.2024 9.60241 49.7689 +v 82.7628 9.60241 55.3003 +v 78.9688 9.60241 60.5948 +v 74.8366 9.60241 65.6299 +v 70.384 9.60241 70.3839 +v 65.63 9.60241 74.8365 +v 60.5949 9.60241 78.9687 +v 55.3004 9.60241 82.7627 +v 49.769 9.60241 86.2023 +v 44.0246 9.60241 89.2728 +v 38.0916 9.60241 91.961 +v 31.9955 9.60241 94.2554 +v 25.7624 9.60241 96.1462 +v 19.419 9.60241 97.6253 +v 12.9924 9.60241 98.6863 +v 6.5102 9.60241 99.3248 +v 0.000126173 9.60241 99.5379 +v -6.50996 9.60241 99.3248 +v -12.9922 9.60241 98.6864 +v -19.4188 9.60241 97.6253 +v -25.7622 9.60241 96.1463 +v -31.9953 9.60241 94.2555 +v -38.0914 9.60241 91.9611 +v -44.0244 9.60241 89.2729 +v -49.7688 9.60241 86.2024 +v -55.3002 9.60241 82.7628 +v -60.5947 9.60241 78.9688 +v -65.6298 9.60241 74.8367 +v -70.3838 9.60241 70.3841 +v -74.8364 9.60241 65.63 +v -78.9686 9.60241 60.595 +v -82.7626 9.60241 55.3005 +v -86.2023 9.60241 49.7691 +v -89.2727 9.60241 44.0247 +v -91.9609 9.60241 38.0917 +v -94.2554 9.60241 31.9956 +v -96.1462 9.60241 25.7625 +v -97.6253 9.60241 19.4191 +v -98.6863 9.60241 12.9925 +v -99.3248 9.60241 6.51033 +v -99.5379 9.60241 0.000252347 +v -99.3248 9.60241 -6.50985 +v -98.6864 9.60241 -12.9921 +v -97.6254 9.60241 -19.4186 +v -96.1463 9.60241 -25.7621 +v -94.2555 9.60241 -31.9952 +v -91.9611 9.60241 -38.0913 +v -89.2729 9.60241 -44.0242 +v -86.2025 9.60241 -49.7687 +v -82.7629 9.60241 -55.3001 +v -78.9689 9.60241 -60.5946 +v -74.8368 9.60241 -65.6297 +v -70.3841 9.60241 -70.3837 +v -65.6301 9.60241 -74.8364 +v -60.5951 9.60241 -78.9686 +v -55.3006 9.60241 -82.7626 +v -49.7692 9.60241 -86.2022 +v -44.0248 9.60241 -89.2727 +v -38.0918 9.60241 -91.9609 +v -31.9957 9.60241 -94.2553 +v -25.7626 9.60241 -96.1461 +v -19.4192 9.60241 -97.6252 +v -12.9927 9.60241 -98.6863 +v -6.51045 9.60241 -99.3248 +v -0.00037852 9.60241 -99.5379 +v 6.50975 9.60241 -99.3248 +v 12.9919 9.60241 -98.6864 +v 19.4185 9.60241 -97.6254 +v 25.7619 9.60241 -96.1463 +v 31.995 9.60241 -94.2556 +v 38.0911 9.60241 -91.9612 +v 44.0242 9.60241 -89.273 +v 49.7686 9.60241 -86.2025 +v 55.3 9.60241 -82.763 +v 60.5945 9.60241 -78.969 +v 65.6296 9.60241 -74.8368 +v 70.3836 9.60241 -70.3842 +v 74.8363 9.60241 -65.6302 +v 78.9685 9.60241 -60.5952 +v 82.7625 9.60241 -55.3007 +v 86.2021 9.60241 -49.7693 +v 89.2726 9.60241 -44.0249 +v 91.9609 9.60241 -38.0919 +v 94.2553 9.60241 -31.9958 +v 96.1461 9.60241 -25.7627 +v 97.6252 9.60241 -19.4193 +v 98.6863 9.60241 -12.9928 +v 99.3248 9.60241 -6.51058 +v 99.9486 3.20528 5.88009e-39 +v 99.7346 3.20528 6.53695 +v 99.0935 3.20528 13.0459 +v 98.0281 3.20528 19.499 +v 96.543 3.20528 25.8686 +v 94.6444 3.20528 32.1274 +v 92.3405 3.20528 38.2486 +v 89.6412 3.20528 44.2061 +v 86.5581 3.20528 49.9743 +v 83.1043 3.20528 55.5284 +v 79.2946 3.20528 60.8448 +v 75.1454 3.20528 65.9007 +v 70.6744 3.20528 70.6743 +v 65.9007 3.20528 75.1453 +v 60.8449 3.20528 79.2945 +v 55.5285 3.20528 83.1042 +v 49.9744 3.20528 86.558 +v 44.2062 3.20528 89.6412 +v 38.2488 3.20528 92.3404 +v 32.1275 3.20528 94.6443 +v 25.8687 3.20528 96.5429 +v 19.4991 3.20528 98.0281 +v 13.046 3.20528 99.0935 +v 6.53707 3.20528 99.7346 +v 0.000126694 3.20528 99.9486 +v -6.53682 3.20528 99.7346 +v -13.0458 3.20528 99.0936 +v -19.4989 3.20528 98.0282 +v -25.8685 3.20528 96.543 +v -32.1273 3.20528 94.6444 +v -38.2485 3.20528 92.3405 +v -44.206 3.20528 89.6413 +v -49.9742 3.20528 86.5581 +v -55.5283 3.20528 83.1043 +v -60.8447 3.20528 79.2947 +v -65.9006 3.20528 75.1455 +v -70.6742 3.20528 70.6745 +v -75.1452 3.20528 65.9008 +v -79.2944 3.20528 60.845 +v -83.1041 3.20528 55.5286 +v -86.5579 3.20528 49.9745 +v -89.6411 3.20528 44.2063 +v -92.3404 3.20528 38.2489 +v -94.6443 3.20528 32.1276 +v -96.5429 3.20528 25.8688 +v -98.0281 3.20528 19.4992 +v -99.0935 3.20528 13.0461 +v -99.7346 3.20528 6.53719 +v -99.9486 3.20528 0.000253388 +v -99.7346 3.20528 -6.53671 +v -99.0936 3.20528 -13.0457 +v -98.0282 3.20528 -19.4988 +v -96.543 3.20528 -25.8684 +v -94.6444 3.20528 -32.1272 +v -92.3406 3.20528 -38.2484 +v -89.6413 3.20528 -44.2059 +v -86.5582 3.20528 -49.9741 +v -83.1044 3.20528 -55.5282 +v -79.2947 3.20528 -60.8446 +v -75.1455 3.20528 -65.9005 +v -70.6746 3.20528 -70.6741 +v -65.9009 3.20528 -75.1451 +v -60.8451 3.20528 -79.2944 +v -55.5287 3.20528 -83.1041 +v -49.9746 3.20528 -86.5579 +v -44.2064 3.20528 -89.641 +v -38.249 3.20528 -92.3403 +v -32.1277 3.20528 -94.6443 +v -25.8689 3.20528 -96.5429 +v -19.4993 3.20528 -98.0281 +v -13.0463 3.20528 -99.0935 +v -6.53732 3.20528 -99.7346 +v -0.000380082 3.20528 -99.9486 +v 6.53661 3.20528 -99.7346 +v 13.0456 3.20528 -99.0936 +v 19.4986 3.20528 -98.0282 +v 25.8682 3.20528 -96.5431 +v 32.1271 3.20528 -94.6445 +v 38.2483 3.20528 -92.3406 +v 44.2058 3.20528 -89.6414 +v 49.974 3.20528 -86.5582 +v 55.5281 3.20528 -83.1045 +v 60.8445 3.20528 -79.2948 +v 65.9004 3.20528 -75.1456 +v 70.674 3.20528 -70.6747 +v 75.1451 3.20528 -65.901 +v 79.2943 3.20528 -60.8452 +v 83.104 3.20528 -55.5288 +v 86.5578 3.20528 -49.9747 +v 89.641 3.20528 -44.2066 +v 92.3403 3.20528 -38.2491 +v 94.6442 3.20528 -32.1278 +v 96.5428 3.20528 -25.869 +v 98.028 3.20528 -19.4995 +v 99.0935 3.20528 -13.0464 +v 99.7346 3.20528 -6.53744 +v 99.9486 -3.20503 5.88009e-39 +v 99.7346 -3.20503 6.53695 +v 99.0936 -3.20503 13.0459 +v 98.0281 -3.20503 19.499 +v 96.543 -3.20503 25.8686 +v 94.6444 -3.20503 32.1274 +v 92.3405 -3.20503 38.2487 +v 89.6412 -3.20503 44.2061 +v 86.5581 -3.20503 49.9743 +v 83.1043 -3.20503 55.5284 +v 79.2946 -3.20503 60.8448 +v 75.1454 -3.20503 65.9007 +v 70.6744 -3.20503 70.6743 +v 65.9008 -3.20503 75.1453 +v 60.8449 -3.20503 79.2945 +v 55.5285 -3.20503 83.1042 +v 49.9744 -3.20503 86.558 +v 44.2062 -3.20503 89.6412 +v 38.2488 -3.20503 92.3405 +v 32.1275 -3.20503 94.6443 +v 25.8687 -3.20503 96.5429 +v 19.4991 -3.20503 98.0281 +v 13.046 -3.20503 99.0935 +v 6.53707 -3.20503 99.7346 +v 0.000126694 -3.20503 99.9486 +v -6.53683 -3.20503 99.7346 +v -13.0458 -3.20503 99.0936 +v -19.4989 -3.20503 98.0282 +v -25.8685 -3.20503 96.543 +v -32.1273 -3.20503 94.6444 +v -38.2485 -3.20503 92.3405 +v -44.206 -3.20503 89.6413 +v -49.9742 -3.20503 86.5581 +v -55.5283 -3.20503 83.1043 +v -60.8447 -3.20503 79.2947 +v -65.9006 -3.20503 75.1455 +v -70.6742 -3.20503 70.6745 +v -75.1452 -3.20503 65.9008 +v -79.2945 -3.20503 60.845 +v -83.1041 -3.20503 55.5287 +v -86.558 -3.20503 49.9745 +v -89.6411 -3.20503 44.2063 +v -92.3404 -3.20503 38.2489 +v -94.6443 -3.20503 32.1276 +v -96.5429 -3.20503 25.8688 +v -98.0281 -3.20503 19.4992 +v -99.0935 -3.20503 13.0461 +v -99.7346 -3.20503 6.53719 +v -99.9486 -3.20503 0.000253388 +v -99.7346 -3.20503 -6.53671 +v -99.0936 -3.20503 -13.0457 +v -98.0282 -3.20503 -19.4988 +v -96.543 -3.20503 -25.8684 +v -94.6444 -3.20503 -32.1272 +v -92.3406 -3.20503 -38.2484 +v -89.6413 -3.20503 -44.2059 +v -86.5582 -3.20503 -49.9741 +v -83.1044 -3.20503 -55.5283 +v -79.2948 -3.20503 -60.8446 +v -75.1456 -3.20503 -65.9005 +v -70.6746 -3.20503 -70.6741 +v -65.9009 -3.20503 -75.1451 +v -60.8451 -3.20503 -79.2944 +v -55.5287 -3.20503 -83.1041 +v -49.9746 -3.20503 -86.5579 +v -44.2064 -3.20503 -89.641 +v -38.249 -3.20503 -92.3404 +v -32.1277 -3.20503 -94.6443 +v -25.8689 -3.20503 -96.5429 +v -19.4993 -3.20503 -98.0281 +v -13.0463 -3.20503 -99.0935 +v -6.53732 -3.20503 -99.7346 +v -0.000380082 -3.20503 -99.9486 +v 6.53661 -3.20503 -99.7346 +v 13.0456 -3.20503 -99.0936 +v 19.4986 -3.20503 -98.0282 +v 25.8682 -3.20503 -96.5431 +v 32.1271 -3.20503 -94.6445 +v 38.2483 -3.20503 -92.3406 +v 44.2058 -3.20503 -89.6414 +v 49.974 -3.20503 -86.5582 +v 55.5281 -3.20503 -83.1045 +v 60.8445 -3.20503 -79.2948 +v 65.9004 -3.20503 -75.1456 +v 70.674 -3.20503 -70.6747 +v 75.1451 -3.20503 -65.901 +v 79.2943 -3.20503 -60.8452 +v 83.104 -3.20503 -55.5288 +v 86.5578 -3.20503 -49.9747 +v 89.641 -3.20503 -44.2066 +v 92.3403 -3.20503 -38.2491 +v 94.6442 -3.20503 -32.1278 +v 96.5428 -3.20503 -25.869 +v 98.028 -3.20503 -19.4995 +v 99.0935 -3.20503 -13.0464 +v 99.7346 -3.20503 -6.53745 +v 99.5379 -9.60217 5.88009e-39 +v 99.3248 -9.60217 6.51009 +v 98.6864 -9.60217 12.9923 +v 97.6253 -9.60217 19.4189 +v 96.1463 -9.60217 25.7623 +v 94.2555 -9.60217 31.9954 +v 91.9611 -9.60217 38.0915 +v 89.2729 -9.60217 44.0245 +v 86.2024 -9.60217 49.7689 +v 82.7628 -9.60217 55.3003 +v 78.9688 -9.60217 60.5948 +v 74.8366 -9.60217 65.6299 +v 70.384 -9.60217 70.3839 +v 65.63 -9.60217 74.8365 +v 60.5949 -9.60217 78.9687 +v 55.3004 -9.60217 82.7627 +v 49.769 -9.60217 86.2023 +v 44.0246 -9.60217 89.2728 +v 38.0916 -9.60217 91.961 +v 31.9955 -9.60217 94.2554 +v 25.7624 -9.60217 96.1462 +v 19.419 -9.60217 97.6253 +v 12.9924 -9.60217 98.6863 +v 6.5102 -9.60217 99.3248 +v 0.000126173 -9.60217 99.5379 +v -6.50996 -9.60217 99.3248 +v -12.9922 -9.60217 98.6864 +v -19.4188 -9.60217 97.6254 +v -25.7622 -9.60217 96.1463 +v -31.9953 -9.60217 94.2555 +v -38.0914 -9.60217 91.9611 +v -44.0244 -9.60217 89.2729 +v -49.7688 -9.60217 86.2025 +v -55.3002 -9.60217 82.7629 +v -60.5947 -9.60217 78.9688 +v -65.6298 -9.60217 74.8367 +v -70.3838 -9.60217 70.3841 +v -74.8365 -9.60217 65.6301 +v -78.9686 -9.60217 60.595 +v -82.7626 -9.60217 55.3005 +v -86.2023 -9.60217 49.7691 +v -89.2728 -9.60217 44.0247 +v -91.961 -9.60217 38.0917 +v -94.2554 -9.60217 31.9956 +v -96.1462 -9.60217 25.7625 +v -97.6253 -9.60217 19.4191 +v -98.6863 -9.60217 12.9925 +v -99.3248 -9.60217 6.51033 +v -99.5379 -9.60217 0.000252347 +v -99.3248 -9.60217 -6.50985 +v -98.6864 -9.60217 -12.9921 +v -97.6254 -9.60217 -19.4186 +v -96.1463 -9.60217 -25.7621 +v -94.2555 -9.60217 -31.9952 +v -91.9612 -9.60217 -38.0913 +v -89.273 -9.60217 -44.0243 +v -86.2025 -9.60217 -49.7687 +v -82.7629 -9.60217 -55.3001 +v -78.9689 -9.60217 -60.5946 +v -74.8368 -9.60217 -65.6297 +v -70.3841 -9.60217 -70.3837 +v -65.6301 -9.60217 -74.8364 +v -60.5951 -9.60217 -78.9686 +v -55.3006 -9.60217 -82.7626 +v -49.7692 -9.60217 -86.2022 +v -44.0248 -9.60217 -89.2727 +v -38.0918 -9.60217 -91.9609 +v -31.9957 -9.60217 -94.2554 +v -25.7626 -9.60217 -96.1462 +v -19.4192 -9.60217 -97.6253 +v -12.9927 -9.60217 -98.6863 +v -6.51046 -9.60217 -99.3248 +v -0.00037852 -9.60217 -99.5379 +v 6.50975 -9.60217 -99.3248 +v 12.992 -9.60217 -98.6864 +v 19.4185 -9.60217 -97.6254 +v 25.7619 -9.60217 -96.1464 +v 31.995 -9.60217 -94.2556 +v 38.0911 -9.60217 -91.9612 +v 44.0242 -9.60217 -89.273 +v 49.7686 -9.60217 -86.2026 +v 55.3 -9.60217 -82.763 +v 60.5945 -9.60217 -78.969 +v 65.6296 -9.60217 -74.8369 +v 70.3836 -9.60217 -70.3843 +v 74.8363 -9.60217 -65.6302 +v 78.9685 -9.60217 -60.5952 +v 82.7625 -9.60217 -55.3007 +v 86.2021 -9.60217 -49.7693 +v 89.2727 -9.60217 -44.0249 +v 91.9609 -9.60217 -38.092 +v 94.2553 -9.60217 -31.9958 +v 96.1461 -9.60217 -25.7627 +v 97.6252 -9.60217 -19.4193 +v 98.6863 -9.60217 -12.9928 +v 99.3248 -9.60217 -6.51058 +v 98.7182 -15.9599 5.88009e-39 +v 98.5068 -15.9599 6.45647 +v 97.8737 -15.9599 12.8853 +v 96.8214 -15.9599 19.2589 +v 95.3545 -15.9599 25.5501 +v 93.4792 -15.9599 31.7319 +v 91.2037 -15.9599 37.7778 +v 88.5377 -15.9599 43.6619 +v 85.4925 -15.9599 49.3591 +v 82.0812 -15.9599 54.8449 +v 78.3184 -15.9599 60.0958 +v 74.2203 -15.9599 65.0894 +v 69.8044 -15.9599 69.8043 +v 65.0895 -15.9599 74.2202 +v 60.0959 -15.9599 78.3184 +v 54.845 -15.9599 82.0811 +v 49.3592 -15.9599 85.4924 +v 43.662 -15.9599 88.5376 +v 37.7779 -15.9599 91.2037 +v 31.732 -15.9599 93.4792 +v 25.5502 -15.9599 95.3544 +v 19.2591 -15.9599 96.8213 +v 12.8854 -15.9599 97.8736 +v 6.45659 -15.9599 98.5068 +v 0.000125134 -15.9599 98.7182 +v -6.45635 -15.9599 98.5068 +v -12.8852 -15.9599 97.8737 +v -19.2588 -15.9599 96.8214 +v -25.55 -15.9599 95.3545 +v -31.7318 -15.9599 93.4793 +v -37.7777 -15.9599 91.2038 +v -43.6618 -15.9599 88.5377 +v -49.359 -15.9599 85.4925 +v -54.8447 -15.9599 82.0813 +v -60.0957 -15.9599 78.3185 +v -65.0893 -15.9599 74.2204 +v -69.8042 -15.9599 69.8044 +v -74.2202 -15.9599 65.0896 +v -78.3183 -15.9599 60.096 +v -82.0811 -15.9599 54.8451 +v -85.4924 -15.9599 49.3593 +v -88.5376 -15.9599 43.6621 +v -91.2036 -15.9599 37.778 +v -93.4792 -15.9599 31.7321 +v -95.3544 -15.9599 25.5504 +v -96.8213 -15.9599 19.2592 +v -97.8736 -15.9599 12.8855 +v -98.5068 -15.9599 6.45672 +v -98.7182 -15.9599 0.000250269 +v -98.5069 -15.9599 -6.45624 +v -97.8737 -15.9599 -12.8851 +v -96.8214 -15.9599 -19.2587 +v -95.3545 -15.9599 -25.5499 +v -93.4793 -15.9599 -31.7317 +v -91.2038 -15.9599 -37.7776 +v -88.5378 -15.9599 -43.6617 +v -85.4926 -15.9599 -49.3589 +v -82.0813 -15.9599 -54.8447 +v -78.3186 -15.9599 -60.0956 +v -74.2205 -15.9599 -65.0892 +v -69.8045 -15.9599 -69.8041 +v -65.0897 -15.9599 -74.2201 +v -60.0961 -15.9599 -78.3182 +v -54.8451 -15.9599 -82.081 +v -49.3594 -15.9599 -85.4923 +v -43.6622 -15.9599 -88.5375 +v -37.7781 -15.9599 -91.2036 +v -31.7322 -15.9599 -93.4791 +v -25.5505 -15.9599 -95.3544 +v -19.2593 -15.9599 -96.8213 +v -12.8857 -15.9599 -97.8736 +v -6.45684 -15.9599 -98.5068 +v -0.000375403 -15.9599 -98.7182 +v 6.45614 -15.9599 -98.5069 +v 12.885 -15.9599 -97.8737 +v 19.2586 -15.9599 -96.8214 +v 25.5498 -15.9599 -95.3546 +v 31.7316 -15.9599 -93.4794 +v 37.7774 -15.9599 -91.2039 +v 43.6616 -15.9599 -88.5378 +v 49.3588 -15.9599 -85.4927 +v 54.8446 -15.9599 -82.0814 +v 60.0955 -15.9599 -78.3187 +v 65.0891 -15.9599 -74.2206 +v 69.804 -15.9599 -69.8046 +v 74.22 -15.9599 -65.0897 +v 78.3182 -15.9599 -60.0962 +v 82.0809 -15.9599 -54.8453 +v 85.4922 -15.9599 -49.3595 +v 88.5375 -15.9599 -43.6624 +v 91.2035 -15.9599 -37.7783 +v 93.4791 -15.9599 -31.7323 +v 95.3543 -15.9599 -25.5506 +v 96.8213 -15.9599 -19.2594 +v 97.8736 -15.9599 -12.8858 +v 98.5068 -15.9599 -6.45697 +v 97.4928 -22.252 5.88009e-39 +v 97.2841 -22.252 6.37633 +v 96.6588 -22.252 12.7254 +v 95.6195 -22.252 19.0199 +v 94.1708 -22.252 25.233 +v 92.3189 -22.252 31.338 +v 90.0716 -22.252 37.3089 +v 87.4387 -22.252 43.1199 +v 84.4313 -22.252 48.7464 +v 81.0623 -22.252 54.1641 +v 77.3463 -22.252 59.3498 +v 73.299 -22.252 64.2814 +v 68.9379 -22.252 68.9378 +v 64.2815 -22.252 73.2989 +v 59.3499 -22.252 77.3462 +v 54.1642 -22.252 81.0623 +v 48.7465 -22.252 84.4312 +v 43.12 -22.252 87.4386 +v 37.309 -22.252 90.0716 +v 31.3381 -22.252 92.3189 +v 25.2331 -22.252 94.1708 +v 19.02 -22.252 95.6195 +v 12.7255 -22.252 96.6587 +v 6.37645 -22.252 97.2841 +v 0.000123581 -22.252 97.4928 +v -6.37621 -22.252 97.2841 +v -12.7252 -22.252 96.6588 +v -19.0198 -22.252 95.6195 +v -25.2329 -22.252 94.1709 +v -31.3379 -22.252 92.3189 +v -37.3088 -22.252 90.0717 +v -43.1198 -22.252 87.4387 +v -48.7463 -22.252 84.4313 +v -54.164 -22.252 81.0624 +v -59.3497 -22.252 77.3464 +v -64.2814 -22.252 73.2991 +v -68.9377 -22.252 68.938 +v -73.2989 -22.252 64.2816 +v -77.3461 -22.252 59.35 +v -81.0622 -22.252 54.1643 +v -84.4312 -22.252 48.7466 +v -87.4386 -22.252 43.1202 +v -90.0715 -22.252 37.3091 +v -92.3188 -22.252 31.3382 +v -94.1708 -22.252 25.2332 +v -95.6195 -22.252 19.0201 +v -96.6587 -22.252 12.7256 +v -97.2841 -22.252 6.37657 +v -97.4928 -22.252 0.000247162 +v -97.2841 -22.252 -6.3761 +v -96.6588 -22.252 -12.7251 +v -95.6196 -22.252 -19.0197 +v -94.1709 -22.252 -25.2328 +v -92.319 -22.252 -31.3378 +v -90.0717 -22.252 -37.3087 +v -87.4388 -22.252 -43.1197 +v -84.4314 -22.252 -48.7462 +v -81.0625 -22.252 -54.1639 +v -77.3464 -22.252 -59.3496 +v -73.2992 -22.252 -64.2813 +v -68.938 -22.252 -68.9376 +v -64.2817 -22.252 -73.2988 +v -59.3501 -22.252 -77.3461 +v -54.1644 -22.252 -81.0621 +v -48.7467 -22.252 -84.4311 +v -43.1203 -22.252 -87.4385 +v -37.3092 -22.252 -90.0715 +v -31.3383 -22.252 -92.3188 +v -25.2333 -22.252 -94.1708 +v -19.0202 -22.252 -95.6195 +v -12.7257 -22.252 -96.6587 +v -6.37669 -22.252 -97.2841 +v -0.000370743 -22.252 -97.4928 +v 6.376 -22.252 -97.2841 +v 12.725 -22.252 -96.6588 +v 19.0196 -22.252 -95.6196 +v 25.2326 -22.252 -94.1709 +v 31.3377 -22.252 -92.319 +v 37.3085 -22.252 -90.0718 +v 43.1196 -22.252 -87.4388 +v 48.7461 -22.252 -84.4314 +v 54.1638 -22.252 -81.0625 +v 59.3495 -22.252 -77.3465 +v 64.2812 -22.252 -73.2993 +v 68.9375 -22.252 -68.9381 +v 73.2987 -22.252 -64.2818 +v 77.346 -22.252 -59.3502 +v 81.0621 -22.252 -54.1645 +v 84.431 -22.252 -48.7468 +v 87.4385 -22.252 -43.1204 +v 90.0714 -22.252 -37.3093 +v 92.3187 -22.252 -31.3384 +v 94.1707 -22.252 -25.2334 +v 95.6194 -22.252 -19.0204 +v 96.6587 -22.252 -12.7258 +v 97.284 -22.252 -6.37682 +v 95.8668 -28.4526 5.88009e-39 +v 95.6616 -28.4526 6.26999 +v 95.0467 -28.4526 12.5131 +v 94.0248 -28.4526 18.7027 +v 92.6003 -28.4526 24.8121 +v 90.7792 -28.4526 30.8154 +v 88.5694 -28.4526 36.6866 +v 85.9804 -28.4526 42.4008 +v 83.0231 -28.4526 47.9334 +v 79.7104 -28.4526 53.2607 +v 76.0563 -28.4526 58.36 +v 72.0765 -28.4526 63.2094 +v 67.7881 -28.4526 67.788 +v 63.2094 -28.4526 72.0765 +v 58.3601 -28.4526 76.0562 +v 53.2608 -28.4526 79.7103 +v 47.9335 -28.4526 83.0231 +v 42.4009 -28.4526 85.9803 +v 36.6867 -28.4526 88.5694 +v 30.8155 -28.4526 90.7792 +v 24.8123 -28.4526 92.6002 +v 18.7028 -28.4526 94.0248 +v 12.5132 -28.4526 95.0467 +v 6.2701 -28.4526 95.6616 +v 0.00012152 -28.4526 95.8668 +v -6.26987 -28.4526 95.6616 +v -12.513 -28.4526 95.0467 +v -18.7026 -28.4526 94.0248 +v -24.812 -28.4526 92.6003 +v -30.8153 -28.4526 90.7792 +v -36.6865 -28.4526 88.5695 +v -42.4007 -28.4526 85.9804 +v -47.9333 -28.4526 83.0232 +v -53.2606 -28.4526 79.7104 +v -58.3599 -28.4526 76.0564 +v -63.2093 -28.4526 72.0766 +v -67.788 -28.4526 67.7882 +v -72.0764 -28.4526 63.2095 +v -76.0562 -28.4526 58.3602 +v -79.7102 -28.4526 53.2609 +v -83.023 -28.4526 47.9336 +v -85.9803 -28.4526 42.401 +v -88.5693 -28.4526 36.6868 +v -90.7791 -28.4526 30.8156 +v -92.6002 -28.4526 24.8124 +v -94.0247 -28.4526 18.7029 +v -95.0466 -28.4526 12.5133 +v -95.6616 -28.4526 6.27022 +v -95.8668 -28.4526 0.00024304 +v -95.6616 -28.4526 -6.26976 +v -95.0467 -28.4526 -12.5129 +v -94.0248 -28.4526 -18.7025 +v -92.6003 -28.4526 -24.8119 +v -90.7793 -28.4526 -30.8151 +v -88.5695 -28.4526 -36.6864 +v -85.9805 -28.4526 -42.4006 +v -83.0232 -28.4526 -47.9332 +v -79.7105 -28.4526 -53.2605 +v -76.0564 -28.4526 -58.3598 +v -72.0767 -28.4526 -63.2092 +v -67.7883 -28.4526 -67.7879 +v -63.2096 -28.4526 -72.0763 +v -58.3603 -28.4526 -76.0561 +v -53.261 -28.4526 -79.7102 +v -47.9337 -28.4526 -83.023 +v -42.4011 -28.4526 -85.9802 +v -36.687 -28.4526 -88.5693 +v -30.8157 -28.4526 -90.7791 +v -24.8125 -28.4526 -92.6002 +v -18.703 -28.4526 -94.0247 +v -12.5135 -28.4526 -95.0466 +v -6.27034 -28.4526 -95.6615 +v -0.00036456 -28.4526 -95.8668 +v 6.26966 -28.4526 -95.6616 +v 12.5128 -28.4526 -95.0467 +v 18.7023 -28.4526 -94.0248 +v 24.8118 -28.4526 -92.6003 +v 30.815 -28.4526 -90.7793 +v 36.6863 -28.4526 -88.5695 +v 42.4005 -28.4526 -85.9805 +v 47.9331 -28.4526 -83.0233 +v 53.2604 -28.4526 -79.7106 +v 58.3597 -28.4526 -76.0565 +v 63.2091 -28.4526 -72.0768 +v 67.7878 -28.4526 -67.7884 +v 72.0762 -28.4526 -63.2097 +v 76.056 -28.4526 -58.3603 +v 79.7101 -28.4526 -53.2611 +v 83.0229 -28.4526 -47.9338 +v 85.9801 -28.4526 -42.4012 +v 88.5692 -28.4526 -36.6871 +v 90.7791 -28.4526 -30.8158 +v 92.6001 -28.4526 -24.8126 +v 94.0247 -28.4526 -18.7031 +v 95.0466 -28.4526 -12.5136 +v 95.6615 -28.4526 -6.27046 +v 93.8469 -34.5364 5.88009e-39 +v 93.646 -34.5364 6.13788 +v 93.044 -34.5364 12.2495 +v 92.0437 -34.5364 18.3086 +v 90.6491 -34.5364 24.2893 +v 88.8665 -34.5364 30.1661 +v 86.7032 -34.5364 35.9136 +v 84.1687 -34.5364 41.5074 +v 81.2738 -34.5364 46.9234 +v 78.0309 -34.5364 52.1385 +v 74.4538 -34.5364 57.1303 +v 70.5579 -34.5364 61.8775 +v 66.3598 -34.5364 66.3597 +v 61.8776 -34.5364 70.5578 +v 57.1304 -34.5364 74.4537 +v 52.1386 -34.5364 78.0308 +v 46.9235 -34.5364 81.2738 +v 41.5075 -34.5364 84.1687 +v 35.9137 -34.5364 86.7032 +v 30.1662 -34.5364 88.8664 +v 24.2895 -34.5364 90.6491 +v 18.3087 -34.5364 92.0436 +v 12.2496 -34.5364 93.044 +v 6.13799 -34.5364 93.646 +v 0.000118959 -34.5364 93.8469 +v -6.13776 -34.5364 93.646 +v -12.2494 -34.5364 93.044 +v -18.3085 -34.5364 92.0437 +v -24.2892 -34.5364 90.6492 +v -30.166 -34.5364 88.8665 +v -35.9135 -34.5364 86.7033 +v -41.5073 -34.5364 84.1688 +v -46.9233 -34.5364 81.2739 +v -52.1384 -34.5364 78.0309 +v -57.1302 -34.5364 74.4538 +v -61.8774 -34.5364 70.5579 +v -66.3596 -34.5364 66.3599 +v -70.5577 -34.5364 61.8777 +v -74.4536 -34.5364 57.1305 +v -78.0307 -34.5364 52.1387 +v -81.2737 -34.5364 46.9236 +v -84.1686 -34.5364 41.5076 +v -86.7031 -34.5364 35.9138 +v -88.8664 -34.5364 30.1663 +v -90.6491 -34.5364 24.2896 +v -92.0436 -34.5364 18.3088 +v -93.044 -34.5364 12.2497 +v -93.6459 -34.5364 6.13811 +v -93.8469 -34.5364 0.000237919 +v -93.646 -34.5364 -6.13765 +v -93.0441 -34.5364 -12.2492 +v -92.0437 -34.5364 -18.3084 +v -90.6492 -34.5364 -24.2891 +v -88.8665 -34.5364 -30.1659 +v -86.7033 -34.5364 -35.9134 +v -84.1688 -34.5364 -41.5072 +v -81.2739 -34.5364 -46.9232 +v -78.031 -34.5364 -52.1383 +v -74.4539 -34.5364 -57.1302 +v -70.558 -34.5364 -61.8773 +v -66.36 -34.5364 -66.3596 +v -61.8778 -34.5364 -70.5576 +v -57.1306 -34.5364 -74.4536 +v -52.1388 -34.5364 -78.0307 +v -46.9237 -34.5364 -81.2736 +v -41.5077 -34.5364 -84.1686 +v -35.914 -34.5364 -86.7031 +v -30.1664 -34.5364 -88.8664 +v -24.2897 -34.5364 -90.6491 +v -18.3089 -34.5364 -92.0436 +v -12.2498 -34.5364 -93.044 +v -6.13822 -34.5364 -93.6459 +v -0.000356878 -34.5364 -93.8469 +v 6.13756 -34.5364 -93.646 +v 12.2491 -34.5364 -93.0441 +v 18.3083 -34.5364 -92.0437 +v 24.289 -34.5364 -90.6492 +v 30.1657 -34.5364 -88.8666 +v 35.9133 -34.5364 -86.7034 +v 41.5071 -34.5364 -84.1689 +v 46.9231 -34.5364 -81.274 +v 52.1382 -34.5364 -78.0311 +v 57.1301 -34.5364 -74.454 +v 61.8773 -34.5364 -70.5581 +v 66.3595 -34.5364 -66.3601 +v 70.5576 -34.5364 -61.8778 +v 74.4535 -34.5364 -57.1307 +v 78.0306 -34.5364 -52.1389 +v 81.2736 -34.5364 -46.9238 +v 84.1685 -34.5364 -41.5078 +v 86.7031 -34.5364 -35.9141 +v 88.8663 -34.5364 -30.1665 +v 90.649 -34.5364 -24.2898 +v 92.0436 -34.5364 -18.3091 +v 93.044 -34.5364 -12.2499 +v 93.6459 -34.5364 -6.13834 +v 91.4413 -40.4782 5.88009e-39 +v 91.2455 -40.4782 5.98054 +v 90.659 -40.4782 11.9355 +v 89.6843 -40.4782 17.8393 +v 88.3255 -40.4782 23.6667 +v 86.5885 -40.4782 29.3928 +v 84.4808 -40.4782 34.9931 +v 82.0112 -40.4782 40.4434 +v 79.1905 -40.4782 45.7206 +v 76.0307 -40.4782 50.802 +v 72.5453 -40.4782 55.6659 +v 68.7493 -40.4782 60.2914 +v 64.6588 -40.4782 64.6587 +v 60.2915 -40.4782 68.7492 +v 55.666 -40.4782 72.5452 +v 50.8021 -40.4782 76.0306 +v 45.7207 -40.4782 79.1905 +v 40.4435 -40.4782 82.0112 +v 34.9932 -40.4782 84.4807 +v 29.3929 -40.4782 86.5885 +v 23.6668 -40.4782 88.3255 +v 17.8394 -40.4782 89.6843 +v 11.9356 -40.4782 90.659 +v 5.98065 -40.4782 91.2455 +v 0.00011591 -40.4782 91.4413 +v -5.98043 -40.4782 91.2455 +v -11.9354 -40.4782 90.659 +v -17.8392 -40.4782 89.6843 +v -23.6666 -40.4782 88.3256 +v -29.3927 -40.4782 86.5886 +v -34.993 -40.4782 84.4808 +v -40.4433 -40.4782 82.0113 +v -45.7205 -40.4782 79.1906 +v -50.8019 -40.4782 76.0308 +v -55.6658 -40.4782 72.5454 +v -60.2913 -40.4782 68.7493 +v -64.6587 -40.4782 64.6589 +v -68.7491 -40.4782 60.2916 +v -72.5452 -40.4782 55.6661 +v -76.0306 -40.4782 50.8022 +v -79.1904 -40.4782 45.7208 +v -82.0111 -40.4782 40.4436 +v -84.4807 -40.4782 34.9933 +v -86.5885 -40.4782 29.393 +v -88.3255 -40.4782 23.667 +v -89.6843 -40.4782 17.8395 +v -90.659 -40.4782 11.9357 +v -91.2455 -40.4782 5.98077 +v -91.4413 -40.4782 0.00023182 +v -91.2456 -40.4782 -5.98033 +v -90.6591 -40.4782 -11.9353 +v -89.6843 -40.4782 -17.8391 +v -88.3256 -40.4782 -23.6665 +v -86.5886 -40.4782 -29.3926 +v -84.4809 -40.4782 -34.9929 +v -82.0113 -40.4782 -40.4432 +v -79.1906 -40.4782 -45.7204 +v -76.0308 -40.4782 -50.8019 +v -72.5454 -40.4782 -55.6657 +v -68.7494 -40.4782 -60.2912 +v -64.659 -40.4782 -64.6586 +v -60.2917 -40.4782 -68.749 +v -55.6662 -40.4782 -72.5451 +v -50.8023 -40.4782 -76.0305 +v -45.7209 -40.4782 -79.1904 +v -40.4437 -40.4782 -82.0111 +v -34.9934 -40.4782 -84.4806 +v -29.3931 -40.4782 -86.5884 +v -23.667 -40.4782 -88.3255 +v -17.8396 -40.4782 -89.6842 +v -11.9358 -40.4782 -90.659 +v -5.98088 -40.4782 -91.2455 +v -0.000347731 -40.4782 -91.4413 +v 5.98023 -40.4782 -91.2456 +v 11.9352 -40.4782 -90.6591 +v 17.839 -40.4782 -89.6844 +v 23.6664 -40.4782 -88.3256 +v 29.3925 -40.4782 -86.5887 +v 34.9927 -40.4782 -84.4809 +v 40.4432 -40.4782 -82.0114 +v 45.7204 -40.4782 -79.1907 +v 50.8018 -40.4782 -76.0309 +v 55.6656 -40.4782 -72.5455 +v 60.2912 -40.4782 -68.7495 +v 64.6585 -40.4782 -64.6591 +v 68.749 -40.4782 -60.2917 +v 72.545 -40.4782 -55.6663 +v 76.0305 -40.4782 -50.8024 +v 79.1903 -40.4782 -45.721 +v 82.011 -40.4782 -40.4438 +v 84.4806 -40.4782 -34.9935 +v 86.5884 -40.4782 -29.3932 +v 88.3254 -40.4782 -23.6672 +v 89.6842 -40.4782 -17.8397 +v 90.659 -40.4782 -11.9359 +v 91.2455 -40.4782 -5.981 +v 88.66 -46.2537 5.88009e-39 +v 88.4702 -46.2537 5.79864 +v 87.9015 -46.2537 11.5724 +v 86.9564 -46.2537 17.2967 +v 85.639 -46.2537 22.9469 +v 83.9548 -46.2537 28.4988 +v 81.9112 -46.2537 33.9287 +v 79.5168 -46.2537 39.2133 +v 76.7818 -46.2537 44.33 +v 73.7181 -46.2537 49.2568 +v 70.3387 -46.2537 53.9728 +v 66.6581 -46.2537 58.4576 +v 62.6921 -46.2537 62.6921 +v 58.4576 -46.2537 66.6581 +v 53.9728 -46.2537 70.3387 +v 49.2569 -46.2537 73.7181 +v 44.3301 -46.2537 76.7818 +v 39.2134 -46.2537 79.5167 +v 33.9288 -46.2537 81.9111 +v 28.4989 -46.2537 83.9548 +v 22.947 -46.2537 85.639 +v 17.2968 -46.2537 86.9564 +v 11.5726 -46.2537 87.9015 +v 5.79874 -46.2537 88.4702 +v 0.000112385 -46.2537 88.66 +v -5.79853 -46.2537 88.4702 +v -11.5723 -46.2537 87.9015 +v -17.2966 -46.2537 86.9565 +v -22.9468 -46.2537 85.639 +v -28.4987 -46.2537 83.9549 +v -33.9286 -46.2537 81.9112 +v -39.2132 -46.2537 79.5168 +v -44.3299 -46.2537 76.7819 +v -49.2567 -46.2537 73.7182 +v -53.9727 -46.2537 70.3388 +v -58.4575 -46.2537 66.6582 +v -62.692 -46.2537 62.6922 +v -66.658 -46.2537 58.4577 +v -70.3386 -46.2537 53.9729 +v -73.718 -46.2537 49.257 +v -76.7817 -46.2537 44.3302 +v -79.5167 -46.2537 39.2135 +v -81.9111 -46.2537 33.9289 +v -83.9548 -46.2537 28.499 +v -85.6389 -46.2537 22.9471 +v -86.9564 -46.2537 17.2969 +v -87.9015 -46.2537 11.5727 +v -88.4702 -46.2537 5.79885 +v -88.66 -46.2537 0.000224769 +v -88.4702 -46.2537 -5.79843 +v -87.9015 -46.2537 -11.5722 +v -86.9565 -46.2537 -17.2965 +v -85.639 -46.2537 -22.9467 +v -83.9549 -46.2537 -28.4986 +v -81.9113 -46.2537 -33.9285 +v -79.5168 -46.2537 -39.2131 +v -76.7819 -46.2537 -44.3298 +v -73.7182 -46.2537 -49.2567 +v -70.3389 -46.2537 -53.9726 +v -66.6583 -46.2537 -58.4574 +v -62.6923 -46.2537 -62.6919 +v -58.4578 -46.2537 -66.6579 +v -53.973 -46.2537 -70.3385 +v -49.2571 -46.2537 -73.7179 +v -44.3302 -46.2537 -76.7817 +v -39.2136 -46.2537 -79.5166 +v -33.929 -46.2537 -81.911 +v -28.4991 -46.2537 -83.9547 +v -22.9472 -46.2537 -85.6389 +v -17.297 -46.2537 -86.9564 +v -11.5728 -46.2537 -87.9015 +v -5.79897 -46.2537 -88.4702 +v -0.000337154 -46.2537 -88.66 +v 5.79834 -46.2537 -88.4702 +v 11.5721 -46.2537 -87.9016 +v 17.2964 -46.2537 -86.9565 +v 22.9466 -46.2537 -85.6391 +v 28.4985 -46.2537 -83.9549 +v 33.9284 -46.2537 -81.9113 +v 39.213 -46.2537 -79.5169 +v 44.3297 -46.2537 -76.782 +v 49.2566 -46.2537 -73.7183 +v 53.9725 -46.2537 -70.3389 +v 58.4573 -46.2537 -66.6584 +v 62.6918 -46.2537 -62.6924 +v 66.6579 -46.2537 -58.4579 +v 70.3385 -46.2537 -53.9731 +v 73.7179 -46.2537 -49.2572 +v 76.7816 -46.2537 -44.3303 +v 79.5166 -46.2537 -39.2137 +v 81.911 -46.2537 -33.9291 +v 83.9547 -46.2537 -28.4992 +v 85.6389 -46.2537 -22.9473 +v 86.9563 -46.2537 -17.2971 +v 87.9015 -46.2537 -11.5729 +v 88.4701 -46.2537 -5.79908 +v 85.5144 -51.8391 5.88009e-39 +v 85.3313 -51.8391 5.5929 +v 84.7828 -51.8391 11.1619 +v 83.8712 -51.8391 16.683 +v 82.6005 -51.8391 22.1327 +v 80.9761 -51.8391 27.4877 +v 79.005 -51.8391 32.7249 +v 76.6955 -51.8391 37.822 +v 74.0576 -51.8391 42.7571 +v 71.1026 -51.8391 47.5092 +v 67.8431 -51.8391 52.0578 +v 64.2931 -51.8391 56.3835 +v 60.4678 -51.8391 60.4677 +v 56.3836 -51.8391 64.2931 +v 52.0579 -51.8391 67.8431 +v 47.5093 -51.8391 71.1026 +v 42.7572 -51.8391 74.0576 +v 37.8221 -51.8391 76.6955 +v 32.725 -51.8391 79.0049 +v 27.4878 -51.8391 80.9761 +v 22.1328 -51.8391 82.6005 +v 16.6831 -51.8391 83.8712 +v 11.162 -51.8391 84.7828 +v 5.593 -51.8391 85.3313 +v 0.000108397 -51.8391 85.5144 +v -5.5928 -51.8391 85.3313 +v -11.1618 -51.8391 84.7828 +v -16.6829 -51.8391 83.8712 +v -22.1326 -51.8391 82.6006 +v -27.4876 -51.8391 80.9762 +v -32.7248 -51.8391 79.005 +v -37.8219 -51.8391 76.6956 +v -42.7571 -51.8391 74.0577 +v -47.5091 -51.8391 71.1027 +v -52.0577 -51.8391 67.8432 +v -56.3834 -51.8391 64.2932 +v -60.4677 -51.8391 60.4679 +v -64.293 -51.8391 56.3837 +v -67.843 -51.8391 52.058 +v -71.1025 -51.8391 47.5094 +v -74.0575 -51.8391 42.7573 +v -76.6954 -51.8391 37.8222 +v -79.0049 -51.8391 32.7251 +v -80.9761 -51.8391 27.4879 +v -82.6005 -51.8391 22.1329 +v -83.8712 -51.8391 16.6832 +v -84.7827 -51.8391 11.1621 +v -85.3313 -51.8391 5.59311 +v -85.5144 -51.8391 0.000216794 +v -85.3313 -51.8391 -5.5927 +v -84.7828 -51.8391 -11.1616 +v -83.8713 -51.8391 -16.6828 +v -82.6006 -51.8391 -22.1325 +v -80.9762 -51.8391 -27.4875 +v -79.0051 -51.8391 -32.7247 +v -76.6956 -51.8391 -37.8218 +v -74.0577 -51.8391 -42.757 +v -71.1027 -51.8391 -47.509 +v -67.8433 -51.8391 -52.0576 +v -64.2933 -51.8391 -56.3833 +v -60.468 -51.8391 -60.4676 +v -56.3837 -51.8391 -64.2929 +v -52.058 -51.8391 -67.8429 +v -47.5095 -51.8391 -71.1024 +v -42.7574 -51.8391 -74.0575 +v -37.8223 -51.8391 -76.6954 +v -32.7252 -51.8391 -79.0049 +v -27.4879 -51.8391 -80.976 +v -22.133 -51.8391 -82.6005 +v -16.6833 -51.8391 -83.8712 +v -11.1622 -51.8391 -84.7827 +v -5.59322 -51.8391 -85.3312 +v -0.000325192 -51.8391 -85.5144 +v 5.59261 -51.8391 -85.3313 +v 11.1616 -51.8391 -84.7828 +v 16.6827 -51.8391 -83.8713 +v 22.1324 -51.8391 -82.6006 +v 27.4874 -51.8391 -80.9762 +v 32.7246 -51.8391 -79.0051 +v 37.8217 -51.8391 -76.6956 +v 42.7569 -51.8391 -74.0578 +v 47.5089 -51.8391 -71.1028 +v 52.0576 -51.8391 -67.8433 +v 56.3833 -51.8391 -64.2933 +v 60.4675 -51.8391 -60.4681 +v 64.2929 -51.8391 -56.3838 +v 67.8429 -51.8391 -52.0581 +v 71.1024 -51.8391 -47.5095 +v 74.0574 -51.8391 -42.7575 +v 76.6953 -51.8391 -37.8224 +v 79.0048 -51.8391 -32.7253 +v 80.976 -51.8391 -27.488 +v 82.6004 -51.8391 -22.1331 +v 83.8711 -51.8391 -16.6834 +v 84.7827 -51.8391 -11.1623 +v 85.3312 -51.8391 -5.59333 +v 82.0173 -57.2115 5.88009e-39 +v 81.8417 -57.2115 5.36419 +v 81.3157 -57.2115 10.7054 +v 80.4414 -57.2115 16.0008 +v 79.2226 -57.2115 21.2276 +v 77.6647 -57.2115 26.3636 +v 75.7741 -57.2115 31.3866 +v 73.5591 -57.2115 36.2753 +v 71.0291 -57.2115 41.0086 +v 68.1949 -57.2115 45.5663 +v 65.0687 -57.2115 49.9289 +v 61.6639 -57.2115 54.0777 +v 57.995 -57.2115 57.995 +v 54.0778 -57.2115 61.6638 +v 49.929 -57.2115 65.0687 +v 45.5664 -57.2115 68.1949 +v 41.0087 -57.2115 71.029 +v 36.2754 -57.2115 73.5591 +v 31.3867 -57.2115 75.7741 +v 26.3637 -57.2115 77.6646 +v 21.2277 -57.2115 79.2226 +v 16.0009 -57.2115 80.4414 +v 10.7055 -57.2115 81.3156 +v 5.36428 -57.2115 81.8417 +v 0.000103964 -57.2115 82.0173 +v -5.36408 -57.2115 81.8417 +v -10.7053 -57.2115 81.3157 +v -16.0007 -57.2115 80.4414 +v -21.2275 -57.2115 79.2227 +v -26.3635 -57.2115 77.6647 +v -31.3866 -57.2115 75.7742 +v -36.2752 -57.2115 73.5592 +v -41.0085 -57.2115 71.0291 +v -45.5663 -57.2115 68.195 +v -49.9289 -57.2115 65.0688 +v -54.0777 -57.2115 61.664 +v -57.9949 -57.2115 57.9951 +v -61.6638 -57.2115 54.0779 +v -65.0686 -57.2115 49.9291 +v -68.1948 -57.2115 45.5665 +v -71.029 -57.2115 41.0088 +v -73.559 -57.2115 36.2755 +v -75.7741 -57.2115 31.3868 +v -77.6646 -57.2115 26.3638 +v -79.2226 -57.2115 21.2278 +v -80.4413 -57.2115 16.001 +v -81.3156 -57.2115 10.7056 +v -81.8417 -57.2115 5.36439 +v -82.0173 -57.2115 0.000207929 +v -81.8417 -57.2115 -5.36399 +v -81.3157 -57.2115 -10.7052 +v -80.4414 -57.2115 -16.0006 +v -79.2227 -57.2115 -21.2274 +v -77.6647 -57.2115 -26.3634 +v -75.7742 -57.2115 -31.3865 +v -73.5592 -57.2115 -36.2751 +v -71.0292 -57.2115 -41.0085 +v -68.195 -57.2115 -45.5662 +v -65.0689 -57.2115 -49.9288 +v -61.6641 -57.2115 -54.0776 +v -57.9952 -57.2115 -57.9948 +v -54.078 -57.2115 -61.6637 +v -49.9292 -57.2115 -65.0686 +v -45.5666 -57.2115 -68.1948 +v -41.0089 -57.2115 -71.0289 +v -36.2756 -57.2115 -73.559 +v -31.3869 -57.2115 -75.774 +v -26.3638 -57.2115 -77.6646 +v -21.2279 -57.2115 -79.2226 +v -16.0011 -57.2115 -80.4413 +v -10.7057 -57.2115 -81.3156 +v -5.36449 -57.2115 -81.8417 +v -0.000311893 -57.2115 -82.0173 +v 5.36391 -57.2115 -81.8417 +v 10.7051 -57.2115 -81.3157 +v 16.0005 -57.2115 -80.4414 +v 21.2273 -57.2115 -79.2227 +v 26.3633 -57.2115 -77.6648 +v 31.3864 -57.2115 -75.7743 +v 36.2751 -57.2115 -73.5592 +v 41.0084 -57.2115 -71.0292 +v 45.5661 -57.2115 -68.1951 +v 49.9287 -57.2115 -65.0689 +v 54.0775 -57.2115 -61.6641 +v 57.9947 -57.2115 -57.9953 +v 61.6637 -57.2115 -54.078 +v 65.0685 -57.2115 -49.9293 +v 68.1947 -57.2115 -45.5667 +v 71.0289 -57.2115 -41.009 +v 73.5589 -57.2115 -36.2757 +v 75.774 -57.2115 -31.387 +v 77.6646 -57.2115 -26.3639 +v 79.2225 -57.2115 -21.228 +v 80.4413 -57.2115 -16.0012 +v 81.3156 -57.2115 -10.7058 +v 81.8417 -57.2115 -5.36459 +v 78.1833 -62.3488 5.88009e-39 +v 78.0159 -62.3488 5.11343 +v 77.5144 -62.3488 10.205 +v 76.681 -62.3488 15.2528 +v 75.5192 -62.3488 20.2353 +v 74.0341 -62.3488 25.1312 +v 72.2319 -62.3488 29.9194 +v 70.1204 -62.3488 34.5795 +v 67.7087 -62.3488 39.0916 +v 65.007 -62.3488 43.4363 +v 62.027 -62.3488 47.5949 +v 58.7813 -62.3488 51.5498 +v 55.2839 -62.3488 55.2839 +v 51.5498 -62.3488 58.7813 +v 47.595 -62.3488 62.0269 +v 43.4363 -62.3488 65.007 +v 39.0917 -62.3488 67.7087 +v 34.5796 -62.3488 70.1204 +v 29.9195 -62.3488 72.2319 +v 25.1313 -62.3488 74.0341 +v 20.2354 -62.3488 75.5192 +v 15.2529 -62.3488 76.681 +v 10.205 -62.3488 77.5144 +v 5.11352 -62.3488 78.0159 +v 9.91044e-05 -62.3488 78.1833 +v -5.11333 -62.3488 78.0159 +v -10.2049 -62.3488 77.5144 +v -15.2527 -62.3488 76.681 +v -20.2352 -62.3488 75.5193 +v -25.1311 -62.3488 74.0341 +v -29.9193 -62.3488 72.232 +v -34.5795 -62.3488 70.1205 +v -39.0915 -62.3488 67.7087 +v -43.4362 -62.3488 65.0071 +v -47.5948 -62.3488 62.027 +v -51.5497 -62.3488 58.7814 +v -55.2838 -62.3488 55.284 +v -58.7812 -62.3488 51.5499 +v -62.0269 -62.3488 47.5951 +v -65.0069 -62.3488 43.4364 +v -67.7086 -62.3488 39.0918 +v -70.1204 -62.3488 34.5797 +v -72.2318 -62.3488 29.9196 +v -74.034 -62.3488 25.1313 +v -75.5192 -62.3488 20.2355 +v -76.681 -62.3488 15.253 +v -77.5144 -62.3488 10.2051 +v -78.0158 -62.3488 5.11362 +v -78.1833 -62.3488 0.000198209 +v -78.0159 -62.3488 -5.11324 +v -77.5144 -62.3488 -10.2048 +v -76.681 -62.3488 -15.2526 +v -75.5193 -62.3488 -20.2351 +v -74.0341 -62.3488 -25.131 +v -72.232 -62.3488 -29.9192 +v -70.1205 -62.3488 -34.5794 +v -67.7088 -62.3488 -39.0914 +v -65.0071 -62.3488 -43.4361 +v -62.0271 -62.3488 -47.5948 +v -58.7814 -62.3488 -51.5496 +v -55.2841 -62.3488 -55.2837 +v -51.55 -62.3488 -58.7811 +v -47.5951 -62.3488 -62.0268 +v -43.4365 -62.3488 -65.0069 +v -39.0918 -62.3488 -67.7086 +v -34.5798 -62.3488 -70.1203 +v -29.9197 -62.3488 -72.2318 +v -25.1314 -62.3488 -74.034 +v -20.2356 -62.3488 -75.5192 +v -15.2531 -62.3488 -76.6809 +v -10.2052 -62.3488 -77.5144 +v -5.11372 -62.3488 -78.0158 +v -0.000297313 -62.3488 -78.1833 +v 5.11316 -62.3488 -78.0159 +v 10.2047 -62.3488 -77.5144 +v 15.2525 -62.3488 -76.681 +v 20.235 -62.3488 -75.5193 +v 25.1309 -62.3488 -74.0342 +v 29.9191 -62.3488 -72.232 +v 34.5793 -62.3488 -70.1206 +v 39.0914 -62.3488 -67.7088 +v 43.436 -62.3488 -65.0072 +v 47.5947 -62.3488 -62.0271 +v 51.5495 -62.3488 -58.7815 +v 55.2837 -62.3488 -55.2842 +v 58.7811 -62.3488 -51.55 +v 62.0267 -62.3488 -47.5952 +v 65.0068 -62.3488 -43.4366 +v 67.7085 -62.3488 -39.0919 +v 70.1203 -62.3488 -34.5799 +v 72.2318 -62.3488 -29.9198 +v 74.034 -62.3488 -25.1315 +v 75.5191 -62.3488 -20.2357 +v 76.6809 -62.3488 -15.2532 +v 77.5143 -62.3488 -10.2053 +v 78.0158 -62.3488 -5.11381 +v 74.0279 -67.23 5.88009e-39 +v 73.8694 -67.23 4.84165 +v 73.3946 -67.23 9.66257 +v 72.6055 -67.23 14.4421 +v 71.5055 -67.23 19.1598 +v 70.0993 -67.23 23.7955 +v 68.3929 -67.23 28.3292 +v 66.3936 -67.23 32.7417 +v 64.1101 -67.23 37.0139 +v 61.552 -67.23 41.1277 +v 58.7303 -67.23 45.0653 +v 55.6572 -67.23 48.81 +v 52.3457 -67.23 52.3456 +v 48.81 -67.23 55.6571 +v 45.0654 -67.23 58.7303 +v 41.1278 -67.23 61.5519 +v 37.014 -67.23 64.11 +v 32.7418 -67.23 66.3936 +v 28.3293 -67.23 68.3929 +v 23.7956 -67.23 70.0992 +v 19.1599 -67.23 71.5055 +v 14.4422 -67.23 72.6055 +v 9.66266 -67.23 73.3946 +v 4.84174 -67.23 73.8694 +v 9.38371e-05 -67.23 74.0279 +v -4.84156 -67.23 73.8694 +v -9.66249 -67.23 73.3946 +v -14.442 -67.23 72.6055 +v -19.1597 -67.23 71.5055 +v -23.7954 -67.23 70.0993 +v -28.3292 -67.23 68.3929 +v -32.7416 -67.23 66.3937 +v -37.0139 -67.23 64.1101 +v -41.1276 -67.23 61.552 +v -45.0652 -67.23 58.7304 +v -48.8099 -67.23 55.6572 +v -52.3455 -67.23 52.3457 +v -55.657 -67.23 48.8101 +v -58.7302 -67.23 45.0655 +v -61.5519 -67.23 41.1278 +v -64.11 -67.23 37.0141 +v -66.3936 -67.23 32.7418 +v -68.3928 -67.23 28.3294 +v -70.0992 -67.23 23.7956 +v -71.5054 -67.23 19.16 +v -72.6055 -67.23 14.4423 +v -73.3946 -67.23 9.66275 +v -73.8694 -67.23 4.84184 +v -74.0279 -67.23 0.000187674 +v -73.8694 -67.23 -4.84148 +v -73.3946 -67.23 -9.66239 +v -72.6055 -67.23 -14.442 +v -71.5055 -67.23 -19.1596 +v -70.0993 -67.23 -23.7953 +v -68.393 -67.23 -28.3291 +v -66.3937 -67.23 -32.7415 +v -64.1102 -67.23 -37.0138 +v -61.5521 -67.23 -41.1275 +v -58.7304 -67.23 -45.0652 +v -55.6573 -67.23 -48.8098 +v -52.3458 -67.23 -52.3455 +v -48.8102 -67.23 -55.657 +v -45.0655 -67.23 -58.7302 +v -41.1279 -67.23 -61.5518 +v -37.0142 -67.23 -64.1099 +v -32.7419 -67.23 -66.3935 +v -28.3295 -67.23 -68.3928 +v -23.7957 -67.23 -70.0992 +v -19.1601 -67.23 -71.5054 +v -14.4424 -67.23 -72.6054 +v -9.66284 -67.23 -73.3946 +v -4.84193 -67.23 -73.8694 +v -0.000281511 -67.23 -74.0279 +v 4.8414 -67.23 -73.8694 +v 9.66232 -67.23 -73.3946 +v 14.4419 -67.23 -72.6055 +v 19.1596 -67.23 -71.5055 +v 23.7952 -67.23 -70.0994 +v 28.329 -67.23 -68.393 +v 32.7415 -67.23 -66.3937 +v 37.0137 -67.23 -64.1102 +v 41.1275 -67.23 -61.5521 +v 45.0651 -67.23 -58.7305 +v 48.8098 -67.23 -55.6573 +v 52.3454 -67.23 -52.3459 +v 55.6569 -67.23 -48.8102 +v 58.7301 -67.23 -45.0656 +v 61.5518 -67.23 -41.128 +v 64.1099 -67.23 -37.0142 +v 66.3935 -67.23 -32.742 +v 68.3927 -67.23 -28.3296 +v 70.0992 -67.23 -23.7958 +v 71.5054 -67.23 -19.1602 +v 72.6054 -67.23 -14.4425 +v 73.3946 -67.23 -9.66293 +v 73.8694 -67.23 -4.84202 +v 69.5684 -71.8348 5.88009e-39 +v 69.4194 -71.8348 4.54999 +v 68.9732 -71.8348 9.08049 +v 68.2316 -71.8348 13.5721 +v 67.1979 -71.8348 18.0056 +v 65.8764 -71.8348 22.362 +v 64.2728 -71.8348 26.6226 +v 62.394 -71.8348 30.7693 +v 60.248 -71.8348 34.7842 +v 57.844 -71.8348 38.6501 +v 55.1923 -71.8348 42.3505 +v 52.3043 -71.8348 45.8696 +v 49.1923 -71.8348 49.1922 +v 45.8697 -71.8348 52.3042 +v 42.3506 -71.8348 55.1923 +v 38.6502 -71.8348 57.844 +v 34.7842 -71.8348 60.248 +v 30.7694 -71.8348 62.394 +v 26.6227 -71.8348 64.2728 +v 22.3621 -71.8348 65.8764 +v 18.0057 -71.8348 67.1979 +v 13.5722 -71.8348 68.2316 +v 9.08057 -71.8348 68.9732 +v 4.55007 -71.8348 69.4194 +v 8.81842e-05 -71.8348 69.5684 +v -4.5499 -71.8348 69.4194 +v -9.08041 -71.8348 68.9732 +v -13.572 -71.8348 68.2317 +v -18.0055 -71.8348 67.1979 +v -22.3619 -71.8348 65.8764 +v -26.6226 -71.8348 64.2728 +v -30.7692 -71.8348 62.394 +v -34.7841 -71.8348 60.248 +v -38.65 -71.8348 57.8441 +v -42.3505 -71.8348 55.1924 +v -45.8695 -71.8348 52.3044 +v -49.1922 -71.8348 49.1924 +v -52.3042 -71.8348 45.8697 +v -55.1922 -71.8348 42.3507 +v -57.8439 -71.8348 38.6502 +v -60.2479 -71.8348 34.7843 +v -62.3939 -71.8348 30.7694 +v -64.2727 -71.8348 26.6228 +v -65.8764 -71.8348 22.3622 +v -67.1979 -71.8348 18.0058 +v -68.2316 -71.8348 13.5723 +v -68.9732 -71.8348 9.08065 +v -69.4194 -71.8348 4.55016 +v -69.5684 -71.8348 0.000176368 +v -69.4194 -71.8348 -4.54982 +v -68.9732 -71.8348 -9.08032 +v -68.2317 -71.8348 -13.572 +v -67.1979 -71.8348 -18.0054 +v -65.8765 -71.8348 -22.3618 +v -64.2729 -71.8348 -26.6225 +v -62.3941 -71.8348 -30.7691 +v -60.2481 -71.8348 -34.784 +v -57.8441 -71.8348 -38.65 +v -55.1924 -71.8348 -42.3504 +v -52.3044 -71.8348 -45.8695 +v -49.1924 -71.8348 -49.1921 +v -45.8698 -71.8348 -52.3041 +v -42.3507 -71.8348 -55.1922 +v -38.6503 -71.8348 -57.8439 +v -34.7844 -71.8348 -60.2479 +v -30.7695 -71.8348 -62.3939 +v -26.6229 -71.8348 -64.2727 +v -22.3622 -71.8348 -65.8763 +v -18.0058 -71.8348 -67.1978 +v -13.5724 -71.8348 -68.2316 +v -9.08074 -71.8348 -68.9732 +v -4.55024 -71.8348 -69.4194 +v -0.000264553 -71.8348 -69.5684 +v 4.54975 -71.8348 -69.4194 +v 9.08025 -71.8348 -68.9733 +v 13.5719 -71.8348 -68.2317 +v 18.0054 -71.8348 -67.198 +v 22.3618 -71.8348 -65.8765 +v 26.6224 -71.8348 -64.2729 +v 30.7691 -71.8348 -62.3941 +v 34.784 -71.8348 -60.2481 +v 38.6499 -71.8348 -57.8442 +v 42.3503 -71.8348 -55.1925 +v 45.8694 -71.8348 -52.3045 +v 49.1921 -71.8348 -49.1925 +v 52.3041 -71.8348 -45.8698 +v 55.1921 -71.8348 -42.3508 +v 57.8438 -71.8348 -38.6504 +v 60.2478 -71.8348 -34.7845 +v 62.3938 -71.8348 -30.7696 +v 64.2727 -71.8348 -26.623 +v 65.8763 -71.8348 -22.3623 +v 67.1978 -71.8348 -18.0059 +v 68.2316 -71.8348 -13.5724 +v 68.9732 -71.8348 -9.08083 +v 69.4194 -71.8348 -4.55033 +v 64.823 -76.1445 5.88009e-39 +v 64.6842 -76.1445 4.23962 +v 64.2684 -76.1445 8.46109 +v 63.5774 -76.1445 12.6463 +v 62.6142 -76.1445 16.7774 +v 61.3828 -76.1445 20.8367 +v 59.8886 -76.1445 24.8067 +v 58.138 -76.1445 28.6705 +v 56.1384 -76.1445 32.4115 +v 53.8984 -76.1445 36.0137 +v 51.4275 -76.1445 39.4617 +v 48.7365 -76.1445 42.7407 +v 45.8368 -76.1445 45.8367 +v 42.7408 -76.1445 48.7365 +v 39.4618 -76.1445 51.4275 +v 36.0138 -76.1445 53.8983 +v 32.4115 -76.1445 56.1383 +v 28.6705 -76.1445 58.1379 +v 24.8067 -76.1445 59.8886 +v 20.8367 -76.1445 61.3828 +v 16.7775 -76.1445 62.6142 +v 12.6464 -76.1445 63.5774 +v 8.46117 -76.1445 64.2684 +v 4.2397 -76.1445 64.6842 +v 8.2169e-05 -76.1445 64.823 +v -4.23954 -76.1445 64.6842 +v -8.46101 -76.1445 64.2684 +v -12.6463 -76.1445 63.5774 +v -16.7773 -76.1445 62.6142 +v -20.8366 -76.1445 61.3829 +v -24.8066 -76.1445 59.8887 +v -28.6704 -76.1445 58.138 +v -32.4114 -76.1445 56.1384 +v -36.0136 -76.1445 53.8984 +v -39.4616 -76.1445 51.4276 +v -42.7407 -76.1445 48.7366 +v -45.8367 -76.1445 45.8369 +v -48.7364 -76.1445 42.7408 +v -51.4275 -76.1445 39.4618 +v -53.8983 -76.1445 36.0138 +v -56.1383 -76.1445 32.4116 +v -58.1379 -76.1445 28.6706 +v -59.8886 -76.1445 24.8068 +v -61.3828 -76.1445 20.8368 +v -62.6142 -76.1445 16.7776 +v -63.5774 -76.1445 12.6465 +v -64.2684 -76.1445 8.46124 +v -64.6842 -76.1445 4.23978 +v -64.823 -76.1445 0.000164338 +v -64.6842 -76.1445 -4.23947 +v -64.2684 -76.1445 -8.46093 +v -63.5775 -76.1445 -12.6462 +v -62.6142 -76.1445 -16.7773 +v -61.3829 -76.1445 -20.8365 +v -59.8887 -76.1445 -24.8065 +v -58.138 -76.1445 -28.6703 +v -56.1384 -76.1445 -32.4113 +v -53.8984 -76.1445 -36.0136 +v -51.4276 -76.1445 -39.4616 +v -48.7366 -76.1445 -42.7406 +v -45.8369 -76.1445 -45.8366 +v -42.7409 -76.1445 -48.7364 +v -39.4619 -76.1445 -51.4274 +v -36.0139 -76.1445 -53.8982 +v -32.4117 -76.1445 -56.1382 +v -28.6707 -76.1445 -58.1379 +v -24.8069 -76.1445 -59.8885 +v -20.8369 -76.1445 -61.3828 +v -16.7776 -76.1445 -62.6141 +v -12.6466 -76.1445 -63.5774 +v -8.46132 -76.1445 -64.2684 +v -4.23986 -76.1445 -64.6842 +v -0.000246507 -76.1445 -64.823 +v 4.2394 -76.1445 -64.6842 +v 8.46087 -76.1445 -64.2684 +v 12.6461 -76.1445 -63.5775 +v 16.7772 -76.1445 -62.6143 +v 20.8364 -76.1445 -61.3829 +v 24.8064 -76.1445 -59.8887 +v 28.6703 -76.1445 -58.1381 +v 32.4113 -76.1445 -56.1385 +v 36.0135 -76.1445 -53.8985 +v 39.4615 -76.1445 -51.4277 +v 42.7406 -76.1445 -48.7367 +v 45.8366 -76.1445 -45.837 +v 48.7363 -76.1445 -42.741 +v 51.4274 -76.1445 -39.4619 +v 53.8982 -76.1445 -36.014 +v 56.1382 -76.1445 -32.4117 +v 58.1378 -76.1445 -28.6707 +v 59.8885 -76.1445 -24.807 +v 61.3827 -76.1445 -20.8369 +v 62.6141 -76.1445 -16.7777 +v 63.5774 -76.1445 -12.6466 +v 64.2684 -76.1445 -8.46141 +v 64.6842 -76.1445 -4.23995 +v 59.8112 -80.1413 5.88009e-39 +v 59.6831 -80.1413 3.91184 +v 59.2995 -80.1413 7.80692 +v 58.6619 -80.1413 11.6686 +v 57.7732 -80.1413 15.4803 +v 56.637 -80.1413 19.2257 +v 55.2584 -80.1413 22.8887 +v 53.643 -80.1413 26.4538 +v 51.798 -80.1413 29.9056 +v 49.7312 -80.1413 33.2293 +v 47.4514 -80.1413 36.4107 +v 44.9685 -80.1413 39.4362 +v 42.2929 -80.1413 42.2929 +v 39.4363 -80.1413 44.9684 +v 36.4108 -80.1413 47.4514 +v 33.2294 -80.1413 49.7312 +v 29.9056 -80.1413 51.798 +v 26.4539 -80.1413 53.643 +v 22.8888 -80.1413 55.2583 +v 19.2257 -80.1413 56.637 +v 15.4803 -80.1413 57.7732 +v 11.6687 -80.1413 58.6619 +v 7.80699 -80.1413 59.2995 +v 3.91191 -80.1413 59.6831 +v 7.58161e-05 -80.1413 59.8112 +v -3.91176 -80.1413 59.6831 +v -7.80685 -80.1413 59.2995 +v -11.6685 -80.1413 58.662 +v -15.4802 -80.1413 57.7732 +v -19.2256 -80.1413 56.6371 +v -22.8887 -80.1413 55.2584 +v -26.4537 -80.1413 53.6431 +v -29.9055 -80.1413 51.7981 +v -33.2292 -80.1413 49.7313 +v -36.4107 -80.1413 47.4515 +v -39.4362 -80.1413 44.9685 +v -42.2928 -80.1413 42.293 +v -44.9684 -80.1413 39.4363 +v -47.4513 -80.1413 36.4108 +v -49.7311 -80.1413 33.2294 +v -51.798 -80.1413 29.9057 +v -53.643 -80.1413 26.4539 +v -55.2583 -80.1413 22.8889 +v -56.637 -80.1413 19.2258 +v -57.7732 -80.1413 15.4804 +v -58.6619 -80.1413 11.6687 +v -59.2995 -80.1413 7.80706 +v -59.6831 -80.1413 3.91198 +v -59.8112 -80.1413 0.000151632 +v -59.6832 -80.1413 -3.91169 +v -59.2995 -80.1413 -7.80678 +v -58.662 -80.1413 -11.6684 +v -57.7732 -80.1413 -15.4801 +v -56.6371 -80.1413 -19.2255 +v -55.2584 -80.1413 -22.8886 +v -53.6431 -80.1413 -26.4537 +v -51.7981 -80.1413 -29.9055 +v -49.7313 -80.1413 -33.2292 +v -47.4515 -80.1413 -36.4106 +v -44.9686 -80.1413 -39.4361 +v -42.293 -80.1413 -42.2928 +v -39.4364 -80.1413 -44.9683 +v -36.4109 -80.1413 -47.4513 +v -33.2295 -80.1413 -49.7311 +v -29.9058 -80.1413 -51.7979 +v -26.454 -80.1413 -53.6429 +v -22.8889 -80.1413 -55.2583 +v -19.2259 -80.1413 -56.637 +v -15.4805 -80.1413 -57.7731 +v -11.6688 -80.1413 -58.6619 +v -7.80714 -80.1413 -59.2995 +v -3.91206 -80.1413 -59.6831 +v -0.000227448 -80.1413 -59.8112 +v 3.91163 -80.1413 -59.6832 +v 7.80672 -80.1413 -59.2995 +v 11.6684 -80.1413 -58.662 +v 15.4801 -80.1413 -57.7732 +v 19.2255 -80.1413 -56.6371 +v 22.8885 -80.1413 -55.2584 +v 26.4536 -80.1413 -53.6431 +v 29.9054 -80.1413 -51.7981 +v 33.2291 -80.1413 -49.7313 +v 36.4106 -80.1413 -47.4516 +v 39.4361 -80.1413 -44.9686 +v 42.2927 -80.1413 -42.2931 +v 44.9683 -80.1413 -39.4365 +v 47.4513 -80.1413 -36.411 +v 49.7311 -80.1413 -33.2295 +v 51.7979 -80.1413 -29.9058 +v 53.6429 -80.1413 -26.4541 +v 55.2582 -80.1413 -22.889 +v 56.6369 -80.1413 -19.2259 +v 57.7731 -80.1413 -15.4805 +v 58.6619 -80.1413 -11.6689 +v 59.2995 -80.1413 -7.80721 +v 59.6831 -80.1413 -3.91213 +v 54.5536 -83.8087 5.88009e-39 +v 54.4368 -83.8087 3.56798 +v 54.0869 -83.8087 7.12067 +v 53.5054 -83.8087 10.6429 +v 52.6948 -83.8087 14.1195 +v 51.6585 -83.8087 17.5357 +v 50.401 -83.8087 20.8768 +v 48.9277 -83.8087 24.1284 +v 47.2449 -83.8087 27.2768 +v 45.3597 -83.8087 30.3084 +v 43.2803 -83.8087 33.2101 +v 41.0156 -83.8087 35.9697 +v 38.5753 -83.8087 38.5752 +v 35.9697 -83.8087 41.0156 +v 33.2102 -83.8087 43.2803 +v 30.3084 -83.8087 45.3597 +v 27.2769 -83.8087 47.2448 +v 24.1285 -83.8087 48.9277 +v 20.8768 -83.8087 50.401 +v 17.5357 -83.8087 51.6585 +v 14.1196 -83.8087 52.6948 +v 10.6429 -83.8087 53.5054 +v 7.12074 -83.8087 54.0869 +v 3.56804 -83.8087 54.4368 +v 6.91517e-05 -83.8087 54.5536 +v -3.56791 -83.8087 54.4369 +v -7.12061 -83.8087 54.0869 +v -10.6428 -83.8087 53.5054 +v -14.1194 -83.8087 52.6948 +v -17.5356 -83.8087 51.6585 +v -20.8767 -83.8087 50.401 +v -24.1284 -83.8087 48.9277 +v -27.2767 -83.8087 47.2449 +v -30.3083 -83.8087 45.3598 +v -33.2101 -83.8087 43.2804 +v -35.9696 -83.8087 41.0157 +v -38.5752 -83.8087 38.5753 +v -41.0155 -83.8087 35.9698 +v -43.2803 -83.8087 33.2102 +v -45.3596 -83.8087 30.3085 +v -47.2448 -83.8087 27.2769 +v -48.9276 -83.8087 24.1286 +v -50.401 -83.8087 20.8769 +v -51.6585 -83.8087 17.5358 +v -52.6947 -83.8087 14.1196 +v -53.5054 -83.8087 10.643 +v -54.0869 -83.8087 7.1208 +v -54.4368 -83.8087 3.56811 +v -54.5536 -83.8087 0.000138303 +v -54.4369 -83.8087 -3.56785 +v -54.087 -83.8087 -7.12054 +v -53.5054 -83.8087 -10.6428 +v -52.6948 -83.8087 -14.1194 +v -51.6585 -83.8087 -17.5356 +v -50.4011 -83.8087 -20.8766 +v -48.9277 -83.8087 -24.1283 +v -47.2449 -83.8087 -27.2767 +v -45.3598 -83.8087 -30.3083 +v -43.2804 -83.8087 -33.21 +v -41.0157 -83.8087 -35.9696 +v -38.5754 -83.8087 -38.5751 +v -35.9698 -83.8087 -41.0155 +v -33.2103 -83.8087 -43.2802 +v -30.3085 -83.8087 -45.3596 +v -27.277 -83.8087 -47.2448 +v -24.1286 -83.8087 -48.9276 +v -20.877 -83.8087 -50.4009 +v -17.5359 -83.8087 -51.6584 +v -14.1197 -83.8087 -52.6947 +v -10.6431 -83.8087 -53.5054 +v -7.12087 -83.8087 -54.0869 +v -3.56818 -83.8087 -54.4368 +v -0.000207455 -83.8087 -54.5536 +v 3.56779 -83.8087 -54.4369 +v 7.12049 -83.8087 -54.087 +v 10.6427 -83.8087 -53.5055 +v 14.1193 -83.8087 -52.6948 +v 17.5355 -83.8087 -51.6586 +v 20.8766 -83.8087 -50.4011 +v 24.1283 -83.8087 -48.9278 +v 27.2766 -83.8087 -47.245 +v 30.3082 -83.8087 -45.3598 +v 33.21 -83.8087 -43.2805 +v 35.9695 -83.8087 -41.0158 +v 38.5751 -83.8087 -38.5754 +v 41.0155 -83.8087 -35.9699 +v 43.2802 -83.8087 -33.2103 +v 45.3596 -83.8087 -30.3086 +v 47.2447 -83.8087 -27.277 +v 48.9276 -83.8087 -24.1287 +v 50.4009 -83.8087 -20.877 +v 51.6584 -83.8087 -17.5359 +v 52.6947 -83.8087 -14.1198 +v 53.5054 -83.8087 -10.6431 +v 54.0869 -83.8087 -7.12094 +v 54.4368 -83.8087 -3.56825 +v 49.0719 -87.1318 5.88009e-39 +v 48.9669 -87.1318 3.20946 +v 48.6521 -87.1318 6.40517 +v 48.129 -87.1318 9.57345 +v 47.3998 -87.1318 12.7007 +v 46.4677 -87.1318 15.7736 +v 45.3366 -87.1318 18.779 +v 44.0113 -87.1318 21.7039 +v 42.4975 -87.1318 24.5359 +v 40.8018 -87.1318 27.2629 +v 38.9314 -87.1318 29.8731 +v 36.8942 -87.1318 32.3553 +v 34.6991 -87.1318 34.6991 +v 32.3554 -87.1318 36.8942 +v 29.8731 -87.1318 38.9314 +v 27.2629 -87.1318 40.8018 +v 24.536 -87.1318 42.4975 +v 21.704 -87.1318 44.0113 +v 18.7791 -87.1318 45.3365 +v 15.7737 -87.1318 46.4677 +v 12.7008 -87.1318 47.3998 +v 9.57351 -87.1318 48.129 +v 6.40523 -87.1318 48.6521 +v 3.20951 -87.1318 48.9669 +v 6.22031e-05 -87.1318 49.0719 +v -3.20939 -87.1318 48.9669 +v -6.40511 -87.1318 48.6521 +v -9.57339 -87.1318 48.129 +v -12.7007 -87.1318 47.3999 +v -15.7736 -87.1318 46.4677 +v -18.7789 -87.1318 45.3366 +v -21.7039 -87.1318 44.0113 +v -24.5359 -87.1318 42.4976 +v -27.2628 -87.1318 40.8019 +v -29.873 -87.1318 38.9314 +v -32.3553 -87.1318 36.8943 +v -34.699 -87.1318 34.6992 +v -36.8942 -87.1318 32.3554 +v -38.9313 -87.1318 29.8732 +v -40.8018 -87.1318 27.263 +v -42.4975 -87.1318 24.536 +v -44.0112 -87.1318 21.7041 +v -45.3365 -87.1318 18.7791 +v -46.4677 -87.1318 15.7738 +v -47.3998 -87.1318 12.7009 +v -48.129 -87.1318 9.57357 +v -48.6521 -87.1318 6.40528 +v -48.9669 -87.1318 3.20958 +v -49.0719 -87.1318 0.000124406 +v -48.9669 -87.1318 -3.20934 +v -48.6521 -87.1318 -6.40505 +v -48.129 -87.1318 -9.57334 +v -47.3999 -87.1318 -12.7006 +v -46.4677 -87.1318 -15.7735 +v -45.3366 -87.1318 -18.7789 +v -44.0113 -87.1318 -21.7038 +v -42.4976 -87.1318 -24.5358 +v -40.8019 -87.1318 -27.2628 +v -38.9315 -87.1318 -29.873 +v -36.8943 -87.1318 -32.3553 +v -34.6992 -87.1318 -34.699 +v -32.3555 -87.1318 -36.8941 +v -29.8732 -87.1318 -38.9313 +v -27.263 -87.1318 -40.8017 +v -24.5361 -87.1318 -42.4975 +v -21.7041 -87.1318 -44.0112 +v -18.7792 -87.1318 -45.3365 +v -15.7738 -87.1318 -46.4676 +v -12.7009 -87.1318 -47.3998 +v -9.57362 -87.1318 -48.129 +v -6.40534 -87.1318 -48.6521 +v -3.20964 -87.1318 -48.9668 +v -0.000186609 -87.1318 -49.0719 +v 3.20929 -87.1318 -48.9669 +v 6.405 -87.1318 -48.6521 +v 9.57328 -87.1318 -48.1291 +v 12.7006 -87.1318 -47.3999 +v 15.7735 -87.1318 -46.4677 +v 18.7788 -87.1318 -45.3366 +v 21.7038 -87.1318 -44.0114 +v 24.5358 -87.1318 -42.4976 +v 27.2627 -87.1318 -40.8019 +v 29.8729 -87.1318 -38.9315 +v 32.3552 -87.1318 -36.8944 +v 34.6989 -87.1318 -34.6992 +v 36.8941 -87.1318 -32.3555 +v 38.9313 -87.1318 -29.8733 +v 40.8017 -87.1318 -27.2631 +v 42.4974 -87.1318 -24.5362 +v 44.0112 -87.1318 -21.7042 +v 45.3365 -87.1318 -18.7792 +v 46.4676 -87.1318 -15.7739 +v 47.3998 -87.1318 -12.701 +v 48.129 -87.1318 -9.57368 +v 48.6521 -87.1318 -6.40541 +v 48.9668 -87.1318 -3.2097 +v 43.3886 -90.0968 5.88009e-39 +v 43.2957 -90.0968 2.83774 +v 43.0174 -90.0968 5.66334 +v 42.5549 -90.0968 8.46468 +v 41.9101 -90.0968 11.2298 +v 41.0859 -90.0968 13.9468 +v 40.0858 -90.0968 16.6041 +v 38.914 -90.0968 19.1903 +v 37.5756 -90.0968 21.6943 +v 36.0763 -90.0968 24.1054 +v 34.4225 -90.0968 26.4133 +v 32.6213 -90.0968 28.608 +v 30.6804 -90.0968 30.6803 +v 28.6081 -90.0968 32.6212 +v 26.4133 -90.0968 34.4224 +v 24.1054 -90.0968 36.0762 +v 21.6943 -90.0968 37.5756 +v 19.1903 -90.0968 38.914 +v 16.6041 -90.0968 40.0858 +v 13.9468 -90.0968 41.0859 +v 11.2298 -90.0968 41.9101 +v 8.46473 -90.0968 42.5548 +v 5.66339 -90.0968 43.0174 +v 2.8378 -90.0968 43.2957 +v 5.49989e-05 -90.0968 43.3886 +v -2.83769 -90.0968 43.2957 +v -5.66329 -90.0968 43.0174 +v -8.46463 -90.0968 42.5549 +v -11.2297 -90.0968 41.9101 +v -13.9467 -90.0968 41.0859 +v -16.604 -90.0968 40.0858 +v -19.1902 -90.0968 38.914 +v -21.6942 -90.0968 37.5756 +v -24.1053 -90.0968 36.0763 +v -26.4132 -90.0968 34.4225 +v -28.608 -90.0968 32.6213 +v -30.6803 -90.0968 30.6804 +v -32.6212 -90.0968 28.6081 +v -34.4224 -90.0968 26.4133 +v -36.0762 -90.0968 24.1055 +v -37.5755 -90.0968 21.6943 +v -38.914 -90.0968 19.1903 +v -40.0858 -90.0968 16.6042 +v -41.0859 -90.0968 13.9469 +v -41.9101 -90.0968 11.2299 +v -42.5548 -90.0968 8.46479 +v -43.0173 -90.0968 5.66344 +v -43.2957 -90.0968 2.83785 +v -43.3886 -90.0968 0.000109998 +v -43.2957 -90.0968 -2.83764 +v -43.0174 -90.0968 -5.66323 +v -42.5549 -90.0968 -8.46458 +v -41.9102 -90.0968 -11.2297 +v -41.086 -90.0968 -13.9467 +v -40.0858 -90.0968 -16.604 +v -38.9141 -90.0968 -19.1902 +v -37.5757 -90.0968 -21.6942 +v -36.0763 -90.0968 -24.1053 +v -34.4225 -90.0968 -26.4132 +v -32.6213 -90.0968 -28.608 +v -30.6804 -90.0968 -30.6803 +v -28.6082 -90.0968 -32.6212 +v -26.4134 -90.0968 -34.4224 +v -24.1055 -90.0968 -36.0762 +v -21.6944 -90.0968 -37.5755 +v -19.1904 -90.0968 -38.9139 +v -16.6042 -90.0968 -40.0857 +v -13.9469 -90.0968 -41.0859 +v -11.2299 -90.0968 -41.9101 +v -8.46483 -90.0968 -42.5548 +v -5.6635 -90.0968 -43.0173 +v -2.83791 -90.0968 -43.2956 +v -0.000164997 -90.0968 -43.3886 +v 2.8376 -90.0968 -43.2957 +v 5.66319 -90.0968 -43.0174 +v 8.46453 -90.0968 -42.5549 +v 11.2296 -90.0968 -41.9102 +v 13.9466 -90.0968 -41.086 +v 16.6039 -90.0968 -40.0859 +v 19.1901 -90.0968 -38.9141 +v 21.6941 -90.0968 -37.5757 +v 24.1052 -90.0968 -36.0764 +v 26.4131 -90.0968 -34.4226 +v 28.6079 -90.0968 -32.6214 +v 30.6802 -90.0968 -30.6805 +v 32.6211 -90.0968 -28.6082 +v 34.4223 -90.0968 -26.4134 +v 36.0762 -90.0968 -24.1055 +v 37.5755 -90.0968 -21.6944 +v 38.9139 -90.0968 -19.1904 +v 40.0857 -90.0968 -16.6043 +v 41.0859 -90.0968 -13.947 +v 41.9101 -90.0968 -11.23 +v 42.5548 -90.0968 -8.46489 +v 43.0173 -90.0968 -5.66355 +v 43.2956 -90.0968 -2.83796 +v 37.5269 -92.6916 5.88009e-39 +v 37.4465 -92.6916 2.45437 +v 37.2058 -92.6916 4.89824 +v 36.8058 -92.6916 7.32113 +v 36.2482 -92.6916 9.71267 +v 35.5353 -92.6916 12.0626 +v 34.6703 -92.6916 14.3609 +v 33.6568 -92.6916 16.5977 +v 32.4992 -92.6916 18.7634 +v 31.2025 -92.6916 20.8488 +v 29.7721 -92.6916 22.8449 +v 28.2142 -92.6916 24.7432 +v 26.5355 -92.6916 26.5355 +v 24.7432 -92.6916 28.2142 +v 22.8449 -92.6916 29.7721 +v 20.8488 -92.6916 31.2025 +v 18.7635 -92.6916 32.4992 +v 16.5977 -92.6916 33.6568 +v 14.361 -92.6916 34.6703 +v 12.0627 -92.6916 35.5353 +v 9.71271 -92.6916 36.2482 +v 7.32117 -92.6916 36.8058 +v 4.89828 -92.6916 37.2058 +v 2.45442 -92.6916 37.4465 +v 4.75687e-05 -92.6916 37.5269 +v -2.45433 -92.6916 37.4465 +v -4.89819 -92.6916 37.2058 +v -7.32108 -92.6916 36.8058 +v -9.71262 -92.6916 36.2482 +v -12.0626 -92.6916 35.5354 +v -14.3609 -92.6916 34.6703 +v -16.5977 -92.6916 33.6569 +v -18.7634 -92.6916 32.4993 +v -20.8488 -92.6916 31.2025 +v -22.8449 -92.6916 29.7721 +v -24.7431 -92.6916 28.2143 +v -26.5355 -92.6916 26.5356 +v -28.2142 -92.6916 24.7432 +v -29.772 -92.6916 22.845 +v -31.2024 -92.6916 20.8489 +v -32.4992 -92.6916 18.7635 +v -33.6568 -92.6916 16.5978 +v -34.6703 -92.6916 14.361 +v -35.5353 -92.6916 12.0627 +v -36.2482 -92.6916 9.71276 +v -36.8058 -92.6916 7.32122 +v -37.2058 -92.6916 4.89833 +v -37.4465 -92.6916 2.45447 +v -37.5269 -92.6916 9.51375e-05 +v -37.4465 -92.6916 -2.45429 +v -37.2059 -92.6916 -4.89815 +v -36.8058 -92.6916 -7.32104 +v -36.2482 -92.6916 -9.71258 +v -35.5354 -92.6916 -12.0625 +v -34.6704 -92.6916 -14.3608 +v -33.6569 -92.6916 -16.5976 +v -32.4993 -92.6916 -18.7634 +v -31.2025 -92.6916 -20.8487 +v -29.7722 -92.6916 -22.8448 +v -28.2143 -92.6916 -24.7431 +v -26.5356 -92.6916 -26.5354 +v -24.7433 -92.6916 -28.2141 +v -22.845 -92.6916 -29.772 +v -20.8489 -92.6916 -31.2024 +v -18.7635 -92.6916 -32.4992 +v -16.5978 -92.6916 -33.6568 +v -14.361 -92.6916 -34.6703 +v -12.0627 -92.6916 -35.5353 +v -9.71279 -92.6916 -36.2482 +v -7.32126 -92.6916 -36.8058 +v -4.89837 -92.6916 -37.2058 +v -2.45451 -92.6916 -37.4465 +v -0.000142706 -92.6916 -37.5269 +v 2.45425 -92.6916 -37.4465 +v 4.89811 -92.6916 -37.2059 +v 7.321 -92.6916 -36.8058 +v 9.71253 -92.6916 -36.2482 +v 12.0625 -92.6916 -35.5354 +v 14.3608 -92.6916 -34.6704 +v 16.5976 -92.6916 -33.6569 +v 18.7633 -92.6916 -32.4993 +v 20.8487 -92.6916 -31.2026 +v 22.8448 -92.6916 -29.7722 +v 24.7431 -92.6916 -28.2143 +v 26.5354 -92.6916 -26.5356 +v 28.2141 -92.6916 -24.7433 +v 29.772 -92.6916 -22.845 +v 31.2024 -92.6916 -20.849 +v 32.4992 -92.6916 -18.7636 +v 33.6568 -92.6916 -16.5979 +v 34.6703 -92.6916 -14.3611 +v 35.5353 -92.6916 -12.0628 +v 36.2481 -92.6916 -9.71284 +v 36.8058 -92.6916 -7.3213 +v 37.2058 -92.6916 -4.89842 +v 37.4465 -92.6916 -2.45456 +v 31.511 -94.9055 5.88009e-39 +v 31.4436 -94.9055 2.06092 +v 31.2414 -94.9055 4.11301 +v 30.9055 -94.9055 6.14749 +v 30.4373 -94.9055 8.15565 +v 29.8387 -94.9055 10.1289 +v 29.1124 -94.9055 12.0587 +v 28.2614 -94.9055 13.937 +v 27.2894 -94.9055 15.7555 +v 26.2005 -94.9055 17.5066 +v 24.9994 -94.9055 19.1827 +v 23.6913 -94.9055 20.7766 +v 22.2817 -94.9055 22.2816 +v 20.7767 -94.9055 23.6912 +v 19.1827 -94.9055 24.9994 +v 17.5066 -94.9055 26.2004 +v 15.7555 -94.9055 27.2893 +v 13.937 -94.9055 28.2614 +v 12.0588 -94.9055 29.1124 +v 10.1289 -94.9055 29.8387 +v 8.15568 -94.9055 30.4373 +v 6.14753 -94.9055 30.9055 +v 4.11305 -94.9055 31.2414 +v 2.06096 -94.9055 31.4436 +v 3.99431e-05 -94.9055 31.511 +v -2.06088 -94.9055 31.4436 +v -4.11297 -94.9055 31.2414 +v -6.14745 -94.9055 30.9056 +v -8.15561 -94.9055 30.4373 +v -10.1288 -94.9055 29.8387 +v -12.0587 -94.9055 29.1124 +v -13.9369 -94.9055 28.2614 +v -15.7555 -94.9055 27.2894 +v -17.5065 -94.9055 26.2005 +v -19.1827 -94.9055 24.9994 +v -20.7766 -94.9055 23.6913 +v -22.2816 -94.9055 22.2817 +v -23.6912 -94.9055 20.7767 +v -24.9993 -94.9055 19.1827 +v -26.2004 -94.9055 17.5066 +v -27.2893 -94.9055 15.7556 +v -28.2613 -94.9055 13.937 +v -29.1124 -94.9055 12.0588 +v -29.8387 -94.9055 10.1289 +v -30.4373 -94.9055 8.15572 +v -30.9055 -94.9055 6.14757 +v -31.2414 -94.9055 4.11308 +v -31.4435 -94.9055 2.06099 +v -31.511 -94.9055 7.98862e-05 +v -31.4436 -94.9055 -2.06084 +v -31.2414 -94.9055 -4.11293 +v -30.9056 -94.9055 -6.14742 +v -30.4373 -94.9055 -8.15557 +v -29.8388 -94.9055 -10.1288 +v -29.1124 -94.9055 -12.0587 +v -28.2614 -94.9055 -13.9369 +v -27.2894 -94.9055 -15.7554 +v -26.2005 -94.9055 -17.5065 +v -24.9994 -94.9055 -19.1826 +v -23.6913 -94.9055 -20.7766 +v -22.2817 -94.9055 -22.2816 +v -20.7767 -94.9055 -23.6912 +v -19.1828 -94.9055 -24.9993 +v -17.5067 -94.9055 -26.2004 +v -15.7556 -94.9055 -27.2893 +v -13.9371 -94.9055 -28.2613 +v -12.0588 -94.9055 -29.1123 +v -10.129 -94.9055 -29.8387 +v -8.15575 -94.9055 -30.4373 +v -6.1476 -94.9055 -30.9055 +v -4.11312 -94.9055 -31.2414 +v -2.06103 -94.9055 -31.4435 +v -0.000119829 -94.9055 -31.511 +v 2.06081 -94.9055 -31.4436 +v 4.1129 -94.9055 -31.2415 +v 6.14738 -94.9055 -30.9056 +v 8.15553 -94.9055 -30.4373 +v 10.1288 -94.9055 -29.8388 +v 12.0586 -94.9055 -29.1124 +v 13.9369 -94.9055 -28.2614 +v 15.7554 -94.9055 -27.2894 +v 17.5065 -94.9055 -26.2005 +v 19.1826 -94.9055 -24.9995 +v 20.7766 -94.9055 -23.6913 +v 22.2816 -94.9055 -22.2818 +v 23.6912 -94.9055 -20.7768 +v 24.9993 -94.9055 -19.1828 +v 26.2004 -94.9055 -17.5067 +v 27.2893 -94.9055 -15.7556 +v 28.2613 -94.9055 -13.9371 +v 29.1123 -94.9055 -12.0589 +v 29.8387 -94.9055 -10.129 +v 30.4373 -94.9055 -8.15579 +v 30.9055 -94.9055 -6.14764 +v 31.2414 -94.9055 -4.11316 +v 31.4435 -94.9055 -2.06107 +v 25.3657 -96.7294 5.88009e-39 +v 25.3114 -96.7294 1.65899 +v 25.1487 -96.7294 3.31088 +v 24.8783 -96.7294 4.94859 +v 24.5014 -96.7294 6.56511 +v 24.0195 -96.7294 8.15352 +v 23.4348 -96.7294 9.70701 +v 22.7498 -96.7294 11.2189 +v 21.9673 -96.7294 12.6828 +v 21.0908 -96.7294 14.0924 +v 20.1239 -96.7294 15.4416 +v 19.0709 -96.7294 16.7247 +v 17.9362 -96.7294 17.9362 +v 16.7248 -96.7294 19.0709 +v 15.4417 -96.7294 20.1239 +v 14.0924 -96.7294 21.0908 +v 12.6828 -96.7294 21.9673 +v 11.219 -96.7294 22.7498 +v 9.70704 -96.7294 23.4348 +v 8.15355 -96.7294 24.0195 +v 6.56514 -96.7294 24.5013 +v 4.94862 -96.7294 24.8783 +v 3.31091 -96.7294 25.1487 +v 1.65902 -96.7294 25.3114 +v 3.21533e-05 -96.7294 25.3657 +v -1.65896 -96.7294 25.3114 +v -3.31085 -96.7294 25.1487 +v -4.94856 -96.7294 24.8783 +v -6.56508 -96.7294 24.5014 +v -8.15349 -96.7294 24.0195 +v -9.70698 -96.7294 23.4348 +v -11.2189 -96.7294 22.7498 +v -12.6828 -96.7294 21.9673 +v -14.0924 -96.7294 21.0908 +v -15.4416 -96.7294 20.124 +v -16.7247 -96.7294 19.0709 +v -17.9362 -96.7294 17.9363 +v -19.0709 -96.7294 16.7248 +v -20.1239 -96.7294 15.4417 +v -21.0907 -96.7294 14.0925 +v -21.9673 -96.7294 12.6829 +v -22.7497 -96.7294 11.219 +v -23.4348 -96.7294 9.70707 +v -24.0195 -96.7294 8.15358 +v -24.5013 -96.7294 6.56517 +v -24.8783 -96.7294 4.94865 +v -25.1486 -96.7294 3.31094 +v -25.3113 -96.7294 1.65905 +v -25.3657 -96.7294 6.43066e-05 +v -25.3114 -96.7294 -1.65893 +v -25.1487 -96.7294 -3.31082 +v -24.8783 -96.7294 -4.94853 +v -24.5014 -96.7294 -6.56505 +v -24.0195 -96.7294 -8.15346 +v -23.4348 -96.7294 -9.70696 +v -22.7498 -96.7294 -11.2189 +v -21.9673 -96.7294 -12.6828 +v -21.0908 -96.7294 -14.0923 +v -20.124 -96.7294 -15.4416 +v -19.071 -96.7294 -16.7247 +v -17.9363 -96.7294 -17.9362 +v -16.7248 -96.7294 -19.0709 +v -15.4417 -96.7294 -20.1239 +v -14.0925 -96.7294 -21.0907 +v -12.6829 -96.7294 -21.9673 +v -11.219 -96.7294 -22.7497 +v -9.7071 -96.7294 -23.4348 +v -8.1536 -96.7294 -24.0195 +v -6.5652 -96.7294 -24.5013 +v -4.94868 -96.7294 -24.8783 +v -3.31097 -96.7294 -25.1486 +v -1.65909 -96.7294 -25.3113 +v -9.64598e-05 -96.7294 -25.3657 +v 1.65891 -96.7294 -25.3114 +v 3.31079 -96.7294 -25.1487 +v 4.9485 -96.7294 -24.8783 +v 6.56502 -96.7294 -24.5014 +v 8.15343 -96.7294 -24.0195 +v 9.70692 -96.7294 -23.4349 +v 11.2189 -96.7294 -22.7498 +v 12.6827 -96.7294 -21.9674 +v 14.0923 -96.7294 -21.0908 +v 15.4416 -96.7294 -20.124 +v 16.7247 -96.7294 -19.071 +v 17.9362 -96.7294 -17.9363 +v 19.0708 -96.7294 -16.7248 +v 20.1239 -96.7294 -15.4417 +v 21.0907 -96.7294 -14.0925 +v 21.9673 -96.7294 -12.6829 +v 22.7497 -96.7294 -11.2191 +v 23.4348 -96.7294 -9.70713 +v 24.0195 -96.7294 -8.15363 +v 24.5013 -96.7294 -6.56523 +v 24.8782 -96.7294 -4.94871 +v 25.1486 -96.7294 -3.311 +v 25.3113 -96.7294 -1.65912 +v 19.1161 -98.1559 5.88009e-39 +v 19.0751 -98.1559 1.25025 +v 18.9525 -98.1559 2.49515 +v 18.7488 -98.1559 3.72936 +v 18.4647 -98.1559 4.9476 +v 18.1016 -98.1559 6.14466 +v 17.661 -98.1559 7.3154 +v 17.1447 -98.1559 8.45482 +v 16.555 -98.1559 9.55803 +v 15.8944 -98.1559 10.6203 +v 15.1658 -98.1559 11.6371 +v 14.3722 -98.1559 12.6041 +v 13.5171 -98.1559 13.5171 +v 12.6041 -98.1559 14.3722 +v 11.6371 -98.1559 15.1658 +v 10.6203 -98.1559 15.8944 +v 9.55805 -98.1559 16.555 +v 8.45484 -98.1559 17.1447 +v 7.31542 -98.1559 17.6609 +v 6.14468 -98.1559 18.1016 +v 4.94762 -98.1559 18.4647 +v 3.72938 -98.1559 18.7488 +v 2.49517 -98.1559 18.9525 +v 1.25027 -98.1559 19.0751 +v 2.42314e-05 -98.1559 19.1161 +v -1.25023 -98.1559 19.0751 +v -2.49512 -98.1559 18.9525 +v -3.72934 -98.1559 18.7488 +v -4.94758 -98.1559 18.4647 +v -6.14463 -98.1559 18.1016 +v -7.31538 -98.1559 17.661 +v -8.4548 -98.1559 17.1447 +v -9.55801 -98.1559 16.555 +v -10.6203 -98.1559 15.8945 +v -11.6371 -98.1559 15.1658 +v -12.6041 -98.1559 14.3722 +v -13.5171 -98.1559 13.5171 +v -14.3722 -98.1559 12.6041 +v -15.1658 -98.1559 11.6372 +v -15.8944 -98.1559 10.6204 +v -16.555 -98.1559 9.55807 +v -17.1447 -98.1559 8.45486 +v -17.6609 -98.1559 7.31544 +v -18.1016 -98.1559 6.1447 +v -18.4647 -98.1559 4.94765 +v -18.7488 -98.1559 3.72941 +v -18.9525 -98.1559 2.49519 +v -19.0751 -98.1559 1.2503 +v -19.1161 -98.1559 4.84627e-05 +v -19.0751 -98.1559 -1.2502 +v -18.9525 -98.1559 -2.4951 +v -18.7488 -98.1559 -3.72932 +v -18.4647 -98.1559 -4.94756 +v -18.1016 -98.1559 -6.14461 +v -17.661 -98.1559 -7.31536 +v -17.1447 -98.1559 -8.45478 +v -16.555 -98.1559 -9.55799 +v -15.8945 -98.1559 -10.6203 +v -15.1658 -98.1559 -11.6371 +v -14.3723 -98.1559 -12.6041 +v -13.5171 -98.1559 -13.5171 +v -12.6041 -98.1559 -14.3722 +v -11.6372 -98.1559 -15.1658 +v -10.6204 -98.1559 -15.8944 +v -9.55809 -98.1559 -16.555 +v -8.45488 -98.1559 -17.1447 +v -7.31547 -98.1559 -17.6609 +v -6.14472 -98.1559 -18.1016 +v -4.94766 -98.1559 -18.4647 +v -3.72943 -98.1559 -18.7488 +v -2.49522 -98.1559 -18.9525 +v -1.25032 -98.1559 -19.0751 +v -7.26941e-05 -98.1559 -19.1161 +v 1.25019 -98.1559 -19.0752 +v 2.49508 -98.1559 -18.9525 +v 3.72929 -98.1559 -18.7488 +v 4.94753 -98.1559 -18.4647 +v 6.14459 -98.1559 -18.1016 +v 7.31533 -98.1559 -17.661 +v 8.45476 -98.1559 -17.1447 +v 9.55797 -98.1559 -16.555 +v 10.6203 -98.1559 -15.8945 +v 11.6371 -98.1559 -15.1659 +v 12.604 -98.1559 -14.3723 +v 13.517 -98.1559 -13.5172 +v 14.3722 -98.1559 -12.6042 +v 15.1658 -98.1559 -11.6372 +v 15.8944 -98.1559 -10.6204 +v 16.555 -98.1559 -9.55811 +v 17.1446 -98.1559 -8.4549 +v 17.6609 -98.1559 -7.31549 +v 18.1016 -98.1559 -6.14474 +v 18.4647 -98.1559 -4.94769 +v 18.7487 -98.1559 -3.72945 +v 18.9525 -98.1559 -2.49524 +v 19.0751 -98.1559 -1.25035 +v 12.7879 -99.179 5.88009e-39 +v 12.7606 -99.179 0.83637 +v 12.6785 -99.179 1.66916 +v 12.5422 -99.179 2.4948 +v 12.3522 -99.179 3.30976 +v 12.1093 -99.179 4.11054 +v 11.8145 -99.179 4.89373 +v 11.4692 -99.179 5.65595 +v 11.0747 -99.179 6.39396 +v 10.6328 -99.179 7.10459 +v 10.1454 -99.179 7.7848 +v 9.61448 -99.179 8.43167 +v 9.04244 -99.179 9.04243 +v 8.43168 -99.179 9.61447 +v 7.78481 -99.179 10.1453 +v 7.1046 -99.179 10.6328 +v 6.39398 -99.179 11.0747 +v 5.65597 -99.179 11.4691 +v 4.89374 -99.179 11.8145 +v 4.11056 -99.179 12.1093 +v 3.30977 -99.179 12.3522 +v 2.49482 -99.179 12.5422 +v 1.66917 -99.179 12.6785 +v 0.836385 -99.179 12.7606 +v 1.62099e-05 -99.179 12.7879 +v -0.836355 -99.179 12.7606 +v -1.66914 -99.179 12.6785 +v -2.49479 -99.179 12.5422 +v -3.30974 -99.179 12.3522 +v -4.11053 -99.179 12.1093 +v -4.89371 -99.179 11.8145 +v -5.65594 -99.179 11.4692 +v -6.39395 -99.179 11.0747 +v -7.10458 -99.179 10.6328 +v -7.78479 -99.179 10.1454 +v -8.43165 -99.179 9.61449 +v -9.04242 -99.179 9.04245 +v -9.61446 -99.179 8.43169 +v -10.1453 -99.179 7.78482 +v -10.6328 -99.179 7.10462 +v -11.0747 -99.179 6.39399 +v -11.4691 -99.179 5.65598 +v -11.8145 -99.179 4.89376 +v -12.1093 -99.179 4.11057 +v -12.3522 -99.179 3.30979 +v -12.5422 -99.179 2.49483 +v -12.6785 -99.179 1.66919 +v -12.7606 -99.179 0.836402 +v -12.7879 -99.179 3.24197e-05 +v -12.7606 -99.179 -0.83634 +v -12.6785 -99.179 -1.66913 +v -12.5422 -99.179 -2.49477 +v -12.3522 -99.179 -3.30973 +v -12.1093 -99.179 -4.11051 +v -11.8145 -99.179 -4.8937 +v -11.4692 -99.179 -5.65593 +v -11.0747 -99.179 -6.39394 +v -10.6328 -99.179 -7.10457 +v -10.1454 -99.179 -7.78477 +v -9.6145 -99.179 -8.43164 +v -9.04246 -99.179 -9.04241 +v -8.4317 -99.179 -9.61445 +v -7.78483 -99.179 -10.1453 +v -7.10463 -99.179 -10.6328 +v -6.394 -99.179 -11.0747 +v -5.656 -99.179 -11.4691 +v -4.89377 -99.179 -11.8145 +v -4.11059 -99.179 -12.1093 +v -3.3098 -99.179 -12.3522 +v -2.49485 -99.179 -12.5422 +v -1.66921 -99.179 -12.6785 +v -0.836418 -99.179 -12.7606 +v -4.86296e-05 -99.179 -12.7879 +v 0.836327 -99.179 -12.7606 +v 1.66911 -99.179 -12.6785 +v 2.49476 -99.179 -12.5422 +v 3.30971 -99.179 -12.3522 +v 4.1105 -99.179 -12.1093 +v 4.89368 -99.179 -11.8145 +v 5.65592 -99.179 -11.4692 +v 6.39392 -99.179 -11.0747 +v 7.10455 -99.179 -10.6328 +v 7.78476 -99.179 -10.1454 +v 8.43163 -99.179 -9.61452 +v 9.0424 -99.179 -9.04248 +v 9.61444 -99.179 -8.43171 +v 10.1453 -99.179 -7.78484 +v 10.6327 -99.179 -7.10464 +v 11.0746 -99.179 -6.39402 +v 11.4691 -99.179 -5.65601 +v 11.8145 -99.179 -4.89379 +v 12.1093 -99.179 -4.1106 +v 12.3522 -99.179 -3.30982 +v 12.5422 -99.179 -2.49486 +v 12.6785 -99.179 -1.66922 +v 12.7606 -99.179 -0.836434 +v 6.40727 -99.7945 5.88009e-39 +v 6.39355 -99.7945 0.419055 +v 6.35246 -99.7945 0.836316 +v 6.28416 -99.7945 1.25 +v 6.18895 -99.7945 1.65832 +v 6.06724 -99.7945 2.05955 +v 5.91955 -99.7945 2.45195 +v 5.74651 -99.7945 2.83386 +v 5.54886 -99.7945 3.20363 +v 5.32745 -99.7945 3.55969 +v 5.08323 -99.7945 3.9005 +v 4.81724 -99.7945 4.2246 +v 4.53063 -99.7945 4.53062 +v 4.22461 -99.7945 4.81724 +v 3.9005 -99.7945 5.08323 +v 3.55969 -99.7945 5.32745 +v 3.20364 -99.7945 5.54886 +v 2.83387 -99.7945 5.7465 +v 2.45196 -99.7945 5.91954 +v 2.05956 -99.7945 6.06724 +v 1.65833 -99.7945 6.18895 +v 1.25 -99.7945 6.28416 +v 0.836324 -99.7945 6.35245 +v 0.419063 -99.7945 6.39355 +v 8.1218e-06 -99.7945 6.40727 +v -0.419047 -99.7945 6.39355 +v -0.836308 -99.7945 6.35246 +v -1.24999 -99.7945 6.28416 +v -1.65831 -99.7945 6.18895 +v -2.05954 -99.7945 6.06724 +v -2.45195 -99.7945 5.91955 +v -2.83385 -99.7945 5.74651 +v -3.20363 -99.7945 5.54886 +v -3.55968 -99.7945 5.32746 +v -3.90049 -99.7945 5.08324 +v -4.2246 -99.7945 4.81725 +v -4.53062 -99.7945 4.53063 +v -4.81723 -99.7945 4.22462 +v -5.08322 -99.7945 3.90051 +v -5.32744 -99.7945 3.5597 +v -5.54885 -99.7945 3.20365 +v -5.7465 -99.7945 2.83388 +v -5.91954 -99.7945 2.45197 +v -6.06723 -99.7945 2.05956 +v -6.18894 -99.7945 1.65834 +v -6.28415 -99.7945 1.25001 +v -6.35245 -99.7945 0.836331 +v -6.39355 -99.7945 0.419071 +v -6.40727 -99.7945 1.62436e-05 +v -6.39355 -99.7945 -0.41904 +v -6.35246 -99.7945 -0.8363 +v -6.28416 -99.7945 -1.24998 +v -6.18895 -99.7945 -1.65831 +v -6.06724 -99.7945 -2.05953 +v -5.91955 -99.7945 -2.45194 +v -5.74651 -99.7945 -2.83385 +v -5.54887 -99.7945 -3.20362 +v -5.32746 -99.7945 -3.55967 +v -5.08324 -99.7945 -3.90048 +v -4.81725 -99.7945 -4.22459 +v -4.53064 -99.7945 -4.53061 +v -4.22462 -99.7945 -4.81723 +v -3.90051 -99.7945 -5.08322 +v -3.55971 -99.7945 -5.32744 +v -3.20365 -99.7945 -5.54885 +v -2.83388 -99.7945 -5.7465 +v -2.45198 -99.7945 -5.91954 +v -2.05957 -99.7945 -6.06723 +v -1.65834 -99.7945 -6.18894 +v -1.25002 -99.7945 -6.28415 +v -0.836339 -99.7945 -6.35245 +v -0.419079 -99.7945 -6.39355 +v -2.43654e-05 -99.7945 -6.40727 +v 0.419033 -99.7945 -6.39355 +v 0.836294 -99.7945 -6.35246 +v 1.24997 -99.7945 -6.28416 +v 1.6583 -99.7945 -6.18895 +v 2.05953 -99.7945 -6.06725 +v 2.45193 -99.7945 -5.91956 +v 2.83384 -99.7945 -5.74652 +v 3.20361 -99.7945 -5.54887 +v 3.55967 -99.7945 -5.32747 +v 3.90048 -99.7945 -5.08325 +v 4.22459 -99.7945 -4.81726 +v 4.5306 -99.7945 -4.53064 +v 4.81722 -99.7945 -4.22463 +v 5.08321 -99.7945 -3.90052 +v 5.32744 -99.7945 -3.55971 +v 5.54884 -99.7945 -3.20366 +v 5.74649 -99.7945 -2.83389 +v 5.91953 -99.7945 -2.45198 +v 6.06723 -99.7945 -2.05958 +v 6.18894 -99.7945 -1.65835 +v 6.28415 -99.7945 -1.25003 +v 6.35245 -99.7945 -0.836347 +v 6.39355 -99.7945 -0.419087 +f 3 4 100 99 +f 4 5 101 100 +f 5 6 102 101 +f 6 7 103 102 +f 7 8 104 103 +f 8 9 105 104 +f 9 10 106 105 +f 10 11 107 106 +f 11 12 108 107 +f 12 13 109 108 +f 13 14 110 109 +f 14 15 111 110 +f 15 16 112 111 +f 16 17 113 112 +f 17 18 114 113 +f 18 19 115 114 +f 19 20 116 115 +f 20 21 117 116 +f 21 22 118 117 +f 22 23 119 118 +f 23 24 120 119 +f 24 25 121 120 +f 25 26 122 121 +f 26 27 123 122 +f 27 28 124 123 +f 28 29 125 124 +f 29 30 126 125 +f 30 31 127 126 +f 31 32 128 127 +f 32 33 129 128 +f 33 34 130 129 +f 34 35 131 130 +f 35 36 132 131 +f 36 37 133 132 +f 37 38 134 133 +f 38 39 135 134 +f 39 40 136 135 +f 40 41 137 136 +f 41 42 138 137 +f 42 43 139 138 +f 43 44 140 139 +f 44 45 141 140 +f 45 46 142 141 +f 46 47 143 142 +f 47 48 144 143 +f 48 49 145 144 +f 49 50 146 145 +f 50 51 147 146 +f 51 52 148 147 +f 52 53 149 148 +f 53 54 150 149 +f 54 55 151 150 +f 55 56 152 151 +f 56 57 153 152 +f 57 58 154 153 +f 58 59 155 154 +f 59 60 156 155 +f 60 61 157 156 +f 61 62 158 157 +f 62 63 159 158 +f 63 64 160 159 +f 64 65 161 160 +f 65 66 162 161 +f 66 67 163 162 +f 67 68 164 163 +f 68 69 165 164 +f 69 70 166 165 +f 70 71 167 166 +f 71 72 168 167 +f 72 73 169 168 +f 73 74 170 169 +f 74 75 171 170 +f 75 76 172 171 +f 76 77 173 172 +f 77 78 174 173 +f 78 79 175 174 +f 79 80 176 175 +f 80 81 177 176 +f 81 82 178 177 +f 82 83 179 178 +f 83 84 180 179 +f 84 85 181 180 +f 85 86 182 181 +f 86 87 183 182 +f 87 88 184 183 +f 88 89 185 184 +f 89 90 186 185 +f 90 91 187 186 +f 91 92 188 187 +f 92 93 189 188 +f 93 94 190 189 +f 94 95 191 190 +f 95 96 192 191 +f 96 97 193 192 +f 97 98 194 193 +f 98 3 99 194 +f 99 100 196 195 +f 100 101 197 196 +f 101 102 198 197 +f 102 103 199 198 +f 103 104 200 199 +f 104 105 201 200 +f 105 106 202 201 +f 106 107 203 202 +f 107 108 204 203 +f 108 109 205 204 +f 109 110 206 205 +f 110 111 207 206 +f 111 112 208 207 +f 112 113 209 208 +f 113 114 210 209 +f 114 115 211 210 +f 115 116 212 211 +f 116 117 213 212 +f 117 118 214 213 +f 118 119 215 214 +f 119 120 216 215 +f 120 121 217 216 +f 121 122 218 217 +f 122 123 219 218 +f 123 124 220 219 +f 124 125 221 220 +f 125 126 222 221 +f 126 127 223 222 +f 127 128 224 223 +f 128 129 225 224 +f 129 130 226 225 +f 130 131 227 226 +f 131 132 228 227 +f 132 133 229 228 +f 133 134 230 229 +f 134 135 231 230 +f 135 136 232 231 +f 136 137 233 232 +f 137 138 234 233 +f 138 139 235 234 +f 139 140 236 235 +f 140 141 237 236 +f 141 142 238 237 +f 142 143 239 238 +f 143 144 240 239 +f 144 145 241 240 +f 145 146 242 241 +f 146 147 243 242 +f 147 148 244 243 +f 148 149 245 244 +f 149 150 246 245 +f 150 151 247 246 +f 151 152 248 247 +f 152 153 249 248 +f 153 154 250 249 +f 154 155 251 250 +f 155 156 252 251 +f 156 157 253 252 +f 157 158 254 253 +f 158 159 255 254 +f 159 160 256 255 +f 160 161 257 256 +f 161 162 258 257 +f 162 163 259 258 +f 163 164 260 259 +f 164 165 261 260 +f 165 166 262 261 +f 166 167 263 262 +f 167 168 264 263 +f 168 169 265 264 +f 169 170 266 265 +f 170 171 267 266 +f 171 172 268 267 +f 172 173 269 268 +f 173 174 270 269 +f 174 175 271 270 +f 175 176 272 271 +f 176 177 273 272 +f 177 178 274 273 +f 178 179 275 274 +f 179 180 276 275 +f 180 181 277 276 +f 181 182 278 277 +f 182 183 279 278 +f 183 184 280 279 +f 184 185 281 280 +f 185 186 282 281 +f 186 187 283 282 +f 187 188 284 283 +f 188 189 285 284 +f 189 190 286 285 +f 190 191 287 286 +f 191 192 288 287 +f 192 193 289 288 +f 193 194 290 289 +f 194 99 195 290 +f 195 196 292 291 +f 196 197 293 292 +f 197 198 294 293 +f 198 199 295 294 +f 199 200 296 295 +f 200 201 297 296 +f 201 202 298 297 +f 202 203 299 298 +f 203 204 300 299 +f 204 205 301 300 +f 205 206 302 301 +f 206 207 303 302 +f 207 208 304 303 +f 208 209 305 304 +f 209 210 306 305 +f 210 211 307 306 +f 211 212 308 307 +f 212 213 309 308 +f 213 214 310 309 +f 214 215 311 310 +f 215 216 312 311 +f 216 217 313 312 +f 217 218 314 313 +f 218 219 315 314 +f 219 220 316 315 +f 220 221 317 316 +f 221 222 318 317 +f 222 223 319 318 +f 223 224 320 319 +f 224 225 321 320 +f 225 226 322 321 +f 226 227 323 322 +f 227 228 324 323 +f 228 229 325 324 +f 229 230 326 325 +f 230 231 327 326 +f 231 232 328 327 +f 232 233 329 328 +f 233 234 330 329 +f 234 235 331 330 +f 235 236 332 331 +f 236 237 333 332 +f 237 238 334 333 +f 238 239 335 334 +f 239 240 336 335 +f 240 241 337 336 +f 241 242 338 337 +f 242 243 339 338 +f 243 244 340 339 +f 244 245 341 340 +f 245 246 342 341 +f 246 247 343 342 +f 247 248 344 343 +f 248 249 345 344 +f 249 250 346 345 +f 250 251 347 346 +f 251 252 348 347 +f 252 253 349 348 +f 253 254 350 349 +f 254 255 351 350 +f 255 256 352 351 +f 256 257 353 352 +f 257 258 354 353 +f 258 259 355 354 +f 259 260 356 355 +f 260 261 357 356 +f 261 262 358 357 +f 262 263 359 358 +f 263 264 360 359 +f 264 265 361 360 +f 265 266 362 361 +f 266 267 363 362 +f 267 268 364 363 +f 268 269 365 364 +f 269 270 366 365 +f 270 271 367 366 +f 271 272 368 367 +f 272 273 369 368 +f 273 274 370 369 +f 274 275 371 370 +f 275 276 372 371 +f 276 277 373 372 +f 277 278 374 373 +f 278 279 375 374 +f 279 280 376 375 +f 280 281 377 376 +f 281 282 378 377 +f 282 283 379 378 +f 283 284 380 379 +f 284 285 381 380 +f 285 286 382 381 +f 286 287 383 382 +f 287 288 384 383 +f 288 289 385 384 +f 289 290 386 385 +f 290 195 291 386 +f 291 292 388 387 +f 292 293 389 388 +f 293 294 390 389 +f 294 295 391 390 +f 295 296 392 391 +f 296 297 393 392 +f 297 298 394 393 +f 298 299 395 394 +f 299 300 396 395 +f 300 301 397 396 +f 301 302 398 397 +f 302 303 399 398 +f 303 304 400 399 +f 304 305 401 400 +f 305 306 402 401 +f 306 307 403 402 +f 307 308 404 403 +f 308 309 405 404 +f 309 310 406 405 +f 310 311 407 406 +f 311 312 408 407 +f 312 313 409 408 +f 313 314 410 409 +f 314 315 411 410 +f 315 316 412 411 +f 316 317 413 412 +f 317 318 414 413 +f 318 319 415 414 +f 319 320 416 415 +f 320 321 417 416 +f 321 322 418 417 +f 322 323 419 418 +f 323 324 420 419 +f 324 325 421 420 +f 325 326 422 421 +f 326 327 423 422 +f 327 328 424 423 +f 328 329 425 424 +f 329 330 426 425 +f 330 331 427 426 +f 331 332 428 427 +f 332 333 429 428 +f 333 334 430 429 +f 334 335 431 430 +f 335 336 432 431 +f 336 337 433 432 +f 337 338 434 433 +f 338 339 435 434 +f 339 340 436 435 +f 340 341 437 436 +f 341 342 438 437 +f 342 343 439 438 +f 343 344 440 439 +f 344 345 441 440 +f 345 346 442 441 +f 346 347 443 442 +f 347 348 444 443 +f 348 349 445 444 +f 349 350 446 445 +f 350 351 447 446 +f 351 352 448 447 +f 352 353 449 448 +f 353 354 450 449 +f 354 355 451 450 +f 355 356 452 451 +f 356 357 453 452 +f 357 358 454 453 +f 358 359 455 454 +f 359 360 456 455 +f 360 361 457 456 +f 361 362 458 457 +f 362 363 459 458 +f 363 364 460 459 +f 364 365 461 460 +f 365 366 462 461 +f 366 367 463 462 +f 367 368 464 463 +f 368 369 465 464 +f 369 370 466 465 +f 370 371 467 466 +f 371 372 468 467 +f 372 373 469 468 +f 373 374 470 469 +f 374 375 471 470 +f 375 376 472 471 +f 376 377 473 472 +f 377 378 474 473 +f 378 379 475 474 +f 379 380 476 475 +f 380 381 477 476 +f 381 382 478 477 +f 382 383 479 478 +f 383 384 480 479 +f 384 385 481 480 +f 385 386 482 481 +f 386 291 387 482 +f 387 388 484 483 +f 388 389 485 484 +f 389 390 486 485 +f 390 391 487 486 +f 391 392 488 487 +f 392 393 489 488 +f 393 394 490 489 +f 394 395 491 490 +f 395 396 492 491 +f 396 397 493 492 +f 397 398 494 493 +f 398 399 495 494 +f 399 400 496 495 +f 400 401 497 496 +f 401 402 498 497 +f 402 403 499 498 +f 403 404 500 499 +f 404 405 501 500 +f 405 406 502 501 +f 406 407 503 502 +f 407 408 504 503 +f 408 409 505 504 +f 409 410 506 505 +f 410 411 507 506 +f 411 412 508 507 +f 412 413 509 508 +f 413 414 510 509 +f 414 415 511 510 +f 415 416 512 511 +f 416 417 513 512 +f 417 418 514 513 +f 418 419 515 514 +f 419 420 516 515 +f 420 421 517 516 +f 421 422 518 517 +f 422 423 519 518 +f 423 424 520 519 +f 424 425 521 520 +f 425 426 522 521 +f 426 427 523 522 +f 427 428 524 523 +f 428 429 525 524 +f 429 430 526 525 +f 430 431 527 526 +f 431 432 528 527 +f 432 433 529 528 +f 433 434 530 529 +f 434 435 531 530 +f 435 436 532 531 +f 436 437 533 532 +f 437 438 534 533 +f 438 439 535 534 +f 439 440 536 535 +f 440 441 537 536 +f 441 442 538 537 +f 442 443 539 538 +f 443 444 540 539 +f 444 445 541 540 +f 445 446 542 541 +f 446 447 543 542 +f 447 448 544 543 +f 448 449 545 544 +f 449 450 546 545 +f 450 451 547 546 +f 451 452 548 547 +f 452 453 549 548 +f 453 454 550 549 +f 454 455 551 550 +f 455 456 552 551 +f 456 457 553 552 +f 457 458 554 553 +f 458 459 555 554 +f 459 460 556 555 +f 460 461 557 556 +f 461 462 558 557 +f 462 463 559 558 +f 463 464 560 559 +f 464 465 561 560 +f 465 466 562 561 +f 466 467 563 562 +f 467 468 564 563 +f 468 469 565 564 +f 469 470 566 565 +f 470 471 567 566 +f 471 472 568 567 +f 472 473 569 568 +f 473 474 570 569 +f 474 475 571 570 +f 475 476 572 571 +f 476 477 573 572 +f 477 478 574 573 +f 478 479 575 574 +f 479 480 576 575 +f 480 481 577 576 +f 481 482 578 577 +f 482 387 483 578 +f 483 484 580 579 +f 484 485 581 580 +f 485 486 582 581 +f 486 487 583 582 +f 487 488 584 583 +f 488 489 585 584 +f 489 490 586 585 +f 490 491 587 586 +f 491 492 588 587 +f 492 493 589 588 +f 493 494 590 589 +f 494 495 591 590 +f 495 496 592 591 +f 496 497 593 592 +f 497 498 594 593 +f 498 499 595 594 +f 499 500 596 595 +f 500 501 597 596 +f 501 502 598 597 +f 502 503 599 598 +f 503 504 600 599 +f 504 505 601 600 +f 505 506 602 601 +f 506 507 603 602 +f 507 508 604 603 +f 508 509 605 604 +f 509 510 606 605 +f 510 511 607 606 +f 511 512 608 607 +f 512 513 609 608 +f 513 514 610 609 +f 514 515 611 610 +f 515 516 612 611 +f 516 517 613 612 +f 517 518 614 613 +f 518 519 615 614 +f 519 520 616 615 +f 520 521 617 616 +f 521 522 618 617 +f 522 523 619 618 +f 523 524 620 619 +f 524 525 621 620 +f 525 526 622 621 +f 526 527 623 622 +f 527 528 624 623 +f 528 529 625 624 +f 529 530 626 625 +f 530 531 627 626 +f 531 532 628 627 +f 532 533 629 628 +f 533 534 630 629 +f 534 535 631 630 +f 535 536 632 631 +f 536 537 633 632 +f 537 538 634 633 +f 538 539 635 634 +f 539 540 636 635 +f 540 541 637 636 +f 541 542 638 637 +f 542 543 639 638 +f 543 544 640 639 +f 544 545 641 640 +f 545 546 642 641 +f 546 547 643 642 +f 547 548 644 643 +f 548 549 645 644 +f 549 550 646 645 +f 550 551 647 646 +f 551 552 648 647 +f 552 553 649 648 +f 553 554 650 649 +f 554 555 651 650 +f 555 556 652 651 +f 556 557 653 652 +f 557 558 654 653 +f 558 559 655 654 +f 559 560 656 655 +f 560 561 657 656 +f 561 562 658 657 +f 562 563 659 658 +f 563 564 660 659 +f 564 565 661 660 +f 565 566 662 661 +f 566 567 663 662 +f 567 568 664 663 +f 568 569 665 664 +f 569 570 666 665 +f 570 571 667 666 +f 571 572 668 667 +f 572 573 669 668 +f 573 574 670 669 +f 574 575 671 670 +f 575 576 672 671 +f 576 577 673 672 +f 577 578 674 673 +f 578 483 579 674 +f 579 580 676 675 +f 580 581 677 676 +f 581 582 678 677 +f 582 583 679 678 +f 583 584 680 679 +f 584 585 681 680 +f 585 586 682 681 +f 586 587 683 682 +f 587 588 684 683 +f 588 589 685 684 +f 589 590 686 685 +f 590 591 687 686 +f 591 592 688 687 +f 592 593 689 688 +f 593 594 690 689 +f 594 595 691 690 +f 595 596 692 691 +f 596 597 693 692 +f 597 598 694 693 +f 598 599 695 694 +f 599 600 696 695 +f 600 601 697 696 +f 601 602 698 697 +f 602 603 699 698 +f 603 604 700 699 +f 604 605 701 700 +f 605 606 702 701 +f 606 607 703 702 +f 607 608 704 703 +f 608 609 705 704 +f 609 610 706 705 +f 610 611 707 706 +f 611 612 708 707 +f 612 613 709 708 +f 613 614 710 709 +f 614 615 711 710 +f 615 616 712 711 +f 616 617 713 712 +f 617 618 714 713 +f 618 619 715 714 +f 619 620 716 715 +f 620 621 717 716 +f 621 622 718 717 +f 622 623 719 718 +f 623 624 720 719 +f 624 625 721 720 +f 625 626 722 721 +f 626 627 723 722 +f 627 628 724 723 +f 628 629 725 724 +f 629 630 726 725 +f 630 631 727 726 +f 631 632 728 727 +f 632 633 729 728 +f 633 634 730 729 +f 634 635 731 730 +f 635 636 732 731 +f 636 637 733 732 +f 637 638 734 733 +f 638 639 735 734 +f 639 640 736 735 +f 640 641 737 736 +f 641 642 738 737 +f 642 643 739 738 +f 643 644 740 739 +f 644 645 741 740 +f 645 646 742 741 +f 646 647 743 742 +f 647 648 744 743 +f 648 649 745 744 +f 649 650 746 745 +f 650 651 747 746 +f 651 652 748 747 +f 652 653 749 748 +f 653 654 750 749 +f 654 655 751 750 +f 655 656 752 751 +f 656 657 753 752 +f 657 658 754 753 +f 658 659 755 754 +f 659 660 756 755 +f 660 661 757 756 +f 661 662 758 757 +f 662 663 759 758 +f 663 664 760 759 +f 664 665 761 760 +f 665 666 762 761 +f 666 667 763 762 +f 667 668 764 763 +f 668 669 765 764 +f 669 670 766 765 +f 670 671 767 766 +f 671 672 768 767 +f 672 673 769 768 +f 673 674 770 769 +f 674 579 675 770 +f 675 676 772 771 +f 676 677 773 772 +f 677 678 774 773 +f 678 679 775 774 +f 679 680 776 775 +f 680 681 777 776 +f 681 682 778 777 +f 682 683 779 778 +f 683 684 780 779 +f 684 685 781 780 +f 685 686 782 781 +f 686 687 783 782 +f 687 688 784 783 +f 688 689 785 784 +f 689 690 786 785 +f 690 691 787 786 +f 691 692 788 787 +f 692 693 789 788 +f 693 694 790 789 +f 694 695 791 790 +f 695 696 792 791 +f 696 697 793 792 +f 697 698 794 793 +f 698 699 795 794 +f 699 700 796 795 +f 700 701 797 796 +f 701 702 798 797 +f 702 703 799 798 +f 703 704 800 799 +f 704 705 801 800 +f 705 706 802 801 +f 706 707 803 802 +f 707 708 804 803 +f 708 709 805 804 +f 709 710 806 805 +f 710 711 807 806 +f 711 712 808 807 +f 712 713 809 808 +f 713 714 810 809 +f 714 715 811 810 +f 715 716 812 811 +f 716 717 813 812 +f 717 718 814 813 +f 718 719 815 814 +f 719 720 816 815 +f 720 721 817 816 +f 721 722 818 817 +f 722 723 819 818 +f 723 724 820 819 +f 724 725 821 820 +f 725 726 822 821 +f 726 727 823 822 +f 727 728 824 823 +f 728 729 825 824 +f 729 730 826 825 +f 730 731 827 826 +f 731 732 828 827 +f 732 733 829 828 +f 733 734 830 829 +f 734 735 831 830 +f 735 736 832 831 +f 736 737 833 832 +f 737 738 834 833 +f 738 739 835 834 +f 739 740 836 835 +f 740 741 837 836 +f 741 742 838 837 +f 742 743 839 838 +f 743 744 840 839 +f 744 745 841 840 +f 745 746 842 841 +f 746 747 843 842 +f 747 748 844 843 +f 748 749 845 844 +f 749 750 846 845 +f 750 751 847 846 +f 751 752 848 847 +f 752 753 849 848 +f 753 754 850 849 +f 754 755 851 850 +f 755 756 852 851 +f 756 757 853 852 +f 757 758 854 853 +f 758 759 855 854 +f 759 760 856 855 +f 760 761 857 856 +f 761 762 858 857 +f 762 763 859 858 +f 763 764 860 859 +f 764 765 861 860 +f 765 766 862 861 +f 766 767 863 862 +f 767 768 864 863 +f 768 769 865 864 +f 769 770 866 865 +f 770 675 771 866 +f 771 772 868 867 +f 772 773 869 868 +f 773 774 870 869 +f 774 775 871 870 +f 775 776 872 871 +f 776 777 873 872 +f 777 778 874 873 +f 778 779 875 874 +f 779 780 876 875 +f 780 781 877 876 +f 781 782 878 877 +f 782 783 879 878 +f 783 784 880 879 +f 784 785 881 880 +f 785 786 882 881 +f 786 787 883 882 +f 787 788 884 883 +f 788 789 885 884 +f 789 790 886 885 +f 790 791 887 886 +f 791 792 888 887 +f 792 793 889 888 +f 793 794 890 889 +f 794 795 891 890 +f 795 796 892 891 +f 796 797 893 892 +f 797 798 894 893 +f 798 799 895 894 +f 799 800 896 895 +f 800 801 897 896 +f 801 802 898 897 +f 802 803 899 898 +f 803 804 900 899 +f 804 805 901 900 +f 805 806 902 901 +f 806 807 903 902 +f 807 808 904 903 +f 808 809 905 904 +f 809 810 906 905 +f 810 811 907 906 +f 811 812 908 907 +f 812 813 909 908 +f 813 814 910 909 +f 814 815 911 910 +f 815 816 912 911 +f 816 817 913 912 +f 817 818 914 913 +f 818 819 915 914 +f 819 820 916 915 +f 820 821 917 916 +f 821 822 918 917 +f 822 823 919 918 +f 823 824 920 919 +f 824 825 921 920 +f 825 826 922 921 +f 826 827 923 922 +f 827 828 924 923 +f 828 829 925 924 +f 829 830 926 925 +f 830 831 927 926 +f 831 832 928 927 +f 832 833 929 928 +f 833 834 930 929 +f 834 835 931 930 +f 835 836 932 931 +f 836 837 933 932 +f 837 838 934 933 +f 838 839 935 934 +f 839 840 936 935 +f 840 841 937 936 +f 841 842 938 937 +f 842 843 939 938 +f 843 844 940 939 +f 844 845 941 940 +f 845 846 942 941 +f 846 847 943 942 +f 847 848 944 943 +f 848 849 945 944 +f 849 850 946 945 +f 850 851 947 946 +f 851 852 948 947 +f 852 853 949 948 +f 853 854 950 949 +f 854 855 951 950 +f 855 856 952 951 +f 856 857 953 952 +f 857 858 954 953 +f 858 859 955 954 +f 859 860 956 955 +f 860 861 957 956 +f 861 862 958 957 +f 862 863 959 958 +f 863 864 960 959 +f 864 865 961 960 +f 865 866 962 961 +f 866 771 867 962 +f 867 868 964 963 +f 868 869 965 964 +f 869 870 966 965 +f 870 871 967 966 +f 871 872 968 967 +f 872 873 969 968 +f 873 874 970 969 +f 874 875 971 970 +f 875 876 972 971 +f 876 877 973 972 +f 877 878 974 973 +f 878 879 975 974 +f 879 880 976 975 +f 880 881 977 976 +f 881 882 978 977 +f 882 883 979 978 +f 883 884 980 979 +f 884 885 981 980 +f 885 886 982 981 +f 886 887 983 982 +f 887 888 984 983 +f 888 889 985 984 +f 889 890 986 985 +f 890 891 987 986 +f 891 892 988 987 +f 892 893 989 988 +f 893 894 990 989 +f 894 895 991 990 +f 895 896 992 991 +f 896 897 993 992 +f 897 898 994 993 +f 898 899 995 994 +f 899 900 996 995 +f 900 901 997 996 +f 901 902 998 997 +f 902 903 999 998 +f 903 904 1000 999 +f 904 905 1001 1000 +f 905 906 1002 1001 +f 906 907 1003 1002 +f 907 908 1004 1003 +f 908 909 1005 1004 +f 909 910 1006 1005 +f 910 911 1007 1006 +f 911 912 1008 1007 +f 912 913 1009 1008 +f 913 914 1010 1009 +f 914 915 1011 1010 +f 915 916 1012 1011 +f 916 917 1013 1012 +f 917 918 1014 1013 +f 918 919 1015 1014 +f 919 920 1016 1015 +f 920 921 1017 1016 +f 921 922 1018 1017 +f 922 923 1019 1018 +f 923 924 1020 1019 +f 924 925 1021 1020 +f 925 926 1022 1021 +f 926 927 1023 1022 +f 927 928 1024 1023 +f 928 929 1025 1024 +f 929 930 1026 1025 +f 930 931 1027 1026 +f 931 932 1028 1027 +f 932 933 1029 1028 +f 933 934 1030 1029 +f 934 935 1031 1030 +f 935 936 1032 1031 +f 936 937 1033 1032 +f 937 938 1034 1033 +f 938 939 1035 1034 +f 939 940 1036 1035 +f 940 941 1037 1036 +f 941 942 1038 1037 +f 942 943 1039 1038 +f 943 944 1040 1039 +f 944 945 1041 1040 +f 945 946 1042 1041 +f 946 947 1043 1042 +f 947 948 1044 1043 +f 948 949 1045 1044 +f 949 950 1046 1045 +f 950 951 1047 1046 +f 951 952 1048 1047 +f 952 953 1049 1048 +f 953 954 1050 1049 +f 954 955 1051 1050 +f 955 956 1052 1051 +f 956 957 1053 1052 +f 957 958 1054 1053 +f 958 959 1055 1054 +f 959 960 1056 1055 +f 960 961 1057 1056 +f 961 962 1058 1057 +f 962 867 963 1058 +f 963 964 1060 1059 +f 964 965 1061 1060 +f 965 966 1062 1061 +f 966 967 1063 1062 +f 967 968 1064 1063 +f 968 969 1065 1064 +f 969 970 1066 1065 +f 970 971 1067 1066 +f 971 972 1068 1067 +f 972 973 1069 1068 +f 973 974 1070 1069 +f 974 975 1071 1070 +f 975 976 1072 1071 +f 976 977 1073 1072 +f 977 978 1074 1073 +f 978 979 1075 1074 +f 979 980 1076 1075 +f 980 981 1077 1076 +f 981 982 1078 1077 +f 982 983 1079 1078 +f 983 984 1080 1079 +f 984 985 1081 1080 +f 985 986 1082 1081 +f 986 987 1083 1082 +f 987 988 1084 1083 +f 988 989 1085 1084 +f 989 990 1086 1085 +f 990 991 1087 1086 +f 991 992 1088 1087 +f 992 993 1089 1088 +f 993 994 1090 1089 +f 994 995 1091 1090 +f 995 996 1092 1091 +f 996 997 1093 1092 +f 997 998 1094 1093 +f 998 999 1095 1094 +f 999 1000 1096 1095 +f 1000 1001 1097 1096 +f 1001 1002 1098 1097 +f 1002 1003 1099 1098 +f 1003 1004 1100 1099 +f 1004 1005 1101 1100 +f 1005 1006 1102 1101 +f 1006 1007 1103 1102 +f 1007 1008 1104 1103 +f 1008 1009 1105 1104 +f 1009 1010 1106 1105 +f 1010 1011 1107 1106 +f 1011 1012 1108 1107 +f 1012 1013 1109 1108 +f 1013 1014 1110 1109 +f 1014 1015 1111 1110 +f 1015 1016 1112 1111 +f 1016 1017 1113 1112 +f 1017 1018 1114 1113 +f 1018 1019 1115 1114 +f 1019 1020 1116 1115 +f 1020 1021 1117 1116 +f 1021 1022 1118 1117 +f 1022 1023 1119 1118 +f 1023 1024 1120 1119 +f 1024 1025 1121 1120 +f 1025 1026 1122 1121 +f 1026 1027 1123 1122 +f 1027 1028 1124 1123 +f 1028 1029 1125 1124 +f 1029 1030 1126 1125 +f 1030 1031 1127 1126 +f 1031 1032 1128 1127 +f 1032 1033 1129 1128 +f 1033 1034 1130 1129 +f 1034 1035 1131 1130 +f 1035 1036 1132 1131 +f 1036 1037 1133 1132 +f 1037 1038 1134 1133 +f 1038 1039 1135 1134 +f 1039 1040 1136 1135 +f 1040 1041 1137 1136 +f 1041 1042 1138 1137 +f 1042 1043 1139 1138 +f 1043 1044 1140 1139 +f 1044 1045 1141 1140 +f 1045 1046 1142 1141 +f 1046 1047 1143 1142 +f 1047 1048 1144 1143 +f 1048 1049 1145 1144 +f 1049 1050 1146 1145 +f 1050 1051 1147 1146 +f 1051 1052 1148 1147 +f 1052 1053 1149 1148 +f 1053 1054 1150 1149 +f 1054 1055 1151 1150 +f 1055 1056 1152 1151 +f 1056 1057 1153 1152 +f 1057 1058 1154 1153 +f 1058 963 1059 1154 +f 1059 1060 1156 1155 +f 1060 1061 1157 1156 +f 1061 1062 1158 1157 +f 1062 1063 1159 1158 +f 1063 1064 1160 1159 +f 1064 1065 1161 1160 +f 1065 1066 1162 1161 +f 1066 1067 1163 1162 +f 1067 1068 1164 1163 +f 1068 1069 1165 1164 +f 1069 1070 1166 1165 +f 1070 1071 1167 1166 +f 1071 1072 1168 1167 +f 1072 1073 1169 1168 +f 1073 1074 1170 1169 +f 1074 1075 1171 1170 +f 1075 1076 1172 1171 +f 1076 1077 1173 1172 +f 1077 1078 1174 1173 +f 1078 1079 1175 1174 +f 1079 1080 1176 1175 +f 1080 1081 1177 1176 +f 1081 1082 1178 1177 +f 1082 1083 1179 1178 +f 1083 1084 1180 1179 +f 1084 1085 1181 1180 +f 1085 1086 1182 1181 +f 1086 1087 1183 1182 +f 1087 1088 1184 1183 +f 1088 1089 1185 1184 +f 1089 1090 1186 1185 +f 1090 1091 1187 1186 +f 1091 1092 1188 1187 +f 1092 1093 1189 1188 +f 1093 1094 1190 1189 +f 1094 1095 1191 1190 +f 1095 1096 1192 1191 +f 1096 1097 1193 1192 +f 1097 1098 1194 1193 +f 1098 1099 1195 1194 +f 1099 1100 1196 1195 +f 1100 1101 1197 1196 +f 1101 1102 1198 1197 +f 1102 1103 1199 1198 +f 1103 1104 1200 1199 +f 1104 1105 1201 1200 +f 1105 1106 1202 1201 +f 1106 1107 1203 1202 +f 1107 1108 1204 1203 +f 1108 1109 1205 1204 +f 1109 1110 1206 1205 +f 1110 1111 1207 1206 +f 1111 1112 1208 1207 +f 1112 1113 1209 1208 +f 1113 1114 1210 1209 +f 1114 1115 1211 1210 +f 1115 1116 1212 1211 +f 1116 1117 1213 1212 +f 1117 1118 1214 1213 +f 1118 1119 1215 1214 +f 1119 1120 1216 1215 +f 1120 1121 1217 1216 +f 1121 1122 1218 1217 +f 1122 1123 1219 1218 +f 1123 1124 1220 1219 +f 1124 1125 1221 1220 +f 1125 1126 1222 1221 +f 1126 1127 1223 1222 +f 1127 1128 1224 1223 +f 1128 1129 1225 1224 +f 1129 1130 1226 1225 +f 1130 1131 1227 1226 +f 1131 1132 1228 1227 +f 1132 1133 1229 1228 +f 1133 1134 1230 1229 +f 1134 1135 1231 1230 +f 1135 1136 1232 1231 +f 1136 1137 1233 1232 +f 1137 1138 1234 1233 +f 1138 1139 1235 1234 +f 1139 1140 1236 1235 +f 1140 1141 1237 1236 +f 1141 1142 1238 1237 +f 1142 1143 1239 1238 +f 1143 1144 1240 1239 +f 1144 1145 1241 1240 +f 1145 1146 1242 1241 +f 1146 1147 1243 1242 +f 1147 1148 1244 1243 +f 1148 1149 1245 1244 +f 1149 1150 1246 1245 +f 1150 1151 1247 1246 +f 1151 1152 1248 1247 +f 1152 1153 1249 1248 +f 1153 1154 1250 1249 +f 1154 1059 1155 1250 +f 1155 1156 1252 1251 +f 1156 1157 1253 1252 +f 1157 1158 1254 1253 +f 1158 1159 1255 1254 +f 1159 1160 1256 1255 +f 1160 1161 1257 1256 +f 1161 1162 1258 1257 +f 1162 1163 1259 1258 +f 1163 1164 1260 1259 +f 1164 1165 1261 1260 +f 1165 1166 1262 1261 +f 1166 1167 1263 1262 +f 1167 1168 1264 1263 +f 1168 1169 1265 1264 +f 1169 1170 1266 1265 +f 1170 1171 1267 1266 +f 1171 1172 1268 1267 +f 1172 1173 1269 1268 +f 1173 1174 1270 1269 +f 1174 1175 1271 1270 +f 1175 1176 1272 1271 +f 1176 1177 1273 1272 +f 1177 1178 1274 1273 +f 1178 1179 1275 1274 +f 1179 1180 1276 1275 +f 1180 1181 1277 1276 +f 1181 1182 1278 1277 +f 1182 1183 1279 1278 +f 1183 1184 1280 1279 +f 1184 1185 1281 1280 +f 1185 1186 1282 1281 +f 1186 1187 1283 1282 +f 1187 1188 1284 1283 +f 1188 1189 1285 1284 +f 1189 1190 1286 1285 +f 1190 1191 1287 1286 +f 1191 1192 1288 1287 +f 1192 1193 1289 1288 +f 1193 1194 1290 1289 +f 1194 1195 1291 1290 +f 1195 1196 1292 1291 +f 1196 1197 1293 1292 +f 1197 1198 1294 1293 +f 1198 1199 1295 1294 +f 1199 1200 1296 1295 +f 1200 1201 1297 1296 +f 1201 1202 1298 1297 +f 1202 1203 1299 1298 +f 1203 1204 1300 1299 +f 1204 1205 1301 1300 +f 1205 1206 1302 1301 +f 1206 1207 1303 1302 +f 1207 1208 1304 1303 +f 1208 1209 1305 1304 +f 1209 1210 1306 1305 +f 1210 1211 1307 1306 +f 1211 1212 1308 1307 +f 1212 1213 1309 1308 +f 1213 1214 1310 1309 +f 1214 1215 1311 1310 +f 1215 1216 1312 1311 +f 1216 1217 1313 1312 +f 1217 1218 1314 1313 +f 1218 1219 1315 1314 +f 1219 1220 1316 1315 +f 1220 1221 1317 1316 +f 1221 1222 1318 1317 +f 1222 1223 1319 1318 +f 1223 1224 1320 1319 +f 1224 1225 1321 1320 +f 1225 1226 1322 1321 +f 1226 1227 1323 1322 +f 1227 1228 1324 1323 +f 1228 1229 1325 1324 +f 1229 1230 1326 1325 +f 1230 1231 1327 1326 +f 1231 1232 1328 1327 +f 1232 1233 1329 1328 +f 1233 1234 1330 1329 +f 1234 1235 1331 1330 +f 1235 1236 1332 1331 +f 1236 1237 1333 1332 +f 1237 1238 1334 1333 +f 1238 1239 1335 1334 +f 1239 1240 1336 1335 +f 1240 1241 1337 1336 +f 1241 1242 1338 1337 +f 1242 1243 1339 1338 +f 1243 1244 1340 1339 +f 1244 1245 1341 1340 +f 1245 1246 1342 1341 +f 1246 1247 1343 1342 +f 1247 1248 1344 1343 +f 1248 1249 1345 1344 +f 1249 1250 1346 1345 +f 1250 1155 1251 1346 +f 1251 1252 1348 1347 +f 1252 1253 1349 1348 +f 1253 1254 1350 1349 +f 1254 1255 1351 1350 +f 1255 1256 1352 1351 +f 1256 1257 1353 1352 +f 1257 1258 1354 1353 +f 1258 1259 1355 1354 +f 1259 1260 1356 1355 +f 1260 1261 1357 1356 +f 1261 1262 1358 1357 +f 1262 1263 1359 1358 +f 1263 1264 1360 1359 +f 1264 1265 1361 1360 +f 1265 1266 1362 1361 +f 1266 1267 1363 1362 +f 1267 1268 1364 1363 +f 1268 1269 1365 1364 +f 1269 1270 1366 1365 +f 1270 1271 1367 1366 +f 1271 1272 1368 1367 +f 1272 1273 1369 1368 +f 1273 1274 1370 1369 +f 1274 1275 1371 1370 +f 1275 1276 1372 1371 +f 1276 1277 1373 1372 +f 1277 1278 1374 1373 +f 1278 1279 1375 1374 +f 1279 1280 1376 1375 +f 1280 1281 1377 1376 +f 1281 1282 1378 1377 +f 1282 1283 1379 1378 +f 1283 1284 1380 1379 +f 1284 1285 1381 1380 +f 1285 1286 1382 1381 +f 1286 1287 1383 1382 +f 1287 1288 1384 1383 +f 1288 1289 1385 1384 +f 1289 1290 1386 1385 +f 1290 1291 1387 1386 +f 1291 1292 1388 1387 +f 1292 1293 1389 1388 +f 1293 1294 1390 1389 +f 1294 1295 1391 1390 +f 1295 1296 1392 1391 +f 1296 1297 1393 1392 +f 1297 1298 1394 1393 +f 1298 1299 1395 1394 +f 1299 1300 1396 1395 +f 1300 1301 1397 1396 +f 1301 1302 1398 1397 +f 1302 1303 1399 1398 +f 1303 1304 1400 1399 +f 1304 1305 1401 1400 +f 1305 1306 1402 1401 +f 1306 1307 1403 1402 +f 1307 1308 1404 1403 +f 1308 1309 1405 1404 +f 1309 1310 1406 1405 +f 1310 1311 1407 1406 +f 1311 1312 1408 1407 +f 1312 1313 1409 1408 +f 1313 1314 1410 1409 +f 1314 1315 1411 1410 +f 1315 1316 1412 1411 +f 1316 1317 1413 1412 +f 1317 1318 1414 1413 +f 1318 1319 1415 1414 +f 1319 1320 1416 1415 +f 1320 1321 1417 1416 +f 1321 1322 1418 1417 +f 1322 1323 1419 1418 +f 1323 1324 1420 1419 +f 1324 1325 1421 1420 +f 1325 1326 1422 1421 +f 1326 1327 1423 1422 +f 1327 1328 1424 1423 +f 1328 1329 1425 1424 +f 1329 1330 1426 1425 +f 1330 1331 1427 1426 +f 1331 1332 1428 1427 +f 1332 1333 1429 1428 +f 1333 1334 1430 1429 +f 1334 1335 1431 1430 +f 1335 1336 1432 1431 +f 1336 1337 1433 1432 +f 1337 1338 1434 1433 +f 1338 1339 1435 1434 +f 1339 1340 1436 1435 +f 1340 1341 1437 1436 +f 1341 1342 1438 1437 +f 1342 1343 1439 1438 +f 1343 1344 1440 1439 +f 1344 1345 1441 1440 +f 1345 1346 1442 1441 +f 1346 1251 1347 1442 +f 1347 1348 1444 1443 +f 1348 1349 1445 1444 +f 1349 1350 1446 1445 +f 1350 1351 1447 1446 +f 1351 1352 1448 1447 +f 1352 1353 1449 1448 +f 1353 1354 1450 1449 +f 1354 1355 1451 1450 +f 1355 1356 1452 1451 +f 1356 1357 1453 1452 +f 1357 1358 1454 1453 +f 1358 1359 1455 1454 +f 1359 1360 1456 1455 +f 1360 1361 1457 1456 +f 1361 1362 1458 1457 +f 1362 1363 1459 1458 +f 1363 1364 1460 1459 +f 1364 1365 1461 1460 +f 1365 1366 1462 1461 +f 1366 1367 1463 1462 +f 1367 1368 1464 1463 +f 1368 1369 1465 1464 +f 1369 1370 1466 1465 +f 1370 1371 1467 1466 +f 1371 1372 1468 1467 +f 1372 1373 1469 1468 +f 1373 1374 1470 1469 +f 1374 1375 1471 1470 +f 1375 1376 1472 1471 +f 1376 1377 1473 1472 +f 1377 1378 1474 1473 +f 1378 1379 1475 1474 +f 1379 1380 1476 1475 +f 1380 1381 1477 1476 +f 1381 1382 1478 1477 +f 1382 1383 1479 1478 +f 1383 1384 1480 1479 +f 1384 1385 1481 1480 +f 1385 1386 1482 1481 +f 1386 1387 1483 1482 +f 1387 1388 1484 1483 +f 1388 1389 1485 1484 +f 1389 1390 1486 1485 +f 1390 1391 1487 1486 +f 1391 1392 1488 1487 +f 1392 1393 1489 1488 +f 1393 1394 1490 1489 +f 1394 1395 1491 1490 +f 1395 1396 1492 1491 +f 1396 1397 1493 1492 +f 1397 1398 1494 1493 +f 1398 1399 1495 1494 +f 1399 1400 1496 1495 +f 1400 1401 1497 1496 +f 1401 1402 1498 1497 +f 1402 1403 1499 1498 +f 1403 1404 1500 1499 +f 1404 1405 1501 1500 +f 1405 1406 1502 1501 +f 1406 1407 1503 1502 +f 1407 1408 1504 1503 +f 1408 1409 1505 1504 +f 1409 1410 1506 1505 +f 1410 1411 1507 1506 +f 1411 1412 1508 1507 +f 1412 1413 1509 1508 +f 1413 1414 1510 1509 +f 1414 1415 1511 1510 +f 1415 1416 1512 1511 +f 1416 1417 1513 1512 +f 1417 1418 1514 1513 +f 1418 1419 1515 1514 +f 1419 1420 1516 1515 +f 1420 1421 1517 1516 +f 1421 1422 1518 1517 +f 1422 1423 1519 1518 +f 1423 1424 1520 1519 +f 1424 1425 1521 1520 +f 1425 1426 1522 1521 +f 1426 1427 1523 1522 +f 1427 1428 1524 1523 +f 1428 1429 1525 1524 +f 1429 1430 1526 1525 +f 1430 1431 1527 1526 +f 1431 1432 1528 1527 +f 1432 1433 1529 1528 +f 1433 1434 1530 1529 +f 1434 1435 1531 1530 +f 1435 1436 1532 1531 +f 1436 1437 1533 1532 +f 1437 1438 1534 1533 +f 1438 1439 1535 1534 +f 1439 1440 1536 1535 +f 1440 1441 1537 1536 +f 1441 1442 1538 1537 +f 1442 1347 1443 1538 +f 1443 1444 1540 1539 +f 1444 1445 1541 1540 +f 1445 1446 1542 1541 +f 1446 1447 1543 1542 +f 1447 1448 1544 1543 +f 1448 1449 1545 1544 +f 1449 1450 1546 1545 +f 1450 1451 1547 1546 +f 1451 1452 1548 1547 +f 1452 1453 1549 1548 +f 1453 1454 1550 1549 +f 1454 1455 1551 1550 +f 1455 1456 1552 1551 +f 1456 1457 1553 1552 +f 1457 1458 1554 1553 +f 1458 1459 1555 1554 +f 1459 1460 1556 1555 +f 1460 1461 1557 1556 +f 1461 1462 1558 1557 +f 1462 1463 1559 1558 +f 1463 1464 1560 1559 +f 1464 1465 1561 1560 +f 1465 1466 1562 1561 +f 1466 1467 1563 1562 +f 1467 1468 1564 1563 +f 1468 1469 1565 1564 +f 1469 1470 1566 1565 +f 1470 1471 1567 1566 +f 1471 1472 1568 1567 +f 1472 1473 1569 1568 +f 1473 1474 1570 1569 +f 1474 1475 1571 1570 +f 1475 1476 1572 1571 +f 1476 1477 1573 1572 +f 1477 1478 1574 1573 +f 1478 1479 1575 1574 +f 1479 1480 1576 1575 +f 1480 1481 1577 1576 +f 1481 1482 1578 1577 +f 1482 1483 1579 1578 +f 1483 1484 1580 1579 +f 1484 1485 1581 1580 +f 1485 1486 1582 1581 +f 1486 1487 1583 1582 +f 1487 1488 1584 1583 +f 1488 1489 1585 1584 +f 1489 1490 1586 1585 +f 1490 1491 1587 1586 +f 1491 1492 1588 1587 +f 1492 1493 1589 1588 +f 1493 1494 1590 1589 +f 1494 1495 1591 1590 +f 1495 1496 1592 1591 +f 1496 1497 1593 1592 +f 1497 1498 1594 1593 +f 1498 1499 1595 1594 +f 1499 1500 1596 1595 +f 1500 1501 1597 1596 +f 1501 1502 1598 1597 +f 1502 1503 1599 1598 +f 1503 1504 1600 1599 +f 1504 1505 1601 1600 +f 1505 1506 1602 1601 +f 1506 1507 1603 1602 +f 1507 1508 1604 1603 +f 1508 1509 1605 1604 +f 1509 1510 1606 1605 +f 1510 1511 1607 1606 +f 1511 1512 1608 1607 +f 1512 1513 1609 1608 +f 1513 1514 1610 1609 +f 1514 1515 1611 1610 +f 1515 1516 1612 1611 +f 1516 1517 1613 1612 +f 1517 1518 1614 1613 +f 1518 1519 1615 1614 +f 1519 1520 1616 1615 +f 1520 1521 1617 1616 +f 1521 1522 1618 1617 +f 1522 1523 1619 1618 +f 1523 1524 1620 1619 +f 1524 1525 1621 1620 +f 1525 1526 1622 1621 +f 1526 1527 1623 1622 +f 1527 1528 1624 1623 +f 1528 1529 1625 1624 +f 1529 1530 1626 1625 +f 1530 1531 1627 1626 +f 1531 1532 1628 1627 +f 1532 1533 1629 1628 +f 1533 1534 1630 1629 +f 1534 1535 1631 1630 +f 1535 1536 1632 1631 +f 1536 1537 1633 1632 +f 1537 1538 1634 1633 +f 1538 1443 1539 1634 +f 1539 1540 1636 1635 +f 1540 1541 1637 1636 +f 1541 1542 1638 1637 +f 1542 1543 1639 1638 +f 1543 1544 1640 1639 +f 1544 1545 1641 1640 +f 1545 1546 1642 1641 +f 1546 1547 1643 1642 +f 1547 1548 1644 1643 +f 1548 1549 1645 1644 +f 1549 1550 1646 1645 +f 1550 1551 1647 1646 +f 1551 1552 1648 1647 +f 1552 1553 1649 1648 +f 1553 1554 1650 1649 +f 1554 1555 1651 1650 +f 1555 1556 1652 1651 +f 1556 1557 1653 1652 +f 1557 1558 1654 1653 +f 1558 1559 1655 1654 +f 1559 1560 1656 1655 +f 1560 1561 1657 1656 +f 1561 1562 1658 1657 +f 1562 1563 1659 1658 +f 1563 1564 1660 1659 +f 1564 1565 1661 1660 +f 1565 1566 1662 1661 +f 1566 1567 1663 1662 +f 1567 1568 1664 1663 +f 1568 1569 1665 1664 +f 1569 1570 1666 1665 +f 1570 1571 1667 1666 +f 1571 1572 1668 1667 +f 1572 1573 1669 1668 +f 1573 1574 1670 1669 +f 1574 1575 1671 1670 +f 1575 1576 1672 1671 +f 1576 1577 1673 1672 +f 1577 1578 1674 1673 +f 1578 1579 1675 1674 +f 1579 1580 1676 1675 +f 1580 1581 1677 1676 +f 1581 1582 1678 1677 +f 1582 1583 1679 1678 +f 1583 1584 1680 1679 +f 1584 1585 1681 1680 +f 1585 1586 1682 1681 +f 1586 1587 1683 1682 +f 1587 1588 1684 1683 +f 1588 1589 1685 1684 +f 1589 1590 1686 1685 +f 1590 1591 1687 1686 +f 1591 1592 1688 1687 +f 1592 1593 1689 1688 +f 1593 1594 1690 1689 +f 1594 1595 1691 1690 +f 1595 1596 1692 1691 +f 1596 1597 1693 1692 +f 1597 1598 1694 1693 +f 1598 1599 1695 1694 +f 1599 1600 1696 1695 +f 1600 1601 1697 1696 +f 1601 1602 1698 1697 +f 1602 1603 1699 1698 +f 1603 1604 1700 1699 +f 1604 1605 1701 1700 +f 1605 1606 1702 1701 +f 1606 1607 1703 1702 +f 1607 1608 1704 1703 +f 1608 1609 1705 1704 +f 1609 1610 1706 1705 +f 1610 1611 1707 1706 +f 1611 1612 1708 1707 +f 1612 1613 1709 1708 +f 1613 1614 1710 1709 +f 1614 1615 1711 1710 +f 1615 1616 1712 1711 +f 1616 1617 1713 1712 +f 1617 1618 1714 1713 +f 1618 1619 1715 1714 +f 1619 1620 1716 1715 +f 1620 1621 1717 1716 +f 1621 1622 1718 1717 +f 1622 1623 1719 1718 +f 1623 1624 1720 1719 +f 1624 1625 1721 1720 +f 1625 1626 1722 1721 +f 1626 1627 1723 1722 +f 1627 1628 1724 1723 +f 1628 1629 1725 1724 +f 1629 1630 1726 1725 +f 1630 1631 1727 1726 +f 1631 1632 1728 1727 +f 1632 1633 1729 1728 +f 1633 1634 1730 1729 +f 1634 1539 1635 1730 +f 1635 1636 1732 1731 +f 1636 1637 1733 1732 +f 1637 1638 1734 1733 +f 1638 1639 1735 1734 +f 1639 1640 1736 1735 +f 1640 1641 1737 1736 +f 1641 1642 1738 1737 +f 1642 1643 1739 1738 +f 1643 1644 1740 1739 +f 1644 1645 1741 1740 +f 1645 1646 1742 1741 +f 1646 1647 1743 1742 +f 1647 1648 1744 1743 +f 1648 1649 1745 1744 +f 1649 1650 1746 1745 +f 1650 1651 1747 1746 +f 1651 1652 1748 1747 +f 1652 1653 1749 1748 +f 1653 1654 1750 1749 +f 1654 1655 1751 1750 +f 1655 1656 1752 1751 +f 1656 1657 1753 1752 +f 1657 1658 1754 1753 +f 1658 1659 1755 1754 +f 1659 1660 1756 1755 +f 1660 1661 1757 1756 +f 1661 1662 1758 1757 +f 1662 1663 1759 1758 +f 1663 1664 1760 1759 +f 1664 1665 1761 1760 +f 1665 1666 1762 1761 +f 1666 1667 1763 1762 +f 1667 1668 1764 1763 +f 1668 1669 1765 1764 +f 1669 1670 1766 1765 +f 1670 1671 1767 1766 +f 1671 1672 1768 1767 +f 1672 1673 1769 1768 +f 1673 1674 1770 1769 +f 1674 1675 1771 1770 +f 1675 1676 1772 1771 +f 1676 1677 1773 1772 +f 1677 1678 1774 1773 +f 1678 1679 1775 1774 +f 1679 1680 1776 1775 +f 1680 1681 1777 1776 +f 1681 1682 1778 1777 +f 1682 1683 1779 1778 +f 1683 1684 1780 1779 +f 1684 1685 1781 1780 +f 1685 1686 1782 1781 +f 1686 1687 1783 1782 +f 1687 1688 1784 1783 +f 1688 1689 1785 1784 +f 1689 1690 1786 1785 +f 1690 1691 1787 1786 +f 1691 1692 1788 1787 +f 1692 1693 1789 1788 +f 1693 1694 1790 1789 +f 1694 1695 1791 1790 +f 1695 1696 1792 1791 +f 1696 1697 1793 1792 +f 1697 1698 1794 1793 +f 1698 1699 1795 1794 +f 1699 1700 1796 1795 +f 1700 1701 1797 1796 +f 1701 1702 1798 1797 +f 1702 1703 1799 1798 +f 1703 1704 1800 1799 +f 1704 1705 1801 1800 +f 1705 1706 1802 1801 +f 1706 1707 1803 1802 +f 1707 1708 1804 1803 +f 1708 1709 1805 1804 +f 1709 1710 1806 1805 +f 1710 1711 1807 1806 +f 1711 1712 1808 1807 +f 1712 1713 1809 1808 +f 1713 1714 1810 1809 +f 1714 1715 1811 1810 +f 1715 1716 1812 1811 +f 1716 1717 1813 1812 +f 1717 1718 1814 1813 +f 1718 1719 1815 1814 +f 1719 1720 1816 1815 +f 1720 1721 1817 1816 +f 1721 1722 1818 1817 +f 1722 1723 1819 1818 +f 1723 1724 1820 1819 +f 1724 1725 1821 1820 +f 1725 1726 1822 1821 +f 1726 1727 1823 1822 +f 1727 1728 1824 1823 +f 1728 1729 1825 1824 +f 1729 1730 1826 1825 +f 1730 1635 1731 1826 +f 1731 1732 1828 1827 +f 1732 1733 1829 1828 +f 1733 1734 1830 1829 +f 1734 1735 1831 1830 +f 1735 1736 1832 1831 +f 1736 1737 1833 1832 +f 1737 1738 1834 1833 +f 1738 1739 1835 1834 +f 1739 1740 1836 1835 +f 1740 1741 1837 1836 +f 1741 1742 1838 1837 +f 1742 1743 1839 1838 +f 1743 1744 1840 1839 +f 1744 1745 1841 1840 +f 1745 1746 1842 1841 +f 1746 1747 1843 1842 +f 1747 1748 1844 1843 +f 1748 1749 1845 1844 +f 1749 1750 1846 1845 +f 1750 1751 1847 1846 +f 1751 1752 1848 1847 +f 1752 1753 1849 1848 +f 1753 1754 1850 1849 +f 1754 1755 1851 1850 +f 1755 1756 1852 1851 +f 1756 1757 1853 1852 +f 1757 1758 1854 1853 +f 1758 1759 1855 1854 +f 1759 1760 1856 1855 +f 1760 1761 1857 1856 +f 1761 1762 1858 1857 +f 1762 1763 1859 1858 +f 1763 1764 1860 1859 +f 1764 1765 1861 1860 +f 1765 1766 1862 1861 +f 1766 1767 1863 1862 +f 1767 1768 1864 1863 +f 1768 1769 1865 1864 +f 1769 1770 1866 1865 +f 1770 1771 1867 1866 +f 1771 1772 1868 1867 +f 1772 1773 1869 1868 +f 1773 1774 1870 1869 +f 1774 1775 1871 1870 +f 1775 1776 1872 1871 +f 1776 1777 1873 1872 +f 1777 1778 1874 1873 +f 1778 1779 1875 1874 +f 1779 1780 1876 1875 +f 1780 1781 1877 1876 +f 1781 1782 1878 1877 +f 1782 1783 1879 1878 +f 1783 1784 1880 1879 +f 1784 1785 1881 1880 +f 1785 1786 1882 1881 +f 1786 1787 1883 1882 +f 1787 1788 1884 1883 +f 1788 1789 1885 1884 +f 1789 1790 1886 1885 +f 1790 1791 1887 1886 +f 1791 1792 1888 1887 +f 1792 1793 1889 1888 +f 1793 1794 1890 1889 +f 1794 1795 1891 1890 +f 1795 1796 1892 1891 +f 1796 1797 1893 1892 +f 1797 1798 1894 1893 +f 1798 1799 1895 1894 +f 1799 1800 1896 1895 +f 1800 1801 1897 1896 +f 1801 1802 1898 1897 +f 1802 1803 1899 1898 +f 1803 1804 1900 1899 +f 1804 1805 1901 1900 +f 1805 1806 1902 1901 +f 1806 1807 1903 1902 +f 1807 1808 1904 1903 +f 1808 1809 1905 1904 +f 1809 1810 1906 1905 +f 1810 1811 1907 1906 +f 1811 1812 1908 1907 +f 1812 1813 1909 1908 +f 1813 1814 1910 1909 +f 1814 1815 1911 1910 +f 1815 1816 1912 1911 +f 1816 1817 1913 1912 +f 1817 1818 1914 1913 +f 1818 1819 1915 1914 +f 1819 1820 1916 1915 +f 1820 1821 1917 1916 +f 1821 1822 1918 1917 +f 1822 1823 1919 1918 +f 1823 1824 1920 1919 +f 1824 1825 1921 1920 +f 1825 1826 1922 1921 +f 1826 1731 1827 1922 +f 1827 1828 1924 1923 +f 1828 1829 1925 1924 +f 1829 1830 1926 1925 +f 1830 1831 1927 1926 +f 1831 1832 1928 1927 +f 1832 1833 1929 1928 +f 1833 1834 1930 1929 +f 1834 1835 1931 1930 +f 1835 1836 1932 1931 +f 1836 1837 1933 1932 +f 1837 1838 1934 1933 +f 1838 1839 1935 1934 +f 1839 1840 1936 1935 +f 1840 1841 1937 1936 +f 1841 1842 1938 1937 +f 1842 1843 1939 1938 +f 1843 1844 1940 1939 +f 1844 1845 1941 1940 +f 1845 1846 1942 1941 +f 1846 1847 1943 1942 +f 1847 1848 1944 1943 +f 1848 1849 1945 1944 +f 1849 1850 1946 1945 +f 1850 1851 1947 1946 +f 1851 1852 1948 1947 +f 1852 1853 1949 1948 +f 1853 1854 1950 1949 +f 1854 1855 1951 1950 +f 1855 1856 1952 1951 +f 1856 1857 1953 1952 +f 1857 1858 1954 1953 +f 1858 1859 1955 1954 +f 1859 1860 1956 1955 +f 1860 1861 1957 1956 +f 1861 1862 1958 1957 +f 1862 1863 1959 1958 +f 1863 1864 1960 1959 +f 1864 1865 1961 1960 +f 1865 1866 1962 1961 +f 1866 1867 1963 1962 +f 1867 1868 1964 1963 +f 1868 1869 1965 1964 +f 1869 1870 1966 1965 +f 1870 1871 1967 1966 +f 1871 1872 1968 1967 +f 1872 1873 1969 1968 +f 1873 1874 1970 1969 +f 1874 1875 1971 1970 +f 1875 1876 1972 1971 +f 1876 1877 1973 1972 +f 1877 1878 1974 1973 +f 1878 1879 1975 1974 +f 1879 1880 1976 1975 +f 1880 1881 1977 1976 +f 1881 1882 1978 1977 +f 1882 1883 1979 1978 +f 1883 1884 1980 1979 +f 1884 1885 1981 1980 +f 1885 1886 1982 1981 +f 1886 1887 1983 1982 +f 1887 1888 1984 1983 +f 1888 1889 1985 1984 +f 1889 1890 1986 1985 +f 1890 1891 1987 1986 +f 1891 1892 1988 1987 +f 1892 1893 1989 1988 +f 1893 1894 1990 1989 +f 1894 1895 1991 1990 +f 1895 1896 1992 1991 +f 1896 1897 1993 1992 +f 1897 1898 1994 1993 +f 1898 1899 1995 1994 +f 1899 1900 1996 1995 +f 1900 1901 1997 1996 +f 1901 1902 1998 1997 +f 1902 1903 1999 1998 +f 1903 1904 2000 1999 +f 1904 1905 2001 2000 +f 1905 1906 2002 2001 +f 1906 1907 2003 2002 +f 1907 1908 2004 2003 +f 1908 1909 2005 2004 +f 1909 1910 2006 2005 +f 1910 1911 2007 2006 +f 1911 1912 2008 2007 +f 1912 1913 2009 2008 +f 1913 1914 2010 2009 +f 1914 1915 2011 2010 +f 1915 1916 2012 2011 +f 1916 1917 2013 2012 +f 1917 1918 2014 2013 +f 1918 1919 2015 2014 +f 1919 1920 2016 2015 +f 1920 1921 2017 2016 +f 1921 1922 2018 2017 +f 1922 1827 1923 2018 +f 1923 1924 2020 2019 +f 1924 1925 2021 2020 +f 1925 1926 2022 2021 +f 1926 1927 2023 2022 +f 1927 1928 2024 2023 +f 1928 1929 2025 2024 +f 1929 1930 2026 2025 +f 1930 1931 2027 2026 +f 1931 1932 2028 2027 +f 1932 1933 2029 2028 +f 1933 1934 2030 2029 +f 1934 1935 2031 2030 +f 1935 1936 2032 2031 +f 1936 1937 2033 2032 +f 1937 1938 2034 2033 +f 1938 1939 2035 2034 +f 1939 1940 2036 2035 +f 1940 1941 2037 2036 +f 1941 1942 2038 2037 +f 1942 1943 2039 2038 +f 1943 1944 2040 2039 +f 1944 1945 2041 2040 +f 1945 1946 2042 2041 +f 1946 1947 2043 2042 +f 1947 1948 2044 2043 +f 1948 1949 2045 2044 +f 1949 1950 2046 2045 +f 1950 1951 2047 2046 +f 1951 1952 2048 2047 +f 1952 1953 2049 2048 +f 1953 1954 2050 2049 +f 1954 1955 2051 2050 +f 1955 1956 2052 2051 +f 1956 1957 2053 2052 +f 1957 1958 2054 2053 +f 1958 1959 2055 2054 +f 1959 1960 2056 2055 +f 1960 1961 2057 2056 +f 1961 1962 2058 2057 +f 1962 1963 2059 2058 +f 1963 1964 2060 2059 +f 1964 1965 2061 2060 +f 1965 1966 2062 2061 +f 1966 1967 2063 2062 +f 1967 1968 2064 2063 +f 1968 1969 2065 2064 +f 1969 1970 2066 2065 +f 1970 1971 2067 2066 +f 1971 1972 2068 2067 +f 1972 1973 2069 2068 +f 1973 1974 2070 2069 +f 1974 1975 2071 2070 +f 1975 1976 2072 2071 +f 1976 1977 2073 2072 +f 1977 1978 2074 2073 +f 1978 1979 2075 2074 +f 1979 1980 2076 2075 +f 1980 1981 2077 2076 +f 1981 1982 2078 2077 +f 1982 1983 2079 2078 +f 1983 1984 2080 2079 +f 1984 1985 2081 2080 +f 1985 1986 2082 2081 +f 1986 1987 2083 2082 +f 1987 1988 2084 2083 +f 1988 1989 2085 2084 +f 1989 1990 2086 2085 +f 1990 1991 2087 2086 +f 1991 1992 2088 2087 +f 1992 1993 2089 2088 +f 1993 1994 2090 2089 +f 1994 1995 2091 2090 +f 1995 1996 2092 2091 +f 1996 1997 2093 2092 +f 1997 1998 2094 2093 +f 1998 1999 2095 2094 +f 1999 2000 2096 2095 +f 2000 2001 2097 2096 +f 2001 2002 2098 2097 +f 2002 2003 2099 2098 +f 2003 2004 2100 2099 +f 2004 2005 2101 2100 +f 2005 2006 2102 2101 +f 2006 2007 2103 2102 +f 2007 2008 2104 2103 +f 2008 2009 2105 2104 +f 2009 2010 2106 2105 +f 2010 2011 2107 2106 +f 2011 2012 2108 2107 +f 2012 2013 2109 2108 +f 2013 2014 2110 2109 +f 2014 2015 2111 2110 +f 2015 2016 2112 2111 +f 2016 2017 2113 2112 +f 2017 2018 2114 2113 +f 2018 1923 2019 2114 +f 2019 2020 2116 2115 +f 2020 2021 2117 2116 +f 2021 2022 2118 2117 +f 2022 2023 2119 2118 +f 2023 2024 2120 2119 +f 2024 2025 2121 2120 +f 2025 2026 2122 2121 +f 2026 2027 2123 2122 +f 2027 2028 2124 2123 +f 2028 2029 2125 2124 +f 2029 2030 2126 2125 +f 2030 2031 2127 2126 +f 2031 2032 2128 2127 +f 2032 2033 2129 2128 +f 2033 2034 2130 2129 +f 2034 2035 2131 2130 +f 2035 2036 2132 2131 +f 2036 2037 2133 2132 +f 2037 2038 2134 2133 +f 2038 2039 2135 2134 +f 2039 2040 2136 2135 +f 2040 2041 2137 2136 +f 2041 2042 2138 2137 +f 2042 2043 2139 2138 +f 2043 2044 2140 2139 +f 2044 2045 2141 2140 +f 2045 2046 2142 2141 +f 2046 2047 2143 2142 +f 2047 2048 2144 2143 +f 2048 2049 2145 2144 +f 2049 2050 2146 2145 +f 2050 2051 2147 2146 +f 2051 2052 2148 2147 +f 2052 2053 2149 2148 +f 2053 2054 2150 2149 +f 2054 2055 2151 2150 +f 2055 2056 2152 2151 +f 2056 2057 2153 2152 +f 2057 2058 2154 2153 +f 2058 2059 2155 2154 +f 2059 2060 2156 2155 +f 2060 2061 2157 2156 +f 2061 2062 2158 2157 +f 2062 2063 2159 2158 +f 2063 2064 2160 2159 +f 2064 2065 2161 2160 +f 2065 2066 2162 2161 +f 2066 2067 2163 2162 +f 2067 2068 2164 2163 +f 2068 2069 2165 2164 +f 2069 2070 2166 2165 +f 2070 2071 2167 2166 +f 2071 2072 2168 2167 +f 2072 2073 2169 2168 +f 2073 2074 2170 2169 +f 2074 2075 2171 2170 +f 2075 2076 2172 2171 +f 2076 2077 2173 2172 +f 2077 2078 2174 2173 +f 2078 2079 2175 2174 +f 2079 2080 2176 2175 +f 2080 2081 2177 2176 +f 2081 2082 2178 2177 +f 2082 2083 2179 2178 +f 2083 2084 2180 2179 +f 2084 2085 2181 2180 +f 2085 2086 2182 2181 +f 2086 2087 2183 2182 +f 2087 2088 2184 2183 +f 2088 2089 2185 2184 +f 2089 2090 2186 2185 +f 2090 2091 2187 2186 +f 2091 2092 2188 2187 +f 2092 2093 2189 2188 +f 2093 2094 2190 2189 +f 2094 2095 2191 2190 +f 2095 2096 2192 2191 +f 2096 2097 2193 2192 +f 2097 2098 2194 2193 +f 2098 2099 2195 2194 +f 2099 2100 2196 2195 +f 2100 2101 2197 2196 +f 2101 2102 2198 2197 +f 2102 2103 2199 2198 +f 2103 2104 2200 2199 +f 2104 2105 2201 2200 +f 2105 2106 2202 2201 +f 2106 2107 2203 2202 +f 2107 2108 2204 2203 +f 2108 2109 2205 2204 +f 2109 2110 2206 2205 +f 2110 2111 2207 2206 +f 2111 2112 2208 2207 +f 2112 2113 2209 2208 +f 2113 2114 2210 2209 +f 2114 2019 2115 2210 +f 2115 2116 2212 2211 +f 2116 2117 2213 2212 +f 2117 2118 2214 2213 +f 2118 2119 2215 2214 +f 2119 2120 2216 2215 +f 2120 2121 2217 2216 +f 2121 2122 2218 2217 +f 2122 2123 2219 2218 +f 2123 2124 2220 2219 +f 2124 2125 2221 2220 +f 2125 2126 2222 2221 +f 2126 2127 2223 2222 +f 2127 2128 2224 2223 +f 2128 2129 2225 2224 +f 2129 2130 2226 2225 +f 2130 2131 2227 2226 +f 2131 2132 2228 2227 +f 2132 2133 2229 2228 +f 2133 2134 2230 2229 +f 2134 2135 2231 2230 +f 2135 2136 2232 2231 +f 2136 2137 2233 2232 +f 2137 2138 2234 2233 +f 2138 2139 2235 2234 +f 2139 2140 2236 2235 +f 2140 2141 2237 2236 +f 2141 2142 2238 2237 +f 2142 2143 2239 2238 +f 2143 2144 2240 2239 +f 2144 2145 2241 2240 +f 2145 2146 2242 2241 +f 2146 2147 2243 2242 +f 2147 2148 2244 2243 +f 2148 2149 2245 2244 +f 2149 2150 2246 2245 +f 2150 2151 2247 2246 +f 2151 2152 2248 2247 +f 2152 2153 2249 2248 +f 2153 2154 2250 2249 +f 2154 2155 2251 2250 +f 2155 2156 2252 2251 +f 2156 2157 2253 2252 +f 2157 2158 2254 2253 +f 2158 2159 2255 2254 +f 2159 2160 2256 2255 +f 2160 2161 2257 2256 +f 2161 2162 2258 2257 +f 2162 2163 2259 2258 +f 2163 2164 2260 2259 +f 2164 2165 2261 2260 +f 2165 2166 2262 2261 +f 2166 2167 2263 2262 +f 2167 2168 2264 2263 +f 2168 2169 2265 2264 +f 2169 2170 2266 2265 +f 2170 2171 2267 2266 +f 2171 2172 2268 2267 +f 2172 2173 2269 2268 +f 2173 2174 2270 2269 +f 2174 2175 2271 2270 +f 2175 2176 2272 2271 +f 2176 2177 2273 2272 +f 2177 2178 2274 2273 +f 2178 2179 2275 2274 +f 2179 2180 2276 2275 +f 2180 2181 2277 2276 +f 2181 2182 2278 2277 +f 2182 2183 2279 2278 +f 2183 2184 2280 2279 +f 2184 2185 2281 2280 +f 2185 2186 2282 2281 +f 2186 2187 2283 2282 +f 2187 2188 2284 2283 +f 2188 2189 2285 2284 +f 2189 2190 2286 2285 +f 2190 2191 2287 2286 +f 2191 2192 2288 2287 +f 2192 2193 2289 2288 +f 2193 2194 2290 2289 +f 2194 2195 2291 2290 +f 2195 2196 2292 2291 +f 2196 2197 2293 2292 +f 2197 2198 2294 2293 +f 2198 2199 2295 2294 +f 2199 2200 2296 2295 +f 2200 2201 2297 2296 +f 2201 2202 2298 2297 +f 2202 2203 2299 2298 +f 2203 2204 2300 2299 +f 2204 2205 2301 2300 +f 2205 2206 2302 2301 +f 2206 2207 2303 2302 +f 2207 2208 2304 2303 +f 2208 2209 2305 2304 +f 2209 2210 2306 2305 +f 2210 2115 2211 2306 +f 2211 2212 2308 2307 +f 2212 2213 2309 2308 +f 2213 2214 2310 2309 +f 2214 2215 2311 2310 +f 2215 2216 2312 2311 +f 2216 2217 2313 2312 +f 2217 2218 2314 2313 +f 2218 2219 2315 2314 +f 2219 2220 2316 2315 +f 2220 2221 2317 2316 +f 2221 2222 2318 2317 +f 2222 2223 2319 2318 +f 2223 2224 2320 2319 +f 2224 2225 2321 2320 +f 2225 2226 2322 2321 +f 2226 2227 2323 2322 +f 2227 2228 2324 2323 +f 2228 2229 2325 2324 +f 2229 2230 2326 2325 +f 2230 2231 2327 2326 +f 2231 2232 2328 2327 +f 2232 2233 2329 2328 +f 2233 2234 2330 2329 +f 2234 2235 2331 2330 +f 2235 2236 2332 2331 +f 2236 2237 2333 2332 +f 2237 2238 2334 2333 +f 2238 2239 2335 2334 +f 2239 2240 2336 2335 +f 2240 2241 2337 2336 +f 2241 2242 2338 2337 +f 2242 2243 2339 2338 +f 2243 2244 2340 2339 +f 2244 2245 2341 2340 +f 2245 2246 2342 2341 +f 2246 2247 2343 2342 +f 2247 2248 2344 2343 +f 2248 2249 2345 2344 +f 2249 2250 2346 2345 +f 2250 2251 2347 2346 +f 2251 2252 2348 2347 +f 2252 2253 2349 2348 +f 2253 2254 2350 2349 +f 2254 2255 2351 2350 +f 2255 2256 2352 2351 +f 2256 2257 2353 2352 +f 2257 2258 2354 2353 +f 2258 2259 2355 2354 +f 2259 2260 2356 2355 +f 2260 2261 2357 2356 +f 2261 2262 2358 2357 +f 2262 2263 2359 2358 +f 2263 2264 2360 2359 +f 2264 2265 2361 2360 +f 2265 2266 2362 2361 +f 2266 2267 2363 2362 +f 2267 2268 2364 2363 +f 2268 2269 2365 2364 +f 2269 2270 2366 2365 +f 2270 2271 2367 2366 +f 2271 2272 2368 2367 +f 2272 2273 2369 2368 +f 2273 2274 2370 2369 +f 2274 2275 2371 2370 +f 2275 2276 2372 2371 +f 2276 2277 2373 2372 +f 2277 2278 2374 2373 +f 2278 2279 2375 2374 +f 2279 2280 2376 2375 +f 2280 2281 2377 2376 +f 2281 2282 2378 2377 +f 2282 2283 2379 2378 +f 2283 2284 2380 2379 +f 2284 2285 2381 2380 +f 2285 2286 2382 2381 +f 2286 2287 2383 2382 +f 2287 2288 2384 2383 +f 2288 2289 2385 2384 +f 2289 2290 2386 2385 +f 2290 2291 2387 2386 +f 2291 2292 2388 2387 +f 2292 2293 2389 2388 +f 2293 2294 2390 2389 +f 2294 2295 2391 2390 +f 2295 2296 2392 2391 +f 2296 2297 2393 2392 +f 2297 2298 2394 2393 +f 2298 2299 2395 2394 +f 2299 2300 2396 2395 +f 2300 2301 2397 2396 +f 2301 2302 2398 2397 +f 2302 2303 2399 2398 +f 2303 2304 2400 2399 +f 2304 2305 2401 2400 +f 2305 2306 2402 2401 +f 2306 2211 2307 2402 +f 2307 2308 2404 2403 +f 2308 2309 2405 2404 +f 2309 2310 2406 2405 +f 2310 2311 2407 2406 +f 2311 2312 2408 2407 +f 2312 2313 2409 2408 +f 2313 2314 2410 2409 +f 2314 2315 2411 2410 +f 2315 2316 2412 2411 +f 2316 2317 2413 2412 +f 2317 2318 2414 2413 +f 2318 2319 2415 2414 +f 2319 2320 2416 2415 +f 2320 2321 2417 2416 +f 2321 2322 2418 2417 +f 2322 2323 2419 2418 +f 2323 2324 2420 2419 +f 2324 2325 2421 2420 +f 2325 2326 2422 2421 +f 2326 2327 2423 2422 +f 2327 2328 2424 2423 +f 2328 2329 2425 2424 +f 2329 2330 2426 2425 +f 2330 2331 2427 2426 +f 2331 2332 2428 2427 +f 2332 2333 2429 2428 +f 2333 2334 2430 2429 +f 2334 2335 2431 2430 +f 2335 2336 2432 2431 +f 2336 2337 2433 2432 +f 2337 2338 2434 2433 +f 2338 2339 2435 2434 +f 2339 2340 2436 2435 +f 2340 2341 2437 2436 +f 2341 2342 2438 2437 +f 2342 2343 2439 2438 +f 2343 2344 2440 2439 +f 2344 2345 2441 2440 +f 2345 2346 2442 2441 +f 2346 2347 2443 2442 +f 2347 2348 2444 2443 +f 2348 2349 2445 2444 +f 2349 2350 2446 2445 +f 2350 2351 2447 2446 +f 2351 2352 2448 2447 +f 2352 2353 2449 2448 +f 2353 2354 2450 2449 +f 2354 2355 2451 2450 +f 2355 2356 2452 2451 +f 2356 2357 2453 2452 +f 2357 2358 2454 2453 +f 2358 2359 2455 2454 +f 2359 2360 2456 2455 +f 2360 2361 2457 2456 +f 2361 2362 2458 2457 +f 2362 2363 2459 2458 +f 2363 2364 2460 2459 +f 2364 2365 2461 2460 +f 2365 2366 2462 2461 +f 2366 2367 2463 2462 +f 2367 2368 2464 2463 +f 2368 2369 2465 2464 +f 2369 2370 2466 2465 +f 2370 2371 2467 2466 +f 2371 2372 2468 2467 +f 2372 2373 2469 2468 +f 2373 2374 2470 2469 +f 2374 2375 2471 2470 +f 2375 2376 2472 2471 +f 2376 2377 2473 2472 +f 2377 2378 2474 2473 +f 2378 2379 2475 2474 +f 2379 2380 2476 2475 +f 2380 2381 2477 2476 +f 2381 2382 2478 2477 +f 2382 2383 2479 2478 +f 2383 2384 2480 2479 +f 2384 2385 2481 2480 +f 2385 2386 2482 2481 +f 2386 2387 2483 2482 +f 2387 2388 2484 2483 +f 2388 2389 2485 2484 +f 2389 2390 2486 2485 +f 2390 2391 2487 2486 +f 2391 2392 2488 2487 +f 2392 2393 2489 2488 +f 2393 2394 2490 2489 +f 2394 2395 2491 2490 +f 2395 2396 2492 2491 +f 2396 2397 2493 2492 +f 2397 2398 2494 2493 +f 2398 2399 2495 2494 +f 2399 2400 2496 2495 +f 2400 2401 2497 2496 +f 2401 2402 2498 2497 +f 2402 2307 2403 2498 +f 2403 2404 2500 2499 +f 2404 2405 2501 2500 +f 2405 2406 2502 2501 +f 2406 2407 2503 2502 +f 2407 2408 2504 2503 +f 2408 2409 2505 2504 +f 2409 2410 2506 2505 +f 2410 2411 2507 2506 +f 2411 2412 2508 2507 +f 2412 2413 2509 2508 +f 2413 2414 2510 2509 +f 2414 2415 2511 2510 +f 2415 2416 2512 2511 +f 2416 2417 2513 2512 +f 2417 2418 2514 2513 +f 2418 2419 2515 2514 +f 2419 2420 2516 2515 +f 2420 2421 2517 2516 +f 2421 2422 2518 2517 +f 2422 2423 2519 2518 +f 2423 2424 2520 2519 +f 2424 2425 2521 2520 +f 2425 2426 2522 2521 +f 2426 2427 2523 2522 +f 2427 2428 2524 2523 +f 2428 2429 2525 2524 +f 2429 2430 2526 2525 +f 2430 2431 2527 2526 +f 2431 2432 2528 2527 +f 2432 2433 2529 2528 +f 2433 2434 2530 2529 +f 2434 2435 2531 2530 +f 2435 2436 2532 2531 +f 2436 2437 2533 2532 +f 2437 2438 2534 2533 +f 2438 2439 2535 2534 +f 2439 2440 2536 2535 +f 2440 2441 2537 2536 +f 2441 2442 2538 2537 +f 2442 2443 2539 2538 +f 2443 2444 2540 2539 +f 2444 2445 2541 2540 +f 2445 2446 2542 2541 +f 2446 2447 2543 2542 +f 2447 2448 2544 2543 +f 2448 2449 2545 2544 +f 2449 2450 2546 2545 +f 2450 2451 2547 2546 +f 2451 2452 2548 2547 +f 2452 2453 2549 2548 +f 2453 2454 2550 2549 +f 2454 2455 2551 2550 +f 2455 2456 2552 2551 +f 2456 2457 2553 2552 +f 2457 2458 2554 2553 +f 2458 2459 2555 2554 +f 2459 2460 2556 2555 +f 2460 2461 2557 2556 +f 2461 2462 2558 2557 +f 2462 2463 2559 2558 +f 2463 2464 2560 2559 +f 2464 2465 2561 2560 +f 2465 2466 2562 2561 +f 2466 2467 2563 2562 +f 2467 2468 2564 2563 +f 2468 2469 2565 2564 +f 2469 2470 2566 2565 +f 2470 2471 2567 2566 +f 2471 2472 2568 2567 +f 2472 2473 2569 2568 +f 2473 2474 2570 2569 +f 2474 2475 2571 2570 +f 2475 2476 2572 2571 +f 2476 2477 2573 2572 +f 2477 2478 2574 2573 +f 2478 2479 2575 2574 +f 2479 2480 2576 2575 +f 2480 2481 2577 2576 +f 2481 2482 2578 2577 +f 2482 2483 2579 2578 +f 2483 2484 2580 2579 +f 2484 2485 2581 2580 +f 2485 2486 2582 2581 +f 2486 2487 2583 2582 +f 2487 2488 2584 2583 +f 2488 2489 2585 2584 +f 2489 2490 2586 2585 +f 2490 2491 2587 2586 +f 2491 2492 2588 2587 +f 2492 2493 2589 2588 +f 2493 2494 2590 2589 +f 2494 2495 2591 2590 +f 2495 2496 2592 2591 +f 2496 2497 2593 2592 +f 2497 2498 2594 2593 +f 2498 2403 2499 2594 +f 2499 2500 2596 2595 +f 2500 2501 2597 2596 +f 2501 2502 2598 2597 +f 2502 2503 2599 2598 +f 2503 2504 2600 2599 +f 2504 2505 2601 2600 +f 2505 2506 2602 2601 +f 2506 2507 2603 2602 +f 2507 2508 2604 2603 +f 2508 2509 2605 2604 +f 2509 2510 2606 2605 +f 2510 2511 2607 2606 +f 2511 2512 2608 2607 +f 2512 2513 2609 2608 +f 2513 2514 2610 2609 +f 2514 2515 2611 2610 +f 2515 2516 2612 2611 +f 2516 2517 2613 2612 +f 2517 2518 2614 2613 +f 2518 2519 2615 2614 +f 2519 2520 2616 2615 +f 2520 2521 2617 2616 +f 2521 2522 2618 2617 +f 2522 2523 2619 2618 +f 2523 2524 2620 2619 +f 2524 2525 2621 2620 +f 2525 2526 2622 2621 +f 2526 2527 2623 2622 +f 2527 2528 2624 2623 +f 2528 2529 2625 2624 +f 2529 2530 2626 2625 +f 2530 2531 2627 2626 +f 2531 2532 2628 2627 +f 2532 2533 2629 2628 +f 2533 2534 2630 2629 +f 2534 2535 2631 2630 +f 2535 2536 2632 2631 +f 2536 2537 2633 2632 +f 2537 2538 2634 2633 +f 2538 2539 2635 2634 +f 2539 2540 2636 2635 +f 2540 2541 2637 2636 +f 2541 2542 2638 2637 +f 2542 2543 2639 2638 +f 2543 2544 2640 2639 +f 2544 2545 2641 2640 +f 2545 2546 2642 2641 +f 2546 2547 2643 2642 +f 2547 2548 2644 2643 +f 2548 2549 2645 2644 +f 2549 2550 2646 2645 +f 2550 2551 2647 2646 +f 2551 2552 2648 2647 +f 2552 2553 2649 2648 +f 2553 2554 2650 2649 +f 2554 2555 2651 2650 +f 2555 2556 2652 2651 +f 2556 2557 2653 2652 +f 2557 2558 2654 2653 +f 2558 2559 2655 2654 +f 2559 2560 2656 2655 +f 2560 2561 2657 2656 +f 2561 2562 2658 2657 +f 2562 2563 2659 2658 +f 2563 2564 2660 2659 +f 2564 2565 2661 2660 +f 2565 2566 2662 2661 +f 2566 2567 2663 2662 +f 2567 2568 2664 2663 +f 2568 2569 2665 2664 +f 2569 2570 2666 2665 +f 2570 2571 2667 2666 +f 2571 2572 2668 2667 +f 2572 2573 2669 2668 +f 2573 2574 2670 2669 +f 2574 2575 2671 2670 +f 2575 2576 2672 2671 +f 2576 2577 2673 2672 +f 2577 2578 2674 2673 +f 2578 2579 2675 2674 +f 2579 2580 2676 2675 +f 2580 2581 2677 2676 +f 2581 2582 2678 2677 +f 2582 2583 2679 2678 +f 2583 2584 2680 2679 +f 2584 2585 2681 2680 +f 2585 2586 2682 2681 +f 2586 2587 2683 2682 +f 2587 2588 2684 2683 +f 2588 2589 2685 2684 +f 2589 2590 2686 2685 +f 2590 2591 2687 2686 +f 2591 2592 2688 2687 +f 2592 2593 2689 2688 +f 2593 2594 2690 2689 +f 2594 2499 2595 2690 +f 2595 2596 2692 2691 +f 2596 2597 2693 2692 +f 2597 2598 2694 2693 +f 2598 2599 2695 2694 +f 2599 2600 2696 2695 +f 2600 2601 2697 2696 +f 2601 2602 2698 2697 +f 2602 2603 2699 2698 +f 2603 2604 2700 2699 +f 2604 2605 2701 2700 +f 2605 2606 2702 2701 +f 2606 2607 2703 2702 +f 2607 2608 2704 2703 +f 2608 2609 2705 2704 +f 2609 2610 2706 2705 +f 2610 2611 2707 2706 +f 2611 2612 2708 2707 +f 2612 2613 2709 2708 +f 2613 2614 2710 2709 +f 2614 2615 2711 2710 +f 2615 2616 2712 2711 +f 2616 2617 2713 2712 +f 2617 2618 2714 2713 +f 2618 2619 2715 2714 +f 2619 2620 2716 2715 +f 2620 2621 2717 2716 +f 2621 2622 2718 2717 +f 2622 2623 2719 2718 +f 2623 2624 2720 2719 +f 2624 2625 2721 2720 +f 2625 2626 2722 2721 +f 2626 2627 2723 2722 +f 2627 2628 2724 2723 +f 2628 2629 2725 2724 +f 2629 2630 2726 2725 +f 2630 2631 2727 2726 +f 2631 2632 2728 2727 +f 2632 2633 2729 2728 +f 2633 2634 2730 2729 +f 2634 2635 2731 2730 +f 2635 2636 2732 2731 +f 2636 2637 2733 2732 +f 2637 2638 2734 2733 +f 2638 2639 2735 2734 +f 2639 2640 2736 2735 +f 2640 2641 2737 2736 +f 2641 2642 2738 2737 +f 2642 2643 2739 2738 +f 2643 2644 2740 2739 +f 2644 2645 2741 2740 +f 2645 2646 2742 2741 +f 2646 2647 2743 2742 +f 2647 2648 2744 2743 +f 2648 2649 2745 2744 +f 2649 2650 2746 2745 +f 2650 2651 2747 2746 +f 2651 2652 2748 2747 +f 2652 2653 2749 2748 +f 2653 2654 2750 2749 +f 2654 2655 2751 2750 +f 2655 2656 2752 2751 +f 2656 2657 2753 2752 +f 2657 2658 2754 2753 +f 2658 2659 2755 2754 +f 2659 2660 2756 2755 +f 2660 2661 2757 2756 +f 2661 2662 2758 2757 +f 2662 2663 2759 2758 +f 2663 2664 2760 2759 +f 2664 2665 2761 2760 +f 2665 2666 2762 2761 +f 2666 2667 2763 2762 +f 2667 2668 2764 2763 +f 2668 2669 2765 2764 +f 2669 2670 2766 2765 +f 2670 2671 2767 2766 +f 2671 2672 2768 2767 +f 2672 2673 2769 2768 +f 2673 2674 2770 2769 +f 2674 2675 2771 2770 +f 2675 2676 2772 2771 +f 2676 2677 2773 2772 +f 2677 2678 2774 2773 +f 2678 2679 2775 2774 +f 2679 2680 2776 2775 +f 2680 2681 2777 2776 +f 2681 2682 2778 2777 +f 2682 2683 2779 2778 +f 2683 2684 2780 2779 +f 2684 2685 2781 2780 +f 2685 2686 2782 2781 +f 2686 2687 2783 2782 +f 2687 2688 2784 2783 +f 2688 2689 2785 2784 +f 2689 2690 2786 2785 +f 2690 2595 2691 2786 +f 2691 2692 2788 2787 +f 2692 2693 2789 2788 +f 2693 2694 2790 2789 +f 2694 2695 2791 2790 +f 2695 2696 2792 2791 +f 2696 2697 2793 2792 +f 2697 2698 2794 2793 +f 2698 2699 2795 2794 +f 2699 2700 2796 2795 +f 2700 2701 2797 2796 +f 2701 2702 2798 2797 +f 2702 2703 2799 2798 +f 2703 2704 2800 2799 +f 2704 2705 2801 2800 +f 2705 2706 2802 2801 +f 2706 2707 2803 2802 +f 2707 2708 2804 2803 +f 2708 2709 2805 2804 +f 2709 2710 2806 2805 +f 2710 2711 2807 2806 +f 2711 2712 2808 2807 +f 2712 2713 2809 2808 +f 2713 2714 2810 2809 +f 2714 2715 2811 2810 +f 2715 2716 2812 2811 +f 2716 2717 2813 2812 +f 2717 2718 2814 2813 +f 2718 2719 2815 2814 +f 2719 2720 2816 2815 +f 2720 2721 2817 2816 +f 2721 2722 2818 2817 +f 2722 2723 2819 2818 +f 2723 2724 2820 2819 +f 2724 2725 2821 2820 +f 2725 2726 2822 2821 +f 2726 2727 2823 2822 +f 2727 2728 2824 2823 +f 2728 2729 2825 2824 +f 2729 2730 2826 2825 +f 2730 2731 2827 2826 +f 2731 2732 2828 2827 +f 2732 2733 2829 2828 +f 2733 2734 2830 2829 +f 2734 2735 2831 2830 +f 2735 2736 2832 2831 +f 2736 2737 2833 2832 +f 2737 2738 2834 2833 +f 2738 2739 2835 2834 +f 2739 2740 2836 2835 +f 2740 2741 2837 2836 +f 2741 2742 2838 2837 +f 2742 2743 2839 2838 +f 2743 2744 2840 2839 +f 2744 2745 2841 2840 +f 2745 2746 2842 2841 +f 2746 2747 2843 2842 +f 2747 2748 2844 2843 +f 2748 2749 2845 2844 +f 2749 2750 2846 2845 +f 2750 2751 2847 2846 +f 2751 2752 2848 2847 +f 2752 2753 2849 2848 +f 2753 2754 2850 2849 +f 2754 2755 2851 2850 +f 2755 2756 2852 2851 +f 2756 2757 2853 2852 +f 2757 2758 2854 2853 +f 2758 2759 2855 2854 +f 2759 2760 2856 2855 +f 2760 2761 2857 2856 +f 2761 2762 2858 2857 +f 2762 2763 2859 2858 +f 2763 2764 2860 2859 +f 2764 2765 2861 2860 +f 2765 2766 2862 2861 +f 2766 2767 2863 2862 +f 2767 2768 2864 2863 +f 2768 2769 2865 2864 +f 2769 2770 2866 2865 +f 2770 2771 2867 2866 +f 2771 2772 2868 2867 +f 2772 2773 2869 2868 +f 2773 2774 2870 2869 +f 2774 2775 2871 2870 +f 2775 2776 2872 2871 +f 2776 2777 2873 2872 +f 2777 2778 2874 2873 +f 2778 2779 2875 2874 +f 2779 2780 2876 2875 +f 2780 2781 2877 2876 +f 2781 2782 2878 2877 +f 2782 2783 2879 2878 +f 2783 2784 2880 2879 +f 2784 2785 2881 2880 +f 2785 2786 2882 2881 +f 2786 2691 2787 2882 +f 2787 2788 2884 2883 +f 2788 2789 2885 2884 +f 2789 2790 2886 2885 +f 2790 2791 2887 2886 +f 2791 2792 2888 2887 +f 2792 2793 2889 2888 +f 2793 2794 2890 2889 +f 2794 2795 2891 2890 +f 2795 2796 2892 2891 +f 2796 2797 2893 2892 +f 2797 2798 2894 2893 +f 2798 2799 2895 2894 +f 2799 2800 2896 2895 +f 2800 2801 2897 2896 +f 2801 2802 2898 2897 +f 2802 2803 2899 2898 +f 2803 2804 2900 2899 +f 2804 2805 2901 2900 +f 2805 2806 2902 2901 +f 2806 2807 2903 2902 +f 2807 2808 2904 2903 +f 2808 2809 2905 2904 +f 2809 2810 2906 2905 +f 2810 2811 2907 2906 +f 2811 2812 2908 2907 +f 2812 2813 2909 2908 +f 2813 2814 2910 2909 +f 2814 2815 2911 2910 +f 2815 2816 2912 2911 +f 2816 2817 2913 2912 +f 2817 2818 2914 2913 +f 2818 2819 2915 2914 +f 2819 2820 2916 2915 +f 2820 2821 2917 2916 +f 2821 2822 2918 2917 +f 2822 2823 2919 2918 +f 2823 2824 2920 2919 +f 2824 2825 2921 2920 +f 2825 2826 2922 2921 +f 2826 2827 2923 2922 +f 2827 2828 2924 2923 +f 2828 2829 2925 2924 +f 2829 2830 2926 2925 +f 2830 2831 2927 2926 +f 2831 2832 2928 2927 +f 2832 2833 2929 2928 +f 2833 2834 2930 2929 +f 2834 2835 2931 2930 +f 2835 2836 2932 2931 +f 2836 2837 2933 2932 +f 2837 2838 2934 2933 +f 2838 2839 2935 2934 +f 2839 2840 2936 2935 +f 2840 2841 2937 2936 +f 2841 2842 2938 2937 +f 2842 2843 2939 2938 +f 2843 2844 2940 2939 +f 2844 2845 2941 2940 +f 2845 2846 2942 2941 +f 2846 2847 2943 2942 +f 2847 2848 2944 2943 +f 2848 2849 2945 2944 +f 2849 2850 2946 2945 +f 2850 2851 2947 2946 +f 2851 2852 2948 2947 +f 2852 2853 2949 2948 +f 2853 2854 2950 2949 +f 2854 2855 2951 2950 +f 2855 2856 2952 2951 +f 2856 2857 2953 2952 +f 2857 2858 2954 2953 +f 2858 2859 2955 2954 +f 2859 2860 2956 2955 +f 2860 2861 2957 2956 +f 2861 2862 2958 2957 +f 2862 2863 2959 2958 +f 2863 2864 2960 2959 +f 2864 2865 2961 2960 +f 2865 2866 2962 2961 +f 2866 2867 2963 2962 +f 2867 2868 2964 2963 +f 2868 2869 2965 2964 +f 2869 2870 2966 2965 +f 2870 2871 2967 2966 +f 2871 2872 2968 2967 +f 2872 2873 2969 2968 +f 2873 2874 2970 2969 +f 2874 2875 2971 2970 +f 2875 2876 2972 2971 +f 2876 2877 2973 2972 +f 2877 2878 2974 2973 +f 2878 2879 2975 2974 +f 2879 2880 2976 2975 +f 2880 2881 2977 2976 +f 2881 2882 2978 2977 +f 2882 2787 2883 2978 +f 2883 2884 2980 2979 +f 2884 2885 2981 2980 +f 2885 2886 2982 2981 +f 2886 2887 2983 2982 +f 2887 2888 2984 2983 +f 2888 2889 2985 2984 +f 2889 2890 2986 2985 +f 2890 2891 2987 2986 +f 2891 2892 2988 2987 +f 2892 2893 2989 2988 +f 2893 2894 2990 2989 +f 2894 2895 2991 2990 +f 2895 2896 2992 2991 +f 2896 2897 2993 2992 +f 2897 2898 2994 2993 +f 2898 2899 2995 2994 +f 2899 2900 2996 2995 +f 2900 2901 2997 2996 +f 2901 2902 2998 2997 +f 2902 2903 2999 2998 +f 2903 2904 3000 2999 +f 2904 2905 3001 3000 +f 2905 2906 3002 3001 +f 2906 2907 3003 3002 +f 2907 2908 3004 3003 +f 2908 2909 3005 3004 +f 2909 2910 3006 3005 +f 2910 2911 3007 3006 +f 2911 2912 3008 3007 +f 2912 2913 3009 3008 +f 2913 2914 3010 3009 +f 2914 2915 3011 3010 +f 2915 2916 3012 3011 +f 2916 2917 3013 3012 +f 2917 2918 3014 3013 +f 2918 2919 3015 3014 +f 2919 2920 3016 3015 +f 2920 2921 3017 3016 +f 2921 2922 3018 3017 +f 2922 2923 3019 3018 +f 2923 2924 3020 3019 +f 2924 2925 3021 3020 +f 2925 2926 3022 3021 +f 2926 2927 3023 3022 +f 2927 2928 3024 3023 +f 2928 2929 3025 3024 +f 2929 2930 3026 3025 +f 2930 2931 3027 3026 +f 2931 2932 3028 3027 +f 2932 2933 3029 3028 +f 2933 2934 3030 3029 +f 2934 2935 3031 3030 +f 2935 2936 3032 3031 +f 2936 2937 3033 3032 +f 2937 2938 3034 3033 +f 2938 2939 3035 3034 +f 2939 2940 3036 3035 +f 2940 2941 3037 3036 +f 2941 2942 3038 3037 +f 2942 2943 3039 3038 +f 2943 2944 3040 3039 +f 2944 2945 3041 3040 +f 2945 2946 3042 3041 +f 2946 2947 3043 3042 +f 2947 2948 3044 3043 +f 2948 2949 3045 3044 +f 2949 2950 3046 3045 +f 2950 2951 3047 3046 +f 2951 2952 3048 3047 +f 2952 2953 3049 3048 +f 2953 2954 3050 3049 +f 2954 2955 3051 3050 +f 2955 2956 3052 3051 +f 2956 2957 3053 3052 +f 2957 2958 3054 3053 +f 2958 2959 3055 3054 +f 2959 2960 3056 3055 +f 2960 2961 3057 3056 +f 2961 2962 3058 3057 +f 2962 2963 3059 3058 +f 2963 2964 3060 3059 +f 2964 2965 3061 3060 +f 2965 2966 3062 3061 +f 2966 2967 3063 3062 +f 2967 2968 3064 3063 +f 2968 2969 3065 3064 +f 2969 2970 3066 3065 +f 2970 2971 3067 3066 +f 2971 2972 3068 3067 +f 2972 2973 3069 3068 +f 2973 2974 3070 3069 +f 2974 2975 3071 3070 +f 2975 2976 3072 3071 +f 2976 2977 3073 3072 +f 2977 2978 3074 3073 +f 2978 2883 2979 3074 +f 2979 2980 3076 3075 +f 2980 2981 3077 3076 +f 2981 2982 3078 3077 +f 2982 2983 3079 3078 +f 2983 2984 3080 3079 +f 2984 2985 3081 3080 +f 2985 2986 3082 3081 +f 2986 2987 3083 3082 +f 2987 2988 3084 3083 +f 2988 2989 3085 3084 +f 2989 2990 3086 3085 +f 2990 2991 3087 3086 +f 2991 2992 3088 3087 +f 2992 2993 3089 3088 +f 2993 2994 3090 3089 +f 2994 2995 3091 3090 +f 2995 2996 3092 3091 +f 2996 2997 3093 3092 +f 2997 2998 3094 3093 +f 2998 2999 3095 3094 +f 2999 3000 3096 3095 +f 3000 3001 3097 3096 +f 3001 3002 3098 3097 +f 3002 3003 3099 3098 +f 3003 3004 3100 3099 +f 3004 3005 3101 3100 +f 3005 3006 3102 3101 +f 3006 3007 3103 3102 +f 3007 3008 3104 3103 +f 3008 3009 3105 3104 +f 3009 3010 3106 3105 +f 3010 3011 3107 3106 +f 3011 3012 3108 3107 +f 3012 3013 3109 3108 +f 3013 3014 3110 3109 +f 3014 3015 3111 3110 +f 3015 3016 3112 3111 +f 3016 3017 3113 3112 +f 3017 3018 3114 3113 +f 3018 3019 3115 3114 +f 3019 3020 3116 3115 +f 3020 3021 3117 3116 +f 3021 3022 3118 3117 +f 3022 3023 3119 3118 +f 3023 3024 3120 3119 +f 3024 3025 3121 3120 +f 3025 3026 3122 3121 +f 3026 3027 3123 3122 +f 3027 3028 3124 3123 +f 3028 3029 3125 3124 +f 3029 3030 3126 3125 +f 3030 3031 3127 3126 +f 3031 3032 3128 3127 +f 3032 3033 3129 3128 +f 3033 3034 3130 3129 +f 3034 3035 3131 3130 +f 3035 3036 3132 3131 +f 3036 3037 3133 3132 +f 3037 3038 3134 3133 +f 3038 3039 3135 3134 +f 3039 3040 3136 3135 +f 3040 3041 3137 3136 +f 3041 3042 3138 3137 +f 3042 3043 3139 3138 +f 3043 3044 3140 3139 +f 3044 3045 3141 3140 +f 3045 3046 3142 3141 +f 3046 3047 3143 3142 +f 3047 3048 3144 3143 +f 3048 3049 3145 3144 +f 3049 3050 3146 3145 +f 3050 3051 3147 3146 +f 3051 3052 3148 3147 +f 3052 3053 3149 3148 +f 3053 3054 3150 3149 +f 3054 3055 3151 3150 +f 3055 3056 3152 3151 +f 3056 3057 3153 3152 +f 3057 3058 3154 3153 +f 3058 3059 3155 3154 +f 3059 3060 3156 3155 +f 3060 3061 3157 3156 +f 3061 3062 3158 3157 +f 3062 3063 3159 3158 +f 3063 3064 3160 3159 +f 3064 3065 3161 3160 +f 3065 3066 3162 3161 +f 3066 3067 3163 3162 +f 3067 3068 3164 3163 +f 3068 3069 3165 3164 +f 3069 3070 3166 3165 +f 3070 3071 3167 3166 +f 3071 3072 3168 3167 +f 3072 3073 3169 3168 +f 3073 3074 3170 3169 +f 3074 2979 3075 3170 +f 3075 3076 3172 3171 +f 3076 3077 3173 3172 +f 3077 3078 3174 3173 +f 3078 3079 3175 3174 +f 3079 3080 3176 3175 +f 3080 3081 3177 3176 +f 3081 3082 3178 3177 +f 3082 3083 3179 3178 +f 3083 3084 3180 3179 +f 3084 3085 3181 3180 +f 3085 3086 3182 3181 +f 3086 3087 3183 3182 +f 3087 3088 3184 3183 +f 3088 3089 3185 3184 +f 3089 3090 3186 3185 +f 3090 3091 3187 3186 +f 3091 3092 3188 3187 +f 3092 3093 3189 3188 +f 3093 3094 3190 3189 +f 3094 3095 3191 3190 +f 3095 3096 3192 3191 +f 3096 3097 3193 3192 +f 3097 3098 3194 3193 +f 3098 3099 3195 3194 +f 3099 3100 3196 3195 +f 3100 3101 3197 3196 +f 3101 3102 3198 3197 +f 3102 3103 3199 3198 +f 3103 3104 3200 3199 +f 3104 3105 3201 3200 +f 3105 3106 3202 3201 +f 3106 3107 3203 3202 +f 3107 3108 3204 3203 +f 3108 3109 3205 3204 +f 3109 3110 3206 3205 +f 3110 3111 3207 3206 +f 3111 3112 3208 3207 +f 3112 3113 3209 3208 +f 3113 3114 3210 3209 +f 3114 3115 3211 3210 +f 3115 3116 3212 3211 +f 3116 3117 3213 3212 +f 3117 3118 3214 3213 +f 3118 3119 3215 3214 +f 3119 3120 3216 3215 +f 3120 3121 3217 3216 +f 3121 3122 3218 3217 +f 3122 3123 3219 3218 +f 3123 3124 3220 3219 +f 3124 3125 3221 3220 +f 3125 3126 3222 3221 +f 3126 3127 3223 3222 +f 3127 3128 3224 3223 +f 3128 3129 3225 3224 +f 3129 3130 3226 3225 +f 3130 3131 3227 3226 +f 3131 3132 3228 3227 +f 3132 3133 3229 3228 +f 3133 3134 3230 3229 +f 3134 3135 3231 3230 +f 3135 3136 3232 3231 +f 3136 3137 3233 3232 +f 3137 3138 3234 3233 +f 3138 3139 3235 3234 +f 3139 3140 3236 3235 +f 3140 3141 3237 3236 +f 3141 3142 3238 3237 +f 3142 3143 3239 3238 +f 3143 3144 3240 3239 +f 3144 3145 3241 3240 +f 3145 3146 3242 3241 +f 3146 3147 3243 3242 +f 3147 3148 3244 3243 +f 3148 3149 3245 3244 +f 3149 3150 3246 3245 +f 3150 3151 3247 3246 +f 3151 3152 3248 3247 +f 3152 3153 3249 3248 +f 3153 3154 3250 3249 +f 3154 3155 3251 3250 +f 3155 3156 3252 3251 +f 3156 3157 3253 3252 +f 3157 3158 3254 3253 +f 3158 3159 3255 3254 +f 3159 3160 3256 3255 +f 3160 3161 3257 3256 +f 3161 3162 3258 3257 +f 3162 3163 3259 3258 +f 3163 3164 3260 3259 +f 3164 3165 3261 3260 +f 3165 3166 3262 3261 +f 3166 3167 3263 3262 +f 3167 3168 3264 3263 +f 3168 3169 3265 3264 +f 3169 3170 3266 3265 +f 3170 3075 3171 3266 +f 3171 3172 3268 3267 +f 3172 3173 3269 3268 +f 3173 3174 3270 3269 +f 3174 3175 3271 3270 +f 3175 3176 3272 3271 +f 3176 3177 3273 3272 +f 3177 3178 3274 3273 +f 3178 3179 3275 3274 +f 3179 3180 3276 3275 +f 3180 3181 3277 3276 +f 3181 3182 3278 3277 +f 3182 3183 3279 3278 +f 3183 3184 3280 3279 +f 3184 3185 3281 3280 +f 3185 3186 3282 3281 +f 3186 3187 3283 3282 +f 3187 3188 3284 3283 +f 3188 3189 3285 3284 +f 3189 3190 3286 3285 +f 3190 3191 3287 3286 +f 3191 3192 3288 3287 +f 3192 3193 3289 3288 +f 3193 3194 3290 3289 +f 3194 3195 3291 3290 +f 3195 3196 3292 3291 +f 3196 3197 3293 3292 +f 3197 3198 3294 3293 +f 3198 3199 3295 3294 +f 3199 3200 3296 3295 +f 3200 3201 3297 3296 +f 3201 3202 3298 3297 +f 3202 3203 3299 3298 +f 3203 3204 3300 3299 +f 3204 3205 3301 3300 +f 3205 3206 3302 3301 +f 3206 3207 3303 3302 +f 3207 3208 3304 3303 +f 3208 3209 3305 3304 +f 3209 3210 3306 3305 +f 3210 3211 3307 3306 +f 3211 3212 3308 3307 +f 3212 3213 3309 3308 +f 3213 3214 3310 3309 +f 3214 3215 3311 3310 +f 3215 3216 3312 3311 +f 3216 3217 3313 3312 +f 3217 3218 3314 3313 +f 3218 3219 3315 3314 +f 3219 3220 3316 3315 +f 3220 3221 3317 3316 +f 3221 3222 3318 3317 +f 3222 3223 3319 3318 +f 3223 3224 3320 3319 +f 3224 3225 3321 3320 +f 3225 3226 3322 3321 +f 3226 3227 3323 3322 +f 3227 3228 3324 3323 +f 3228 3229 3325 3324 +f 3229 3230 3326 3325 +f 3230 3231 3327 3326 +f 3231 3232 3328 3327 +f 3232 3233 3329 3328 +f 3233 3234 3330 3329 +f 3234 3235 3331 3330 +f 3235 3236 3332 3331 +f 3236 3237 3333 3332 +f 3237 3238 3334 3333 +f 3238 3239 3335 3334 +f 3239 3240 3336 3335 +f 3240 3241 3337 3336 +f 3241 3242 3338 3337 +f 3242 3243 3339 3338 +f 3243 3244 3340 3339 +f 3244 3245 3341 3340 +f 3245 3246 3342 3341 +f 3246 3247 3343 3342 +f 3247 3248 3344 3343 +f 3248 3249 3345 3344 +f 3249 3250 3346 3345 +f 3250 3251 3347 3346 +f 3251 3252 3348 3347 +f 3252 3253 3349 3348 +f 3253 3254 3350 3349 +f 3254 3255 3351 3350 +f 3255 3256 3352 3351 +f 3256 3257 3353 3352 +f 3257 3258 3354 3353 +f 3258 3259 3355 3354 +f 3259 3260 3356 3355 +f 3260 3261 3357 3356 +f 3261 3262 3358 3357 +f 3262 3263 3359 3358 +f 3263 3264 3360 3359 +f 3264 3265 3361 3360 +f 3265 3266 3362 3361 +f 3266 3171 3267 3362 +f 3267 3268 3364 3363 +f 3268 3269 3365 3364 +f 3269 3270 3366 3365 +f 3270 3271 3367 3366 +f 3271 3272 3368 3367 +f 3272 3273 3369 3368 +f 3273 3274 3370 3369 +f 3274 3275 3371 3370 +f 3275 3276 3372 3371 +f 3276 3277 3373 3372 +f 3277 3278 3374 3373 +f 3278 3279 3375 3374 +f 3279 3280 3376 3375 +f 3280 3281 3377 3376 +f 3281 3282 3378 3377 +f 3282 3283 3379 3378 +f 3283 3284 3380 3379 +f 3284 3285 3381 3380 +f 3285 3286 3382 3381 +f 3286 3287 3383 3382 +f 3287 3288 3384 3383 +f 3288 3289 3385 3384 +f 3289 3290 3386 3385 +f 3290 3291 3387 3386 +f 3291 3292 3388 3387 +f 3292 3293 3389 3388 +f 3293 3294 3390 3389 +f 3294 3295 3391 3390 +f 3295 3296 3392 3391 +f 3296 3297 3393 3392 +f 3297 3298 3394 3393 +f 3298 3299 3395 3394 +f 3299 3300 3396 3395 +f 3300 3301 3397 3396 +f 3301 3302 3398 3397 +f 3302 3303 3399 3398 +f 3303 3304 3400 3399 +f 3304 3305 3401 3400 +f 3305 3306 3402 3401 +f 3306 3307 3403 3402 +f 3307 3308 3404 3403 +f 3308 3309 3405 3404 +f 3309 3310 3406 3405 +f 3310 3311 3407 3406 +f 3311 3312 3408 3407 +f 3312 3313 3409 3408 +f 3313 3314 3410 3409 +f 3314 3315 3411 3410 +f 3315 3316 3412 3411 +f 3316 3317 3413 3412 +f 3317 3318 3414 3413 +f 3318 3319 3415 3414 +f 3319 3320 3416 3415 +f 3320 3321 3417 3416 +f 3321 3322 3418 3417 +f 3322 3323 3419 3418 +f 3323 3324 3420 3419 +f 3324 3325 3421 3420 +f 3325 3326 3422 3421 +f 3326 3327 3423 3422 +f 3327 3328 3424 3423 +f 3328 3329 3425 3424 +f 3329 3330 3426 3425 +f 3330 3331 3427 3426 +f 3331 3332 3428 3427 +f 3332 3333 3429 3428 +f 3333 3334 3430 3429 +f 3334 3335 3431 3430 +f 3335 3336 3432 3431 +f 3336 3337 3433 3432 +f 3337 3338 3434 3433 +f 3338 3339 3435 3434 +f 3339 3340 3436 3435 +f 3340 3341 3437 3436 +f 3341 3342 3438 3437 +f 3342 3343 3439 3438 +f 3343 3344 3440 3439 +f 3344 3345 3441 3440 +f 3345 3346 3442 3441 +f 3346 3347 3443 3442 +f 3347 3348 3444 3443 +f 3348 3349 3445 3444 +f 3349 3350 3446 3445 +f 3350 3351 3447 3446 +f 3351 3352 3448 3447 +f 3352 3353 3449 3448 +f 3353 3354 3450 3449 +f 3354 3355 3451 3450 +f 3355 3356 3452 3451 +f 3356 3357 3453 3452 +f 3357 3358 3454 3453 +f 3358 3359 3455 3454 +f 3359 3360 3456 3455 +f 3360 3361 3457 3456 +f 3361 3362 3458 3457 +f 3362 3267 3363 3458 +f 3363 3364 3460 3459 +f 3364 3365 3461 3460 +f 3365 3366 3462 3461 +f 3366 3367 3463 3462 +f 3367 3368 3464 3463 +f 3368 3369 3465 3464 +f 3369 3370 3466 3465 +f 3370 3371 3467 3466 +f 3371 3372 3468 3467 +f 3372 3373 3469 3468 +f 3373 3374 3470 3469 +f 3374 3375 3471 3470 +f 3375 3376 3472 3471 +f 3376 3377 3473 3472 +f 3377 3378 3474 3473 +f 3378 3379 3475 3474 +f 3379 3380 3476 3475 +f 3380 3381 3477 3476 +f 3381 3382 3478 3477 +f 3382 3383 3479 3478 +f 3383 3384 3480 3479 +f 3384 3385 3481 3480 +f 3385 3386 3482 3481 +f 3386 3387 3483 3482 +f 3387 3388 3484 3483 +f 3388 3389 3485 3484 +f 3389 3390 3486 3485 +f 3390 3391 3487 3486 +f 3391 3392 3488 3487 +f 3392 3393 3489 3488 +f 3393 3394 3490 3489 +f 3394 3395 3491 3490 +f 3395 3396 3492 3491 +f 3396 3397 3493 3492 +f 3397 3398 3494 3493 +f 3398 3399 3495 3494 +f 3399 3400 3496 3495 +f 3400 3401 3497 3496 +f 3401 3402 3498 3497 +f 3402 3403 3499 3498 +f 3403 3404 3500 3499 +f 3404 3405 3501 3500 +f 3405 3406 3502 3501 +f 3406 3407 3503 3502 +f 3407 3408 3504 3503 +f 3408 3409 3505 3504 +f 3409 3410 3506 3505 +f 3410 3411 3507 3506 +f 3411 3412 3508 3507 +f 3412 3413 3509 3508 +f 3413 3414 3510 3509 +f 3414 3415 3511 3510 +f 3415 3416 3512 3511 +f 3416 3417 3513 3512 +f 3417 3418 3514 3513 +f 3418 3419 3515 3514 +f 3419 3420 3516 3515 +f 3420 3421 3517 3516 +f 3421 3422 3518 3517 +f 3422 3423 3519 3518 +f 3423 3424 3520 3519 +f 3424 3425 3521 3520 +f 3425 3426 3522 3521 +f 3426 3427 3523 3522 +f 3427 3428 3524 3523 +f 3428 3429 3525 3524 +f 3429 3430 3526 3525 +f 3430 3431 3527 3526 +f 3431 3432 3528 3527 +f 3432 3433 3529 3528 +f 3433 3434 3530 3529 +f 3434 3435 3531 3530 +f 3435 3436 3532 3531 +f 3436 3437 3533 3532 +f 3437 3438 3534 3533 +f 3438 3439 3535 3534 +f 3439 3440 3536 3535 +f 3440 3441 3537 3536 +f 3441 3442 3538 3537 +f 3442 3443 3539 3538 +f 3443 3444 3540 3539 +f 3444 3445 3541 3540 +f 3445 3446 3542 3541 +f 3446 3447 3543 3542 +f 3447 3448 3544 3543 +f 3448 3449 3545 3544 +f 3449 3450 3546 3545 +f 3450 3451 3547 3546 +f 3451 3452 3548 3547 +f 3452 3453 3549 3548 +f 3453 3454 3550 3549 +f 3454 3455 3551 3550 +f 3455 3456 3552 3551 +f 3456 3457 3553 3552 +f 3457 3458 3554 3553 +f 3458 3363 3459 3554 +f 3459 3460 3556 3555 +f 3460 3461 3557 3556 +f 3461 3462 3558 3557 +f 3462 3463 3559 3558 +f 3463 3464 3560 3559 +f 3464 3465 3561 3560 +f 3465 3466 3562 3561 +f 3466 3467 3563 3562 +f 3467 3468 3564 3563 +f 3468 3469 3565 3564 +f 3469 3470 3566 3565 +f 3470 3471 3567 3566 +f 3471 3472 3568 3567 +f 3472 3473 3569 3568 +f 3473 3474 3570 3569 +f 3474 3475 3571 3570 +f 3475 3476 3572 3571 +f 3476 3477 3573 3572 +f 3477 3478 3574 3573 +f 3478 3479 3575 3574 +f 3479 3480 3576 3575 +f 3480 3481 3577 3576 +f 3481 3482 3578 3577 +f 3482 3483 3579 3578 +f 3483 3484 3580 3579 +f 3484 3485 3581 3580 +f 3485 3486 3582 3581 +f 3486 3487 3583 3582 +f 3487 3488 3584 3583 +f 3488 3489 3585 3584 +f 3489 3490 3586 3585 +f 3490 3491 3587 3586 +f 3491 3492 3588 3587 +f 3492 3493 3589 3588 +f 3493 3494 3590 3589 +f 3494 3495 3591 3590 +f 3495 3496 3592 3591 +f 3496 3497 3593 3592 +f 3497 3498 3594 3593 +f 3498 3499 3595 3594 +f 3499 3500 3596 3595 +f 3500 3501 3597 3596 +f 3501 3502 3598 3597 +f 3502 3503 3599 3598 +f 3503 3504 3600 3599 +f 3504 3505 3601 3600 +f 3505 3506 3602 3601 +f 3506 3507 3603 3602 +f 3507 3508 3604 3603 +f 3508 3509 3605 3604 +f 3509 3510 3606 3605 +f 3510 3511 3607 3606 +f 3511 3512 3608 3607 +f 3512 3513 3609 3608 +f 3513 3514 3610 3609 +f 3514 3515 3611 3610 +f 3515 3516 3612 3611 +f 3516 3517 3613 3612 +f 3517 3518 3614 3613 +f 3518 3519 3615 3614 +f 3519 3520 3616 3615 +f 3520 3521 3617 3616 +f 3521 3522 3618 3617 +f 3522 3523 3619 3618 +f 3523 3524 3620 3619 +f 3524 3525 3621 3620 +f 3525 3526 3622 3621 +f 3526 3527 3623 3622 +f 3527 3528 3624 3623 +f 3528 3529 3625 3624 +f 3529 3530 3626 3625 +f 3530 3531 3627 3626 +f 3531 3532 3628 3627 +f 3532 3533 3629 3628 +f 3533 3534 3630 3629 +f 3534 3535 3631 3630 +f 3535 3536 3632 3631 +f 3536 3537 3633 3632 +f 3537 3538 3634 3633 +f 3538 3539 3635 3634 +f 3539 3540 3636 3635 +f 3540 3541 3637 3636 +f 3541 3542 3638 3637 +f 3542 3543 3639 3638 +f 3543 3544 3640 3639 +f 3544 3545 3641 3640 +f 3545 3546 3642 3641 +f 3546 3547 3643 3642 +f 3547 3548 3644 3643 +f 3548 3549 3645 3644 +f 3549 3550 3646 3645 +f 3550 3551 3647 3646 +f 3551 3552 3648 3647 +f 3552 3553 3649 3648 +f 3553 3554 3650 3649 +f 3554 3459 3555 3650 +f 3555 3556 3652 3651 +f 3556 3557 3653 3652 +f 3557 3558 3654 3653 +f 3558 3559 3655 3654 +f 3559 3560 3656 3655 +f 3560 3561 3657 3656 +f 3561 3562 3658 3657 +f 3562 3563 3659 3658 +f 3563 3564 3660 3659 +f 3564 3565 3661 3660 +f 3565 3566 3662 3661 +f 3566 3567 3663 3662 +f 3567 3568 3664 3663 +f 3568 3569 3665 3664 +f 3569 3570 3666 3665 +f 3570 3571 3667 3666 +f 3571 3572 3668 3667 +f 3572 3573 3669 3668 +f 3573 3574 3670 3669 +f 3574 3575 3671 3670 +f 3575 3576 3672 3671 +f 3576 3577 3673 3672 +f 3577 3578 3674 3673 +f 3578 3579 3675 3674 +f 3579 3580 3676 3675 +f 3580 3581 3677 3676 +f 3581 3582 3678 3677 +f 3582 3583 3679 3678 +f 3583 3584 3680 3679 +f 3584 3585 3681 3680 +f 3585 3586 3682 3681 +f 3586 3587 3683 3682 +f 3587 3588 3684 3683 +f 3588 3589 3685 3684 +f 3589 3590 3686 3685 +f 3590 3591 3687 3686 +f 3591 3592 3688 3687 +f 3592 3593 3689 3688 +f 3593 3594 3690 3689 +f 3594 3595 3691 3690 +f 3595 3596 3692 3691 +f 3596 3597 3693 3692 +f 3597 3598 3694 3693 +f 3598 3599 3695 3694 +f 3599 3600 3696 3695 +f 3600 3601 3697 3696 +f 3601 3602 3698 3697 +f 3602 3603 3699 3698 +f 3603 3604 3700 3699 +f 3604 3605 3701 3700 +f 3605 3606 3702 3701 +f 3606 3607 3703 3702 +f 3607 3608 3704 3703 +f 3608 3609 3705 3704 +f 3609 3610 3706 3705 +f 3610 3611 3707 3706 +f 3611 3612 3708 3707 +f 3612 3613 3709 3708 +f 3613 3614 3710 3709 +f 3614 3615 3711 3710 +f 3615 3616 3712 3711 +f 3616 3617 3713 3712 +f 3617 3618 3714 3713 +f 3618 3619 3715 3714 +f 3619 3620 3716 3715 +f 3620 3621 3717 3716 +f 3621 3622 3718 3717 +f 3622 3623 3719 3718 +f 3623 3624 3720 3719 +f 3624 3625 3721 3720 +f 3625 3626 3722 3721 +f 3626 3627 3723 3722 +f 3627 3628 3724 3723 +f 3628 3629 3725 3724 +f 3629 3630 3726 3725 +f 3630 3631 3727 3726 +f 3631 3632 3728 3727 +f 3632 3633 3729 3728 +f 3633 3634 3730 3729 +f 3634 3635 3731 3730 +f 3635 3636 3732 3731 +f 3636 3637 3733 3732 +f 3637 3638 3734 3733 +f 3638 3639 3735 3734 +f 3639 3640 3736 3735 +f 3640 3641 3737 3736 +f 3641 3642 3738 3737 +f 3642 3643 3739 3738 +f 3643 3644 3740 3739 +f 3644 3645 3741 3740 +f 3645 3646 3742 3741 +f 3646 3647 3743 3742 +f 3647 3648 3744 3743 +f 3648 3649 3745 3744 +f 3649 3650 3746 3745 +f 3650 3555 3651 3746 +f 3651 3652 3748 3747 +f 3652 3653 3749 3748 +f 3653 3654 3750 3749 +f 3654 3655 3751 3750 +f 3655 3656 3752 3751 +f 3656 3657 3753 3752 +f 3657 3658 3754 3753 +f 3658 3659 3755 3754 +f 3659 3660 3756 3755 +f 3660 3661 3757 3756 +f 3661 3662 3758 3757 +f 3662 3663 3759 3758 +f 3663 3664 3760 3759 +f 3664 3665 3761 3760 +f 3665 3666 3762 3761 +f 3666 3667 3763 3762 +f 3667 3668 3764 3763 +f 3668 3669 3765 3764 +f 3669 3670 3766 3765 +f 3670 3671 3767 3766 +f 3671 3672 3768 3767 +f 3672 3673 3769 3768 +f 3673 3674 3770 3769 +f 3674 3675 3771 3770 +f 3675 3676 3772 3771 +f 3676 3677 3773 3772 +f 3677 3678 3774 3773 +f 3678 3679 3775 3774 +f 3679 3680 3776 3775 +f 3680 3681 3777 3776 +f 3681 3682 3778 3777 +f 3682 3683 3779 3778 +f 3683 3684 3780 3779 +f 3684 3685 3781 3780 +f 3685 3686 3782 3781 +f 3686 3687 3783 3782 +f 3687 3688 3784 3783 +f 3688 3689 3785 3784 +f 3689 3690 3786 3785 +f 3690 3691 3787 3786 +f 3691 3692 3788 3787 +f 3692 3693 3789 3788 +f 3693 3694 3790 3789 +f 3694 3695 3791 3790 +f 3695 3696 3792 3791 +f 3696 3697 3793 3792 +f 3697 3698 3794 3793 +f 3698 3699 3795 3794 +f 3699 3700 3796 3795 +f 3700 3701 3797 3796 +f 3701 3702 3798 3797 +f 3702 3703 3799 3798 +f 3703 3704 3800 3799 +f 3704 3705 3801 3800 +f 3705 3706 3802 3801 +f 3706 3707 3803 3802 +f 3707 3708 3804 3803 +f 3708 3709 3805 3804 +f 3709 3710 3806 3805 +f 3710 3711 3807 3806 +f 3711 3712 3808 3807 +f 3712 3713 3809 3808 +f 3713 3714 3810 3809 +f 3714 3715 3811 3810 +f 3715 3716 3812 3811 +f 3716 3717 3813 3812 +f 3717 3718 3814 3813 +f 3718 3719 3815 3814 +f 3719 3720 3816 3815 +f 3720 3721 3817 3816 +f 3721 3722 3818 3817 +f 3722 3723 3819 3818 +f 3723 3724 3820 3819 +f 3724 3725 3821 3820 +f 3725 3726 3822 3821 +f 3726 3727 3823 3822 +f 3727 3728 3824 3823 +f 3728 3729 3825 3824 +f 3729 3730 3826 3825 +f 3730 3731 3827 3826 +f 3731 3732 3828 3827 +f 3732 3733 3829 3828 +f 3733 3734 3830 3829 +f 3734 3735 3831 3830 +f 3735 3736 3832 3831 +f 3736 3737 3833 3832 +f 3737 3738 3834 3833 +f 3738 3739 3835 3834 +f 3739 3740 3836 3835 +f 3740 3741 3837 3836 +f 3741 3742 3838 3837 +f 3742 3743 3839 3838 +f 3743 3744 3840 3839 +f 3744 3745 3841 3840 +f 3745 3746 3842 3841 +f 3746 3651 3747 3842 +f 3747 3748 3844 3843 +f 3748 3749 3845 3844 +f 3749 3750 3846 3845 +f 3750 3751 3847 3846 +f 3751 3752 3848 3847 +f 3752 3753 3849 3848 +f 3753 3754 3850 3849 +f 3754 3755 3851 3850 +f 3755 3756 3852 3851 +f 3756 3757 3853 3852 +f 3757 3758 3854 3853 +f 3758 3759 3855 3854 +f 3759 3760 3856 3855 +f 3760 3761 3857 3856 +f 3761 3762 3858 3857 +f 3762 3763 3859 3858 +f 3763 3764 3860 3859 +f 3764 3765 3861 3860 +f 3765 3766 3862 3861 +f 3766 3767 3863 3862 +f 3767 3768 3864 3863 +f 3768 3769 3865 3864 +f 3769 3770 3866 3865 +f 3770 3771 3867 3866 +f 3771 3772 3868 3867 +f 3772 3773 3869 3868 +f 3773 3774 3870 3869 +f 3774 3775 3871 3870 +f 3775 3776 3872 3871 +f 3776 3777 3873 3872 +f 3777 3778 3874 3873 +f 3778 3779 3875 3874 +f 3779 3780 3876 3875 +f 3780 3781 3877 3876 +f 3781 3782 3878 3877 +f 3782 3783 3879 3878 +f 3783 3784 3880 3879 +f 3784 3785 3881 3880 +f 3785 3786 3882 3881 +f 3786 3787 3883 3882 +f 3787 3788 3884 3883 +f 3788 3789 3885 3884 +f 3789 3790 3886 3885 +f 3790 3791 3887 3886 +f 3791 3792 3888 3887 +f 3792 3793 3889 3888 +f 3793 3794 3890 3889 +f 3794 3795 3891 3890 +f 3795 3796 3892 3891 +f 3796 3797 3893 3892 +f 3797 3798 3894 3893 +f 3798 3799 3895 3894 +f 3799 3800 3896 3895 +f 3800 3801 3897 3896 +f 3801 3802 3898 3897 +f 3802 3803 3899 3898 +f 3803 3804 3900 3899 +f 3804 3805 3901 3900 +f 3805 3806 3902 3901 +f 3806 3807 3903 3902 +f 3807 3808 3904 3903 +f 3808 3809 3905 3904 +f 3809 3810 3906 3905 +f 3810 3811 3907 3906 +f 3811 3812 3908 3907 +f 3812 3813 3909 3908 +f 3813 3814 3910 3909 +f 3814 3815 3911 3910 +f 3815 3816 3912 3911 +f 3816 3817 3913 3912 +f 3817 3818 3914 3913 +f 3818 3819 3915 3914 +f 3819 3820 3916 3915 +f 3820 3821 3917 3916 +f 3821 3822 3918 3917 +f 3822 3823 3919 3918 +f 3823 3824 3920 3919 +f 3824 3825 3921 3920 +f 3825 3826 3922 3921 +f 3826 3827 3923 3922 +f 3827 3828 3924 3923 +f 3828 3829 3925 3924 +f 3829 3830 3926 3925 +f 3830 3831 3927 3926 +f 3831 3832 3928 3927 +f 3832 3833 3929 3928 +f 3833 3834 3930 3929 +f 3834 3835 3931 3930 +f 3835 3836 3932 3931 +f 3836 3837 3933 3932 +f 3837 3838 3934 3933 +f 3838 3839 3935 3934 +f 3839 3840 3936 3935 +f 3840 3841 3937 3936 +f 3841 3842 3938 3937 +f 3842 3747 3843 3938 +f 3843 3844 3940 3939 +f 3844 3845 3941 3940 +f 3845 3846 3942 3941 +f 3846 3847 3943 3942 +f 3847 3848 3944 3943 +f 3848 3849 3945 3944 +f 3849 3850 3946 3945 +f 3850 3851 3947 3946 +f 3851 3852 3948 3947 +f 3852 3853 3949 3948 +f 3853 3854 3950 3949 +f 3854 3855 3951 3950 +f 3855 3856 3952 3951 +f 3856 3857 3953 3952 +f 3857 3858 3954 3953 +f 3858 3859 3955 3954 +f 3859 3860 3956 3955 +f 3860 3861 3957 3956 +f 3861 3862 3958 3957 +f 3862 3863 3959 3958 +f 3863 3864 3960 3959 +f 3864 3865 3961 3960 +f 3865 3866 3962 3961 +f 3866 3867 3963 3962 +f 3867 3868 3964 3963 +f 3868 3869 3965 3964 +f 3869 3870 3966 3965 +f 3870 3871 3967 3966 +f 3871 3872 3968 3967 +f 3872 3873 3969 3968 +f 3873 3874 3970 3969 +f 3874 3875 3971 3970 +f 3875 3876 3972 3971 +f 3876 3877 3973 3972 +f 3877 3878 3974 3973 +f 3878 3879 3975 3974 +f 3879 3880 3976 3975 +f 3880 3881 3977 3976 +f 3881 3882 3978 3977 +f 3882 3883 3979 3978 +f 3883 3884 3980 3979 +f 3884 3885 3981 3980 +f 3885 3886 3982 3981 +f 3886 3887 3983 3982 +f 3887 3888 3984 3983 +f 3888 3889 3985 3984 +f 3889 3890 3986 3985 +f 3890 3891 3987 3986 +f 3891 3892 3988 3987 +f 3892 3893 3989 3988 +f 3893 3894 3990 3989 +f 3894 3895 3991 3990 +f 3895 3896 3992 3991 +f 3896 3897 3993 3992 +f 3897 3898 3994 3993 +f 3898 3899 3995 3994 +f 3899 3900 3996 3995 +f 3900 3901 3997 3996 +f 3901 3902 3998 3997 +f 3902 3903 3999 3998 +f 3903 3904 4000 3999 +f 3904 3905 4001 4000 +f 3905 3906 4002 4001 +f 3906 3907 4003 4002 +f 3907 3908 4004 4003 +f 3908 3909 4005 4004 +f 3909 3910 4006 4005 +f 3910 3911 4007 4006 +f 3911 3912 4008 4007 +f 3912 3913 4009 4008 +f 3913 3914 4010 4009 +f 3914 3915 4011 4010 +f 3915 3916 4012 4011 +f 3916 3917 4013 4012 +f 3917 3918 4014 4013 +f 3918 3919 4015 4014 +f 3919 3920 4016 4015 +f 3920 3921 4017 4016 +f 3921 3922 4018 4017 +f 3922 3923 4019 4018 +f 3923 3924 4020 4019 +f 3924 3925 4021 4020 +f 3925 3926 4022 4021 +f 3926 3927 4023 4022 +f 3927 3928 4024 4023 +f 3928 3929 4025 4024 +f 3929 3930 4026 4025 +f 3930 3931 4027 4026 +f 3931 3932 4028 4027 +f 3932 3933 4029 4028 +f 3933 3934 4030 4029 +f 3934 3935 4031 4030 +f 3935 3936 4032 4031 +f 3936 3937 4033 4032 +f 3937 3938 4034 4033 +f 3938 3843 3939 4034 +f 3939 3940 4036 4035 +f 3940 3941 4037 4036 +f 3941 3942 4038 4037 +f 3942 3943 4039 4038 +f 3943 3944 4040 4039 +f 3944 3945 4041 4040 +f 3945 3946 4042 4041 +f 3946 3947 4043 4042 +f 3947 3948 4044 4043 +f 3948 3949 4045 4044 +f 3949 3950 4046 4045 +f 3950 3951 4047 4046 +f 3951 3952 4048 4047 +f 3952 3953 4049 4048 +f 3953 3954 4050 4049 +f 3954 3955 4051 4050 +f 3955 3956 4052 4051 +f 3956 3957 4053 4052 +f 3957 3958 4054 4053 +f 3958 3959 4055 4054 +f 3959 3960 4056 4055 +f 3960 3961 4057 4056 +f 3961 3962 4058 4057 +f 3962 3963 4059 4058 +f 3963 3964 4060 4059 +f 3964 3965 4061 4060 +f 3965 3966 4062 4061 +f 3966 3967 4063 4062 +f 3967 3968 4064 4063 +f 3968 3969 4065 4064 +f 3969 3970 4066 4065 +f 3970 3971 4067 4066 +f 3971 3972 4068 4067 +f 3972 3973 4069 4068 +f 3973 3974 4070 4069 +f 3974 3975 4071 4070 +f 3975 3976 4072 4071 +f 3976 3977 4073 4072 +f 3977 3978 4074 4073 +f 3978 3979 4075 4074 +f 3979 3980 4076 4075 +f 3980 3981 4077 4076 +f 3981 3982 4078 4077 +f 3982 3983 4079 4078 +f 3983 3984 4080 4079 +f 3984 3985 4081 4080 +f 3985 3986 4082 4081 +f 3986 3987 4083 4082 +f 3987 3988 4084 4083 +f 3988 3989 4085 4084 +f 3989 3990 4086 4085 +f 3990 3991 4087 4086 +f 3991 3992 4088 4087 +f 3992 3993 4089 4088 +f 3993 3994 4090 4089 +f 3994 3995 4091 4090 +f 3995 3996 4092 4091 +f 3996 3997 4093 4092 +f 3997 3998 4094 4093 +f 3998 3999 4095 4094 +f 3999 4000 4096 4095 +f 4000 4001 4097 4096 +f 4001 4002 4098 4097 +f 4002 4003 4099 4098 +f 4003 4004 4100 4099 +f 4004 4005 4101 4100 +f 4005 4006 4102 4101 +f 4006 4007 4103 4102 +f 4007 4008 4104 4103 +f 4008 4009 4105 4104 +f 4009 4010 4106 4105 +f 4010 4011 4107 4106 +f 4011 4012 4108 4107 +f 4012 4013 4109 4108 +f 4013 4014 4110 4109 +f 4014 4015 4111 4110 +f 4015 4016 4112 4111 +f 4016 4017 4113 4112 +f 4017 4018 4114 4113 +f 4018 4019 4115 4114 +f 4019 4020 4116 4115 +f 4020 4021 4117 4116 +f 4021 4022 4118 4117 +f 4022 4023 4119 4118 +f 4023 4024 4120 4119 +f 4024 4025 4121 4120 +f 4025 4026 4122 4121 +f 4026 4027 4123 4122 +f 4027 4028 4124 4123 +f 4028 4029 4125 4124 +f 4029 4030 4126 4125 +f 4030 4031 4127 4126 +f 4031 4032 4128 4127 +f 4032 4033 4129 4128 +f 4033 4034 4130 4129 +f 4034 3939 4035 4130 +f 4035 4036 4132 4131 +f 4036 4037 4133 4132 +f 4037 4038 4134 4133 +f 4038 4039 4135 4134 +f 4039 4040 4136 4135 +f 4040 4041 4137 4136 +f 4041 4042 4138 4137 +f 4042 4043 4139 4138 +f 4043 4044 4140 4139 +f 4044 4045 4141 4140 +f 4045 4046 4142 4141 +f 4046 4047 4143 4142 +f 4047 4048 4144 4143 +f 4048 4049 4145 4144 +f 4049 4050 4146 4145 +f 4050 4051 4147 4146 +f 4051 4052 4148 4147 +f 4052 4053 4149 4148 +f 4053 4054 4150 4149 +f 4054 4055 4151 4150 +f 4055 4056 4152 4151 +f 4056 4057 4153 4152 +f 4057 4058 4154 4153 +f 4058 4059 4155 4154 +f 4059 4060 4156 4155 +f 4060 4061 4157 4156 +f 4061 4062 4158 4157 +f 4062 4063 4159 4158 +f 4063 4064 4160 4159 +f 4064 4065 4161 4160 +f 4065 4066 4162 4161 +f 4066 4067 4163 4162 +f 4067 4068 4164 4163 +f 4068 4069 4165 4164 +f 4069 4070 4166 4165 +f 4070 4071 4167 4166 +f 4071 4072 4168 4167 +f 4072 4073 4169 4168 +f 4073 4074 4170 4169 +f 4074 4075 4171 4170 +f 4075 4076 4172 4171 +f 4076 4077 4173 4172 +f 4077 4078 4174 4173 +f 4078 4079 4175 4174 +f 4079 4080 4176 4175 +f 4080 4081 4177 4176 +f 4081 4082 4178 4177 +f 4082 4083 4179 4178 +f 4083 4084 4180 4179 +f 4084 4085 4181 4180 +f 4085 4086 4182 4181 +f 4086 4087 4183 4182 +f 4087 4088 4184 4183 +f 4088 4089 4185 4184 +f 4089 4090 4186 4185 +f 4090 4091 4187 4186 +f 4091 4092 4188 4187 +f 4092 4093 4189 4188 +f 4093 4094 4190 4189 +f 4094 4095 4191 4190 +f 4095 4096 4192 4191 +f 4096 4097 4193 4192 +f 4097 4098 4194 4193 +f 4098 4099 4195 4194 +f 4099 4100 4196 4195 +f 4100 4101 4197 4196 +f 4101 4102 4198 4197 +f 4102 4103 4199 4198 +f 4103 4104 4200 4199 +f 4104 4105 4201 4200 +f 4105 4106 4202 4201 +f 4106 4107 4203 4202 +f 4107 4108 4204 4203 +f 4108 4109 4205 4204 +f 4109 4110 4206 4205 +f 4110 4111 4207 4206 +f 4111 4112 4208 4207 +f 4112 4113 4209 4208 +f 4113 4114 4210 4209 +f 4114 4115 4211 4210 +f 4115 4116 4212 4211 +f 4116 4117 4213 4212 +f 4117 4118 4214 4213 +f 4118 4119 4215 4214 +f 4119 4120 4216 4215 +f 4120 4121 4217 4216 +f 4121 4122 4218 4217 +f 4122 4123 4219 4218 +f 4123 4124 4220 4219 +f 4124 4125 4221 4220 +f 4125 4126 4222 4221 +f 4126 4127 4223 4222 +f 4127 4128 4224 4223 +f 4128 4129 4225 4224 +f 4129 4130 4226 4225 +f 4130 4035 4131 4226 +f 4131 4132 4228 4227 +f 4132 4133 4229 4228 +f 4133 4134 4230 4229 +f 4134 4135 4231 4230 +f 4135 4136 4232 4231 +f 4136 4137 4233 4232 +f 4137 4138 4234 4233 +f 4138 4139 4235 4234 +f 4139 4140 4236 4235 +f 4140 4141 4237 4236 +f 4141 4142 4238 4237 +f 4142 4143 4239 4238 +f 4143 4144 4240 4239 +f 4144 4145 4241 4240 +f 4145 4146 4242 4241 +f 4146 4147 4243 4242 +f 4147 4148 4244 4243 +f 4148 4149 4245 4244 +f 4149 4150 4246 4245 +f 4150 4151 4247 4246 +f 4151 4152 4248 4247 +f 4152 4153 4249 4248 +f 4153 4154 4250 4249 +f 4154 4155 4251 4250 +f 4155 4156 4252 4251 +f 4156 4157 4253 4252 +f 4157 4158 4254 4253 +f 4158 4159 4255 4254 +f 4159 4160 4256 4255 +f 4160 4161 4257 4256 +f 4161 4162 4258 4257 +f 4162 4163 4259 4258 +f 4163 4164 4260 4259 +f 4164 4165 4261 4260 +f 4165 4166 4262 4261 +f 4166 4167 4263 4262 +f 4167 4168 4264 4263 +f 4168 4169 4265 4264 +f 4169 4170 4266 4265 +f 4170 4171 4267 4266 +f 4171 4172 4268 4267 +f 4172 4173 4269 4268 +f 4173 4174 4270 4269 +f 4174 4175 4271 4270 +f 4175 4176 4272 4271 +f 4176 4177 4273 4272 +f 4177 4178 4274 4273 +f 4178 4179 4275 4274 +f 4179 4180 4276 4275 +f 4180 4181 4277 4276 +f 4181 4182 4278 4277 +f 4182 4183 4279 4278 +f 4183 4184 4280 4279 +f 4184 4185 4281 4280 +f 4185 4186 4282 4281 +f 4186 4187 4283 4282 +f 4187 4188 4284 4283 +f 4188 4189 4285 4284 +f 4189 4190 4286 4285 +f 4190 4191 4287 4286 +f 4191 4192 4288 4287 +f 4192 4193 4289 4288 +f 4193 4194 4290 4289 +f 4194 4195 4291 4290 +f 4195 4196 4292 4291 +f 4196 4197 4293 4292 +f 4197 4198 4294 4293 +f 4198 4199 4295 4294 +f 4199 4200 4296 4295 +f 4200 4201 4297 4296 +f 4201 4202 4298 4297 +f 4202 4203 4299 4298 +f 4203 4204 4300 4299 +f 4204 4205 4301 4300 +f 4205 4206 4302 4301 +f 4206 4207 4303 4302 +f 4207 4208 4304 4303 +f 4208 4209 4305 4304 +f 4209 4210 4306 4305 +f 4210 4211 4307 4306 +f 4211 4212 4308 4307 +f 4212 4213 4309 4308 +f 4213 4214 4310 4309 +f 4214 4215 4311 4310 +f 4215 4216 4312 4311 +f 4216 4217 4313 4312 +f 4217 4218 4314 4313 +f 4218 4219 4315 4314 +f 4219 4220 4316 4315 +f 4220 4221 4317 4316 +f 4221 4222 4318 4317 +f 4222 4223 4319 4318 +f 4223 4224 4320 4319 +f 4224 4225 4321 4320 +f 4225 4226 4322 4321 +f 4226 4131 4227 4322 +f 4227 4228 4324 4323 +f 4228 4229 4325 4324 +f 4229 4230 4326 4325 +f 4230 4231 4327 4326 +f 4231 4232 4328 4327 +f 4232 4233 4329 4328 +f 4233 4234 4330 4329 +f 4234 4235 4331 4330 +f 4235 4236 4332 4331 +f 4236 4237 4333 4332 +f 4237 4238 4334 4333 +f 4238 4239 4335 4334 +f 4239 4240 4336 4335 +f 4240 4241 4337 4336 +f 4241 4242 4338 4337 +f 4242 4243 4339 4338 +f 4243 4244 4340 4339 +f 4244 4245 4341 4340 +f 4245 4246 4342 4341 +f 4246 4247 4343 4342 +f 4247 4248 4344 4343 +f 4248 4249 4345 4344 +f 4249 4250 4346 4345 +f 4250 4251 4347 4346 +f 4251 4252 4348 4347 +f 4252 4253 4349 4348 +f 4253 4254 4350 4349 +f 4254 4255 4351 4350 +f 4255 4256 4352 4351 +f 4256 4257 4353 4352 +f 4257 4258 4354 4353 +f 4258 4259 4355 4354 +f 4259 4260 4356 4355 +f 4260 4261 4357 4356 +f 4261 4262 4358 4357 +f 4262 4263 4359 4358 +f 4263 4264 4360 4359 +f 4264 4265 4361 4360 +f 4265 4266 4362 4361 +f 4266 4267 4363 4362 +f 4267 4268 4364 4363 +f 4268 4269 4365 4364 +f 4269 4270 4366 4365 +f 4270 4271 4367 4366 +f 4271 4272 4368 4367 +f 4272 4273 4369 4368 +f 4273 4274 4370 4369 +f 4274 4275 4371 4370 +f 4275 4276 4372 4371 +f 4276 4277 4373 4372 +f 4277 4278 4374 4373 +f 4278 4279 4375 4374 +f 4279 4280 4376 4375 +f 4280 4281 4377 4376 +f 4281 4282 4378 4377 +f 4282 4283 4379 4378 +f 4283 4284 4380 4379 +f 4284 4285 4381 4380 +f 4285 4286 4382 4381 +f 4286 4287 4383 4382 +f 4287 4288 4384 4383 +f 4288 4289 4385 4384 +f 4289 4290 4386 4385 +f 4290 4291 4387 4386 +f 4291 4292 4388 4387 +f 4292 4293 4389 4388 +f 4293 4294 4390 4389 +f 4294 4295 4391 4390 +f 4295 4296 4392 4391 +f 4296 4297 4393 4392 +f 4297 4298 4394 4393 +f 4298 4299 4395 4394 +f 4299 4300 4396 4395 +f 4300 4301 4397 4396 +f 4301 4302 4398 4397 +f 4302 4303 4399 4398 +f 4303 4304 4400 4399 +f 4304 4305 4401 4400 +f 4305 4306 4402 4401 +f 4306 4307 4403 4402 +f 4307 4308 4404 4403 +f 4308 4309 4405 4404 +f 4309 4310 4406 4405 +f 4310 4311 4407 4406 +f 4311 4312 4408 4407 +f 4312 4313 4409 4408 +f 4313 4314 4410 4409 +f 4314 4315 4411 4410 +f 4315 4316 4412 4411 +f 4316 4317 4413 4412 +f 4317 4318 4414 4413 +f 4318 4319 4415 4414 +f 4319 4320 4416 4415 +f 4320 4321 4417 4416 +f 4321 4322 4418 4417 +f 4322 4227 4323 4418 +f 4323 4324 4420 4419 +f 4324 4325 4421 4420 +f 4325 4326 4422 4421 +f 4326 4327 4423 4422 +f 4327 4328 4424 4423 +f 4328 4329 4425 4424 +f 4329 4330 4426 4425 +f 4330 4331 4427 4426 +f 4331 4332 4428 4427 +f 4332 4333 4429 4428 +f 4333 4334 4430 4429 +f 4334 4335 4431 4430 +f 4335 4336 4432 4431 +f 4336 4337 4433 4432 +f 4337 4338 4434 4433 +f 4338 4339 4435 4434 +f 4339 4340 4436 4435 +f 4340 4341 4437 4436 +f 4341 4342 4438 4437 +f 4342 4343 4439 4438 +f 4343 4344 4440 4439 +f 4344 4345 4441 4440 +f 4345 4346 4442 4441 +f 4346 4347 4443 4442 +f 4347 4348 4444 4443 +f 4348 4349 4445 4444 +f 4349 4350 4446 4445 +f 4350 4351 4447 4446 +f 4351 4352 4448 4447 +f 4352 4353 4449 4448 +f 4353 4354 4450 4449 +f 4354 4355 4451 4450 +f 4355 4356 4452 4451 +f 4356 4357 4453 4452 +f 4357 4358 4454 4453 +f 4358 4359 4455 4454 +f 4359 4360 4456 4455 +f 4360 4361 4457 4456 +f 4361 4362 4458 4457 +f 4362 4363 4459 4458 +f 4363 4364 4460 4459 +f 4364 4365 4461 4460 +f 4365 4366 4462 4461 +f 4366 4367 4463 4462 +f 4367 4368 4464 4463 +f 4368 4369 4465 4464 +f 4369 4370 4466 4465 +f 4370 4371 4467 4466 +f 4371 4372 4468 4467 +f 4372 4373 4469 4468 +f 4373 4374 4470 4469 +f 4374 4375 4471 4470 +f 4375 4376 4472 4471 +f 4376 4377 4473 4472 +f 4377 4378 4474 4473 +f 4378 4379 4475 4474 +f 4379 4380 4476 4475 +f 4380 4381 4477 4476 +f 4381 4382 4478 4477 +f 4382 4383 4479 4478 +f 4383 4384 4480 4479 +f 4384 4385 4481 4480 +f 4385 4386 4482 4481 +f 4386 4387 4483 4482 +f 4387 4388 4484 4483 +f 4388 4389 4485 4484 +f 4389 4390 4486 4485 +f 4390 4391 4487 4486 +f 4391 4392 4488 4487 +f 4392 4393 4489 4488 +f 4393 4394 4490 4489 +f 4394 4395 4491 4490 +f 4395 4396 4492 4491 +f 4396 4397 4493 4492 +f 4397 4398 4494 4493 +f 4398 4399 4495 4494 +f 4399 4400 4496 4495 +f 4400 4401 4497 4496 +f 4401 4402 4498 4497 +f 4402 4403 4499 4498 +f 4403 4404 4500 4499 +f 4404 4405 4501 4500 +f 4405 4406 4502 4501 +f 4406 4407 4503 4502 +f 4407 4408 4504 4503 +f 4408 4409 4505 4504 +f 4409 4410 4506 4505 +f 4410 4411 4507 4506 +f 4411 4412 4508 4507 +f 4412 4413 4509 4508 +f 4413 4414 4510 4509 +f 4414 4415 4511 4510 +f 4415 4416 4512 4511 +f 4416 4417 4513 4512 +f 4417 4418 4514 4513 +f 4418 4323 4419 4514 +f 4419 4420 4516 4515 +f 4420 4421 4517 4516 +f 4421 4422 4518 4517 +f 4422 4423 4519 4518 +f 4423 4424 4520 4519 +f 4424 4425 4521 4520 +f 4425 4426 4522 4521 +f 4426 4427 4523 4522 +f 4427 4428 4524 4523 +f 4428 4429 4525 4524 +f 4429 4430 4526 4525 +f 4430 4431 4527 4526 +f 4431 4432 4528 4527 +f 4432 4433 4529 4528 +f 4433 4434 4530 4529 +f 4434 4435 4531 4530 +f 4435 4436 4532 4531 +f 4436 4437 4533 4532 +f 4437 4438 4534 4533 +f 4438 4439 4535 4534 +f 4439 4440 4536 4535 +f 4440 4441 4537 4536 +f 4441 4442 4538 4537 +f 4442 4443 4539 4538 +f 4443 4444 4540 4539 +f 4444 4445 4541 4540 +f 4445 4446 4542 4541 +f 4446 4447 4543 4542 +f 4447 4448 4544 4543 +f 4448 4449 4545 4544 +f 4449 4450 4546 4545 +f 4450 4451 4547 4546 +f 4451 4452 4548 4547 +f 4452 4453 4549 4548 +f 4453 4454 4550 4549 +f 4454 4455 4551 4550 +f 4455 4456 4552 4551 +f 4456 4457 4553 4552 +f 4457 4458 4554 4553 +f 4458 4459 4555 4554 +f 4459 4460 4556 4555 +f 4460 4461 4557 4556 +f 4461 4462 4558 4557 +f 4462 4463 4559 4558 +f 4463 4464 4560 4559 +f 4464 4465 4561 4560 +f 4465 4466 4562 4561 +f 4466 4467 4563 4562 +f 4467 4468 4564 4563 +f 4468 4469 4565 4564 +f 4469 4470 4566 4565 +f 4470 4471 4567 4566 +f 4471 4472 4568 4567 +f 4472 4473 4569 4568 +f 4473 4474 4570 4569 +f 4474 4475 4571 4570 +f 4475 4476 4572 4571 +f 4476 4477 4573 4572 +f 4477 4478 4574 4573 +f 4478 4479 4575 4574 +f 4479 4480 4576 4575 +f 4480 4481 4577 4576 +f 4481 4482 4578 4577 +f 4482 4483 4579 4578 +f 4483 4484 4580 4579 +f 4484 4485 4581 4580 +f 4485 4486 4582 4581 +f 4486 4487 4583 4582 +f 4487 4488 4584 4583 +f 4488 4489 4585 4584 +f 4489 4490 4586 4585 +f 4490 4491 4587 4586 +f 4491 4492 4588 4587 +f 4492 4493 4589 4588 +f 4493 4494 4590 4589 +f 4494 4495 4591 4590 +f 4495 4496 4592 4591 +f 4496 4497 4593 4592 +f 4497 4498 4594 4593 +f 4498 4499 4595 4594 +f 4499 4500 4596 4595 +f 4500 4501 4597 4596 +f 4501 4502 4598 4597 +f 4502 4503 4599 4598 +f 4503 4504 4600 4599 +f 4504 4505 4601 4600 +f 4505 4506 4602 4601 +f 4506 4507 4603 4602 +f 4507 4508 4604 4603 +f 4508 4509 4605 4604 +f 4509 4510 4606 4605 +f 4510 4511 4607 4606 +f 4511 4512 4608 4607 +f 4512 4513 4609 4608 +f 4513 4514 4610 4609 +f 4514 4419 4515 4610 +f 1 4 3 +f 2 4515 4516 +f 1 5 4 +f 2 4516 4517 +f 1 6 5 +f 2 4517 4518 +f 1 7 6 +f 2 4518 4519 +f 1 8 7 +f 2 4519 4520 +f 1 9 8 +f 2 4520 4521 +f 1 10 9 +f 2 4521 4522 +f 1 11 10 +f 2 4522 4523 +f 1 12 11 +f 2 4523 4524 +f 1 13 12 +f 2 4524 4525 +f 1 14 13 +f 2 4525 4526 +f 1 15 14 +f 2 4526 4527 +f 1 16 15 +f 2 4527 4528 +f 1 17 16 +f 2 4528 4529 +f 1 18 17 +f 2 4529 4530 +f 1 19 18 +f 2 4530 4531 +f 1 20 19 +f 2 4531 4532 +f 1 21 20 +f 2 4532 4533 +f 1 22 21 +f 2 4533 4534 +f 1 23 22 +f 2 4534 4535 +f 1 24 23 +f 2 4535 4536 +f 1 25 24 +f 2 4536 4537 +f 1 26 25 +f 2 4537 4538 +f 1 27 26 +f 2 4538 4539 +f 1 28 27 +f 2 4539 4540 +f 1 29 28 +f 2 4540 4541 +f 1 30 29 +f 2 4541 4542 +f 1 31 30 +f 2 4542 4543 +f 1 32 31 +f 2 4543 4544 +f 1 33 32 +f 2 4544 4545 +f 1 34 33 +f 2 4545 4546 +f 1 35 34 +f 2 4546 4547 +f 1 36 35 +f 2 4547 4548 +f 1 37 36 +f 2 4548 4549 +f 1 38 37 +f 2 4549 4550 +f 1 39 38 +f 2 4550 4551 +f 1 40 39 +f 2 4551 4552 +f 1 41 40 +f 2 4552 4553 +f 1 42 41 +f 2 4553 4554 +f 1 43 42 +f 2 4554 4555 +f 1 44 43 +f 2 4555 4556 +f 1 45 44 +f 2 4556 4557 +f 1 46 45 +f 2 4557 4558 +f 1 47 46 +f 2 4558 4559 +f 1 48 47 +f 2 4559 4560 +f 1 49 48 +f 2 4560 4561 +f 1 50 49 +f 2 4561 4562 +f 1 51 50 +f 2 4562 4563 +f 1 52 51 +f 2 4563 4564 +f 1 53 52 +f 2 4564 4565 +f 1 54 53 +f 2 4565 4566 +f 1 55 54 +f 2 4566 4567 +f 1 56 55 +f 2 4567 4568 +f 1 57 56 +f 2 4568 4569 +f 1 58 57 +f 2 4569 4570 +f 1 59 58 +f 2 4570 4571 +f 1 60 59 +f 2 4571 4572 +f 1 61 60 +f 2 4572 4573 +f 1 62 61 +f 2 4573 4574 +f 1 63 62 +f 2 4574 4575 +f 1 64 63 +f 2 4575 4576 +f 1 65 64 +f 2 4576 4577 +f 1 66 65 +f 2 4577 4578 +f 1 67 66 +f 2 4578 4579 +f 1 68 67 +f 2 4579 4580 +f 1 69 68 +f 2 4580 4581 +f 1 70 69 +f 2 4581 4582 +f 1 71 70 +f 2 4582 4583 +f 1 72 71 +f 2 4583 4584 +f 1 73 72 +f 2 4584 4585 +f 1 74 73 +f 2 4585 4586 +f 1 75 74 +f 2 4586 4587 +f 1 76 75 +f 2 4587 4588 +f 1 77 76 +f 2 4588 4589 +f 1 78 77 +f 2 4589 4590 +f 1 79 78 +f 2 4590 4591 +f 1 80 79 +f 2 4591 4592 +f 1 81 80 +f 2 4592 4593 +f 1 82 81 +f 2 4593 4594 +f 1 83 82 +f 2 4594 4595 +f 1 84 83 +f 2 4595 4596 +f 1 85 84 +f 2 4596 4597 +f 1 86 85 +f 2 4597 4598 +f 1 87 86 +f 2 4598 4599 +f 1 88 87 +f 2 4599 4600 +f 1 89 88 +f 2 4600 4601 +f 1 90 89 +f 2 4601 4602 +f 1 91 90 +f 2 4602 4603 +f 1 92 91 +f 2 4603 4604 +f 1 93 92 +f 2 4604 4605 +f 1 94 93 +f 2 4605 4606 +f 1 95 94 +f 2 4606 4607 +f 1 96 95 +f 2 4607 4608 +f 1 97 96 +f 2 4608 4609 +f 1 98 97 +f 2 4609 4610 +f 1 3 98 +f 2 4610 4515 diff --git a/data/spheres/25.obj b/data/spheres/25.obj new file mode 100644 index 0000000..8590ef2 --- /dev/null +++ b/data/spheres/25.obj @@ -0,0 +1,10102 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 6.15609 99.8103 5.88009e-39 +v 6.14394 99.8103 0.386544 +v 6.10754 99.8103 0.771562 +v 6.04704 99.8103 1.15353 +v 5.96268 99.8103 1.53096 +v 5.85479 99.8103 1.90233 +v 5.72378 99.8103 2.2662 +v 5.57019 99.8103 2.62113 +v 5.39462 99.8103 2.96571 +v 5.19776 99.8103 3.29859 +v 4.98038 99.8103 3.61845 +v 4.74335 99.8103 3.92403 +v 4.4876 99.8103 4.21413 +v 4.21413 99.8103 4.48759 +v 3.92404 99.8103 4.74334 +v 3.61846 99.8103 4.98038 +v 3.2986 99.8103 5.19775 +v 2.96572 99.8103 5.39462 +v 2.62114 99.8103 5.57019 +v 2.26621 99.8103 5.72378 +v 1.90234 99.8103 5.85478 +v 1.53096 99.8103 5.96268 +v 1.15354 99.8103 6.04704 +v 0.771569 99.8103 6.10754 +v 0.386551 99.8103 6.14394 +v 7.8034e-06 99.8103 6.15609 +v -0.386536 99.8103 6.14394 +v -0.771554 99.8103 6.10754 +v -1.15353 99.8103 6.04705 +v -1.53095 99.8103 5.96268 +v -1.90233 99.8103 5.85479 +v -2.2662 99.8103 5.72379 +v -2.62113 99.8103 5.5702 +v -2.96571 99.8103 5.39462 +v -3.29859 99.8103 5.19776 +v -3.61845 99.8103 4.98038 +v -3.92403 99.8103 4.74335 +v -4.21412 99.8103 4.4876 +v -4.48759 99.8103 4.21414 +v -4.74334 99.8103 3.92405 +v -4.98037 99.8103 3.61847 +v -5.19775 99.8103 3.29861 +v -5.39461 99.8103 2.96573 +v -5.57019 99.8103 2.62115 +v -5.72378 99.8103 2.26622 +v -5.85478 99.8103 1.90235 +v -5.96268 99.8103 1.53097 +v -6.04704 99.8103 1.15355 +v -6.10754 99.8103 0.771577 +v -6.14394 99.8103 0.386558 +v -6.15609 99.8103 1.56068e-05 +v -6.14394 99.8103 -0.386528 +v -6.10755 99.8103 -0.771547 +v -6.04705 99.8103 -1.15352 +v -5.96269 99.8103 -1.53094 +v -5.85479 99.8103 -1.90232 +v -5.72379 99.8103 -2.26619 +v -5.5702 99.8103 -2.62112 +v -5.39463 99.8103 -2.9657 +v -5.19776 99.8103 -3.29858 +v -4.98039 99.8103 -3.61844 +v -4.74336 99.8103 -3.92402 +v -4.48761 99.8103 -4.21412 +v -4.21415 99.8103 -4.48758 +v -3.92405 99.8103 -4.74333 +v -3.61847 99.8103 -4.98037 +v -3.29861 99.8103 -5.19775 +v -2.96573 99.8103 -5.39461 +v -2.62115 99.8103 -5.57018 +v -2.26623 99.8103 -5.72378 +v -1.90236 99.8103 -5.85478 +v -1.53098 99.8103 -5.96268 +v -1.15356 99.8103 -6.04704 +v -0.771583 99.8103 -6.10754 +v -0.386567 99.8103 -6.14394 +v -2.34102e-05 99.8103 -6.15609 +v 0.386521 99.8103 -6.14394 +v 0.771539 99.8103 -6.10755 +v 1.15351 99.8103 -6.04705 +v 1.53093 99.8103 -5.96269 +v 1.90231 99.8103 -5.85479 +v 2.26618 99.8103 -5.72379 +v 2.62111 99.8103 -5.5702 +v 2.9657 99.8103 -5.39463 +v 3.29857 99.8103 -5.19777 +v 3.61844 99.8103 -4.98039 +v 3.92402 99.8103 -4.74336 +v 4.21411 99.8103 -4.48761 +v 4.48758 99.8103 -4.21415 +v 4.74333 99.8103 -3.92406 +v 4.98036 99.8103 -3.61848 +v 5.19774 99.8103 -3.29862 +v 5.39461 99.8103 -2.96574 +v 5.57018 99.8103 -2.62116 +v 5.72377 99.8103 -2.26623 +v 5.85478 99.8103 -1.90236 +v 5.96267 99.8103 -1.53098 +v 6.04704 99.8103 -1.15356 +v 6.10754 99.8103 -0.771591 +v 6.14394 99.8103 -0.386572 +v 12.2888 99.2421 5.88009e-39 +v 12.2646 99.2421 0.771621 +v 12.1919 99.2421 1.5402 +v 12.0712 99.2421 2.30269 +v 11.9027 99.2421 3.0561 +v 11.6874 99.2421 3.79745 +v 11.4259 99.2421 4.52381 +v 11.1193 99.2421 5.23232 +v 10.7688 99.2421 5.92018 +v 10.3758 99.2421 6.58467 +v 9.94187 99.2421 7.22318 +v 9.4687 99.2421 7.83318 +v 8.95817 99.2421 8.41227 +v 8.41228 99.2421 8.95816 +v 7.8332 99.2421 9.46869 +v 7.22319 99.2421 9.94186 +v 6.58469 99.2421 10.3758 +v 5.92019 99.2421 10.7688 +v 5.23233 99.2421 11.1193 +v 4.52383 99.2421 11.4259 +v 3.79747 99.2421 11.6874 +v 3.05612 99.2421 11.9027 +v 2.30271 99.2421 12.0711 +v 1.54021 99.2421 12.1919 +v 0.771636 99.2421 12.2646 +v 1.55772e-05 99.2421 12.2888 +v -0.771606 99.2421 12.2646 +v -1.54018 99.2421 12.1919 +v -2.30268 99.2421 12.0712 +v -3.05609 99.2421 11.9027 +v -3.79744 99.2421 11.6874 +v -4.5238 99.2421 11.4259 +v -5.23231 99.2421 11.1193 +v -5.92017 99.2421 10.7688 +v -6.58466 99.2421 10.3758 +v -7.22317 99.2421 9.94188 +v -7.83317 99.2421 9.46871 +v -8.41226 99.2421 8.95818 +v -8.95815 99.2421 8.41229 +v -9.46868 99.2421 7.83321 +v -9.94185 99.2421 7.22321 +v -10.3758 99.2421 6.5847 +v -10.7688 99.2421 5.92021 +v -11.1192 99.2421 5.23235 +v -11.4258 99.2421 4.52384 +v -11.6874 99.2421 3.79748 +v -11.9027 99.2421 3.05613 +v -12.0711 99.2421 2.30272 +v -12.1919 99.2421 1.54023 +v -12.2646 99.2421 0.77165 +v -12.2888 99.2421 3.11544e-05 +v -12.2646 99.2421 -0.771591 +v -12.1919 99.2421 -1.54017 +v -12.0712 99.2421 -2.30266 +v -11.9028 99.2421 -3.05607 +v -11.6874 99.2421 -3.79742 +v -11.4259 99.2421 -4.52378 +v -11.1193 99.2421 -5.23229 +v -10.7688 99.2421 -5.92015 +v -10.3758 99.2421 -6.58465 +v -9.94189 99.2421 -7.22316 +v -9.46872 99.2421 -7.83316 +v -8.95819 99.2421 -8.41225 +v -8.4123 99.2421 -8.95814 +v -7.83322 99.2421 -9.46867 +v -7.22322 99.2421 -9.94184 +v -6.58471 99.2421 -10.3758 +v -5.92022 99.2421 -10.7688 +v -5.23236 99.2421 -11.1192 +v -4.52386 99.2421 -11.4258 +v -3.79749 99.2421 -11.6873 +v -3.05615 99.2421 -11.9027 +v -2.30274 99.2421 -12.0711 +v -1.54024 99.2421 -12.1919 +v -0.771668 99.2421 -12.2646 +v -4.67316e-05 99.2421 -12.2888 +v 0.771575 99.2421 -12.2646 +v 1.54015 99.2421 -12.1919 +v 2.30265 99.2421 -12.0712 +v 3.05606 99.2421 -11.9028 +v 3.79741 99.2421 -11.6874 +v 4.52377 99.2421 -11.4259 +v 5.23228 99.2421 -11.1193 +v 5.92014 99.2421 -10.7688 +v 6.58464 99.2421 -10.3758 +v 7.22315 99.2421 -9.94189 +v 7.83315 99.2421 -9.46873 +v 8.41224 99.2421 -8.9582 +v 8.95813 99.2421 -8.41232 +v 9.46866 99.2421 -7.83323 +v 9.94183 99.2421 -7.22323 +v 10.3758 99.2421 -6.58472 +v 10.7687 99.2421 -5.92023 +v 11.1192 99.2421 -5.23238 +v 11.4258 99.2421 -4.52387 +v 11.6873 99.2421 -3.79751 +v 11.9027 99.2421 -3.05616 +v 12.0711 99.2421 -2.30275 +v 12.1919 99.2421 -1.54025 +v 12.2646 99.2421 -0.771678 +v 18.3749 98.2973 5.88009e-39 +v 18.3387 98.2973 1.15377 +v 18.23 98.2973 2.30299 +v 18.0495 98.2973 3.44312 +v 17.7977 98.2973 4.56966 +v 17.4756 98.2973 5.67816 +v 17.0846 98.2973 6.76426 +v 16.6261 98.2973 7.82366 +v 16.1021 98.2973 8.85219 +v 15.5145 98.2973 9.84578 +v 14.8656 98.2973 10.8005 +v 14.1581 98.2973 11.7126 +v 13.3948 98.2973 12.5785 +v 12.5785 98.2973 13.3947 +v 11.7126 98.2973 14.1581 +v 10.8005 98.2973 14.8656 +v 9.8458 98.2973 15.5145 +v 8.85221 98.2973 16.1021 +v 7.82368 98.2973 16.6261 +v 6.76428 98.2973 17.0846 +v 5.67818 98.2973 17.4756 +v 4.56968 98.2973 17.7977 +v 3.44314 98.2973 18.0495 +v 2.30301 98.2973 18.23 +v 1.15379 98.2973 18.3387 +v 2.32919e-05 98.2973 18.3749 +v -1.15375 98.2973 18.3387 +v -2.30297 98.2973 18.2301 +v -3.44309 98.2973 18.0495 +v -4.56964 98.2973 17.7977 +v -5.67814 98.2973 17.4756 +v -6.76424 98.2973 17.0846 +v -7.82364 98.2973 16.6262 +v -8.85217 98.2973 16.1021 +v -9.84576 98.2973 15.5145 +v -10.8005 98.2973 14.8657 +v -11.7126 98.2973 14.1582 +v -12.5785 98.2973 13.3948 +v -13.3947 98.2973 12.5785 +v -14.1581 98.2973 11.7127 +v -14.8656 98.2973 10.8005 +v -15.5145 98.2973 9.84582 +v -16.1021 98.2973 8.85223 +v -16.6261 98.2973 7.8237 +v -17.0846 98.2973 6.7643 +v -17.4756 98.2973 5.67821 +v -17.7976 98.2973 4.5697 +v -18.0495 98.2973 3.44316 +v -18.23 98.2973 2.30303 +v -18.3387 98.2973 1.15381 +v -18.3749 98.2973 4.65838e-05 +v -18.3387 98.2973 -1.15373 +v -18.2301 98.2973 -2.30295 +v -18.0495 98.2973 -3.44307 +v -17.7977 98.2973 -4.56961 +v -17.4756 98.2973 -5.67812 +v -17.0846 98.2973 -6.76422 +v -16.6262 98.2973 -7.82362 +v -16.1021 98.2973 -8.85215 +v -15.5145 98.2973 -9.84574 +v -14.8657 98.2973 -10.8005 +v -14.1582 98.2973 -11.7126 +v -13.3948 98.2973 -12.5785 +v -12.5786 98.2973 -13.3947 +v -11.7127 98.2973 -14.1581 +v -10.8006 98.2973 -14.8656 +v -9.84583 98.2973 -15.5144 +v -8.85224 98.2973 -16.1021 +v -7.82373 98.2973 -16.6261 +v -6.76433 98.2973 -17.0846 +v -5.67823 98.2973 -17.4756 +v -4.56972 98.2973 -17.7976 +v -3.44318 98.2973 -18.0495 +v -2.30305 98.2973 -18.23 +v -1.15384 98.2973 -18.3387 +v -6.98757e-05 98.2973 -18.3749 +v 1.1537 98.2973 -18.3387 +v 2.30292 98.2973 -18.2301 +v 3.44305 98.2973 -18.0495 +v 4.5696 98.2973 -17.7977 +v 5.6781 98.2973 -17.4756 +v 6.7642 98.2973 -17.0846 +v 7.8236 98.2973 -16.6262 +v 8.85213 98.2973 -16.1021 +v 9.84572 98.2973 -15.5145 +v 10.8005 98.2973 -14.8657 +v 11.7126 98.2973 -14.1582 +v 12.5785 98.2973 -13.3948 +v 13.3947 98.2973 -12.5786 +v 14.1581 98.2973 -11.7127 +v 14.8656 98.2973 -10.8006 +v 15.5144 98.2973 -9.84585 +v 16.102 98.2973 -8.85226 +v 16.6261 98.2973 -7.82375 +v 17.0846 98.2973 -6.76435 +v 17.4756 98.2973 -5.67825 +v 17.7976 98.2973 -4.56975 +v 18.0495 98.2973 -3.4432 +v 18.23 98.2973 -2.30308 +v 18.3387 98.2973 -1.15386 +v 24.3914 96.9797 5.88009e-39 +v 24.3432 96.9797 1.53154 +v 24.199 96.9797 3.05704 +v 23.9593 96.9797 4.57048 +v 23.6251 96.9797 6.06588 +v 23.1976 96.9797 7.53734 +v 22.6785 96.9797 8.97905 +v 22.07 96.9797 10.3853 +v 21.3743 96.9797 11.7506 +v 20.5943 96.9797 13.0695 +v 19.733 96.9797 14.3369 +v 18.7939 96.9797 15.5476 +v 17.7805 96.9797 16.697 +v 16.697 96.9797 17.7805 +v 15.5476 96.9797 18.7938 +v 14.3369 96.9797 19.733 +v 13.0696 96.9797 20.5943 +v 11.7506 96.9797 21.3743 +v 10.3854 96.9797 22.0699 +v 8.97908 96.9797 22.6785 +v 7.53736 96.9797 23.1975 +v 6.06591 96.9797 23.625 +v 4.57051 96.9797 23.9593 +v 3.05707 96.9797 24.199 +v 1.53157 96.9797 24.3432 +v 3.09183e-05 96.9797 24.3914 +v -1.53152 96.9797 24.3432 +v -3.05701 96.9797 24.199 +v -4.57045 96.9797 23.9593 +v -6.06585 96.9797 23.6251 +v -7.53731 96.9797 23.1976 +v -8.97902 96.9797 22.6785 +v -10.3853 96.9797 22.07 +v -11.7506 96.9797 21.3743 +v -13.0695 96.9797 20.5943 +v -14.3368 96.9797 19.733 +v -15.5476 96.9797 18.7939 +v -16.697 96.9797 17.7806 +v -17.7805 96.9797 16.6971 +v -18.7938 96.9797 15.5477 +v -19.733 96.9797 14.3369 +v -20.5943 96.9797 13.0696 +v -21.3743 96.9797 11.7507 +v -22.0699 96.9797 10.3854 +v -22.6785 96.9797 8.97911 +v -23.1975 96.9797 7.53739 +v -23.625 96.9797 6.06593 +v -23.9593 96.9797 4.57054 +v -24.199 96.9797 3.0571 +v -24.3432 96.9797 1.5316 +v -24.3914 96.9797 6.18365e-05 +v -24.3432 96.9797 -1.53148 +v -24.199 96.9797 -3.05699 +v -23.9593 96.9797 -4.57042 +v -23.6251 96.9797 -6.06582 +v -23.1976 96.9797 -7.53728 +v -22.6785 96.9797 -8.97899 +v -22.07 96.9797 -10.3853 +v -21.3743 96.9797 -11.7506 +v -20.5943 96.9797 -13.0695 +v -19.7331 96.9797 -14.3368 +v -18.7939 96.9797 -15.5476 +v -17.7806 96.9797 -16.697 +v -16.6971 96.9797 -17.7805 +v -15.5477 96.9797 -18.7938 +v -14.3369 96.9797 -19.733 +v -13.0696 96.9797 -20.5943 +v -11.7507 96.9797 -21.3743 +v -10.3854 96.9797 -22.0699 +v -8.97914 96.9797 -22.6785 +v -7.53742 96.9797 -23.1975 +v -6.06596 96.9797 -23.625 +v -4.57057 96.9797 -23.9593 +v -3.05713 96.9797 -24.199 +v -1.53164 96.9797 -24.3432 +v -9.27548e-05 96.9797 -24.3914 +v 1.53145 96.9797 -24.3432 +v 3.05696 96.9797 -24.199 +v 4.57039 96.9797 -23.9593 +v 6.0658 96.9797 -23.6251 +v 7.53726 96.9797 -23.1976 +v 8.97896 96.9797 -22.6785 +v 10.3852 96.9797 -22.07 +v 11.7505 96.9797 -21.3744 +v 13.0695 96.9797 -20.5944 +v 14.3368 96.9797 -19.7331 +v 15.5476 96.9797 -18.7939 +v 16.697 96.9797 -17.7806 +v 17.7805 96.9797 -16.6971 +v 18.7938 96.9797 -15.5477 +v 19.733 96.9797 -14.337 +v 20.5942 96.9797 -13.0696 +v 21.3743 96.9797 -11.7507 +v 22.0699 96.9797 -10.3854 +v 22.6785 96.9797 -8.97916 +v 23.1975 96.9797 -7.53745 +v 23.625 96.9797 -6.06599 +v 23.9593 96.9797 -4.5706 +v 24.199 96.9797 -3.05716 +v 24.3432 96.9797 -1.53166 +v 30.3152 95.2942 5.88009e-39 +v 30.2554 95.2942 1.90351 +v 30.0762 95.2942 3.7995 +v 29.7783 95.2942 5.68051 +v 29.3628 95.2942 7.53909 +v 28.8315 95.2942 9.36792 +v 28.1864 95.2942 11.1598 +v 27.4301 95.2942 12.9076 +v 26.5655 95.2942 14.6045 +v 25.596 95.2942 16.2437 +v 24.5256 95.2942 17.8188 +v 23.3583 95.2942 19.3237 +v 22.0989 95.2942 20.7522 +v 20.7522 95.2942 22.0989 +v 19.3237 95.2942 23.3583 +v 17.8189 95.2942 24.5255 +v 16.2437 95.2942 25.596 +v 14.6045 95.2942 26.5654 +v 12.9076 95.2942 27.43 +v 11.1598 95.2942 28.1864 +v 9.36795 95.2942 28.8315 +v 7.53912 95.2942 29.3628 +v 5.68054 95.2942 29.7783 +v 3.79954 95.2942 30.0762 +v 1.90355 95.2942 30.2554 +v 3.84273e-05 95.2942 30.3152 +v -1.90347 95.2942 30.2554 +v -3.79947 95.2942 30.0762 +v -5.68047 95.2942 29.7783 +v -7.53905 95.2942 29.3628 +v -9.36788 95.2942 28.8315 +v -11.1597 95.2942 28.1864 +v -12.9076 95.2942 27.4301 +v -14.6044 95.2942 26.5655 +v -16.2437 95.2942 25.596 +v -17.8188 95.2942 24.5256 +v -19.3236 95.2942 23.3583 +v -20.7522 95.2942 22.0989 +v -22.0988 95.2942 20.7523 +v -23.3583 95.2942 19.3237 +v -24.5255 95.2942 17.8189 +v -25.596 95.2942 16.2438 +v -26.5654 95.2942 14.6045 +v -27.43 95.2942 12.9077 +v -28.1864 95.2942 11.1598 +v -28.8315 95.2942 9.36799 +v -29.3628 95.2942 7.53916 +v -29.7783 95.2942 5.68058 +v -30.0762 95.2942 3.79958 +v -30.2554 95.2942 1.90358 +v -30.3152 95.2942 7.68547e-05 +v -30.2554 95.2942 -1.90343 +v -30.0762 95.2942 -3.79943 +v -29.7783 95.2942 -5.68043 +v -29.3629 95.2942 -7.53902 +v -28.8315 95.2942 -9.36785 +v -28.1864 95.2942 -11.1597 +v -27.4301 95.2942 -12.9075 +v -26.5655 95.2942 -14.6044 +v -25.5961 95.2942 -16.2436 +v -24.5256 95.2942 -17.8188 +v -23.3584 95.2942 -19.3236 +v -22.0989 95.2942 -20.7521 +v -20.7523 95.2942 -22.0988 +v -19.3237 95.2942 -23.3582 +v -17.8189 95.2942 -24.5255 +v -16.2438 95.2942 -25.596 +v -14.6046 95.2942 -26.5654 +v -12.9077 95.2942 -27.43 +v -11.1599 95.2942 -28.1864 +v -9.36803 95.2942 -28.8315 +v -7.5392 95.2942 -29.3628 +v -5.68061 95.2942 -29.7783 +v -3.79961 95.2942 -30.0762 +v -1.90363 95.2942 -30.2554 +v -0.000115282 95.2942 -30.3152 +v 1.9034 95.2942 -30.2554 +v 3.79939 95.2942 -30.0762 +v 5.6804 95.2942 -29.7783 +v 7.53899 95.2942 -29.3629 +v 9.36782 95.2942 -28.8315 +v 11.1597 95.2942 -28.1864 +v 12.9075 95.2942 -27.4301 +v 14.6044 95.2942 -26.5655 +v 16.2436 95.2942 -25.5961 +v 17.8188 95.2942 -24.5256 +v 19.3236 95.2942 -23.3584 +v 20.7521 95.2942 -22.099 +v 22.0988 95.2942 -20.7523 +v 23.3582 95.2942 -19.3238 +v 24.5255 95.2942 -17.819 +v 25.5959 95.2942 -16.2438 +v 26.5654 95.2942 -14.6046 +v 27.43 95.2942 -12.9077 +v 28.1863 95.2942 -11.1599 +v 28.8315 95.2942 -9.36806 +v 29.3628 95.2942 -7.53923 +v 29.7783 95.2942 -5.68065 +v 30.0762 95.2942 -3.79965 +v 30.2554 95.2942 -1.90365 +v 36.1241 93.2472 5.88009e-39 +v 36.0529 93.2472 2.26825 +v 35.8393 93.2472 4.52755 +v 35.4843 93.2472 6.76898 +v 34.9892 93.2472 8.9837 +v 34.3561 93.2472 11.163 +v 33.5874 93.2472 13.2982 +v 32.6861 93.2472 15.3809 +v 31.6558 93.2472 17.4029 +v 30.5006 93.2472 19.3563 +v 29.2251 93.2472 21.2332 +v 27.8341 93.2472 23.0264 +v 26.3334 93.2472 24.7287 +v 24.7287 93.2472 26.3334 +v 23.0264 93.2472 27.8341 +v 21.2333 93.2472 29.225 +v 19.3563 93.2472 30.5006 +v 17.403 93.2472 31.6558 +v 15.3809 93.2472 32.6861 +v 13.2982 93.2472 33.5874 +v 11.163 93.2472 34.3561 +v 8.98374 93.2472 34.9892 +v 6.76903 93.2472 35.4843 +v 4.52759 93.2472 35.8393 +v 2.2683 93.2472 36.0529 +v 4.57906e-05 93.2472 36.1241 +v -2.26821 93.2472 36.0529 +v -4.52751 93.2472 35.8393 +v -6.76894 93.2472 35.4843 +v -8.98366 93.2472 34.9892 +v -11.1629 93.2472 34.3561 +v -13.2981 93.2472 33.5874 +v -15.3809 93.2472 32.6861 +v -17.4029 93.2472 31.6559 +v -19.3562 93.2472 30.5007 +v -21.2332 93.2472 29.2251 +v -23.0263 93.2472 27.8342 +v -24.7286 93.2472 26.3334 +v -26.3333 93.2472 24.7287 +v -27.8341 93.2472 23.0264 +v -29.225 93.2472 21.2333 +v -30.5006 93.2472 19.3563 +v -31.6558 93.2472 17.403 +v -32.6861 93.2472 15.381 +v -33.5873 93.2472 13.2983 +v -34.3561 93.2472 11.163 +v -34.9892 93.2472 8.98378 +v -35.4843 93.2472 6.76907 +v -35.8393 93.2472 4.52764 +v -36.0529 93.2472 2.26834 +v -36.1241 93.2472 9.15813e-05 +v -36.0529 93.2472 -2.26816 +v -35.8393 93.2472 -4.52747 +v -35.4843 93.2472 -6.76889 +v -34.9893 93.2472 -8.98361 +v -34.3561 93.2472 -11.1629 +v -33.5874 93.2472 -13.2981 +v -32.6861 93.2472 -15.3808 +v -31.6559 93.2472 -17.4028 +v -30.5007 93.2472 -19.3562 +v -29.2251 93.2472 -21.2332 +v -27.8342 93.2472 -23.0263 +v -26.3334 93.2472 -24.7286 +v -24.7288 93.2472 -26.3333 +v -23.0265 93.2472 -27.8341 +v -21.2333 93.2472 -29.225 +v -19.3564 93.2472 -30.5006 +v -17.403 93.2472 -31.6558 +v -15.381 93.2472 -32.686 +v -13.2983 93.2472 -33.5873 +v -11.1631 93.2472 -34.3561 +v -8.98383 93.2472 -34.9892 +v -6.76911 93.2472 -35.4843 +v -4.52768 93.2472 -35.8393 +v -2.26839 93.2472 -36.0528 +v -0.000137372 93.2472 -36.1241 +v 2.26812 93.2472 -36.0529 +v 4.52742 93.2472 -35.8393 +v 6.76886 93.2472 -35.4843 +v 8.98358 93.2472 -34.9893 +v 11.1628 93.2472 -34.3561 +v 13.298 93.2472 -33.5874 +v 15.3808 93.2472 -32.6862 +v 17.4028 93.2472 -31.6559 +v 19.3562 93.2472 -30.5007 +v 21.2331 93.2472 -29.2251 +v 23.0263 93.2472 -27.8342 +v 24.7286 93.2472 -26.3335 +v 26.3333 93.2472 -24.7288 +v 27.834 93.2472 -23.0265 +v 29.225 93.2472 -21.2334 +v 30.5005 93.2472 -19.3564 +v 31.6558 93.2472 -17.4031 +v 32.686 93.2472 -15.3811 +v 33.5873 93.2472 -13.2983 +v 34.356 93.2472 -11.1631 +v 34.9892 93.2472 -8.98387 +v 35.4843 93.2472 -6.76916 +v 35.8393 93.2472 -4.52772 +v 36.0528 93.2472 -2.26842 +v 41.796 90.8465 5.88009e-39 +v 41.7135 90.8465 2.62439 +v 41.4664 90.8465 5.23842 +v 41.0557 90.8465 7.83178 +v 40.4829 90.8465 10.3942 +v 39.7504 90.8465 12.9157 +v 38.8609 90.8465 15.3861 +v 37.8182 90.8465 17.7959 +v 36.6261 90.8465 20.1354 +v 35.2895 90.8465 22.3954 +v 33.8137 90.8465 24.5671 +v 32.2044 90.8465 26.6418 +v 30.468 90.8465 28.6113 +v 28.6114 90.8465 30.468 +v 26.6418 90.8465 32.2044 +v 24.5671 90.8465 33.8137 +v 22.3954 90.8465 35.2895 +v 20.1354 90.8465 36.6261 +v 17.7959 90.8465 37.8181 +v 15.3862 90.8465 38.8609 +v 12.9157 90.8465 39.7504 +v 10.3943 90.8465 40.4829 +v 7.83184 90.8465 41.0557 +v 5.23847 90.8465 41.4664 +v 2.62444 90.8465 41.7135 +v 5.29802e-05 90.8465 41.796 +v -2.62434 90.8465 41.7135 +v -5.23837 90.8465 41.4664 +v -7.83173 90.8465 41.0557 +v -10.3942 90.8465 40.4829 +v -12.9156 90.8465 39.7504 +v -15.3861 90.8465 38.861 +v -17.7958 90.8465 37.8182 +v -20.1353 90.8465 36.6261 +v -22.3954 90.8465 35.2896 +v -24.567 90.8465 33.8137 +v -26.6417 90.8465 32.2044 +v -28.6113 90.8465 30.468 +v -30.4679 90.8465 28.6114 +v -32.2043 90.8465 26.6418 +v -33.8136 90.8465 24.5671 +v -35.2895 90.8465 22.3955 +v -36.6261 90.8465 20.1355 +v -37.8181 90.8465 17.7959 +v -38.8609 90.8465 15.3862 +v -39.7503 90.8465 12.9158 +v -40.4829 90.8465 10.3943 +v -41.0557 90.8465 7.83189 +v -41.4664 90.8465 5.23853 +v -41.7135 90.8465 2.62449 +v -41.796 90.8465 0.00010596 +v -41.7135 90.8465 -2.62429 +v -41.4664 90.8465 -5.23833 +v -41.0557 90.8465 -7.83168 +v -40.4829 90.8465 -10.3941 +v -39.7504 90.8465 -12.9156 +v -38.861 90.8465 -15.386 +v -37.8182 90.8465 -17.7958 +v -36.6262 90.8465 -20.1353 +v -35.2896 90.8465 -22.3953 +v -33.8138 90.8465 -24.567 +v -32.2045 90.8465 -26.6417 +v -30.4681 90.8465 -28.6112 +v -28.6114 90.8465 -30.4679 +v -26.6419 90.8465 -32.2043 +v -24.5672 90.8465 -33.8136 +v -22.3955 90.8465 -35.2895 +v -20.1355 90.8465 -36.6261 +v -17.796 90.8465 -37.8181 +v -15.3863 90.8465 -38.8609 +v -12.9158 90.8465 -39.7503 +v -10.3944 90.8465 -40.4829 +v -7.83193 90.8465 -41.0557 +v -5.23857 90.8465 -41.4664 +v -2.62455 90.8465 -41.7135 +v -0.000158941 90.8465 -41.796 +v 2.62424 90.8465 -41.7135 +v 5.23827 90.8465 -41.4664 +v 7.83164 90.8465 -41.0557 +v 10.3941 90.8465 -40.4829 +v 12.9155 90.8465 -39.7504 +v 15.386 90.8465 -38.861 +v 17.7957 90.8465 -37.8182 +v 20.1352 90.8465 -36.6262 +v 22.3953 90.8465 -35.2896 +v 24.5669 90.8465 -33.8138 +v 26.6416 90.8465 -32.2045 +v 28.6112 90.8465 -30.4681 +v 30.4678 90.8465 -28.6115 +v 32.2043 90.8465 -26.6419 +v 33.8136 90.8465 -24.5672 +v 35.2894 90.8465 -22.3956 +v 36.626 90.8465 -20.1355 +v 37.8181 90.8465 -17.7961 +v 38.8609 90.8465 -15.3863 +v 39.7503 90.8465 -12.9159 +v 40.4829 90.8465 -10.3944 +v 41.0556 90.8465 -7.83198 +v 41.4664 90.8465 -5.23862 +v 41.7135 90.8465 -2.62459 +v 47.3093 88.1012 5.88009e-39 +v 47.216 88.1012 2.97057 +v 46.9363 88.1012 5.92943 +v 46.4713 88.1012 8.86488 +v 45.823 88.1012 11.7653 +v 44.9938 88.1012 14.6194 +v 43.9871 88.1012 17.4157 +v 42.8068 88.1012 20.1433 +v 41.4575 88.1012 22.7914 +v 39.9446 88.1012 25.3496 +v 38.2741 88.1012 27.8077 +v 36.4525 88.1012 30.1561 +v 34.487 88.1012 32.3854 +v 32.3855 88.1012 34.487 +v 30.1561 88.1012 36.4524 +v 27.8078 88.1012 38.274 +v 25.3496 88.1012 39.9446 +v 22.7915 88.1012 41.4575 +v 20.1434 88.1012 42.8067 +v 17.4158 88.1012 43.9871 +v 14.6194 88.1012 44.9938 +v 11.7654 88.1012 45.823 +v 8.86493 88.1012 46.4713 +v 5.92948 88.1012 46.9363 +v 2.97063 88.1012 47.216 +v 5.99689e-05 88.1012 47.3093 +v -2.97052 88.1012 47.216 +v -5.92937 88.1012 46.9363 +v -8.86482 88.1012 46.4714 +v -11.7653 88.1012 45.823 +v -14.6193 88.1012 44.9939 +v -17.4157 88.1012 43.9871 +v -20.1433 88.1012 42.8068 +v -22.7914 88.1012 41.4575 +v -25.3495 88.1012 39.9446 +v -27.8077 88.1012 38.2741 +v -30.156 88.1012 36.4525 +v -32.3854 88.1012 34.4871 +v -34.4869 88.1012 32.3855 +v -36.4524 88.1012 30.1562 +v -38.274 88.1012 27.8078 +v -39.9445 88.1012 25.3497 +v -41.4574 88.1012 22.7915 +v -42.8067 88.1012 20.1434 +v -43.9871 88.1012 17.4158 +v -44.9938 88.1012 14.6195 +v -45.823 88.1012 11.7654 +v -46.4713 88.1012 8.86499 +v -46.9363 88.1012 5.92954 +v -47.216 88.1012 2.97069 +v -47.3093 88.1012 0.000119938 +v -47.216 88.1012 -2.97046 +v -46.9363 88.1012 -5.92931 +v -46.4714 88.1012 -8.86476 +v -45.823 88.1012 -11.7652 +v -44.9939 88.1012 -14.6193 +v -43.9871 88.1012 -17.4156 +v -42.8068 88.1012 -20.1432 +v -41.4575 88.1012 -22.7913 +v -39.9447 88.1012 -25.3495 +v -38.2741 88.1012 -27.8076 +v -36.4525 88.1012 -30.156 +v -34.4871 88.1012 -32.3854 +v -32.3856 88.1012 -34.4869 +v -30.1562 88.1012 -36.4524 +v -27.8078 88.1012 -38.274 +v -25.3497 88.1012 -39.9445 +v -22.7916 88.1012 -41.4574 +v -20.1435 88.1012 -42.8067 +v -17.4159 88.1012 -43.987 +v -14.6195 88.1012 -44.9938 +v -11.7655 88.1012 -45.823 +v -8.86504 88.1012 -46.4713 +v -5.92959 88.1012 -46.9363 +v -2.97076 88.1012 -47.216 +v -0.000179907 88.1012 -47.3093 +v 2.9704 88.1012 -47.216 +v 5.92925 88.1012 -46.9363 +v 8.86471 88.1012 -46.4714 +v 11.7652 88.1012 -45.8231 +v 14.6192 88.1012 -44.9939 +v 17.4155 88.1012 -43.9872 +v 20.1432 88.1012 -42.8068 +v 22.7913 88.1012 -41.4576 +v 25.3494 88.1012 -39.9447 +v 27.8076 88.1012 -38.2742 +v 30.156 88.1012 -36.4526 +v 32.3853 88.1012 -34.4872 +v 34.4869 88.1012 -32.3856 +v 36.4523 88.1012 -30.1563 +v 38.2739 88.1012 -27.8079 +v 39.9445 88.1012 -25.3498 +v 41.4574 88.1012 -22.7916 +v 42.8067 88.1012 -20.1435 +v 43.987 88.1012 -17.4159 +v 44.9938 88.1012 -14.6196 +v 45.823 88.1012 -11.7656 +v 46.4713 88.1012 -8.8651 +v 46.9362 88.1012 -5.92965 +v 47.216 88.1012 -2.97079 +v 52.6432 85.0217 5.88009e-39 +v 52.5393 85.0217 3.30549 +v 52.2281 85.0217 6.59794 +v 51.7107 85.0217 9.86434 +v 50.9893 85.0217 13.0918 +v 50.0666 85.0217 16.2676 +v 48.9464 85.0217 19.3792 +v 47.633 85.0217 22.4144 +v 46.1316 85.0217 25.361 +v 44.4481 85.0217 28.2076 +v 42.5892 85.0217 30.9429 +v 40.5623 85.0217 33.556 +v 38.3752 85.0217 36.0367 +v 36.0368 85.0217 38.3752 +v 33.5561 85.0217 40.5622 +v 30.9429 85.0217 42.5892 +v 28.2077 85.0217 44.4481 +v 25.3611 85.0217 46.1315 +v 22.4144 85.0217 47.633 +v 19.3793 85.0217 48.9464 +v 16.2677 85.0217 50.0666 +v 13.0919 85.0217 50.9893 +v 9.86441 85.0217 51.7107 +v 6.598 85.0217 52.2281 +v 3.30555 85.0217 52.5393 +v 6.673e-05 85.0217 52.6432 +v -3.30543 85.0217 52.5393 +v -6.59787 85.0217 52.2281 +v -9.86427 85.0217 51.7107 +v -13.0918 85.0217 50.9893 +v -16.2676 85.0217 50.0667 +v -19.3792 85.0217 48.9464 +v -22.4143 85.0217 47.633 +v -25.361 85.0217 46.1316 +v -28.2075 85.0217 44.4482 +v -30.9428 85.0217 42.5893 +v -33.556 85.0217 40.5623 +v -36.0367 85.0217 38.3753 +v -38.3752 85.0217 36.0368 +v -40.5622 85.0217 33.5561 +v -42.5892 85.0217 30.943 +v -44.4481 85.0217 28.2077 +v -46.1315 85.0217 25.3611 +v -47.6329 85.0217 22.4145 +v -48.9464 85.0217 19.3794 +v -50.0666 85.0217 16.2677 +v -50.9893 85.0217 13.0919 +v -51.7107 85.0217 9.86447 +v -52.2281 85.0217 6.59806 +v -52.5393 85.0217 3.30561 +v -52.6432 85.0217 0.00013346 +v -52.5393 85.0217 -3.30536 +v -52.2281 85.0217 -6.59781 +v -51.7108 85.0217 -9.86421 +v -50.9893 85.0217 -13.0917 +v -50.0667 85.0217 -16.2675 +v -48.9464 85.0217 -19.3791 +v -47.633 85.0217 -22.4142 +v -46.1316 85.0217 -25.3609 +v -44.4482 85.0217 -28.2075 +v -42.5893 85.0217 -30.9428 +v -40.5624 85.0217 -33.5559 +v -38.3753 85.0217 -36.0366 +v -36.0369 85.0217 -38.3751 +v -33.5562 85.0217 -40.5622 +v -30.943 85.0217 -42.5891 +v -28.2078 85.0217 -44.448 +v -25.3612 85.0217 -46.1315 +v -22.4145 85.0217 -47.6329 +v -19.3794 85.0217 -48.9463 +v -16.2678 85.0217 -50.0666 +v -13.092 85.0217 -50.9893 +v -9.86452 85.0217 -51.7107 +v -6.59812 85.0217 -52.2281 +v -3.30569 85.0217 -52.5393 +v -0.00020019 85.0217 -52.6432 +v 3.30529 85.0217 -52.5393 +v 6.59774 85.0217 -52.2281 +v 9.86416 85.0217 -51.7108 +v 13.0916 85.0217 -50.9893 +v 16.2675 85.0217 -50.0667 +v 19.379 85.0217 -48.9465 +v 22.4142 85.0217 -47.6331 +v 25.3609 85.0217 -46.1317 +v 28.2074 85.0217 -44.4482 +v 30.9427 85.0217 -42.5894 +v 33.5559 85.0217 -40.5624 +v 36.0366 85.0217 -38.3754 +v 38.3751 85.0217 -36.0369 +v 40.5621 85.0217 -33.5562 +v 42.5891 85.0217 -30.9431 +v 44.448 85.0217 -28.2078 +v 46.1315 85.0217 -25.3612 +v 47.6329 85.0217 -22.4146 +v 48.9463 85.0217 -19.3795 +v 50.0666 85.0217 -16.2679 +v 50.9892 85.0217 -13.0921 +v 51.7107 85.0217 -9.86459 +v 52.228 85.0217 -6.59818 +v 52.5393 85.0217 -3.30574 +v 57.7773 81.6197 5.88009e-39 +v 57.6633 81.6197 3.62787 +v 57.3218 81.6197 7.24142 +v 56.7539 81.6197 10.8264 +v 55.9622 81.6197 14.3686 +v 54.9495 81.6197 17.8542 +v 53.72 81.6197 21.2692 +v 52.2785 81.6197 24.6004 +v 50.6307 81.6197 27.8344 +v 48.783 81.6197 30.9586 +v 46.7429 81.6197 33.9606 +v 44.5182 81.6197 36.8286 +v 42.1179 81.6197 39.5513 +v 39.5513 81.6197 42.1178 +v 36.8287 81.6197 44.5182 +v 33.9607 81.6197 46.7428 +v 30.9587 81.6197 48.783 +v 27.8345 81.6197 50.6306 +v 24.6004 81.6197 52.2785 +v 21.2693 81.6197 53.72 +v 17.8542 81.6197 54.9495 +v 14.3687 81.6197 55.9621 +v 10.8265 81.6197 56.7539 +v 7.24148 81.6197 57.3217 +v 3.62794 81.6197 57.6633 +v 7.3238e-05 81.6197 57.7773 +v -3.6278 81.6197 57.6633 +v -7.24134 81.6197 57.3218 +v -10.8263 81.6197 56.754 +v -14.3686 81.6197 55.9622 +v -17.8541 81.6197 54.9495 +v -21.2692 81.6197 53.72 +v -24.6003 81.6197 52.2785 +v -27.8344 81.6197 50.6307 +v -30.9586 81.6197 48.7831 +v -33.9606 81.6197 46.7429 +v -36.8286 81.6197 44.5183 +v -39.5512 81.6197 42.1179 +v -42.1178 81.6197 39.5514 +v -44.5181 81.6197 36.8287 +v -46.7428 81.6197 33.9608 +v -48.783 81.6197 30.9587 +v -50.6306 81.6197 27.8346 +v -52.2785 81.6197 24.6005 +v -53.72 81.6197 21.2694 +v -54.9495 81.6197 17.8543 +v -55.9621 81.6197 14.3688 +v -56.7539 81.6197 10.8265 +v -57.3217 81.6197 7.24156 +v -57.6633 81.6197 3.628 +v -57.7773 81.6197 0.000146476 +v -57.6633 81.6197 -3.62772 +v -57.3218 81.6197 -7.24128 +v -56.754 81.6197 -10.8262 +v -55.9622 81.6197 -14.3685 +v -54.9496 81.6197 -17.854 +v -53.7201 81.6197 -21.2691 +v -52.2786 81.6197 -24.6002 +v -50.6307 81.6197 -27.8343 +v -48.7831 81.6197 -30.9585 +v -46.743 81.6197 -33.9605 +v -44.5183 81.6197 -36.8285 +v -42.118 81.6197 -39.5512 +v -39.5514 81.6197 -42.1177 +v -36.8288 81.6197 -44.5181 +v -33.9608 81.6197 -46.7427 +v -30.9588 81.6197 -48.7829 +v -27.8346 81.6197 -50.6306 +v -24.6006 81.6197 -52.2784 +v -21.2694 81.6197 -53.7199 +v -17.8544 81.6197 -54.9495 +v -14.3688 81.6197 -55.9621 +v -10.8266 81.6197 -56.7539 +v -7.24161 81.6197 -57.3217 +v -3.62809 81.6197 -57.6633 +v -0.000219714 81.6197 -57.7773 +v 3.62765 81.6197 -57.6633 +v 7.24121 81.6197 -57.3218 +v 10.8262 81.6197 -56.754 +v 14.3684 81.6197 -55.9622 +v 17.854 81.6197 -54.9496 +v 21.269 81.6197 -53.7201 +v 24.6002 81.6197 -52.2786 +v 27.8342 81.6197 -50.6308 +v 30.9585 81.6197 -48.7831 +v 33.9605 81.6197 -46.743 +v 36.8285 81.6197 -44.5184 +v 39.5511 81.6197 -42.118 +v 42.1177 81.6197 -39.5515 +v 44.518 81.6197 -36.8289 +v 46.7427 81.6197 -33.9609 +v 48.7829 81.6197 -30.9589 +v 50.6306 81.6197 -27.8347 +v 52.2784 81.6197 -24.6006 +v 53.7199 81.6197 -21.2695 +v 54.9494 81.6197 -17.8544 +v 55.9621 81.6197 -14.3689 +v 56.7539 81.6197 -10.8267 +v 57.3217 81.6197 -7.24169 +v 57.6633 81.6197 -3.62814 +v 62.6923 77.9081 5.88009e-39 +v 62.5686 77.9081 3.93648 +v 62.198 77.9081 7.85743 +v 61.5819 77.9081 11.7474 +v 60.7227 77.9081 15.5909 +v 59.624 77.9081 19.373 +v 58.2899 77.9081 23.0786 +v 56.7257 77.9081 26.6931 +v 54.9377 77.9081 30.2022 +v 52.9329 77.9081 33.5922 +v 50.7192 77.9081 36.8496 +v 48.3053 77.9081 39.9616 +v 45.7008 77.9081 42.9158 +v 42.9159 77.9081 45.7007 +v 39.9616 77.9081 48.3052 +v 36.8497 77.9081 50.7191 +v 33.5923 77.9081 52.9329 +v 30.2023 77.9081 54.9377 +v 26.6931 77.9081 56.7257 +v 23.0786 77.9081 58.2898 +v 19.3731 77.9081 59.6239 +v 15.591 77.9081 60.7227 +v 11.7474 77.9081 61.5819 +v 7.8575 77.9081 62.198 +v 3.93656 77.9081 62.5686 +v 7.94682e-05 77.9081 62.6923 +v -3.93641 77.9081 62.5686 +v -7.85735 77.9081 62.198 +v -11.7473 77.9081 61.5819 +v -15.5909 77.9081 60.7228 +v -19.3729 77.9081 59.624 +v -23.0785 77.9081 58.2899 +v -26.693 77.9081 56.7258 +v -30.2022 77.9081 54.9378 +v -33.5921 77.9081 52.9329 +v -36.8495 77.9081 50.7192 +v -39.9615 77.9081 48.3053 +v -42.9158 77.9081 45.7008 +v -45.7007 77.9081 42.9159 +v -48.3052 77.9081 39.9617 +v -50.7191 77.9081 36.8497 +v -52.9328 77.9081 33.5923 +v -54.9377 77.9081 30.2024 +v -56.7257 77.9081 26.6932 +v -58.2898 77.9081 23.0787 +v -59.6239 77.9081 19.3731 +v -60.7227 77.9081 15.5911 +v -61.5819 77.9081 11.7475 +v -62.198 77.9081 7.85758 +v -62.5686 77.9081 3.93663 +v -62.6923 77.9081 0.000158936 +v -62.5686 77.9081 -3.93633 +v -62.198 77.9081 -7.85728 +v -61.5819 77.9081 -11.7472 +v -60.7228 77.9081 -15.5908 +v -59.624 77.9081 -19.3728 +v -58.2899 77.9081 -23.0784 +v -56.7258 77.9081 -26.6929 +v -54.9378 77.9081 -30.2021 +v -52.933 77.9081 -33.5921 +v -50.7193 77.9081 -36.8495 +v -48.3054 77.9081 -39.9615 +v -45.7009 77.9081 -42.9157 +v -42.916 77.9081 -45.7006 +v -39.9618 77.9081 -48.3051 +v -36.8498 77.9081 -50.7191 +v -33.5924 77.9081 -52.9328 +v -30.2024 77.9081 -54.9376 +v -26.6933 77.9081 -56.7256 +v -23.0788 77.9081 -58.2898 +v -19.3732 77.9081 -59.6239 +v -15.5912 77.9081 -60.7227 +v -11.7476 77.9081 -61.5818 +v -7.85764 77.9081 -62.198 +v -3.93672 77.9081 -62.5686 +v -0.000238405 77.9081 -62.6923 +v 3.93625 77.9081 -62.5686 +v 7.8572 77.9081 -62.198 +v 11.7471 77.9081 -61.5819 +v 15.5907 77.9081 -60.7228 +v 19.3728 77.9081 -59.624 +v 23.0783 77.9081 -58.29 +v 26.6929 77.9081 -56.7258 +v 30.202 77.9081 -54.9378 +v 33.592 77.9081 -52.933 +v 36.8494 77.9081 -50.7193 +v 39.9614 77.9081 -48.3054 +v 42.9157 77.9081 -45.7009 +v 45.7006 77.9081 -42.9161 +v 48.3051 77.9081 -39.9618 +v 50.719 77.9081 -36.8499 +v 52.9327 77.9081 -33.5925 +v 54.9376 77.9081 -30.2025 +v 56.7256 77.9081 -26.6934 +v 58.2898 77.9081 -23.0789 +v 59.6239 77.9081 -19.3733 +v 60.7227 77.9081 -15.5912 +v 61.5818 77.9081 -11.7477 +v 62.198 77.9081 -7.85772 +v 62.5686 77.9081 -3.93677 +v 67.3695 73.9009 5.88009e-39 +v 67.2366 73.9009 4.23016 +v 66.8383 73.9009 8.44363 +v 66.1762 73.9009 12.6238 +v 65.253 73.9009 16.7541 +v 64.0722 73.9009 20.8183 +v 62.6386 73.9009 24.8004 +v 60.9578 73.9009 28.6845 +v 59.0364 73.9009 32.4555 +v 56.882 73.9009 36.0984 +v 54.5031 73.9009 39.5988 +v 51.9091 73.9009 42.9429 +v 49.1103 73.9009 46.1176 +v 46.1176 73.9009 49.1102 +v 42.943 73.9009 51.9091 +v 39.5989 73.9009 54.5031 +v 36.0984 73.9009 56.8819 +v 32.4556 73.9009 59.0363 +v 28.6846 73.9009 60.9577 +v 24.8004 73.9009 62.6386 +v 20.8184 73.9009 64.0722 +v 16.7542 73.9009 65.253 +v 12.6239 73.9009 66.1762 +v 8.44371 73.9009 66.8383 +v 4.23025 73.9009 67.2366 +v 8.5397e-05 73.9009 67.3695 +v -4.23008 73.9009 67.2366 +v -8.44355 73.9009 66.8383 +v -12.6237 73.9009 66.1762 +v -16.754 73.9009 65.253 +v -20.8182 73.9009 64.0723 +v -24.8003 73.9009 62.6386 +v -28.6845 73.9009 60.9578 +v -32.4554 73.9009 59.0364 +v -36.0983 73.9009 56.882 +v -39.5987 73.9009 54.5032 +v -42.9429 73.9009 51.9092 +v -46.1175 73.9009 49.1104 +v -49.1102 73.9009 46.1177 +v -51.909 73.9009 42.943 +v -54.503 73.9009 39.5989 +v -56.8819 73.9009 36.0985 +v -59.0363 73.9009 32.4556 +v -60.9577 73.9009 28.6847 +v -62.6385 73.9009 24.8005 +v -64.0722 73.9009 20.8185 +v -65.2529 73.9009 16.7543 +v -66.1762 73.9009 12.6239 +v -66.8383 73.9009 8.4438 +v -67.2366 73.9009 4.23032 +v -67.3695 73.9009 0.000170794 +v -67.2366 73.9009 -4.23 +v -66.8383 73.9009 -8.44347 +v -66.1763 73.9009 -12.6236 +v -65.253 73.9009 -16.7539 +v -64.0723 73.9009 -20.8182 +v -62.6387 73.9009 -24.8002 +v -60.9578 73.9009 -28.6844 +v -59.0365 73.9009 -32.4553 +v -56.8821 73.9009 -36.0982 +v -54.5032 73.9009 -39.5986 +v -51.9092 73.9009 -42.9428 +v -49.1104 73.9009 -46.1175 +v -46.1178 73.9009 -49.1101 +v -42.9431 73.9009 -51.909 +v -39.599 73.9009 -54.503 +v -36.0986 73.9009 -56.8819 +v -32.4557 73.9009 -59.0363 +v -28.6848 73.9009 -60.9577 +v -24.8006 73.9009 -62.6385 +v -20.8185 73.9009 -64.0722 +v -16.7543 73.9009 -65.2529 +v -12.624 73.9009 -66.1762 +v -8.44387 73.9009 -66.8383 +v -4.23042 73.9009 -67.2366 +v -0.000256191 73.9009 -67.3695 +v 4.22991 73.9009 -67.2366 +v 8.44339 73.9009 -66.8383 +v 12.6235 73.9009 -66.1763 +v 16.7539 73.9009 -65.253 +v 20.8181 73.9009 -64.0723 +v 24.8001 73.9009 -62.6387 +v 28.6843 73.9009 -60.9579 +v 32.4553 73.9009 -59.0365 +v 36.0982 73.9009 -56.8821 +v 39.5986 73.9009 -54.5032 +v 42.9427 73.9009 -51.9093 +v 46.1174 73.9009 -49.1105 +v 49.1101 73.9009 -46.1178 +v 51.9089 73.9009 -42.9432 +v 54.5029 73.9009 -39.599 +v 56.8818 73.9009 -36.0986 +v 59.0362 73.9009 -32.4558 +v 60.9576 73.9009 -28.6848 +v 62.6385 73.9009 -24.8007 +v 64.0721 73.9009 -20.8186 +v 65.2529 73.9009 -16.7544 +v 66.1762 73.9009 -12.6241 +v 66.8383 73.9009 -8.44395 +v 67.2366 73.9009 -4.23048 +v 71.7912 69.6134 5.88009e-39 +v 71.6495 69.6134 4.5078 +v 71.2251 69.6134 8.99781 +v 70.5195 69.6134 13.4523 +v 69.5357 69.6134 17.8537 +v 68.2775 69.6134 22.1847 +v 66.7497 69.6134 26.4281 +v 64.9586 69.6134 30.5672 +v 62.9111 69.6134 34.5856 +v 60.6153 69.6134 38.4676 +v 58.0803 69.6134 42.1978 +v 55.3161 69.6134 45.7614 +v 52.3335 69.6134 49.1444 +v 49.1445 69.6134 52.3335 +v 45.7614 69.6134 55.316 +v 42.1978 69.6134 58.0802 +v 38.4677 69.6134 60.6152 +v 34.5857 69.6134 62.911 +v 30.5672 69.6134 64.9585 +v 26.4281 69.6134 66.7497 +v 22.1847 69.6134 68.2774 +v 17.8538 69.6134 69.5357 +v 13.4524 69.6134 70.5195 +v 8.99789 69.6134 71.2251 +v 4.50789 69.6134 71.6495 +v 9.10018e-05 69.6134 71.7912 +v -4.50771 69.6134 71.6495 +v -8.99772 69.6134 71.2251 +v -13.4522 69.6134 70.5196 +v -17.8536 69.6134 69.5357 +v -22.1846 69.6134 68.2775 +v -26.428 69.6134 66.7498 +v -30.5671 69.6134 64.9586 +v -34.5856 69.6134 62.9111 +v -38.4675 69.6134 60.6153 +v -42.1977 69.6134 58.0803 +v -45.7613 69.6134 55.3161 +v -49.1443 69.6134 52.3336 +v -52.3334 69.6134 49.1445 +v -55.3159 69.6134 45.7615 +v -58.0802 69.6134 42.1979 +v -60.6152 69.6134 38.4677 +v -62.911 69.6134 34.5858 +v -64.9585 69.6134 30.5673 +v -66.7497 69.6134 26.4282 +v -68.2774 69.6134 22.1848 +v -69.5357 69.6134 17.8539 +v -70.5195 69.6134 13.4525 +v -71.225 69.6134 8.99798 +v -71.6495 69.6134 4.50797 +v -71.7912 69.6134 0.000182004 +v -71.6495 69.6134 -4.50762 +v -71.2251 69.6134 -8.99764 +v -70.5196 69.6134 -13.4521 +v -69.5358 69.6134 -17.8535 +v -68.2775 69.6134 -22.1845 +v -66.7498 69.6134 -26.4279 +v -64.9587 69.6134 -30.567 +v -62.9112 69.6134 -34.5855 +v -60.6154 69.6134 -38.4675 +v -58.0804 69.6134 -42.1976 +v -55.3162 69.6134 -45.7612 +v -52.3336 69.6134 -49.1443 +v -49.1446 69.6134 -52.3333 +v -45.7616 69.6134 -55.3159 +v -42.198 69.6134 -58.0801 +v -38.4678 69.6134 -60.6152 +v -34.5858 69.6134 -62.911 +v -30.5674 69.6134 -64.9585 +v -26.4283 69.6134 -66.7496 +v -22.1849 69.6134 -68.2774 +v -17.854 69.6134 -69.5356 +v -13.4526 69.6134 -70.5195 +v -8.99806 69.6134 -71.225 +v -4.50808 69.6134 -71.6495 +v -0.000273005 69.6134 -71.7912 +v 4.50753 69.6134 -71.6495 +v 8.99755 69.6134 -71.2251 +v 13.4521 69.6134 -70.5196 +v 17.8535 69.6134 -69.5358 +v 22.1844 69.6134 -68.2775 +v 26.4278 69.6134 -66.7498 +v 30.5669 69.6134 -64.9587 +v 34.5854 69.6134 -62.9112 +v 38.4674 69.6134 -60.6154 +v 42.1975 69.6134 -58.0804 +v 45.7612 69.6134 -55.3162 +v 49.1442 69.6134 -52.3337 +v 52.3333 69.6134 -49.1447 +v 55.3158 69.6134 -45.7616 +v 58.0801 69.6134 -42.198 +v 60.6151 69.6134 -38.4679 +v 62.9109 69.6134 -34.5859 +v 64.9584 69.6134 -30.5675 +v 66.7496 69.6134 -26.4284 +v 68.2773 69.6134 -22.185 +v 69.5356 69.6134 -17.8541 +v 70.5195 69.6134 -13.4527 +v 71.225 69.6134 -8.99815 +v 71.6495 69.6134 -4.50813 +v 75.9404 65.0619 5.88009e-39 +v 75.7906 65.0619 4.76834 +v 75.3416 65.0619 9.51785 +v 74.5953 65.0619 14.2298 +v 73.5546 65.0619 18.8856 +v 72.2237 65.0619 23.4669 +v 70.6077 65.0619 27.9555 +v 68.713 65.0619 32.3338 +v 66.5471 65.0619 36.5846 +v 64.1187 65.0619 40.6909 +v 61.4371 65.0619 44.6366 +v 58.5131 65.0619 48.4062 +v 55.3582 65.0619 51.9848 +v 51.9848 65.0619 55.3582 +v 48.4063 65.0619 58.5131 +v 44.6367 65.0619 61.4371 +v 40.691 65.0619 64.1186 +v 36.5846 65.0619 66.5471 +v 32.3339 65.0619 68.7129 +v 27.9556 65.0619 70.6076 +v 23.467 65.0619 72.2236 +v 18.8857 65.0619 73.5546 +v 14.2299 65.0619 74.5953 +v 9.51794 65.0619 75.3416 +v 4.76843 65.0619 75.7906 +v 9.62614e-05 65.0619 75.9404 +v -4.76825 65.0619 75.7906 +v -9.51776 65.0619 75.3416 +v -14.2297 65.0619 74.5954 +v -18.8855 65.0619 73.5547 +v -23.4668 65.0619 72.2237 +v -27.9554 65.0619 70.6077 +v -32.3338 65.0619 68.713 +v -36.5845 65.0619 66.5472 +v -40.6908 65.0619 64.1187 +v -44.6366 65.0619 61.4372 +v -48.4062 65.0619 58.5132 +v -51.9847 65.0619 55.3583 +v -55.3581 65.0619 51.9849 +v -58.513 65.0619 48.4064 +v -61.437 65.0619 44.6368 +v -64.1186 65.0619 40.6911 +v -66.547 65.0619 36.5847 +v -68.7129 65.0619 32.334 +v -70.6076 65.0619 27.9557 +v -72.2236 65.0619 23.467 +v -73.5546 65.0619 18.8858 +v -74.5953 65.0619 14.23 +v -75.3416 65.0619 9.51804 +v -75.7906 65.0619 4.76852 +v -75.9404 65.0619 0.000192523 +v -75.7906 65.0619 -4.76815 +v -75.3417 65.0619 -9.51767 +v -74.5954 65.0619 -14.2296 +v -73.5547 65.0619 -18.8854 +v -72.2237 65.0619 -23.4667 +v -70.6077 65.0619 -27.9553 +v -68.7131 65.0619 -32.3337 +v -66.5472 65.0619 -36.5844 +v -64.1188 65.0619 -40.6907 +v -61.4372 65.0619 -44.6365 +v -58.5133 65.0619 -48.4061 +v -55.3584 65.0619 -51.9846 +v -51.985 65.0619 -55.358 +v -48.4064 65.0619 -58.513 +v -44.6369 65.0619 -61.437 +v -40.6911 65.0619 -64.1185 +v -36.5848 65.0619 -66.547 +v -32.3341 65.0619 -68.7129 +v -27.9558 65.0619 -70.6075 +v -23.4671 65.0619 -72.2236 +v -18.8859 65.0619 -73.5546 +v -14.2301 65.0619 -74.5953 +v -9.51812 65.0619 -75.3416 +v -4.76863 65.0619 -75.7906 +v -0.000288784 65.0619 -75.9404 +v 4.76805 65.0619 -75.7906 +v 9.51758 65.0619 -75.3417 +v 14.2295 65.0619 -74.5954 +v 18.8853 65.0619 -73.5547 +v 23.4666 65.0619 -72.2237 +v 27.9553 65.0619 -70.6078 +v 32.3336 65.0619 -68.7131 +v 36.5843 65.0619 -66.5473 +v 40.6907 65.0619 -64.1188 +v 44.6364 65.0619 -61.4373 +v 48.406 65.0619 -58.5133 +v 51.9846 65.0619 -55.3584 +v 55.358 65.0619 -51.9851 +v 58.5129 65.0619 -48.4065 +v 61.4369 65.0619 -44.6369 +v 64.1185 65.0619 -40.6912 +v 66.547 65.0619 -36.5849 +v 68.7128 65.0619 -32.3342 +v 70.6075 65.0619 -27.9559 +v 72.2235 65.0619 -23.4672 +v 73.5546 65.0619 -18.886 +v 74.5953 65.0619 -14.2302 +v 75.3416 65.0619 -9.51821 +v 75.7906 65.0619 -4.76869 +v 79.8017 60.2635 5.88009e-39 +v 79.6442 60.2635 5.01079 +v 79.1724 60.2635 10.0018 +v 78.3882 60.2635 14.9533 +v 77.2946 60.2635 19.8459 +v 75.8959 60.2635 24.6601 +v 74.1977 60.2635 29.3769 +v 72.2067 60.2635 33.9779 +v 69.9308 60.2635 38.4447 +v 67.3788 60.2635 42.7598 +v 64.5609 60.2635 46.9062 +v 61.4883 60.2635 50.8675 +v 58.173 60.2635 54.628 +v 54.628 60.2635 58.1729 +v 50.8675 60.2635 61.4882 +v 46.9063 60.2635 64.5609 +v 42.7599 60.2635 67.3788 +v 38.4448 60.2635 69.9307 +v 33.978 60.2635 72.2067 +v 29.377 60.2635 74.1977 +v 24.6601 60.2635 75.8959 +v 19.8459 60.2635 77.2945 +v 14.9534 60.2635 78.3882 +v 10.0019 60.2635 79.1724 +v 5.01088 60.2635 79.6442 +v 0.000101156 60.2635 79.8017 +v -5.01069 60.2635 79.6442 +v -10.0017 60.2635 79.1724 +v -14.9532 60.2635 78.3882 +v -19.8458 60.2635 77.2946 +v -24.66 60.2635 75.8959 +v -29.3768 60.2635 74.1978 +v -33.9778 60.2635 72.2068 +v -38.4446 60.2635 69.9308 +v -42.7598 60.2635 67.3789 +v -46.9061 60.2635 64.561 +v -50.8674 60.2635 61.4883 +v -54.6279 60.2635 58.173 +v -58.1728 60.2635 54.6281 +v -61.4882 60.2635 50.8676 +v -64.5608 60.2635 46.9064 +v -67.3787 60.2635 42.76 +v -69.9307 60.2635 38.4449 +v -72.2066 60.2635 33.978 +v -74.1977 60.2635 29.3771 +v -75.8959 60.2635 24.6602 +v -77.2945 60.2635 19.846 +v -78.3881 60.2635 14.9535 +v -79.1724 60.2635 10.002 +v -79.6442 60.2635 5.01097 +v -79.8017 60.2635 0.000202312 +v -79.6442 60.2635 -5.01059 +v -79.1724 60.2635 -10.0016 +v -78.3882 60.2635 -14.9531 +v -77.2946 60.2635 -19.8457 +v -75.896 60.2635 -24.6599 +v -74.1978 60.2635 -29.3767 +v -72.2068 60.2635 -33.9777 +v -69.9309 60.2635 -38.4446 +v -67.3789 60.2635 -42.7597 +v -64.5611 60.2635 -46.9061 +v -61.4884 60.2635 -50.8673 +v -58.1731 60.2635 -54.6278 +v -54.6282 60.2635 -58.1727 +v -50.8677 60.2635 -61.4881 +v -46.9065 60.2635 -64.5608 +v -42.7601 60.2635 -67.3787 +v -38.445 60.2635 -69.9306 +v -33.9782 60.2635 -72.2066 +v -29.3772 60.2635 -74.1976 +v -24.6603 60.2635 -75.8958 +v -19.8461 60.2635 -77.2945 +v -14.9536 60.2635 -78.3881 +v -10.0021 60.2635 -79.1724 +v -5.01109 60.2635 -79.6442 +v -0.000303468 60.2635 -79.8017 +v 5.01049 60.2635 -79.6442 +v 10.0015 60.2635 -79.1725 +v 14.9531 60.2635 -78.3882 +v 19.8456 60.2635 -77.2946 +v 24.6598 60.2635 -75.896 +v 29.3767 60.2635 -74.1978 +v 33.9776 60.2635 -72.2069 +v 38.4445 60.2635 -69.9309 +v 42.7596 60.2635 -67.379 +v 46.906 60.2635 -64.5611 +v 50.8673 60.2635 -61.4885 +v 54.6278 60.2635 -58.1732 +v 58.1727 60.2635 -54.6283 +v 61.488 60.2635 -50.8678 +v 64.5607 60.2635 -46.9065 +v 67.3786 60.2635 -42.7602 +v 69.9306 60.2635 -38.4451 +v 72.2066 60.2635 -33.9782 +v 74.1976 60.2635 -29.3773 +v 75.8958 60.2635 -24.6604 +v 77.2945 60.2635 -19.8462 +v 78.3881 60.2635 -14.9537 +v 79.1724 60.2635 -10.0022 +v 79.6442 60.2635 -5.01116 +v 83.3602 55.2366 5.88009e-39 +v 83.1957 55.2366 5.23423 +v 82.7029 55.2366 10.4478 +v 81.8837 55.2366 15.6201 +v 80.7413 55.2366 20.7308 +v 79.2803 55.2366 25.7597 +v 77.5064 55.2366 30.6869 +v 75.4266 55.2366 35.493 +v 73.0491 55.2366 40.1591 +v 70.3834 55.2366 44.6666 +v 67.4398 55.2366 48.9979 +v 64.2302 55.2366 53.1358 +v 60.767 55.2366 57.0639 +v 57.064 55.2366 60.7669 +v 53.1358 55.2366 64.2301 +v 48.9979 55.2366 67.4398 +v 44.6667 55.2366 70.3833 +v 40.1591 55.2366 73.0491 +v 35.4931 55.2366 75.4265 +v 30.687 55.2366 77.5063 +v 25.7598 55.2366 79.2802 +v 20.7309 55.2366 80.7413 +v 15.6202 55.2366 81.8836 +v 10.4479 55.2366 82.7029 +v 5.23433 55.2366 83.1957 +v 0.000105667 55.2366 83.3602 +v -5.23413 55.2366 83.1957 +v -10.4477 55.2366 82.7029 +v -15.62 55.2366 81.8837 +v -20.7307 55.2366 80.7413 +v -25.7596 55.2366 79.2803 +v -30.6868 55.2366 77.5064 +v -35.4929 55.2366 75.4266 +v -40.159 55.2366 73.0492 +v -44.6665 55.2366 70.3834 +v -48.9978 55.2366 67.4399 +v -53.1357 55.2366 64.2302 +v -57.0639 55.2366 60.7671 +v -60.7669 55.2366 57.0641 +v -64.23 55.2366 53.1359 +v -67.4397 55.2366 48.998 +v -70.3833 55.2366 44.6668 +v -73.049 55.2366 40.1592 +v -75.4265 55.2366 35.4932 +v -77.5063 55.2366 30.6871 +v -79.2802 55.2366 25.7599 +v -80.7412 55.2366 20.731 +v -81.8836 55.2366 15.6203 +v -82.7029 55.2366 10.448 +v -83.1957 55.2366 5.23442 +v -83.3602 55.2366 0.000211333 +v -83.1957 55.2366 -5.23402 +v -82.7029 55.2366 -10.4476 +v -81.8837 55.2366 -15.6199 +v -80.7413 55.2366 -20.7306 +v -79.2803 55.2366 -25.7595 +v -77.5064 55.2366 -30.6867 +v -75.4267 55.2366 -35.4928 +v -73.0492 55.2366 -40.1589 +v -70.3835 55.2366 -44.6664 +v -67.44 55.2366 -48.9977 +v -64.2303 55.2366 -53.1356 +v -60.7671 55.2366 -57.0638 +v -57.0642 55.2366 -60.7668 +v -53.136 55.2366 -64.23 +v -48.9981 55.2366 -67.4397 +v -44.6668 55.2366 -70.3832 +v -40.1593 55.2366 -73.049 +v -35.4933 55.2366 -75.4264 +v -30.6872 55.2366 -77.5062 +v -25.76 55.2366 -79.2802 +v -20.7311 55.2366 -80.7412 +v -15.6204 55.2366 -81.8836 +v -10.4481 55.2366 -82.7028 +v -5.23455 55.2366 -83.1957 +v -0.000317 55.2366 -83.3602 +v 5.23392 55.2366 -83.1957 +v 10.4475 55.2366 -82.7029 +v 15.6198 55.2366 -81.8837 +v 20.7305 55.2366 -80.7414 +v 25.7594 55.2366 -79.2804 +v 30.6866 55.2366 -77.5065 +v 35.4927 55.2366 -75.4267 +v 40.1588 55.2366 -73.0493 +v 44.6663 55.2366 -70.3835 +v 48.9976 55.2366 -67.44 +v 53.1355 55.2366 -64.2303 +v 57.0637 55.2366 -60.7672 +v 60.7667 55.2366 -57.0643 +v 64.2299 55.2366 -53.1361 +v 67.4396 55.2366 -48.9982 +v 70.3831 55.2366 -44.6669 +v 73.0489 55.2366 -40.1594 +v 75.4264 55.2366 -35.4934 +v 77.5062 55.2366 -30.6873 +v 79.2801 55.2366 -25.7601 +v 80.7412 55.2366 -20.7312 +v 81.8836 55.2366 -15.6205 +v 82.7028 55.2366 -10.4482 +v 83.1957 55.2366 -5.23461 +v 86.6025 50.0001 5.88009e-39 +v 86.4316 50.0001 5.43781 +v 85.9196 50.0001 10.8542 +v 85.0685 50.0001 16.2277 +v 83.8817 50.0001 21.5371 +v 82.3639 50.0001 26.7616 +v 80.521 50.0001 31.8805 +v 78.3603 50.0001 36.8735 +v 75.8904 50.0001 41.721 +v 73.1209 50.0001 46.4039 +v 70.0629 50.0001 50.9036 +v 66.7284 50.0001 55.2025 +v 63.1305 50.0001 59.2835 +v 59.2835 50.0001 63.1305 +v 55.2026 50.0001 66.7283 +v 50.9037 50.0001 70.0629 +v 46.404 50.0001 73.1209 +v 41.7211 50.0001 75.8903 +v 36.8736 50.0001 78.3603 +v 31.8806 50.0001 80.5209 +v 26.7617 50.0001 82.3638 +v 21.5373 50.0001 83.8817 +v 16.2278 50.0001 85.0685 +v 10.8543 50.0001 85.9196 +v 5.43792 50.0001 86.4316 +v 0.000109777 50.0001 86.6025 +v -5.43771 50.0001 86.4316 +v -10.8541 50.0001 85.9196 +v -16.2276 50.0001 85.0686 +v -21.537 50.0001 83.8818 +v -26.7615 50.0001 82.3639 +v -31.8804 50.0001 80.521 +v -36.8734 50.0001 78.3603 +v -41.721 50.0001 75.8904 +v -46.4038 50.0001 73.121 +v -50.9036 50.0001 70.063 +v -55.2024 50.0001 66.7285 +v -59.2834 50.0001 63.1306 +v -63.1304 50.0001 59.2836 +v -66.7283 50.0001 55.2026 +v -70.0628 50.0001 50.9038 +v -73.1208 50.0001 46.4041 +v -75.8903 50.0001 41.7212 +v -78.3602 50.0001 36.8737 +v -80.5209 50.0001 31.8807 +v -82.3638 50.0001 26.7618 +v -83.8817 50.0001 21.5373 +v -85.0685 50.0001 16.2279 +v -85.9196 50.0001 10.8544 +v -86.4316 50.0001 5.43802 +v -86.6025 50.0001 0.000219553 +v -86.4316 50.0001 -5.4376 +v -85.9196 50.0001 -10.854 +v -85.0686 50.0001 -16.2275 +v -83.8818 50.0001 -21.5369 +v -82.3639 50.0001 -26.7614 +v -80.5211 50.0001 -31.8803 +v -78.3604 50.0001 -36.8733 +v -75.8905 50.0001 -41.7209 +v -73.121 50.0001 -46.4037 +v -70.063 50.0001 -50.9035 +v -66.7285 50.0001 -55.2023 +v -63.1307 50.0001 -59.2833 +v -59.2837 50.0001 -63.1303 +v -55.2027 50.0001 -66.7282 +v -50.9039 50.0001 -70.0627 +v -46.4042 50.0001 -73.1208 +v -41.7213 50.0001 -75.8902 +v -36.8738 50.0001 -78.3602 +v -31.8808 50.0001 -80.5209 +v -26.7619 50.0001 -82.3638 +v -21.5375 50.0001 -83.8817 +v -16.228 50.0001 -85.0685 +v -10.8545 50.0001 -85.9196 +v -5.43815 50.0001 -86.4316 +v -0.00032933 50.0001 -86.6025 +v 5.43749 50.0001 -86.4316 +v 10.8538 50.0001 -85.9197 +v 16.2274 50.0001 -85.0686 +v 21.5369 50.0001 -83.8818 +v 26.7613 50.0001 -82.364 +v 31.8802 50.0001 -80.5211 +v 36.8732 50.0001 -78.3604 +v 41.7208 50.0001 -75.8905 +v 46.4036 50.0001 -73.1211 +v 50.9034 50.0001 -70.0631 +v 55.2022 50.0001 -66.7286 +v 59.2832 50.0001 -63.1308 +v 63.1302 50.0001 -59.2838 +v 66.7281 50.0001 -55.2028 +v 70.0627 50.0001 -50.904 +v 73.1207 50.0001 -46.4043 +v 75.8902 50.0001 -41.7214 +v 78.3601 50.0001 -36.8739 +v 80.5208 50.0001 -31.8809 +v 82.3637 50.0001 -26.762 +v 83.8816 50.0001 -21.5376 +v 85.0685 50.0001 -16.2281 +v 85.9196 50.0001 -10.8546 +v 86.4316 50.0001 -5.43822 +v 89.5163 44.5739 5.88009e-39 +v 89.3397 44.5739 5.62077 +v 88.8104 44.5739 11.2194 +v 87.9307 44.5739 16.7737 +v 86.704 44.5739 22.2618 +v 85.1351 44.5739 27.662 +v 83.2302 44.5739 32.9531 +v 80.9968 44.5739 38.1142 +v 78.4437 44.5739 43.1248 +v 75.5811 44.5739 47.9652 +v 72.4202 44.5739 52.6163 +v 68.9735 44.5739 57.0598 +v 65.2546 44.5739 61.2781 +v 61.2782 44.5739 65.2545 +v 57.0599 44.5739 68.9734 +v 52.6164 44.5739 72.4202 +v 47.9653 44.5739 75.5811 +v 43.1249 44.5739 78.4437 +v 38.1143 44.5739 80.9967 +v 32.9532 44.5739 83.2301 +v 27.6621 44.5739 85.135 +v 22.2619 44.5739 86.704 +v 16.7738 44.5739 87.9307 +v 11.2195 44.5739 88.8104 +v 5.62088 44.5739 89.3397 +v 0.00011347 44.5739 89.5163 +v -5.62066 44.5739 89.3397 +v -11.2192 44.5739 88.8104 +v -16.7736 44.5739 87.9307 +v -22.2617 44.5739 86.704 +v -27.6619 44.5739 85.1351 +v -32.953 44.5739 83.2302 +v -38.1141 44.5739 80.9968 +v -43.1247 44.5739 78.4438 +v -47.9651 44.5739 75.5812 +v -52.6162 44.5739 72.4203 +v -57.0597 44.5739 68.9736 +v -61.278 44.5739 65.2547 +v -65.2545 44.5739 61.2782 +v -68.9734 44.5739 57.06 +v -72.4201 44.5739 52.6165 +v -75.581 44.5739 47.9654 +v -78.4436 44.5739 43.125 +v -80.9967 44.5739 38.1143 +v -83.2301 44.5739 32.9533 +v -85.135 44.5739 27.6622 +v -86.7039 44.5739 22.262 +v -87.9307 44.5739 16.7739 +v -88.8104 44.5739 11.2196 +v -89.3396 44.5739 5.62098 +v -89.5163 44.5739 0.00022694 +v -89.3397 44.5739 -5.62055 +v -88.8105 44.5739 -11.2191 +v -87.9308 44.5739 -16.7734 +v -86.704 44.5739 -22.2616 +v -85.1351 44.5739 -27.6618 +v -83.2302 44.5739 -32.9529 +v -80.9969 44.5739 -38.114 +v -78.4438 44.5739 -43.1246 +v -75.5812 44.5739 -47.965 +v -72.4204 44.5739 -52.6161 +v -68.9737 44.5739 -57.0596 +v -65.2548 44.5739 -61.2779 +v -61.2783 44.5739 -65.2544 +v -57.0601 44.5739 -68.9733 +v -52.6166 44.5739 -72.42 +v -47.9655 44.5739 -75.581 +v -43.125 44.5739 -78.4436 +v -38.1145 44.5739 -80.9966 +v -32.9534 44.5739 -83.23 +v -27.6624 44.5739 -85.135 +v -22.2621 44.5739 -86.7039 +v -16.774 44.5739 -87.9307 +v -11.2197 44.5739 -88.8104 +v -5.62112 44.5739 -89.3396 +v -0.00034041 44.5739 -89.5163 +v 5.62044 44.5739 -89.3397 +v 11.219 44.5739 -88.8105 +v 16.7734 44.5739 -87.9308 +v 22.2615 44.5739 -86.7041 +v 27.6617 44.5739 -85.1352 +v 32.9528 44.5739 -83.2303 +v 38.1139 44.5739 -80.9969 +v 43.1245 44.5739 -78.4439 +v 47.9649 44.5739 -75.5813 +v 52.6161 44.5739 -72.4204 +v 57.0596 44.5739 -68.9737 +v 61.2778 44.5739 -65.2548 +v 65.2543 44.5739 -61.2784 +v 68.9732 44.5739 -57.0601 +v 72.42 44.5739 -52.6167 +v 75.5809 44.5739 -47.9656 +v 78.4435 44.5739 -43.1251 +v 80.9966 44.5739 -38.1146 +v 83.23 44.5739 -32.9535 +v 85.1349 44.5739 -27.6625 +v 86.7039 44.5739 -22.2622 +v 87.9306 44.5739 -16.7741 +v 88.8104 44.5739 -11.2198 +v 89.3396 44.5739 -5.62119 +v 92.0905 38.9787 5.88009e-39 +v 91.9088 38.9787 5.78241 +v 91.3644 38.9787 11.542 +v 90.4593 38.9787 17.256 +v 89.1973 38.9787 22.902 +v 87.5833 38.9787 28.4575 +v 85.6236 38.9787 33.9008 +v 83.326 38.9787 39.2102 +v 80.6996 38.9787 44.3649 +v 77.7546 38.9787 49.3445 +v 74.5028 38.9787 54.1294 +v 70.957 38.9787 58.7007 +v 67.1311 38.9787 63.0403 +v 63.0403 38.9787 67.1311 +v 58.7008 38.9787 70.9569 +v 54.1295 38.9787 74.5028 +v 49.3446 38.9787 77.7546 +v 44.365 38.9787 80.6995 +v 39.2103 38.9787 83.326 +v 33.9009 38.9787 85.6236 +v 28.4576 38.9787 87.5833 +v 22.9021 38.9787 89.1973 +v 17.2561 38.9787 90.4593 +v 11.5421 38.9787 91.3643 +v 5.78252 38.9787 91.9088 +v 0.000116733 38.9787 92.0905 +v -5.7823 38.9787 91.9088 +v -11.5419 38.9787 91.3644 +v -17.2559 38.9787 90.4594 +v -22.9019 38.9787 89.1974 +v -28.4574 38.9787 87.5833 +v -33.9007 38.9787 85.6236 +v -39.2101 38.9787 83.326 +v -44.3648 38.9787 80.6996 +v -49.3444 38.9787 77.7547 +v -54.1293 38.9787 74.5029 +v -58.7006 38.9787 70.9571 +v -63.0402 38.9787 67.1312 +v -67.131 38.9787 63.0404 +v -70.9569 38.9787 58.7008 +v -74.5027 38.9787 54.1296 +v -77.7545 38.9787 49.3447 +v -80.6994 38.9787 44.3651 +v -83.3259 38.9787 39.2104 +v -85.6235 38.9787 33.901 +v -87.5832 38.9787 28.4577 +v -89.1973 38.9787 22.9022 +v -90.4593 38.9787 17.2563 +v -91.3643 38.9787 11.5422 +v -91.9088 38.9787 5.78262 +v -92.0905 38.9787 0.000233466 +v -91.9088 38.9787 -5.78218 +v -91.3644 38.9787 -11.5418 +v -90.4594 38.9787 -17.2558 +v -89.1974 38.9787 -22.9017 +v -87.5834 38.9787 -28.4573 +v -85.6237 38.9787 -33.9005 +v -83.3261 38.9787 -39.21 +v -80.6997 38.9787 -44.3647 +v -77.7547 38.9787 -49.3443 +v -74.503 38.9787 -54.1292 +v -70.9571 38.9787 -58.7005 +v -67.1313 38.9787 -63.0401 +v -63.0405 38.9787 -67.1309 +v -58.7009 38.9787 -70.9568 +v -54.1297 38.9787 -74.5026 +v -49.3448 38.9787 -77.7544 +v -44.3652 38.9787 -80.6994 +v -39.2105 38.9787 -83.3259 +v -33.9011 38.9787 -85.6235 +v -28.4578 38.9787 -87.5832 +v -22.9023 38.9787 -89.1972 +v -17.2563 38.9787 -90.4593 +v -11.5423 38.9787 -91.3643 +v -5.78276 38.9787 -91.9088 +v -0.000350199 38.9787 -92.0905 +v 5.78206 38.9787 -91.9088 +v 11.5417 38.9787 -91.3644 +v 17.2557 38.9787 -90.4594 +v 22.9016 38.9787 -89.1974 +v 28.4572 38.9787 -87.5834 +v 33.9004 38.9787 -85.6237 +v 39.2099 38.9787 -83.3261 +v 44.3646 38.9787 -80.6997 +v 49.3442 38.9787 -77.7548 +v 54.1291 38.9787 -74.503 +v 58.7004 38.9787 -70.9572 +v 63.04 38.9787 -67.1314 +v 67.1308 38.9787 -63.0406 +v 70.9567 38.9787 -58.701 +v 74.5026 38.9787 -54.1298 +v 77.7544 38.9787 -49.3449 +v 80.6993 38.9787 -44.3653 +v 83.3258 38.9787 -39.2106 +v 85.6234 38.9787 -33.9012 +v 87.5832 38.9787 -28.4579 +v 89.1972 38.9787 -22.9024 +v 90.4593 38.9787 -17.2565 +v 91.3643 38.9787 -11.5424 +v 91.9088 38.9787 -5.78284 +v 94.3154 33.2356 5.88009e-39 +v 94.1293 33.2356 5.92211 +v 93.5717 33.2356 11.8208 +v 92.6448 33.2356 17.6729 +v 91.3523 33.2356 23.4553 +v 89.6993 33.2356 29.145 +v 87.6923 33.2356 34.7198 +v 85.3391 33.2356 40.1575 +v 82.6492 33.2356 45.4368 +v 79.6332 33.2356 50.5367 +v 76.3028 33.2356 55.4372 +v 72.6713 33.2356 60.1189 +v 68.753 33.2356 64.5633 +v 64.5634 33.2356 68.7529 +v 60.119 33.2356 72.6712 +v 55.4373 33.2356 76.3027 +v 50.5368 33.2356 79.6331 +v 45.4369 33.2356 82.6492 +v 40.1576 33.2356 85.3391 +v 34.7199 33.2356 87.6922 +v 29.1451 33.2356 89.6993 +v 23.4554 33.2356 91.3523 +v 17.673 33.2356 92.6448 +v 11.821 33.2356 93.5717 +v 5.92222 33.2356 94.1293 +v 0.000119553 33.2356 94.3154 +v -5.922 33.2356 94.1293 +v -11.8207 33.2356 93.5717 +v -17.6728 33.2356 92.6449 +v -23.4552 33.2356 91.3524 +v -29.1449 33.2356 89.6993 +v -34.7197 33.2356 87.6923 +v -40.1574 33.2356 85.3392 +v -45.4367 33.2356 82.6493 +v -50.5366 33.2356 79.6332 +v -55.4371 33.2356 76.3029 +v -60.1188 33.2356 72.6714 +v -64.5632 33.2356 68.7531 +v -68.7529 33.2356 64.5635 +v -72.6712 33.2356 60.119 +v -76.3027 33.2356 55.4374 +v -79.633 33.2356 50.5369 +v -82.6491 33.2356 45.437 +v -85.3391 33.2356 40.1577 +v -87.6922 33.2356 34.72 +v -89.6992 33.2356 29.1453 +v -91.3523 33.2356 23.4555 +v -92.6448 33.2356 17.6732 +v -93.5717 33.2356 11.8211 +v -94.1293 33.2356 5.92233 +v -94.3154 33.2356 0.000239107 +v -94.1293 33.2356 -5.92188 +v -93.5717 33.2356 -11.8206 +v -92.6449 33.2356 -17.6727 +v -91.3524 33.2356 -23.455 +v -89.6994 33.2356 -29.1448 +v -87.6924 33.2356 -34.7196 +v -85.3392 33.2356 -40.1573 +v -82.6494 33.2356 -45.4366 +v -79.6333 33.2356 -50.5365 +v -76.3029 33.2356 -55.437 +v -72.6715 33.2356 -60.1187 +v -68.7532 33.2356 -64.5631 +v -64.5636 33.2356 -68.7528 +v -60.1191 33.2356 -72.6711 +v -55.4374 33.2356 -76.3026 +v -50.537 33.2356 -79.633 +v -45.437 33.2356 -82.6491 +v -40.1578 33.2356 -85.339 +v -34.7201 33.2356 -87.6921 +v -29.1454 33.2356 -89.6992 +v -23.4556 33.2356 -91.3522 +v -17.6733 33.2356 -92.6448 +v -11.8212 33.2356 -93.5717 +v -5.92247 33.2356 -94.1293 +v -0.00035866 33.2356 -94.3154 +v 5.92176 33.2356 -94.1293 +v 11.8205 33.2356 -93.5718 +v 17.6726 33.2356 -92.6449 +v 23.455 33.2356 -91.3524 +v 29.1447 33.2356 -89.6994 +v 34.7195 33.2356 -87.6924 +v 40.1572 33.2356 -85.3393 +v 45.4365 33.2356 -82.6494 +v 50.5364 33.2356 -79.6333 +v 55.4369 33.2356 -76.303 +v 60.1186 33.2356 -72.6715 +v 64.563 33.2356 -68.7533 +v 68.7527 33.2356 -64.5636 +v 72.671 33.2356 -60.1192 +v 76.3025 33.2356 -55.4375 +v 79.6329 33.2356 -50.5371 +v 82.649 33.2356 -45.4372 +v 85.3389 33.2356 -40.158 +v 87.6921 33.2356 -34.7202 +v 89.6992 33.2356 -29.1455 +v 91.3522 33.2356 -23.4557 +v 92.6447 33.2356 -17.6734 +v 93.5717 33.2356 -11.8213 +v 94.1293 33.2356 -5.92255 +v 96.1825 27.3664 5.88009e-39 +v 95.9927 27.3664 6.03935 +v 95.4241 27.3664 12.0549 +v 94.4789 27.3664 18.0228 +v 93.1608 27.3664 23.9196 +v 91.475 27.3664 29.722 +v 89.4283 27.3664 35.4071 +v 87.0286 27.3664 40.9525 +v 84.2854 27.3664 46.3363 +v 81.2096 27.3664 51.5371 +v 77.8133 27.3664 56.5346 +v 74.11 27.3664 61.309 +v 70.1141 27.3664 65.8414 +v 65.8415 27.3664 70.114 +v 61.3091 27.3664 74.1099 +v 56.5347 27.3664 77.8133 +v 51.5372 27.3664 81.2096 +v 46.3364 27.3664 84.2854 +v 40.9526 27.3664 87.0285 +v 35.4072 27.3664 89.4282 +v 29.7221 27.3664 91.475 +v 23.9197 27.3664 93.1608 +v 18.0229 27.3664 94.4789 +v 12.055 27.3664 95.4241 +v 6.03946 27.3664 95.9927 +v 0.00012192 27.3664 96.1825 +v -6.03923 27.3664 95.9928 +v -12.0547 27.3664 95.4241 +v -18.0227 27.3664 94.4789 +v -23.9195 27.3664 93.1608 +v -29.7219 27.3664 91.4751 +v -35.407 27.3664 89.4283 +v -40.9524 27.3664 87.0286 +v -46.3362 27.3664 84.2855 +v -51.537 27.3664 81.2097 +v -56.5345 27.3664 77.8134 +v -61.3089 27.3664 74.11 +v -65.8413 27.3664 70.1142 +v -70.1139 27.3664 65.8416 +v -74.1098 27.3664 61.3092 +v -77.8132 27.3664 56.5348 +v -81.2095 27.3664 51.5373 +v -84.2853 27.3664 46.3365 +v -87.0285 27.3664 40.9527 +v -89.4282 27.3664 35.4074 +v -91.475 27.3664 29.7222 +v -93.1607 27.3664 23.9198 +v -94.4788 27.3664 18.023 +v -95.4241 27.3664 12.0551 +v -95.9927 27.3664 6.03957 +v -96.1825 27.3664 0.00024384 +v -95.9928 27.3664 -6.03911 +v -95.4241 27.3664 -12.0546 +v -94.4789 27.3664 -18.0226 +v -93.1609 27.3664 -23.9194 +v -91.4751 27.3664 -29.7218 +v -89.4284 27.3664 -35.4069 +v -87.0287 27.3664 -40.9523 +v -84.2855 27.3664 -46.3361 +v -81.2097 27.3664 -51.537 +v -77.8135 27.3664 -56.5344 +v -74.1101 27.3664 -61.3088 +v -70.1143 27.3664 -65.8413 +v -65.8417 27.3664 -70.1138 +v -61.3093 27.3664 -74.1097 +v -56.5349 27.3664 -77.8131 +v -51.5374 27.3664 -81.2094 +v -46.3366 27.3664 -84.2853 +v -40.9528 27.3664 -87.0284 +v -35.4075 27.3664 -89.4281 +v -29.7224 27.3664 -91.4749 +v -23.9199 27.3664 -93.1607 +v -18.0231 27.3664 -94.4788 +v -12.0552 27.3664 -95.4241 +v -6.03972 27.3664 -95.9927 +v -0.00036576 27.3664 -96.1825 +v 6.03899 27.3664 -95.9928 +v 12.0545 27.3664 -95.4242 +v 18.0225 27.3664 -94.479 +v 23.9193 27.3664 -93.1609 +v 29.7217 27.3664 -91.4751 +v 35.4068 27.3664 -89.4284 +v 40.9522 27.3664 -87.0287 +v 46.3359 27.3664 -84.2856 +v 51.5369 27.3664 -81.2098 +v 56.5344 27.3664 -77.8135 +v 61.3088 27.3664 -74.1102 +v 65.8412 27.3664 -70.1143 +v 70.1138 27.3664 -65.8418 +v 74.1096 27.3664 -61.3094 +v 77.8131 27.3664 -56.535 +v 81.2094 27.3664 -51.5375 +v 84.2852 27.3664 -46.3367 +v 87.0284 27.3664 -40.9529 +v 89.4281 27.3664 -35.4076 +v 91.4749 27.3664 -29.7225 +v 93.1607 27.3664 -23.9201 +v 94.4788 27.3664 -18.0233 +v 95.4241 27.3664 -12.0553 +v 95.9927 27.3664 -6.03979 +v 97.6848 21.3934 5.88009e-39 +v 97.4921 21.3934 6.13368 +v 96.9145 21.3934 12.2431 +v 95.9545 21.3934 18.3043 +v 94.6159 21.3934 24.2932 +v 92.9038 21.3934 30.1862 +v 90.8251 21.3934 35.9601 +v 88.3879 21.3934 41.5921 +v 85.6019 21.3934 47.06 +v 82.478 21.3934 52.3421 +v 79.0287 21.3934 57.4177 +v 75.2675 21.3934 62.2666 +v 71.2092 21.3934 66.8698 +v 66.8699 21.3934 71.2091 +v 62.2667 21.3934 75.2674 +v 57.4177 21.3934 79.0286 +v 52.3422 21.3934 82.478 +v 47.0601 21.3934 85.6018 +v 41.5922 21.3934 88.3878 +v 35.9603 21.3934 90.825 +v 30.1863 21.3934 92.9037 +v 24.2933 21.3934 94.6158 +v 18.3044 21.3934 95.9545 +v 12.2433 21.3934 96.9145 +v 6.13379 21.3934 97.492 +v 0.000123824 21.3934 97.6848 +v -6.13356 21.3934 97.4921 +v -12.243 21.3934 96.9146 +v -18.3042 21.3934 95.9546 +v -24.2931 21.3934 94.6159 +v -30.1861 21.3934 92.9038 +v -35.96 21.3934 90.8251 +v -41.592 21.3934 88.3879 +v -47.0599 21.3934 85.6019 +v -52.342 21.3934 82.4781 +v -57.4176 21.3934 79.0288 +v -62.2665 21.3934 75.2675 +v -66.8697 21.3934 71.2093 +v -71.209 21.3934 66.87 +v -75.2673 21.3934 62.2668 +v -79.0286 21.3934 57.4178 +v -82.4779 21.3934 52.3423 +v -85.6018 21.3934 47.0602 +v -88.3878 21.3934 41.5923 +v -90.825 21.3934 35.9604 +v -92.9037 21.3934 30.1865 +v -94.6158 21.3934 24.2934 +v -95.9545 21.3934 18.3045 +v -96.9145 21.3934 12.2434 +v -97.492 21.3934 6.13391 +v -97.6848 21.3934 0.000247649 +v -97.4921 21.3934 -6.13344 +v -96.9146 21.3934 -12.2429 +v -95.9546 21.3934 -18.304 +v -94.6159 21.3934 -24.293 +v -92.9039 21.3934 -30.186 +v -90.8251 21.3934 -35.9599 +v -88.388 21.3934 -41.5919 +v -85.602 21.3934 -47.0598 +v -82.4782 21.3934 -52.3419 +v -79.0288 21.3934 -57.4175 +v -75.2676 21.3934 -62.2664 +v -71.2094 21.3934 -66.8696 +v -66.8701 21.3934 -71.2089 +v -62.2669 21.3934 -75.2672 +v -57.4179 21.3934 -79.0285 +v -52.3424 21.3934 -82.4779 +v -47.0603 21.3934 -85.6017 +v -41.5925 21.3934 -88.3877 +v -35.9605 21.3934 -90.8249 +v -30.1866 21.3934 -92.9037 +v -24.2935 21.3934 -94.6158 +v -18.3046 21.3934 -95.9545 +v -12.2435 21.3934 -96.9145 +v -6.13405 21.3934 -97.492 +v -0.000371473 21.3934 -97.6848 +v 6.13331 21.3934 -97.4921 +v 12.2428 21.3934 -96.9146 +v 18.3039 21.3934 -95.9546 +v 24.2929 21.3934 -94.616 +v 30.1859 21.3934 -92.9039 +v 35.9598 21.3934 -90.8252 +v 41.5918 21.3934 -88.388 +v 47.0597 21.3934 -85.602 +v 52.3418 21.3934 -82.4782 +v 57.4174 21.3934 -79.0289 +v 62.2663 21.3934 -75.2677 +v 66.8695 21.3934 -71.2095 +v 71.2089 21.3934 -66.8702 +v 75.2672 21.3934 -62.267 +v 79.0284 21.3934 -57.418 +v 82.4778 21.3934 -52.3425 +v 85.6016 21.3934 -47.0604 +v 88.3877 21.3934 -41.5926 +v 90.8249 21.3934 -35.9606 +v 92.9036 21.3934 -30.1867 +v 94.6157 21.3934 -24.2937 +v 95.9545 21.3934 -18.3048 +v 96.9145 21.3934 -12.2436 +v 97.492 21.3934 -6.13413 +v 98.8165 15.3393 5.88009e-39 +v 98.6215 15.3393 6.20474 +v 98.0373 15.3393 12.385 +v 97.0662 15.3393 18.5164 +v 95.712 15.3393 24.5747 +v 93.9801 15.3393 30.536 +v 91.8773 15.3393 36.3768 +v 89.4119 15.3393 42.074 +v 86.5936 15.3393 47.6052 +v 83.4336 15.3393 52.9485 +v 79.9443 15.3393 58.0829 +v 76.1395 15.3393 62.988 +v 72.0342 15.3393 67.6445 +v 67.6446 15.3393 72.0341 +v 62.9881 15.3393 76.1394 +v 58.083 15.3393 79.9442 +v 52.9486 15.3393 83.4335 +v 47.6053 15.3393 86.5935 +v 42.0741 15.3393 89.4118 +v 36.3769 15.3393 91.8773 +v 30.5361 15.3393 93.9801 +v 24.5748 15.3393 95.712 +v 18.5165 15.3393 97.0662 +v 12.3851 15.3393 98.0373 +v 6.20486 15.3393 98.6215 +v 0.000125259 15.3393 98.8165 +v -6.20462 15.3393 98.6215 +v -12.3849 15.3393 98.0373 +v -18.5162 15.3393 97.0662 +v -24.5745 15.3393 95.7121 +v -30.5358 15.3393 93.9801 +v -36.3767 15.3393 91.8773 +v -42.0739 15.3393 89.4119 +v -47.6051 15.3393 86.5937 +v -52.9484 15.3393 83.4336 +v -58.0828 15.3393 79.9444 +v -62.9879 15.3393 76.1395 +v -67.6444 15.3393 72.0343 +v -72.034 15.3393 67.6447 +v -76.1393 15.3393 62.9882 +v -79.9441 15.3393 58.083 +v -83.4334 15.3393 52.9487 +v -86.5935 15.3393 47.6054 +v -89.4118 15.3393 42.0742 +v -91.8772 15.3393 36.377 +v -93.98 15.3393 30.5362 +v -95.712 15.3393 24.5749 +v -97.0662 15.3393 18.5166 +v -98.0373 15.3393 12.3852 +v -98.6215 15.3393 6.20497 +v -98.8165 15.3393 0.000250518 +v -98.6216 15.3393 -6.20449 +v -98.0374 15.3393 -12.3848 +v -97.0663 15.3393 -18.5161 +v -95.7121 15.3393 -24.5744 +v -93.9802 15.3393 -30.5357 +v -91.8774 15.3393 -36.3765 +v -89.412 15.3393 -42.0738 +v -86.5937 15.3393 -47.605 +v -83.4337 15.3393 -52.9483 +v -79.9444 15.3393 -58.0827 +v -76.1396 15.3393 -62.9878 +v -72.0343 15.3393 -67.6444 +v -67.6448 15.3393 -72.0339 +v -62.9883 15.3393 -76.1392 +v -58.0831 15.3393 -79.9441 +v -52.9488 15.3393 -83.4334 +v -47.6055 15.3393 -86.5934 +v -42.0743 15.3393 -89.4117 +v -36.3771 15.3393 -91.8772 +v -30.5363 15.3393 -93.98 +v -24.575 15.3393 -95.7119 +v -18.5167 15.3393 -97.0662 +v -12.3853 15.3393 -98.0373 +v -6.20512 15.3393 -98.6215 +v -0.000375777 15.3393 -98.8165 +v 6.20437 15.3393 -98.6216 +v 12.3846 15.3393 -98.0374 +v 18.516 15.3393 -97.0663 +v 24.5743 15.3393 -95.7121 +v 30.5356 15.3393 -93.9802 +v 36.3764 15.3393 -91.8774 +v 42.0737 15.3393 -89.412 +v 47.6049 15.3393 -86.5938 +v 52.9482 15.3393 -83.4338 +v 58.0826 15.3393 -79.9445 +v 62.9877 15.3393 -76.1397 +v 67.6442 15.3393 -72.0344 +v 72.0339 15.3393 -67.6449 +v 76.1392 15.3393 -62.9884 +v 79.944 15.3393 -58.0832 +v 83.4333 15.3393 -52.9489 +v 86.5934 15.3393 -47.6056 +v 89.4117 15.3393 -42.0745 +v 91.8771 15.3393 -36.3772 +v 93.98 15.3393 -30.5364 +v 95.7119 15.3393 -24.5751 +v 97.0661 15.3393 -18.5168 +v 98.0373 15.3393 -12.3855 +v 98.6215 15.3393 -6.2052 +v 99.5734 9.22694 5.88009e-39 +v 99.3769 9.22694 6.25226 +v 98.7882 9.22694 12.4798 +v 97.8097 9.22694 18.6582 +v 96.4451 9.22694 24.7629 +v 94.7 9.22694 30.7699 +v 92.581 9.22694 36.6554 +v 90.0967 9.22694 42.3963 +v 87.2569 9.22694 47.9698 +v 84.0726 9.22694 53.3541 +v 80.5566 9.22694 58.5277 +v 76.7227 9.22694 63.4704 +v 72.5859 9.22694 68.1626 +v 68.1627 9.22694 72.5858 +v 63.4705 9.22694 76.7226 +v 58.5278 9.22694 80.5565 +v 53.3542 9.22694 84.0726 +v 47.9699 9.22694 87.2568 +v 42.3964 9.22694 90.0967 +v 36.6555 9.22694 92.581 +v 30.77 9.22694 94.6999 +v 24.763 9.22694 96.4451 +v 18.6583 9.22694 97.8097 +v 12.48 9.22694 98.7882 +v 6.25238 9.22694 99.3769 +v 0.000126218 9.22694 99.5734 +v -6.25214 9.22694 99.3769 +v -12.4797 9.22694 98.7883 +v -18.6581 9.22694 97.8097 +v -24.7628 9.22694 96.4452 +v -30.7697 9.22694 94.7 +v -36.6553 9.22694 92.5811 +v -42.3962 9.22694 90.0968 +v -47.9697 9.22694 87.2569 +v -53.354 9.22694 84.0727 +v -58.5276 9.22694 80.5567 +v -63.4703 9.22694 76.7227 +v -68.1626 9.22694 72.586 +v -72.5858 9.22694 68.1628 +v -76.7225 9.22694 63.4706 +v -80.5565 9.22694 58.5279 +v -84.0725 9.22694 53.3543 +v -87.2567 9.22694 47.97 +v -90.0966 9.22694 42.3965 +v -92.5809 9.22694 36.6556 +v -94.6999 9.22694 30.7701 +v -96.4451 9.22694 24.7631 +v -97.8096 9.22694 18.6584 +v -98.7882 9.22694 12.4801 +v -99.3769 9.22694 6.2525 +v -99.5734 9.22694 0.000252437 +v -99.3769 9.22694 -6.25202 +v -98.7883 9.22694 -12.4796 +v -97.8097 9.22694 -18.6579 +v -96.4452 9.22694 -24.7626 +v -94.7 9.22694 -30.7696 +v -92.5811 9.22694 -36.6552 +v -90.0968 9.22694 -42.396 +v -87.257 9.22694 -47.9696 +v -84.0728 9.22694 -53.3539 +v -80.5568 9.22694 -58.5275 +v -76.7228 9.22694 -63.4703 +v -72.5861 9.22694 -68.1625 +v -68.1629 9.22694 -72.5857 +v -63.4707 9.22694 -76.7224 +v -58.528 9.22694 -80.5564 +v -53.3544 9.22694 -84.0724 +v -47.9701 9.22694 -87.2567 +v -42.3966 9.22694 -90.0966 +v -36.6557 9.22694 -92.5809 +v -30.7702 9.22694 -94.6998 +v -24.7632 9.22694 -96.445 +v -18.6585 9.22694 -97.8096 +v -12.4802 9.22694 -98.7882 +v -6.25265 9.22694 -99.3769 +v -0.000378655 9.22694 -99.5734 +v 6.25189 9.22694 -99.3769 +v 12.4795 9.22694 -98.7883 +v 18.6578 9.22694 -97.8098 +v 24.7625 9.22694 -96.4452 +v 30.7695 9.22694 -94.7001 +v 36.655 9.22694 -92.5812 +v 42.3959 9.22694 -90.0969 +v 47.9695 9.22694 -87.257 +v 53.3538 9.22694 -84.0728 +v 58.5275 9.22694 -80.5568 +v 63.4702 9.22694 -76.7229 +v 68.1624 9.22694 -72.5862 +v 72.5856 9.22694 -68.163 +v 76.7224 9.22694 -63.4708 +v 80.5563 9.22694 -58.5281 +v 84.0724 9.22694 -53.3545 +v 87.2566 9.22694 -47.9702 +v 90.0965 9.22694 -42.3967 +v 92.5808 9.22694 -36.6559 +v 94.6998 9.22694 -30.7703 +v 96.445 9.22694 -24.7634 +v 97.8096 9.22694 -18.6587 +v 98.7882 9.22694 -12.4803 +v 99.3769 9.22694 -6.25273 +v 99.9526 3.07963 5.88009e-39 +v 99.7553 3.07963 6.27607 +v 99.1644 3.07963 12.5274 +v 98.1821 3.07963 18.7292 +v 96.8124 3.07963 24.8572 +v 95.0605 3.07963 30.887 +v 92.9336 3.07963 36.795 +v 90.4398 3.07963 42.5577 +v 87.5891 3.07963 48.1525 +v 84.3928 3.07963 53.5572 +v 80.8633 3.07963 58.7506 +v 77.0148 3.07963 63.7121 +v 72.8623 3.07963 68.4222 +v 68.4223 3.07963 72.8622 +v 63.7122 3.07963 77.0147 +v 58.7507 3.07963 80.8633 +v 53.5573 3.07963 84.3927 +v 48.1526 3.07963 87.5891 +v 42.5578 3.07963 90.4398 +v 36.7951 3.07963 92.9335 +v 30.8871 3.07963 95.0605 +v 24.8573 3.07963 96.8123 +v 18.7294 3.07963 98.1821 +v 12.5275 3.07963 99.1644 +v 6.27619 3.07963 99.7553 +v 0.000126699 3.07963 99.9526 +v -6.27595 3.07963 99.7553 +v -12.5272 3.07963 99.1644 +v -18.7291 3.07963 98.1822 +v -24.8571 3.07963 96.8124 +v -30.8869 3.07963 95.0606 +v -36.7949 3.07963 92.9336 +v -42.5576 3.07963 90.4399 +v -48.1524 3.07963 87.5892 +v -53.5571 3.07963 84.3928 +v -58.7505 3.07963 80.8634 +v -63.712 3.07963 77.0149 +v -68.4221 3.07963 72.8624 +v -72.8622 3.07963 68.4224 +v -77.0147 3.07963 63.7123 +v -80.8632 3.07963 58.7508 +v -84.3926 3.07963 53.5574 +v -87.589 3.07963 48.1527 +v -90.4397 3.07963 42.5579 +v -92.9335 3.07963 36.7952 +v -95.0605 3.07963 30.8873 +v -96.8123 3.07963 24.8574 +v -98.1821 3.07963 18.7295 +v -99.1644 3.07963 12.5276 +v -99.7553 3.07963 6.27631 +v -99.9526 3.07963 0.000253398 +v -99.7553 3.07963 -6.27582 +v -99.1644 3.07963 -12.5271 +v -98.1822 3.07963 -18.729 +v -96.8124 3.07963 -24.8569 +v -95.0606 3.07963 -30.8868 +v -92.9337 3.07963 -36.7947 +v -90.4399 3.07963 -42.5575 +v -87.5892 3.07963 -48.1523 +v -84.3929 3.07963 -53.557 +v -80.8635 3.07963 -58.7504 +v -77.015 3.07963 -63.7119 +v -72.8625 3.07963 -68.422 +v -68.4225 3.07963 -72.8621 +v -63.7124 3.07963 -77.0146 +v -58.7509 3.07963 -80.8631 +v -53.5575 3.07963 -84.3926 +v -48.1528 3.07963 -87.589 +v -42.5581 3.07963 -90.4396 +v -36.7953 3.07963 -92.9334 +v -30.8874 3.07963 -95.0604 +v -24.8575 3.07963 -96.8123 +v -18.7296 3.07963 -98.1821 +v -12.5277 3.07963 -99.1644 +v -6.27646 3.07963 -99.7553 +v -0.000380097 3.07963 -99.9526 +v 6.2757 3.07963 -99.7554 +v 12.527 3.07963 -99.1645 +v 18.7289 3.07963 -98.1822 +v 24.8568 3.07963 -96.8125 +v 30.8867 3.07963 -95.0607 +v 36.7946 3.07963 -92.9337 +v 42.5574 3.07963 -90.44 +v 48.1522 3.07963 -87.5893 +v 53.5569 3.07963 -84.393 +v 58.7503 3.07963 -80.8636 +v 63.7119 3.07963 -77.015 +v 68.4219 3.07963 -72.8626 +v 72.862 3.07963 -68.4226 +v 77.0145 3.07963 -63.7125 +v 80.8631 3.07963 -58.751 +v 84.3925 3.07963 -53.5576 +v 87.5889 3.07963 -48.1529 +v 90.4396 3.07963 -42.5582 +v 92.9334 3.07963 -36.7954 +v 95.0604 3.07963 -30.8875 +v 96.8123 3.07963 -24.8576 +v 98.182 3.07963 -18.7297 +v 99.1644 3.07963 -12.5278 +v 99.7553 3.07963 -6.27653 +v 99.9526 -3.07938 5.88009e-39 +v 99.7553 -3.07938 6.27607 +v 99.1644 -3.07938 12.5274 +v 98.1821 -3.07938 18.7292 +v 96.8124 -3.07938 24.8572 +v 95.0606 -3.07938 30.887 +v 92.9336 -3.07938 36.795 +v 90.4398 -3.07938 42.5577 +v 87.5891 -3.07938 48.1525 +v 84.3928 -3.07938 53.5572 +v 80.8634 -3.07938 58.7506 +v 77.0148 -3.07938 63.7121 +v 72.8623 -3.07938 68.4222 +v 68.4223 -3.07938 72.8623 +v 63.7122 -3.07938 77.0147 +v 58.7507 -3.07938 80.8633 +v 53.5573 -3.07938 84.3927 +v 48.1526 -3.07938 87.5891 +v 42.5578 -3.07938 90.4398 +v 36.7951 -3.07938 92.9335 +v 30.8871 -3.07938 95.0605 +v 24.8573 -3.07938 96.8124 +v 18.7294 -3.07938 98.1821 +v 12.5275 -3.07938 99.1644 +v 6.27619 -3.07938 99.7553 +v 0.000126699 -3.07938 99.9526 +v -6.27595 -3.07938 99.7553 +v -12.5272 -3.07938 99.1644 +v -18.7291 -3.07938 98.1822 +v -24.8571 -3.07938 96.8124 +v -30.8869 -3.07938 95.0606 +v -36.7949 -3.07938 92.9336 +v -42.5576 -3.07938 90.4399 +v -48.1524 -3.07938 87.5892 +v -53.5571 -3.07938 84.3928 +v -58.7505 -3.07938 80.8634 +v -63.712 -3.07938 77.0149 +v -68.4221 -3.07938 72.8624 +v -72.8622 -3.07938 68.4224 +v -77.0147 -3.07938 63.7123 +v -80.8632 -3.07938 58.7508 +v -84.3926 -3.07938 53.5574 +v -87.589 -3.07938 48.1527 +v -90.4397 -3.07938 42.5579 +v -92.9335 -3.07938 36.7952 +v -95.0605 -3.07938 30.8873 +v -96.8123 -3.07938 24.8574 +v -98.1821 -3.07938 18.7295 +v -99.1644 -3.07938 12.5276 +v -99.7553 -3.07938 6.27631 +v -99.9526 -3.07938 0.000253398 +v -99.7554 -3.07938 -6.27582 +v -99.1645 -3.07938 -12.5271 +v -98.1822 -3.07938 -18.729 +v -96.8124 -3.07938 -24.8569 +v -95.0606 -3.07938 -30.8868 +v -92.9337 -3.07938 -36.7947 +v -90.4399 -3.07938 -42.5575 +v -87.5892 -3.07938 -48.1523 +v -84.3929 -3.07938 -53.557 +v -80.8635 -3.07938 -58.7504 +v -77.015 -3.07938 -63.7119 +v -72.8625 -3.07938 -68.422 +v -68.4225 -3.07938 -72.8621 +v -63.7124 -3.07938 -77.0146 +v -58.7509 -3.07938 -80.8632 +v -53.5575 -3.07938 -84.3926 +v -48.1528 -3.07938 -87.589 +v -42.5581 -3.07938 -90.4396 +v -36.7953 -3.07938 -92.9334 +v -30.8874 -3.07938 -95.0604 +v -24.8575 -3.07938 -96.8123 +v -18.7296 -3.07938 -98.1821 +v -12.5277 -3.07938 -99.1644 +v -6.27646 -3.07938 -99.7553 +v -0.000380097 -3.07938 -99.9526 +v 6.2757 -3.07938 -99.7554 +v 12.527 -3.07938 -99.1645 +v 18.7289 -3.07938 -98.1822 +v 24.8568 -3.07938 -96.8125 +v 30.8867 -3.07938 -95.0607 +v 36.7946 -3.07938 -92.9337 +v 42.5574 -3.07938 -90.44 +v 48.1522 -3.07938 -87.5893 +v 53.5569 -3.07938 -84.393 +v 58.7503 -3.07938 -80.8636 +v 63.7119 -3.07938 -77.015 +v 68.4219 -3.07938 -72.8626 +v 72.862 -3.07938 -68.4226 +v 77.0145 -3.07938 -63.7125 +v 80.8631 -3.07938 -58.751 +v 84.3925 -3.07938 -53.5576 +v 87.5889 -3.07938 -48.1529 +v 90.4396 -3.07938 -42.5582 +v 92.9334 -3.07938 -36.7954 +v 95.0604 -3.07938 -30.8875 +v 96.8123 -3.07938 -24.8576 +v 98.1821 -3.07938 -18.7297 +v 99.1644 -3.07938 -12.5278 +v 99.7553 -3.07938 -6.27654 +v 99.5734 -9.22672 5.88009e-39 +v 99.3769 -9.22672 6.25226 +v 98.7883 -9.22672 12.4798 +v 97.8097 -9.22672 18.6582 +v 96.4451 -9.22672 24.7629 +v 94.7 -9.22672 30.7699 +v 92.581 -9.22672 36.6554 +v 90.0967 -9.22672 42.3963 +v 87.2569 -9.22672 47.9698 +v 84.0726 -9.22672 53.3541 +v 80.5566 -9.22672 58.5278 +v 76.7227 -9.22672 63.4704 +v 72.5859 -9.22672 68.1627 +v 68.1627 -9.22672 72.5859 +v 63.4705 -9.22672 76.7226 +v 58.5279 -9.22672 80.5565 +v 53.3542 -9.22672 84.0726 +v 47.9699 -9.22672 87.2568 +v 42.3964 -9.22672 90.0967 +v 36.6555 -9.22672 92.581 +v 30.77 -9.22672 94.6999 +v 24.763 -9.22672 96.4451 +v 18.6583 -9.22672 97.8097 +v 12.48 -9.22672 98.7882 +v 6.25238 -9.22672 99.3769 +v 0.000126218 -9.22672 99.5734 +v -6.25214 -9.22672 99.3769 +v -12.4797 -9.22672 98.7883 +v -18.6581 -9.22672 97.8097 +v -24.7628 -9.22672 96.4452 +v -30.7697 -9.22672 94.7 +v -36.6553 -9.22672 92.5811 +v -42.3962 -9.22672 90.0968 +v -47.9697 -9.22672 87.2569 +v -53.354 -9.22672 84.0727 +v -58.5277 -9.22672 80.5567 +v -63.4704 -9.22672 76.7227 +v -68.1626 -9.22672 72.586 +v -72.5858 -9.22672 68.1628 +v -76.7225 -9.22672 63.4706 +v -80.5565 -9.22672 58.5279 +v -84.0725 -9.22672 53.3543 +v -87.2568 -9.22672 47.97 +v -90.0966 -9.22672 42.3965 +v -92.5809 -9.22672 36.6556 +v -94.6999 -9.22672 30.7701 +v -96.4451 -9.22672 24.7631 +v -97.8097 -9.22672 18.6584 +v -98.7882 -9.22672 12.4801 +v -99.3769 -9.22672 6.2525 +v -99.5734 -9.22672 0.000252437 +v -99.377 -9.22672 -6.25202 +v -98.7883 -9.22672 -12.4796 +v -97.8098 -9.22672 -18.6579 +v -96.4452 -9.22672 -24.7626 +v -94.7 -9.22672 -30.7696 +v -92.5811 -9.22672 -36.6552 +v -90.0968 -9.22672 -42.396 +v -87.257 -9.22672 -47.9696 +v -84.0728 -9.22672 -53.3539 +v -80.5568 -9.22672 -58.5275 +v -76.7228 -9.22672 -63.4703 +v -72.5861 -9.22672 -68.1625 +v -68.1629 -9.22672 -72.5857 +v -63.4707 -9.22672 -76.7224 +v -58.528 -9.22672 -80.5564 +v -53.3544 -9.22672 -84.0725 +v -47.9701 -9.22672 -87.2567 +v -42.3966 -9.22672 -90.0966 +v -36.6557 -9.22672 -92.5809 +v -30.7702 -9.22672 -94.6999 +v -24.7632 -9.22672 -96.4451 +v -18.6585 -9.22672 -97.8096 +v -12.4802 -9.22672 -98.7882 +v -6.25265 -9.22672 -99.3769 +v -0.000378655 -9.22672 -99.5734 +v 6.25189 -9.22672 -99.377 +v 12.4795 -9.22672 -98.7883 +v 18.6578 -9.22672 -97.8098 +v 24.7625 -9.22672 -96.4452 +v 30.7695 -9.22672 -94.7001 +v 36.655 -9.22672 -92.5812 +v 42.3959 -9.22672 -90.0969 +v 47.9695 -9.22672 -87.257 +v 53.3538 -9.22672 -84.0728 +v 58.5275 -9.22672 -80.5568 +v 63.4702 -9.22672 -76.7229 +v 68.1624 -9.22672 -72.5862 +v 72.5856 -9.22672 -68.163 +v 76.7224 -9.22672 -63.4708 +v 80.5563 -9.22672 -58.5281 +v 84.0724 -9.22672 -53.3545 +v 87.2567 -9.22672 -47.9702 +v 90.0965 -9.22672 -42.3967 +v 92.5809 -9.22672 -36.6559 +v 94.6998 -9.22672 -30.7703 +v 96.445 -9.22672 -24.7634 +v 97.8096 -9.22672 -18.6587 +v 98.7882 -9.22672 -12.4803 +v 99.3769 -9.22672 -6.25273 +v 98.8166 -15.339 5.88009e-39 +v 98.6216 -15.339 6.20474 +v 98.0374 -15.339 12.385 +v 97.0663 -15.339 18.5164 +v 95.7121 -15.339 24.5747 +v 93.9801 -15.339 30.536 +v 91.8773 -15.339 36.3768 +v 89.4119 -15.339 42.074 +v 86.5936 -15.339 47.6052 +v 83.4336 -15.339 52.9485 +v 79.9443 -15.339 58.0829 +v 76.1395 -15.339 62.988 +v 72.0342 -15.339 67.6446 +v 67.6446 -15.339 72.0341 +v 62.9881 -15.339 76.1394 +v 58.083 -15.339 79.9442 +v 52.9486 -15.339 83.4335 +v 47.6053 -15.339 86.5936 +v 42.0741 -15.339 89.4119 +v 36.3769 -15.339 91.8773 +v 30.5361 -15.339 93.9801 +v 24.5748 -15.339 95.712 +v 18.5165 -15.339 97.0662 +v 12.3851 -15.339 98.0374 +v 6.20486 -15.339 98.6216 +v 0.000125259 -15.339 98.8166 +v -6.20462 -15.339 98.6216 +v -12.3849 -15.339 98.0374 +v -18.5162 -15.339 97.0663 +v -24.5745 -15.339 95.7121 +v -30.5359 -15.339 93.9802 +v -36.3767 -15.339 91.8774 +v -42.0739 -15.339 89.412 +v -47.6051 -15.339 86.5937 +v -52.9484 -15.339 83.4337 +v -58.0828 -15.339 79.9444 +v -62.9879 -15.339 76.1396 +v -67.6445 -15.339 72.0343 +v -72.034 -15.339 67.6447 +v -76.1394 -15.339 62.9882 +v -79.9442 -15.339 58.0831 +v -83.4335 -15.339 52.9487 +v -86.5935 -15.339 47.6054 +v -89.4118 -15.339 42.0742 +v -91.8772 -15.339 36.377 +v -93.9801 -15.339 30.5362 +v -95.712 -15.339 24.5749 +v -97.0662 -15.339 18.5166 +v -98.0373 -15.339 12.3852 +v -98.6216 -15.339 6.20497 +v -98.8166 -15.339 0.000250518 +v -98.6216 -15.339 -6.2045 +v -98.0374 -15.339 -12.3848 +v -97.0663 -15.339 -18.5161 +v -95.7121 -15.339 -24.5744 +v -93.9802 -15.339 -30.5357 +v -91.8774 -15.339 -36.3765 +v -89.412 -15.339 -42.0738 +v -86.5938 -15.339 -47.605 +v -83.4337 -15.339 -52.9483 +v -79.9445 -15.339 -58.0827 +v -76.1397 -15.339 -62.9878 +v -72.0344 -15.339 -67.6444 +v -67.6448 -15.339 -72.034 +v -62.9883 -15.339 -76.1393 +v -58.0832 -15.339 -79.9441 +v -52.9488 -15.339 -83.4334 +v -47.6055 -15.339 -86.5935 +v -42.0744 -15.339 -89.4118 +v -36.3771 -15.339 -91.8772 +v -30.5363 -15.339 -93.98 +v -24.575 -15.339 -95.712 +v -18.5167 -15.339 -97.0662 +v -12.3853 -15.339 -98.0373 +v -6.20512 -15.339 -98.6216 +v -0.000375777 -15.339 -98.8166 +v 6.20437 -15.339 -98.6216 +v 12.3846 -15.339 -98.0374 +v 18.516 -15.339 -97.0663 +v 24.5743 -15.339 -95.7122 +v 30.5357 -15.339 -93.9803 +v 36.3764 -15.339 -91.8775 +v 42.0737 -15.339 -89.4121 +v 47.6049 -15.339 -86.5938 +v 52.9482 -15.339 -83.4338 +v 58.0826 -15.339 -79.9445 +v 62.9877 -15.339 -76.1397 +v 67.6443 -15.339 -72.0345 +v 72.0339 -15.339 -67.6449 +v 76.1392 -15.339 -62.9884 +v 79.944 -15.339 -58.0833 +v 83.4334 -15.339 -52.9489 +v 86.5934 -15.339 -47.6056 +v 89.4117 -15.339 -42.0745 +v 91.8771 -15.339 -36.3772 +v 93.98 -15.339 -30.5364 +v 95.7119 -15.339 -24.5751 +v 97.0662 -15.339 -18.5168 +v 98.0373 -15.339 -12.3855 +v 98.6215 -15.339 -6.2052 +v 97.6849 -21.3932 5.88009e-39 +v 97.4921 -21.3932 6.13368 +v 96.9146 -21.3932 12.2431 +v 95.9546 -21.3932 18.3043 +v 94.6159 -21.3932 24.2932 +v 92.9038 -21.3932 30.1863 +v 90.8251 -21.3932 35.9602 +v 88.3879 -21.3932 41.5922 +v 85.6019 -21.3932 47.06 +v 82.4781 -21.3932 52.3421 +v 79.0287 -21.3932 57.4177 +v 75.2675 -21.3932 62.2666 +v 71.2092 -21.3932 66.8699 +v 66.8699 -21.3932 71.2092 +v 62.2667 -21.3932 75.2674 +v 57.4178 -21.3932 79.0287 +v 52.3422 -21.3932 82.478 +v 47.0601 -21.3932 85.6019 +v 41.5923 -21.3932 88.3879 +v 35.9603 -21.3932 90.8251 +v 30.1864 -21.3932 92.9038 +v 24.2933 -21.3932 94.6159 +v 18.3044 -21.3932 95.9546 +v 12.2433 -21.3932 96.9146 +v 6.1338 -21.3932 97.4921 +v 0.000123824 -21.3932 97.6849 +v -6.13356 -21.3932 97.4921 +v -12.243 -21.3932 96.9146 +v -18.3042 -21.3932 95.9546 +v -24.2931 -21.3932 94.6159 +v -30.1861 -21.3932 92.9039 +v -35.9601 -21.3932 90.8251 +v -41.5921 -21.3932 88.388 +v -47.0599 -21.3932 85.602 +v -52.342 -21.3932 82.4781 +v -57.4176 -21.3932 79.0288 +v -62.2665 -21.3932 75.2676 +v -66.8698 -21.3932 71.2093 +v -71.2091 -21.3932 66.87 +v -75.2674 -21.3932 62.2668 +v -79.0286 -21.3932 57.4179 +v -82.478 -21.3932 52.3423 +v -85.6018 -21.3932 47.0602 +v -88.3878 -21.3932 41.5924 +v -90.825 -21.3932 35.9604 +v -92.9038 -21.3932 30.1865 +v -94.6159 -21.3932 24.2934 +v -95.9546 -21.3932 18.3045 +v -96.9146 -21.3932 12.2434 +v -97.4921 -21.3932 6.13391 +v -97.6849 -21.3932 0.000247649 +v -97.4921 -21.3932 -6.13344 +v -96.9146 -21.3932 -12.2429 +v -95.9546 -21.3932 -18.3041 +v -94.616 -21.3932 -24.293 +v -92.9039 -21.3932 -30.186 +v -90.8252 -21.3932 -35.9599 +v -88.388 -21.3932 -41.5919 +v -85.602 -21.3932 -47.0598 +v -82.4782 -21.3932 -52.3419 +v -79.0289 -21.3932 -57.4175 +v -75.2677 -21.3932 -62.2664 +v -71.2094 -21.3932 -66.8697 +v -66.8701 -21.3932 -71.209 +v -62.2669 -21.3932 -75.2673 +v -57.418 -21.3932 -79.0285 +v -52.3424 -21.3932 -82.4779 +v -47.0603 -21.3932 -85.6018 +v -41.5925 -21.3932 -88.3878 +v -35.9605 -21.3932 -90.825 +v -30.1866 -21.3932 -92.9037 +v -24.2936 -21.3932 -94.6158 +v -18.3046 -21.3932 -95.9545 +v -12.2435 -21.3932 -96.9145 +v -6.13406 -21.3932 -97.4921 +v -0.000371473 -21.3932 -97.6849 +v 6.13332 -21.3932 -97.4921 +v 12.2428 -21.3932 -96.9146 +v 18.304 -21.3932 -95.9547 +v 24.2929 -21.3932 -94.616 +v 30.1859 -21.3932 -92.9039 +v 35.9598 -21.3932 -90.8252 +v 41.5918 -21.3932 -88.3881 +v 47.0597 -21.3932 -85.6021 +v 52.3418 -21.3932 -82.4783 +v 57.4174 -21.3932 -79.0289 +v 62.2664 -21.3932 -75.2677 +v 66.8696 -21.3932 -71.2095 +v 71.2089 -21.3932 -66.8702 +v 75.2672 -21.3932 -62.267 +v 79.0285 -21.3932 -57.4181 +v 82.4778 -21.3932 -52.3425 +v 85.6017 -21.3932 -47.0604 +v 88.3877 -21.3932 -41.5926 +v 90.8249 -21.3932 -35.9606 +v 92.9037 -21.3932 -30.1867 +v 94.6158 -21.3932 -24.2937 +v 95.9545 -21.3932 -18.3048 +v 96.9145 -21.3932 -12.2436 +v 97.4921 -21.3932 -6.13413 +v 96.1826 -27.3662 5.88009e-39 +v 95.9928 -27.3662 6.03935 +v 95.4242 -27.3662 12.0549 +v 94.4789 -27.3662 18.0228 +v 93.1609 -27.3662 23.9196 +v 91.4751 -27.3662 29.722 +v 89.4283 -27.3662 35.4072 +v 87.0286 -27.3662 40.9525 +v 84.2855 -27.3662 46.3363 +v 81.2097 -27.3662 51.5372 +v 77.8134 -27.3662 56.5347 +v 74.11 -27.3662 61.3091 +v 70.1141 -27.3662 65.8415 +v 65.8416 -27.3662 70.1141 +v 61.3092 -27.3662 74.1099 +v 56.5348 -27.3662 77.8133 +v 51.5373 -27.3662 81.2096 +v 46.3364 -27.3662 84.2854 +v 40.9526 -27.3662 87.0286 +v 35.4073 -27.3662 89.4283 +v 29.7221 -27.3662 91.4751 +v 23.9197 -27.3662 93.1608 +v 18.0229 -27.3662 94.4789 +v 12.055 -27.3662 95.4242 +v 6.03947 -27.3662 95.9928 +v 0.00012192 -27.3662 96.1826 +v -6.03924 -27.3662 95.9928 +v -12.0547 -27.3662 95.4242 +v -18.0227 -27.3662 94.479 +v -23.9195 -27.3662 93.1609 +v -29.7219 -27.3662 91.4751 +v -35.407 -27.3662 89.4284 +v -40.9524 -27.3662 87.0287 +v -46.3362 -27.3662 84.2855 +v -51.5371 -27.3662 81.2097 +v -56.5346 -27.3662 77.8135 +v -61.309 -27.3662 74.1101 +v -65.8414 -27.3662 70.1142 +v -70.114 -27.3662 65.8417 +v -74.1099 -27.3662 61.3092 +v -77.8133 -27.3662 56.5349 +v -81.2095 -27.3662 51.5374 +v -84.2854 -27.3662 46.3365 +v -87.0285 -27.3662 40.9527 +v -89.4282 -27.3662 35.4074 +v -91.475 -27.3662 29.7223 +v -93.1608 -27.3662 23.9198 +v -94.4789 -27.3662 18.023 +v -95.4241 -27.3662 12.0551 +v -95.9928 -27.3662 6.03958 +v -96.1826 -27.3662 0.00024384 +v -95.9928 -27.3662 -6.03911 +v -95.4242 -27.3662 -12.0546 +v -94.479 -27.3662 -18.0226 +v -93.1609 -27.3662 -23.9194 +v -91.4752 -27.3662 -29.7218 +v -89.4284 -27.3662 -35.4069 +v -87.0287 -27.3662 -40.9523 +v -84.2856 -27.3662 -46.3361 +v -81.2098 -27.3662 -51.537 +v -77.8135 -27.3662 -56.5345 +v -74.1102 -27.3662 -61.3089 +v -70.1143 -27.3662 -65.8413 +v -65.8417 -27.3662 -70.1139 +v -61.3093 -27.3662 -74.1098 +v -56.535 -27.3662 -77.8132 +v -51.5375 -27.3662 -81.2095 +v -46.3366 -27.3662 -84.2853 +v -40.9529 -27.3662 -87.0285 +v -35.4075 -27.3662 -89.4282 +v -29.7224 -27.3662 -91.475 +v -23.92 -27.3662 -93.1608 +v -18.0231 -27.3662 -94.4789 +v -12.0552 -27.3662 -95.4241 +v -6.03972 -27.3662 -95.9928 +v -0.000365761 -27.3662 -96.1826 +v 6.03899 -27.3662 -95.9928 +v 12.0545 -27.3662 -95.4242 +v 18.0225 -27.3662 -94.479 +v 23.9193 -27.3662 -93.1609 +v 29.7217 -27.3662 -91.4752 +v 35.4068 -27.3662 -89.4285 +v 40.9522 -27.3662 -87.0288 +v 46.336 -27.3662 -84.2856 +v 51.5369 -27.3662 -81.2099 +v 56.5344 -27.3662 -77.8136 +v 61.3088 -27.3662 -74.1102 +v 65.8412 -27.3662 -70.1144 +v 70.1138 -27.3662 -65.8418 +v 74.1097 -27.3662 -61.3094 +v 77.8131 -27.3662 -56.5351 +v 81.2094 -27.3662 -51.5376 +v 84.2853 -27.3662 -46.3367 +v 87.0284 -27.3662 -40.953 +v 89.4282 -27.3662 -35.4076 +v 91.475 -27.3662 -29.7225 +v 93.1607 -27.3662 -23.9201 +v 94.4789 -27.3662 -18.0233 +v 95.4241 -27.3662 -12.0553 +v 95.9928 -27.3662 -6.0398 +v 94.3155 -33.2353 5.88009e-39 +v 94.1294 -33.2353 5.92211 +v 93.5718 -33.2353 11.8209 +v 92.6449 -33.2353 17.6729 +v 91.3524 -33.2353 23.4553 +v 89.6994 -33.2353 29.1451 +v 87.6923 -33.2353 34.7198 +v 85.3392 -33.2353 40.1576 +v 82.6493 -33.2353 45.4368 +v 79.6332 -33.2353 50.5367 +v 76.3029 -33.2353 55.4372 +v 72.6714 -33.2353 60.1189 +v 68.7531 -33.2353 64.5634 +v 64.5634 -33.2353 68.753 +v 60.119 -33.2353 72.6713 +v 55.4373 -33.2353 76.3028 +v 50.5368 -33.2353 79.6332 +v 45.4369 -33.2353 82.6493 +v 40.1577 -33.2353 85.3392 +v 34.7199 -33.2353 87.6923 +v 29.1452 -33.2353 89.6993 +v 23.4554 -33.2353 91.3524 +v 17.6731 -33.2353 92.6449 +v 11.821 -33.2353 93.5718 +v 5.92223 -33.2353 94.1294 +v 0.000119553 -33.2353 94.3155 +v -5.922 -33.2353 94.1294 +v -11.8207 -33.2353 93.5718 +v -17.6728 -33.2353 92.6449 +v -23.4552 -33.2353 91.3524 +v -29.145 -33.2353 89.6994 +v -34.7197 -33.2353 87.6924 +v -40.1574 -33.2353 85.3393 +v -45.4367 -33.2353 82.6494 +v -50.5366 -33.2353 79.6333 +v -55.4371 -33.2353 76.3029 +v -60.1188 -33.2353 72.6714 +v -64.5633 -33.2353 68.7532 +v -68.7529 -33.2353 64.5635 +v -72.6712 -33.2353 60.1191 +v -76.3027 -33.2353 55.4374 +v -79.6331 -33.2353 50.5369 +v -82.6492 -33.2353 45.437 +v -85.3391 -33.2353 40.1578 +v -87.6922 -33.2353 34.72 +v -89.6993 -33.2353 29.1453 +v -91.3523 -33.2353 23.4555 +v -92.6449 -33.2353 17.6732 +v -93.5718 -33.2353 11.8211 +v -94.1294 -33.2353 5.92234 +v -94.3155 -33.2353 0.000239107 +v -94.1294 -33.2353 -5.92188 +v -93.5718 -33.2353 -11.8206 +v -92.645 -33.2353 -17.6727 +v -91.3525 -33.2353 -23.4551 +v -89.6994 -33.2353 -29.1449 +v -87.6924 -33.2353 -34.7196 +v -85.3393 -33.2353 -40.1573 +v -82.6494 -33.2353 -45.4366 +v -79.6333 -33.2353 -50.5365 +v -76.303 -33.2353 -55.437 +v -72.6715 -33.2353 -60.1187 +v -68.7532 -33.2353 -64.5632 +v -64.5636 -33.2353 -68.7528 +v -60.1192 -33.2353 -72.6711 +v -55.4375 -33.2353 -76.3027 +v -50.537 -33.2353 -79.633 +v -45.4371 -33.2353 -82.6492 +v -40.1579 -33.2353 -85.3391 +v -34.7202 -33.2353 -87.6922 +v -29.1454 -33.2353 -89.6993 +v -23.4556 -33.2353 -91.3523 +v -17.6733 -33.2353 -92.6448 +v -11.8212 -33.2353 -93.5717 +v -5.92248 -33.2353 -94.1294 +v -0.00035866 -33.2353 -94.3155 +v 5.92176 -33.2353 -94.1294 +v 11.8205 -33.2353 -93.5718 +v 17.6726 -33.2353 -92.645 +v 23.455 -33.2353 -91.3525 +v 29.1448 -33.2353 -89.6995 +v 34.7195 -33.2353 -87.6925 +v 40.1572 -33.2353 -85.3394 +v 45.4365 -33.2353 -82.6495 +v 50.5364 -33.2353 -79.6334 +v 55.4369 -33.2353 -76.3031 +v 60.1187 -33.2353 -72.6716 +v 64.5631 -33.2353 -68.7533 +v 68.7527 -33.2353 -64.5637 +v 72.6711 -33.2353 -60.1193 +v 76.3026 -33.2353 -55.4376 +v 79.633 -33.2353 -50.5371 +v 82.6491 -33.2353 -45.4372 +v 85.339 -33.2353 -40.158 +v 87.6922 -33.2353 -34.7203 +v 89.6992 -33.2353 -29.1455 +v 91.3523 -33.2353 -23.4557 +v 92.6448 -33.2353 -17.6734 +v 93.5717 -33.2353 -11.8213 +v 94.1294 -33.2353 -5.92255 +v 92.0906 -38.9785 5.88009e-39 +v 91.9089 -38.9785 5.78241 +v 91.3644 -38.9785 11.542 +v 90.4594 -38.9785 17.256 +v 89.1974 -38.9785 22.902 +v 87.5834 -38.9785 28.4575 +v 85.6237 -38.9785 33.9008 +v 83.3261 -38.9785 39.2102 +v 80.6996 -38.9785 44.365 +v 77.7547 -38.9785 49.3446 +v 74.5029 -38.9785 54.1295 +v 70.9571 -38.9785 58.7007 +v 67.1312 -38.9785 63.0403 +v 63.0404 -38.9785 67.1311 +v 58.7008 -38.9785 70.957 +v 54.1296 -38.9785 74.5028 +v 49.3447 -38.9785 77.7546 +v 44.3651 -38.9785 80.6996 +v 39.2103 -38.9785 83.326 +v 33.9009 -38.9785 85.6236 +v 28.4576 -38.9785 87.5833 +v 22.9021 -38.9785 89.1974 +v 17.2562 -38.9785 90.4594 +v 11.5421 -38.9785 91.3644 +v 5.78253 -38.9785 91.9089 +v 0.000116733 -38.9785 92.0906 +v -5.7823 -38.9785 91.9089 +v -11.5419 -38.9785 91.3645 +v -17.2559 -38.9785 90.4594 +v -22.9019 -38.9785 89.1974 +v -28.4574 -38.9785 87.5834 +v -33.9007 -38.9785 85.6237 +v -39.2101 -38.9785 83.3261 +v -44.3649 -38.9785 80.6997 +v -49.3445 -38.9785 77.7548 +v -54.1294 -38.9785 74.503 +v -58.7006 -38.9785 70.9571 +v -63.0402 -38.9785 67.1313 +v -67.131 -38.9785 63.0405 +v -70.9569 -38.9785 58.7009 +v -74.5028 -38.9785 54.1296 +v -77.7546 -38.9785 49.3448 +v -80.6995 -38.9785 44.3652 +v -83.326 -38.9785 39.2104 +v -85.6236 -38.9785 33.901 +v -87.5833 -38.9785 28.4578 +v -89.1974 -38.9785 22.9022 +v -90.4594 -38.9785 17.2563 +v -91.3644 -38.9785 11.5422 +v -91.9089 -38.9785 5.78263 +v -92.0906 -38.9785 0.000233466 +v -91.9089 -38.9785 -5.78219 +v -91.3645 -38.9785 -11.5418 +v -90.4595 -38.9785 -17.2558 +v -89.1975 -38.9785 -22.9018 +v -87.5835 -38.9785 -28.4573 +v -85.6238 -38.9785 -33.9006 +v -83.3262 -38.9785 -39.21 +v -80.6997 -38.9785 -44.3648 +v -77.7548 -38.9785 -49.3444 +v -74.503 -38.9785 -54.1293 +v -70.9572 -38.9785 -58.7006 +v -67.1313 -38.9785 -63.0402 +v -63.0406 -38.9785 -67.131 +v -58.701 -38.9785 -70.9568 +v -54.1297 -38.9785 -74.5027 +v -49.3449 -38.9785 -77.7545 +v -44.3652 -38.9785 -80.6995 +v -39.2106 -38.9785 -83.3259 +v -33.9011 -38.9785 -85.6236 +v -28.4579 -38.9785 -87.5833 +v -22.9023 -38.9785 -89.1973 +v -17.2564 -38.9785 -90.4594 +v -11.5423 -38.9785 -91.3644 +v -5.78277 -38.9785 -91.9089 +v -0.0003502 -38.9785 -92.0906 +v 5.78207 -38.9785 -91.9089 +v 11.5417 -38.9785 -91.3645 +v 17.2557 -38.9785 -90.4595 +v 22.9017 -38.9785 -89.1975 +v 28.4572 -38.9785 -87.5835 +v 33.9005 -38.9785 -85.6238 +v 39.2099 -38.9785 -83.3262 +v 44.3647 -38.9785 -80.6998 +v 49.3443 -38.9785 -77.7549 +v 54.1292 -38.9785 -74.5031 +v 58.7005 -38.9785 -70.9573 +v 63.0401 -38.9785 -67.1314 +v 67.1309 -38.9785 -63.0407 +v 70.9568 -38.9785 -58.7011 +v 74.5026 -38.9785 -54.1298 +v 77.7545 -38.9785 -49.345 +v 80.6994 -38.9785 -44.3653 +v 83.3259 -38.9785 -39.2107 +v 85.6235 -38.9785 -33.9012 +v 87.5832 -38.9785 -28.458 +v 89.1973 -38.9785 -22.9024 +v 90.4594 -38.9785 -17.2565 +v 91.3644 -38.9785 -11.5424 +v 91.9089 -38.9785 -5.78284 +v 89.5164 -44.5737 5.88009e-39 +v 89.3398 -44.5737 5.62078 +v 88.8105 -44.5737 11.2194 +v 87.9308 -44.5737 16.7737 +v 86.7041 -44.5737 22.2618 +v 85.1352 -44.5737 27.6621 +v 83.2302 -44.5737 32.9532 +v 80.9969 -44.5737 38.1142 +v 78.4438 -44.5737 43.1248 +v 75.5812 -44.5737 47.9653 +v 72.4203 -44.5737 52.6164 +v 68.9736 -44.5737 57.0599 +v 65.2547 -44.5737 61.2782 +v 61.2782 -44.5737 65.2546 +v 57.0599 -44.5737 68.9735 +v 52.6165 -44.5737 72.4202 +v 47.9653 -44.5737 75.5812 +v 43.1249 -44.5737 78.4438 +v 38.1143 -44.5737 80.9968 +v 32.9533 -44.5737 83.2302 +v 27.6622 -44.5737 85.1351 +v 22.2619 -44.5737 86.704 +v 16.7738 -44.5737 87.9308 +v 11.2195 -44.5737 88.8105 +v 5.62089 -44.5737 89.3398 +v 0.00011347 -44.5737 89.5164 +v -5.62067 -44.5737 89.3398 +v -11.2193 -44.5737 88.8105 +v -16.7736 -44.5737 87.9308 +v -22.2617 -44.5737 86.7041 +v -27.662 -44.5737 85.1352 +v -32.9531 -44.5737 83.2303 +v -38.1141 -44.5737 80.9969 +v -43.1247 -44.5737 78.4439 +v -47.9652 -44.5737 75.5813 +v -52.6163 -44.5737 72.4204 +v -57.0598 -44.5737 68.9737 +v -61.2781 -44.5737 65.2548 +v -65.2545 -44.5737 61.2783 +v -68.9735 -44.5737 57.06 +v -72.4202 -44.5737 52.6166 +v -75.5811 -44.5737 47.9654 +v -78.4437 -44.5737 43.125 +v -80.9968 -44.5737 38.1144 +v -83.2302 -44.5737 32.9534 +v -85.1351 -44.5737 27.6623 +v -86.704 -44.5737 22.262 +v -87.9308 -44.5737 16.7739 +v -88.8105 -44.5737 11.2196 +v -89.3397 -44.5737 5.62099 +v -89.5164 -44.5737 0.00022694 +v -89.3398 -44.5737 -5.62056 +v -88.8106 -44.5737 -11.2192 +v -87.9309 -44.5737 -16.7735 +v -86.7041 -44.5737 -22.2616 +v -85.1352 -44.5737 -27.6619 +v -83.2303 -44.5737 -32.9529 +v -80.997 -44.5737 -38.114 +v -78.4439 -44.5737 -43.1246 +v -75.5813 -44.5737 -47.9651 +v -72.4204 -44.5737 -52.6162 +v -68.9737 -44.5737 -57.0597 +v -65.2548 -44.5737 -61.278 +v -61.2784 -44.5737 -65.2544 +v -57.0601 -44.5737 -68.9734 +v -52.6166 -44.5737 -72.4201 +v -47.9655 -44.5737 -75.581 +v -43.1251 -44.5737 -78.4437 +v -38.1145 -44.5737 -80.9967 +v -32.9535 -44.5737 -83.2301 +v -27.6624 -44.5737 -85.1351 +v -22.2621 -44.5737 -86.704 +v -16.774 -44.5737 -87.9308 +v -11.2197 -44.5737 -88.8105 +v -5.62112 -44.5737 -89.3397 +v -0.00034041 -44.5737 -89.5164 +v 5.62044 -44.5737 -89.3398 +v 11.219 -44.5737 -88.8106 +v 16.7734 -44.5737 -87.9309 +v 22.2615 -44.5737 -86.7042 +v 27.6618 -44.5737 -85.1353 +v 32.9528 -44.5737 -83.2304 +v 38.1139 -44.5737 -80.997 +v 43.1245 -44.5737 -78.444 +v 47.965 -44.5737 -75.5814 +v 52.6161 -44.5737 -72.4205 +v 57.0596 -44.5737 -68.9738 +v 61.2779 -44.5737 -65.2549 +v 65.2544 -44.5737 -61.2785 +v 68.9733 -44.5737 -57.0602 +v 72.4201 -44.5737 -52.6167 +v 75.581 -44.5737 -47.9656 +v 78.4436 -44.5737 -43.1252 +v 80.9967 -44.5737 -38.1146 +v 83.2301 -44.5737 -32.9536 +v 85.135 -44.5737 -27.6625 +v 86.704 -44.5737 -22.2622 +v 87.9307 -44.5737 -16.7741 +v 88.8105 -44.5737 -11.2198 +v 89.3397 -44.5737 -5.62119 +v 86.6026 -49.9999 5.88009e-39 +v 86.4317 -49.9999 5.43782 +v 85.9197 -49.9999 10.8542 +v 85.0687 -49.9999 16.2277 +v 83.8818 -49.9999 21.5372 +v 82.364 -49.9999 26.7617 +v 80.5211 -49.9999 31.8805 +v 78.3604 -49.9999 36.8736 +v 75.8905 -49.9999 41.7211 +v 73.121 -49.9999 46.404 +v 70.063 -49.9999 50.9037 +v 66.7285 -49.9999 55.2026 +v 63.1306 -49.9999 59.2835 +v 59.2836 -49.9999 63.1306 +v 55.2026 -49.9999 66.7284 +v 50.9038 -49.9999 70.063 +v 46.4041 -49.9999 73.121 +v 41.7212 -49.9999 75.8904 +v 36.8737 -49.9999 78.3604 +v 31.8806 -49.9999 80.521 +v 26.7618 -49.9999 82.364 +v 21.5373 -49.9999 83.8818 +v 16.2278 -49.9999 85.0686 +v 10.8543 -49.9999 85.9197 +v 5.43793 -49.9999 86.4317 +v 0.000109777 -49.9999 86.6026 +v -5.43772 -49.9999 86.4317 +v -10.8541 -49.9999 85.9197 +v -16.2276 -49.9999 85.0687 +v -21.5371 -49.9999 83.8819 +v -26.7616 -49.9999 82.364 +v -31.8804 -49.9999 80.5211 +v -36.8735 -49.9999 78.3605 +v -41.721 -49.9999 75.8905 +v -46.4039 -49.9999 73.1211 +v -50.9036 -49.9999 70.0631 +v -55.2025 -49.9999 66.7286 +v -59.2835 -49.9999 63.1307 +v -63.1305 -49.9999 59.2837 +v -66.7284 -49.9999 55.2027 +v -70.0629 -49.9999 50.9039 +v -73.1209 -49.9999 46.4042 +v -75.8904 -49.9999 41.7213 +v -78.3603 -49.9999 36.8738 +v -80.521 -49.9999 31.8807 +v -82.3639 -49.9999 26.7619 +v -83.8818 -49.9999 21.5374 +v -85.0686 -49.9999 16.2279 +v -85.9197 -49.9999 10.8544 +v -86.4317 -49.9999 5.43802 +v -86.6026 -49.9999 0.000219553 +v -86.4317 -49.9999 -5.43761 +v -85.9198 -49.9999 -10.854 +v -85.0687 -49.9999 -16.2275 +v -83.8819 -49.9999 -21.537 +v -82.3641 -49.9999 -26.7615 +v -80.5212 -49.9999 -31.8803 +v -78.3605 -49.9999 -36.8734 +v -75.8906 -49.9999 -41.7209 +v -73.1211 -49.9999 -46.4038 +v -70.0631 -49.9999 -50.9035 +v -66.7286 -49.9999 -55.2024 +v -63.1308 -49.9999 -59.2834 +v -59.2838 -49.9999 -63.1304 +v -55.2028 -49.9999 -66.7283 +v -50.904 -49.9999 -70.0628 +v -46.4042 -49.9999 -73.1209 +v -41.7214 -49.9999 -75.8903 +v -36.8739 -49.9999 -78.3603 +v -31.8808 -49.9999 -80.521 +v -26.762 -49.9999 -82.3639 +v -21.5375 -49.9999 -83.8818 +v -16.228 -49.9999 -85.0686 +v -10.8545 -49.9999 -85.9197 +v -5.43815 -49.9999 -86.4317 +v -0.00032933 -49.9999 -86.6026 +v 5.4375 -49.9999 -86.4318 +v 10.8539 -49.9999 -85.9198 +v 16.2274 -49.9999 -85.0687 +v 21.5369 -49.9999 -83.8819 +v 26.7614 -49.9999 -82.3641 +v 31.8802 -49.9999 -80.5212 +v 36.8733 -49.9999 -78.3605 +v 41.7208 -49.9999 -75.8906 +v 46.4037 -49.9999 -73.1212 +v 50.9035 -49.9999 -70.0632 +v 55.2023 -49.9999 -66.7287 +v 59.2833 -49.9999 -63.1309 +v 63.1303 -49.9999 -59.2839 +v 66.7282 -49.9999 -55.2029 +v 70.0628 -49.9999 -50.9041 +v 73.1208 -49.9999 -46.4043 +v 75.8903 -49.9999 -41.7215 +v 78.3602 -49.9999 -36.874 +v 80.5209 -49.9999 -31.8809 +v 82.3639 -49.9999 -26.7621 +v 83.8817 -49.9999 -21.5376 +v 85.0686 -49.9999 -16.2281 +v 85.9197 -49.9999 -10.8546 +v 86.4317 -49.9999 -5.43822 +v 83.3603 -55.2364 5.88009e-39 +v 83.1958 -55.2364 5.23423 +v 82.703 -55.2364 10.4478 +v 81.8838 -55.2364 15.6202 +v 80.7414 -55.2364 20.7309 +v 79.2804 -55.2364 25.7597 +v 77.5065 -55.2364 30.687 +v 75.4267 -55.2364 35.4931 +v 73.0492 -55.2364 40.1591 +v 70.3835 -55.2364 44.6667 +v 67.4399 -55.2364 48.9979 +v 64.2303 -55.2364 53.1358 +v 60.7671 -55.2364 57.064 +v 57.0641 -55.2364 60.767 +v 53.1359 -55.2364 64.2302 +v 48.998 -55.2364 67.4399 +v 44.6668 -55.2364 70.3834 +v 40.1592 -55.2364 73.0492 +v 35.4932 -55.2364 75.4267 +v 30.6871 -55.2364 77.5065 +v 25.7598 -55.2364 79.2804 +v 20.731 -55.2364 80.7414 +v 15.6203 -55.2364 81.8838 +v 10.4479 -55.2364 82.703 +v 5.23434 -55.2364 83.1958 +v 0.000105667 -55.2364 83.3603 +v -5.23414 -55.2364 83.1958 +v -10.4477 -55.2364 82.703 +v -15.6201 -55.2364 81.8838 +v -20.7308 -55.2364 80.7414 +v -25.7596 -55.2364 79.2804 +v -30.6869 -55.2364 77.5065 +v -35.493 -55.2364 75.4267 +v -40.159 -55.2364 73.0493 +v -44.6666 -55.2364 70.3835 +v -48.9979 -55.2364 67.44 +v -53.1358 -55.2364 64.2303 +v -57.064 -55.2364 60.7672 +v -60.767 -55.2364 57.0642 +v -64.2301 -55.2364 53.136 +v -67.4398 -55.2364 48.9981 +v -70.3834 -55.2364 44.6668 +v -73.0491 -55.2364 40.1593 +v -75.4266 -55.2364 35.4933 +v -77.5064 -55.2364 30.6872 +v -79.2803 -55.2364 25.7599 +v -80.7414 -55.2364 20.731 +v -81.8838 -55.2364 15.6204 +v -82.703 -55.2364 10.448 +v -83.1958 -55.2364 5.23443 +v -83.3603 -55.2364 0.000211334 +v -83.1959 -55.2364 -5.23403 +v -82.703 -55.2364 -10.4476 +v -81.8838 -55.2364 -15.6199 +v -80.7415 -55.2364 -20.7307 +v -79.2805 -55.2364 -25.7596 +v -77.5066 -55.2364 -30.6868 +v -75.4268 -55.2364 -35.4929 +v -73.0493 -55.2364 -40.1589 +v -70.3836 -55.2364 -44.6665 +v -67.4401 -55.2364 -48.9978 +v -64.2304 -55.2364 -53.1357 +v -60.7672 -55.2364 -57.0639 +v -57.0643 -55.2364 -60.7669 +v -53.1361 -55.2364 -64.2301 +v -48.9982 -55.2364 -67.4398 +v -44.6669 -55.2364 -70.3833 +v -40.1594 -55.2364 -73.0491 +v -35.4934 -55.2364 -75.4266 +v -30.6873 -55.2364 -77.5064 +v -25.76 -55.2364 -79.2803 +v -20.7311 -55.2364 -80.7413 +v -15.6204 -55.2364 -81.8837 +v -10.4481 -55.2364 -82.703 +v -5.23456 -55.2364 -83.1958 +v -0.000317 -55.2364 -83.3603 +v 5.23392 -55.2364 -83.1959 +v 10.4475 -55.2364 -82.7031 +v 15.6199 -55.2364 -81.8839 +v 20.7306 -55.2364 -80.7415 +v 25.7595 -55.2364 -79.2805 +v 30.6867 -55.2364 -77.5066 +v 35.4928 -55.2364 -75.4268 +v 40.1589 -55.2364 -73.0494 +v 44.6664 -55.2364 -70.3836 +v 48.9977 -55.2364 -67.4401 +v 53.1356 -55.2364 -64.2305 +v 57.0638 -55.2364 -60.7673 +v 60.7668 -55.2364 -57.0643 +v 64.23 -55.2364 -53.1362 +v 67.4397 -55.2364 -48.9983 +v 70.3833 -55.2364 -44.667 +v 73.049 -55.2364 -40.1595 +v 75.4265 -55.2364 -35.4935 +v 77.5063 -55.2364 -30.6874 +v 79.2803 -55.2364 -25.7601 +v 80.7413 -55.2364 -20.7313 +v 81.8837 -55.2364 -15.6206 +v 82.703 -55.2364 -10.4482 +v 83.1958 -55.2364 -5.23462 +v 79.8018 -60.2633 5.88009e-39 +v 79.6443 -60.2633 5.01079 +v 79.1726 -60.2633 10.0018 +v 78.3883 -60.2633 14.9534 +v 77.2947 -60.2633 19.8459 +v 75.896 -60.2633 24.6601 +v 74.1979 -60.2633 29.377 +v 72.2069 -60.2633 33.9779 +v 69.9309 -60.2633 38.4448 +v 67.3789 -60.2633 42.7599 +v 64.5611 -60.2633 46.9063 +v 61.4884 -60.2633 50.8676 +v 58.1731 -60.2633 54.6281 +v 54.6281 -60.2633 58.173 +v 50.8676 -60.2633 61.4883 +v 46.9064 -60.2633 64.561 +v 42.76 -60.2633 67.3789 +v 38.4449 -60.2633 69.9308 +v 33.978 -60.2633 72.2068 +v 29.3771 -60.2633 74.1978 +v 24.6602 -60.2633 75.896 +v 19.846 -60.2633 77.2947 +v 14.9535 -60.2633 78.3883 +v 10.0019 -60.2633 79.1725 +v 5.01089 -60.2633 79.6443 +v 0.000101156 -60.2633 79.8018 +v -5.0107 -60.2633 79.6444 +v -10.0017 -60.2633 79.1726 +v -14.9533 -60.2633 78.3883 +v -19.8458 -60.2633 77.2947 +v -24.66 -60.2633 75.8961 +v -29.3769 -60.2633 74.1979 +v -33.9778 -60.2633 72.2069 +v -38.4447 -60.2633 69.9309 +v -42.7598 -60.2633 67.379 +v -46.9062 -60.2633 64.5611 +v -50.8675 -60.2633 61.4884 +v -54.628 -60.2633 58.1731 +v -58.1729 -60.2633 54.6282 +v -61.4883 -60.2633 50.8677 +v -64.5609 -60.2633 46.9065 +v -67.3788 -60.2633 42.7601 +v -69.9308 -60.2633 38.445 +v -72.2068 -60.2633 33.9781 +v -74.1978 -60.2633 29.3772 +v -75.896 -60.2633 24.6603 +v -77.2947 -60.2633 19.8461 +v -78.3883 -60.2633 14.9536 +v -79.1725 -60.2633 10.002 +v -79.6443 -60.2633 5.01098 +v -79.8018 -60.2633 0.000202312 +v -79.6444 -60.2633 -5.0106 +v -79.1726 -60.2633 -10.0016 +v -78.3884 -60.2633 -14.9532 +v -77.2948 -60.2633 -19.8457 +v -75.8961 -60.2633 -24.6599 +v -74.1979 -60.2633 -29.3768 +v -72.2069 -60.2633 -33.9778 +v -69.931 -60.2633 -38.4446 +v -67.379 -60.2633 -42.7598 +v -64.5612 -60.2633 -46.9061 +v -61.4885 -60.2633 -50.8674 +v -58.1732 -60.2633 -54.6279 +v -54.6283 -60.2633 -58.1729 +v -50.8678 -60.2633 -61.4882 +v -46.9065 -60.2633 -64.5609 +v -42.7602 -60.2633 -67.3788 +v -38.445 -60.2633 -69.9307 +v -33.9782 -60.2633 -72.2067 +v -29.3773 -60.2633 -74.1978 +v -24.6604 -60.2633 -75.896 +v -19.8462 -60.2633 -77.2946 +v -14.9536 -60.2633 -78.3883 +v -10.0021 -60.2633 -79.1725 +v -5.0111 -60.2633 -79.6443 +v -0.000303468 -60.2633 -79.8018 +v 5.0105 -60.2633 -79.6444 +v 10.0015 -60.2633 -79.1726 +v 14.9531 -60.2633 -78.3884 +v 19.8456 -60.2633 -77.2948 +v 24.6598 -60.2633 -75.8961 +v 29.3767 -60.2633 -74.198 +v 33.9777 -60.2633 -72.207 +v 38.4445 -60.2633 -69.931 +v 42.7597 -60.2633 -67.3791 +v 46.9061 -60.2633 -64.5612 +v 50.8673 -60.2633 -61.4886 +v 54.6278 -60.2633 -58.1733 +v 58.1728 -60.2633 -54.6284 +v 61.4881 -60.2633 -50.8679 +v 64.5608 -60.2633 -46.9066 +v 67.3787 -60.2633 -42.7602 +v 69.9307 -60.2633 -38.4451 +v 72.2067 -60.2633 -33.9783 +v 74.1977 -60.2633 -29.3774 +v 75.8959 -60.2633 -24.6605 +v 77.2946 -60.2633 -19.8463 +v 78.3882 -60.2633 -14.9537 +v 79.1725 -60.2633 -10.0022 +v 79.6443 -60.2633 -5.01117 +v 75.9406 -65.0617 5.88009e-39 +v 75.7908 -65.0617 4.76835 +v 75.3418 -65.0617 9.51787 +v 74.5955 -65.0617 14.2298 +v 73.5548 -65.0617 18.8856 +v 72.2238 -65.0617 23.4669 +v 70.6078 -65.0617 27.9556 +v 68.7131 -65.0617 32.3339 +v 66.5473 -65.0617 36.5846 +v 64.1188 -65.0617 40.691 +v 61.4373 -65.0617 44.6367 +v 58.5133 -65.0617 48.4063 +v 55.3583 -65.0617 51.9849 +v 51.985 -65.0617 55.3583 +v 48.4064 -65.0617 58.5132 +v 44.6368 -65.0617 61.4372 +v 40.6911 -65.0617 64.1187 +v 36.5847 -65.0617 66.5472 +v 32.334 -65.0617 68.7131 +v 27.9557 -65.0617 70.6078 +v 23.467 -65.0617 72.2238 +v 18.8857 -65.0617 73.5548 +v 14.2299 -65.0617 74.5955 +v 9.51796 -65.0617 75.3418 +v 4.76844 -65.0617 75.7907 +v 9.62616e-05 -65.0617 75.9406 +v -4.76826 -65.0617 75.7908 +v -9.51778 -65.0617 75.3418 +v -14.2297 -65.0617 74.5955 +v -18.8856 -65.0617 73.5548 +v -23.4668 -65.0617 72.2238 +v -27.9555 -65.0617 70.6078 +v -32.3338 -65.0617 68.7132 +v -36.5846 -65.0617 66.5473 +v -40.6909 -65.0617 64.1188 +v -44.6367 -65.0617 61.4373 +v -48.4063 -65.0617 58.5133 +v -51.9848 -65.0617 55.3584 +v -55.3582 -65.0617 51.985 +v -58.5132 -65.0617 48.4065 +v -61.4372 -65.0617 44.6369 +v -64.1187 -65.0617 40.6911 +v -66.5472 -65.0617 36.5848 +v -68.7131 -65.0617 32.3341 +v -70.6077 -65.0617 27.9558 +v -72.2238 -65.0617 23.4671 +v -73.5547 -65.0617 18.8858 +v -74.5955 -65.0617 14.23 +v -75.3418 -65.0617 9.51806 +v -75.7907 -65.0617 4.76853 +v -75.9406 -65.0617 0.000192523 +v -75.7908 -65.0617 -4.76816 +v -75.3418 -65.0617 -9.51769 +v -74.5955 -65.0617 -14.2296 +v -73.5548 -65.0617 -18.8855 +v -72.2239 -65.0617 -23.4667 +v -70.6079 -65.0617 -27.9554 +v -68.7132 -65.0617 -32.3337 +v -66.5474 -65.0617 -36.5845 +v -64.1189 -65.0617 -40.6908 +v -61.4374 -65.0617 -44.6366 +v -58.5134 -65.0617 -48.4062 +v -55.3585 -65.0617 -51.9848 +v -51.9851 -65.0617 -55.3582 +v -48.4065 -65.0617 -58.5131 +v -44.637 -65.0617 -61.4371 +v -40.6912 -65.0617 -64.1186 +v -36.5849 -65.0617 -66.5471 +v -32.3342 -65.0617 -68.713 +v -27.9558 -65.0617 -70.6077 +v -23.4672 -65.0617 -72.2237 +v -18.8859 -65.0617 -73.5547 +v -14.2301 -65.0617 -74.5954 +v -9.51814 -65.0617 -75.3418 +v -4.76864 -65.0617 -75.7907 +v -0.000288785 -65.0617 -75.9406 +v 4.76806 -65.0617 -75.7908 +v 9.5176 -65.0617 -75.3418 +v 14.2296 -65.0617 -74.5955 +v 18.8854 -65.0617 -73.5549 +v 23.4667 -65.0617 -72.2239 +v 27.9553 -65.0617 -70.6079 +v 32.3337 -65.0617 -68.7132 +v 36.5844 -65.0617 -66.5474 +v 40.6908 -65.0617 -64.1189 +v 44.6365 -65.0617 -61.4374 +v 48.4061 -65.0617 -58.5134 +v 51.9847 -65.0617 -55.3586 +v 55.3581 -65.0617 -51.9852 +v 58.513 -65.0617 -48.4066 +v 61.437 -65.0617 -44.637 +v 64.1186 -65.0617 -40.6913 +v 66.5471 -65.0617 -36.585 +v 68.713 -65.0617 -32.3343 +v 70.6077 -65.0617 -27.9559 +v 72.2237 -65.0617 -23.4673 +v 73.5547 -65.0617 -18.886 +v 74.5954 -65.0617 -14.2302 +v 75.3417 -65.0617 -9.51823 +v 75.7907 -65.0617 -4.7687 +v 71.7913 -69.6133 5.88009e-39 +v 71.6497 -69.6133 4.50781 +v 71.2252 -69.6133 8.99783 +v 70.5197 -69.6133 13.4523 +v 69.5359 -69.6133 17.8538 +v 68.2776 -69.6133 22.1847 +v 66.7499 -69.6133 26.4281 +v 64.9587 -69.6133 30.5672 +v 62.9112 -69.6133 34.5857 +v 60.6154 -69.6133 38.4677 +v 58.0804 -69.6133 42.1979 +v 55.3162 -69.6133 45.7615 +v 52.3336 -69.6133 49.1445 +v 49.1446 -69.6133 52.3336 +v 45.7616 -69.6133 55.3161 +v 42.1979 -69.6133 58.0804 +v 38.4678 -69.6133 60.6154 +v 34.5858 -69.6133 62.9112 +v 30.5673 -69.6133 64.9587 +v 26.4282 -69.6133 66.7499 +v 22.1848 -69.6133 68.2776 +v 17.8538 -69.6133 69.5358 +v 13.4524 -69.6133 70.5197 +v 8.99792 -69.6133 71.2252 +v 4.5079 -69.6133 71.6497 +v 9.1002e-05 -69.6133 71.7913 +v -4.50773 -69.6133 71.6497 +v -8.99774 -69.6133 71.2252 +v -13.4523 -69.6133 70.5197 +v -17.8537 -69.6133 69.5359 +v -22.1846 -69.6133 68.2776 +v -26.428 -69.6133 66.7499 +v -30.5672 -69.6133 64.9588 +v -34.5856 -69.6133 62.9113 +v -38.4676 -69.6133 60.6155 +v -42.1978 -69.6133 58.0805 +v -45.7614 -69.6133 55.3162 +v -49.1444 -69.6133 52.3337 +v -52.3335 -69.6133 49.1446 +v -55.3161 -69.6133 45.7616 +v -58.0803 -69.6133 42.198 +v -60.6153 -69.6133 38.4678 +v -62.9111 -69.6133 34.5859 +v -64.9587 -69.6133 30.5674 +v -66.7498 -69.6133 26.4283 +v -68.2776 -69.6133 22.1849 +v -69.5358 -69.6133 17.8539 +v -70.5197 -69.6133 13.4525 +v -71.2252 -69.6133 8.99801 +v -71.6496 -69.6133 4.50798 +v -71.7913 -69.6133 0.000182004 +v -71.6497 -69.6133 -4.50763 +v -71.2253 -69.6133 -8.99766 +v -70.5197 -69.6133 -13.4522 +v -69.5359 -69.6133 -17.8536 +v -68.2777 -69.6133 -22.1846 +v -66.75 -69.6133 -26.428 +v -64.9588 -69.6133 -30.5671 +v -62.9113 -69.6133 -34.5856 +v -60.6155 -69.6133 -38.4675 +v -58.0805 -69.6133 -42.1977 +v -55.3163 -69.6133 -45.7613 +v -52.3338 -69.6133 -49.1444 +v -49.1447 -69.6133 -52.3335 +v -45.7617 -69.6133 -55.316 +v -42.1981 -69.6133 -58.0803 +v -38.4679 -69.6133 -60.6153 +v -34.5859 -69.6133 -62.9111 +v -30.5675 -69.6133 -64.9586 +v -26.4284 -69.6133 -66.7498 +v -22.185 -69.6133 -68.2775 +v -17.854 -69.6133 -69.5358 +v -13.4526 -69.6133 -70.5197 +v -8.99808 -69.6133 -71.2252 +v -4.50809 -69.6133 -71.6496 +v -0.000273006 -69.6133 -71.7913 +v 4.50754 -69.6133 -71.6497 +v 8.99757 -69.6133 -71.2253 +v 13.4521 -69.6133 -70.5198 +v 17.8535 -69.6133 -69.5359 +v 22.1845 -69.6133 -68.2777 +v 26.4279 -69.6133 -66.75 +v 30.567 -69.6133 -64.9589 +v 34.5855 -69.6133 -62.9114 +v 38.4675 -69.6133 -60.6156 +v 42.1976 -69.6133 -58.0806 +v 45.7613 -69.6133 -55.3163 +v 49.1443 -69.6133 -52.3338 +v 52.3334 -69.6133 -49.1448 +v 55.316 -69.6133 -45.7618 +v 58.0802 -69.6133 -42.1981 +v 60.6152 -69.6133 -38.468 +v 62.9111 -69.6133 -34.586 +v 64.9586 -69.6133 -30.5676 +v 66.7498 -69.6133 -26.4285 +v 68.2775 -69.6133 -22.1851 +v 69.5358 -69.6133 -17.8541 +v 70.5196 -69.6133 -13.4527 +v 71.2252 -69.6133 -8.99817 +v 71.6496 -69.6133 -4.50815 +v 67.3697 -73.9008 5.88009e-39 +v 67.2368 -73.9008 4.23018 +v 66.8385 -73.9008 8.44366 +v 66.1764 -73.9008 12.6238 +v 65.2532 -73.9008 16.7542 +v 64.0724 -73.9008 20.8184 +v 62.6388 -73.9008 24.8004 +v 60.9579 -73.9008 28.6846 +v 59.0365 -73.9008 32.4556 +v 56.8821 -73.9008 36.0985 +v 54.5033 -73.9008 39.5989 +v 51.9093 -73.9008 42.943 +v 49.1104 -73.9008 46.1177 +v 46.1178 -73.9008 49.1104 +v 42.9431 -73.9008 51.9092 +v 39.599 -73.9008 54.5032 +v 36.0985 -73.9008 56.8821 +v 32.4557 -73.9008 59.0365 +v 28.6847 -73.9008 60.9579 +v 24.8005 -73.9008 62.6387 +v 20.8184 -73.9008 64.0724 +v 16.7542 -73.9008 65.2531 +v 12.6239 -73.9008 66.1764 +v 8.44373 -73.9008 66.8385 +v 4.23026 -73.9008 67.2368 +v 8.53972e-05 -73.9008 67.3697 +v -4.23009 -73.9008 67.2368 +v -8.44357 -73.9008 66.8385 +v -12.6237 -73.9008 66.1764 +v -16.7541 -73.9008 65.2532 +v -20.8183 -73.9008 64.0724 +v -24.8003 -73.9008 62.6388 +v -28.6845 -73.9008 60.958 +v -32.4555 -73.9008 59.0366 +v -36.0984 -73.9008 56.8822 +v -39.5988 -73.9008 54.5033 +v -42.943 -73.9008 51.9093 +v -46.1176 -73.9008 49.1105 +v -49.1103 -73.9008 46.1178 +v -51.9092 -73.9008 42.9432 +v -54.5032 -73.9008 39.599 +v -56.882 -73.9008 36.0986 +v -59.0364 -73.9008 32.4557 +v -60.9579 -73.9008 28.6847 +v -62.6387 -73.9008 24.8006 +v -64.0723 -73.9008 20.8185 +v -65.2531 -73.9008 16.7543 +v -66.1764 -73.9008 12.624 +v -66.8384 -73.9008 8.44382 +v -67.2367 -73.9008 4.23033 +v -67.3697 -73.9008 0.000170794 +v -67.2368 -73.9008 -4.23001 +v -66.8385 -73.9008 -8.4435 +v -66.1764 -73.9008 -12.6236 +v -65.2532 -73.9008 -16.754 +v -64.0724 -73.9008 -20.8182 +v -62.6388 -73.9008 -24.8003 +v -60.958 -73.9008 -28.6845 +v -59.0366 -73.9008 -32.4554 +v -56.8822 -73.9008 -36.0983 +v -54.5033 -73.9008 -39.5988 +v -51.9094 -73.9008 -42.9429 +v -49.1105 -73.9008 -46.1176 +v -46.1179 -73.9008 -49.1102 +v -42.9432 -73.9008 -51.9091 +v -39.5991 -73.9008 -54.5031 +v -36.0987 -73.9008 -56.882 +v -32.4558 -73.9008 -59.0364 +v -28.6848 -73.9008 -60.9578 +v -24.8007 -73.9008 -62.6387 +v -20.8186 -73.9008 -64.0723 +v -16.7544 -73.9008 -65.2531 +v -12.624 -73.9008 -66.1764 +v -8.44389 -73.9008 -66.8384 +v -4.23044 -73.9008 -67.2367 +v -0.000256192 -73.9008 -67.3697 +v 4.22992 -73.9008 -67.2368 +v 8.44341 -73.9008 -66.8385 +v 12.6236 -73.9008 -66.1764 +v 16.7539 -73.9008 -65.2532 +v 20.8181 -73.9008 -64.0725 +v 24.8002 -73.9008 -62.6389 +v 28.6844 -73.9008 -60.958 +v 32.4554 -73.9008 -59.0366 +v 36.0983 -73.9008 -56.8823 +v 39.5987 -73.9008 -54.5034 +v 42.9429 -73.9008 -51.9094 +v 46.1175 -73.9008 -49.1106 +v 49.1102 -73.9008 -46.118 +v 51.9091 -73.9008 -42.9433 +v 54.5031 -73.9008 -39.5992 +v 56.882 -73.9008 -36.0987 +v 59.0364 -73.9008 -32.4559 +v 60.9578 -73.9008 -28.6849 +v 62.6386 -73.9008 -24.8007 +v 64.0723 -73.9008 -20.8187 +v 65.2531 -73.9008 -16.7545 +v 66.1763 -73.9008 -12.6241 +v 66.8384 -73.9008 -8.44397 +v 67.2367 -73.9008 -4.23049 +v 62.6925 -77.9079 5.88009e-39 +v 62.5688 -77.9079 3.93649 +v 62.1982 -77.9079 7.85745 +v 61.5821 -77.9079 11.7474 +v 60.7229 -77.9079 15.591 +v 59.6241 -77.9079 19.373 +v 58.29 -77.9079 23.0786 +v 56.7259 -77.9079 26.6932 +v 54.9379 -77.9079 30.2023 +v 52.9331 -77.9079 33.5923 +v 50.7193 -77.9079 36.8497 +v 48.3054 -77.9079 39.9617 +v 45.7009 -77.9079 42.916 +v 42.916 -77.9079 45.7009 +v 39.9618 -77.9079 48.3054 +v 36.8498 -77.9079 50.7193 +v 33.5924 -77.9079 52.933 +v 30.2024 -77.9079 54.9379 +v 26.6932 -77.9079 56.7259 +v 23.0787 -77.9079 58.29 +v 19.3731 -77.9079 59.6241 +v 15.5911 -77.9079 60.7229 +v 11.7475 -77.9079 61.5821 +v 7.85752 -77.9079 62.1982 +v 3.93657 -77.9079 62.5688 +v 7.94685e-05 -77.9079 62.6925 +v -3.93642 -77.9079 62.5688 +v -7.85737 -77.9079 62.1982 +v -11.7473 -77.9079 61.5821 +v -15.5909 -77.9079 60.7229 +v -19.373 -77.9079 59.6242 +v -23.0786 -77.9079 58.2901 +v -26.6931 -77.9079 56.7259 +v -30.2023 -77.9079 54.9379 +v -33.5922 -77.9079 52.9331 +v -36.8497 -77.9079 50.7194 +v -39.9616 -77.9079 48.3055 +v -42.9159 -77.9079 45.701 +v -45.7008 -77.9079 42.9161 +v -48.3053 -77.9079 39.9618 +v -50.7193 -77.9079 36.8498 +v -52.933 -77.9079 33.5924 +v -54.9378 -77.9079 30.2025 +v -56.7258 -77.9079 26.6933 +v -58.29 -77.9079 23.0788 +v -59.6241 -77.9079 19.3732 +v -60.7229 -77.9079 15.5911 +v -61.582 -77.9079 11.7476 +v -62.1982 -77.9079 7.8576 +v -62.5688 -77.9079 3.93664 +v -62.6925 -77.9079 0.000158937 +v -62.5688 -77.9079 -3.93634 +v -62.1982 -77.9079 -7.8573 +v -61.5821 -77.9079 -11.7472 +v -60.723 -77.9079 -15.5908 +v -59.6242 -77.9079 -19.3729 +v -58.2901 -77.9079 -23.0785 +v -56.726 -77.9079 -26.693 +v -54.938 -77.9079 -30.2022 +v -52.9331 -77.9079 -33.5922 +v -50.7194 -77.9079 -36.8496 +v -48.3055 -77.9079 -39.9616 +v -45.701 -77.9079 -42.9159 +v -42.9161 -77.9079 -45.7008 +v -39.9619 -77.9079 -48.3053 +v -36.8499 -77.9079 -50.7192 +v -33.5925 -77.9079 -52.9329 +v -30.2025 -77.9079 -54.9378 +v -26.6934 -77.9079 -56.7258 +v -23.0789 -77.9079 -58.29 +v -19.3733 -77.9079 -59.6241 +v -15.5912 -77.9079 -60.7229 +v -11.7476 -77.9079 -61.582 +v -7.85767 -77.9079 -62.1982 +v -3.93674 -77.9079 -62.5688 +v -0.000238405 -77.9079 -62.6925 +v 3.93626 -77.9079 -62.5688 +v 7.85722 -77.9079 -62.1982 +v 11.7472 -77.9079 -61.5821 +v 15.5908 -77.9079 -60.723 +v 19.3728 -77.9079 -59.6242 +v 23.0784 -77.9079 -58.2901 +v 26.6929 -77.9079 -56.726 +v 30.2021 -77.9079 -54.938 +v 33.5921 -77.9079 -52.9332 +v 36.8495 -77.9079 -50.7195 +v 39.9615 -77.9079 -48.3056 +v 42.9158 -77.9079 -45.7011 +v 45.7007 -77.9079 -42.9162 +v 48.3052 -77.9079 -39.9619 +v 50.7192 -77.9079 -36.85 +v 52.9329 -77.9079 -33.5926 +v 54.9378 -77.9079 -30.2026 +v 56.7258 -77.9079 -26.6935 +v 58.2899 -77.9079 -23.0789 +v 59.624 -77.9079 -19.3733 +v 60.7229 -77.9079 -15.5913 +v 61.582 -77.9079 -11.7477 +v 62.1981 -77.9079 -7.85775 +v 62.5688 -77.9079 -3.93679 +v 57.7775 -81.6196 5.88009e-39 +v 57.6635 -81.6196 3.62788 +v 57.322 -81.6196 7.24144 +v 56.7541 -81.6196 10.8264 +v 55.9624 -81.6196 14.3687 +v 54.9497 -81.6196 17.8542 +v 53.7202 -81.6196 21.2693 +v 52.2787 -81.6196 24.6005 +v 50.6309 -81.6196 27.8345 +v 48.7832 -81.6196 30.9587 +v 46.743 -81.6196 33.9608 +v 44.5184 -81.6196 36.8288 +v 42.118 -81.6196 39.5514 +v 39.5515 -81.6196 42.118 +v 36.8288 -81.6196 44.5183 +v 33.9608 -81.6196 46.743 +v 30.9588 -81.6196 48.7832 +v 27.8346 -81.6196 50.6308 +v 24.6005 -81.6196 52.2787 +v 21.2694 -81.6196 53.7202 +v 17.8543 -81.6196 54.9497 +v 14.3687 -81.6196 55.9623 +v 10.8265 -81.6196 56.7541 +v 7.24151 -81.6196 57.3219 +v 3.62795 -81.6196 57.6635 +v 7.32383e-05 -81.6196 57.7775 +v -3.62781 -81.6196 57.6635 +v -7.24137 -81.6196 57.322 +v -10.8264 -81.6196 56.7542 +v -14.3686 -81.6196 55.9624 +v -17.8542 -81.6196 54.9497 +v -21.2693 -81.6196 53.7202 +v -24.6004 -81.6196 52.2787 +v -27.8345 -81.6196 50.6309 +v -30.9587 -81.6196 48.7832 +v -33.9607 -81.6196 46.7431 +v -36.8287 -81.6196 44.5184 +v -39.5514 -81.6196 42.1181 +v -42.1179 -81.6196 39.5515 +v -44.5183 -81.6196 36.8289 +v -46.743 -81.6196 33.9609 +v -48.7831 -81.6196 30.9589 +v -50.6308 -81.6196 27.8346 +v -52.2786 -81.6196 24.6006 +v -53.7202 -81.6196 21.2695 +v -54.9497 -81.6196 17.8544 +v -55.9623 -81.6196 14.3688 +v -56.7541 -81.6196 10.8266 +v -57.3219 -81.6196 7.24158 +v -57.6635 -81.6196 3.62802 +v -57.7775 -81.6196 0.000146477 +v -57.6635 -81.6196 -3.62774 +v -57.322 -81.6196 -7.2413 +v -56.7542 -81.6196 -10.8263 +v -55.9624 -81.6196 -14.3685 +v -54.9498 -81.6196 -17.8541 +v -53.7203 -81.6196 -21.2692 +v -52.2788 -81.6196 -24.6003 +v -50.6309 -81.6196 -27.8344 +v -48.7833 -81.6196 -30.9586 +v -46.7431 -81.6196 -33.9606 +v -44.5185 -81.6196 -36.8287 +v -42.1181 -81.6196 -39.5513 +v -39.5516 -81.6196 -42.1179 +v -36.8289 -81.6196 -44.5182 +v -33.9609 -81.6196 -46.7429 +v -30.9589 -81.6196 -48.7831 +v -27.8347 -81.6196 -50.6308 +v -24.6007 -81.6196 -52.2786 +v -21.2695 -81.6196 -53.7201 +v -17.8544 -81.6196 -54.9496 +v -14.3689 -81.6196 -55.9623 +v -10.8266 -81.6196 -56.7541 +v -7.24164 -81.6196 -57.3219 +v -3.6281 -81.6196 -57.6635 +v -0.000219715 -81.6196 -57.7775 +v 3.62766 -81.6196 -57.6635 +v 7.24123 -81.6196 -57.322 +v 10.8262 -81.6196 -56.7542 +v 14.3685 -81.6196 -55.9624 +v 17.854 -81.6196 -54.9498 +v 21.2691 -81.6196 -53.7203 +v 24.6003 -81.6196 -52.2788 +v 27.8343 -81.6196 -50.631 +v 30.9586 -81.6196 -48.7833 +v 33.9606 -81.6196 -46.7432 +v 36.8286 -81.6196 -44.5185 +v 39.5513 -81.6196 -42.1182 +v 42.1178 -81.6196 -39.5516 +v 44.5182 -81.6196 -36.829 +v 46.7429 -81.6196 -33.961 +v 48.7831 -81.6196 -30.959 +v 50.6307 -81.6196 -27.8348 +v 52.2786 -81.6196 -24.6007 +v 53.7201 -81.6196 -21.2696 +v 54.9496 -81.6196 -17.8545 +v 55.9623 -81.6196 -14.369 +v 56.7541 -81.6196 -10.8267 +v 57.3219 -81.6196 -7.24171 +v 57.6635 -81.6196 -3.62815 +v 52.6434 -85.0216 5.88009e-39 +v 52.5395 -85.0216 3.3055 +v 52.2283 -85.0216 6.59796 +v 51.7109 -85.0216 9.86438 +v 50.9895 -85.0216 13.0919 +v 50.0668 -85.0216 16.2677 +v 48.9466 -85.0216 19.3793 +v 47.6332 -85.0216 22.4144 +v 46.1318 -85.0216 25.3611 +v 44.4483 -85.0216 28.2077 +v 42.5894 -85.0216 30.943 +v 40.5624 -85.0216 33.5561 +v 38.3754 -85.0216 36.0368 +v 36.0369 -85.0216 38.3753 +v 33.5562 -85.0216 40.5624 +v 30.943 -85.0216 42.5894 +v 28.2078 -85.0216 44.4482 +v 25.3612 -85.0216 46.1317 +v 22.4145 -85.0216 47.6331 +v 19.3794 -85.0216 48.9466 +v 16.2677 -85.0216 50.0668 +v 13.0919 -85.0216 50.9895 +v 9.86444 -85.0216 51.7109 +v 6.59802 -85.0216 52.2283 +v 3.30557 -85.0216 52.5395 +v 6.67303e-05 -85.0216 52.6434 +v -3.30544 -85.0216 52.5395 +v -6.59789 -85.0216 52.2283 +v -9.86431 -85.0216 51.7109 +v -13.0918 -85.0216 50.9895 +v -16.2676 -85.0216 50.0668 +v -19.3792 -85.0216 48.9466 +v -22.4144 -85.0216 47.6332 +v -25.3611 -85.0216 46.1318 +v -28.2077 -85.0216 44.4483 +v -30.9429 -85.0216 42.5894 +v -33.5561 -85.0216 40.5625 +v -36.0368 -85.0216 38.3754 +v -38.3753 -85.0216 36.0369 +v -40.5624 -85.0216 33.5562 +v -42.5893 -85.0216 30.9431 +v -44.4482 -85.0216 28.2078 +v -46.1317 -85.0216 25.3612 +v -47.6331 -85.0216 22.4146 +v -48.9465 -85.0216 19.3794 +v -50.0668 -85.0216 16.2678 +v -50.9895 -85.0216 13.092 +v -51.7109 -85.0216 9.86451 +v -52.2283 -85.0216 6.59809 +v -52.5395 -85.0216 3.30563 +v -52.6434 -85.0216 0.000133461 +v -52.5395 -85.0216 -3.30537 +v -52.2283 -85.0216 -6.59783 +v -51.7109 -85.0216 -9.86425 +v -50.9895 -85.0216 -13.0917 +v -50.0669 -85.0216 -16.2676 +v -48.9466 -85.0216 -19.3792 +v -47.6332 -85.0216 -22.4143 +v -46.1318 -85.0216 -25.361 +v -44.4483 -85.0216 -28.2076 +v -42.5895 -85.0216 -30.9429 +v -40.5625 -85.0216 -33.556 +v -38.3755 -85.0216 -36.0368 +v -36.037 -85.0216 -38.3753 +v -33.5563 -85.0216 -40.5623 +v -30.9431 -85.0216 -42.5893 +v -28.2079 -85.0216 -44.4482 +v -25.3613 -85.0216 -46.1317 +v -22.4146 -85.0216 -47.6331 +v -19.3795 -85.0216 -48.9465 +v -16.2679 -85.0216 -50.0668 +v -13.092 -85.0216 -50.9894 +v -9.86456 -85.0216 -51.7109 +v -6.59814 -85.0216 -52.2282 +v -3.30571 -85.0216 -52.5395 +v -0.000200191 -85.0216 -52.6434 +v 3.30531 -85.0216 -52.5395 +v 6.59777 -85.0216 -52.2283 +v 9.86419 -85.0216 -51.711 +v 13.0917 -85.0216 -50.9895 +v 16.2675 -85.0216 -50.0669 +v 19.3791 -85.0216 -48.9467 +v 22.4143 -85.0216 -47.6332 +v 25.361 -85.0216 -46.1318 +v 28.2076 -85.0216 -44.4484 +v 30.9428 -85.0216 -42.5895 +v 33.556 -85.0216 -40.5626 +v 36.0367 -85.0216 -38.3755 +v 38.3752 -85.0216 -36.037 +v 40.5623 -85.0216 -33.5563 +v 42.5892 -85.0216 -30.9432 +v 44.4482 -85.0216 -28.2079 +v 46.1316 -85.0216 -25.3613 +v 47.633 -85.0216 -22.4147 +v 48.9465 -85.0216 -19.3796 +v 50.0667 -85.0216 -16.2679 +v 50.9894 -85.0216 -13.0921 +v 51.7109 -85.0216 -9.86463 +v 52.2282 -85.0216 -6.59821 +v 52.5395 -85.0216 -3.30575 +v 47.3095 -88.1011 5.88009e-39 +v 47.2162 -88.1011 2.97059 +v 46.9365 -88.1011 5.92945 +v 46.4715 -88.1011 8.86492 +v 45.8232 -88.1011 11.7654 +v 44.994 -88.1011 14.6194 +v 43.9873 -88.1011 17.4158 +v 42.807 -88.1011 20.1434 +v 41.4577 -88.1011 22.7915 +v 39.9448 -88.1011 25.3497 +v 38.2742 -88.1011 27.8078 +v 36.4526 -88.1011 30.1562 +v 34.4872 -88.1011 32.3856 +v 32.3856 -88.1011 34.4871 +v 30.1563 -88.1011 36.4526 +v 27.8079 -88.1011 38.2742 +v 25.3497 -88.1011 39.9447 +v 22.7916 -88.1011 41.4576 +v 20.1435 -88.1011 42.8069 +v 17.4158 -88.1011 43.9873 +v 14.6195 -88.1011 44.994 +v 11.7654 -88.1011 45.8232 +v 8.86497 -88.1011 46.4715 +v 5.92951 -88.1011 46.9365 +v 2.97065 -88.1011 47.2162 +v 5.99691e-05 -88.1011 47.3095 +v -2.97053 -88.1011 47.2162 +v -5.92939 -88.1011 46.9365 +v -8.86486 -88.1011 46.4716 +v -11.7653 -88.1011 45.8232 +v -14.6194 -88.1011 44.9941 +v -17.4157 -88.1011 43.9873 +v -20.1434 -88.1011 42.807 +v -22.7915 -88.1011 41.4577 +v -25.3496 -88.1011 39.9448 +v -27.8078 -88.1011 38.2743 +v -30.1562 -88.1011 36.4527 +v -32.3855 -88.1011 34.4872 +v -34.4871 -88.1011 32.3857 +v -36.4526 -88.1011 30.1563 +v -38.2742 -88.1011 27.8079 +v -39.9447 -88.1011 25.3498 +v -41.4576 -88.1011 22.7916 +v -42.8069 -88.1011 20.1435 +v -43.9873 -88.1011 17.4159 +v -44.994 -88.1011 14.6195 +v -45.8232 -88.1011 11.7655 +v -46.4715 -88.1011 8.86503 +v -46.9365 -88.1011 5.92957 +v -47.2162 -88.1011 2.9707 +v -47.3095 -88.1011 0.000119938 +v -47.2162 -88.1011 -2.97047 +v -46.9365 -88.1011 -5.92934 +v -46.4716 -88.1011 -8.8648 +v -45.8232 -88.1011 -11.7653 +v -44.9941 -88.1011 -14.6193 +v -43.9873 -88.1011 -17.4157 +v -42.807 -88.1011 -20.1433 +v -41.4577 -88.1011 -22.7914 +v -39.9448 -88.1011 -25.3496 +v -38.2743 -88.1011 -27.8077 +v -36.4527 -88.1011 -30.1561 +v -34.4873 -88.1011 -32.3855 +v -32.3857 -88.1011 -34.4871 +v -30.1563 -88.1011 -36.4525 +v -27.808 -88.1011 -38.2741 +v -25.3498 -88.1011 -39.9447 +v -22.7917 -88.1011 -41.4576 +v -20.1436 -88.1011 -42.8069 +v -17.416 -88.1011 -43.9872 +v -14.6196 -88.1011 -44.994 +v -11.7656 -88.1011 -45.8232 +v -8.86508 -88.1011 -46.4715 +v -5.92962 -88.1011 -46.9365 +v -2.97077 -88.1011 -47.2162 +v -0.000179907 -88.1011 -47.3095 +v 2.97041 -88.1011 -47.2162 +v 5.92928 -88.1011 -46.9365 +v 8.86475 -88.1011 -46.4716 +v 11.7652 -88.1011 -45.8233 +v 14.6193 -88.1011 -44.9941 +v 17.4156 -88.1011 -43.9874 +v 20.1432 -88.1011 -42.807 +v 22.7914 -88.1011 -41.4578 +v 25.3496 -88.1011 -39.9449 +v 27.8077 -88.1011 -38.2743 +v 30.1561 -88.1011 -36.4527 +v 32.3854 -88.1011 -34.4873 +v 34.487 -88.1011 -32.3858 +v 36.4525 -88.1011 -30.1564 +v 38.2741 -88.1011 -27.808 +v 39.9446 -88.1011 -25.3499 +v 41.4576 -88.1011 -22.7917 +v 42.8068 -88.1011 -20.1436 +v 43.9872 -88.1011 -17.416 +v 44.994 -88.1011 -14.6197 +v 45.8232 -88.1011 -11.7656 +v 46.4715 -88.1011 -8.86514 +v 46.9365 -88.1011 -5.92967 +v 47.2162 -88.1011 -2.97081 +v 41.7962 -90.8464 5.88009e-39 +v 41.7138 -90.8464 2.6244 +v 41.4667 -90.8464 5.23845 +v 41.0559 -90.8464 7.83183 +v 40.4831 -90.8464 10.3943 +v 39.7506 -90.8464 12.9157 +v 38.8612 -90.8464 15.3862 +v 37.8184 -90.8464 17.796 +v 36.6263 -90.8464 20.1355 +v 35.2897 -90.8464 22.3955 +v 33.8139 -90.8464 24.5672 +v 32.2046 -90.8464 26.6419 +v 30.4682 -90.8464 28.6115 +v 28.6115 -90.8464 30.4681 +v 26.6419 -90.8464 32.2045 +v 24.5672 -90.8464 33.8138 +v 22.3956 -90.8464 35.2897 +v 20.1355 -90.8464 36.6263 +v 17.796 -90.8464 37.8183 +v 15.3863 -90.8464 38.8611 +v 12.9158 -90.8464 39.7506 +v 10.3943 -90.8464 40.4831 +v 7.83188 -90.8464 41.0559 +v 5.2385 -90.8464 41.4666 +v 2.62446 -90.8464 41.7138 +v 5.29805e-05 -90.8464 41.7962 +v -2.62436 -90.8464 41.7138 +v -5.2384 -90.8464 41.4667 +v -7.83177 -90.8464 41.0559 +v -10.3942 -90.8464 40.4831 +v -12.9157 -90.8464 39.7506 +v -15.3862 -90.8464 38.8612 +v -17.7959 -90.8464 37.8184 +v -20.1354 -90.8464 36.6263 +v -22.3955 -90.8464 35.2898 +v -24.5672 -90.8464 33.8139 +v -26.6419 -90.8464 32.2046 +v -28.6114 -90.8464 30.4682 +v -30.4681 -90.8464 28.6115 +v -32.2045 -90.8464 26.642 +v -33.8138 -90.8464 24.5673 +v -35.2897 -90.8464 22.3956 +v -36.6263 -90.8464 20.1356 +v -37.8183 -90.8464 17.796 +v -38.8611 -90.8464 15.3863 +v -39.7505 -90.8464 12.9158 +v -40.4831 -90.8464 10.3944 +v -41.0559 -90.8464 7.83193 +v -41.4666 -90.8464 5.23855 +v -41.7137 -90.8464 2.6245 +v -41.7962 -90.8464 0.000105961 +v -41.7138 -90.8464 -2.6243 +v -41.4667 -90.8464 -5.23835 +v -41.0559 -90.8464 -7.83172 +v -40.4832 -90.8464 -10.3942 +v -39.7506 -90.8464 -12.9156 +v -38.8612 -90.8464 -15.3861 +v -37.8184 -90.8464 -17.7959 +v -36.6264 -90.8464 -20.1354 +v -35.2898 -90.8464 -22.3954 +v -33.8139 -90.8464 -24.5671 +v -32.2046 -90.8464 -26.6418 +v -30.4682 -90.8464 -28.6114 +v -28.6116 -90.8464 -30.4681 +v -26.642 -90.8464 -32.2045 +v -24.5673 -90.8464 -33.8138 +v -22.3956 -90.8464 -35.2897 +v -20.1356 -90.8464 -36.6263 +v -17.7961 -90.8464 -37.8183 +v -15.3864 -90.8464 -38.8611 +v -12.9159 -90.8464 -39.7505 +v -10.3944 -90.8464 -40.4831 +v -7.83197 -90.8464 -41.0559 +v -5.2386 -90.8464 -41.4666 +v -2.62457 -90.8464 -41.7137 +v -0.000158942 -90.8464 -41.7962 +v 2.62425 -90.8464 -41.7138 +v 5.2383 -90.8464 -41.4667 +v 7.83168 -90.8464 -41.0559 +v 10.3941 -90.8464 -40.4832 +v 12.9156 -90.8464 -39.7506 +v 15.3861 -90.8464 -38.8612 +v 17.7958 -90.8464 -37.8184 +v 20.1353 -90.8464 -36.6264 +v 22.3954 -90.8464 -35.2898 +v 24.5671 -90.8464 -33.814 +v 26.6418 -90.8464 -32.2047 +v 28.6114 -90.8464 -30.4683 +v 30.468 -90.8464 -28.6116 +v 32.2044 -90.8464 -26.6421 +v 33.8138 -90.8464 -24.5674 +v 35.2896 -90.8464 -22.3957 +v 36.6262 -90.8464 -20.1356 +v 37.8183 -90.8464 -17.7962 +v 38.8611 -90.8464 -15.3864 +v 39.7505 -90.8464 -12.9159 +v 40.4831 -90.8464 -10.3945 +v 41.0559 -90.8464 -7.83202 +v 41.4666 -90.8464 -5.23865 +v 41.7137 -90.8464 -2.6246 +v 36.1244 -93.2471 5.88009e-39 +v 36.0531 -93.2471 2.26827 +v 35.8395 -93.2471 4.52758 +v 35.4845 -93.2471 6.76902 +v 34.9894 -93.2471 8.98376 +v 34.3563 -93.2471 11.163 +v 33.5876 -93.2471 13.2983 +v 32.6863 -93.2471 15.381 +v 31.656 -93.2471 17.403 +v 30.5008 -93.2471 19.3564 +v 29.2252 -93.2471 21.2334 +v 27.8343 -93.2471 23.0265 +v 26.3335 -93.2471 24.7288 +v 24.7288 -93.2471 26.3335 +v 23.0266 -93.2471 27.8343 +v 21.2334 -93.2471 29.2252 +v 19.3564 -93.2471 30.5008 +v 17.4031 -93.2471 31.656 +v 15.381 -93.2471 32.6863 +v 13.2983 -93.2471 33.5876 +v 11.1631 -93.2471 34.3563 +v 8.9838 -93.2471 34.9894 +v 6.76907 -93.2471 35.4845 +v 4.52762 -93.2471 35.8395 +v 2.26831 -93.2471 36.0531 +v 4.57909e-05 -93.2471 36.1244 +v -2.26822 -93.2471 36.0531 +v -4.52753 -93.2471 35.8395 +v -6.76898 -93.2471 35.4845 +v -8.98371 -93.2471 34.9895 +v -11.163 -93.2471 34.3563 +v -13.2982 -93.2471 33.5876 +v -15.381 -93.2471 32.6863 +v -17.403 -93.2471 31.656 +v -19.3563 -93.2471 30.5008 +v -21.2333 -93.2471 29.2253 +v -23.0265 -93.2471 27.8343 +v -24.7288 -93.2471 26.3336 +v -26.3335 -93.2471 24.7289 +v -27.8343 -93.2471 23.0266 +v -29.2252 -93.2471 21.2334 +v -30.5008 -93.2471 19.3565 +v -31.656 -93.2471 17.4031 +v -32.6863 -93.2471 15.3811 +v -33.5875 -93.2471 13.2983 +v -34.3563 -93.2471 11.1631 +v -34.9894 -93.2471 8.98384 +v -35.4845 -93.2471 6.76911 +v -35.8395 -93.2471 4.52767 +v -36.0531 -93.2471 2.26835 +v -36.1244 -93.2471 9.15818e-05 +v -36.0531 -93.2471 -2.26818 +v -35.8395 -93.2471 -4.52749 +v -35.4845 -93.2471 -6.76893 +v -34.9895 -93.2471 -8.98367 +v -34.3563 -93.2471 -11.1629 +v -33.5876 -93.2471 -13.2982 +v -32.6863 -93.2471 -15.3809 +v -31.6561 -93.2471 -17.403 +v -30.5009 -93.2471 -19.3563 +v -29.2253 -93.2471 -21.2333 +v -27.8344 -93.2471 -23.0264 +v -26.3336 -93.2471 -24.7287 +v -24.7289 -93.2471 -26.3334 +v -23.0266 -93.2471 -27.8342 +v -21.2335 -93.2471 -29.2252 +v -19.3565 -93.2471 -30.5007 +v -17.4031 -93.2471 -31.656 +v -15.3811 -93.2471 -32.6862 +v -13.2984 -93.2471 -33.5875 +v -11.1632 -93.2471 -34.3563 +v -8.98388 -93.2471 -34.9894 +v -6.76915 -93.2471 -35.4845 +v -4.5277 -93.2471 -35.8395 +v -2.2684 -93.2471 -36.0531 +v -0.000137373 -93.2471 -36.1244 +v 2.26813 -93.2471 -36.0531 +v 4.52745 -93.2471 -35.8395 +v 6.7689 -93.2471 -35.4845 +v 8.98363 -93.2471 -34.9895 +v 11.1629 -93.2471 -34.3563 +v 13.2981 -93.2471 -33.5876 +v 15.3809 -93.2471 -32.6864 +v 17.4029 -93.2471 -31.6561 +v 19.3563 -93.2471 -30.5009 +v 21.2332 -93.2471 -29.2253 +v 23.0264 -93.2471 -27.8344 +v 24.7287 -93.2471 -26.3336 +v 26.3334 -93.2471 -24.7289 +v 27.8342 -93.2471 -23.0267 +v 29.2251 -93.2471 -21.2335 +v 30.5007 -93.2471 -19.3565 +v 31.6559 -93.2471 -17.4032 +v 32.6862 -93.2471 -15.3812 +v 33.5875 -93.2471 -13.2984 +v 34.3563 -93.2471 -11.1632 +v 34.9894 -93.2471 -8.98393 +v 35.4845 -93.2471 -6.7692 +v 35.8395 -93.2471 -4.52775 +v 36.0531 -93.2471 -2.26843 +v 30.3155 -95.2941 5.88009e-39 +v 30.2557 -95.2941 1.90352 +v 30.0764 -95.2941 3.79953 +v 29.7785 -95.2941 5.68055 +v 29.3631 -95.2941 7.53915 +v 28.8317 -95.2941 9.36799 +v 28.1866 -95.2941 11.1599 +v 27.4303 -95.2941 12.9077 +v 26.5657 -95.2941 14.6046 +v 25.5962 -95.2941 16.2438 +v 24.5257 -95.2941 17.819 +v 23.3585 -95.2941 19.3238 +v 22.099 -95.2941 20.7524 +v 20.7524 -95.2941 22.099 +v 19.3238 -95.2941 23.3585 +v 17.819 -95.2941 24.5257 +v 16.2439 -95.2941 25.5962 +v 14.6046 -95.2941 26.5656 +v 12.9077 -95.2941 27.4302 +v 11.1599 -95.2941 28.1866 +v 9.36802 -95.2941 28.8317 +v 7.53918 -95.2941 29.363 +v 5.68059 -95.2941 29.7785 +v 3.79957 -95.2941 30.0764 +v 1.90356 -95.2941 30.2556 +v 3.84276e-05 -95.2941 30.3155 +v -1.90349 -95.2941 30.2557 +v -3.7995 -95.2941 30.0764 +v -5.68051 -95.2941 29.7785 +v -7.53911 -95.2941 29.3631 +v -9.36795 -95.2941 28.8317 +v -11.1598 -95.2941 28.1866 +v -12.9077 -95.2941 27.4303 +v -14.6045 -95.2941 26.5657 +v -16.2438 -95.2941 25.5962 +v -17.8189 -95.2941 24.5258 +v -19.3238 -95.2941 23.3585 +v -20.7523 -95.2941 22.0991 +v -22.099 -95.2941 20.7524 +v -23.3584 -95.2941 19.3239 +v -24.5257 -95.2941 17.819 +v -25.5962 -95.2941 16.2439 +v -26.5656 -95.2941 14.6046 +v -27.4302 -95.2941 12.9078 +v -28.1866 -95.2941 11.1599 +v -28.8317 -95.2941 9.36806 +v -29.363 -95.2941 7.53921 +v -29.7785 -95.2941 5.68062 +v -30.0764 -95.2941 3.79961 +v -30.2556 -95.2941 1.90359 +v -30.3155 -95.2941 7.68552e-05 +v -30.2557 -95.2941 -1.90345 +v -30.0764 -95.2941 -3.79946 +v -29.7785 -95.2941 -5.68047 +v -29.3631 -95.2941 -7.53907 +v -28.8318 -95.2941 -9.36792 +v -28.1866 -95.2941 -11.1598 +v -27.4303 -95.2941 -12.9076 +v -26.5657 -95.2941 -14.6045 +v -25.5962 -95.2941 -16.2438 +v -24.5258 -95.2941 -17.8189 +v -23.3585 -95.2941 -19.3237 +v -22.0991 -95.2941 -20.7523 +v -20.7524 -95.2941 -22.099 +v -19.3239 -95.2941 -23.3584 +v -17.8191 -95.2941 -24.5257 +v -16.2439 -95.2941 -25.5961 +v -14.6047 -95.2941 -26.5656 +v -12.9078 -95.2941 -27.4302 +v -11.16 -95.2941 -28.1866 +v -9.3681 -95.2941 -28.8317 +v -7.53925 -95.2941 -29.363 +v -5.68065 -95.2941 -29.7785 +v -3.79964 -95.2941 -30.0764 +v -1.90364 -95.2941 -30.2556 +v -0.000115283 -95.2941 -30.3155 +v 1.90341 -95.2941 -30.2557 +v 3.79942 -95.2941 -30.0764 +v 5.68044 -95.2941 -29.7785 +v 7.53904 -95.2941 -29.3631 +v 9.36789 -95.2941 -28.8318 +v 11.1598 -95.2941 -28.1867 +v 12.9076 -95.2941 -27.4303 +v 14.6045 -95.2941 -26.5657 +v 16.2437 -95.2941 -25.5963 +v 17.8189 -95.2941 -24.5258 +v 19.3237 -95.2941 -23.3585 +v 20.7523 -95.2941 -22.0991 +v 22.0989 -95.2941 -20.7525 +v 23.3584 -95.2941 -19.3239 +v 24.5257 -95.2941 -17.8191 +v 25.5961 -95.2941 -16.244 +v 26.5656 -95.2941 -14.6047 +v 27.4302 -95.2941 -12.9078 +v 28.1866 -95.2941 -11.16 +v 28.8317 -95.2941 -9.36813 +v 29.363 -95.2941 -7.53929 +v 29.7785 -95.2941 -5.68069 +v 30.0764 -95.2941 -3.79968 +v 30.2556 -95.2941 -1.90366 +v 24.3916 -96.9796 5.88009e-39 +v 24.3435 -96.9796 1.53156 +v 24.1993 -96.9796 3.05707 +v 23.9596 -96.9796 4.57053 +v 23.6253 -96.9796 6.06594 +v 23.1978 -96.9796 7.53741 +v 22.6787 -96.9796 8.97914 +v 22.0702 -96.9796 10.3854 +v 21.3745 -96.9796 11.7507 +v 20.5945 -96.9796 13.0697 +v 19.7332 -96.9796 14.337 +v 18.7941 -96.9796 15.5478 +v 17.7807 -96.9796 16.6972 +v 16.6972 -96.9796 17.7807 +v 15.5478 -96.9796 18.794 +v 14.337 -96.9796 19.7332 +v 13.0697 -96.9796 20.5945 +v 11.7508 -96.9796 21.3745 +v 10.3855 -96.9796 22.0702 +v 8.97917 -96.9796 22.6787 +v 7.53744 -96.9796 23.1978 +v 6.06597 -96.9796 23.6253 +v 4.57056 -96.9796 23.9595 +v 3.0571 -96.9796 24.1993 +v 1.53159 -96.9796 24.3435 +v 3.09186e-05 -96.9796 24.3916 +v -1.53153 -96.9796 24.3435 +v -3.05704 -96.9796 24.1993 +v -4.57049 -96.9796 23.9596 +v -6.06591 -96.9796 23.6253 +v -7.53738 -96.9796 23.1978 +v -8.97911 -96.9796 22.6787 +v -10.3854 -96.9796 22.0702 +v -11.7507 -96.9796 21.3745 +v -13.0696 -96.9796 20.5945 +v -14.337 -96.9796 19.7332 +v -15.5478 -96.9796 18.7941 +v -16.6972 -96.9796 17.7807 +v -17.7807 -96.9796 16.6972 +v -18.794 -96.9796 15.5478 +v -19.7332 -96.9796 14.3371 +v -20.5945 -96.9796 13.0697 +v -21.3745 -96.9796 11.7508 +v -22.0702 -96.9796 10.3855 +v -22.6787 -96.9796 8.97919 +v -23.1978 -96.9796 7.53747 +v -23.6253 -96.9796 6.06599 +v -23.9595 -96.9796 4.57059 +v -24.1992 -96.9796 3.05713 +v -24.3435 -96.9796 1.53162 +v -24.3916 -96.9796 6.18371e-05 +v -24.3435 -96.9796 -1.5315 +v -24.1993 -96.9796 -3.05702 +v -23.9596 -96.9796 -4.57046 +v -23.6253 -96.9796 -6.06588 +v -23.1978 -96.9796 -7.53735 +v -22.6788 -96.9796 -8.97908 +v -22.0702 -96.9796 -10.3854 +v -21.3745 -96.9796 -11.7507 +v -20.5945 -96.9796 -13.0696 +v -19.7333 -96.9796 -14.337 +v -18.7941 -96.9796 -15.5477 +v -17.7808 -96.9796 -16.6971 +v -16.6973 -96.9796 -17.7807 +v -15.5478 -96.9796 -18.794 +v -14.3371 -96.9796 -19.7332 +v -13.0697 -96.9796 -20.5945 +v -11.7508 -96.9796 -21.3745 +v -10.3855 -96.9796 -22.0701 +v -8.97922 -96.9796 -22.6787 +v -7.5375 -96.9796 -23.1978 +v -6.06602 -96.9796 -23.6253 +v -4.57061 -96.9796 -23.9595 +v -3.05716 -96.9796 -24.1992 +v -1.53165 -96.9796 -24.3435 +v -9.27557e-05 -96.9796 -24.3916 +v 1.53147 -96.9796 -24.3435 +v 3.05699 -96.9796 -24.1993 +v 4.57044 -96.9796 -23.9596 +v 6.06586 -96.9796 -23.6253 +v 7.53733 -96.9796 -23.1978 +v 8.97905 -96.9796 -22.6788 +v 10.3853 -96.9796 -22.0702 +v 11.7507 -96.9796 -21.3746 +v 13.0696 -96.9796 -20.5946 +v 14.3369 -96.9796 -19.7333 +v 15.5477 -96.9796 -18.7941 +v 16.6971 -96.9796 -17.7808 +v 17.7806 -96.9796 -16.6973 +v 18.794 -96.9796 -15.5479 +v 19.7332 -96.9796 -14.3371 +v 20.5944 -96.9796 -13.0698 +v 21.3745 -96.9796 -11.7508 +v 22.0701 -96.9796 -10.3855 +v 22.6787 -96.9796 -8.97925 +v 23.1977 -96.9796 -7.53753 +v 23.6253 -96.9796 -6.06605 +v 23.9595 -96.9796 -4.57064 +v 24.1992 -96.9796 -3.05719 +v 24.3435 -96.9796 -1.53167 +v 18.3752 -98.2973 5.88009e-39 +v 18.3389 -98.2973 1.15379 +v 18.2303 -98.2973 2.30302 +v 18.0497 -98.2973 3.44316 +v 17.7979 -98.2973 4.56971 +v 17.4758 -98.2973 5.67823 +v 17.0848 -98.2973 6.76434 +v 16.6263 -98.2973 7.82376 +v 16.1023 -98.2973 8.8523 +v 15.5147 -98.2973 9.8459 +v 14.8658 -98.2973 10.8006 +v 14.1583 -98.2973 11.7128 +v 13.3949 -98.2973 12.5787 +v 12.5787 -98.2973 13.3949 +v 11.7128 -98.2973 14.1583 +v 10.8007 -98.2973 14.8658 +v 9.84592 -98.2973 15.5147 +v 8.85232 -98.2973 16.1023 +v 7.82378 -98.2973 16.6263 +v 6.76437 -98.2973 17.0848 +v 5.67825 -98.2973 17.4758 +v 4.56974 -98.2973 17.7979 +v 3.44318 -98.2973 18.0497 +v 2.30304 -98.2973 18.2303 +v 1.15381 -98.2973 18.3389 +v 2.32922e-05 -98.2973 18.3752 +v -1.15376 -98.2973 18.3389 +v -2.30299 -98.2973 18.2303 +v -3.44314 -98.2973 18.0497 +v -4.56969 -98.2973 17.7979 +v -5.67821 -98.2973 17.4758 +v -6.76432 -98.2973 17.0848 +v -7.82374 -98.2973 16.6264 +v -8.85228 -98.2973 16.1023 +v -9.84588 -98.2973 15.5147 +v -10.8006 -98.2973 14.8658 +v -11.7127 -98.2973 14.1583 +v -12.5786 -98.2973 13.3949 +v -13.3949 -98.2973 12.5787 +v -14.1583 -98.2973 11.7128 +v -14.8658 -98.2973 10.8007 +v -15.5146 -98.2973 9.84594 +v -16.1023 -98.2973 8.85233 +v -16.6263 -98.2973 7.8238 +v -17.0848 -98.2973 6.76439 +v -17.4758 -98.2973 5.67828 +v -17.7979 -98.2973 4.56976 +v -18.0497 -98.2973 3.44321 +v -18.2303 -98.2973 2.30306 +v -18.3389 -98.2973 1.15383 +v -18.3752 -98.2973 4.65844e-05 +v -18.3389 -98.2973 -1.15374 +v -18.2303 -98.2973 -2.30297 +v -18.0497 -98.2973 -3.44311 +v -17.7979 -98.2973 -4.56967 +v -17.4758 -98.2973 -5.67819 +v -17.0848 -98.2973 -6.7643 +v -16.6264 -98.2973 -7.82372 +v -16.1023 -98.2973 -8.85226 +v -15.5147 -98.2973 -9.84586 +v -14.8659 -98.2973 -10.8006 +v -14.1583 -98.2973 -11.7127 +v -13.395 -98.2973 -12.5786 +v -12.5787 -98.2973 -13.3949 +v -11.7128 -98.2973 -14.1583 +v -10.8007 -98.2973 -14.8658 +v -9.84595 -98.2973 -15.5146 +v -8.85235 -98.2973 -16.1023 +v -7.82382 -98.2973 -16.6263 +v -6.76441 -98.2973 -17.0848 +v -5.6783 -98.2973 -17.4758 +v -4.56978 -98.2973 -17.7979 +v -3.44322 -98.2973 -18.0497 +v -2.30308 -98.2973 -18.2303 +v -1.15386 -98.2973 -18.3389 +v -6.98766e-05 -98.2973 -18.3752 +v 1.15372 -98.2973 -18.3389 +v 2.30295 -98.2973 -18.2303 +v 3.4431 -98.2973 -18.0497 +v 4.56965 -98.2973 -17.7979 +v 5.67817 -98.2973 -17.4758 +v 6.76428 -98.2973 -17.0848 +v 7.8237 -98.2973 -16.6264 +v 8.85224 -98.2973 -16.1023 +v 9.84584 -98.2973 -15.5147 +v 10.8006 -98.2973 -14.8659 +v 11.7127 -98.2973 -14.1584 +v 12.5786 -98.2973 -13.395 +v 13.3949 -98.2973 -12.5787 +v 14.1583 -98.2973 -11.7128 +v 14.8658 -98.2973 -10.8007 +v 15.5146 -98.2973 -9.84597 +v 16.1022 -98.2973 -8.85237 +v 16.6263 -98.2973 -7.82384 +v 17.0848 -98.2973 -6.76443 +v 17.4758 -98.2973 -5.67832 +v 17.7979 -98.2973 -4.5698 +v 18.0497 -98.2973 -3.44325 +v 18.2303 -98.2973 -2.3031 +v 18.3389 -98.2973 -1.15387 +v 12.2891 -99.242 5.88009e-39 +v 12.2648 -99.242 0.771636 +v 12.1922 -99.242 1.54023 +v 12.0714 -99.242 2.30274 +v 11.903 -99.242 3.05616 +v 11.6876 -99.242 3.79752 +v 11.4261 -99.242 4.5239 +v 11.1195 -99.242 5.23242 +v 10.769 -99.242 5.92029 +v 10.376 -99.242 6.5848 +v 9.94206 -99.242 7.22332 +v 9.46888 -99.242 7.83333 +v 8.95834 -99.242 8.41243 +v 8.41244 -99.242 8.95833 +v 7.83335 -99.242 9.46887 +v 7.22333 -99.242 9.94205 +v 6.58481 -99.242 10.376 +v 5.92031 -99.242 10.769 +v 5.23243 -99.242 11.1195 +v 4.52391 -99.242 11.4261 +v 3.79754 -99.242 11.6876 +v 3.05618 -99.242 11.903 +v 2.30275 -99.242 12.0714 +v 1.54024 -99.242 12.1922 +v 0.771651 -99.242 12.2648 +v 1.55775e-05 -99.242 12.2891 +v -0.771621 -99.242 12.2648 +v -1.54021 -99.242 12.1922 +v -2.30272 -99.242 12.0714 +v -3.05615 -99.242 11.903 +v -3.79751 -99.242 11.6876 +v -4.52389 -99.242 11.4261 +v -5.23241 -99.242 11.1195 +v -5.92028 -99.242 10.769 +v -6.58479 -99.242 10.376 +v -7.22331 -99.242 9.94207 +v -7.83332 -99.242 9.46889 +v -8.41242 -99.242 8.95835 +v -8.95832 -99.242 8.41245 +v -9.46887 -99.242 7.83336 +v -9.94204 -99.242 7.22334 +v -10.376 -99.242 6.58483 +v -10.769 -99.242 5.92032 +v -11.1195 -99.242 5.23245 +v -11.4261 -99.242 4.52393 +v -11.6876 -99.242 3.79755 +v -11.903 -99.242 3.05619 +v -12.0714 -99.242 2.30277 +v -12.1921 -99.242 1.54026 +v -12.2648 -99.242 0.771665 +v -12.2891 -99.242 3.1155e-05 +v -12.2648 -99.242 -0.771605 +v -12.1922 -99.242 -1.5402 +v -12.0714 -99.242 -2.30271 +v -11.903 -99.242 -3.05613 +v -11.6876 -99.242 -3.7975 +v -11.4261 -99.242 -4.52387 +v -11.1195 -99.242 -5.23239 +v -10.769 -99.242 -5.92027 +v -10.376 -99.242 -6.58478 +v -9.94208 -99.242 -7.2233 +v -9.4689 -99.242 -7.83331 +v -8.95836 -99.242 -8.41241 +v -8.41247 -99.242 -8.95831 +v -7.83337 -99.242 -9.46886 +v -7.22336 -99.242 -9.94203 +v -6.58484 -99.242 -10.376 +v -5.92033 -99.242 -10.769 +v -5.23246 -99.242 -11.1195 +v -4.52394 -99.242 -11.4261 +v -3.79757 -99.242 -11.6876 +v -3.0562 -99.242 -11.903 +v -2.30278 -99.242 -12.0714 +v -1.54027 -99.242 -12.1921 +v -0.771683 -99.242 -12.2648 +v -4.67325e-05 -99.242 -12.2891 +v 0.77159 -99.242 -12.2648 +v 1.54018 -99.242 -12.1922 +v 2.30269 -99.242 -12.0714 +v 3.05612 -99.242 -11.903 +v 3.79748 -99.242 -11.6876 +v 4.52386 -99.242 -11.4261 +v 5.23238 -99.242 -11.1195 +v 5.92025 -99.242 -10.769 +v 6.58476 -99.242 -10.376 +v 7.22329 -99.242 -9.94208 +v 7.8333 -99.242 -9.46891 +v 8.4124 -99.242 -8.95837 +v 8.9583 -99.242 -8.41248 +v 9.46885 -99.242 -7.83338 +v 9.94202 -99.242 -7.22337 +v 10.376 -99.242 -6.58485 +v 10.769 -99.242 -5.92034 +v 11.1194 -99.242 -5.23248 +v 11.4261 -99.242 -4.52396 +v 11.6876 -99.242 -3.79758 +v 11.903 -99.242 -3.05622 +v 12.0714 -99.242 -2.3028 +v 12.1921 -99.242 -1.54028 +v 12.2648 -99.242 -0.771693 +v 6.15633 -99.8103 5.88009e-39 +v 6.14418 -99.8103 0.386559 +v 6.10779 -99.8103 0.771592 +v 6.04729 -99.8103 1.15358 +v 5.96292 -99.8103 1.53102 +v 5.85502 -99.8103 1.90241 +v 5.72401 -99.8103 2.26629 +v 5.57042 -99.8103 2.62124 +v 5.39483 -99.8103 2.96583 +v 5.19796 -99.8103 3.29872 +v 4.98058 -99.8103 3.6186 +v 4.74354 -99.8103 3.92419 +v 4.48777 -99.8103 4.2143 +v 4.2143 -99.8103 4.48777 +v 3.9242 -99.8103 4.74353 +v 3.6186 -99.8103 4.98057 +v 3.29873 -99.8103 5.19796 +v 2.96584 -99.8103 5.39483 +v 2.62124 -99.8103 5.57041 +v 2.2663 -99.8103 5.72401 +v 1.90242 -99.8103 5.85502 +v 1.53102 -99.8103 5.96292 +v 1.15359 -99.8103 6.04728 +v 0.771599 -99.8103 6.10779 +v 0.386566 -99.8103 6.14418 +v 7.80371e-06 -99.8103 6.15633 +v -0.386552 -99.8103 6.14418 +v -0.771585 -99.8103 6.10779 +v -1.15357 -99.8103 6.04729 +v -1.53101 -99.8103 5.96292 +v -1.9024 -99.8103 5.85502 +v -2.26629 -99.8103 5.72402 +v -2.62123 -99.8103 5.57042 +v -2.96583 -99.8103 5.39484 +v -3.29872 -99.8103 5.19797 +v -3.61859 -99.8103 4.98058 +v -3.92419 -99.8103 4.74354 +v -4.21429 -99.8103 4.48778 +v -4.48776 -99.8103 4.21431 +v -4.74353 -99.8103 3.9242 +v -4.98057 -99.8103 3.61861 +v -5.19796 -99.8103 3.29874 +v -5.39483 -99.8103 2.96585 +v -5.57041 -99.8103 2.62125 +v -5.72401 -99.8103 2.26631 +v -5.85501 -99.8103 1.90242 +v -5.96292 -99.8103 1.53103 +v -6.04728 -99.8103 1.1536 +v -6.10778 -99.8103 0.771607 +v -6.14418 -99.8103 0.386573 +v -6.15633 -99.8103 1.56074e-05 +v -6.14418 -99.8103 -0.386544 +v -6.10779 -99.8103 -0.771578 +v -6.04729 -99.8103 -1.15357 +v -5.96292 -99.8103 -1.531 +v -5.85502 -99.8103 -1.9024 +v -5.72402 -99.8103 -2.26628 +v -5.57042 -99.8103 -2.62122 +v -5.39484 -99.8103 -2.96582 +v -5.19797 -99.8103 -3.29871 +v -4.98059 -99.8103 -3.61859 +v -4.74355 -99.8103 -3.92418 +v -4.48778 -99.8103 -4.21429 +v -4.21431 -99.8103 -4.48776 +v -3.92421 -99.8103 -4.74352 +v -3.61862 -99.8103 -4.98057 +v -3.29874 -99.8103 -5.19795 +v -2.96585 -99.8103 -5.39482 +v -2.62126 -99.8103 -5.57041 +v -2.26632 -99.8103 -5.724 +v -1.90243 -99.8103 -5.85501 +v -1.53104 -99.8103 -5.96291 +v -1.1536 -99.8103 -6.04728 +v -0.771613 -99.8103 -6.10778 +v -0.386583 -99.8103 -6.14418 +v -2.34111e-05 -99.8103 -6.15633 +v 0.386536 -99.8103 -6.14418 +v 0.77157 -99.8103 -6.10779 +v 1.15356 -99.8103 -6.04729 +v 1.531 -99.8103 -5.96292 +v 1.90239 -99.8103 -5.85503 +v 2.26627 -99.8103 -5.72402 +v 2.62122 -99.8103 -5.57043 +v 2.96581 -99.8103 -5.39485 +v 3.29871 -99.8103 -5.19798 +v 3.61858 -99.8103 -4.98059 +v 3.92417 -99.8103 -4.74355 +v 4.21428 -99.8103 -4.48779 +v 4.48775 -99.8103 -4.21432 +v 4.74352 -99.8103 -3.92421 +v 4.98056 -99.8103 -3.61862 +v 5.19795 -99.8103 -3.29875 +v 5.39482 -99.8103 -2.96586 +v 5.5704 -99.8103 -2.62126 +v 5.724 -99.8103 -2.26632 +v 5.85501 -99.8103 -1.90244 +v 5.96291 -99.8103 -1.53105 +v 6.04728 -99.8103 -1.15361 +v 6.10778 -99.8103 -0.771621 +v 6.14418 -99.8103 -0.386588 +f 3 4 104 103 +f 4 5 105 104 +f 5 6 106 105 +f 6 7 107 106 +f 7 8 108 107 +f 8 9 109 108 +f 9 10 110 109 +f 10 11 111 110 +f 11 12 112 111 +f 12 13 113 112 +f 13 14 114 113 +f 14 15 115 114 +f 15 16 116 115 +f 16 17 117 116 +f 17 18 118 117 +f 18 19 119 118 +f 19 20 120 119 +f 20 21 121 120 +f 21 22 122 121 +f 22 23 123 122 +f 23 24 124 123 +f 24 25 125 124 +f 25 26 126 125 +f 26 27 127 126 +f 27 28 128 127 +f 28 29 129 128 +f 29 30 130 129 +f 30 31 131 130 +f 31 32 132 131 +f 32 33 133 132 +f 33 34 134 133 +f 34 35 135 134 +f 35 36 136 135 +f 36 37 137 136 +f 37 38 138 137 +f 38 39 139 138 +f 39 40 140 139 +f 40 41 141 140 +f 41 42 142 141 +f 42 43 143 142 +f 43 44 144 143 +f 44 45 145 144 +f 45 46 146 145 +f 46 47 147 146 +f 47 48 148 147 +f 48 49 149 148 +f 49 50 150 149 +f 50 51 151 150 +f 51 52 152 151 +f 52 53 153 152 +f 53 54 154 153 +f 54 55 155 154 +f 55 56 156 155 +f 56 57 157 156 +f 57 58 158 157 +f 58 59 159 158 +f 59 60 160 159 +f 60 61 161 160 +f 61 62 162 161 +f 62 63 163 162 +f 63 64 164 163 +f 64 65 165 164 +f 65 66 166 165 +f 66 67 167 166 +f 67 68 168 167 +f 68 69 169 168 +f 69 70 170 169 +f 70 71 171 170 +f 71 72 172 171 +f 72 73 173 172 +f 73 74 174 173 +f 74 75 175 174 +f 75 76 176 175 +f 76 77 177 176 +f 77 78 178 177 +f 78 79 179 178 +f 79 80 180 179 +f 80 81 181 180 +f 81 82 182 181 +f 82 83 183 182 +f 83 84 184 183 +f 84 85 185 184 +f 85 86 186 185 +f 86 87 187 186 +f 87 88 188 187 +f 88 89 189 188 +f 89 90 190 189 +f 90 91 191 190 +f 91 92 192 191 +f 92 93 193 192 +f 93 94 194 193 +f 94 95 195 194 +f 95 96 196 195 +f 96 97 197 196 +f 97 98 198 197 +f 98 99 199 198 +f 99 100 200 199 +f 100 101 201 200 +f 101 102 202 201 +f 102 3 103 202 +f 103 104 204 203 +f 104 105 205 204 +f 105 106 206 205 +f 106 107 207 206 +f 107 108 208 207 +f 108 109 209 208 +f 109 110 210 209 +f 110 111 211 210 +f 111 112 212 211 +f 112 113 213 212 +f 113 114 214 213 +f 114 115 215 214 +f 115 116 216 215 +f 116 117 217 216 +f 117 118 218 217 +f 118 119 219 218 +f 119 120 220 219 +f 120 121 221 220 +f 121 122 222 221 +f 122 123 223 222 +f 123 124 224 223 +f 124 125 225 224 +f 125 126 226 225 +f 126 127 227 226 +f 127 128 228 227 +f 128 129 229 228 +f 129 130 230 229 +f 130 131 231 230 +f 131 132 232 231 +f 132 133 233 232 +f 133 134 234 233 +f 134 135 235 234 +f 135 136 236 235 +f 136 137 237 236 +f 137 138 238 237 +f 138 139 239 238 +f 139 140 240 239 +f 140 141 241 240 +f 141 142 242 241 +f 142 143 243 242 +f 143 144 244 243 +f 144 145 245 244 +f 145 146 246 245 +f 146 147 247 246 +f 147 148 248 247 +f 148 149 249 248 +f 149 150 250 249 +f 150 151 251 250 +f 151 152 252 251 +f 152 153 253 252 +f 153 154 254 253 +f 154 155 255 254 +f 155 156 256 255 +f 156 157 257 256 +f 157 158 258 257 +f 158 159 259 258 +f 159 160 260 259 +f 160 161 261 260 +f 161 162 262 261 +f 162 163 263 262 +f 163 164 264 263 +f 164 165 265 264 +f 165 166 266 265 +f 166 167 267 266 +f 167 168 268 267 +f 168 169 269 268 +f 169 170 270 269 +f 170 171 271 270 +f 171 172 272 271 +f 172 173 273 272 +f 173 174 274 273 +f 174 175 275 274 +f 175 176 276 275 +f 176 177 277 276 +f 177 178 278 277 +f 178 179 279 278 +f 179 180 280 279 +f 180 181 281 280 +f 181 182 282 281 +f 182 183 283 282 +f 183 184 284 283 +f 184 185 285 284 +f 185 186 286 285 +f 186 187 287 286 +f 187 188 288 287 +f 188 189 289 288 +f 189 190 290 289 +f 190 191 291 290 +f 191 192 292 291 +f 192 193 293 292 +f 193 194 294 293 +f 194 195 295 294 +f 195 196 296 295 +f 196 197 297 296 +f 197 198 298 297 +f 198 199 299 298 +f 199 200 300 299 +f 200 201 301 300 +f 201 202 302 301 +f 202 103 203 302 +f 203 204 304 303 +f 204 205 305 304 +f 205 206 306 305 +f 206 207 307 306 +f 207 208 308 307 +f 208 209 309 308 +f 209 210 310 309 +f 210 211 311 310 +f 211 212 312 311 +f 212 213 313 312 +f 213 214 314 313 +f 214 215 315 314 +f 215 216 316 315 +f 216 217 317 316 +f 217 218 318 317 +f 218 219 319 318 +f 219 220 320 319 +f 220 221 321 320 +f 221 222 322 321 +f 222 223 323 322 +f 223 224 324 323 +f 224 225 325 324 +f 225 226 326 325 +f 226 227 327 326 +f 227 228 328 327 +f 228 229 329 328 +f 229 230 330 329 +f 230 231 331 330 +f 231 232 332 331 +f 232 233 333 332 +f 233 234 334 333 +f 234 235 335 334 +f 235 236 336 335 +f 236 237 337 336 +f 237 238 338 337 +f 238 239 339 338 +f 239 240 340 339 +f 240 241 341 340 +f 241 242 342 341 +f 242 243 343 342 +f 243 244 344 343 +f 244 245 345 344 +f 245 246 346 345 +f 246 247 347 346 +f 247 248 348 347 +f 248 249 349 348 +f 249 250 350 349 +f 250 251 351 350 +f 251 252 352 351 +f 252 253 353 352 +f 253 254 354 353 +f 254 255 355 354 +f 255 256 356 355 +f 256 257 357 356 +f 257 258 358 357 +f 258 259 359 358 +f 259 260 360 359 +f 260 261 361 360 +f 261 262 362 361 +f 262 263 363 362 +f 263 264 364 363 +f 264 265 365 364 +f 265 266 366 365 +f 266 267 367 366 +f 267 268 368 367 +f 268 269 369 368 +f 269 270 370 369 +f 270 271 371 370 +f 271 272 372 371 +f 272 273 373 372 +f 273 274 374 373 +f 274 275 375 374 +f 275 276 376 375 +f 276 277 377 376 +f 277 278 378 377 +f 278 279 379 378 +f 279 280 380 379 +f 280 281 381 380 +f 281 282 382 381 +f 282 283 383 382 +f 283 284 384 383 +f 284 285 385 384 +f 285 286 386 385 +f 286 287 387 386 +f 287 288 388 387 +f 288 289 389 388 +f 289 290 390 389 +f 290 291 391 390 +f 291 292 392 391 +f 292 293 393 392 +f 293 294 394 393 +f 294 295 395 394 +f 295 296 396 395 +f 296 297 397 396 +f 297 298 398 397 +f 298 299 399 398 +f 299 300 400 399 +f 300 301 401 400 +f 301 302 402 401 +f 302 203 303 402 +f 303 304 404 403 +f 304 305 405 404 +f 305 306 406 405 +f 306 307 407 406 +f 307 308 408 407 +f 308 309 409 408 +f 309 310 410 409 +f 310 311 411 410 +f 311 312 412 411 +f 312 313 413 412 +f 313 314 414 413 +f 314 315 415 414 +f 315 316 416 415 +f 316 317 417 416 +f 317 318 418 417 +f 318 319 419 418 +f 319 320 420 419 +f 320 321 421 420 +f 321 322 422 421 +f 322 323 423 422 +f 323 324 424 423 +f 324 325 425 424 +f 325 326 426 425 +f 326 327 427 426 +f 327 328 428 427 +f 328 329 429 428 +f 329 330 430 429 +f 330 331 431 430 +f 331 332 432 431 +f 332 333 433 432 +f 333 334 434 433 +f 334 335 435 434 +f 335 336 436 435 +f 336 337 437 436 +f 337 338 438 437 +f 338 339 439 438 +f 339 340 440 439 +f 340 341 441 440 +f 341 342 442 441 +f 342 343 443 442 +f 343 344 444 443 +f 344 345 445 444 +f 345 346 446 445 +f 346 347 447 446 +f 347 348 448 447 +f 348 349 449 448 +f 349 350 450 449 +f 350 351 451 450 +f 351 352 452 451 +f 352 353 453 452 +f 353 354 454 453 +f 354 355 455 454 +f 355 356 456 455 +f 356 357 457 456 +f 357 358 458 457 +f 358 359 459 458 +f 359 360 460 459 +f 360 361 461 460 +f 361 362 462 461 +f 362 363 463 462 +f 363 364 464 463 +f 364 365 465 464 +f 365 366 466 465 +f 366 367 467 466 +f 367 368 468 467 +f 368 369 469 468 +f 369 370 470 469 +f 370 371 471 470 +f 371 372 472 471 +f 372 373 473 472 +f 373 374 474 473 +f 374 375 475 474 +f 375 376 476 475 +f 376 377 477 476 +f 377 378 478 477 +f 378 379 479 478 +f 379 380 480 479 +f 380 381 481 480 +f 381 382 482 481 +f 382 383 483 482 +f 383 384 484 483 +f 384 385 485 484 +f 385 386 486 485 +f 386 387 487 486 +f 387 388 488 487 +f 388 389 489 488 +f 389 390 490 489 +f 390 391 491 490 +f 391 392 492 491 +f 392 393 493 492 +f 393 394 494 493 +f 394 395 495 494 +f 395 396 496 495 +f 396 397 497 496 +f 397 398 498 497 +f 398 399 499 498 +f 399 400 500 499 +f 400 401 501 500 +f 401 402 502 501 +f 402 303 403 502 +f 403 404 504 503 +f 404 405 505 504 +f 405 406 506 505 +f 406 407 507 506 +f 407 408 508 507 +f 408 409 509 508 +f 409 410 510 509 +f 410 411 511 510 +f 411 412 512 511 +f 412 413 513 512 +f 413 414 514 513 +f 414 415 515 514 +f 415 416 516 515 +f 416 417 517 516 +f 417 418 518 517 +f 418 419 519 518 +f 419 420 520 519 +f 420 421 521 520 +f 421 422 522 521 +f 422 423 523 522 +f 423 424 524 523 +f 424 425 525 524 +f 425 426 526 525 +f 426 427 527 526 +f 427 428 528 527 +f 428 429 529 528 +f 429 430 530 529 +f 430 431 531 530 +f 431 432 532 531 +f 432 433 533 532 +f 433 434 534 533 +f 434 435 535 534 +f 435 436 536 535 +f 436 437 537 536 +f 437 438 538 537 +f 438 439 539 538 +f 439 440 540 539 +f 440 441 541 540 +f 441 442 542 541 +f 442 443 543 542 +f 443 444 544 543 +f 444 445 545 544 +f 445 446 546 545 +f 446 447 547 546 +f 447 448 548 547 +f 448 449 549 548 +f 449 450 550 549 +f 450 451 551 550 +f 451 452 552 551 +f 452 453 553 552 +f 453 454 554 553 +f 454 455 555 554 +f 455 456 556 555 +f 456 457 557 556 +f 457 458 558 557 +f 458 459 559 558 +f 459 460 560 559 +f 460 461 561 560 +f 461 462 562 561 +f 462 463 563 562 +f 463 464 564 563 +f 464 465 565 564 +f 465 466 566 565 +f 466 467 567 566 +f 467 468 568 567 +f 468 469 569 568 +f 469 470 570 569 +f 470 471 571 570 +f 471 472 572 571 +f 472 473 573 572 +f 473 474 574 573 +f 474 475 575 574 +f 475 476 576 575 +f 476 477 577 576 +f 477 478 578 577 +f 478 479 579 578 +f 479 480 580 579 +f 480 481 581 580 +f 481 482 582 581 +f 482 483 583 582 +f 483 484 584 583 +f 484 485 585 584 +f 485 486 586 585 +f 486 487 587 586 +f 487 488 588 587 +f 488 489 589 588 +f 489 490 590 589 +f 490 491 591 590 +f 491 492 592 591 +f 492 493 593 592 +f 493 494 594 593 +f 494 495 595 594 +f 495 496 596 595 +f 496 497 597 596 +f 497 498 598 597 +f 498 499 599 598 +f 499 500 600 599 +f 500 501 601 600 +f 501 502 602 601 +f 502 403 503 602 +f 503 504 604 603 +f 504 505 605 604 +f 505 506 606 605 +f 506 507 607 606 +f 507 508 608 607 +f 508 509 609 608 +f 509 510 610 609 +f 510 511 611 610 +f 511 512 612 611 +f 512 513 613 612 +f 513 514 614 613 +f 514 515 615 614 +f 515 516 616 615 +f 516 517 617 616 +f 517 518 618 617 +f 518 519 619 618 +f 519 520 620 619 +f 520 521 621 620 +f 521 522 622 621 +f 522 523 623 622 +f 523 524 624 623 +f 524 525 625 624 +f 525 526 626 625 +f 526 527 627 626 +f 527 528 628 627 +f 528 529 629 628 +f 529 530 630 629 +f 530 531 631 630 +f 531 532 632 631 +f 532 533 633 632 +f 533 534 634 633 +f 534 535 635 634 +f 535 536 636 635 +f 536 537 637 636 +f 537 538 638 637 +f 538 539 639 638 +f 539 540 640 639 +f 540 541 641 640 +f 541 542 642 641 +f 542 543 643 642 +f 543 544 644 643 +f 544 545 645 644 +f 545 546 646 645 +f 546 547 647 646 +f 547 548 648 647 +f 548 549 649 648 +f 549 550 650 649 +f 550 551 651 650 +f 551 552 652 651 +f 552 553 653 652 +f 553 554 654 653 +f 554 555 655 654 +f 555 556 656 655 +f 556 557 657 656 +f 557 558 658 657 +f 558 559 659 658 +f 559 560 660 659 +f 560 561 661 660 +f 561 562 662 661 +f 562 563 663 662 +f 563 564 664 663 +f 564 565 665 664 +f 565 566 666 665 +f 566 567 667 666 +f 567 568 668 667 +f 568 569 669 668 +f 569 570 670 669 +f 570 571 671 670 +f 571 572 672 671 +f 572 573 673 672 +f 573 574 674 673 +f 574 575 675 674 +f 575 576 676 675 +f 576 577 677 676 +f 577 578 678 677 +f 578 579 679 678 +f 579 580 680 679 +f 580 581 681 680 +f 581 582 682 681 +f 582 583 683 682 +f 583 584 684 683 +f 584 585 685 684 +f 585 586 686 685 +f 586 587 687 686 +f 587 588 688 687 +f 588 589 689 688 +f 589 590 690 689 +f 590 591 691 690 +f 591 592 692 691 +f 592 593 693 692 +f 593 594 694 693 +f 594 595 695 694 +f 595 596 696 695 +f 596 597 697 696 +f 597 598 698 697 +f 598 599 699 698 +f 599 600 700 699 +f 600 601 701 700 +f 601 602 702 701 +f 602 503 603 702 +f 603 604 704 703 +f 604 605 705 704 +f 605 606 706 705 +f 606 607 707 706 +f 607 608 708 707 +f 608 609 709 708 +f 609 610 710 709 +f 610 611 711 710 +f 611 612 712 711 +f 612 613 713 712 +f 613 614 714 713 +f 614 615 715 714 +f 615 616 716 715 +f 616 617 717 716 +f 617 618 718 717 +f 618 619 719 718 +f 619 620 720 719 +f 620 621 721 720 +f 621 622 722 721 +f 622 623 723 722 +f 623 624 724 723 +f 624 625 725 724 +f 625 626 726 725 +f 626 627 727 726 +f 627 628 728 727 +f 628 629 729 728 +f 629 630 730 729 +f 630 631 731 730 +f 631 632 732 731 +f 632 633 733 732 +f 633 634 734 733 +f 634 635 735 734 +f 635 636 736 735 +f 636 637 737 736 +f 637 638 738 737 +f 638 639 739 738 +f 639 640 740 739 +f 640 641 741 740 +f 641 642 742 741 +f 642 643 743 742 +f 643 644 744 743 +f 644 645 745 744 +f 645 646 746 745 +f 646 647 747 746 +f 647 648 748 747 +f 648 649 749 748 +f 649 650 750 749 +f 650 651 751 750 +f 651 652 752 751 +f 652 653 753 752 +f 653 654 754 753 +f 654 655 755 754 +f 655 656 756 755 +f 656 657 757 756 +f 657 658 758 757 +f 658 659 759 758 +f 659 660 760 759 +f 660 661 761 760 +f 661 662 762 761 +f 662 663 763 762 +f 663 664 764 763 +f 664 665 765 764 +f 665 666 766 765 +f 666 667 767 766 +f 667 668 768 767 +f 668 669 769 768 +f 669 670 770 769 +f 670 671 771 770 +f 671 672 772 771 +f 672 673 773 772 +f 673 674 774 773 +f 674 675 775 774 +f 675 676 776 775 +f 676 677 777 776 +f 677 678 778 777 +f 678 679 779 778 +f 679 680 780 779 +f 680 681 781 780 +f 681 682 782 781 +f 682 683 783 782 +f 683 684 784 783 +f 684 685 785 784 +f 685 686 786 785 +f 686 687 787 786 +f 687 688 788 787 +f 688 689 789 788 +f 689 690 790 789 +f 690 691 791 790 +f 691 692 792 791 +f 692 693 793 792 +f 693 694 794 793 +f 694 695 795 794 +f 695 696 796 795 +f 696 697 797 796 +f 697 698 798 797 +f 698 699 799 798 +f 699 700 800 799 +f 700 701 801 800 +f 701 702 802 801 +f 702 603 703 802 +f 703 704 804 803 +f 704 705 805 804 +f 705 706 806 805 +f 706 707 807 806 +f 707 708 808 807 +f 708 709 809 808 +f 709 710 810 809 +f 710 711 811 810 +f 711 712 812 811 +f 712 713 813 812 +f 713 714 814 813 +f 714 715 815 814 +f 715 716 816 815 +f 716 717 817 816 +f 717 718 818 817 +f 718 719 819 818 +f 719 720 820 819 +f 720 721 821 820 +f 721 722 822 821 +f 722 723 823 822 +f 723 724 824 823 +f 724 725 825 824 +f 725 726 826 825 +f 726 727 827 826 +f 727 728 828 827 +f 728 729 829 828 +f 729 730 830 829 +f 730 731 831 830 +f 731 732 832 831 +f 732 733 833 832 +f 733 734 834 833 +f 734 735 835 834 +f 735 736 836 835 +f 736 737 837 836 +f 737 738 838 837 +f 738 739 839 838 +f 739 740 840 839 +f 740 741 841 840 +f 741 742 842 841 +f 742 743 843 842 +f 743 744 844 843 +f 744 745 845 844 +f 745 746 846 845 +f 746 747 847 846 +f 747 748 848 847 +f 748 749 849 848 +f 749 750 850 849 +f 750 751 851 850 +f 751 752 852 851 +f 752 753 853 852 +f 753 754 854 853 +f 754 755 855 854 +f 755 756 856 855 +f 756 757 857 856 +f 757 758 858 857 +f 758 759 859 858 +f 759 760 860 859 +f 760 761 861 860 +f 761 762 862 861 +f 762 763 863 862 +f 763 764 864 863 +f 764 765 865 864 +f 765 766 866 865 +f 766 767 867 866 +f 767 768 868 867 +f 768 769 869 868 +f 769 770 870 869 +f 770 771 871 870 +f 771 772 872 871 +f 772 773 873 872 +f 773 774 874 873 +f 774 775 875 874 +f 775 776 876 875 +f 776 777 877 876 +f 777 778 878 877 +f 778 779 879 878 +f 779 780 880 879 +f 780 781 881 880 +f 781 782 882 881 +f 782 783 883 882 +f 783 784 884 883 +f 784 785 885 884 +f 785 786 886 885 +f 786 787 887 886 +f 787 788 888 887 +f 788 789 889 888 +f 789 790 890 889 +f 790 791 891 890 +f 791 792 892 891 +f 792 793 893 892 +f 793 794 894 893 +f 794 795 895 894 +f 795 796 896 895 +f 796 797 897 896 +f 797 798 898 897 +f 798 799 899 898 +f 799 800 900 899 +f 800 801 901 900 +f 801 802 902 901 +f 802 703 803 902 +f 803 804 904 903 +f 804 805 905 904 +f 805 806 906 905 +f 806 807 907 906 +f 807 808 908 907 +f 808 809 909 908 +f 809 810 910 909 +f 810 811 911 910 +f 811 812 912 911 +f 812 813 913 912 +f 813 814 914 913 +f 814 815 915 914 +f 815 816 916 915 +f 816 817 917 916 +f 817 818 918 917 +f 818 819 919 918 +f 819 820 920 919 +f 820 821 921 920 +f 821 822 922 921 +f 822 823 923 922 +f 823 824 924 923 +f 824 825 925 924 +f 825 826 926 925 +f 826 827 927 926 +f 827 828 928 927 +f 828 829 929 928 +f 829 830 930 929 +f 830 831 931 930 +f 831 832 932 931 +f 832 833 933 932 +f 833 834 934 933 +f 834 835 935 934 +f 835 836 936 935 +f 836 837 937 936 +f 837 838 938 937 +f 838 839 939 938 +f 839 840 940 939 +f 840 841 941 940 +f 841 842 942 941 +f 842 843 943 942 +f 843 844 944 943 +f 844 845 945 944 +f 845 846 946 945 +f 846 847 947 946 +f 847 848 948 947 +f 848 849 949 948 +f 849 850 950 949 +f 850 851 951 950 +f 851 852 952 951 +f 852 853 953 952 +f 853 854 954 953 +f 854 855 955 954 +f 855 856 956 955 +f 856 857 957 956 +f 857 858 958 957 +f 858 859 959 958 +f 859 860 960 959 +f 860 861 961 960 +f 861 862 962 961 +f 862 863 963 962 +f 863 864 964 963 +f 864 865 965 964 +f 865 866 966 965 +f 866 867 967 966 +f 867 868 968 967 +f 868 869 969 968 +f 869 870 970 969 +f 870 871 971 970 +f 871 872 972 971 +f 872 873 973 972 +f 873 874 974 973 +f 874 875 975 974 +f 875 876 976 975 +f 876 877 977 976 +f 877 878 978 977 +f 878 879 979 978 +f 879 880 980 979 +f 880 881 981 980 +f 881 882 982 981 +f 882 883 983 982 +f 883 884 984 983 +f 884 885 985 984 +f 885 886 986 985 +f 886 887 987 986 +f 887 888 988 987 +f 888 889 989 988 +f 889 890 990 989 +f 890 891 991 990 +f 891 892 992 991 +f 892 893 993 992 +f 893 894 994 993 +f 894 895 995 994 +f 895 896 996 995 +f 896 897 997 996 +f 897 898 998 997 +f 898 899 999 998 +f 899 900 1000 999 +f 900 901 1001 1000 +f 901 902 1002 1001 +f 902 803 903 1002 +f 903 904 1004 1003 +f 904 905 1005 1004 +f 905 906 1006 1005 +f 906 907 1007 1006 +f 907 908 1008 1007 +f 908 909 1009 1008 +f 909 910 1010 1009 +f 910 911 1011 1010 +f 911 912 1012 1011 +f 912 913 1013 1012 +f 913 914 1014 1013 +f 914 915 1015 1014 +f 915 916 1016 1015 +f 916 917 1017 1016 +f 917 918 1018 1017 +f 918 919 1019 1018 +f 919 920 1020 1019 +f 920 921 1021 1020 +f 921 922 1022 1021 +f 922 923 1023 1022 +f 923 924 1024 1023 +f 924 925 1025 1024 +f 925 926 1026 1025 +f 926 927 1027 1026 +f 927 928 1028 1027 +f 928 929 1029 1028 +f 929 930 1030 1029 +f 930 931 1031 1030 +f 931 932 1032 1031 +f 932 933 1033 1032 +f 933 934 1034 1033 +f 934 935 1035 1034 +f 935 936 1036 1035 +f 936 937 1037 1036 +f 937 938 1038 1037 +f 938 939 1039 1038 +f 939 940 1040 1039 +f 940 941 1041 1040 +f 941 942 1042 1041 +f 942 943 1043 1042 +f 943 944 1044 1043 +f 944 945 1045 1044 +f 945 946 1046 1045 +f 946 947 1047 1046 +f 947 948 1048 1047 +f 948 949 1049 1048 +f 949 950 1050 1049 +f 950 951 1051 1050 +f 951 952 1052 1051 +f 952 953 1053 1052 +f 953 954 1054 1053 +f 954 955 1055 1054 +f 955 956 1056 1055 +f 956 957 1057 1056 +f 957 958 1058 1057 +f 958 959 1059 1058 +f 959 960 1060 1059 +f 960 961 1061 1060 +f 961 962 1062 1061 +f 962 963 1063 1062 +f 963 964 1064 1063 +f 964 965 1065 1064 +f 965 966 1066 1065 +f 966 967 1067 1066 +f 967 968 1068 1067 +f 968 969 1069 1068 +f 969 970 1070 1069 +f 970 971 1071 1070 +f 971 972 1072 1071 +f 972 973 1073 1072 +f 973 974 1074 1073 +f 974 975 1075 1074 +f 975 976 1076 1075 +f 976 977 1077 1076 +f 977 978 1078 1077 +f 978 979 1079 1078 +f 979 980 1080 1079 +f 980 981 1081 1080 +f 981 982 1082 1081 +f 982 983 1083 1082 +f 983 984 1084 1083 +f 984 985 1085 1084 +f 985 986 1086 1085 +f 986 987 1087 1086 +f 987 988 1088 1087 +f 988 989 1089 1088 +f 989 990 1090 1089 +f 990 991 1091 1090 +f 991 992 1092 1091 +f 992 993 1093 1092 +f 993 994 1094 1093 +f 994 995 1095 1094 +f 995 996 1096 1095 +f 996 997 1097 1096 +f 997 998 1098 1097 +f 998 999 1099 1098 +f 999 1000 1100 1099 +f 1000 1001 1101 1100 +f 1001 1002 1102 1101 +f 1002 903 1003 1102 +f 1003 1004 1104 1103 +f 1004 1005 1105 1104 +f 1005 1006 1106 1105 +f 1006 1007 1107 1106 +f 1007 1008 1108 1107 +f 1008 1009 1109 1108 +f 1009 1010 1110 1109 +f 1010 1011 1111 1110 +f 1011 1012 1112 1111 +f 1012 1013 1113 1112 +f 1013 1014 1114 1113 +f 1014 1015 1115 1114 +f 1015 1016 1116 1115 +f 1016 1017 1117 1116 +f 1017 1018 1118 1117 +f 1018 1019 1119 1118 +f 1019 1020 1120 1119 +f 1020 1021 1121 1120 +f 1021 1022 1122 1121 +f 1022 1023 1123 1122 +f 1023 1024 1124 1123 +f 1024 1025 1125 1124 +f 1025 1026 1126 1125 +f 1026 1027 1127 1126 +f 1027 1028 1128 1127 +f 1028 1029 1129 1128 +f 1029 1030 1130 1129 +f 1030 1031 1131 1130 +f 1031 1032 1132 1131 +f 1032 1033 1133 1132 +f 1033 1034 1134 1133 +f 1034 1035 1135 1134 +f 1035 1036 1136 1135 +f 1036 1037 1137 1136 +f 1037 1038 1138 1137 +f 1038 1039 1139 1138 +f 1039 1040 1140 1139 +f 1040 1041 1141 1140 +f 1041 1042 1142 1141 +f 1042 1043 1143 1142 +f 1043 1044 1144 1143 +f 1044 1045 1145 1144 +f 1045 1046 1146 1145 +f 1046 1047 1147 1146 +f 1047 1048 1148 1147 +f 1048 1049 1149 1148 +f 1049 1050 1150 1149 +f 1050 1051 1151 1150 +f 1051 1052 1152 1151 +f 1052 1053 1153 1152 +f 1053 1054 1154 1153 +f 1054 1055 1155 1154 +f 1055 1056 1156 1155 +f 1056 1057 1157 1156 +f 1057 1058 1158 1157 +f 1058 1059 1159 1158 +f 1059 1060 1160 1159 +f 1060 1061 1161 1160 +f 1061 1062 1162 1161 +f 1062 1063 1163 1162 +f 1063 1064 1164 1163 +f 1064 1065 1165 1164 +f 1065 1066 1166 1165 +f 1066 1067 1167 1166 +f 1067 1068 1168 1167 +f 1068 1069 1169 1168 +f 1069 1070 1170 1169 +f 1070 1071 1171 1170 +f 1071 1072 1172 1171 +f 1072 1073 1173 1172 +f 1073 1074 1174 1173 +f 1074 1075 1175 1174 +f 1075 1076 1176 1175 +f 1076 1077 1177 1176 +f 1077 1078 1178 1177 +f 1078 1079 1179 1178 +f 1079 1080 1180 1179 +f 1080 1081 1181 1180 +f 1081 1082 1182 1181 +f 1082 1083 1183 1182 +f 1083 1084 1184 1183 +f 1084 1085 1185 1184 +f 1085 1086 1186 1185 +f 1086 1087 1187 1186 +f 1087 1088 1188 1187 +f 1088 1089 1189 1188 +f 1089 1090 1190 1189 +f 1090 1091 1191 1190 +f 1091 1092 1192 1191 +f 1092 1093 1193 1192 +f 1093 1094 1194 1193 +f 1094 1095 1195 1194 +f 1095 1096 1196 1195 +f 1096 1097 1197 1196 +f 1097 1098 1198 1197 +f 1098 1099 1199 1198 +f 1099 1100 1200 1199 +f 1100 1101 1201 1200 +f 1101 1102 1202 1201 +f 1102 1003 1103 1202 +f 1103 1104 1204 1203 +f 1104 1105 1205 1204 +f 1105 1106 1206 1205 +f 1106 1107 1207 1206 +f 1107 1108 1208 1207 +f 1108 1109 1209 1208 +f 1109 1110 1210 1209 +f 1110 1111 1211 1210 +f 1111 1112 1212 1211 +f 1112 1113 1213 1212 +f 1113 1114 1214 1213 +f 1114 1115 1215 1214 +f 1115 1116 1216 1215 +f 1116 1117 1217 1216 +f 1117 1118 1218 1217 +f 1118 1119 1219 1218 +f 1119 1120 1220 1219 +f 1120 1121 1221 1220 +f 1121 1122 1222 1221 +f 1122 1123 1223 1222 +f 1123 1124 1224 1223 +f 1124 1125 1225 1224 +f 1125 1126 1226 1225 +f 1126 1127 1227 1226 +f 1127 1128 1228 1227 +f 1128 1129 1229 1228 +f 1129 1130 1230 1229 +f 1130 1131 1231 1230 +f 1131 1132 1232 1231 +f 1132 1133 1233 1232 +f 1133 1134 1234 1233 +f 1134 1135 1235 1234 +f 1135 1136 1236 1235 +f 1136 1137 1237 1236 +f 1137 1138 1238 1237 +f 1138 1139 1239 1238 +f 1139 1140 1240 1239 +f 1140 1141 1241 1240 +f 1141 1142 1242 1241 +f 1142 1143 1243 1242 +f 1143 1144 1244 1243 +f 1144 1145 1245 1244 +f 1145 1146 1246 1245 +f 1146 1147 1247 1246 +f 1147 1148 1248 1247 +f 1148 1149 1249 1248 +f 1149 1150 1250 1249 +f 1150 1151 1251 1250 +f 1151 1152 1252 1251 +f 1152 1153 1253 1252 +f 1153 1154 1254 1253 +f 1154 1155 1255 1254 +f 1155 1156 1256 1255 +f 1156 1157 1257 1256 +f 1157 1158 1258 1257 +f 1158 1159 1259 1258 +f 1159 1160 1260 1259 +f 1160 1161 1261 1260 +f 1161 1162 1262 1261 +f 1162 1163 1263 1262 +f 1163 1164 1264 1263 +f 1164 1165 1265 1264 +f 1165 1166 1266 1265 +f 1166 1167 1267 1266 +f 1167 1168 1268 1267 +f 1168 1169 1269 1268 +f 1169 1170 1270 1269 +f 1170 1171 1271 1270 +f 1171 1172 1272 1271 +f 1172 1173 1273 1272 +f 1173 1174 1274 1273 +f 1174 1175 1275 1274 +f 1175 1176 1276 1275 +f 1176 1177 1277 1276 +f 1177 1178 1278 1277 +f 1178 1179 1279 1278 +f 1179 1180 1280 1279 +f 1180 1181 1281 1280 +f 1181 1182 1282 1281 +f 1182 1183 1283 1282 +f 1183 1184 1284 1283 +f 1184 1185 1285 1284 +f 1185 1186 1286 1285 +f 1186 1187 1287 1286 +f 1187 1188 1288 1287 +f 1188 1189 1289 1288 +f 1189 1190 1290 1289 +f 1190 1191 1291 1290 +f 1191 1192 1292 1291 +f 1192 1193 1293 1292 +f 1193 1194 1294 1293 +f 1194 1195 1295 1294 +f 1195 1196 1296 1295 +f 1196 1197 1297 1296 +f 1197 1198 1298 1297 +f 1198 1199 1299 1298 +f 1199 1200 1300 1299 +f 1200 1201 1301 1300 +f 1201 1202 1302 1301 +f 1202 1103 1203 1302 +f 1203 1204 1304 1303 +f 1204 1205 1305 1304 +f 1205 1206 1306 1305 +f 1206 1207 1307 1306 +f 1207 1208 1308 1307 +f 1208 1209 1309 1308 +f 1209 1210 1310 1309 +f 1210 1211 1311 1310 +f 1211 1212 1312 1311 +f 1212 1213 1313 1312 +f 1213 1214 1314 1313 +f 1214 1215 1315 1314 +f 1215 1216 1316 1315 +f 1216 1217 1317 1316 +f 1217 1218 1318 1317 +f 1218 1219 1319 1318 +f 1219 1220 1320 1319 +f 1220 1221 1321 1320 +f 1221 1222 1322 1321 +f 1222 1223 1323 1322 +f 1223 1224 1324 1323 +f 1224 1225 1325 1324 +f 1225 1226 1326 1325 +f 1226 1227 1327 1326 +f 1227 1228 1328 1327 +f 1228 1229 1329 1328 +f 1229 1230 1330 1329 +f 1230 1231 1331 1330 +f 1231 1232 1332 1331 +f 1232 1233 1333 1332 +f 1233 1234 1334 1333 +f 1234 1235 1335 1334 +f 1235 1236 1336 1335 +f 1236 1237 1337 1336 +f 1237 1238 1338 1337 +f 1238 1239 1339 1338 +f 1239 1240 1340 1339 +f 1240 1241 1341 1340 +f 1241 1242 1342 1341 +f 1242 1243 1343 1342 +f 1243 1244 1344 1343 +f 1244 1245 1345 1344 +f 1245 1246 1346 1345 +f 1246 1247 1347 1346 +f 1247 1248 1348 1347 +f 1248 1249 1349 1348 +f 1249 1250 1350 1349 +f 1250 1251 1351 1350 +f 1251 1252 1352 1351 +f 1252 1253 1353 1352 +f 1253 1254 1354 1353 +f 1254 1255 1355 1354 +f 1255 1256 1356 1355 +f 1256 1257 1357 1356 +f 1257 1258 1358 1357 +f 1258 1259 1359 1358 +f 1259 1260 1360 1359 +f 1260 1261 1361 1360 +f 1261 1262 1362 1361 +f 1262 1263 1363 1362 +f 1263 1264 1364 1363 +f 1264 1265 1365 1364 +f 1265 1266 1366 1365 +f 1266 1267 1367 1366 +f 1267 1268 1368 1367 +f 1268 1269 1369 1368 +f 1269 1270 1370 1369 +f 1270 1271 1371 1370 +f 1271 1272 1372 1371 +f 1272 1273 1373 1372 +f 1273 1274 1374 1373 +f 1274 1275 1375 1374 +f 1275 1276 1376 1375 +f 1276 1277 1377 1376 +f 1277 1278 1378 1377 +f 1278 1279 1379 1378 +f 1279 1280 1380 1379 +f 1280 1281 1381 1380 +f 1281 1282 1382 1381 +f 1282 1283 1383 1382 +f 1283 1284 1384 1383 +f 1284 1285 1385 1384 +f 1285 1286 1386 1385 +f 1286 1287 1387 1386 +f 1287 1288 1388 1387 +f 1288 1289 1389 1388 +f 1289 1290 1390 1389 +f 1290 1291 1391 1390 +f 1291 1292 1392 1391 +f 1292 1293 1393 1392 +f 1293 1294 1394 1393 +f 1294 1295 1395 1394 +f 1295 1296 1396 1395 +f 1296 1297 1397 1396 +f 1297 1298 1398 1397 +f 1298 1299 1399 1398 +f 1299 1300 1400 1399 +f 1300 1301 1401 1400 +f 1301 1302 1402 1401 +f 1302 1203 1303 1402 +f 1303 1304 1404 1403 +f 1304 1305 1405 1404 +f 1305 1306 1406 1405 +f 1306 1307 1407 1406 +f 1307 1308 1408 1407 +f 1308 1309 1409 1408 +f 1309 1310 1410 1409 +f 1310 1311 1411 1410 +f 1311 1312 1412 1411 +f 1312 1313 1413 1412 +f 1313 1314 1414 1413 +f 1314 1315 1415 1414 +f 1315 1316 1416 1415 +f 1316 1317 1417 1416 +f 1317 1318 1418 1417 +f 1318 1319 1419 1418 +f 1319 1320 1420 1419 +f 1320 1321 1421 1420 +f 1321 1322 1422 1421 +f 1322 1323 1423 1422 +f 1323 1324 1424 1423 +f 1324 1325 1425 1424 +f 1325 1326 1426 1425 +f 1326 1327 1427 1426 +f 1327 1328 1428 1427 +f 1328 1329 1429 1428 +f 1329 1330 1430 1429 +f 1330 1331 1431 1430 +f 1331 1332 1432 1431 +f 1332 1333 1433 1432 +f 1333 1334 1434 1433 +f 1334 1335 1435 1434 +f 1335 1336 1436 1435 +f 1336 1337 1437 1436 +f 1337 1338 1438 1437 +f 1338 1339 1439 1438 +f 1339 1340 1440 1439 +f 1340 1341 1441 1440 +f 1341 1342 1442 1441 +f 1342 1343 1443 1442 +f 1343 1344 1444 1443 +f 1344 1345 1445 1444 +f 1345 1346 1446 1445 +f 1346 1347 1447 1446 +f 1347 1348 1448 1447 +f 1348 1349 1449 1448 +f 1349 1350 1450 1449 +f 1350 1351 1451 1450 +f 1351 1352 1452 1451 +f 1352 1353 1453 1452 +f 1353 1354 1454 1453 +f 1354 1355 1455 1454 +f 1355 1356 1456 1455 +f 1356 1357 1457 1456 +f 1357 1358 1458 1457 +f 1358 1359 1459 1458 +f 1359 1360 1460 1459 +f 1360 1361 1461 1460 +f 1361 1362 1462 1461 +f 1362 1363 1463 1462 +f 1363 1364 1464 1463 +f 1364 1365 1465 1464 +f 1365 1366 1466 1465 +f 1366 1367 1467 1466 +f 1367 1368 1468 1467 +f 1368 1369 1469 1468 +f 1369 1370 1470 1469 +f 1370 1371 1471 1470 +f 1371 1372 1472 1471 +f 1372 1373 1473 1472 +f 1373 1374 1474 1473 +f 1374 1375 1475 1474 +f 1375 1376 1476 1475 +f 1376 1377 1477 1476 +f 1377 1378 1478 1477 +f 1378 1379 1479 1478 +f 1379 1380 1480 1479 +f 1380 1381 1481 1480 +f 1381 1382 1482 1481 +f 1382 1383 1483 1482 +f 1383 1384 1484 1483 +f 1384 1385 1485 1484 +f 1385 1386 1486 1485 +f 1386 1387 1487 1486 +f 1387 1388 1488 1487 +f 1388 1389 1489 1488 +f 1389 1390 1490 1489 +f 1390 1391 1491 1490 +f 1391 1392 1492 1491 +f 1392 1393 1493 1492 +f 1393 1394 1494 1493 +f 1394 1395 1495 1494 +f 1395 1396 1496 1495 +f 1396 1397 1497 1496 +f 1397 1398 1498 1497 +f 1398 1399 1499 1498 +f 1399 1400 1500 1499 +f 1400 1401 1501 1500 +f 1401 1402 1502 1501 +f 1402 1303 1403 1502 +f 1403 1404 1504 1503 +f 1404 1405 1505 1504 +f 1405 1406 1506 1505 +f 1406 1407 1507 1506 +f 1407 1408 1508 1507 +f 1408 1409 1509 1508 +f 1409 1410 1510 1509 +f 1410 1411 1511 1510 +f 1411 1412 1512 1511 +f 1412 1413 1513 1512 +f 1413 1414 1514 1513 +f 1414 1415 1515 1514 +f 1415 1416 1516 1515 +f 1416 1417 1517 1516 +f 1417 1418 1518 1517 +f 1418 1419 1519 1518 +f 1419 1420 1520 1519 +f 1420 1421 1521 1520 +f 1421 1422 1522 1521 +f 1422 1423 1523 1522 +f 1423 1424 1524 1523 +f 1424 1425 1525 1524 +f 1425 1426 1526 1525 +f 1426 1427 1527 1526 +f 1427 1428 1528 1527 +f 1428 1429 1529 1528 +f 1429 1430 1530 1529 +f 1430 1431 1531 1530 +f 1431 1432 1532 1531 +f 1432 1433 1533 1532 +f 1433 1434 1534 1533 +f 1434 1435 1535 1534 +f 1435 1436 1536 1535 +f 1436 1437 1537 1536 +f 1437 1438 1538 1537 +f 1438 1439 1539 1538 +f 1439 1440 1540 1539 +f 1440 1441 1541 1540 +f 1441 1442 1542 1541 +f 1442 1443 1543 1542 +f 1443 1444 1544 1543 +f 1444 1445 1545 1544 +f 1445 1446 1546 1545 +f 1446 1447 1547 1546 +f 1447 1448 1548 1547 +f 1448 1449 1549 1548 +f 1449 1450 1550 1549 +f 1450 1451 1551 1550 +f 1451 1452 1552 1551 +f 1452 1453 1553 1552 +f 1453 1454 1554 1553 +f 1454 1455 1555 1554 +f 1455 1456 1556 1555 +f 1456 1457 1557 1556 +f 1457 1458 1558 1557 +f 1458 1459 1559 1558 +f 1459 1460 1560 1559 +f 1460 1461 1561 1560 +f 1461 1462 1562 1561 +f 1462 1463 1563 1562 +f 1463 1464 1564 1563 +f 1464 1465 1565 1564 +f 1465 1466 1566 1565 +f 1466 1467 1567 1566 +f 1467 1468 1568 1567 +f 1468 1469 1569 1568 +f 1469 1470 1570 1569 +f 1470 1471 1571 1570 +f 1471 1472 1572 1571 +f 1472 1473 1573 1572 +f 1473 1474 1574 1573 +f 1474 1475 1575 1574 +f 1475 1476 1576 1575 +f 1476 1477 1577 1576 +f 1477 1478 1578 1577 +f 1478 1479 1579 1578 +f 1479 1480 1580 1579 +f 1480 1481 1581 1580 +f 1481 1482 1582 1581 +f 1482 1483 1583 1582 +f 1483 1484 1584 1583 +f 1484 1485 1585 1584 +f 1485 1486 1586 1585 +f 1486 1487 1587 1586 +f 1487 1488 1588 1587 +f 1488 1489 1589 1588 +f 1489 1490 1590 1589 +f 1490 1491 1591 1590 +f 1491 1492 1592 1591 +f 1492 1493 1593 1592 +f 1493 1494 1594 1593 +f 1494 1495 1595 1594 +f 1495 1496 1596 1595 +f 1496 1497 1597 1596 +f 1497 1498 1598 1597 +f 1498 1499 1599 1598 +f 1499 1500 1600 1599 +f 1500 1501 1601 1600 +f 1501 1502 1602 1601 +f 1502 1403 1503 1602 +f 1503 1504 1604 1603 +f 1504 1505 1605 1604 +f 1505 1506 1606 1605 +f 1506 1507 1607 1606 +f 1507 1508 1608 1607 +f 1508 1509 1609 1608 +f 1509 1510 1610 1609 +f 1510 1511 1611 1610 +f 1511 1512 1612 1611 +f 1512 1513 1613 1612 +f 1513 1514 1614 1613 +f 1514 1515 1615 1614 +f 1515 1516 1616 1615 +f 1516 1517 1617 1616 +f 1517 1518 1618 1617 +f 1518 1519 1619 1618 +f 1519 1520 1620 1619 +f 1520 1521 1621 1620 +f 1521 1522 1622 1621 +f 1522 1523 1623 1622 +f 1523 1524 1624 1623 +f 1524 1525 1625 1624 +f 1525 1526 1626 1625 +f 1526 1527 1627 1626 +f 1527 1528 1628 1627 +f 1528 1529 1629 1628 +f 1529 1530 1630 1629 +f 1530 1531 1631 1630 +f 1531 1532 1632 1631 +f 1532 1533 1633 1632 +f 1533 1534 1634 1633 +f 1534 1535 1635 1634 +f 1535 1536 1636 1635 +f 1536 1537 1637 1636 +f 1537 1538 1638 1637 +f 1538 1539 1639 1638 +f 1539 1540 1640 1639 +f 1540 1541 1641 1640 +f 1541 1542 1642 1641 +f 1542 1543 1643 1642 +f 1543 1544 1644 1643 +f 1544 1545 1645 1644 +f 1545 1546 1646 1645 +f 1546 1547 1647 1646 +f 1547 1548 1648 1647 +f 1548 1549 1649 1648 +f 1549 1550 1650 1649 +f 1550 1551 1651 1650 +f 1551 1552 1652 1651 +f 1552 1553 1653 1652 +f 1553 1554 1654 1653 +f 1554 1555 1655 1654 +f 1555 1556 1656 1655 +f 1556 1557 1657 1656 +f 1557 1558 1658 1657 +f 1558 1559 1659 1658 +f 1559 1560 1660 1659 +f 1560 1561 1661 1660 +f 1561 1562 1662 1661 +f 1562 1563 1663 1662 +f 1563 1564 1664 1663 +f 1564 1565 1665 1664 +f 1565 1566 1666 1665 +f 1566 1567 1667 1666 +f 1567 1568 1668 1667 +f 1568 1569 1669 1668 +f 1569 1570 1670 1669 +f 1570 1571 1671 1670 +f 1571 1572 1672 1671 +f 1572 1573 1673 1672 +f 1573 1574 1674 1673 +f 1574 1575 1675 1674 +f 1575 1576 1676 1675 +f 1576 1577 1677 1676 +f 1577 1578 1678 1677 +f 1578 1579 1679 1678 +f 1579 1580 1680 1679 +f 1580 1581 1681 1680 +f 1581 1582 1682 1681 +f 1582 1583 1683 1682 +f 1583 1584 1684 1683 +f 1584 1585 1685 1684 +f 1585 1586 1686 1685 +f 1586 1587 1687 1686 +f 1587 1588 1688 1687 +f 1588 1589 1689 1688 +f 1589 1590 1690 1689 +f 1590 1591 1691 1690 +f 1591 1592 1692 1691 +f 1592 1593 1693 1692 +f 1593 1594 1694 1693 +f 1594 1595 1695 1694 +f 1595 1596 1696 1695 +f 1596 1597 1697 1696 +f 1597 1598 1698 1697 +f 1598 1599 1699 1698 +f 1599 1600 1700 1699 +f 1600 1601 1701 1700 +f 1601 1602 1702 1701 +f 1602 1503 1603 1702 +f 1603 1604 1704 1703 +f 1604 1605 1705 1704 +f 1605 1606 1706 1705 +f 1606 1607 1707 1706 +f 1607 1608 1708 1707 +f 1608 1609 1709 1708 +f 1609 1610 1710 1709 +f 1610 1611 1711 1710 +f 1611 1612 1712 1711 +f 1612 1613 1713 1712 +f 1613 1614 1714 1713 +f 1614 1615 1715 1714 +f 1615 1616 1716 1715 +f 1616 1617 1717 1716 +f 1617 1618 1718 1717 +f 1618 1619 1719 1718 +f 1619 1620 1720 1719 +f 1620 1621 1721 1720 +f 1621 1622 1722 1721 +f 1622 1623 1723 1722 +f 1623 1624 1724 1723 +f 1624 1625 1725 1724 +f 1625 1626 1726 1725 +f 1626 1627 1727 1726 +f 1627 1628 1728 1727 +f 1628 1629 1729 1728 +f 1629 1630 1730 1729 +f 1630 1631 1731 1730 +f 1631 1632 1732 1731 +f 1632 1633 1733 1732 +f 1633 1634 1734 1733 +f 1634 1635 1735 1734 +f 1635 1636 1736 1735 +f 1636 1637 1737 1736 +f 1637 1638 1738 1737 +f 1638 1639 1739 1738 +f 1639 1640 1740 1739 +f 1640 1641 1741 1740 +f 1641 1642 1742 1741 +f 1642 1643 1743 1742 +f 1643 1644 1744 1743 +f 1644 1645 1745 1744 +f 1645 1646 1746 1745 +f 1646 1647 1747 1746 +f 1647 1648 1748 1747 +f 1648 1649 1749 1748 +f 1649 1650 1750 1749 +f 1650 1651 1751 1750 +f 1651 1652 1752 1751 +f 1652 1653 1753 1752 +f 1653 1654 1754 1753 +f 1654 1655 1755 1754 +f 1655 1656 1756 1755 +f 1656 1657 1757 1756 +f 1657 1658 1758 1757 +f 1658 1659 1759 1758 +f 1659 1660 1760 1759 +f 1660 1661 1761 1760 +f 1661 1662 1762 1761 +f 1662 1663 1763 1762 +f 1663 1664 1764 1763 +f 1664 1665 1765 1764 +f 1665 1666 1766 1765 +f 1666 1667 1767 1766 +f 1667 1668 1768 1767 +f 1668 1669 1769 1768 +f 1669 1670 1770 1769 +f 1670 1671 1771 1770 +f 1671 1672 1772 1771 +f 1672 1673 1773 1772 +f 1673 1674 1774 1773 +f 1674 1675 1775 1774 +f 1675 1676 1776 1775 +f 1676 1677 1777 1776 +f 1677 1678 1778 1777 +f 1678 1679 1779 1778 +f 1679 1680 1780 1779 +f 1680 1681 1781 1780 +f 1681 1682 1782 1781 +f 1682 1683 1783 1782 +f 1683 1684 1784 1783 +f 1684 1685 1785 1784 +f 1685 1686 1786 1785 +f 1686 1687 1787 1786 +f 1687 1688 1788 1787 +f 1688 1689 1789 1788 +f 1689 1690 1790 1789 +f 1690 1691 1791 1790 +f 1691 1692 1792 1791 +f 1692 1693 1793 1792 +f 1693 1694 1794 1793 +f 1694 1695 1795 1794 +f 1695 1696 1796 1795 +f 1696 1697 1797 1796 +f 1697 1698 1798 1797 +f 1698 1699 1799 1798 +f 1699 1700 1800 1799 +f 1700 1701 1801 1800 +f 1701 1702 1802 1801 +f 1702 1603 1703 1802 +f 1703 1704 1804 1803 +f 1704 1705 1805 1804 +f 1705 1706 1806 1805 +f 1706 1707 1807 1806 +f 1707 1708 1808 1807 +f 1708 1709 1809 1808 +f 1709 1710 1810 1809 +f 1710 1711 1811 1810 +f 1711 1712 1812 1811 +f 1712 1713 1813 1812 +f 1713 1714 1814 1813 +f 1714 1715 1815 1814 +f 1715 1716 1816 1815 +f 1716 1717 1817 1816 +f 1717 1718 1818 1817 +f 1718 1719 1819 1818 +f 1719 1720 1820 1819 +f 1720 1721 1821 1820 +f 1721 1722 1822 1821 +f 1722 1723 1823 1822 +f 1723 1724 1824 1823 +f 1724 1725 1825 1824 +f 1725 1726 1826 1825 +f 1726 1727 1827 1826 +f 1727 1728 1828 1827 +f 1728 1729 1829 1828 +f 1729 1730 1830 1829 +f 1730 1731 1831 1830 +f 1731 1732 1832 1831 +f 1732 1733 1833 1832 +f 1733 1734 1834 1833 +f 1734 1735 1835 1834 +f 1735 1736 1836 1835 +f 1736 1737 1837 1836 +f 1737 1738 1838 1837 +f 1738 1739 1839 1838 +f 1739 1740 1840 1839 +f 1740 1741 1841 1840 +f 1741 1742 1842 1841 +f 1742 1743 1843 1842 +f 1743 1744 1844 1843 +f 1744 1745 1845 1844 +f 1745 1746 1846 1845 +f 1746 1747 1847 1846 +f 1747 1748 1848 1847 +f 1748 1749 1849 1848 +f 1749 1750 1850 1849 +f 1750 1751 1851 1850 +f 1751 1752 1852 1851 +f 1752 1753 1853 1852 +f 1753 1754 1854 1853 +f 1754 1755 1855 1854 +f 1755 1756 1856 1855 +f 1756 1757 1857 1856 +f 1757 1758 1858 1857 +f 1758 1759 1859 1858 +f 1759 1760 1860 1859 +f 1760 1761 1861 1860 +f 1761 1762 1862 1861 +f 1762 1763 1863 1862 +f 1763 1764 1864 1863 +f 1764 1765 1865 1864 +f 1765 1766 1866 1865 +f 1766 1767 1867 1866 +f 1767 1768 1868 1867 +f 1768 1769 1869 1868 +f 1769 1770 1870 1869 +f 1770 1771 1871 1870 +f 1771 1772 1872 1871 +f 1772 1773 1873 1872 +f 1773 1774 1874 1873 +f 1774 1775 1875 1874 +f 1775 1776 1876 1875 +f 1776 1777 1877 1876 +f 1777 1778 1878 1877 +f 1778 1779 1879 1878 +f 1779 1780 1880 1879 +f 1780 1781 1881 1880 +f 1781 1782 1882 1881 +f 1782 1783 1883 1882 +f 1783 1784 1884 1883 +f 1784 1785 1885 1884 +f 1785 1786 1886 1885 +f 1786 1787 1887 1886 +f 1787 1788 1888 1887 +f 1788 1789 1889 1888 +f 1789 1790 1890 1889 +f 1790 1791 1891 1890 +f 1791 1792 1892 1891 +f 1792 1793 1893 1892 +f 1793 1794 1894 1893 +f 1794 1795 1895 1894 +f 1795 1796 1896 1895 +f 1796 1797 1897 1896 +f 1797 1798 1898 1897 +f 1798 1799 1899 1898 +f 1799 1800 1900 1899 +f 1800 1801 1901 1900 +f 1801 1802 1902 1901 +f 1802 1703 1803 1902 +f 1803 1804 1904 1903 +f 1804 1805 1905 1904 +f 1805 1806 1906 1905 +f 1806 1807 1907 1906 +f 1807 1808 1908 1907 +f 1808 1809 1909 1908 +f 1809 1810 1910 1909 +f 1810 1811 1911 1910 +f 1811 1812 1912 1911 +f 1812 1813 1913 1912 +f 1813 1814 1914 1913 +f 1814 1815 1915 1914 +f 1815 1816 1916 1915 +f 1816 1817 1917 1916 +f 1817 1818 1918 1917 +f 1818 1819 1919 1918 +f 1819 1820 1920 1919 +f 1820 1821 1921 1920 +f 1821 1822 1922 1921 +f 1822 1823 1923 1922 +f 1823 1824 1924 1923 +f 1824 1825 1925 1924 +f 1825 1826 1926 1925 +f 1826 1827 1927 1926 +f 1827 1828 1928 1927 +f 1828 1829 1929 1928 +f 1829 1830 1930 1929 +f 1830 1831 1931 1930 +f 1831 1832 1932 1931 +f 1832 1833 1933 1932 +f 1833 1834 1934 1933 +f 1834 1835 1935 1934 +f 1835 1836 1936 1935 +f 1836 1837 1937 1936 +f 1837 1838 1938 1937 +f 1838 1839 1939 1938 +f 1839 1840 1940 1939 +f 1840 1841 1941 1940 +f 1841 1842 1942 1941 +f 1842 1843 1943 1942 +f 1843 1844 1944 1943 +f 1844 1845 1945 1944 +f 1845 1846 1946 1945 +f 1846 1847 1947 1946 +f 1847 1848 1948 1947 +f 1848 1849 1949 1948 +f 1849 1850 1950 1949 +f 1850 1851 1951 1950 +f 1851 1852 1952 1951 +f 1852 1853 1953 1952 +f 1853 1854 1954 1953 +f 1854 1855 1955 1954 +f 1855 1856 1956 1955 +f 1856 1857 1957 1956 +f 1857 1858 1958 1957 +f 1858 1859 1959 1958 +f 1859 1860 1960 1959 +f 1860 1861 1961 1960 +f 1861 1862 1962 1961 +f 1862 1863 1963 1962 +f 1863 1864 1964 1963 +f 1864 1865 1965 1964 +f 1865 1866 1966 1965 +f 1866 1867 1967 1966 +f 1867 1868 1968 1967 +f 1868 1869 1969 1968 +f 1869 1870 1970 1969 +f 1870 1871 1971 1970 +f 1871 1872 1972 1971 +f 1872 1873 1973 1972 +f 1873 1874 1974 1973 +f 1874 1875 1975 1974 +f 1875 1876 1976 1975 +f 1876 1877 1977 1976 +f 1877 1878 1978 1977 +f 1878 1879 1979 1978 +f 1879 1880 1980 1979 +f 1880 1881 1981 1980 +f 1881 1882 1982 1981 +f 1882 1883 1983 1982 +f 1883 1884 1984 1983 +f 1884 1885 1985 1984 +f 1885 1886 1986 1985 +f 1886 1887 1987 1986 +f 1887 1888 1988 1987 +f 1888 1889 1989 1988 +f 1889 1890 1990 1989 +f 1890 1891 1991 1990 +f 1891 1892 1992 1991 +f 1892 1893 1993 1992 +f 1893 1894 1994 1993 +f 1894 1895 1995 1994 +f 1895 1896 1996 1995 +f 1896 1897 1997 1996 +f 1897 1898 1998 1997 +f 1898 1899 1999 1998 +f 1899 1900 2000 1999 +f 1900 1901 2001 2000 +f 1901 1902 2002 2001 +f 1902 1803 1903 2002 +f 1903 1904 2004 2003 +f 1904 1905 2005 2004 +f 1905 1906 2006 2005 +f 1906 1907 2007 2006 +f 1907 1908 2008 2007 +f 1908 1909 2009 2008 +f 1909 1910 2010 2009 +f 1910 1911 2011 2010 +f 1911 1912 2012 2011 +f 1912 1913 2013 2012 +f 1913 1914 2014 2013 +f 1914 1915 2015 2014 +f 1915 1916 2016 2015 +f 1916 1917 2017 2016 +f 1917 1918 2018 2017 +f 1918 1919 2019 2018 +f 1919 1920 2020 2019 +f 1920 1921 2021 2020 +f 1921 1922 2022 2021 +f 1922 1923 2023 2022 +f 1923 1924 2024 2023 +f 1924 1925 2025 2024 +f 1925 1926 2026 2025 +f 1926 1927 2027 2026 +f 1927 1928 2028 2027 +f 1928 1929 2029 2028 +f 1929 1930 2030 2029 +f 1930 1931 2031 2030 +f 1931 1932 2032 2031 +f 1932 1933 2033 2032 +f 1933 1934 2034 2033 +f 1934 1935 2035 2034 +f 1935 1936 2036 2035 +f 1936 1937 2037 2036 +f 1937 1938 2038 2037 +f 1938 1939 2039 2038 +f 1939 1940 2040 2039 +f 1940 1941 2041 2040 +f 1941 1942 2042 2041 +f 1942 1943 2043 2042 +f 1943 1944 2044 2043 +f 1944 1945 2045 2044 +f 1945 1946 2046 2045 +f 1946 1947 2047 2046 +f 1947 1948 2048 2047 +f 1948 1949 2049 2048 +f 1949 1950 2050 2049 +f 1950 1951 2051 2050 +f 1951 1952 2052 2051 +f 1952 1953 2053 2052 +f 1953 1954 2054 2053 +f 1954 1955 2055 2054 +f 1955 1956 2056 2055 +f 1956 1957 2057 2056 +f 1957 1958 2058 2057 +f 1958 1959 2059 2058 +f 1959 1960 2060 2059 +f 1960 1961 2061 2060 +f 1961 1962 2062 2061 +f 1962 1963 2063 2062 +f 1963 1964 2064 2063 +f 1964 1965 2065 2064 +f 1965 1966 2066 2065 +f 1966 1967 2067 2066 +f 1967 1968 2068 2067 +f 1968 1969 2069 2068 +f 1969 1970 2070 2069 +f 1970 1971 2071 2070 +f 1971 1972 2072 2071 +f 1972 1973 2073 2072 +f 1973 1974 2074 2073 +f 1974 1975 2075 2074 +f 1975 1976 2076 2075 +f 1976 1977 2077 2076 +f 1977 1978 2078 2077 +f 1978 1979 2079 2078 +f 1979 1980 2080 2079 +f 1980 1981 2081 2080 +f 1981 1982 2082 2081 +f 1982 1983 2083 2082 +f 1983 1984 2084 2083 +f 1984 1985 2085 2084 +f 1985 1986 2086 2085 +f 1986 1987 2087 2086 +f 1987 1988 2088 2087 +f 1988 1989 2089 2088 +f 1989 1990 2090 2089 +f 1990 1991 2091 2090 +f 1991 1992 2092 2091 +f 1992 1993 2093 2092 +f 1993 1994 2094 2093 +f 1994 1995 2095 2094 +f 1995 1996 2096 2095 +f 1996 1997 2097 2096 +f 1997 1998 2098 2097 +f 1998 1999 2099 2098 +f 1999 2000 2100 2099 +f 2000 2001 2101 2100 +f 2001 2002 2102 2101 +f 2002 1903 2003 2102 +f 2003 2004 2104 2103 +f 2004 2005 2105 2104 +f 2005 2006 2106 2105 +f 2006 2007 2107 2106 +f 2007 2008 2108 2107 +f 2008 2009 2109 2108 +f 2009 2010 2110 2109 +f 2010 2011 2111 2110 +f 2011 2012 2112 2111 +f 2012 2013 2113 2112 +f 2013 2014 2114 2113 +f 2014 2015 2115 2114 +f 2015 2016 2116 2115 +f 2016 2017 2117 2116 +f 2017 2018 2118 2117 +f 2018 2019 2119 2118 +f 2019 2020 2120 2119 +f 2020 2021 2121 2120 +f 2021 2022 2122 2121 +f 2022 2023 2123 2122 +f 2023 2024 2124 2123 +f 2024 2025 2125 2124 +f 2025 2026 2126 2125 +f 2026 2027 2127 2126 +f 2027 2028 2128 2127 +f 2028 2029 2129 2128 +f 2029 2030 2130 2129 +f 2030 2031 2131 2130 +f 2031 2032 2132 2131 +f 2032 2033 2133 2132 +f 2033 2034 2134 2133 +f 2034 2035 2135 2134 +f 2035 2036 2136 2135 +f 2036 2037 2137 2136 +f 2037 2038 2138 2137 +f 2038 2039 2139 2138 +f 2039 2040 2140 2139 +f 2040 2041 2141 2140 +f 2041 2042 2142 2141 +f 2042 2043 2143 2142 +f 2043 2044 2144 2143 +f 2044 2045 2145 2144 +f 2045 2046 2146 2145 +f 2046 2047 2147 2146 +f 2047 2048 2148 2147 +f 2048 2049 2149 2148 +f 2049 2050 2150 2149 +f 2050 2051 2151 2150 +f 2051 2052 2152 2151 +f 2052 2053 2153 2152 +f 2053 2054 2154 2153 +f 2054 2055 2155 2154 +f 2055 2056 2156 2155 +f 2056 2057 2157 2156 +f 2057 2058 2158 2157 +f 2058 2059 2159 2158 +f 2059 2060 2160 2159 +f 2060 2061 2161 2160 +f 2061 2062 2162 2161 +f 2062 2063 2163 2162 +f 2063 2064 2164 2163 +f 2064 2065 2165 2164 +f 2065 2066 2166 2165 +f 2066 2067 2167 2166 +f 2067 2068 2168 2167 +f 2068 2069 2169 2168 +f 2069 2070 2170 2169 +f 2070 2071 2171 2170 +f 2071 2072 2172 2171 +f 2072 2073 2173 2172 +f 2073 2074 2174 2173 +f 2074 2075 2175 2174 +f 2075 2076 2176 2175 +f 2076 2077 2177 2176 +f 2077 2078 2178 2177 +f 2078 2079 2179 2178 +f 2079 2080 2180 2179 +f 2080 2081 2181 2180 +f 2081 2082 2182 2181 +f 2082 2083 2183 2182 +f 2083 2084 2184 2183 +f 2084 2085 2185 2184 +f 2085 2086 2186 2185 +f 2086 2087 2187 2186 +f 2087 2088 2188 2187 +f 2088 2089 2189 2188 +f 2089 2090 2190 2189 +f 2090 2091 2191 2190 +f 2091 2092 2192 2191 +f 2092 2093 2193 2192 +f 2093 2094 2194 2193 +f 2094 2095 2195 2194 +f 2095 2096 2196 2195 +f 2096 2097 2197 2196 +f 2097 2098 2198 2197 +f 2098 2099 2199 2198 +f 2099 2100 2200 2199 +f 2100 2101 2201 2200 +f 2101 2102 2202 2201 +f 2102 2003 2103 2202 +f 2103 2104 2204 2203 +f 2104 2105 2205 2204 +f 2105 2106 2206 2205 +f 2106 2107 2207 2206 +f 2107 2108 2208 2207 +f 2108 2109 2209 2208 +f 2109 2110 2210 2209 +f 2110 2111 2211 2210 +f 2111 2112 2212 2211 +f 2112 2113 2213 2212 +f 2113 2114 2214 2213 +f 2114 2115 2215 2214 +f 2115 2116 2216 2215 +f 2116 2117 2217 2216 +f 2117 2118 2218 2217 +f 2118 2119 2219 2218 +f 2119 2120 2220 2219 +f 2120 2121 2221 2220 +f 2121 2122 2222 2221 +f 2122 2123 2223 2222 +f 2123 2124 2224 2223 +f 2124 2125 2225 2224 +f 2125 2126 2226 2225 +f 2126 2127 2227 2226 +f 2127 2128 2228 2227 +f 2128 2129 2229 2228 +f 2129 2130 2230 2229 +f 2130 2131 2231 2230 +f 2131 2132 2232 2231 +f 2132 2133 2233 2232 +f 2133 2134 2234 2233 +f 2134 2135 2235 2234 +f 2135 2136 2236 2235 +f 2136 2137 2237 2236 +f 2137 2138 2238 2237 +f 2138 2139 2239 2238 +f 2139 2140 2240 2239 +f 2140 2141 2241 2240 +f 2141 2142 2242 2241 +f 2142 2143 2243 2242 +f 2143 2144 2244 2243 +f 2144 2145 2245 2244 +f 2145 2146 2246 2245 +f 2146 2147 2247 2246 +f 2147 2148 2248 2247 +f 2148 2149 2249 2248 +f 2149 2150 2250 2249 +f 2150 2151 2251 2250 +f 2151 2152 2252 2251 +f 2152 2153 2253 2252 +f 2153 2154 2254 2253 +f 2154 2155 2255 2254 +f 2155 2156 2256 2255 +f 2156 2157 2257 2256 +f 2157 2158 2258 2257 +f 2158 2159 2259 2258 +f 2159 2160 2260 2259 +f 2160 2161 2261 2260 +f 2161 2162 2262 2261 +f 2162 2163 2263 2262 +f 2163 2164 2264 2263 +f 2164 2165 2265 2264 +f 2165 2166 2266 2265 +f 2166 2167 2267 2266 +f 2167 2168 2268 2267 +f 2168 2169 2269 2268 +f 2169 2170 2270 2269 +f 2170 2171 2271 2270 +f 2171 2172 2272 2271 +f 2172 2173 2273 2272 +f 2173 2174 2274 2273 +f 2174 2175 2275 2274 +f 2175 2176 2276 2275 +f 2176 2177 2277 2276 +f 2177 2178 2278 2277 +f 2178 2179 2279 2278 +f 2179 2180 2280 2279 +f 2180 2181 2281 2280 +f 2181 2182 2282 2281 +f 2182 2183 2283 2282 +f 2183 2184 2284 2283 +f 2184 2185 2285 2284 +f 2185 2186 2286 2285 +f 2186 2187 2287 2286 +f 2187 2188 2288 2287 +f 2188 2189 2289 2288 +f 2189 2190 2290 2289 +f 2190 2191 2291 2290 +f 2191 2192 2292 2291 +f 2192 2193 2293 2292 +f 2193 2194 2294 2293 +f 2194 2195 2295 2294 +f 2195 2196 2296 2295 +f 2196 2197 2297 2296 +f 2197 2198 2298 2297 +f 2198 2199 2299 2298 +f 2199 2200 2300 2299 +f 2200 2201 2301 2300 +f 2201 2202 2302 2301 +f 2202 2103 2203 2302 +f 2203 2204 2304 2303 +f 2204 2205 2305 2304 +f 2205 2206 2306 2305 +f 2206 2207 2307 2306 +f 2207 2208 2308 2307 +f 2208 2209 2309 2308 +f 2209 2210 2310 2309 +f 2210 2211 2311 2310 +f 2211 2212 2312 2311 +f 2212 2213 2313 2312 +f 2213 2214 2314 2313 +f 2214 2215 2315 2314 +f 2215 2216 2316 2315 +f 2216 2217 2317 2316 +f 2217 2218 2318 2317 +f 2218 2219 2319 2318 +f 2219 2220 2320 2319 +f 2220 2221 2321 2320 +f 2221 2222 2322 2321 +f 2222 2223 2323 2322 +f 2223 2224 2324 2323 +f 2224 2225 2325 2324 +f 2225 2226 2326 2325 +f 2226 2227 2327 2326 +f 2227 2228 2328 2327 +f 2228 2229 2329 2328 +f 2229 2230 2330 2329 +f 2230 2231 2331 2330 +f 2231 2232 2332 2331 +f 2232 2233 2333 2332 +f 2233 2234 2334 2333 +f 2234 2235 2335 2334 +f 2235 2236 2336 2335 +f 2236 2237 2337 2336 +f 2237 2238 2338 2337 +f 2238 2239 2339 2338 +f 2239 2240 2340 2339 +f 2240 2241 2341 2340 +f 2241 2242 2342 2341 +f 2242 2243 2343 2342 +f 2243 2244 2344 2343 +f 2244 2245 2345 2344 +f 2245 2246 2346 2345 +f 2246 2247 2347 2346 +f 2247 2248 2348 2347 +f 2248 2249 2349 2348 +f 2249 2250 2350 2349 +f 2250 2251 2351 2350 +f 2251 2252 2352 2351 +f 2252 2253 2353 2352 +f 2253 2254 2354 2353 +f 2254 2255 2355 2354 +f 2255 2256 2356 2355 +f 2256 2257 2357 2356 +f 2257 2258 2358 2357 +f 2258 2259 2359 2358 +f 2259 2260 2360 2359 +f 2260 2261 2361 2360 +f 2261 2262 2362 2361 +f 2262 2263 2363 2362 +f 2263 2264 2364 2363 +f 2264 2265 2365 2364 +f 2265 2266 2366 2365 +f 2266 2267 2367 2366 +f 2267 2268 2368 2367 +f 2268 2269 2369 2368 +f 2269 2270 2370 2369 +f 2270 2271 2371 2370 +f 2271 2272 2372 2371 +f 2272 2273 2373 2372 +f 2273 2274 2374 2373 +f 2274 2275 2375 2374 +f 2275 2276 2376 2375 +f 2276 2277 2377 2376 +f 2277 2278 2378 2377 +f 2278 2279 2379 2378 +f 2279 2280 2380 2379 +f 2280 2281 2381 2380 +f 2281 2282 2382 2381 +f 2282 2283 2383 2382 +f 2283 2284 2384 2383 +f 2284 2285 2385 2384 +f 2285 2286 2386 2385 +f 2286 2287 2387 2386 +f 2287 2288 2388 2387 +f 2288 2289 2389 2388 +f 2289 2290 2390 2389 +f 2290 2291 2391 2390 +f 2291 2292 2392 2391 +f 2292 2293 2393 2392 +f 2293 2294 2394 2393 +f 2294 2295 2395 2394 +f 2295 2296 2396 2395 +f 2296 2297 2397 2396 +f 2297 2298 2398 2397 +f 2298 2299 2399 2398 +f 2299 2300 2400 2399 +f 2300 2301 2401 2400 +f 2301 2302 2402 2401 +f 2302 2203 2303 2402 +f 2303 2304 2404 2403 +f 2304 2305 2405 2404 +f 2305 2306 2406 2405 +f 2306 2307 2407 2406 +f 2307 2308 2408 2407 +f 2308 2309 2409 2408 +f 2309 2310 2410 2409 +f 2310 2311 2411 2410 +f 2311 2312 2412 2411 +f 2312 2313 2413 2412 +f 2313 2314 2414 2413 +f 2314 2315 2415 2414 +f 2315 2316 2416 2415 +f 2316 2317 2417 2416 +f 2317 2318 2418 2417 +f 2318 2319 2419 2418 +f 2319 2320 2420 2419 +f 2320 2321 2421 2420 +f 2321 2322 2422 2421 +f 2322 2323 2423 2422 +f 2323 2324 2424 2423 +f 2324 2325 2425 2424 +f 2325 2326 2426 2425 +f 2326 2327 2427 2426 +f 2327 2328 2428 2427 +f 2328 2329 2429 2428 +f 2329 2330 2430 2429 +f 2330 2331 2431 2430 +f 2331 2332 2432 2431 +f 2332 2333 2433 2432 +f 2333 2334 2434 2433 +f 2334 2335 2435 2434 +f 2335 2336 2436 2435 +f 2336 2337 2437 2436 +f 2337 2338 2438 2437 +f 2338 2339 2439 2438 +f 2339 2340 2440 2439 +f 2340 2341 2441 2440 +f 2341 2342 2442 2441 +f 2342 2343 2443 2442 +f 2343 2344 2444 2443 +f 2344 2345 2445 2444 +f 2345 2346 2446 2445 +f 2346 2347 2447 2446 +f 2347 2348 2448 2447 +f 2348 2349 2449 2448 +f 2349 2350 2450 2449 +f 2350 2351 2451 2450 +f 2351 2352 2452 2451 +f 2352 2353 2453 2452 +f 2353 2354 2454 2453 +f 2354 2355 2455 2454 +f 2355 2356 2456 2455 +f 2356 2357 2457 2456 +f 2357 2358 2458 2457 +f 2358 2359 2459 2458 +f 2359 2360 2460 2459 +f 2360 2361 2461 2460 +f 2361 2362 2462 2461 +f 2362 2363 2463 2462 +f 2363 2364 2464 2463 +f 2364 2365 2465 2464 +f 2365 2366 2466 2465 +f 2366 2367 2467 2466 +f 2367 2368 2468 2467 +f 2368 2369 2469 2468 +f 2369 2370 2470 2469 +f 2370 2371 2471 2470 +f 2371 2372 2472 2471 +f 2372 2373 2473 2472 +f 2373 2374 2474 2473 +f 2374 2375 2475 2474 +f 2375 2376 2476 2475 +f 2376 2377 2477 2476 +f 2377 2378 2478 2477 +f 2378 2379 2479 2478 +f 2379 2380 2480 2479 +f 2380 2381 2481 2480 +f 2381 2382 2482 2481 +f 2382 2383 2483 2482 +f 2383 2384 2484 2483 +f 2384 2385 2485 2484 +f 2385 2386 2486 2485 +f 2386 2387 2487 2486 +f 2387 2388 2488 2487 +f 2388 2389 2489 2488 +f 2389 2390 2490 2489 +f 2390 2391 2491 2490 +f 2391 2392 2492 2491 +f 2392 2393 2493 2492 +f 2393 2394 2494 2493 +f 2394 2395 2495 2494 +f 2395 2396 2496 2495 +f 2396 2397 2497 2496 +f 2397 2398 2498 2497 +f 2398 2399 2499 2498 +f 2399 2400 2500 2499 +f 2400 2401 2501 2500 +f 2401 2402 2502 2501 +f 2402 2303 2403 2502 +f 2403 2404 2504 2503 +f 2404 2405 2505 2504 +f 2405 2406 2506 2505 +f 2406 2407 2507 2506 +f 2407 2408 2508 2507 +f 2408 2409 2509 2508 +f 2409 2410 2510 2509 +f 2410 2411 2511 2510 +f 2411 2412 2512 2511 +f 2412 2413 2513 2512 +f 2413 2414 2514 2513 +f 2414 2415 2515 2514 +f 2415 2416 2516 2515 +f 2416 2417 2517 2516 +f 2417 2418 2518 2517 +f 2418 2419 2519 2518 +f 2419 2420 2520 2519 +f 2420 2421 2521 2520 +f 2421 2422 2522 2521 +f 2422 2423 2523 2522 +f 2423 2424 2524 2523 +f 2424 2425 2525 2524 +f 2425 2426 2526 2525 +f 2426 2427 2527 2526 +f 2427 2428 2528 2527 +f 2428 2429 2529 2528 +f 2429 2430 2530 2529 +f 2430 2431 2531 2530 +f 2431 2432 2532 2531 +f 2432 2433 2533 2532 +f 2433 2434 2534 2533 +f 2434 2435 2535 2534 +f 2435 2436 2536 2535 +f 2436 2437 2537 2536 +f 2437 2438 2538 2537 +f 2438 2439 2539 2538 +f 2439 2440 2540 2539 +f 2440 2441 2541 2540 +f 2441 2442 2542 2541 +f 2442 2443 2543 2542 +f 2443 2444 2544 2543 +f 2444 2445 2545 2544 +f 2445 2446 2546 2545 +f 2446 2447 2547 2546 +f 2447 2448 2548 2547 +f 2448 2449 2549 2548 +f 2449 2450 2550 2549 +f 2450 2451 2551 2550 +f 2451 2452 2552 2551 +f 2452 2453 2553 2552 +f 2453 2454 2554 2553 +f 2454 2455 2555 2554 +f 2455 2456 2556 2555 +f 2456 2457 2557 2556 +f 2457 2458 2558 2557 +f 2458 2459 2559 2558 +f 2459 2460 2560 2559 +f 2460 2461 2561 2560 +f 2461 2462 2562 2561 +f 2462 2463 2563 2562 +f 2463 2464 2564 2563 +f 2464 2465 2565 2564 +f 2465 2466 2566 2565 +f 2466 2467 2567 2566 +f 2467 2468 2568 2567 +f 2468 2469 2569 2568 +f 2469 2470 2570 2569 +f 2470 2471 2571 2570 +f 2471 2472 2572 2571 +f 2472 2473 2573 2572 +f 2473 2474 2574 2573 +f 2474 2475 2575 2574 +f 2475 2476 2576 2575 +f 2476 2477 2577 2576 +f 2477 2478 2578 2577 +f 2478 2479 2579 2578 +f 2479 2480 2580 2579 +f 2480 2481 2581 2580 +f 2481 2482 2582 2581 +f 2482 2483 2583 2582 +f 2483 2484 2584 2583 +f 2484 2485 2585 2584 +f 2485 2486 2586 2585 +f 2486 2487 2587 2586 +f 2487 2488 2588 2587 +f 2488 2489 2589 2588 +f 2489 2490 2590 2589 +f 2490 2491 2591 2590 +f 2491 2492 2592 2591 +f 2492 2493 2593 2592 +f 2493 2494 2594 2593 +f 2494 2495 2595 2594 +f 2495 2496 2596 2595 +f 2496 2497 2597 2596 +f 2497 2498 2598 2597 +f 2498 2499 2599 2598 +f 2499 2500 2600 2599 +f 2500 2501 2601 2600 +f 2501 2502 2602 2601 +f 2502 2403 2503 2602 +f 2503 2504 2604 2603 +f 2504 2505 2605 2604 +f 2505 2506 2606 2605 +f 2506 2507 2607 2606 +f 2507 2508 2608 2607 +f 2508 2509 2609 2608 +f 2509 2510 2610 2609 +f 2510 2511 2611 2610 +f 2511 2512 2612 2611 +f 2512 2513 2613 2612 +f 2513 2514 2614 2613 +f 2514 2515 2615 2614 +f 2515 2516 2616 2615 +f 2516 2517 2617 2616 +f 2517 2518 2618 2617 +f 2518 2519 2619 2618 +f 2519 2520 2620 2619 +f 2520 2521 2621 2620 +f 2521 2522 2622 2621 +f 2522 2523 2623 2622 +f 2523 2524 2624 2623 +f 2524 2525 2625 2624 +f 2525 2526 2626 2625 +f 2526 2527 2627 2626 +f 2527 2528 2628 2627 +f 2528 2529 2629 2628 +f 2529 2530 2630 2629 +f 2530 2531 2631 2630 +f 2531 2532 2632 2631 +f 2532 2533 2633 2632 +f 2533 2534 2634 2633 +f 2534 2535 2635 2634 +f 2535 2536 2636 2635 +f 2536 2537 2637 2636 +f 2537 2538 2638 2637 +f 2538 2539 2639 2638 +f 2539 2540 2640 2639 +f 2540 2541 2641 2640 +f 2541 2542 2642 2641 +f 2542 2543 2643 2642 +f 2543 2544 2644 2643 +f 2544 2545 2645 2644 +f 2545 2546 2646 2645 +f 2546 2547 2647 2646 +f 2547 2548 2648 2647 +f 2548 2549 2649 2648 +f 2549 2550 2650 2649 +f 2550 2551 2651 2650 +f 2551 2552 2652 2651 +f 2552 2553 2653 2652 +f 2553 2554 2654 2653 +f 2554 2555 2655 2654 +f 2555 2556 2656 2655 +f 2556 2557 2657 2656 +f 2557 2558 2658 2657 +f 2558 2559 2659 2658 +f 2559 2560 2660 2659 +f 2560 2561 2661 2660 +f 2561 2562 2662 2661 +f 2562 2563 2663 2662 +f 2563 2564 2664 2663 +f 2564 2565 2665 2664 +f 2565 2566 2666 2665 +f 2566 2567 2667 2666 +f 2567 2568 2668 2667 +f 2568 2569 2669 2668 +f 2569 2570 2670 2669 +f 2570 2571 2671 2670 +f 2571 2572 2672 2671 +f 2572 2573 2673 2672 +f 2573 2574 2674 2673 +f 2574 2575 2675 2674 +f 2575 2576 2676 2675 +f 2576 2577 2677 2676 +f 2577 2578 2678 2677 +f 2578 2579 2679 2678 +f 2579 2580 2680 2679 +f 2580 2581 2681 2680 +f 2581 2582 2682 2681 +f 2582 2583 2683 2682 +f 2583 2584 2684 2683 +f 2584 2585 2685 2684 +f 2585 2586 2686 2685 +f 2586 2587 2687 2686 +f 2587 2588 2688 2687 +f 2588 2589 2689 2688 +f 2589 2590 2690 2689 +f 2590 2591 2691 2690 +f 2591 2592 2692 2691 +f 2592 2593 2693 2692 +f 2593 2594 2694 2693 +f 2594 2595 2695 2694 +f 2595 2596 2696 2695 +f 2596 2597 2697 2696 +f 2597 2598 2698 2697 +f 2598 2599 2699 2698 +f 2599 2600 2700 2699 +f 2600 2601 2701 2700 +f 2601 2602 2702 2701 +f 2602 2503 2603 2702 +f 2603 2604 2704 2703 +f 2604 2605 2705 2704 +f 2605 2606 2706 2705 +f 2606 2607 2707 2706 +f 2607 2608 2708 2707 +f 2608 2609 2709 2708 +f 2609 2610 2710 2709 +f 2610 2611 2711 2710 +f 2611 2612 2712 2711 +f 2612 2613 2713 2712 +f 2613 2614 2714 2713 +f 2614 2615 2715 2714 +f 2615 2616 2716 2715 +f 2616 2617 2717 2716 +f 2617 2618 2718 2717 +f 2618 2619 2719 2718 +f 2619 2620 2720 2719 +f 2620 2621 2721 2720 +f 2621 2622 2722 2721 +f 2622 2623 2723 2722 +f 2623 2624 2724 2723 +f 2624 2625 2725 2724 +f 2625 2626 2726 2725 +f 2626 2627 2727 2726 +f 2627 2628 2728 2727 +f 2628 2629 2729 2728 +f 2629 2630 2730 2729 +f 2630 2631 2731 2730 +f 2631 2632 2732 2731 +f 2632 2633 2733 2732 +f 2633 2634 2734 2733 +f 2634 2635 2735 2734 +f 2635 2636 2736 2735 +f 2636 2637 2737 2736 +f 2637 2638 2738 2737 +f 2638 2639 2739 2738 +f 2639 2640 2740 2739 +f 2640 2641 2741 2740 +f 2641 2642 2742 2741 +f 2642 2643 2743 2742 +f 2643 2644 2744 2743 +f 2644 2645 2745 2744 +f 2645 2646 2746 2745 +f 2646 2647 2747 2746 +f 2647 2648 2748 2747 +f 2648 2649 2749 2748 +f 2649 2650 2750 2749 +f 2650 2651 2751 2750 +f 2651 2652 2752 2751 +f 2652 2653 2753 2752 +f 2653 2654 2754 2753 +f 2654 2655 2755 2754 +f 2655 2656 2756 2755 +f 2656 2657 2757 2756 +f 2657 2658 2758 2757 +f 2658 2659 2759 2758 +f 2659 2660 2760 2759 +f 2660 2661 2761 2760 +f 2661 2662 2762 2761 +f 2662 2663 2763 2762 +f 2663 2664 2764 2763 +f 2664 2665 2765 2764 +f 2665 2666 2766 2765 +f 2666 2667 2767 2766 +f 2667 2668 2768 2767 +f 2668 2669 2769 2768 +f 2669 2670 2770 2769 +f 2670 2671 2771 2770 +f 2671 2672 2772 2771 +f 2672 2673 2773 2772 +f 2673 2674 2774 2773 +f 2674 2675 2775 2774 +f 2675 2676 2776 2775 +f 2676 2677 2777 2776 +f 2677 2678 2778 2777 +f 2678 2679 2779 2778 +f 2679 2680 2780 2779 +f 2680 2681 2781 2780 +f 2681 2682 2782 2781 +f 2682 2683 2783 2782 +f 2683 2684 2784 2783 +f 2684 2685 2785 2784 +f 2685 2686 2786 2785 +f 2686 2687 2787 2786 +f 2687 2688 2788 2787 +f 2688 2689 2789 2788 +f 2689 2690 2790 2789 +f 2690 2691 2791 2790 +f 2691 2692 2792 2791 +f 2692 2693 2793 2792 +f 2693 2694 2794 2793 +f 2694 2695 2795 2794 +f 2695 2696 2796 2795 +f 2696 2697 2797 2796 +f 2697 2698 2798 2797 +f 2698 2699 2799 2798 +f 2699 2700 2800 2799 +f 2700 2701 2801 2800 +f 2701 2702 2802 2801 +f 2702 2603 2703 2802 +f 2703 2704 2804 2803 +f 2704 2705 2805 2804 +f 2705 2706 2806 2805 +f 2706 2707 2807 2806 +f 2707 2708 2808 2807 +f 2708 2709 2809 2808 +f 2709 2710 2810 2809 +f 2710 2711 2811 2810 +f 2711 2712 2812 2811 +f 2712 2713 2813 2812 +f 2713 2714 2814 2813 +f 2714 2715 2815 2814 +f 2715 2716 2816 2815 +f 2716 2717 2817 2816 +f 2717 2718 2818 2817 +f 2718 2719 2819 2818 +f 2719 2720 2820 2819 +f 2720 2721 2821 2820 +f 2721 2722 2822 2821 +f 2722 2723 2823 2822 +f 2723 2724 2824 2823 +f 2724 2725 2825 2824 +f 2725 2726 2826 2825 +f 2726 2727 2827 2826 +f 2727 2728 2828 2827 +f 2728 2729 2829 2828 +f 2729 2730 2830 2829 +f 2730 2731 2831 2830 +f 2731 2732 2832 2831 +f 2732 2733 2833 2832 +f 2733 2734 2834 2833 +f 2734 2735 2835 2834 +f 2735 2736 2836 2835 +f 2736 2737 2837 2836 +f 2737 2738 2838 2837 +f 2738 2739 2839 2838 +f 2739 2740 2840 2839 +f 2740 2741 2841 2840 +f 2741 2742 2842 2841 +f 2742 2743 2843 2842 +f 2743 2744 2844 2843 +f 2744 2745 2845 2844 +f 2745 2746 2846 2845 +f 2746 2747 2847 2846 +f 2747 2748 2848 2847 +f 2748 2749 2849 2848 +f 2749 2750 2850 2849 +f 2750 2751 2851 2850 +f 2751 2752 2852 2851 +f 2752 2753 2853 2852 +f 2753 2754 2854 2853 +f 2754 2755 2855 2854 +f 2755 2756 2856 2855 +f 2756 2757 2857 2856 +f 2757 2758 2858 2857 +f 2758 2759 2859 2858 +f 2759 2760 2860 2859 +f 2760 2761 2861 2860 +f 2761 2762 2862 2861 +f 2762 2763 2863 2862 +f 2763 2764 2864 2863 +f 2764 2765 2865 2864 +f 2765 2766 2866 2865 +f 2766 2767 2867 2866 +f 2767 2768 2868 2867 +f 2768 2769 2869 2868 +f 2769 2770 2870 2869 +f 2770 2771 2871 2870 +f 2771 2772 2872 2871 +f 2772 2773 2873 2872 +f 2773 2774 2874 2873 +f 2774 2775 2875 2874 +f 2775 2776 2876 2875 +f 2776 2777 2877 2876 +f 2777 2778 2878 2877 +f 2778 2779 2879 2878 +f 2779 2780 2880 2879 +f 2780 2781 2881 2880 +f 2781 2782 2882 2881 +f 2782 2783 2883 2882 +f 2783 2784 2884 2883 +f 2784 2785 2885 2884 +f 2785 2786 2886 2885 +f 2786 2787 2887 2886 +f 2787 2788 2888 2887 +f 2788 2789 2889 2888 +f 2789 2790 2890 2889 +f 2790 2791 2891 2890 +f 2791 2792 2892 2891 +f 2792 2793 2893 2892 +f 2793 2794 2894 2893 +f 2794 2795 2895 2894 +f 2795 2796 2896 2895 +f 2796 2797 2897 2896 +f 2797 2798 2898 2897 +f 2798 2799 2899 2898 +f 2799 2800 2900 2899 +f 2800 2801 2901 2900 +f 2801 2802 2902 2901 +f 2802 2703 2803 2902 +f 2803 2804 2904 2903 +f 2804 2805 2905 2904 +f 2805 2806 2906 2905 +f 2806 2807 2907 2906 +f 2807 2808 2908 2907 +f 2808 2809 2909 2908 +f 2809 2810 2910 2909 +f 2810 2811 2911 2910 +f 2811 2812 2912 2911 +f 2812 2813 2913 2912 +f 2813 2814 2914 2913 +f 2814 2815 2915 2914 +f 2815 2816 2916 2915 +f 2816 2817 2917 2916 +f 2817 2818 2918 2917 +f 2818 2819 2919 2918 +f 2819 2820 2920 2919 +f 2820 2821 2921 2920 +f 2821 2822 2922 2921 +f 2822 2823 2923 2922 +f 2823 2824 2924 2923 +f 2824 2825 2925 2924 +f 2825 2826 2926 2925 +f 2826 2827 2927 2926 +f 2827 2828 2928 2927 +f 2828 2829 2929 2928 +f 2829 2830 2930 2929 +f 2830 2831 2931 2930 +f 2831 2832 2932 2931 +f 2832 2833 2933 2932 +f 2833 2834 2934 2933 +f 2834 2835 2935 2934 +f 2835 2836 2936 2935 +f 2836 2837 2937 2936 +f 2837 2838 2938 2937 +f 2838 2839 2939 2938 +f 2839 2840 2940 2939 +f 2840 2841 2941 2940 +f 2841 2842 2942 2941 +f 2842 2843 2943 2942 +f 2843 2844 2944 2943 +f 2844 2845 2945 2944 +f 2845 2846 2946 2945 +f 2846 2847 2947 2946 +f 2847 2848 2948 2947 +f 2848 2849 2949 2948 +f 2849 2850 2950 2949 +f 2850 2851 2951 2950 +f 2851 2852 2952 2951 +f 2852 2853 2953 2952 +f 2853 2854 2954 2953 +f 2854 2855 2955 2954 +f 2855 2856 2956 2955 +f 2856 2857 2957 2956 +f 2857 2858 2958 2957 +f 2858 2859 2959 2958 +f 2859 2860 2960 2959 +f 2860 2861 2961 2960 +f 2861 2862 2962 2961 +f 2862 2863 2963 2962 +f 2863 2864 2964 2963 +f 2864 2865 2965 2964 +f 2865 2866 2966 2965 +f 2866 2867 2967 2966 +f 2867 2868 2968 2967 +f 2868 2869 2969 2968 +f 2869 2870 2970 2969 +f 2870 2871 2971 2970 +f 2871 2872 2972 2971 +f 2872 2873 2973 2972 +f 2873 2874 2974 2973 +f 2874 2875 2975 2974 +f 2875 2876 2976 2975 +f 2876 2877 2977 2976 +f 2877 2878 2978 2977 +f 2878 2879 2979 2978 +f 2879 2880 2980 2979 +f 2880 2881 2981 2980 +f 2881 2882 2982 2981 +f 2882 2883 2983 2982 +f 2883 2884 2984 2983 +f 2884 2885 2985 2984 +f 2885 2886 2986 2985 +f 2886 2887 2987 2986 +f 2887 2888 2988 2987 +f 2888 2889 2989 2988 +f 2889 2890 2990 2989 +f 2890 2891 2991 2990 +f 2891 2892 2992 2991 +f 2892 2893 2993 2992 +f 2893 2894 2994 2993 +f 2894 2895 2995 2994 +f 2895 2896 2996 2995 +f 2896 2897 2997 2996 +f 2897 2898 2998 2997 +f 2898 2899 2999 2998 +f 2899 2900 3000 2999 +f 2900 2901 3001 3000 +f 2901 2902 3002 3001 +f 2902 2803 2903 3002 +f 2903 2904 3004 3003 +f 2904 2905 3005 3004 +f 2905 2906 3006 3005 +f 2906 2907 3007 3006 +f 2907 2908 3008 3007 +f 2908 2909 3009 3008 +f 2909 2910 3010 3009 +f 2910 2911 3011 3010 +f 2911 2912 3012 3011 +f 2912 2913 3013 3012 +f 2913 2914 3014 3013 +f 2914 2915 3015 3014 +f 2915 2916 3016 3015 +f 2916 2917 3017 3016 +f 2917 2918 3018 3017 +f 2918 2919 3019 3018 +f 2919 2920 3020 3019 +f 2920 2921 3021 3020 +f 2921 2922 3022 3021 +f 2922 2923 3023 3022 +f 2923 2924 3024 3023 +f 2924 2925 3025 3024 +f 2925 2926 3026 3025 +f 2926 2927 3027 3026 +f 2927 2928 3028 3027 +f 2928 2929 3029 3028 +f 2929 2930 3030 3029 +f 2930 2931 3031 3030 +f 2931 2932 3032 3031 +f 2932 2933 3033 3032 +f 2933 2934 3034 3033 +f 2934 2935 3035 3034 +f 2935 2936 3036 3035 +f 2936 2937 3037 3036 +f 2937 2938 3038 3037 +f 2938 2939 3039 3038 +f 2939 2940 3040 3039 +f 2940 2941 3041 3040 +f 2941 2942 3042 3041 +f 2942 2943 3043 3042 +f 2943 2944 3044 3043 +f 2944 2945 3045 3044 +f 2945 2946 3046 3045 +f 2946 2947 3047 3046 +f 2947 2948 3048 3047 +f 2948 2949 3049 3048 +f 2949 2950 3050 3049 +f 2950 2951 3051 3050 +f 2951 2952 3052 3051 +f 2952 2953 3053 3052 +f 2953 2954 3054 3053 +f 2954 2955 3055 3054 +f 2955 2956 3056 3055 +f 2956 2957 3057 3056 +f 2957 2958 3058 3057 +f 2958 2959 3059 3058 +f 2959 2960 3060 3059 +f 2960 2961 3061 3060 +f 2961 2962 3062 3061 +f 2962 2963 3063 3062 +f 2963 2964 3064 3063 +f 2964 2965 3065 3064 +f 2965 2966 3066 3065 +f 2966 2967 3067 3066 +f 2967 2968 3068 3067 +f 2968 2969 3069 3068 +f 2969 2970 3070 3069 +f 2970 2971 3071 3070 +f 2971 2972 3072 3071 +f 2972 2973 3073 3072 +f 2973 2974 3074 3073 +f 2974 2975 3075 3074 +f 2975 2976 3076 3075 +f 2976 2977 3077 3076 +f 2977 2978 3078 3077 +f 2978 2979 3079 3078 +f 2979 2980 3080 3079 +f 2980 2981 3081 3080 +f 2981 2982 3082 3081 +f 2982 2983 3083 3082 +f 2983 2984 3084 3083 +f 2984 2985 3085 3084 +f 2985 2986 3086 3085 +f 2986 2987 3087 3086 +f 2987 2988 3088 3087 +f 2988 2989 3089 3088 +f 2989 2990 3090 3089 +f 2990 2991 3091 3090 +f 2991 2992 3092 3091 +f 2992 2993 3093 3092 +f 2993 2994 3094 3093 +f 2994 2995 3095 3094 +f 2995 2996 3096 3095 +f 2996 2997 3097 3096 +f 2997 2998 3098 3097 +f 2998 2999 3099 3098 +f 2999 3000 3100 3099 +f 3000 3001 3101 3100 +f 3001 3002 3102 3101 +f 3002 2903 3003 3102 +f 3003 3004 3104 3103 +f 3004 3005 3105 3104 +f 3005 3006 3106 3105 +f 3006 3007 3107 3106 +f 3007 3008 3108 3107 +f 3008 3009 3109 3108 +f 3009 3010 3110 3109 +f 3010 3011 3111 3110 +f 3011 3012 3112 3111 +f 3012 3013 3113 3112 +f 3013 3014 3114 3113 +f 3014 3015 3115 3114 +f 3015 3016 3116 3115 +f 3016 3017 3117 3116 +f 3017 3018 3118 3117 +f 3018 3019 3119 3118 +f 3019 3020 3120 3119 +f 3020 3021 3121 3120 +f 3021 3022 3122 3121 +f 3022 3023 3123 3122 +f 3023 3024 3124 3123 +f 3024 3025 3125 3124 +f 3025 3026 3126 3125 +f 3026 3027 3127 3126 +f 3027 3028 3128 3127 +f 3028 3029 3129 3128 +f 3029 3030 3130 3129 +f 3030 3031 3131 3130 +f 3031 3032 3132 3131 +f 3032 3033 3133 3132 +f 3033 3034 3134 3133 +f 3034 3035 3135 3134 +f 3035 3036 3136 3135 +f 3036 3037 3137 3136 +f 3037 3038 3138 3137 +f 3038 3039 3139 3138 +f 3039 3040 3140 3139 +f 3040 3041 3141 3140 +f 3041 3042 3142 3141 +f 3042 3043 3143 3142 +f 3043 3044 3144 3143 +f 3044 3045 3145 3144 +f 3045 3046 3146 3145 +f 3046 3047 3147 3146 +f 3047 3048 3148 3147 +f 3048 3049 3149 3148 +f 3049 3050 3150 3149 +f 3050 3051 3151 3150 +f 3051 3052 3152 3151 +f 3052 3053 3153 3152 +f 3053 3054 3154 3153 +f 3054 3055 3155 3154 +f 3055 3056 3156 3155 +f 3056 3057 3157 3156 +f 3057 3058 3158 3157 +f 3058 3059 3159 3158 +f 3059 3060 3160 3159 +f 3060 3061 3161 3160 +f 3061 3062 3162 3161 +f 3062 3063 3163 3162 +f 3063 3064 3164 3163 +f 3064 3065 3165 3164 +f 3065 3066 3166 3165 +f 3066 3067 3167 3166 +f 3067 3068 3168 3167 +f 3068 3069 3169 3168 +f 3069 3070 3170 3169 +f 3070 3071 3171 3170 +f 3071 3072 3172 3171 +f 3072 3073 3173 3172 +f 3073 3074 3174 3173 +f 3074 3075 3175 3174 +f 3075 3076 3176 3175 +f 3076 3077 3177 3176 +f 3077 3078 3178 3177 +f 3078 3079 3179 3178 +f 3079 3080 3180 3179 +f 3080 3081 3181 3180 +f 3081 3082 3182 3181 +f 3082 3083 3183 3182 +f 3083 3084 3184 3183 +f 3084 3085 3185 3184 +f 3085 3086 3186 3185 +f 3086 3087 3187 3186 +f 3087 3088 3188 3187 +f 3088 3089 3189 3188 +f 3089 3090 3190 3189 +f 3090 3091 3191 3190 +f 3091 3092 3192 3191 +f 3092 3093 3193 3192 +f 3093 3094 3194 3193 +f 3094 3095 3195 3194 +f 3095 3096 3196 3195 +f 3096 3097 3197 3196 +f 3097 3098 3198 3197 +f 3098 3099 3199 3198 +f 3099 3100 3200 3199 +f 3100 3101 3201 3200 +f 3101 3102 3202 3201 +f 3102 3003 3103 3202 +f 3103 3104 3204 3203 +f 3104 3105 3205 3204 +f 3105 3106 3206 3205 +f 3106 3107 3207 3206 +f 3107 3108 3208 3207 +f 3108 3109 3209 3208 +f 3109 3110 3210 3209 +f 3110 3111 3211 3210 +f 3111 3112 3212 3211 +f 3112 3113 3213 3212 +f 3113 3114 3214 3213 +f 3114 3115 3215 3214 +f 3115 3116 3216 3215 +f 3116 3117 3217 3216 +f 3117 3118 3218 3217 +f 3118 3119 3219 3218 +f 3119 3120 3220 3219 +f 3120 3121 3221 3220 +f 3121 3122 3222 3221 +f 3122 3123 3223 3222 +f 3123 3124 3224 3223 +f 3124 3125 3225 3224 +f 3125 3126 3226 3225 +f 3126 3127 3227 3226 +f 3127 3128 3228 3227 +f 3128 3129 3229 3228 +f 3129 3130 3230 3229 +f 3130 3131 3231 3230 +f 3131 3132 3232 3231 +f 3132 3133 3233 3232 +f 3133 3134 3234 3233 +f 3134 3135 3235 3234 +f 3135 3136 3236 3235 +f 3136 3137 3237 3236 +f 3137 3138 3238 3237 +f 3138 3139 3239 3238 +f 3139 3140 3240 3239 +f 3140 3141 3241 3240 +f 3141 3142 3242 3241 +f 3142 3143 3243 3242 +f 3143 3144 3244 3243 +f 3144 3145 3245 3244 +f 3145 3146 3246 3245 +f 3146 3147 3247 3246 +f 3147 3148 3248 3247 +f 3148 3149 3249 3248 +f 3149 3150 3250 3249 +f 3150 3151 3251 3250 +f 3151 3152 3252 3251 +f 3152 3153 3253 3252 +f 3153 3154 3254 3253 +f 3154 3155 3255 3254 +f 3155 3156 3256 3255 +f 3156 3157 3257 3256 +f 3157 3158 3258 3257 +f 3158 3159 3259 3258 +f 3159 3160 3260 3259 +f 3160 3161 3261 3260 +f 3161 3162 3262 3261 +f 3162 3163 3263 3262 +f 3163 3164 3264 3263 +f 3164 3165 3265 3264 +f 3165 3166 3266 3265 +f 3166 3167 3267 3266 +f 3167 3168 3268 3267 +f 3168 3169 3269 3268 +f 3169 3170 3270 3269 +f 3170 3171 3271 3270 +f 3171 3172 3272 3271 +f 3172 3173 3273 3272 +f 3173 3174 3274 3273 +f 3174 3175 3275 3274 +f 3175 3176 3276 3275 +f 3176 3177 3277 3276 +f 3177 3178 3278 3277 +f 3178 3179 3279 3278 +f 3179 3180 3280 3279 +f 3180 3181 3281 3280 +f 3181 3182 3282 3281 +f 3182 3183 3283 3282 +f 3183 3184 3284 3283 +f 3184 3185 3285 3284 +f 3185 3186 3286 3285 +f 3186 3187 3287 3286 +f 3187 3188 3288 3287 +f 3188 3189 3289 3288 +f 3189 3190 3290 3289 +f 3190 3191 3291 3290 +f 3191 3192 3292 3291 +f 3192 3193 3293 3292 +f 3193 3194 3294 3293 +f 3194 3195 3295 3294 +f 3195 3196 3296 3295 +f 3196 3197 3297 3296 +f 3197 3198 3298 3297 +f 3198 3199 3299 3298 +f 3199 3200 3300 3299 +f 3200 3201 3301 3300 +f 3201 3202 3302 3301 +f 3202 3103 3203 3302 +f 3203 3204 3304 3303 +f 3204 3205 3305 3304 +f 3205 3206 3306 3305 +f 3206 3207 3307 3306 +f 3207 3208 3308 3307 +f 3208 3209 3309 3308 +f 3209 3210 3310 3309 +f 3210 3211 3311 3310 +f 3211 3212 3312 3311 +f 3212 3213 3313 3312 +f 3213 3214 3314 3313 +f 3214 3215 3315 3314 +f 3215 3216 3316 3315 +f 3216 3217 3317 3316 +f 3217 3218 3318 3317 +f 3218 3219 3319 3318 +f 3219 3220 3320 3319 +f 3220 3221 3321 3320 +f 3221 3222 3322 3321 +f 3222 3223 3323 3322 +f 3223 3224 3324 3323 +f 3224 3225 3325 3324 +f 3225 3226 3326 3325 +f 3226 3227 3327 3326 +f 3227 3228 3328 3327 +f 3228 3229 3329 3328 +f 3229 3230 3330 3329 +f 3230 3231 3331 3330 +f 3231 3232 3332 3331 +f 3232 3233 3333 3332 +f 3233 3234 3334 3333 +f 3234 3235 3335 3334 +f 3235 3236 3336 3335 +f 3236 3237 3337 3336 +f 3237 3238 3338 3337 +f 3238 3239 3339 3338 +f 3239 3240 3340 3339 +f 3240 3241 3341 3340 +f 3241 3242 3342 3341 +f 3242 3243 3343 3342 +f 3243 3244 3344 3343 +f 3244 3245 3345 3344 +f 3245 3246 3346 3345 +f 3246 3247 3347 3346 +f 3247 3248 3348 3347 +f 3248 3249 3349 3348 +f 3249 3250 3350 3349 +f 3250 3251 3351 3350 +f 3251 3252 3352 3351 +f 3252 3253 3353 3352 +f 3253 3254 3354 3353 +f 3254 3255 3355 3354 +f 3255 3256 3356 3355 +f 3256 3257 3357 3356 +f 3257 3258 3358 3357 +f 3258 3259 3359 3358 +f 3259 3260 3360 3359 +f 3260 3261 3361 3360 +f 3261 3262 3362 3361 +f 3262 3263 3363 3362 +f 3263 3264 3364 3363 +f 3264 3265 3365 3364 +f 3265 3266 3366 3365 +f 3266 3267 3367 3366 +f 3267 3268 3368 3367 +f 3268 3269 3369 3368 +f 3269 3270 3370 3369 +f 3270 3271 3371 3370 +f 3271 3272 3372 3371 +f 3272 3273 3373 3372 +f 3273 3274 3374 3373 +f 3274 3275 3375 3374 +f 3275 3276 3376 3375 +f 3276 3277 3377 3376 +f 3277 3278 3378 3377 +f 3278 3279 3379 3378 +f 3279 3280 3380 3379 +f 3280 3281 3381 3380 +f 3281 3282 3382 3381 +f 3282 3283 3383 3382 +f 3283 3284 3384 3383 +f 3284 3285 3385 3384 +f 3285 3286 3386 3385 +f 3286 3287 3387 3386 +f 3287 3288 3388 3387 +f 3288 3289 3389 3388 +f 3289 3290 3390 3389 +f 3290 3291 3391 3390 +f 3291 3292 3392 3391 +f 3292 3293 3393 3392 +f 3293 3294 3394 3393 +f 3294 3295 3395 3394 +f 3295 3296 3396 3395 +f 3296 3297 3397 3396 +f 3297 3298 3398 3397 +f 3298 3299 3399 3398 +f 3299 3300 3400 3399 +f 3300 3301 3401 3400 +f 3301 3302 3402 3401 +f 3302 3203 3303 3402 +f 3303 3304 3404 3403 +f 3304 3305 3405 3404 +f 3305 3306 3406 3405 +f 3306 3307 3407 3406 +f 3307 3308 3408 3407 +f 3308 3309 3409 3408 +f 3309 3310 3410 3409 +f 3310 3311 3411 3410 +f 3311 3312 3412 3411 +f 3312 3313 3413 3412 +f 3313 3314 3414 3413 +f 3314 3315 3415 3414 +f 3315 3316 3416 3415 +f 3316 3317 3417 3416 +f 3317 3318 3418 3417 +f 3318 3319 3419 3418 +f 3319 3320 3420 3419 +f 3320 3321 3421 3420 +f 3321 3322 3422 3421 +f 3322 3323 3423 3422 +f 3323 3324 3424 3423 +f 3324 3325 3425 3424 +f 3325 3326 3426 3425 +f 3326 3327 3427 3426 +f 3327 3328 3428 3427 +f 3328 3329 3429 3428 +f 3329 3330 3430 3429 +f 3330 3331 3431 3430 +f 3331 3332 3432 3431 +f 3332 3333 3433 3432 +f 3333 3334 3434 3433 +f 3334 3335 3435 3434 +f 3335 3336 3436 3435 +f 3336 3337 3437 3436 +f 3337 3338 3438 3437 +f 3338 3339 3439 3438 +f 3339 3340 3440 3439 +f 3340 3341 3441 3440 +f 3341 3342 3442 3441 +f 3342 3343 3443 3442 +f 3343 3344 3444 3443 +f 3344 3345 3445 3444 +f 3345 3346 3446 3445 +f 3346 3347 3447 3446 +f 3347 3348 3448 3447 +f 3348 3349 3449 3448 +f 3349 3350 3450 3449 +f 3350 3351 3451 3450 +f 3351 3352 3452 3451 +f 3352 3353 3453 3452 +f 3353 3354 3454 3453 +f 3354 3355 3455 3454 +f 3355 3356 3456 3455 +f 3356 3357 3457 3456 +f 3357 3358 3458 3457 +f 3358 3359 3459 3458 +f 3359 3360 3460 3459 +f 3360 3361 3461 3460 +f 3361 3362 3462 3461 +f 3362 3363 3463 3462 +f 3363 3364 3464 3463 +f 3364 3365 3465 3464 +f 3365 3366 3466 3465 +f 3366 3367 3467 3466 +f 3367 3368 3468 3467 +f 3368 3369 3469 3468 +f 3369 3370 3470 3469 +f 3370 3371 3471 3470 +f 3371 3372 3472 3471 +f 3372 3373 3473 3472 +f 3373 3374 3474 3473 +f 3374 3375 3475 3474 +f 3375 3376 3476 3475 +f 3376 3377 3477 3476 +f 3377 3378 3478 3477 +f 3378 3379 3479 3478 +f 3379 3380 3480 3479 +f 3380 3381 3481 3480 +f 3381 3382 3482 3481 +f 3382 3383 3483 3482 +f 3383 3384 3484 3483 +f 3384 3385 3485 3484 +f 3385 3386 3486 3485 +f 3386 3387 3487 3486 +f 3387 3388 3488 3487 +f 3388 3389 3489 3488 +f 3389 3390 3490 3489 +f 3390 3391 3491 3490 +f 3391 3392 3492 3491 +f 3392 3393 3493 3492 +f 3393 3394 3494 3493 +f 3394 3395 3495 3494 +f 3395 3396 3496 3495 +f 3396 3397 3497 3496 +f 3397 3398 3498 3497 +f 3398 3399 3499 3498 +f 3399 3400 3500 3499 +f 3400 3401 3501 3500 +f 3401 3402 3502 3501 +f 3402 3303 3403 3502 +f 3403 3404 3504 3503 +f 3404 3405 3505 3504 +f 3405 3406 3506 3505 +f 3406 3407 3507 3506 +f 3407 3408 3508 3507 +f 3408 3409 3509 3508 +f 3409 3410 3510 3509 +f 3410 3411 3511 3510 +f 3411 3412 3512 3511 +f 3412 3413 3513 3512 +f 3413 3414 3514 3513 +f 3414 3415 3515 3514 +f 3415 3416 3516 3515 +f 3416 3417 3517 3516 +f 3417 3418 3518 3517 +f 3418 3419 3519 3518 +f 3419 3420 3520 3519 +f 3420 3421 3521 3520 +f 3421 3422 3522 3521 +f 3422 3423 3523 3522 +f 3423 3424 3524 3523 +f 3424 3425 3525 3524 +f 3425 3426 3526 3525 +f 3426 3427 3527 3526 +f 3427 3428 3528 3527 +f 3428 3429 3529 3528 +f 3429 3430 3530 3529 +f 3430 3431 3531 3530 +f 3431 3432 3532 3531 +f 3432 3433 3533 3532 +f 3433 3434 3534 3533 +f 3434 3435 3535 3534 +f 3435 3436 3536 3535 +f 3436 3437 3537 3536 +f 3437 3438 3538 3537 +f 3438 3439 3539 3538 +f 3439 3440 3540 3539 +f 3440 3441 3541 3540 +f 3441 3442 3542 3541 +f 3442 3443 3543 3542 +f 3443 3444 3544 3543 +f 3444 3445 3545 3544 +f 3445 3446 3546 3545 +f 3446 3447 3547 3546 +f 3447 3448 3548 3547 +f 3448 3449 3549 3548 +f 3449 3450 3550 3549 +f 3450 3451 3551 3550 +f 3451 3452 3552 3551 +f 3452 3453 3553 3552 +f 3453 3454 3554 3553 +f 3454 3455 3555 3554 +f 3455 3456 3556 3555 +f 3456 3457 3557 3556 +f 3457 3458 3558 3557 +f 3458 3459 3559 3558 +f 3459 3460 3560 3559 +f 3460 3461 3561 3560 +f 3461 3462 3562 3561 +f 3462 3463 3563 3562 +f 3463 3464 3564 3563 +f 3464 3465 3565 3564 +f 3465 3466 3566 3565 +f 3466 3467 3567 3566 +f 3467 3468 3568 3567 +f 3468 3469 3569 3568 +f 3469 3470 3570 3569 +f 3470 3471 3571 3570 +f 3471 3472 3572 3571 +f 3472 3473 3573 3572 +f 3473 3474 3574 3573 +f 3474 3475 3575 3574 +f 3475 3476 3576 3575 +f 3476 3477 3577 3576 +f 3477 3478 3578 3577 +f 3478 3479 3579 3578 +f 3479 3480 3580 3579 +f 3480 3481 3581 3580 +f 3481 3482 3582 3581 +f 3482 3483 3583 3582 +f 3483 3484 3584 3583 +f 3484 3485 3585 3584 +f 3485 3486 3586 3585 +f 3486 3487 3587 3586 +f 3487 3488 3588 3587 +f 3488 3489 3589 3588 +f 3489 3490 3590 3589 +f 3490 3491 3591 3590 +f 3491 3492 3592 3591 +f 3492 3493 3593 3592 +f 3493 3494 3594 3593 +f 3494 3495 3595 3594 +f 3495 3496 3596 3595 +f 3496 3497 3597 3596 +f 3497 3498 3598 3597 +f 3498 3499 3599 3598 +f 3499 3500 3600 3599 +f 3500 3501 3601 3600 +f 3501 3502 3602 3601 +f 3502 3403 3503 3602 +f 3503 3504 3604 3603 +f 3504 3505 3605 3604 +f 3505 3506 3606 3605 +f 3506 3507 3607 3606 +f 3507 3508 3608 3607 +f 3508 3509 3609 3608 +f 3509 3510 3610 3609 +f 3510 3511 3611 3610 +f 3511 3512 3612 3611 +f 3512 3513 3613 3612 +f 3513 3514 3614 3613 +f 3514 3515 3615 3614 +f 3515 3516 3616 3615 +f 3516 3517 3617 3616 +f 3517 3518 3618 3617 +f 3518 3519 3619 3618 +f 3519 3520 3620 3619 +f 3520 3521 3621 3620 +f 3521 3522 3622 3621 +f 3522 3523 3623 3622 +f 3523 3524 3624 3623 +f 3524 3525 3625 3624 +f 3525 3526 3626 3625 +f 3526 3527 3627 3626 +f 3527 3528 3628 3627 +f 3528 3529 3629 3628 +f 3529 3530 3630 3629 +f 3530 3531 3631 3630 +f 3531 3532 3632 3631 +f 3532 3533 3633 3632 +f 3533 3534 3634 3633 +f 3534 3535 3635 3634 +f 3535 3536 3636 3635 +f 3536 3537 3637 3636 +f 3537 3538 3638 3637 +f 3538 3539 3639 3638 +f 3539 3540 3640 3639 +f 3540 3541 3641 3640 +f 3541 3542 3642 3641 +f 3542 3543 3643 3642 +f 3543 3544 3644 3643 +f 3544 3545 3645 3644 +f 3545 3546 3646 3645 +f 3546 3547 3647 3646 +f 3547 3548 3648 3647 +f 3548 3549 3649 3648 +f 3549 3550 3650 3649 +f 3550 3551 3651 3650 +f 3551 3552 3652 3651 +f 3552 3553 3653 3652 +f 3553 3554 3654 3653 +f 3554 3555 3655 3654 +f 3555 3556 3656 3655 +f 3556 3557 3657 3656 +f 3557 3558 3658 3657 +f 3558 3559 3659 3658 +f 3559 3560 3660 3659 +f 3560 3561 3661 3660 +f 3561 3562 3662 3661 +f 3562 3563 3663 3662 +f 3563 3564 3664 3663 +f 3564 3565 3665 3664 +f 3565 3566 3666 3665 +f 3566 3567 3667 3666 +f 3567 3568 3668 3667 +f 3568 3569 3669 3668 +f 3569 3570 3670 3669 +f 3570 3571 3671 3670 +f 3571 3572 3672 3671 +f 3572 3573 3673 3672 +f 3573 3574 3674 3673 +f 3574 3575 3675 3674 +f 3575 3576 3676 3675 +f 3576 3577 3677 3676 +f 3577 3578 3678 3677 +f 3578 3579 3679 3678 +f 3579 3580 3680 3679 +f 3580 3581 3681 3680 +f 3581 3582 3682 3681 +f 3582 3583 3683 3682 +f 3583 3584 3684 3683 +f 3584 3585 3685 3684 +f 3585 3586 3686 3685 +f 3586 3587 3687 3686 +f 3587 3588 3688 3687 +f 3588 3589 3689 3688 +f 3589 3590 3690 3689 +f 3590 3591 3691 3690 +f 3591 3592 3692 3691 +f 3592 3593 3693 3692 +f 3593 3594 3694 3693 +f 3594 3595 3695 3694 +f 3595 3596 3696 3695 +f 3596 3597 3697 3696 +f 3597 3598 3698 3697 +f 3598 3599 3699 3698 +f 3599 3600 3700 3699 +f 3600 3601 3701 3700 +f 3601 3602 3702 3701 +f 3602 3503 3603 3702 +f 3603 3604 3704 3703 +f 3604 3605 3705 3704 +f 3605 3606 3706 3705 +f 3606 3607 3707 3706 +f 3607 3608 3708 3707 +f 3608 3609 3709 3708 +f 3609 3610 3710 3709 +f 3610 3611 3711 3710 +f 3611 3612 3712 3711 +f 3612 3613 3713 3712 +f 3613 3614 3714 3713 +f 3614 3615 3715 3714 +f 3615 3616 3716 3715 +f 3616 3617 3717 3716 +f 3617 3618 3718 3717 +f 3618 3619 3719 3718 +f 3619 3620 3720 3719 +f 3620 3621 3721 3720 +f 3621 3622 3722 3721 +f 3622 3623 3723 3722 +f 3623 3624 3724 3723 +f 3624 3625 3725 3724 +f 3625 3626 3726 3725 +f 3626 3627 3727 3726 +f 3627 3628 3728 3727 +f 3628 3629 3729 3728 +f 3629 3630 3730 3729 +f 3630 3631 3731 3730 +f 3631 3632 3732 3731 +f 3632 3633 3733 3732 +f 3633 3634 3734 3733 +f 3634 3635 3735 3734 +f 3635 3636 3736 3735 +f 3636 3637 3737 3736 +f 3637 3638 3738 3737 +f 3638 3639 3739 3738 +f 3639 3640 3740 3739 +f 3640 3641 3741 3740 +f 3641 3642 3742 3741 +f 3642 3643 3743 3742 +f 3643 3644 3744 3743 +f 3644 3645 3745 3744 +f 3645 3646 3746 3745 +f 3646 3647 3747 3746 +f 3647 3648 3748 3747 +f 3648 3649 3749 3748 +f 3649 3650 3750 3749 +f 3650 3651 3751 3750 +f 3651 3652 3752 3751 +f 3652 3653 3753 3752 +f 3653 3654 3754 3753 +f 3654 3655 3755 3754 +f 3655 3656 3756 3755 +f 3656 3657 3757 3756 +f 3657 3658 3758 3757 +f 3658 3659 3759 3758 +f 3659 3660 3760 3759 +f 3660 3661 3761 3760 +f 3661 3662 3762 3761 +f 3662 3663 3763 3762 +f 3663 3664 3764 3763 +f 3664 3665 3765 3764 +f 3665 3666 3766 3765 +f 3666 3667 3767 3766 +f 3667 3668 3768 3767 +f 3668 3669 3769 3768 +f 3669 3670 3770 3769 +f 3670 3671 3771 3770 +f 3671 3672 3772 3771 +f 3672 3673 3773 3772 +f 3673 3674 3774 3773 +f 3674 3675 3775 3774 +f 3675 3676 3776 3775 +f 3676 3677 3777 3776 +f 3677 3678 3778 3777 +f 3678 3679 3779 3778 +f 3679 3680 3780 3779 +f 3680 3681 3781 3780 +f 3681 3682 3782 3781 +f 3682 3683 3783 3782 +f 3683 3684 3784 3783 +f 3684 3685 3785 3784 +f 3685 3686 3786 3785 +f 3686 3687 3787 3786 +f 3687 3688 3788 3787 +f 3688 3689 3789 3788 +f 3689 3690 3790 3789 +f 3690 3691 3791 3790 +f 3691 3692 3792 3791 +f 3692 3693 3793 3792 +f 3693 3694 3794 3793 +f 3694 3695 3795 3794 +f 3695 3696 3796 3795 +f 3696 3697 3797 3796 +f 3697 3698 3798 3797 +f 3698 3699 3799 3798 +f 3699 3700 3800 3799 +f 3700 3701 3801 3800 +f 3701 3702 3802 3801 +f 3702 3603 3703 3802 +f 3703 3704 3804 3803 +f 3704 3705 3805 3804 +f 3705 3706 3806 3805 +f 3706 3707 3807 3806 +f 3707 3708 3808 3807 +f 3708 3709 3809 3808 +f 3709 3710 3810 3809 +f 3710 3711 3811 3810 +f 3711 3712 3812 3811 +f 3712 3713 3813 3812 +f 3713 3714 3814 3813 +f 3714 3715 3815 3814 +f 3715 3716 3816 3815 +f 3716 3717 3817 3816 +f 3717 3718 3818 3817 +f 3718 3719 3819 3818 +f 3719 3720 3820 3819 +f 3720 3721 3821 3820 +f 3721 3722 3822 3821 +f 3722 3723 3823 3822 +f 3723 3724 3824 3823 +f 3724 3725 3825 3824 +f 3725 3726 3826 3825 +f 3726 3727 3827 3826 +f 3727 3728 3828 3827 +f 3728 3729 3829 3828 +f 3729 3730 3830 3829 +f 3730 3731 3831 3830 +f 3731 3732 3832 3831 +f 3732 3733 3833 3832 +f 3733 3734 3834 3833 +f 3734 3735 3835 3834 +f 3735 3736 3836 3835 +f 3736 3737 3837 3836 +f 3737 3738 3838 3837 +f 3738 3739 3839 3838 +f 3739 3740 3840 3839 +f 3740 3741 3841 3840 +f 3741 3742 3842 3841 +f 3742 3743 3843 3842 +f 3743 3744 3844 3843 +f 3744 3745 3845 3844 +f 3745 3746 3846 3845 +f 3746 3747 3847 3846 +f 3747 3748 3848 3847 +f 3748 3749 3849 3848 +f 3749 3750 3850 3849 +f 3750 3751 3851 3850 +f 3751 3752 3852 3851 +f 3752 3753 3853 3852 +f 3753 3754 3854 3853 +f 3754 3755 3855 3854 +f 3755 3756 3856 3855 +f 3756 3757 3857 3856 +f 3757 3758 3858 3857 +f 3758 3759 3859 3858 +f 3759 3760 3860 3859 +f 3760 3761 3861 3860 +f 3761 3762 3862 3861 +f 3762 3763 3863 3862 +f 3763 3764 3864 3863 +f 3764 3765 3865 3864 +f 3765 3766 3866 3865 +f 3766 3767 3867 3866 +f 3767 3768 3868 3867 +f 3768 3769 3869 3868 +f 3769 3770 3870 3869 +f 3770 3771 3871 3870 +f 3771 3772 3872 3871 +f 3772 3773 3873 3872 +f 3773 3774 3874 3873 +f 3774 3775 3875 3874 +f 3775 3776 3876 3875 +f 3776 3777 3877 3876 +f 3777 3778 3878 3877 +f 3778 3779 3879 3878 +f 3779 3780 3880 3879 +f 3780 3781 3881 3880 +f 3781 3782 3882 3881 +f 3782 3783 3883 3882 +f 3783 3784 3884 3883 +f 3784 3785 3885 3884 +f 3785 3786 3886 3885 +f 3786 3787 3887 3886 +f 3787 3788 3888 3887 +f 3788 3789 3889 3888 +f 3789 3790 3890 3889 +f 3790 3791 3891 3890 +f 3791 3792 3892 3891 +f 3792 3793 3893 3892 +f 3793 3794 3894 3893 +f 3794 3795 3895 3894 +f 3795 3796 3896 3895 +f 3796 3797 3897 3896 +f 3797 3798 3898 3897 +f 3798 3799 3899 3898 +f 3799 3800 3900 3899 +f 3800 3801 3901 3900 +f 3801 3802 3902 3901 +f 3802 3703 3803 3902 +f 3803 3804 3904 3903 +f 3804 3805 3905 3904 +f 3805 3806 3906 3905 +f 3806 3807 3907 3906 +f 3807 3808 3908 3907 +f 3808 3809 3909 3908 +f 3809 3810 3910 3909 +f 3810 3811 3911 3910 +f 3811 3812 3912 3911 +f 3812 3813 3913 3912 +f 3813 3814 3914 3913 +f 3814 3815 3915 3914 +f 3815 3816 3916 3915 +f 3816 3817 3917 3916 +f 3817 3818 3918 3917 +f 3818 3819 3919 3918 +f 3819 3820 3920 3919 +f 3820 3821 3921 3920 +f 3821 3822 3922 3921 +f 3822 3823 3923 3922 +f 3823 3824 3924 3923 +f 3824 3825 3925 3924 +f 3825 3826 3926 3925 +f 3826 3827 3927 3926 +f 3827 3828 3928 3927 +f 3828 3829 3929 3928 +f 3829 3830 3930 3929 +f 3830 3831 3931 3930 +f 3831 3832 3932 3931 +f 3832 3833 3933 3932 +f 3833 3834 3934 3933 +f 3834 3835 3935 3934 +f 3835 3836 3936 3935 +f 3836 3837 3937 3936 +f 3837 3838 3938 3937 +f 3838 3839 3939 3938 +f 3839 3840 3940 3939 +f 3840 3841 3941 3940 +f 3841 3842 3942 3941 +f 3842 3843 3943 3942 +f 3843 3844 3944 3943 +f 3844 3845 3945 3944 +f 3845 3846 3946 3945 +f 3846 3847 3947 3946 +f 3847 3848 3948 3947 +f 3848 3849 3949 3948 +f 3849 3850 3950 3949 +f 3850 3851 3951 3950 +f 3851 3852 3952 3951 +f 3852 3853 3953 3952 +f 3853 3854 3954 3953 +f 3854 3855 3955 3954 +f 3855 3856 3956 3955 +f 3856 3857 3957 3956 +f 3857 3858 3958 3957 +f 3858 3859 3959 3958 +f 3859 3860 3960 3959 +f 3860 3861 3961 3960 +f 3861 3862 3962 3961 +f 3862 3863 3963 3962 +f 3863 3864 3964 3963 +f 3864 3865 3965 3964 +f 3865 3866 3966 3965 +f 3866 3867 3967 3966 +f 3867 3868 3968 3967 +f 3868 3869 3969 3968 +f 3869 3870 3970 3969 +f 3870 3871 3971 3970 +f 3871 3872 3972 3971 +f 3872 3873 3973 3972 +f 3873 3874 3974 3973 +f 3874 3875 3975 3974 +f 3875 3876 3976 3975 +f 3876 3877 3977 3976 +f 3877 3878 3978 3977 +f 3878 3879 3979 3978 +f 3879 3880 3980 3979 +f 3880 3881 3981 3980 +f 3881 3882 3982 3981 +f 3882 3883 3983 3982 +f 3883 3884 3984 3983 +f 3884 3885 3985 3984 +f 3885 3886 3986 3985 +f 3886 3887 3987 3986 +f 3887 3888 3988 3987 +f 3888 3889 3989 3988 +f 3889 3890 3990 3989 +f 3890 3891 3991 3990 +f 3891 3892 3992 3991 +f 3892 3893 3993 3992 +f 3893 3894 3994 3993 +f 3894 3895 3995 3994 +f 3895 3896 3996 3995 +f 3896 3897 3997 3996 +f 3897 3898 3998 3997 +f 3898 3899 3999 3998 +f 3899 3900 4000 3999 +f 3900 3901 4001 4000 +f 3901 3902 4002 4001 +f 3902 3803 3903 4002 +f 3903 3904 4004 4003 +f 3904 3905 4005 4004 +f 3905 3906 4006 4005 +f 3906 3907 4007 4006 +f 3907 3908 4008 4007 +f 3908 3909 4009 4008 +f 3909 3910 4010 4009 +f 3910 3911 4011 4010 +f 3911 3912 4012 4011 +f 3912 3913 4013 4012 +f 3913 3914 4014 4013 +f 3914 3915 4015 4014 +f 3915 3916 4016 4015 +f 3916 3917 4017 4016 +f 3917 3918 4018 4017 +f 3918 3919 4019 4018 +f 3919 3920 4020 4019 +f 3920 3921 4021 4020 +f 3921 3922 4022 4021 +f 3922 3923 4023 4022 +f 3923 3924 4024 4023 +f 3924 3925 4025 4024 +f 3925 3926 4026 4025 +f 3926 3927 4027 4026 +f 3927 3928 4028 4027 +f 3928 3929 4029 4028 +f 3929 3930 4030 4029 +f 3930 3931 4031 4030 +f 3931 3932 4032 4031 +f 3932 3933 4033 4032 +f 3933 3934 4034 4033 +f 3934 3935 4035 4034 +f 3935 3936 4036 4035 +f 3936 3937 4037 4036 +f 3937 3938 4038 4037 +f 3938 3939 4039 4038 +f 3939 3940 4040 4039 +f 3940 3941 4041 4040 +f 3941 3942 4042 4041 +f 3942 3943 4043 4042 +f 3943 3944 4044 4043 +f 3944 3945 4045 4044 +f 3945 3946 4046 4045 +f 3946 3947 4047 4046 +f 3947 3948 4048 4047 +f 3948 3949 4049 4048 +f 3949 3950 4050 4049 +f 3950 3951 4051 4050 +f 3951 3952 4052 4051 +f 3952 3953 4053 4052 +f 3953 3954 4054 4053 +f 3954 3955 4055 4054 +f 3955 3956 4056 4055 +f 3956 3957 4057 4056 +f 3957 3958 4058 4057 +f 3958 3959 4059 4058 +f 3959 3960 4060 4059 +f 3960 3961 4061 4060 +f 3961 3962 4062 4061 +f 3962 3963 4063 4062 +f 3963 3964 4064 4063 +f 3964 3965 4065 4064 +f 3965 3966 4066 4065 +f 3966 3967 4067 4066 +f 3967 3968 4068 4067 +f 3968 3969 4069 4068 +f 3969 3970 4070 4069 +f 3970 3971 4071 4070 +f 3971 3972 4072 4071 +f 3972 3973 4073 4072 +f 3973 3974 4074 4073 +f 3974 3975 4075 4074 +f 3975 3976 4076 4075 +f 3976 3977 4077 4076 +f 3977 3978 4078 4077 +f 3978 3979 4079 4078 +f 3979 3980 4080 4079 +f 3980 3981 4081 4080 +f 3981 3982 4082 4081 +f 3982 3983 4083 4082 +f 3983 3984 4084 4083 +f 3984 3985 4085 4084 +f 3985 3986 4086 4085 +f 3986 3987 4087 4086 +f 3987 3988 4088 4087 +f 3988 3989 4089 4088 +f 3989 3990 4090 4089 +f 3990 3991 4091 4090 +f 3991 3992 4092 4091 +f 3992 3993 4093 4092 +f 3993 3994 4094 4093 +f 3994 3995 4095 4094 +f 3995 3996 4096 4095 +f 3996 3997 4097 4096 +f 3997 3998 4098 4097 +f 3998 3999 4099 4098 +f 3999 4000 4100 4099 +f 4000 4001 4101 4100 +f 4001 4002 4102 4101 +f 4002 3903 4003 4102 +f 4003 4004 4104 4103 +f 4004 4005 4105 4104 +f 4005 4006 4106 4105 +f 4006 4007 4107 4106 +f 4007 4008 4108 4107 +f 4008 4009 4109 4108 +f 4009 4010 4110 4109 +f 4010 4011 4111 4110 +f 4011 4012 4112 4111 +f 4012 4013 4113 4112 +f 4013 4014 4114 4113 +f 4014 4015 4115 4114 +f 4015 4016 4116 4115 +f 4016 4017 4117 4116 +f 4017 4018 4118 4117 +f 4018 4019 4119 4118 +f 4019 4020 4120 4119 +f 4020 4021 4121 4120 +f 4021 4022 4122 4121 +f 4022 4023 4123 4122 +f 4023 4024 4124 4123 +f 4024 4025 4125 4124 +f 4025 4026 4126 4125 +f 4026 4027 4127 4126 +f 4027 4028 4128 4127 +f 4028 4029 4129 4128 +f 4029 4030 4130 4129 +f 4030 4031 4131 4130 +f 4031 4032 4132 4131 +f 4032 4033 4133 4132 +f 4033 4034 4134 4133 +f 4034 4035 4135 4134 +f 4035 4036 4136 4135 +f 4036 4037 4137 4136 +f 4037 4038 4138 4137 +f 4038 4039 4139 4138 +f 4039 4040 4140 4139 +f 4040 4041 4141 4140 +f 4041 4042 4142 4141 +f 4042 4043 4143 4142 +f 4043 4044 4144 4143 +f 4044 4045 4145 4144 +f 4045 4046 4146 4145 +f 4046 4047 4147 4146 +f 4047 4048 4148 4147 +f 4048 4049 4149 4148 +f 4049 4050 4150 4149 +f 4050 4051 4151 4150 +f 4051 4052 4152 4151 +f 4052 4053 4153 4152 +f 4053 4054 4154 4153 +f 4054 4055 4155 4154 +f 4055 4056 4156 4155 +f 4056 4057 4157 4156 +f 4057 4058 4158 4157 +f 4058 4059 4159 4158 +f 4059 4060 4160 4159 +f 4060 4061 4161 4160 +f 4061 4062 4162 4161 +f 4062 4063 4163 4162 +f 4063 4064 4164 4163 +f 4064 4065 4165 4164 +f 4065 4066 4166 4165 +f 4066 4067 4167 4166 +f 4067 4068 4168 4167 +f 4068 4069 4169 4168 +f 4069 4070 4170 4169 +f 4070 4071 4171 4170 +f 4071 4072 4172 4171 +f 4072 4073 4173 4172 +f 4073 4074 4174 4173 +f 4074 4075 4175 4174 +f 4075 4076 4176 4175 +f 4076 4077 4177 4176 +f 4077 4078 4178 4177 +f 4078 4079 4179 4178 +f 4079 4080 4180 4179 +f 4080 4081 4181 4180 +f 4081 4082 4182 4181 +f 4082 4083 4183 4182 +f 4083 4084 4184 4183 +f 4084 4085 4185 4184 +f 4085 4086 4186 4185 +f 4086 4087 4187 4186 +f 4087 4088 4188 4187 +f 4088 4089 4189 4188 +f 4089 4090 4190 4189 +f 4090 4091 4191 4190 +f 4091 4092 4192 4191 +f 4092 4093 4193 4192 +f 4093 4094 4194 4193 +f 4094 4095 4195 4194 +f 4095 4096 4196 4195 +f 4096 4097 4197 4196 +f 4097 4098 4198 4197 +f 4098 4099 4199 4198 +f 4099 4100 4200 4199 +f 4100 4101 4201 4200 +f 4101 4102 4202 4201 +f 4102 4003 4103 4202 +f 4103 4104 4204 4203 +f 4104 4105 4205 4204 +f 4105 4106 4206 4205 +f 4106 4107 4207 4206 +f 4107 4108 4208 4207 +f 4108 4109 4209 4208 +f 4109 4110 4210 4209 +f 4110 4111 4211 4210 +f 4111 4112 4212 4211 +f 4112 4113 4213 4212 +f 4113 4114 4214 4213 +f 4114 4115 4215 4214 +f 4115 4116 4216 4215 +f 4116 4117 4217 4216 +f 4117 4118 4218 4217 +f 4118 4119 4219 4218 +f 4119 4120 4220 4219 +f 4120 4121 4221 4220 +f 4121 4122 4222 4221 +f 4122 4123 4223 4222 +f 4123 4124 4224 4223 +f 4124 4125 4225 4224 +f 4125 4126 4226 4225 +f 4126 4127 4227 4226 +f 4127 4128 4228 4227 +f 4128 4129 4229 4228 +f 4129 4130 4230 4229 +f 4130 4131 4231 4230 +f 4131 4132 4232 4231 +f 4132 4133 4233 4232 +f 4133 4134 4234 4233 +f 4134 4135 4235 4234 +f 4135 4136 4236 4235 +f 4136 4137 4237 4236 +f 4137 4138 4238 4237 +f 4138 4139 4239 4238 +f 4139 4140 4240 4239 +f 4140 4141 4241 4240 +f 4141 4142 4242 4241 +f 4142 4143 4243 4242 +f 4143 4144 4244 4243 +f 4144 4145 4245 4244 +f 4145 4146 4246 4245 +f 4146 4147 4247 4246 +f 4147 4148 4248 4247 +f 4148 4149 4249 4248 +f 4149 4150 4250 4249 +f 4150 4151 4251 4250 +f 4151 4152 4252 4251 +f 4152 4153 4253 4252 +f 4153 4154 4254 4253 +f 4154 4155 4255 4254 +f 4155 4156 4256 4255 +f 4156 4157 4257 4256 +f 4157 4158 4258 4257 +f 4158 4159 4259 4258 +f 4159 4160 4260 4259 +f 4160 4161 4261 4260 +f 4161 4162 4262 4261 +f 4162 4163 4263 4262 +f 4163 4164 4264 4263 +f 4164 4165 4265 4264 +f 4165 4166 4266 4265 +f 4166 4167 4267 4266 +f 4167 4168 4268 4267 +f 4168 4169 4269 4268 +f 4169 4170 4270 4269 +f 4170 4171 4271 4270 +f 4171 4172 4272 4271 +f 4172 4173 4273 4272 +f 4173 4174 4274 4273 +f 4174 4175 4275 4274 +f 4175 4176 4276 4275 +f 4176 4177 4277 4276 +f 4177 4178 4278 4277 +f 4178 4179 4279 4278 +f 4179 4180 4280 4279 +f 4180 4181 4281 4280 +f 4181 4182 4282 4281 +f 4182 4183 4283 4282 +f 4183 4184 4284 4283 +f 4184 4185 4285 4284 +f 4185 4186 4286 4285 +f 4186 4187 4287 4286 +f 4187 4188 4288 4287 +f 4188 4189 4289 4288 +f 4189 4190 4290 4289 +f 4190 4191 4291 4290 +f 4191 4192 4292 4291 +f 4192 4193 4293 4292 +f 4193 4194 4294 4293 +f 4194 4195 4295 4294 +f 4195 4196 4296 4295 +f 4196 4197 4297 4296 +f 4197 4198 4298 4297 +f 4198 4199 4299 4298 +f 4199 4200 4300 4299 +f 4200 4201 4301 4300 +f 4201 4202 4302 4301 +f 4202 4103 4203 4302 +f 4203 4204 4304 4303 +f 4204 4205 4305 4304 +f 4205 4206 4306 4305 +f 4206 4207 4307 4306 +f 4207 4208 4308 4307 +f 4208 4209 4309 4308 +f 4209 4210 4310 4309 +f 4210 4211 4311 4310 +f 4211 4212 4312 4311 +f 4212 4213 4313 4312 +f 4213 4214 4314 4313 +f 4214 4215 4315 4314 +f 4215 4216 4316 4315 +f 4216 4217 4317 4316 +f 4217 4218 4318 4317 +f 4218 4219 4319 4318 +f 4219 4220 4320 4319 +f 4220 4221 4321 4320 +f 4221 4222 4322 4321 +f 4222 4223 4323 4322 +f 4223 4224 4324 4323 +f 4224 4225 4325 4324 +f 4225 4226 4326 4325 +f 4226 4227 4327 4326 +f 4227 4228 4328 4327 +f 4228 4229 4329 4328 +f 4229 4230 4330 4329 +f 4230 4231 4331 4330 +f 4231 4232 4332 4331 +f 4232 4233 4333 4332 +f 4233 4234 4334 4333 +f 4234 4235 4335 4334 +f 4235 4236 4336 4335 +f 4236 4237 4337 4336 +f 4237 4238 4338 4337 +f 4238 4239 4339 4338 +f 4239 4240 4340 4339 +f 4240 4241 4341 4340 +f 4241 4242 4342 4341 +f 4242 4243 4343 4342 +f 4243 4244 4344 4343 +f 4244 4245 4345 4344 +f 4245 4246 4346 4345 +f 4246 4247 4347 4346 +f 4247 4248 4348 4347 +f 4248 4249 4349 4348 +f 4249 4250 4350 4349 +f 4250 4251 4351 4350 +f 4251 4252 4352 4351 +f 4252 4253 4353 4352 +f 4253 4254 4354 4353 +f 4254 4255 4355 4354 +f 4255 4256 4356 4355 +f 4256 4257 4357 4356 +f 4257 4258 4358 4357 +f 4258 4259 4359 4358 +f 4259 4260 4360 4359 +f 4260 4261 4361 4360 +f 4261 4262 4362 4361 +f 4262 4263 4363 4362 +f 4263 4264 4364 4363 +f 4264 4265 4365 4364 +f 4265 4266 4366 4365 +f 4266 4267 4367 4366 +f 4267 4268 4368 4367 +f 4268 4269 4369 4368 +f 4269 4270 4370 4369 +f 4270 4271 4371 4370 +f 4271 4272 4372 4371 +f 4272 4273 4373 4372 +f 4273 4274 4374 4373 +f 4274 4275 4375 4374 +f 4275 4276 4376 4375 +f 4276 4277 4377 4376 +f 4277 4278 4378 4377 +f 4278 4279 4379 4378 +f 4279 4280 4380 4379 +f 4280 4281 4381 4380 +f 4281 4282 4382 4381 +f 4282 4283 4383 4382 +f 4283 4284 4384 4383 +f 4284 4285 4385 4384 +f 4285 4286 4386 4385 +f 4286 4287 4387 4386 +f 4287 4288 4388 4387 +f 4288 4289 4389 4388 +f 4289 4290 4390 4389 +f 4290 4291 4391 4390 +f 4291 4292 4392 4391 +f 4292 4293 4393 4392 +f 4293 4294 4394 4393 +f 4294 4295 4395 4394 +f 4295 4296 4396 4395 +f 4296 4297 4397 4396 +f 4297 4298 4398 4397 +f 4298 4299 4399 4398 +f 4299 4300 4400 4399 +f 4300 4301 4401 4400 +f 4301 4302 4402 4401 +f 4302 4203 4303 4402 +f 4303 4304 4404 4403 +f 4304 4305 4405 4404 +f 4305 4306 4406 4405 +f 4306 4307 4407 4406 +f 4307 4308 4408 4407 +f 4308 4309 4409 4408 +f 4309 4310 4410 4409 +f 4310 4311 4411 4410 +f 4311 4312 4412 4411 +f 4312 4313 4413 4412 +f 4313 4314 4414 4413 +f 4314 4315 4415 4414 +f 4315 4316 4416 4415 +f 4316 4317 4417 4416 +f 4317 4318 4418 4417 +f 4318 4319 4419 4418 +f 4319 4320 4420 4419 +f 4320 4321 4421 4420 +f 4321 4322 4422 4421 +f 4322 4323 4423 4422 +f 4323 4324 4424 4423 +f 4324 4325 4425 4424 +f 4325 4326 4426 4425 +f 4326 4327 4427 4426 +f 4327 4328 4428 4427 +f 4328 4329 4429 4428 +f 4329 4330 4430 4429 +f 4330 4331 4431 4430 +f 4331 4332 4432 4431 +f 4332 4333 4433 4432 +f 4333 4334 4434 4433 +f 4334 4335 4435 4434 +f 4335 4336 4436 4435 +f 4336 4337 4437 4436 +f 4337 4338 4438 4437 +f 4338 4339 4439 4438 +f 4339 4340 4440 4439 +f 4340 4341 4441 4440 +f 4341 4342 4442 4441 +f 4342 4343 4443 4442 +f 4343 4344 4444 4443 +f 4344 4345 4445 4444 +f 4345 4346 4446 4445 +f 4346 4347 4447 4446 +f 4347 4348 4448 4447 +f 4348 4349 4449 4448 +f 4349 4350 4450 4449 +f 4350 4351 4451 4450 +f 4351 4352 4452 4451 +f 4352 4353 4453 4452 +f 4353 4354 4454 4453 +f 4354 4355 4455 4454 +f 4355 4356 4456 4455 +f 4356 4357 4457 4456 +f 4357 4358 4458 4457 +f 4358 4359 4459 4458 +f 4359 4360 4460 4459 +f 4360 4361 4461 4460 +f 4361 4362 4462 4461 +f 4362 4363 4463 4462 +f 4363 4364 4464 4463 +f 4364 4365 4465 4464 +f 4365 4366 4466 4465 +f 4366 4367 4467 4466 +f 4367 4368 4468 4467 +f 4368 4369 4469 4468 +f 4369 4370 4470 4469 +f 4370 4371 4471 4470 +f 4371 4372 4472 4471 +f 4372 4373 4473 4472 +f 4373 4374 4474 4473 +f 4374 4375 4475 4474 +f 4375 4376 4476 4475 +f 4376 4377 4477 4476 +f 4377 4378 4478 4477 +f 4378 4379 4479 4478 +f 4379 4380 4480 4479 +f 4380 4381 4481 4480 +f 4381 4382 4482 4481 +f 4382 4383 4483 4482 +f 4383 4384 4484 4483 +f 4384 4385 4485 4484 +f 4385 4386 4486 4485 +f 4386 4387 4487 4486 +f 4387 4388 4488 4487 +f 4388 4389 4489 4488 +f 4389 4390 4490 4489 +f 4390 4391 4491 4490 +f 4391 4392 4492 4491 +f 4392 4393 4493 4492 +f 4393 4394 4494 4493 +f 4394 4395 4495 4494 +f 4395 4396 4496 4495 +f 4396 4397 4497 4496 +f 4397 4398 4498 4497 +f 4398 4399 4499 4498 +f 4399 4400 4500 4499 +f 4400 4401 4501 4500 +f 4401 4402 4502 4501 +f 4402 4303 4403 4502 +f 4403 4404 4504 4503 +f 4404 4405 4505 4504 +f 4405 4406 4506 4505 +f 4406 4407 4507 4506 +f 4407 4408 4508 4507 +f 4408 4409 4509 4508 +f 4409 4410 4510 4509 +f 4410 4411 4511 4510 +f 4411 4412 4512 4511 +f 4412 4413 4513 4512 +f 4413 4414 4514 4513 +f 4414 4415 4515 4514 +f 4415 4416 4516 4515 +f 4416 4417 4517 4516 +f 4417 4418 4518 4517 +f 4418 4419 4519 4518 +f 4419 4420 4520 4519 +f 4420 4421 4521 4520 +f 4421 4422 4522 4521 +f 4422 4423 4523 4522 +f 4423 4424 4524 4523 +f 4424 4425 4525 4524 +f 4425 4426 4526 4525 +f 4426 4427 4527 4526 +f 4427 4428 4528 4527 +f 4428 4429 4529 4528 +f 4429 4430 4530 4529 +f 4430 4431 4531 4530 +f 4431 4432 4532 4531 +f 4432 4433 4533 4532 +f 4433 4434 4534 4533 +f 4434 4435 4535 4534 +f 4435 4436 4536 4535 +f 4436 4437 4537 4536 +f 4437 4438 4538 4537 +f 4438 4439 4539 4538 +f 4439 4440 4540 4539 +f 4440 4441 4541 4540 +f 4441 4442 4542 4541 +f 4442 4443 4543 4542 +f 4443 4444 4544 4543 +f 4444 4445 4545 4544 +f 4445 4446 4546 4545 +f 4446 4447 4547 4546 +f 4447 4448 4548 4547 +f 4448 4449 4549 4548 +f 4449 4450 4550 4549 +f 4450 4451 4551 4550 +f 4451 4452 4552 4551 +f 4452 4453 4553 4552 +f 4453 4454 4554 4553 +f 4454 4455 4555 4554 +f 4455 4456 4556 4555 +f 4456 4457 4557 4556 +f 4457 4458 4558 4557 +f 4458 4459 4559 4558 +f 4459 4460 4560 4559 +f 4460 4461 4561 4560 +f 4461 4462 4562 4561 +f 4462 4463 4563 4562 +f 4463 4464 4564 4563 +f 4464 4465 4565 4564 +f 4465 4466 4566 4565 +f 4466 4467 4567 4566 +f 4467 4468 4568 4567 +f 4468 4469 4569 4568 +f 4469 4470 4570 4569 +f 4470 4471 4571 4570 +f 4471 4472 4572 4571 +f 4472 4473 4573 4572 +f 4473 4474 4574 4573 +f 4474 4475 4575 4574 +f 4475 4476 4576 4575 +f 4476 4477 4577 4576 +f 4477 4478 4578 4577 +f 4478 4479 4579 4578 +f 4479 4480 4580 4579 +f 4480 4481 4581 4580 +f 4481 4482 4582 4581 +f 4482 4483 4583 4582 +f 4483 4484 4584 4583 +f 4484 4485 4585 4584 +f 4485 4486 4586 4585 +f 4486 4487 4587 4586 +f 4487 4488 4588 4587 +f 4488 4489 4589 4588 +f 4489 4490 4590 4589 +f 4490 4491 4591 4590 +f 4491 4492 4592 4591 +f 4492 4493 4593 4592 +f 4493 4494 4594 4593 +f 4494 4495 4595 4594 +f 4495 4496 4596 4595 +f 4496 4497 4597 4596 +f 4497 4498 4598 4597 +f 4498 4499 4599 4598 +f 4499 4500 4600 4599 +f 4500 4501 4601 4600 +f 4501 4502 4602 4601 +f 4502 4403 4503 4602 +f 4503 4504 4604 4603 +f 4504 4505 4605 4604 +f 4505 4506 4606 4605 +f 4506 4507 4607 4606 +f 4507 4508 4608 4607 +f 4508 4509 4609 4608 +f 4509 4510 4610 4609 +f 4510 4511 4611 4610 +f 4511 4512 4612 4611 +f 4512 4513 4613 4612 +f 4513 4514 4614 4613 +f 4514 4515 4615 4614 +f 4515 4516 4616 4615 +f 4516 4517 4617 4616 +f 4517 4518 4618 4617 +f 4518 4519 4619 4618 +f 4519 4520 4620 4619 +f 4520 4521 4621 4620 +f 4521 4522 4622 4621 +f 4522 4523 4623 4622 +f 4523 4524 4624 4623 +f 4524 4525 4625 4624 +f 4525 4526 4626 4625 +f 4526 4527 4627 4626 +f 4527 4528 4628 4627 +f 4528 4529 4629 4628 +f 4529 4530 4630 4629 +f 4530 4531 4631 4630 +f 4531 4532 4632 4631 +f 4532 4533 4633 4632 +f 4533 4534 4634 4633 +f 4534 4535 4635 4634 +f 4535 4536 4636 4635 +f 4536 4537 4637 4636 +f 4537 4538 4638 4637 +f 4538 4539 4639 4638 +f 4539 4540 4640 4639 +f 4540 4541 4641 4640 +f 4541 4542 4642 4641 +f 4542 4543 4643 4642 +f 4543 4544 4644 4643 +f 4544 4545 4645 4644 +f 4545 4546 4646 4645 +f 4546 4547 4647 4646 +f 4547 4548 4648 4647 +f 4548 4549 4649 4648 +f 4549 4550 4650 4649 +f 4550 4551 4651 4650 +f 4551 4552 4652 4651 +f 4552 4553 4653 4652 +f 4553 4554 4654 4653 +f 4554 4555 4655 4654 +f 4555 4556 4656 4655 +f 4556 4557 4657 4656 +f 4557 4558 4658 4657 +f 4558 4559 4659 4658 +f 4559 4560 4660 4659 +f 4560 4561 4661 4660 +f 4561 4562 4662 4661 +f 4562 4563 4663 4662 +f 4563 4564 4664 4663 +f 4564 4565 4665 4664 +f 4565 4566 4666 4665 +f 4566 4567 4667 4666 +f 4567 4568 4668 4667 +f 4568 4569 4669 4668 +f 4569 4570 4670 4669 +f 4570 4571 4671 4670 +f 4571 4572 4672 4671 +f 4572 4573 4673 4672 +f 4573 4574 4674 4673 +f 4574 4575 4675 4674 +f 4575 4576 4676 4675 +f 4576 4577 4677 4676 +f 4577 4578 4678 4677 +f 4578 4579 4679 4678 +f 4579 4580 4680 4679 +f 4580 4581 4681 4680 +f 4581 4582 4682 4681 +f 4582 4583 4683 4682 +f 4583 4584 4684 4683 +f 4584 4585 4685 4684 +f 4585 4586 4686 4685 +f 4586 4587 4687 4686 +f 4587 4588 4688 4687 +f 4588 4589 4689 4688 +f 4589 4590 4690 4689 +f 4590 4591 4691 4690 +f 4591 4592 4692 4691 +f 4592 4593 4693 4692 +f 4593 4594 4694 4693 +f 4594 4595 4695 4694 +f 4595 4596 4696 4695 +f 4596 4597 4697 4696 +f 4597 4598 4698 4697 +f 4598 4599 4699 4698 +f 4599 4600 4700 4699 +f 4600 4601 4701 4700 +f 4601 4602 4702 4701 +f 4602 4503 4603 4702 +f 4603 4604 4704 4703 +f 4604 4605 4705 4704 +f 4605 4606 4706 4705 +f 4606 4607 4707 4706 +f 4607 4608 4708 4707 +f 4608 4609 4709 4708 +f 4609 4610 4710 4709 +f 4610 4611 4711 4710 +f 4611 4612 4712 4711 +f 4612 4613 4713 4712 +f 4613 4614 4714 4713 +f 4614 4615 4715 4714 +f 4615 4616 4716 4715 +f 4616 4617 4717 4716 +f 4617 4618 4718 4717 +f 4618 4619 4719 4718 +f 4619 4620 4720 4719 +f 4620 4621 4721 4720 +f 4621 4622 4722 4721 +f 4622 4623 4723 4722 +f 4623 4624 4724 4723 +f 4624 4625 4725 4724 +f 4625 4626 4726 4725 +f 4626 4627 4727 4726 +f 4627 4628 4728 4727 +f 4628 4629 4729 4728 +f 4629 4630 4730 4729 +f 4630 4631 4731 4730 +f 4631 4632 4732 4731 +f 4632 4633 4733 4732 +f 4633 4634 4734 4733 +f 4634 4635 4735 4734 +f 4635 4636 4736 4735 +f 4636 4637 4737 4736 +f 4637 4638 4738 4737 +f 4638 4639 4739 4738 +f 4639 4640 4740 4739 +f 4640 4641 4741 4740 +f 4641 4642 4742 4741 +f 4642 4643 4743 4742 +f 4643 4644 4744 4743 +f 4644 4645 4745 4744 +f 4645 4646 4746 4745 +f 4646 4647 4747 4746 +f 4647 4648 4748 4747 +f 4648 4649 4749 4748 +f 4649 4650 4750 4749 +f 4650 4651 4751 4750 +f 4651 4652 4752 4751 +f 4652 4653 4753 4752 +f 4653 4654 4754 4753 +f 4654 4655 4755 4754 +f 4655 4656 4756 4755 +f 4656 4657 4757 4756 +f 4657 4658 4758 4757 +f 4658 4659 4759 4758 +f 4659 4660 4760 4759 +f 4660 4661 4761 4760 +f 4661 4662 4762 4761 +f 4662 4663 4763 4762 +f 4663 4664 4764 4763 +f 4664 4665 4765 4764 +f 4665 4666 4766 4765 +f 4666 4667 4767 4766 +f 4667 4668 4768 4767 +f 4668 4669 4769 4768 +f 4669 4670 4770 4769 +f 4670 4671 4771 4770 +f 4671 4672 4772 4771 +f 4672 4673 4773 4772 +f 4673 4674 4774 4773 +f 4674 4675 4775 4774 +f 4675 4676 4776 4775 +f 4676 4677 4777 4776 +f 4677 4678 4778 4777 +f 4678 4679 4779 4778 +f 4679 4680 4780 4779 +f 4680 4681 4781 4780 +f 4681 4682 4782 4781 +f 4682 4683 4783 4782 +f 4683 4684 4784 4783 +f 4684 4685 4785 4784 +f 4685 4686 4786 4785 +f 4686 4687 4787 4786 +f 4687 4688 4788 4787 +f 4688 4689 4789 4788 +f 4689 4690 4790 4789 +f 4690 4691 4791 4790 +f 4691 4692 4792 4791 +f 4692 4693 4793 4792 +f 4693 4694 4794 4793 +f 4694 4695 4795 4794 +f 4695 4696 4796 4795 +f 4696 4697 4797 4796 +f 4697 4698 4798 4797 +f 4698 4699 4799 4798 +f 4699 4700 4800 4799 +f 4700 4701 4801 4800 +f 4701 4702 4802 4801 +f 4702 4603 4703 4802 +f 4703 4704 4804 4803 +f 4704 4705 4805 4804 +f 4705 4706 4806 4805 +f 4706 4707 4807 4806 +f 4707 4708 4808 4807 +f 4708 4709 4809 4808 +f 4709 4710 4810 4809 +f 4710 4711 4811 4810 +f 4711 4712 4812 4811 +f 4712 4713 4813 4812 +f 4713 4714 4814 4813 +f 4714 4715 4815 4814 +f 4715 4716 4816 4815 +f 4716 4717 4817 4816 +f 4717 4718 4818 4817 +f 4718 4719 4819 4818 +f 4719 4720 4820 4819 +f 4720 4721 4821 4820 +f 4721 4722 4822 4821 +f 4722 4723 4823 4822 +f 4723 4724 4824 4823 +f 4724 4725 4825 4824 +f 4725 4726 4826 4825 +f 4726 4727 4827 4826 +f 4727 4728 4828 4827 +f 4728 4729 4829 4828 +f 4729 4730 4830 4829 +f 4730 4731 4831 4830 +f 4731 4732 4832 4831 +f 4732 4733 4833 4832 +f 4733 4734 4834 4833 +f 4734 4735 4835 4834 +f 4735 4736 4836 4835 +f 4736 4737 4837 4836 +f 4737 4738 4838 4837 +f 4738 4739 4839 4838 +f 4739 4740 4840 4839 +f 4740 4741 4841 4840 +f 4741 4742 4842 4841 +f 4742 4743 4843 4842 +f 4743 4744 4844 4843 +f 4744 4745 4845 4844 +f 4745 4746 4846 4845 +f 4746 4747 4847 4846 +f 4747 4748 4848 4847 +f 4748 4749 4849 4848 +f 4749 4750 4850 4849 +f 4750 4751 4851 4850 +f 4751 4752 4852 4851 +f 4752 4753 4853 4852 +f 4753 4754 4854 4853 +f 4754 4755 4855 4854 +f 4755 4756 4856 4855 +f 4756 4757 4857 4856 +f 4757 4758 4858 4857 +f 4758 4759 4859 4858 +f 4759 4760 4860 4859 +f 4760 4761 4861 4860 +f 4761 4762 4862 4861 +f 4762 4763 4863 4862 +f 4763 4764 4864 4863 +f 4764 4765 4865 4864 +f 4765 4766 4866 4865 +f 4766 4767 4867 4866 +f 4767 4768 4868 4867 +f 4768 4769 4869 4868 +f 4769 4770 4870 4869 +f 4770 4771 4871 4870 +f 4771 4772 4872 4871 +f 4772 4773 4873 4872 +f 4773 4774 4874 4873 +f 4774 4775 4875 4874 +f 4775 4776 4876 4875 +f 4776 4777 4877 4876 +f 4777 4778 4878 4877 +f 4778 4779 4879 4878 +f 4779 4780 4880 4879 +f 4780 4781 4881 4880 +f 4781 4782 4882 4881 +f 4782 4783 4883 4882 +f 4783 4784 4884 4883 +f 4784 4785 4885 4884 +f 4785 4786 4886 4885 +f 4786 4787 4887 4886 +f 4787 4788 4888 4887 +f 4788 4789 4889 4888 +f 4789 4790 4890 4889 +f 4790 4791 4891 4890 +f 4791 4792 4892 4891 +f 4792 4793 4893 4892 +f 4793 4794 4894 4893 +f 4794 4795 4895 4894 +f 4795 4796 4896 4895 +f 4796 4797 4897 4896 +f 4797 4798 4898 4897 +f 4798 4799 4899 4898 +f 4799 4800 4900 4899 +f 4800 4801 4901 4900 +f 4801 4802 4902 4901 +f 4802 4703 4803 4902 +f 4803 4804 4904 4903 +f 4804 4805 4905 4904 +f 4805 4806 4906 4905 +f 4806 4807 4907 4906 +f 4807 4808 4908 4907 +f 4808 4809 4909 4908 +f 4809 4810 4910 4909 +f 4810 4811 4911 4910 +f 4811 4812 4912 4911 +f 4812 4813 4913 4912 +f 4813 4814 4914 4913 +f 4814 4815 4915 4914 +f 4815 4816 4916 4915 +f 4816 4817 4917 4916 +f 4817 4818 4918 4917 +f 4818 4819 4919 4918 +f 4819 4820 4920 4919 +f 4820 4821 4921 4920 +f 4821 4822 4922 4921 +f 4822 4823 4923 4922 +f 4823 4824 4924 4923 +f 4824 4825 4925 4924 +f 4825 4826 4926 4925 +f 4826 4827 4927 4926 +f 4827 4828 4928 4927 +f 4828 4829 4929 4928 +f 4829 4830 4930 4929 +f 4830 4831 4931 4930 +f 4831 4832 4932 4931 +f 4832 4833 4933 4932 +f 4833 4834 4934 4933 +f 4834 4835 4935 4934 +f 4835 4836 4936 4935 +f 4836 4837 4937 4936 +f 4837 4838 4938 4937 +f 4838 4839 4939 4938 +f 4839 4840 4940 4939 +f 4840 4841 4941 4940 +f 4841 4842 4942 4941 +f 4842 4843 4943 4942 +f 4843 4844 4944 4943 +f 4844 4845 4945 4944 +f 4845 4846 4946 4945 +f 4846 4847 4947 4946 +f 4847 4848 4948 4947 +f 4848 4849 4949 4948 +f 4849 4850 4950 4949 +f 4850 4851 4951 4950 +f 4851 4852 4952 4951 +f 4852 4853 4953 4952 +f 4853 4854 4954 4953 +f 4854 4855 4955 4954 +f 4855 4856 4956 4955 +f 4856 4857 4957 4956 +f 4857 4858 4958 4957 +f 4858 4859 4959 4958 +f 4859 4860 4960 4959 +f 4860 4861 4961 4960 +f 4861 4862 4962 4961 +f 4862 4863 4963 4962 +f 4863 4864 4964 4963 +f 4864 4865 4965 4964 +f 4865 4866 4966 4965 +f 4866 4867 4967 4966 +f 4867 4868 4968 4967 +f 4868 4869 4969 4968 +f 4869 4870 4970 4969 +f 4870 4871 4971 4970 +f 4871 4872 4972 4971 +f 4872 4873 4973 4972 +f 4873 4874 4974 4973 +f 4874 4875 4975 4974 +f 4875 4876 4976 4975 +f 4876 4877 4977 4976 +f 4877 4878 4978 4977 +f 4878 4879 4979 4978 +f 4879 4880 4980 4979 +f 4880 4881 4981 4980 +f 4881 4882 4982 4981 +f 4882 4883 4983 4982 +f 4883 4884 4984 4983 +f 4884 4885 4985 4984 +f 4885 4886 4986 4985 +f 4886 4887 4987 4986 +f 4887 4888 4988 4987 +f 4888 4889 4989 4988 +f 4889 4890 4990 4989 +f 4890 4891 4991 4990 +f 4891 4892 4992 4991 +f 4892 4893 4993 4992 +f 4893 4894 4994 4993 +f 4894 4895 4995 4994 +f 4895 4896 4996 4995 +f 4896 4897 4997 4996 +f 4897 4898 4998 4997 +f 4898 4899 4999 4998 +f 4899 4900 5000 4999 +f 4900 4901 5001 5000 +f 4901 4902 5002 5001 +f 4902 4803 4903 5002 +f 1 4 3 +f 2 4903 4904 +f 1 5 4 +f 2 4904 4905 +f 1 6 5 +f 2 4905 4906 +f 1 7 6 +f 2 4906 4907 +f 1 8 7 +f 2 4907 4908 +f 1 9 8 +f 2 4908 4909 +f 1 10 9 +f 2 4909 4910 +f 1 11 10 +f 2 4910 4911 +f 1 12 11 +f 2 4911 4912 +f 1 13 12 +f 2 4912 4913 +f 1 14 13 +f 2 4913 4914 +f 1 15 14 +f 2 4914 4915 +f 1 16 15 +f 2 4915 4916 +f 1 17 16 +f 2 4916 4917 +f 1 18 17 +f 2 4917 4918 +f 1 19 18 +f 2 4918 4919 +f 1 20 19 +f 2 4919 4920 +f 1 21 20 +f 2 4920 4921 +f 1 22 21 +f 2 4921 4922 +f 1 23 22 +f 2 4922 4923 +f 1 24 23 +f 2 4923 4924 +f 1 25 24 +f 2 4924 4925 +f 1 26 25 +f 2 4925 4926 +f 1 27 26 +f 2 4926 4927 +f 1 28 27 +f 2 4927 4928 +f 1 29 28 +f 2 4928 4929 +f 1 30 29 +f 2 4929 4930 +f 1 31 30 +f 2 4930 4931 +f 1 32 31 +f 2 4931 4932 +f 1 33 32 +f 2 4932 4933 +f 1 34 33 +f 2 4933 4934 +f 1 35 34 +f 2 4934 4935 +f 1 36 35 +f 2 4935 4936 +f 1 37 36 +f 2 4936 4937 +f 1 38 37 +f 2 4937 4938 +f 1 39 38 +f 2 4938 4939 +f 1 40 39 +f 2 4939 4940 +f 1 41 40 +f 2 4940 4941 +f 1 42 41 +f 2 4941 4942 +f 1 43 42 +f 2 4942 4943 +f 1 44 43 +f 2 4943 4944 +f 1 45 44 +f 2 4944 4945 +f 1 46 45 +f 2 4945 4946 +f 1 47 46 +f 2 4946 4947 +f 1 48 47 +f 2 4947 4948 +f 1 49 48 +f 2 4948 4949 +f 1 50 49 +f 2 4949 4950 +f 1 51 50 +f 2 4950 4951 +f 1 52 51 +f 2 4951 4952 +f 1 53 52 +f 2 4952 4953 +f 1 54 53 +f 2 4953 4954 +f 1 55 54 +f 2 4954 4955 +f 1 56 55 +f 2 4955 4956 +f 1 57 56 +f 2 4956 4957 +f 1 58 57 +f 2 4957 4958 +f 1 59 58 +f 2 4958 4959 +f 1 60 59 +f 2 4959 4960 +f 1 61 60 +f 2 4960 4961 +f 1 62 61 +f 2 4961 4962 +f 1 63 62 +f 2 4962 4963 +f 1 64 63 +f 2 4963 4964 +f 1 65 64 +f 2 4964 4965 +f 1 66 65 +f 2 4965 4966 +f 1 67 66 +f 2 4966 4967 +f 1 68 67 +f 2 4967 4968 +f 1 69 68 +f 2 4968 4969 +f 1 70 69 +f 2 4969 4970 +f 1 71 70 +f 2 4970 4971 +f 1 72 71 +f 2 4971 4972 +f 1 73 72 +f 2 4972 4973 +f 1 74 73 +f 2 4973 4974 +f 1 75 74 +f 2 4974 4975 +f 1 76 75 +f 2 4975 4976 +f 1 77 76 +f 2 4976 4977 +f 1 78 77 +f 2 4977 4978 +f 1 79 78 +f 2 4978 4979 +f 1 80 79 +f 2 4979 4980 +f 1 81 80 +f 2 4980 4981 +f 1 82 81 +f 2 4981 4982 +f 1 83 82 +f 2 4982 4983 +f 1 84 83 +f 2 4983 4984 +f 1 85 84 +f 2 4984 4985 +f 1 86 85 +f 2 4985 4986 +f 1 87 86 +f 2 4986 4987 +f 1 88 87 +f 2 4987 4988 +f 1 89 88 +f 2 4988 4989 +f 1 90 89 +f 2 4989 4990 +f 1 91 90 +f 2 4990 4991 +f 1 92 91 +f 2 4991 4992 +f 1 93 92 +f 2 4992 4993 +f 1 94 93 +f 2 4993 4994 +f 1 95 94 +f 2 4994 4995 +f 1 96 95 +f 2 4995 4996 +f 1 97 96 +f 2 4996 4997 +f 1 98 97 +f 2 4997 4998 +f 1 99 98 +f 2 4998 4999 +f 1 100 99 +f 2 4999 5000 +f 1 101 100 +f 2 5000 5001 +f 1 102 101 +f 2 5001 5002 +f 1 3 102 +f 2 5002 4903 diff --git a/data/spheres/3.obj b/data/spheres/3.obj new file mode 100644 index 0000000..4a1bca9 --- /dev/null +++ b/data/spheres/3.obj @@ -0,0 +1,158 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 43.3883 90.0969 5.88009e-39 +v 37.5754 90.0969 21.6942 +v 21.6942 90.0969 37.5754 +v 5.49987e-05 90.0969 43.3883 +v -21.6941 90.0969 37.5754 +v -37.5754 90.0969 21.6942 +v -43.3883 90.0969 0.000109997 +v -37.5755 90.0969 -21.6941 +v -21.6943 90.0969 -37.5753 +v -0.000164996 90.0969 -43.3883 +v 21.694 90.0969 -37.5755 +v 37.5753 90.0969 -21.6943 +v 78.1831 62.349 5.88009e-39 +v 67.7086 62.349 39.0915 +v 39.0916 62.349 67.7085 +v 9.91042e-05 62.349 78.1831 +v -39.0914 62.349 67.7086 +v -67.7085 62.349 39.0917 +v -78.1831 62.349 0.000198208 +v -67.7087 62.349 -39.0914 +v -39.0918 62.349 -67.7084 +v -0.000297313 62.349 -78.1831 +v 39.0913 62.349 -67.7087 +v 67.7084 62.349 -39.0919 +v 97.4928 22.2522 5.88009e-39 +v 84.4312 22.2522 48.7463 +v 48.7465 22.2522 84.4312 +v 0.000123581 22.2522 97.4928 +v -48.7462 22.2522 84.4313 +v -84.4311 22.2522 48.7465 +v -97.4928 22.2522 0.000247162 +v -84.4314 22.2522 -48.7461 +v -48.7467 22.2522 -84.4311 +v -0.000370743 22.2522 -97.4928 +v 48.7461 22.2522 -84.4314 +v 84.431 22.2522 -48.7468 +v 97.4928 -22.252 5.88009e-39 +v 84.4313 -22.252 48.7464 +v 48.7465 -22.252 84.4312 +v 0.000123581 -22.252 97.4928 +v -48.7463 -22.252 84.4313 +v -84.4312 -22.252 48.7466 +v -97.4928 -22.252 0.000247162 +v -84.4314 -22.252 -48.7462 +v -48.7467 -22.252 -84.4311 +v -0.000370743 -22.252 -97.4928 +v 48.7461 -22.252 -84.4314 +v 84.431 -22.252 -48.7468 +v 78.1833 -62.3488 5.88009e-39 +v 67.7087 -62.3488 39.0916 +v 39.0917 -62.3488 67.7087 +v 9.91044e-05 -62.3488 78.1833 +v -39.0915 -62.3488 67.7087 +v -67.7086 -62.3488 39.0918 +v -78.1833 -62.3488 0.000198209 +v -67.7088 -62.3488 -39.0914 +v -39.0918 -62.3488 -67.7086 +v -0.000297313 -62.3488 -78.1833 +v 39.0914 -62.3488 -67.7088 +v 67.7085 -62.3488 -39.0919 +v 43.3886 -90.0968 5.88009e-39 +v 37.5756 -90.0968 21.6943 +v 21.6943 -90.0968 37.5756 +v 5.4999e-05 -90.0968 43.3886 +v -21.6942 -90.0968 37.5756 +v -37.5756 -90.0968 21.6944 +v -43.3886 -90.0968 0.000109998 +v -37.5757 -90.0968 -21.6942 +v -21.6944 -90.0968 -37.5755 +v -0.000164997 -90.0968 -43.3886 +v 21.6941 -90.0968 -37.5757 +v 37.5755 -90.0968 -21.6945 +f 3 4 16 15 +f 4 5 17 16 +f 5 6 18 17 +f 6 7 19 18 +f 7 8 20 19 +f 8 9 21 20 +f 9 10 22 21 +f 10 11 23 22 +f 11 12 24 23 +f 12 13 25 24 +f 13 14 26 25 +f 14 3 15 26 +f 15 16 28 27 +f 16 17 29 28 +f 17 18 30 29 +f 18 19 31 30 +f 19 20 32 31 +f 20 21 33 32 +f 21 22 34 33 +f 22 23 35 34 +f 23 24 36 35 +f 24 25 37 36 +f 25 26 38 37 +f 26 15 27 38 +f 27 28 40 39 +f 28 29 41 40 +f 29 30 42 41 +f 30 31 43 42 +f 31 32 44 43 +f 32 33 45 44 +f 33 34 46 45 +f 34 35 47 46 +f 35 36 48 47 +f 36 37 49 48 +f 37 38 50 49 +f 38 27 39 50 +f 39 40 52 51 +f 40 41 53 52 +f 41 42 54 53 +f 42 43 55 54 +f 43 44 56 55 +f 44 45 57 56 +f 45 46 58 57 +f 46 47 59 58 +f 47 48 60 59 +f 48 49 61 60 +f 49 50 62 61 +f 50 39 51 62 +f 51 52 64 63 +f 52 53 65 64 +f 53 54 66 65 +f 54 55 67 66 +f 55 56 68 67 +f 56 57 69 68 +f 57 58 70 69 +f 58 59 71 70 +f 59 60 72 71 +f 60 61 73 72 +f 61 62 74 73 +f 62 51 63 74 +f 1 4 3 +f 2 63 64 +f 1 5 4 +f 2 64 65 +f 1 6 5 +f 2 65 66 +f 1 7 6 +f 2 66 67 +f 1 8 7 +f 2 67 68 +f 1 9 8 +f 2 68 69 +f 1 10 9 +f 2 69 70 +f 1 11 10 +f 2 70 71 +f 1 12 11 +f 2 71 72 +f 1 13 12 +f 2 72 73 +f 1 14 13 +f 2 73 74 +f 1 3 14 +f 2 74 63 diff --git a/data/spheres/4.obj b/data/spheres/4.obj new file mode 100644 index 0000000..29bba56 --- /dev/null +++ b/data/spheres/4.obj @@ -0,0 +1,274 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 34.202 93.9693 5.88009e-39 +v 31.5985 93.9693 13.0885 +v 24.1845 93.9693 24.1844 +v 13.0886 93.9693 31.5985 +v 3.92769e-05 93.9693 34.202 +v -13.0885 93.9693 31.5985 +v -24.1844 93.9693 24.1845 +v -31.5985 93.9693 13.0886 +v -34.202 93.9693 7.85539e-05 +v -31.5986 93.9693 -13.0885 +v -24.1845 93.9693 -24.1844 +v -13.0886 93.9693 -31.5985 +v -0.000113754 93.9693 -34.202 +v 13.0884 93.9693 -31.5986 +v 24.1844 93.9693 -24.1846 +v 31.5985 93.9693 -13.0887 +v 64.2787 76.6045 5.88009e-39 +v 59.3858 76.6045 24.5984 +v 45.452 76.6045 45.4519 +v 24.5985 76.6045 59.3858 +v 7.38165e-05 76.6045 64.2787 +v -24.5983 76.6045 59.3858 +v -45.4518 76.6045 45.452 +v -59.3857 76.6045 24.5985 +v -64.2787 76.6045 0.000147633 +v -59.3859 76.6045 -24.5982 +v -45.4521 76.6045 -45.4518 +v -24.5986 76.6045 -59.3857 +v -0.000213787 76.6045 -64.2787 +v 24.5982 76.6045 -59.3859 +v 45.4517 76.6045 -45.4521 +v 59.3857 76.6045 -24.5987 +v 86.6025 50.0001 5.88009e-39 +v 80.0103 50.0001 33.1413 +v 61.2373 50.0001 61.2372 +v 33.1414 50.0001 80.0103 +v 9.94527e-05 50.0001 86.6025 +v -33.1412 50.0001 80.0103 +v -61.2371 50.0001 61.2373 +v -80.0102 50.0001 33.1415 +v -86.6025 50.0001 0.000198905 +v -80.0104 50.0001 -33.1411 +v -61.2374 50.0001 -61.237 +v -33.1416 50.0001 -80.0102 +v -0.000288034 50.0001 -86.6025 +v 33.1411 50.0001 -80.0104 +v 61.237 50.0001 -61.2375 +v 80.0101 50.0001 -33.1417 +v 98.4808 17.3649 5.88009e-39 +v 90.9844 17.3649 37.6869 +v 69.6365 17.3649 69.6364 +v 37.687 17.3649 90.9843 +v 0.000113093 17.3649 98.4808 +v -37.6868 17.3649 90.9844 +v -69.6363 17.3649 69.6365 +v -90.9843 17.3649 37.6871 +v -98.4808 17.3649 0.000226187 +v -90.9845 17.3649 -37.6867 +v -69.6366 17.3649 -69.6362 +v -37.6872 17.3649 -90.9842 +v -0.000327541 17.3649 -98.4808 +v 37.6866 17.3649 -90.9845 +v 69.6361 17.3649 -69.6367 +v 90.9842 17.3649 -37.6873 +v 98.4808 -17.3647 5.88009e-39 +v 90.9844 -17.3647 37.6869 +v 69.6365 -17.3647 69.6364 +v 37.687 -17.3647 90.9844 +v 0.000113094 -17.3647 98.4808 +v -37.6868 -17.3647 90.9845 +v -69.6363 -17.3647 69.6366 +v -90.9843 -17.3647 37.6871 +v -98.4808 -17.3647 0.000226187 +v -90.9845 -17.3647 -37.6867 +v -69.6366 -17.3647 -69.6362 +v -37.6872 -17.3647 -90.9843 +v -0.000327541 -17.3647 -98.4808 +v 37.6866 -17.3647 -90.9845 +v 69.6362 -17.3647 -69.6367 +v 90.9842 -17.3647 -37.6874 +v 86.6026 -49.9999 5.88009e-39 +v 80.0104 -49.9999 33.1414 +v 61.2373 -49.9999 61.2373 +v 33.1414 -49.9999 80.0103 +v 9.94528e-05 -49.9999 86.6026 +v -33.1413 -49.9999 80.0104 +v -61.2372 -49.9999 61.2374 +v -80.0103 -49.9999 33.1415 +v -86.6026 -49.9999 0.000198906 +v -80.0105 -49.9999 -33.1412 +v -61.2375 -49.9999 -61.2371 +v -33.1416 -49.9999 -80.0103 +v -0.000288035 -49.9999 -86.6026 +v 33.1411 -49.9999 -80.0105 +v 61.237 -49.9999 -61.2375 +v 80.0102 -49.9999 -33.1417 +v 64.2789 -76.6043 5.88009e-39 +v 59.386 -76.6043 24.5984 +v 45.4521 -76.6043 45.452 +v 24.5985 -76.6043 59.3859 +v 7.38167e-05 -76.6043 64.2789 +v -24.5984 -76.6043 59.386 +v -45.452 -76.6043 45.4521 +v -59.3859 -76.6043 24.5986 +v -64.2789 -76.6043 0.000147633 +v -59.386 -76.6043 -24.5983 +v -45.4522 -76.6043 -45.4519 +v -24.5986 -76.6043 -59.3859 +v -0.000213787 -76.6043 -64.2789 +v 24.5983 -76.6043 -59.386 +v 45.4519 -76.6043 -45.4522 +v 59.3858 -76.6043 -24.5987 +v 34.2022 -93.9692 5.88009e-39 +v 31.5987 -93.9692 13.0886 +v 24.1846 -93.9692 24.1846 +v 13.0886 -93.9692 31.5987 +v 3.92772e-05 -93.9692 34.2022 +v -13.0886 -93.9692 31.5987 +v -24.1846 -93.9692 24.1846 +v -31.5987 -93.9692 13.0887 +v -34.2022 -93.9692 7.85544e-05 +v -31.5987 -93.9692 -13.0885 +v -24.1847 -93.9692 -24.1845 +v -13.0887 -93.9692 -31.5987 +v -0.000113754 -93.9692 -34.2022 +v 13.0885 -93.9692 -31.5988 +v 24.1845 -93.9692 -24.1847 +v 31.5987 -93.9692 -13.0888 +f 3 4 20 19 +f 4 5 21 20 +f 5 6 22 21 +f 6 7 23 22 +f 7 8 24 23 +f 8 9 25 24 +f 9 10 26 25 +f 10 11 27 26 +f 11 12 28 27 +f 12 13 29 28 +f 13 14 30 29 +f 14 15 31 30 +f 15 16 32 31 +f 16 17 33 32 +f 17 18 34 33 +f 18 3 19 34 +f 19 20 36 35 +f 20 21 37 36 +f 21 22 38 37 +f 22 23 39 38 +f 23 24 40 39 +f 24 25 41 40 +f 25 26 42 41 +f 26 27 43 42 +f 27 28 44 43 +f 28 29 45 44 +f 29 30 46 45 +f 30 31 47 46 +f 31 32 48 47 +f 32 33 49 48 +f 33 34 50 49 +f 34 19 35 50 +f 35 36 52 51 +f 36 37 53 52 +f 37 38 54 53 +f 38 39 55 54 +f 39 40 56 55 +f 40 41 57 56 +f 41 42 58 57 +f 42 43 59 58 +f 43 44 60 59 +f 44 45 61 60 +f 45 46 62 61 +f 46 47 63 62 +f 47 48 64 63 +f 48 49 65 64 +f 49 50 66 65 +f 50 35 51 66 +f 51 52 68 67 +f 52 53 69 68 +f 53 54 70 69 +f 54 55 71 70 +f 55 56 72 71 +f 56 57 73 72 +f 57 58 74 73 +f 58 59 75 74 +f 59 60 76 75 +f 60 61 77 76 +f 61 62 78 77 +f 62 63 79 78 +f 63 64 80 79 +f 64 65 81 80 +f 65 66 82 81 +f 66 51 67 82 +f 67 68 84 83 +f 68 69 85 84 +f 69 70 86 85 +f 70 71 87 86 +f 71 72 88 87 +f 72 73 89 88 +f 73 74 90 89 +f 74 75 91 90 +f 75 76 92 91 +f 76 77 93 92 +f 77 78 94 93 +f 78 79 95 94 +f 79 80 96 95 +f 80 81 97 96 +f 81 82 98 97 +f 82 67 83 98 +f 83 84 100 99 +f 84 85 101 100 +f 85 86 102 101 +f 86 87 103 102 +f 87 88 104 103 +f 88 89 105 104 +f 89 90 106 105 +f 90 91 107 106 +f 91 92 108 107 +f 92 93 109 108 +f 93 94 110 109 +f 94 95 111 110 +f 95 96 112 111 +f 96 97 113 112 +f 97 98 114 113 +f 98 83 99 114 +f 99 100 116 115 +f 100 101 117 116 +f 101 102 118 117 +f 102 103 119 118 +f 103 104 120 119 +f 104 105 121 120 +f 105 106 122 121 +f 106 107 123 122 +f 107 108 124 123 +f 108 109 125 124 +f 109 110 126 125 +f 110 111 127 126 +f 111 112 128 127 +f 112 113 129 128 +f 113 114 130 129 +f 114 99 115 130 +f 1 4 3 +f 2 115 116 +f 1 5 4 +f 2 116 117 +f 1 6 5 +f 2 117 118 +f 1 7 6 +f 2 118 119 +f 1 8 7 +f 2 119 120 +f 1 9 8 +f 2 120 121 +f 1 10 9 +f 2 121 122 +f 1 11 10 +f 2 122 123 +f 1 12 11 +f 2 123 124 +f 1 13 12 +f 2 124 125 +f 1 14 13 +f 2 125 126 +f 1 15 14 +f 2 126 127 +f 1 16 15 +f 2 127 128 +f 1 17 16 +f 2 128 129 +f 1 18 17 +f 2 129 130 +f 1 3 18 +f 2 130 115 diff --git a/data/spheres/5.obj b/data/spheres/5.obj new file mode 100644 index 0000000..01567b3 --- /dev/null +++ b/data/spheres/5.obj @@ -0,0 +1,422 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 28.1732 95.9493 5.88009e-39 +v 26.7943 95.9493 8.706 +v 22.7926 95.9493 16.5598 +v 16.5598 95.9493 22.7926 +v 8.70603 95.9493 26.7943 +v 3.23536e-05 95.9493 28.1732 +v -8.70597 95.9493 26.7944 +v -16.5598 95.9493 22.7927 +v -22.7926 95.9493 16.5599 +v -26.7943 95.9493 8.70607 +v -28.1732 95.9493 6.47072e-05 +v -26.7944 95.9493 -8.70594 +v -22.7927 95.9493 -16.5597 +v -16.5599 95.9493 -22.7926 +v -8.70609 95.9493 -26.7943 +v -9.37024e-05 95.9493 -28.1732 +v 8.70591 95.9493 -26.7944 +v 16.5597 95.9493 -22.7927 +v 22.7926 95.9493 -16.5599 +v 26.7943 95.9493 -8.70612 +v 54.064 84.1254 5.88009e-39 +v 51.418 84.1254 16.7067 +v 43.7387 84.1254 31.778 +v 31.7781 84.1254 43.7387 +v 16.7068 84.1254 51.4179 +v 6.20861e-05 84.1254 54.064 +v -16.7066 84.1254 51.418 +v -31.778 84.1254 43.7388 +v -43.7387 84.1254 31.7781 +v -51.4179 84.1254 16.7068 +v -54.064 84.1254 0.000124172 +v -51.418 84.1254 -16.7066 +v -43.7388 84.1254 -31.7779 +v -31.7782 84.1254 -43.7386 +v -16.7069 84.1254 -51.4179 +v -0.000179814 84.1254 -54.064 +v 16.7065 84.1254 -51.418 +v 31.7779 84.1254 -43.7389 +v 43.7386 84.1254 -31.7782 +v 51.4179 84.1254 -16.7069 +v 75.5749 65.4861 5.88009e-39 +v 71.876 65.4861 23.3539 +v 61.1414 65.4861 44.4218 +v 44.4219 65.4861 61.1414 +v 23.354 65.4861 71.876 +v 8.67888e-05 65.4861 75.5749 +v -23.3538 65.4861 71.876 +v -44.4217 65.4861 61.1415 +v -61.1413 65.4861 44.4219 +v -71.876 65.4861 23.3541 +v -75.5749 65.4861 0.000173578 +v -71.8761 65.4861 -23.3538 +v -61.1415 65.4861 -44.4216 +v -44.422 65.4861 -61.1413 +v -23.3541 65.4861 -71.8759 +v -0.000251357 65.4861 -75.5749 +v 23.3537 65.4861 -71.8761 +v 44.4216 65.4861 -61.1416 +v 61.1412 65.4861 -44.4221 +v 71.8759 65.4861 -23.3542 +v 90.9632 41.5416 5.88009e-39 +v 86.5111 41.5416 28.1091 +v 73.5908 41.5416 53.4668 +v 53.4669 41.5416 73.5907 +v 28.1092 41.5416 86.5111 +v 0.00010446 41.5416 90.9632 +v -28.109 41.5416 86.5111 +v -53.4667 41.5416 73.5908 +v -73.5906 41.5416 53.4669 +v -86.511 41.5416 28.1094 +v -90.9632 41.5416 0.000208921 +v -86.5112 41.5416 -28.109 +v -73.5909 41.5416 -53.4666 +v -53.467 41.5416 -73.5906 +v -28.1094 41.5416 -86.511 +v -0.000302538 41.5416 -90.9632 +v 28.1088 41.5416 -86.5112 +v 53.4665 41.5416 -73.591 +v 73.5905 41.5416 -53.4671 +v 86.511 41.5416 -28.1095 +v 98.9821 14.2316 5.88009e-39 +v 94.1376 14.2316 30.5871 +v 80.0783 14.2316 58.1802 +v 58.1803 14.2316 80.0782 +v 30.5872 14.2316 94.1376 +v 0.000113669 14.2316 98.9821 +v -30.587 14.2316 94.1376 +v -58.1801 14.2316 80.0783 +v -80.0781 14.2316 58.1804 +v -94.1375 14.2316 30.5874 +v -98.9821 14.2316 0.000227339 +v -94.1377 14.2316 -30.5869 +v -80.0784 14.2316 -58.18 +v -58.1805 14.2316 -80.078 +v -30.5874 14.2316 -94.1375 +v -0.000329208 14.2316 -98.9821 +v 30.5868 14.2316 -94.1377 +v 58.1799 14.2316 -80.0785 +v 80.078 14.2316 -58.1806 +v 94.1375 14.2316 -30.5876 +v 98.9822 -14.2314 5.88009e-39 +v 94.1376 -14.2314 30.5871 +v 80.0783 -14.2314 58.1802 +v 58.1803 -14.2314 80.0782 +v 30.5873 -14.2314 94.1376 +v 0.000113669 -14.2314 98.9822 +v -30.587 -14.2314 94.1377 +v -58.1801 -14.2314 80.0783 +v -80.0781 -14.2314 58.1804 +v -94.1376 -14.2314 30.5874 +v -98.9822 -14.2314 0.000227339 +v -94.1377 -14.2314 -30.5869 +v -80.0784 -14.2314 -58.18 +v -58.1805 -14.2314 -80.0781 +v -30.5875 -14.2314 -94.1375 +v -0.000329208 -14.2314 -98.9822 +v 30.5868 -14.2314 -94.1377 +v 58.1799 -14.2314 -80.0785 +v 80.078 -14.2314 -58.1806 +v 94.1375 -14.2314 -30.5876 +v 90.9633 -41.5414 5.88009e-39 +v 86.5112 -41.5414 28.1092 +v 73.5909 -41.5414 53.4668 +v 53.4669 -41.5414 73.5908 +v 28.1093 -41.5414 86.5112 +v 0.000104461 -41.5414 90.9633 +v -28.1091 -41.5414 86.5112 +v -53.4668 -41.5414 73.5909 +v -73.5907 -41.5414 53.467 +v -86.5111 -41.5414 28.1094 +v -90.9633 -41.5414 0.000208921 +v -86.5113 -41.5414 -28.109 +v -73.591 -41.5414 -53.4667 +v -53.4671 -41.5414 -73.5907 +v -28.1095 -41.5414 -86.5111 +v -0.000302538 -41.5414 -90.9633 +v 28.1089 -41.5414 -86.5113 +v 53.4666 -41.5414 -73.591 +v 73.5906 -41.5414 -53.4672 +v 86.5111 -41.5414 -28.1096 +v 75.5751 -65.4859 5.88009e-39 +v 71.8762 -65.4859 23.354 +v 61.1415 -65.4859 44.4219 +v 44.422 -65.4859 61.1415 +v 23.354 -65.4859 71.8761 +v 8.6789e-05 -65.4859 75.5751 +v -23.3539 -65.4859 71.8762 +v -44.4218 -65.4859 61.1416 +v -61.1414 -65.4859 44.422 +v -71.8761 -65.4859 23.3541 +v -75.5751 -65.4859 0.000173578 +v -71.8762 -65.4859 -23.3538 +v -61.1416 -65.4859 -44.4217 +v -44.4221 -65.4859 -61.1414 +v -23.3542 -65.4859 -71.8761 +v -0.000251358 -65.4859 -75.5751 +v 23.3537 -65.4859 -71.8763 +v 44.4217 -65.4859 -61.1417 +v 61.1413 -65.4859 -44.4222 +v 71.8761 -65.4859 -23.3543 +v 54.0642 -84.1253 5.88009e-39 +v 51.4182 -84.1253 16.7068 +v 43.7389 -84.1253 31.7781 +v 31.7782 -84.1253 43.7389 +v 16.7068 -84.1253 51.4181 +v 6.20864e-05 -84.1253 54.0642 +v -16.7067 -84.1253 51.4182 +v -31.7781 -84.1253 43.7389 +v -43.7388 -84.1253 31.7782 +v -51.4181 -84.1253 16.7069 +v -54.0642 -84.1253 0.000124173 +v -51.4182 -84.1253 -16.7066 +v -43.739 -84.1253 -31.778 +v -31.7783 -84.1253 -43.7388 +v -16.7069 -84.1253 -51.4181 +v -0.000179814 -84.1253 -54.0642 +v 16.7066 -84.1253 -51.4182 +v 31.778 -84.1253 -43.739 +v 43.7388 -84.1253 -31.7784 +v 51.4181 -84.1253 -16.707 +v 28.1735 -95.9492 5.88009e-39 +v 26.7946 -95.9492 8.70607 +v 22.7928 -95.9492 16.5599 +v 16.56 -95.9492 22.7928 +v 8.7061 -95.9492 26.7945 +v 3.23539e-05 -95.9492 28.1735 +v -8.70604 -95.9492 26.7946 +v -16.5599 -95.9492 22.7928 +v -22.7928 -95.9492 16.56 +v -26.7945 -95.9492 8.70614 +v -28.1735 -95.9492 6.47078e-05 +v -26.7946 -95.9492 -8.70602 +v -22.7929 -95.9492 -16.5599 +v -16.56 -95.9492 -22.7928 +v -8.70616 -95.9492 -26.7945 +v -9.37031e-05 -95.9492 -28.1735 +v 8.70598 -95.9492 -26.7946 +v 16.5599 -95.9492 -22.7929 +v 22.7927 -95.9492 -16.56 +v 26.7945 -95.9492 -8.70619 +f 3 4 24 23 +f 4 5 25 24 +f 5 6 26 25 +f 6 7 27 26 +f 7 8 28 27 +f 8 9 29 28 +f 9 10 30 29 +f 10 11 31 30 +f 11 12 32 31 +f 12 13 33 32 +f 13 14 34 33 +f 14 15 35 34 +f 15 16 36 35 +f 16 17 37 36 +f 17 18 38 37 +f 18 19 39 38 +f 19 20 40 39 +f 20 21 41 40 +f 21 22 42 41 +f 22 3 23 42 +f 23 24 44 43 +f 24 25 45 44 +f 25 26 46 45 +f 26 27 47 46 +f 27 28 48 47 +f 28 29 49 48 +f 29 30 50 49 +f 30 31 51 50 +f 31 32 52 51 +f 32 33 53 52 +f 33 34 54 53 +f 34 35 55 54 +f 35 36 56 55 +f 36 37 57 56 +f 37 38 58 57 +f 38 39 59 58 +f 39 40 60 59 +f 40 41 61 60 +f 41 42 62 61 +f 42 23 43 62 +f 43 44 64 63 +f 44 45 65 64 +f 45 46 66 65 +f 46 47 67 66 +f 47 48 68 67 +f 48 49 69 68 +f 49 50 70 69 +f 50 51 71 70 +f 51 52 72 71 +f 52 53 73 72 +f 53 54 74 73 +f 54 55 75 74 +f 55 56 76 75 +f 56 57 77 76 +f 57 58 78 77 +f 58 59 79 78 +f 59 60 80 79 +f 60 61 81 80 +f 61 62 82 81 +f 62 43 63 82 +f 63 64 84 83 +f 64 65 85 84 +f 65 66 86 85 +f 66 67 87 86 +f 67 68 88 87 +f 68 69 89 88 +f 69 70 90 89 +f 70 71 91 90 +f 71 72 92 91 +f 72 73 93 92 +f 73 74 94 93 +f 74 75 95 94 +f 75 76 96 95 +f 76 77 97 96 +f 77 78 98 97 +f 78 79 99 98 +f 79 80 100 99 +f 80 81 101 100 +f 81 82 102 101 +f 82 63 83 102 +f 83 84 104 103 +f 84 85 105 104 +f 85 86 106 105 +f 86 87 107 106 +f 87 88 108 107 +f 88 89 109 108 +f 89 90 110 109 +f 90 91 111 110 +f 91 92 112 111 +f 92 93 113 112 +f 93 94 114 113 +f 94 95 115 114 +f 95 96 116 115 +f 96 97 117 116 +f 97 98 118 117 +f 98 99 119 118 +f 99 100 120 119 +f 100 101 121 120 +f 101 102 122 121 +f 102 83 103 122 +f 103 104 124 123 +f 104 105 125 124 +f 105 106 126 125 +f 106 107 127 126 +f 107 108 128 127 +f 108 109 129 128 +f 109 110 130 129 +f 110 111 131 130 +f 111 112 132 131 +f 112 113 133 132 +f 113 114 134 133 +f 114 115 135 134 +f 115 116 136 135 +f 116 117 137 136 +f 117 118 138 137 +f 118 119 139 138 +f 119 120 140 139 +f 120 121 141 140 +f 121 122 142 141 +f 122 103 123 142 +f 123 124 144 143 +f 124 125 145 144 +f 125 126 146 145 +f 126 127 147 146 +f 127 128 148 147 +f 128 129 149 148 +f 129 130 150 149 +f 130 131 151 150 +f 131 132 152 151 +f 132 133 153 152 +f 133 134 154 153 +f 134 135 155 154 +f 135 136 156 155 +f 136 137 157 156 +f 137 138 158 157 +f 138 139 159 158 +f 139 140 160 159 +f 140 141 161 160 +f 141 142 162 161 +f 142 123 143 162 +f 143 144 164 163 +f 144 145 165 164 +f 145 146 166 165 +f 146 147 167 166 +f 147 148 168 167 +f 148 149 169 168 +f 149 150 170 169 +f 150 151 171 170 +f 151 152 172 171 +f 152 153 173 172 +f 153 154 174 173 +f 154 155 175 174 +f 155 156 176 175 +f 156 157 177 176 +f 157 158 178 177 +f 158 159 179 178 +f 159 160 180 179 +f 160 161 181 180 +f 161 162 182 181 +f 162 143 163 182 +f 163 164 184 183 +f 164 165 185 184 +f 165 166 186 185 +f 166 167 187 186 +f 167 168 188 187 +f 168 169 189 188 +f 169 170 190 189 +f 170 171 191 190 +f 171 172 192 191 +f 172 173 193 192 +f 173 174 194 193 +f 174 175 195 194 +f 175 176 196 195 +f 176 177 197 196 +f 177 178 198 197 +f 178 179 199 198 +f 179 180 200 199 +f 180 181 201 200 +f 181 182 202 201 +f 182 163 183 202 +f 1 4 3 +f 2 183 184 +f 1 5 4 +f 2 184 185 +f 1 6 5 +f 2 185 186 +f 1 7 6 +f 2 186 187 +f 1 8 7 +f 2 187 188 +f 1 9 8 +f 2 188 189 +f 1 10 9 +f 2 189 190 +f 1 11 10 +f 2 190 191 +f 1 12 11 +f 2 191 192 +f 1 13 12 +f 2 192 193 +f 1 14 13 +f 2 193 194 +f 1 15 14 +f 2 194 195 +f 1 16 15 +f 2 195 196 +f 1 17 16 +f 2 196 197 +f 1 18 17 +f 2 197 198 +f 1 19 18 +f 2 198 199 +f 1 20 19 +f 2 199 200 +f 1 21 20 +f 2 200 201 +f 1 22 21 +f 2 201 202 +f 1 3 22 +f 2 202 183 diff --git a/data/spheres/6.obj b/data/spheres/6.obj new file mode 100644 index 0000000..0765d07 --- /dev/null +++ b/data/spheres/6.obj @@ -0,0 +1,602 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 23.9315 97.0942 5.88009e-39 +v 23.1161 97.0942 6.19394 +v 20.7253 97.0942 11.9658 +v 16.9222 97.0942 16.9221 +v 11.9658 97.0942 20.7253 +v 6.19396 97.0942 23.1161 +v 3.03354e-05 97.0942 23.9315 +v -6.19391 97.0942 23.1161 +v -11.9657 97.0942 20.7253 +v -16.9221 97.0942 16.9222 +v -20.7253 97.0942 11.9658 +v -23.1161 97.0942 6.19399 +v -23.9315 97.0942 6.06708e-05 +v -23.1161 97.0942 -6.19388 +v -20.7254 97.0942 -11.9657 +v -16.9222 97.0942 -16.9221 +v -11.9658 97.0942 -20.7253 +v -6.19402 97.0942 -23.1161 +v -9.10062e-05 97.0942 -23.9315 +v 6.19385 97.0942 -23.1161 +v 11.9657 97.0942 -20.7254 +v 16.9221 97.0942 -16.9222 +v 20.7253 97.0942 -11.9659 +v 23.1161 97.0942 -6.19405 +v 46.4723 88.5456 5.88009e-39 +v 44.8888 88.5456 12.0279 +v 40.2462 88.5456 23.2361 +v 32.8609 88.5456 32.8608 +v 23.2362 88.5456 40.2462 +v 12.028 88.5456 44.8888 +v 5.89078e-05 88.5456 46.4723 +v -12.0278 88.5456 44.8888 +v -23.2361 88.5456 40.2462 +v -32.8608 88.5456 32.8609 +v -40.2461 88.5456 23.2362 +v -44.8888 88.5456 12.028 +v -46.4723 88.5456 0.000117816 +v -44.8888 88.5456 -12.0278 +v -40.2462 88.5456 -23.236 +v -32.861 88.5456 -32.8608 +v -23.2363 88.5456 -40.2461 +v -12.0281 88.5456 -44.8887 +v -0.000176724 88.5456 -46.4723 +v 12.0277 88.5456 -44.8888 +v 23.236 88.5456 -40.2463 +v 32.8607 88.5456 -32.861 +v 40.2461 88.5456 -23.2363 +v 44.8887 88.5456 -12.0281 +v 66.3122 74.8511 5.88009e-39 +v 64.0527 74.8511 17.1629 +v 57.4281 74.8511 33.1561 +v 46.8899 74.8511 46.8898 +v 33.1562 74.8511 57.428 +v 17.1629 74.8511 64.0527 +v 8.40568e-05 74.8511 66.3122 +v -17.1628 74.8511 64.0527 +v -33.156 74.8511 57.4281 +v -46.8897 74.8511 46.8899 +v -57.428 74.8511 33.1562 +v -64.0527 74.8511 17.163 +v -66.3122 74.8511 0.000168114 +v -64.0527 74.8511 -17.1627 +v -57.4282 74.8511 -33.1559 +v -46.89 74.8511 -46.8897 +v -33.1563 74.8511 -57.428 +v -17.1631 74.8511 -64.0526 +v -0.00025217 74.8511 -66.3122 +v 17.1626 74.8511 -64.0528 +v 33.1559 74.8511 -57.4282 +v 46.8896 74.8511 -46.89 +v 57.4279 74.8511 -33.1564 +v 64.0526 74.8511 -17.1632 +v 82.2983 56.8065 5.88009e-39 +v 79.4941 56.8065 21.3004 +v 71.2725 56.8065 41.1491 +v 58.1938 56.8065 58.1937 +v 41.1492 56.8065 71.2724 +v 21.3005 56.8065 79.4941 +v 0.000104321 56.8065 82.2983 +v -21.3003 56.8065 79.4941 +v -41.1491 56.8065 71.2725 +v -58.1936 56.8065 58.1938 +v -71.2724 56.8065 41.1493 +v -79.494 56.8065 21.3006 +v -82.2983 56.8065 0.000208641 +v -79.4942 56.8065 -21.3002 +v -71.2726 56.8065 -41.149 +v -58.1939 56.8065 -58.1936 +v -41.1494 56.8065 -71.2723 +v -21.3006 56.8065 -79.494 +v -0.000312962 56.8065 -82.2983 +v 21.3001 56.8065 -79.4942 +v 41.1489 56.8065 -71.2726 +v 58.1935 56.8065 -58.194 +v 71.2723 56.8065 -41.1495 +v 79.494 56.8065 -21.3007 +v 93.5016 35.4606 5.88009e-39 +v 90.3156 35.4606 24.2 +v 80.9748 35.4606 46.7508 +v 66.1157 35.4606 66.1156 +v 46.7509 35.4606 80.9747 +v 24.2001 35.4606 90.3156 +v 0.000118522 35.4606 93.5016 +v -24.1999 35.4606 90.3156 +v -46.7507 35.4606 80.9748 +v -66.1155 35.4606 66.1157 +v -80.9747 35.4606 46.751 +v -90.3156 35.4606 24.2002 +v -93.5016 35.4606 0.000237044 +v -90.3157 35.4606 -24.1998 +v -80.9749 35.4606 -46.7506 +v -66.1158 35.4606 -66.1154 +v -46.7511 35.4606 -80.9746 +v -24.2003 35.4606 -90.3155 +v -0.000355565 35.4606 -93.5016 +v 24.1996 35.4606 -90.3157 +v 46.7505 35.4606 -80.9749 +v 66.1153 35.4606 -66.1159 +v 80.9745 35.4606 -46.7512 +v 90.3155 35.4606 -24.2004 +v 99.2709 12.0538 5.88009e-39 +v 95.8883 12.0538 25.6932 +v 85.9711 12.0538 49.6354 +v 70.1952 12.0538 70.1951 +v 49.6355 12.0538 85.9711 +v 25.6933 12.0538 95.8883 +v 0.000125835 12.0538 99.2709 +v -25.6931 12.0538 95.8883 +v -49.6353 12.0538 85.9712 +v -70.195 12.0538 70.1952 +v -85.971 12.0538 49.6356 +v -95.8882 12.0538 25.6934 +v -99.2709 12.0538 0.00025167 +v -95.8884 12.0538 -25.6929 +v -85.9712 12.0538 -49.6352 +v -70.1953 12.0538 -70.1949 +v -49.6357 12.0538 -85.9709 +v -25.6935 12.0538 -95.8882 +v -0.000377505 12.0538 -99.2709 +v 25.6928 12.0538 -95.8884 +v 49.6351 12.0538 -85.9713 +v 70.1948 12.0538 -70.1954 +v 85.9709 12.0538 -49.6358 +v 95.8882 12.0538 -25.6936 +v 99.2709 -12.0535 5.88009e-39 +v 95.8883 -12.0535 25.6932 +v 85.9711 -12.0535 49.6354 +v 70.1952 -12.0535 70.1951 +v 49.6355 -12.0535 85.9711 +v 25.6933 -12.0535 95.8883 +v 0.000125835 -12.0535 99.2709 +v -25.6931 -12.0535 95.8884 +v -49.6353 -12.0535 85.9712 +v -70.195 -12.0535 70.1953 +v -85.971 -12.0535 49.6356 +v -95.8883 -12.0535 25.6934 +v -99.2709 -12.0535 0.00025167 +v -95.8884 -12.0535 -25.693 +v -85.9713 -12.0535 -49.6352 +v -70.1953 -12.0535 -70.1949 +v -49.6357 -12.0535 -85.971 +v -25.6935 -12.0535 -95.8882 +v -0.000377505 -12.0535 -99.2709 +v 25.6928 -12.0535 -95.8884 +v 49.6351 -12.0535 -85.9713 +v 70.1948 -12.0535 -70.1954 +v 85.9709 -12.0535 -49.6358 +v 95.8882 -12.0535 -25.6936 +v 93.5017 -35.4604 5.88009e-39 +v 90.3157 -35.4604 24.2 +v 80.9748 -35.4604 46.7508 +v 66.1157 -35.4604 66.1156 +v 46.7509 -35.4604 80.9748 +v 24.2001 -35.4604 90.3157 +v 0.000118522 -35.4604 93.5017 +v -24.1999 -35.4604 90.3157 +v -46.7507 -35.4604 80.9749 +v -66.1155 -35.4604 66.1158 +v -80.9747 -35.4604 46.751 +v -90.3156 -35.4604 24.2002 +v -93.5017 -35.4604 0.000237044 +v -90.3158 -35.4604 -24.1998 +v -80.975 -35.4604 -46.7506 +v -66.1159 -35.4604 -66.1155 +v -46.7511 -35.4604 -80.9747 +v -24.2003 -35.4604 -90.3156 +v -0.000355566 -35.4604 -93.5017 +v 24.1997 -35.4604 -90.3158 +v 46.7505 -35.4604 -80.975 +v 66.1154 -35.4604 -66.116 +v 80.9746 -35.4604 -46.7512 +v 90.3156 -35.4604 -24.2004 +v 82.2985 -56.8063 5.88009e-39 +v 79.4942 -56.8063 21.3004 +v 71.2726 -56.8063 41.1492 +v 58.1939 -56.8063 58.1938 +v 41.1493 -56.8063 71.2725 +v 21.3005 -56.8063 79.4942 +v 0.000104321 -56.8063 82.2985 +v -21.3003 -56.8063 79.4943 +v -41.1491 -56.8063 71.2726 +v -58.1937 -56.8063 58.1939 +v -71.2725 -56.8063 41.1494 +v -79.4942 -56.8063 21.3006 +v -82.2985 -56.8063 0.000208642 +v -79.4943 -56.8063 -21.3002 +v -71.2727 -56.8063 -41.149 +v -58.194 -56.8063 -58.1936 +v -41.1495 -56.8063 -71.2724 +v -21.3007 -56.8063 -79.4942 +v -0.000312962 -56.8063 -82.2985 +v 21.3001 -56.8063 -79.4943 +v 41.149 -56.8063 -71.2727 +v 58.1936 -56.8063 -58.1941 +v 71.2724 -56.8063 -41.1496 +v 79.4941 -56.8063 -21.3008 +v 66.3124 -74.851 5.88009e-39 +v 64.0529 -74.851 17.1629 +v 57.4282 -74.851 33.1562 +v 46.89 -74.851 46.8899 +v 33.1562 -74.851 57.4282 +v 17.163 -74.851 64.0528 +v 8.4057e-05 -74.851 66.3124 +v -17.1628 -74.851 64.0529 +v -33.1561 -74.851 57.4283 +v -46.8899 -74.851 46.89 +v -57.4282 -74.851 33.1563 +v -64.0528 -74.851 17.1631 +v -66.3124 -74.851 0.000168114 +v -64.0529 -74.851 -17.1627 +v -57.4283 -74.851 -33.156 +v -46.8901 -74.851 -46.8898 +v -33.1564 -74.851 -57.4281 +v -17.1631 -74.851 -64.0528 +v -0.000252171 -74.851 -66.3124 +v 17.1627 -74.851 -64.0529 +v 33.156 -74.851 -57.4284 +v 46.8897 -74.851 -46.8902 +v 57.4281 -74.851 -33.1565 +v 64.0528 -74.851 -17.1632 +v 46.4725 -88.5455 5.88009e-39 +v 44.889 -88.5455 12.028 +v 40.2464 -88.5455 23.2362 +v 32.861 -88.5455 32.861 +v 23.2363 -88.5455 40.2463 +v 12.028 -88.5455 44.889 +v 5.89081e-05 -88.5455 46.4725 +v -12.0279 -88.5455 44.889 +v -23.2362 -88.5455 40.2464 +v -32.861 -88.5455 32.8611 +v -40.2463 -88.5455 23.2363 +v -44.889 -88.5455 12.0281 +v -46.4725 -88.5455 0.000117816 +v -44.889 -88.5455 -12.0279 +v -40.2464 -88.5455 -23.2361 +v -32.8611 -88.5455 -32.8609 +v -23.2364 -88.5455 -40.2463 +v -12.0281 -88.5455 -44.8889 +v -0.000176724 -88.5455 -46.4725 +v 12.0278 -88.5455 -44.889 +v 23.2361 -88.5455 -40.2465 +v 32.8609 -88.5455 -32.8612 +v 40.2463 -88.5455 -23.2364 +v 44.8889 -88.5455 -12.0282 +v 23.9318 -97.0941 5.88009e-39 +v 23.1163 -97.0941 6.19399 +v 20.7255 -97.0941 11.9659 +v 16.9223 -97.0941 16.9223 +v 11.9659 -97.0941 20.7255 +v 6.19402 -97.0941 23.1163 +v 3.03357e-05 -97.0941 23.9318 +v -6.19397 -97.0941 23.1163 +v -11.9659 -97.0941 20.7255 +v -16.9223 -97.0941 16.9224 +v -20.7255 -97.0941 11.9659 +v -23.1163 -97.0941 6.19405 +v -23.9318 -97.0941 6.06714e-05 +v -23.1163 -97.0941 -6.19394 +v -20.7256 -97.0941 -11.9658 +v -16.9224 -97.0941 -16.9223 +v -11.966 -97.0941 -20.7255 +v -6.19408 -97.0941 -23.1163 +v -9.10071e-05 -97.0941 -23.9318 +v 6.19391 -97.0941 -23.1163 +v 11.9658 -97.0941 -20.7256 +v 16.9222 -97.0941 -16.9224 +v 20.7255 -97.0941 -11.966 +v 23.1163 -97.0941 -6.1941 +f 3 4 28 27 +f 4 5 29 28 +f 5 6 30 29 +f 6 7 31 30 +f 7 8 32 31 +f 8 9 33 32 +f 9 10 34 33 +f 10 11 35 34 +f 11 12 36 35 +f 12 13 37 36 +f 13 14 38 37 +f 14 15 39 38 +f 15 16 40 39 +f 16 17 41 40 +f 17 18 42 41 +f 18 19 43 42 +f 19 20 44 43 +f 20 21 45 44 +f 21 22 46 45 +f 22 23 47 46 +f 23 24 48 47 +f 24 25 49 48 +f 25 26 50 49 +f 26 3 27 50 +f 27 28 52 51 +f 28 29 53 52 +f 29 30 54 53 +f 30 31 55 54 +f 31 32 56 55 +f 32 33 57 56 +f 33 34 58 57 +f 34 35 59 58 +f 35 36 60 59 +f 36 37 61 60 +f 37 38 62 61 +f 38 39 63 62 +f 39 40 64 63 +f 40 41 65 64 +f 41 42 66 65 +f 42 43 67 66 +f 43 44 68 67 +f 44 45 69 68 +f 45 46 70 69 +f 46 47 71 70 +f 47 48 72 71 +f 48 49 73 72 +f 49 50 74 73 +f 50 27 51 74 +f 51 52 76 75 +f 52 53 77 76 +f 53 54 78 77 +f 54 55 79 78 +f 55 56 80 79 +f 56 57 81 80 +f 57 58 82 81 +f 58 59 83 82 +f 59 60 84 83 +f 60 61 85 84 +f 61 62 86 85 +f 62 63 87 86 +f 63 64 88 87 +f 64 65 89 88 +f 65 66 90 89 +f 66 67 91 90 +f 67 68 92 91 +f 68 69 93 92 +f 69 70 94 93 +f 70 71 95 94 +f 71 72 96 95 +f 72 73 97 96 +f 73 74 98 97 +f 74 51 75 98 +f 75 76 100 99 +f 76 77 101 100 +f 77 78 102 101 +f 78 79 103 102 +f 79 80 104 103 +f 80 81 105 104 +f 81 82 106 105 +f 82 83 107 106 +f 83 84 108 107 +f 84 85 109 108 +f 85 86 110 109 +f 86 87 111 110 +f 87 88 112 111 +f 88 89 113 112 +f 89 90 114 113 +f 90 91 115 114 +f 91 92 116 115 +f 92 93 117 116 +f 93 94 118 117 +f 94 95 119 118 +f 95 96 120 119 +f 96 97 121 120 +f 97 98 122 121 +f 98 75 99 122 +f 99 100 124 123 +f 100 101 125 124 +f 101 102 126 125 +f 102 103 127 126 +f 103 104 128 127 +f 104 105 129 128 +f 105 106 130 129 +f 106 107 131 130 +f 107 108 132 131 +f 108 109 133 132 +f 109 110 134 133 +f 110 111 135 134 +f 111 112 136 135 +f 112 113 137 136 +f 113 114 138 137 +f 114 115 139 138 +f 115 116 140 139 +f 116 117 141 140 +f 117 118 142 141 +f 118 119 143 142 +f 119 120 144 143 +f 120 121 145 144 +f 121 122 146 145 +f 122 99 123 146 +f 123 124 148 147 +f 124 125 149 148 +f 125 126 150 149 +f 126 127 151 150 +f 127 128 152 151 +f 128 129 153 152 +f 129 130 154 153 +f 130 131 155 154 +f 131 132 156 155 +f 132 133 157 156 +f 133 134 158 157 +f 134 135 159 158 +f 135 136 160 159 +f 136 137 161 160 +f 137 138 162 161 +f 138 139 163 162 +f 139 140 164 163 +f 140 141 165 164 +f 141 142 166 165 +f 142 143 167 166 +f 143 144 168 167 +f 144 145 169 168 +f 145 146 170 169 +f 146 123 147 170 +f 147 148 172 171 +f 148 149 173 172 +f 149 150 174 173 +f 150 151 175 174 +f 151 152 176 175 +f 152 153 177 176 +f 153 154 178 177 +f 154 155 179 178 +f 155 156 180 179 +f 156 157 181 180 +f 157 158 182 181 +f 158 159 183 182 +f 159 160 184 183 +f 160 161 185 184 +f 161 162 186 185 +f 162 163 187 186 +f 163 164 188 187 +f 164 165 189 188 +f 165 166 190 189 +f 166 167 191 190 +f 167 168 192 191 +f 168 169 193 192 +f 169 170 194 193 +f 170 147 171 194 +f 171 172 196 195 +f 172 173 197 196 +f 173 174 198 197 +f 174 175 199 198 +f 175 176 200 199 +f 176 177 201 200 +f 177 178 202 201 +f 178 179 203 202 +f 179 180 204 203 +f 180 181 205 204 +f 181 182 206 205 +f 182 183 207 206 +f 183 184 208 207 +f 184 185 209 208 +f 185 186 210 209 +f 186 187 211 210 +f 187 188 212 211 +f 188 189 213 212 +f 189 190 214 213 +f 190 191 215 214 +f 191 192 216 215 +f 192 193 217 216 +f 193 194 218 217 +f 194 171 195 218 +f 195 196 220 219 +f 196 197 221 220 +f 197 198 222 221 +f 198 199 223 222 +f 199 200 224 223 +f 200 201 225 224 +f 201 202 226 225 +f 202 203 227 226 +f 203 204 228 227 +f 204 205 229 228 +f 205 206 230 229 +f 206 207 231 230 +f 207 208 232 231 +f 208 209 233 232 +f 209 210 234 233 +f 210 211 235 234 +f 211 212 236 235 +f 212 213 237 236 +f 213 214 238 237 +f 214 215 239 238 +f 215 216 240 239 +f 216 217 241 240 +f 217 218 242 241 +f 218 195 219 242 +f 219 220 244 243 +f 220 221 245 244 +f 221 222 246 245 +f 222 223 247 246 +f 223 224 248 247 +f 224 225 249 248 +f 225 226 250 249 +f 226 227 251 250 +f 227 228 252 251 +f 228 229 253 252 +f 229 230 254 253 +f 230 231 255 254 +f 231 232 256 255 +f 232 233 257 256 +f 233 234 258 257 +f 234 235 259 258 +f 235 236 260 259 +f 236 237 261 260 +f 237 238 262 261 +f 238 239 263 262 +f 239 240 264 263 +f 240 241 265 264 +f 241 242 266 265 +f 242 219 243 266 +f 243 244 268 267 +f 244 245 269 268 +f 245 246 270 269 +f 246 247 271 270 +f 247 248 272 271 +f 248 249 273 272 +f 249 250 274 273 +f 250 251 275 274 +f 251 252 276 275 +f 252 253 277 276 +f 253 254 278 277 +f 254 255 279 278 +f 255 256 280 279 +f 256 257 281 280 +f 257 258 282 281 +f 258 259 283 282 +f 259 260 284 283 +f 260 261 285 284 +f 261 262 286 285 +f 262 263 287 286 +f 263 264 288 287 +f 264 265 289 288 +f 265 266 290 289 +f 266 243 267 290 +f 1 4 3 +f 2 267 268 +f 1 5 4 +f 2 268 269 +f 1 6 5 +f 2 269 270 +f 1 7 6 +f 2 270 271 +f 1 8 7 +f 2 271 272 +f 1 9 8 +f 2 272 273 +f 1 10 9 +f 2 273 274 +f 1 11 10 +f 2 274 275 +f 1 12 11 +f 2 275 276 +f 1 13 12 +f 2 276 277 +f 1 14 13 +f 2 277 278 +f 1 15 14 +f 2 278 279 +f 1 16 15 +f 2 279 280 +f 1 17 16 +f 2 280 281 +f 1 18 17 +f 2 281 282 +f 1 19 18 +f 2 282 283 +f 1 20 19 +f 2 283 284 +f 1 21 20 +f 2 284 285 +f 1 22 21 +f 2 285 286 +f 1 23 22 +f 2 286 287 +f 1 24 23 +f 2 287 288 +f 1 25 24 +f 2 288 289 +f 1 26 25 +f 2 289 290 +f 1 3 26 +f 2 290 267 diff --git a/data/spheres/7.obj b/data/spheres/7.obj new file mode 100644 index 0000000..9b4b55f --- /dev/null +++ b/data/spheres/7.obj @@ -0,0 +1,814 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 20.7912 97.8148 5.88009e-39 +v 20.2699 97.8148 4.62646 +v 18.7322 97.8148 9.02094 +v 16.2552 97.8148 12.9631 +v 12.9631 97.8148 16.2552 +v 9.02096 97.8148 18.7322 +v 4.62649 97.8148 20.2699 +v 2.63547e-05 97.8148 20.7912 +v -4.62644 97.8148 20.2699 +v -9.02091 97.8148 18.7322 +v -12.963 97.8148 16.2552 +v -16.2552 97.8148 12.9631 +v -18.7322 97.8148 9.02099 +v -20.2699 97.8148 4.62652 +v -20.7912 97.8148 5.27093e-05 +v -20.2699 97.8148 -4.62641 +v -18.7322 97.8148 -9.02089 +v -16.2552 97.8148 -12.963 +v -12.9631 97.8148 -16.2551 +v -9.02101 97.8148 -18.7321 +v -4.62654 97.8148 -20.2699 +v -7.9064e-05 97.8148 -20.7912 +v 4.62639 97.8148 -20.2699 +v 9.02087 97.8148 -18.7322 +v 12.963 97.8148 -16.2552 +v 16.2551 97.8148 -12.9631 +v 18.7321 97.8148 -9.02103 +v 20.2699 97.8148 -4.62656 +v 40.6736 91.3546 5.88009e-39 +v 39.6539 91.3546 9.05073 +v 36.6457 91.3546 17.6476 +v 31.7999 91.3546 25.3596 +v 25.3596 91.3546 31.7999 +v 17.6477 91.3546 36.6457 +v 9.05078 91.3546 39.6539 +v 5.15575e-05 91.3546 40.6736 +v -9.05068 91.3546 39.6539 +v -17.6476 91.3546 36.6457 +v -25.3595 91.3546 31.8 +v -31.7999 91.3546 25.3597 +v -36.6456 91.3546 17.6477 +v -39.6538 91.3546 9.05083 +v -40.6736 91.3546 0.000103115 +v -39.6539 91.3546 -9.05063 +v -36.6457 91.3546 -17.6475 +v -31.8 91.3546 -25.3595 +v -25.3597 91.3546 -31.7998 +v -17.6478 91.3546 -36.6456 +v -9.05087 91.3546 -39.6538 +v -0.000154673 91.3546 -40.6736 +v 9.05059 91.3546 -39.6539 +v 17.6475 91.3546 -36.6457 +v 25.3595 91.3546 -31.8 +v 31.7998 91.3546 -25.3597 +v 36.6456 91.3546 -17.6478 +v 39.6538 91.3546 -9.05092 +v 58.7785 80.9017 5.88009e-39 +v 57.3048 80.9017 13.0794 +v 52.9576 80.9017 25.503 +v 45.9549 80.9017 36.6478 +v 36.6478 80.9017 45.9548 +v 25.5031 80.9017 52.9576 +v 13.0795 80.9017 57.3048 +v 7.45071e-05 80.9017 58.7785 +v -13.0794 80.9017 57.3048 +v -25.5029 80.9017 52.9576 +v -36.6477 80.9017 45.9549 +v -45.9548 80.9017 36.6479 +v -52.9575 80.9017 25.5031 +v -57.3048 80.9017 13.0796 +v -58.7785 80.9017 0.000149014 +v -57.3048 80.9017 -13.0793 +v -52.9577 80.9017 -25.5029 +v -45.955 80.9017 -36.6477 +v -36.6479 80.9017 -45.9548 +v -25.5032 80.9017 -52.9575 +v -13.0796 80.9017 -57.3047 +v -0.000223521 80.9017 -58.7785 +v 13.0792 80.9017 -57.3048 +v 25.5028 80.9017 -52.9577 +v 36.6476 80.9017 -45.955 +v 45.9547 80.9017 -36.648 +v 52.9575 80.9017 -25.5033 +v 57.3047 80.9017 -13.0797 +v 74.3144 66.9131 5.88009e-39 +v 72.4512 66.9131 16.5365 +v 66.955 66.9131 32.2438 +v 58.1014 66.9131 46.3343 +v 46.3343 66.9131 58.1013 +v 32.2439 66.9131 66.955 +v 16.5366 66.9131 72.4512 +v 9.42003e-05 66.9131 74.3144 +v -16.5364 66.9131 72.4512 +v -32.2437 66.9131 66.955 +v -46.3342 66.9131 58.1014 +v -58.1013 66.9131 46.3344 +v -66.9549 66.9131 32.244 +v -72.4512 66.9131 16.5367 +v -74.3144 66.9131 0.000188401 +v -72.4513 66.9131 -16.5363 +v -66.9551 66.9131 -32.2436 +v -58.1015 66.9131 -46.3341 +v -46.3345 66.9131 -58.1012 +v -32.2441 66.9131 -66.9549 +v -16.5368 66.9131 -72.4512 +v -0.000282601 66.9131 -74.3144 +v 16.5362 66.9131 -72.4513 +v 32.2436 66.9131 -66.9551 +v 46.334 66.9131 -58.1016 +v 58.1012 66.9131 -46.3345 +v 66.9548 66.9131 -32.2441 +v 72.4511 66.9131 -16.5369 +v 86.6025 50.0001 5.88009e-39 +v 84.4312 50.0001 19.2709 +v 78.0262 50.0001 37.5754 +v 67.7086 50.0001 53.9957 +v 53.9958 50.0001 67.7085 +v 37.5755 50.0001 78.0261 +v 19.271 50.0001 84.4312 +v 0.000109777 50.0001 86.6025 +v -19.2708 50.0001 84.4312 +v -37.5753 50.0001 78.0262 +v -53.9957 50.0001 67.7087 +v -67.7085 50.0001 53.9959 +v -78.0261 50.0001 37.5756 +v -84.4312 50.0001 19.2711 +v -86.6025 50.0001 0.000219553 +v -84.4312 50.0001 -19.2706 +v -78.0263 50.0001 -37.5752 +v -67.7087 50.0001 -53.9956 +v -53.996 50.0001 -67.7084 +v -37.5757 50.0001 -78.026 +v -19.2712 50.0001 -84.4311 +v -0.00032933 50.0001 -86.6025 +v 19.2706 50.0001 -84.4313 +v 37.5751 50.0001 -78.0263 +v 53.9955 50.0001 -67.7088 +v 67.7083 50.0001 -53.9961 +v 78.026 50.0001 -37.5758 +v 84.4311 50.0001 -19.2713 +v 95.1056 30.9018 5.88009e-39 +v 92.7211 30.9018 21.163 +v 85.6872 30.9018 41.2648 +v 74.3566 30.9018 59.2973 +v 59.2974 30.9018 74.3565 +v 41.2649 30.9018 85.6872 +v 21.1631 30.9018 92.7211 +v 0.000120555 30.9018 95.1056 +v -21.1629 30.9018 92.7212 +v -41.2646 30.9018 85.6873 +v -59.2973 30.9018 74.3567 +v -74.3565 30.9018 59.2975 +v -85.6871 30.9018 41.265 +v -92.7211 30.9018 21.1632 +v -95.1056 30.9018 0.00024111 +v -92.7212 30.9018 -21.1627 +v -85.6873 30.9018 -41.2645 +v -74.3567 30.9018 -59.2972 +v -59.2976 30.9018 -74.3564 +v -41.2651 30.9018 -85.6871 +v -21.1633 30.9018 -92.7211 +v -0.000361665 30.9018 -95.1056 +v 21.1626 30.9018 -92.7212 +v 41.2644 30.9018 -85.6874 +v 59.2971 30.9018 -74.3568 +v 74.3563 30.9018 -59.2977 +v 85.687 30.9018 -41.2652 +v 92.721 30.9018 -21.1634 +v 99.4522 10.453 5.88009e-39 +v 96.9587 10.453 22.1302 +v 89.6033 10.453 43.1507 +v 77.7549 10.453 62.0074 +v 62.0075 10.453 77.7548 +v 43.1508 10.453 89.6033 +v 22.1303 10.453 96.9587 +v 0.000126065 10.453 99.4522 +v -22.1301 10.453 96.9587 +v -43.1505 10.453 89.6034 +v -62.0073 10.453 77.755 +v -77.7547 10.453 62.0076 +v -89.6032 10.453 43.1509 +v -96.9586 10.453 22.1304 +v -99.4522 10.453 0.000252129 +v -96.9588 10.453 -22.1299 +v -89.6034 10.453 -43.1504 +v -77.755 10.453 -62.0072 +v -62.0077 10.453 -77.7547 +v -43.151 10.453 -89.6032 +v -22.1305 10.453 -96.9586 +v -0.000378194 10.453 -99.4522 +v 22.1298 10.453 -96.9588 +v 43.1503 10.453 -89.6035 +v 62.0071 10.453 -77.7551 +v 77.7546 10.453 -62.0078 +v 89.6031 10.453 -43.1511 +v 96.9586 10.453 -22.1306 +v 99.4522 -10.4527 5.88009e-39 +v 96.9587 -10.4527 22.1302 +v 89.6034 -10.4527 43.1507 +v 77.7549 -10.4527 62.0074 +v 62.0075 -10.4527 77.7548 +v 43.1508 -10.4527 89.6033 +v 22.1303 -10.4527 96.9587 +v 0.000126065 -10.4527 99.4522 +v -22.1301 -10.4527 96.9588 +v -43.1506 -10.4527 89.6034 +v -62.0073 -10.4527 77.755 +v -77.7547 -10.4527 62.0076 +v -89.6032 -10.4527 43.1509 +v -96.9587 -10.4527 22.1304 +v -99.4522 -10.4527 0.000252129 +v -96.9588 -10.4527 -22.1299 +v -89.6035 -10.4527 -43.1504 +v -77.7551 -10.4527 -62.0072 +v -62.0077 -10.4527 -77.7547 +v -43.151 -10.4527 -89.6032 +v -22.1305 -10.4527 -96.9586 +v -0.000378194 -10.4527 -99.4522 +v 22.1298 -10.4527 -96.9588 +v 43.1503 -10.4527 -89.6035 +v 62.0071 -10.4527 -77.7551 +v 77.7546 -10.4527 -62.0078 +v 89.6031 -10.4527 -43.1511 +v 96.9586 -10.4527 -22.1307 +v 95.1057 -30.9016 5.88009e-39 +v 92.7212 -30.9016 21.163 +v 85.6873 -30.9016 41.2648 +v 74.3567 -30.9016 59.2974 +v 59.2975 -30.9016 74.3566 +v 41.2649 -30.9016 85.6872 +v 21.1631 -30.9016 92.7212 +v 0.000120555 -30.9016 95.1057 +v -21.1629 -30.9016 92.7212 +v -41.2647 -30.9016 85.6873 +v -59.2973 -30.9016 74.3567 +v -74.3565 -30.9016 59.2976 +v -85.6872 -30.9016 41.265 +v -92.7211 -30.9016 21.1632 +v -95.1057 -30.9016 0.00024111 +v -92.7213 -30.9016 -21.1628 +v -85.6874 -30.9016 -41.2646 +v -74.3568 -30.9016 -59.2972 +v -59.2977 -30.9016 -74.3564 +v -41.2651 -30.9016 -85.6871 +v -21.1633 -30.9016 -92.7211 +v -0.000361665 -30.9016 -95.1057 +v 21.1627 -30.9016 -92.7213 +v 41.2645 -30.9016 -85.6874 +v 59.2971 -30.9016 -74.3569 +v 74.3564 -30.9016 -59.2978 +v 85.6871 -30.9016 -41.2652 +v 92.7211 -30.9016 -21.1634 +v 86.6026 -49.9999 5.88009e-39 +v 84.4313 -49.9999 19.2709 +v 78.0263 -49.9999 37.5754 +v 67.7087 -49.9999 53.9958 +v 53.9959 -49.9999 67.7086 +v 37.5755 -49.9999 78.0262 +v 19.271 -49.9999 84.4313 +v 0.000109777 -49.9999 86.6026 +v -19.2708 -49.9999 84.4313 +v -37.5753 -49.9999 78.0263 +v -53.9957 -49.9999 67.7087 +v -67.7086 -49.9999 53.996 +v -78.0262 -49.9999 37.5756 +v -84.4313 -49.9999 19.2711 +v -86.6026 -49.9999 0.000219553 +v -84.4314 -49.9999 -19.2707 +v -78.0264 -49.9999 -37.5752 +v -67.7088 -49.9999 -53.9957 +v -53.9961 -49.9999 -67.7085 +v -37.5757 -49.9999 -78.0261 +v -19.2712 -49.9999 -84.4313 +v -0.00032933 -49.9999 -86.6026 +v 19.2706 -49.9999 -84.4314 +v 37.5751 -49.9999 -78.0264 +v 53.9955 -49.9999 -67.7089 +v 67.7084 -49.9999 -53.9962 +v 78.0261 -49.9999 -37.5758 +v 84.4312 -49.9999 -19.2713 +v 74.3146 -66.9129 5.88009e-39 +v 72.4514 -66.9129 16.5365 +v 66.9552 -66.9129 32.2439 +v 58.1015 -66.9129 46.3344 +v 46.3344 -66.9129 58.1015 +v 32.244 -66.9129 66.9551 +v 16.5366 -66.9129 72.4514 +v 9.42005e-05 -66.9129 74.3146 +v -16.5365 -66.9129 72.4514 +v -32.2438 -66.9129 66.9552 +v -46.3343 -66.9129 58.1016 +v -58.1014 -66.9129 46.3345 +v -66.9551 -66.9129 32.244 +v -72.4513 -66.9129 16.5367 +v -74.3146 -66.9129 0.000188401 +v -72.4514 -66.9129 -16.5364 +v -66.9552 -66.9129 -32.2437 +v -58.1016 -66.9129 -46.3342 +v -46.3346 -66.9129 -58.1014 +v -32.2441 -66.9129 -66.955 +v -16.5368 -66.9129 -72.4513 +v -0.000282602 -66.9129 -74.3146 +v 16.5363 -66.9129 -72.4514 +v 32.2436 -66.9129 -66.9553 +v 46.3341 -66.9129 -58.1017 +v 58.1013 -66.9129 -46.3347 +v 66.955 -66.9129 -32.2442 +v 72.4513 -66.9129 -16.5369 +v 58.7787 -80.9016 5.88009e-39 +v 57.305 -80.9016 13.0795 +v 52.9578 -80.9016 25.5031 +v 45.955 -80.9016 36.6479 +v 36.6479 -80.9016 45.955 +v 25.5032 -80.9016 52.9577 +v 13.0795 -80.9016 57.305 +v 7.45073e-05 -80.9016 58.7787 +v -13.0794 -80.9016 57.305 +v -25.503 -80.9016 52.9578 +v -36.6478 -80.9016 45.9551 +v -45.955 -80.9016 36.648 +v -52.9577 -80.9016 25.5032 +v -57.3049 -80.9016 13.0796 +v -58.7787 -80.9016 0.000149015 +v -57.305 -80.9016 -13.0793 +v -52.9578 -80.9016 -25.503 +v -45.9551 -80.9016 -36.6478 +v -36.648 -80.9016 -45.9549 +v -25.5033 -80.9016 -52.9577 +v -13.0797 -80.9016 -57.3049 +v -0.000223522 -80.9016 -58.7787 +v 13.0793 -80.9016 -57.305 +v 25.5029 -80.9016 -52.9579 +v 36.6477 -80.9016 -45.9552 +v 45.9549 -80.9016 -36.6481 +v 52.9576 -80.9016 -25.5034 +v 57.3049 -80.9016 -13.0798 +v 40.6739 -91.3545 5.88009e-39 +v 39.6541 -91.3545 9.05078 +v 36.6459 -91.3545 17.6477 +v 31.8001 -91.3545 25.3597 +v 25.3598 -91.3545 31.8001 +v 17.6478 -91.3545 36.6459 +v 9.05083 -91.3545 39.6541 +v 5.15578e-05 -91.3545 40.6739 +v -9.05073 -91.3545 39.6541 +v -17.6477 -91.3545 36.6459 +v -25.3597 -91.3545 31.8001 +v -31.8001 -91.3545 25.3598 +v -36.6458 -91.3545 17.6478 +v -39.6541 -91.3545 9.05088 +v -40.6739 -91.3545 0.000103116 +v -39.6541 -91.3545 -9.05068 +v -36.6459 -91.3545 -17.6476 +v -31.8002 -91.3545 -25.3596 +v -25.3598 -91.3545 -31.8 +v -17.6479 -91.3545 -36.6458 +v -9.05092 -91.3545 -39.654 +v -0.000154673 -91.3545 -40.6739 +v 9.05064 -91.3545 -39.6541 +v 17.6476 -91.3545 -36.646 +v 25.3596 -91.3545 -31.8002 +v 31.8 -91.3545 -25.3599 +v 36.6458 -91.3545 -17.6479 +v 39.654 -91.3545 -9.05097 +v 20.7914 -97.8147 5.88009e-39 +v 20.2701 -97.8147 4.62652 +v 18.7324 -97.8147 9.02104 +v 16.2554 -97.8147 12.9632 +v 12.9632 -97.8147 16.2554 +v 9.02106 -97.8147 18.7324 +v 4.62654 -97.8147 20.2701 +v 2.6355e-05 -97.8147 20.7914 +v -4.62649 -97.8147 20.2701 +v -9.02102 -97.8147 18.7324 +v -12.9632 -97.8147 16.2554 +v -16.2553 -97.8147 12.9633 +v -18.7324 -97.8147 9.02109 +v -20.2701 -97.8147 4.62657 +v -20.7914 -97.8147 5.271e-05 +v -20.2701 -97.8147 -4.62647 +v -18.7324 -97.8147 -9.021 +v -16.2554 -97.8147 -12.9632 +v -12.9633 -97.8147 -16.2553 +v -9.02111 -97.8147 -18.7324 +v -4.62659 -97.8147 -20.2701 +v -7.90649e-05 -97.8147 -20.7914 +v 4.62645 -97.8147 -20.2701 +v 9.02097 -97.8147 -18.7324 +v 12.9632 -97.8147 -16.2554 +v 16.2553 -97.8147 -12.9633 +v 18.7324 -97.8147 -9.02114 +v 20.2701 -97.8147 -4.62662 +f 3 4 32 31 +f 4 5 33 32 +f 5 6 34 33 +f 6 7 35 34 +f 7 8 36 35 +f 8 9 37 36 +f 9 10 38 37 +f 10 11 39 38 +f 11 12 40 39 +f 12 13 41 40 +f 13 14 42 41 +f 14 15 43 42 +f 15 16 44 43 +f 16 17 45 44 +f 17 18 46 45 +f 18 19 47 46 +f 19 20 48 47 +f 20 21 49 48 +f 21 22 50 49 +f 22 23 51 50 +f 23 24 52 51 +f 24 25 53 52 +f 25 26 54 53 +f 26 27 55 54 +f 27 28 56 55 +f 28 29 57 56 +f 29 30 58 57 +f 30 3 31 58 +f 31 32 60 59 +f 32 33 61 60 +f 33 34 62 61 +f 34 35 63 62 +f 35 36 64 63 +f 36 37 65 64 +f 37 38 66 65 +f 38 39 67 66 +f 39 40 68 67 +f 40 41 69 68 +f 41 42 70 69 +f 42 43 71 70 +f 43 44 72 71 +f 44 45 73 72 +f 45 46 74 73 +f 46 47 75 74 +f 47 48 76 75 +f 48 49 77 76 +f 49 50 78 77 +f 50 51 79 78 +f 51 52 80 79 +f 52 53 81 80 +f 53 54 82 81 +f 54 55 83 82 +f 55 56 84 83 +f 56 57 85 84 +f 57 58 86 85 +f 58 31 59 86 +f 59 60 88 87 +f 60 61 89 88 +f 61 62 90 89 +f 62 63 91 90 +f 63 64 92 91 +f 64 65 93 92 +f 65 66 94 93 +f 66 67 95 94 +f 67 68 96 95 +f 68 69 97 96 +f 69 70 98 97 +f 70 71 99 98 +f 71 72 100 99 +f 72 73 101 100 +f 73 74 102 101 +f 74 75 103 102 +f 75 76 104 103 +f 76 77 105 104 +f 77 78 106 105 +f 78 79 107 106 +f 79 80 108 107 +f 80 81 109 108 +f 81 82 110 109 +f 82 83 111 110 +f 83 84 112 111 +f 84 85 113 112 +f 85 86 114 113 +f 86 59 87 114 +f 87 88 116 115 +f 88 89 117 116 +f 89 90 118 117 +f 90 91 119 118 +f 91 92 120 119 +f 92 93 121 120 +f 93 94 122 121 +f 94 95 123 122 +f 95 96 124 123 +f 96 97 125 124 +f 97 98 126 125 +f 98 99 127 126 +f 99 100 128 127 +f 100 101 129 128 +f 101 102 130 129 +f 102 103 131 130 +f 103 104 132 131 +f 104 105 133 132 +f 105 106 134 133 +f 106 107 135 134 +f 107 108 136 135 +f 108 109 137 136 +f 109 110 138 137 +f 110 111 139 138 +f 111 112 140 139 +f 112 113 141 140 +f 113 114 142 141 +f 114 87 115 142 +f 115 116 144 143 +f 116 117 145 144 +f 117 118 146 145 +f 118 119 147 146 +f 119 120 148 147 +f 120 121 149 148 +f 121 122 150 149 +f 122 123 151 150 +f 123 124 152 151 +f 124 125 153 152 +f 125 126 154 153 +f 126 127 155 154 +f 127 128 156 155 +f 128 129 157 156 +f 129 130 158 157 +f 130 131 159 158 +f 131 132 160 159 +f 132 133 161 160 +f 133 134 162 161 +f 134 135 163 162 +f 135 136 164 163 +f 136 137 165 164 +f 137 138 166 165 +f 138 139 167 166 +f 139 140 168 167 +f 140 141 169 168 +f 141 142 170 169 +f 142 115 143 170 +f 143 144 172 171 +f 144 145 173 172 +f 145 146 174 173 +f 146 147 175 174 +f 147 148 176 175 +f 148 149 177 176 +f 149 150 178 177 +f 150 151 179 178 +f 151 152 180 179 +f 152 153 181 180 +f 153 154 182 181 +f 154 155 183 182 +f 155 156 184 183 +f 156 157 185 184 +f 157 158 186 185 +f 158 159 187 186 +f 159 160 188 187 +f 160 161 189 188 +f 161 162 190 189 +f 162 163 191 190 +f 163 164 192 191 +f 164 165 193 192 +f 165 166 194 193 +f 166 167 195 194 +f 167 168 196 195 +f 168 169 197 196 +f 169 170 198 197 +f 170 143 171 198 +f 171 172 200 199 +f 172 173 201 200 +f 173 174 202 201 +f 174 175 203 202 +f 175 176 204 203 +f 176 177 205 204 +f 177 178 206 205 +f 178 179 207 206 +f 179 180 208 207 +f 180 181 209 208 +f 181 182 210 209 +f 182 183 211 210 +f 183 184 212 211 +f 184 185 213 212 +f 185 186 214 213 +f 186 187 215 214 +f 187 188 216 215 +f 188 189 217 216 +f 189 190 218 217 +f 190 191 219 218 +f 191 192 220 219 +f 192 193 221 220 +f 193 194 222 221 +f 194 195 223 222 +f 195 196 224 223 +f 196 197 225 224 +f 197 198 226 225 +f 198 171 199 226 +f 199 200 228 227 +f 200 201 229 228 +f 201 202 230 229 +f 202 203 231 230 +f 203 204 232 231 +f 204 205 233 232 +f 205 206 234 233 +f 206 207 235 234 +f 207 208 236 235 +f 208 209 237 236 +f 209 210 238 237 +f 210 211 239 238 +f 211 212 240 239 +f 212 213 241 240 +f 213 214 242 241 +f 214 215 243 242 +f 215 216 244 243 +f 216 217 245 244 +f 217 218 246 245 +f 218 219 247 246 +f 219 220 248 247 +f 220 221 249 248 +f 221 222 250 249 +f 222 223 251 250 +f 223 224 252 251 +f 224 225 253 252 +f 225 226 254 253 +f 226 199 227 254 +f 227 228 256 255 +f 228 229 257 256 +f 229 230 258 257 +f 230 231 259 258 +f 231 232 260 259 +f 232 233 261 260 +f 233 234 262 261 +f 234 235 263 262 +f 235 236 264 263 +f 236 237 265 264 +f 237 238 266 265 +f 238 239 267 266 +f 239 240 268 267 +f 240 241 269 268 +f 241 242 270 269 +f 242 243 271 270 +f 243 244 272 271 +f 244 245 273 272 +f 245 246 274 273 +f 246 247 275 274 +f 247 248 276 275 +f 248 249 277 276 +f 249 250 278 277 +f 250 251 279 278 +f 251 252 280 279 +f 252 253 281 280 +f 253 254 282 281 +f 254 227 255 282 +f 255 256 284 283 +f 256 257 285 284 +f 257 258 286 285 +f 258 259 287 286 +f 259 260 288 287 +f 260 261 289 288 +f 261 262 290 289 +f 262 263 291 290 +f 263 264 292 291 +f 264 265 293 292 +f 265 266 294 293 +f 266 267 295 294 +f 267 268 296 295 +f 268 269 297 296 +f 269 270 298 297 +f 270 271 299 298 +f 271 272 300 299 +f 272 273 301 300 +f 273 274 302 301 +f 274 275 303 302 +f 275 276 304 303 +f 276 277 305 304 +f 277 278 306 305 +f 278 279 307 306 +f 279 280 308 307 +f 280 281 309 308 +f 281 282 310 309 +f 282 255 283 310 +f 283 284 312 311 +f 284 285 313 312 +f 285 286 314 313 +f 286 287 315 314 +f 287 288 316 315 +f 288 289 317 316 +f 289 290 318 317 +f 290 291 319 318 +f 291 292 320 319 +f 292 293 321 320 +f 293 294 322 321 +f 294 295 323 322 +f 295 296 324 323 +f 296 297 325 324 +f 297 298 326 325 +f 298 299 327 326 +f 299 300 328 327 +f 300 301 329 328 +f 301 302 330 329 +f 302 303 331 330 +f 303 304 332 331 +f 304 305 333 332 +f 305 306 334 333 +f 306 307 335 334 +f 307 308 336 335 +f 308 309 337 336 +f 309 310 338 337 +f 310 283 311 338 +f 311 312 340 339 +f 312 313 341 340 +f 313 314 342 341 +f 314 315 343 342 +f 315 316 344 343 +f 316 317 345 344 +f 317 318 346 345 +f 318 319 347 346 +f 319 320 348 347 +f 320 321 349 348 +f 321 322 350 349 +f 322 323 351 350 +f 323 324 352 351 +f 324 325 353 352 +f 325 326 354 353 +f 326 327 355 354 +f 327 328 356 355 +f 328 329 357 356 +f 329 330 358 357 +f 330 331 359 358 +f 331 332 360 359 +f 332 333 361 360 +f 333 334 362 361 +f 334 335 363 362 +f 335 336 364 363 +f 336 337 365 364 +f 337 338 366 365 +f 338 311 339 366 +f 339 340 368 367 +f 340 341 369 368 +f 341 342 370 369 +f 342 343 371 370 +f 343 344 372 371 +f 344 345 373 372 +f 345 346 374 373 +f 346 347 375 374 +f 347 348 376 375 +f 348 349 377 376 +f 349 350 378 377 +f 350 351 379 378 +f 351 352 380 379 +f 352 353 381 380 +f 353 354 382 381 +f 354 355 383 382 +f 355 356 384 383 +f 356 357 385 384 +f 357 358 386 385 +f 358 359 387 386 +f 359 360 388 387 +f 360 361 389 388 +f 361 362 390 389 +f 362 363 391 390 +f 363 364 392 391 +f 364 365 393 392 +f 365 366 394 393 +f 366 339 367 394 +f 1 4 3 +f 2 367 368 +f 1 5 4 +f 2 368 369 +f 1 6 5 +f 2 369 370 +f 1 7 6 +f 2 370 371 +f 1 8 7 +f 2 371 372 +f 1 9 8 +f 2 372 373 +f 1 10 9 +f 2 373 374 +f 1 11 10 +f 2 374 375 +f 1 12 11 +f 2 375 376 +f 1 13 12 +f 2 376 377 +f 1 14 13 +f 2 377 378 +f 1 15 14 +f 2 378 379 +f 1 16 15 +f 2 379 380 +f 1 17 16 +f 2 380 381 +f 1 18 17 +f 2 381 382 +f 1 19 18 +f 2 382 383 +f 1 20 19 +f 2 383 384 +f 1 21 20 +f 2 384 385 +f 1 22 21 +f 2 385 386 +f 1 23 22 +f 2 386 387 +f 1 24 23 +f 2 387 388 +f 1 25 24 +f 2 388 389 +f 1 26 25 +f 2 389 390 +f 1 27 26 +f 2 390 391 +f 1 28 27 +f 2 391 392 +f 1 29 28 +f 2 392 393 +f 1 30 29 +f 2 393 394 +f 1 3 30 +f 2 394 367 diff --git a/data/spheres/8.obj b/data/spheres/8.obj new file mode 100644 index 0000000..1966040 --- /dev/null +++ b/data/spheres/8.obj @@ -0,0 +1,1058 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 18.3749 98.2973 5.88009e-39 +v 18.0219 98.2973 3.58477 +v 16.9762 98.2973 7.03178 +v 15.2782 98.2973 10.2086 +v 12.9931 98.2973 12.993 +v 10.2086 98.2973 15.2782 +v 7.0318 98.2973 16.9762 +v 3.58479 98.2973 18.0219 +v 2.11014e-05 98.2973 18.3749 +v -3.58475 98.2973 18.0219 +v -7.03176 98.2973 16.9762 +v -10.2085 98.2973 15.2782 +v -12.993 98.2973 12.9931 +v -15.2782 98.2973 10.2086 +v -16.9762 98.2973 7.03182 +v -18.0219 98.2973 3.58481 +v -18.3749 98.2973 4.22029e-05 +v -18.0219 98.2973 -3.58473 +v -16.9762 98.2973 -7.03174 +v -15.2782 98.2973 -10.2085 +v -12.9931 98.2973 -12.993 +v -10.2086 98.2973 -15.2782 +v -7.03184 98.2973 -16.9762 +v -3.58483 98.2973 -18.0219 +v -6.11139e-05 98.2973 -18.3749 +v 3.58471 98.2973 -18.0219 +v 7.03172 98.2973 -16.9763 +v 10.2085 98.2973 -15.2782 +v 12.993 98.2973 -12.9931 +v 15.2782 98.2973 -10.2086 +v 16.9762 98.2973 -7.03186 +v 18.0219 98.2973 -3.58486 +v 36.1241 93.2472 5.88009e-39 +v 35.43 93.2472 7.04747 +v 33.3744 93.2472 13.8241 +v 30.0361 93.2472 20.0695 +v 25.5436 93.2472 25.5436 +v 20.0695 93.2472 30.0361 +v 13.8241 93.2472 33.3743 +v 7.04751 93.2472 35.43 +v 4.14843e-05 93.2472 36.1241 +v -7.04742 93.2472 35.43 +v -13.8241 93.2472 33.3744 +v -20.0695 93.2472 30.0362 +v -25.5436 93.2472 25.5437 +v -30.0361 93.2472 20.0696 +v -33.3743 93.2472 13.8242 +v -35.43 93.2472 7.04755 +v -36.1241 93.2472 8.29686e-05 +v -35.43 93.2472 -7.04738 +v -33.3744 93.2472 -13.824 +v -30.0362 93.2472 -20.0694 +v -25.5437 93.2472 -25.5436 +v -20.0696 93.2472 -30.0361 +v -13.8242 93.2472 -33.3743 +v -7.04759 93.2472 -35.43 +v -0.000120147 93.2472 -36.1241 +v 7.04734 93.2472 -35.4301 +v 13.824 93.2472 -33.3744 +v 20.0694 93.2472 -30.0362 +v 25.5435 93.2472 -25.5437 +v 30.036 93.2472 -20.0696 +v 33.3743 93.2472 -13.8243 +v 35.43 93.2472 -7.04764 +v 52.6432 85.0217 5.88009e-39 +v 51.6317 85.0217 10.2702 +v 48.636 85.0217 20.1457 +v 43.7712 85.0217 29.247 +v 37.2244 85.0217 37.2243 +v 29.247 85.0217 43.7712 +v 20.1457 85.0217 48.6359 +v 10.2702 85.0217 51.6316 +v 6.04545e-05 85.0217 52.6432 +v -10.2701 85.0217 51.6317 +v -20.1456 85.0217 48.636 +v -29.2469 85.0217 43.7712 +v -37.2243 85.0217 37.2244 +v -43.7712 85.0217 29.2471 +v -48.6359 85.0217 20.1458 +v -51.6316 85.0217 10.2703 +v -52.6432 85.0217 0.000120909 +v -51.6317 85.0217 -10.27 +v -48.636 85.0217 -20.1455 +v -43.7713 85.0217 -29.2469 +v -37.2245 85.0217 -37.2242 +v -29.2471 85.0217 -43.7711 +v -20.1458 85.0217 -48.6359 +v -10.2704 85.0217 -51.6316 +v -0.000175088 85.0217 -52.6432 +v 10.27 85.0217 -51.6317 +v 20.1455 85.0217 -48.636 +v 29.2468 85.0217 -43.7713 +v 37.2242 85.0217 -37.2245 +v 43.7711 85.0217 -29.2472 +v 48.6359 85.0217 -20.1459 +v 51.6316 85.0217 -10.2704 +v 67.3695 73.9009 5.88009e-39 +v 66.075 73.9009 13.1431 +v 62.2413 73.9009 25.7812 +v 56.0157 73.9009 37.4285 +v 47.6375 73.9009 47.6374 +v 37.4285 73.9009 56.0157 +v 25.7813 73.9009 62.2413 +v 13.1432 73.9009 66.075 +v 7.73659e-05 73.9009 67.3695 +v -13.1431 73.9009 66.0751 +v -25.7811 73.9009 62.2414 +v -37.4284 73.9009 56.0158 +v -47.6374 73.9009 47.6375 +v -56.0156 73.9009 37.4286 +v -62.2413 73.9009 25.7813 +v -66.075 73.9009 13.1433 +v -67.3695 73.9009 0.000154732 +v -66.0751 73.9009 -13.143 +v -62.2414 73.9009 -25.781 +v -56.0158 73.9009 -37.4283 +v -47.6376 73.9009 -47.6373 +v -37.4287 73.9009 -56.0156 +v -25.7814 73.9009 -62.2412 +v -13.1434 73.9009 -66.075 +v -0.000224067 73.9009 -67.3695 +v 13.1429 73.9009 -66.0751 +v 25.781 73.9009 -62.2414 +v 37.4283 73.9009 -56.0159 +v 47.6373 73.9009 -47.6376 +v 56.0155 73.9009 -37.4287 +v 62.2412 73.9009 -25.7815 +v 66.075 73.9009 -13.1435 +v 79.8017 60.2635 5.88009e-39 +v 78.2683 60.2635 15.5685 +v 73.7271 60.2635 30.5388 +v 66.3527 60.2635 44.3354 +v 56.4283 60.2635 56.4283 +v 44.3355 60.2635 66.3526 +v 30.5388 60.2635 73.7271 +v 15.5686 60.2635 78.2683 +v 9.16428e-05 60.2635 79.8017 +v -15.5684 60.2635 78.2683 +v -30.5387 60.2635 73.7272 +v -44.3353 60.2635 66.3527 +v -56.4282 60.2635 56.4284 +v -66.3526 60.2635 44.3356 +v -73.7271 60.2635 30.5389 +v -78.2683 60.2635 15.5687 +v -79.8017 60.2635 0.000183286 +v -78.2684 60.2635 -15.5683 +v -73.7272 60.2635 -30.5386 +v -66.3528 60.2635 -44.3353 +v -56.4285 60.2635 -56.4281 +v -44.3356 60.2635 -66.3525 +v -30.539 60.2635 -73.7271 +v -15.5688 60.2635 -78.2683 +v -0.000265415 60.2635 -79.8017 +v 15.5682 60.2635 -78.2684 +v 30.5385 60.2635 -73.7272 +v 44.3352 60.2635 -66.3529 +v 56.4281 60.2635 -56.4285 +v 66.3525 60.2635 -44.3357 +v 73.727 60.2635 -30.5391 +v 78.2682 60.2635 -15.5689 +v 89.5163 44.5739 5.88009e-39 +v 87.7963 44.5739 17.4638 +v 82.7023 44.5739 34.2564 +v 74.4301 44.5739 49.7326 +v 63.2976 44.5739 63.2975 +v 49.7326 44.5739 74.43 +v 34.2565 44.5739 82.7022 +v 17.4639 44.5739 87.7962 +v 0.000102799 44.5739 89.5163 +v -17.4636 44.5739 87.7963 +v -34.2563 44.5739 82.7023 +v -49.7325 44.5739 74.4302 +v -63.2975 44.5739 63.2977 +v -74.43 44.5739 49.7327 +v -82.7022 44.5739 34.2566 +v -87.7962 44.5739 17.464 +v -89.5163 44.5739 0.000205598 +v -87.7963 44.5739 -17.4635 +v -82.7024 44.5739 -34.2562 +v -74.4302 44.5739 -49.7324 +v -63.2978 44.5739 -63.2974 +v -49.7328 44.5739 -74.4299 +v -34.2567 44.5739 -82.7022 +v -17.4641 44.5739 -87.7962 +v -0.000297725 44.5739 -89.5163 +v 17.4634 44.5739 -87.7963 +v 34.2561 44.5739 -82.7024 +v 49.7323 44.5739 -74.4303 +v 63.2973 44.5739 -63.2978 +v 74.4299 44.5739 -49.7329 +v 82.7021 44.5739 -34.2568 +v 87.7962 44.5739 -17.4642 +v 96.1825 27.3664 5.88009e-39 +v 94.3344 27.3664 18.7643 +v 88.8611 27.3664 36.8074 +v 79.9729 27.3664 53.4361 +v 68.0114 27.3664 68.0113 +v 53.4362 27.3664 79.9728 +v 36.8075 27.3664 88.8611 +v 18.7644 27.3664 94.3344 +v 0.000110454 27.3664 96.1825 +v -18.7642 27.3664 94.3344 +v -36.8073 27.3664 88.8611 +v -53.436 27.3664 79.9729 +v -68.0112 27.3664 68.0114 +v -79.9728 27.3664 53.4363 +v -88.861 27.3664 36.8076 +v -94.3344 27.3664 18.7645 +v -96.1825 27.3664 0.000220909 +v -94.3345 27.3664 -18.7641 +v -88.8612 27.3664 -36.8072 +v -79.973 27.3664 -53.4359 +v -68.0115 27.3664 -68.0111 +v -53.4364 27.3664 -79.9727 +v -36.8077 27.3664 -88.861 +v -18.7646 27.3664 -94.3344 +v -0.000319897 27.3664 -96.1825 +v 18.7639 27.3664 -94.3345 +v 36.8071 27.3664 -88.8612 +v 53.4358 27.3664 -79.9731 +v 68.0111 27.3664 -68.0116 +v 79.9726 27.3664 -53.4365 +v 88.8609 27.3664 -36.8078 +v 94.3343 27.3664 -18.7647 +v 99.5734 9.22694 5.88009e-39 +v 97.6601 9.22694 19.4258 +v 91.9938 9.22694 38.1051 +v 82.7923 9.22694 55.32 +v 70.4091 9.22694 70.409 +v 55.3201 9.22694 82.7922 +v 38.1052 9.22694 91.9938 +v 19.4259 9.22694 97.6601 +v 0.000114348 9.22694 99.5734 +v -19.4257 9.22694 97.6602 +v -38.105 9.22694 91.9939 +v -55.3199 9.22694 82.7924 +v -70.4089 9.22694 70.4091 +v -82.7922 9.22694 55.3202 +v -91.9938 9.22694 38.1053 +v -97.6601 9.22694 19.426 +v -99.5734 9.22694 0.000228697 +v -97.6602 9.22694 -19.4256 +v -91.9939 9.22694 -38.1049 +v -82.7924 9.22694 -55.3198 +v -70.4092 9.22694 -70.4088 +v -55.3203 9.22694 -82.7921 +v -38.1054 9.22694 -91.9937 +v -19.4261 9.22694 -97.6601 +v -0.000331175 9.22694 -99.5734 +v 19.4254 9.22694 -97.6602 +v 38.1048 9.22694 -91.994 +v 55.3197 9.22694 -82.7925 +v 70.4088 9.22694 -70.4093 +v 82.792 9.22694 -55.3204 +v 91.9937 9.22694 -38.1055 +v 97.66 9.22694 -19.4263 +v 99.5734 -9.22672 5.88009e-39 +v 97.6602 -9.22672 19.4258 +v 91.9939 -9.22672 38.1051 +v 82.7923 -9.22672 55.32 +v 70.4091 -9.22672 70.409 +v 55.3201 -9.22672 82.7922 +v 38.1052 -9.22672 91.9938 +v 19.4259 -9.22672 97.6601 +v 0.000114348 -9.22672 99.5734 +v -19.4257 -9.22672 97.6602 +v -38.105 -9.22672 91.9939 +v -55.3199 -9.22672 82.7924 +v -70.4089 -9.22672 70.4092 +v -82.7922 -9.22672 55.3202 +v -91.9938 -9.22672 38.1053 +v -97.6601 -9.22672 19.426 +v -99.5734 -9.22672 0.000228697 +v -97.6602 -9.22672 -19.4256 +v -91.9939 -9.22672 -38.1049 +v -82.7924 -9.22672 -55.3198 +v -70.4092 -9.22672 -70.4088 +v -55.3203 -9.22672 -82.7921 +v -38.1054 -9.22672 -91.9937 +v -19.4261 -9.22672 -97.6601 +v -0.000331175 -9.22672 -99.5734 +v 19.4254 -9.22672 -97.6602 +v 38.1048 -9.22672 -91.994 +v 55.3197 -9.22672 -82.7925 +v 70.4088 -9.22672 -70.4093 +v 82.792 -9.22672 -55.3204 +v 91.9937 -9.22672 -38.1055 +v 97.6601 -9.22672 -19.4263 +v 96.1826 -27.3662 5.88009e-39 +v 94.3345 -27.3662 18.7643 +v 88.8611 -27.3662 36.8075 +v 79.9729 -27.3662 53.4362 +v 68.0114 -27.3662 68.0113 +v 53.4362 -27.3662 79.9729 +v 36.8076 -27.3662 88.8611 +v 18.7644 -27.3662 94.3345 +v 0.000110454 -27.3662 96.1826 +v -18.7642 -27.3662 94.3345 +v -36.8074 -27.3662 88.8612 +v -53.4361 -27.3662 79.973 +v -68.0113 -27.3662 68.0115 +v -79.9728 -27.3662 53.4363 +v -88.8611 -27.3662 36.8077 +v -94.3344 -27.3662 18.7645 +v -96.1826 -27.3662 0.000220909 +v -94.3345 -27.3662 -18.7641 +v -88.8612 -27.3662 -36.8073 +v -79.9731 -27.3662 -53.436 +v -68.0116 -27.3662 -68.0112 +v -53.4364 -27.3662 -79.9727 +v -36.8078 -27.3662 -88.861 +v -18.7646 -27.3662 -94.3344 +v -0.000319897 -27.3662 -96.1826 +v 18.7639 -27.3662 -94.3345 +v 36.8072 -27.3662 -88.8613 +v 53.4359 -27.3662 -79.9731 +v 68.0111 -27.3662 -68.0116 +v 79.9727 -27.3662 -53.4365 +v 88.861 -27.3662 -36.8079 +v 94.3344 -27.3662 -18.7647 +v 89.5164 -44.5737 5.88009e-39 +v 87.7964 -44.5737 17.4638 +v 82.7024 -44.5737 34.2564 +v 74.4302 -44.5737 49.7326 +v 63.2977 -44.5737 63.2976 +v 49.7327 -44.5737 74.4301 +v 34.2565 -44.5737 82.7023 +v 17.4639 -44.5737 87.7963 +v 0.000102799 -44.5737 89.5164 +v -17.4637 -44.5737 87.7964 +v -34.2563 -44.5737 82.7024 +v -49.7325 -44.5737 74.4302 +v -63.2975 -44.5737 63.2978 +v -74.4301 -44.5737 49.7328 +v -82.7023 -44.5737 34.2566 +v -87.7963 -44.5737 17.464 +v -89.5164 -44.5737 0.000205598 +v -87.7964 -44.5737 -17.4636 +v -82.7025 -44.5737 -34.2562 +v -74.4303 -44.5737 -49.7324 +v -63.2978 -44.5737 -63.2975 +v -49.7329 -44.5737 -74.43 +v -34.2567 -44.5737 -82.7023 +v -17.4641 -44.5737 -87.7963 +v -0.000297726 -44.5737 -89.5164 +v 17.4635 -44.5737 -87.7964 +v 34.2561 -44.5737 -82.7025 +v 49.7323 -44.5737 -74.4304 +v 63.2974 -44.5737 -63.2979 +v 74.4299 -44.5737 -49.733 +v 82.7022 -44.5737 -34.2568 +v 87.7963 -44.5737 -17.4642 +v 79.8018 -60.2633 5.88009e-39 +v 78.2684 -60.2633 15.5686 +v 73.7273 -60.2633 30.5388 +v 66.3528 -60.2633 44.3355 +v 56.4284 -60.2633 56.4284 +v 44.3356 -60.2633 66.3528 +v 30.5389 -60.2633 73.7272 +v 15.5686 -60.2633 78.2684 +v 9.16429e-05 -60.2633 79.8018 +v -15.5685 -60.2633 78.2685 +v -30.5387 -60.2633 73.7273 +v -44.3354 -60.2633 66.3529 +v -56.4283 -60.2633 56.4285 +v -66.3527 -60.2633 44.3356 +v -73.7272 -60.2633 30.539 +v -78.2684 -60.2633 15.5687 +v -79.8018 -60.2633 0.000183286 +v -78.2685 -60.2633 -15.5684 +v -73.7273 -60.2633 -30.5386 +v -66.3529 -60.2633 -44.3353 +v -56.4286 -60.2633 -56.4282 +v -44.3357 -60.2633 -66.3527 +v -30.5391 -60.2633 -73.7272 +v -15.5688 -60.2633 -78.2684 +v -0.000265416 -60.2633 -79.8018 +v 15.5683 -60.2633 -78.2685 +v 30.5386 -60.2633 -73.7274 +v 44.3352 -60.2633 -66.353 +v 56.4282 -60.2633 -56.4286 +v 66.3526 -60.2633 -44.3358 +v 73.7271 -60.2633 -30.5391 +v 78.2684 -60.2633 -15.5689 +v 67.3697 -73.9008 5.88009e-39 +v 66.0752 -73.9008 13.1432 +v 62.2415 -73.9008 25.7812 +v 56.0159 -73.9008 37.4286 +v 47.6376 -73.9008 47.6375 +v 37.4286 -73.9008 56.0158 +v 25.7813 -73.9008 62.2415 +v 13.1432 -73.9008 66.0752 +v 7.73661e-05 -73.9008 67.3697 +v -13.1431 -73.9008 66.0752 +v -25.7812 -73.9008 62.2415 +v -37.4285 -73.9008 56.0159 +v -47.6375 -73.9008 47.6376 +v -56.0158 -73.9008 37.4287 +v -62.2414 -73.9008 25.7814 +v -66.0752 -73.9008 13.1433 +v -67.3697 -73.9008 0.000154732 +v -66.0752 -73.9008 -13.143 +v -62.2416 -73.9008 -25.7811 +v -56.016 -73.9008 -37.4284 +v -47.6377 -73.9008 -47.6374 +v -37.4288 -73.9008 -56.0157 +v -25.7815 -73.9008 -62.2414 +v -13.1434 -73.9008 -66.0752 +v -0.000224067 -73.9008 -67.3697 +v 13.1429 -73.9008 -66.0753 +v 25.781 -73.9008 -62.2416 +v 37.4284 -73.9008 -56.016 +v 47.6374 -73.9008 -47.6378 +v 56.0157 -73.9008 -37.4288 +v 62.2414 -73.9008 -25.7815 +v 66.0751 -73.9008 -13.1435 +v 52.6434 -85.0216 5.88009e-39 +v 51.6318 -85.0216 10.2702 +v 48.6361 -85.0216 20.1457 +v 43.7714 -85.0216 29.2471 +v 37.2245 -85.0216 37.2245 +v 29.2471 -85.0216 43.7713 +v 20.1458 -85.0216 48.6361 +v 10.2703 -85.0216 51.6318 +v 6.04547e-05 -85.0216 52.6434 +v -10.2701 -85.0216 51.6319 +v -20.1457 -85.0216 48.6362 +v -29.247 -85.0216 43.7714 +v -37.2244 -85.0216 37.2245 +v -43.7713 -85.0216 29.2472 +v -48.6361 -85.0216 20.1458 +v -51.6318 -85.0216 10.2703 +v -52.6434 -85.0216 0.000120909 +v -51.6319 -85.0216 -10.2701 +v -48.6362 -85.0216 -20.1456 +v -43.7714 -85.0216 -29.247 +v -37.2246 -85.0216 -37.2244 +v -29.2472 -85.0216 -43.7713 +v -20.1459 -85.0216 -48.6361 +v -10.2704 -85.0216 -51.6318 +v -0.000175088 -85.0216 -52.6434 +v 10.27 -85.0216 -51.6319 +v 20.1456 -85.0216 -48.6362 +v 29.2469 -85.0216 -43.7715 +v 37.2243 -85.0216 -37.2246 +v 43.7712 -85.0216 -29.2473 +v 48.6361 -85.0216 -20.146 +v 51.6318 -85.0216 -10.2705 +v 36.1244 -93.2471 5.88009e-39 +v 35.4302 -93.2471 7.04751 +v 33.3746 -93.2471 13.8242 +v 30.0363 -93.2471 20.0696 +v 25.5438 -93.2471 25.5438 +v 20.0696 -93.2471 30.0363 +v 13.8242 -93.2471 33.3745 +v 7.04755 -93.2471 35.4302 +v 4.14845e-05 -93.2471 36.1244 +v -7.04747 -93.2471 35.4302 +v -13.8241 -93.2471 33.3746 +v -20.0696 -93.2471 30.0363 +v -25.5437 -93.2471 25.5438 +v -30.0363 -93.2471 20.0697 +v -33.3745 -93.2471 13.8243 +v -35.4302 -93.2471 7.04759 +v -36.1244 -93.2471 8.29691e-05 +v -35.4303 -93.2471 -7.04743 +v -33.3746 -93.2471 -13.8241 +v -30.0364 -93.2471 -20.0695 +v -25.5439 -93.2471 -25.5437 +v -20.0697 -93.2471 -30.0362 +v -13.8243 -93.2471 -33.3745 +v -7.04763 -93.2471 -35.4302 +v -0.000120147 -93.2471 -36.1244 +v 7.04738 -93.2471 -35.4303 +v 13.8241 -93.2471 -33.3746 +v 20.0695 -93.2471 -30.0364 +v 25.5437 -93.2471 -25.5439 +v 30.0362 -93.2471 -20.0697 +v 33.3745 -93.2471 -13.8243 +v 35.4302 -93.2471 -7.04768 +v 18.3752 -98.2973 5.88009e-39 +v 18.0221 -98.2973 3.58481 +v 16.9764 -98.2973 7.03187 +v 15.2784 -98.2973 10.2087 +v 12.9932 -98.2973 12.9932 +v 10.2087 -98.2973 15.2784 +v 7.03189 -98.2973 16.9764 +v 3.58483 -98.2973 18.0221 +v 2.11017e-05 -98.2973 18.3752 +v -3.58479 -98.2973 18.0221 +v -7.03185 -98.2973 16.9764 +v -10.2087 -98.2973 15.2784 +v -12.9932 -98.2973 12.9932 +v -15.2784 -98.2973 10.2087 +v -16.9764 -98.2973 7.0319 +v -18.0221 -98.2973 3.58486 +v -18.3752 -98.2973 4.22034e-05 +v -18.0221 -98.2973 -3.58477 +v -16.9765 -98.2973 -7.03183 +v -15.2784 -98.2973 -10.2087 +v -12.9932 -98.2973 -12.9932 +v -10.2087 -98.2973 -15.2784 +v -7.03192 -98.2973 -16.9764 +v -3.58488 -98.2973 -18.0221 +v -6.11146e-05 -98.2973 -18.3752 +v 3.58475 -98.2973 -18.0221 +v 7.03181 -98.2973 -16.9765 +v 10.2086 -98.2973 -15.2784 +v 12.9932 -98.2973 -12.9933 +v 15.2783 -98.2973 -10.2088 +v 16.9764 -98.2973 -7.03194 +v 18.0221 -98.2973 -3.5849 +f 3 4 36 35 +f 4 5 37 36 +f 5 6 38 37 +f 6 7 39 38 +f 7 8 40 39 +f 8 9 41 40 +f 9 10 42 41 +f 10 11 43 42 +f 11 12 44 43 +f 12 13 45 44 +f 13 14 46 45 +f 14 15 47 46 +f 15 16 48 47 +f 16 17 49 48 +f 17 18 50 49 +f 18 19 51 50 +f 19 20 52 51 +f 20 21 53 52 +f 21 22 54 53 +f 22 23 55 54 +f 23 24 56 55 +f 24 25 57 56 +f 25 26 58 57 +f 26 27 59 58 +f 27 28 60 59 +f 28 29 61 60 +f 29 30 62 61 +f 30 31 63 62 +f 31 32 64 63 +f 32 33 65 64 +f 33 34 66 65 +f 34 3 35 66 +f 35 36 68 67 +f 36 37 69 68 +f 37 38 70 69 +f 38 39 71 70 +f 39 40 72 71 +f 40 41 73 72 +f 41 42 74 73 +f 42 43 75 74 +f 43 44 76 75 +f 44 45 77 76 +f 45 46 78 77 +f 46 47 79 78 +f 47 48 80 79 +f 48 49 81 80 +f 49 50 82 81 +f 50 51 83 82 +f 51 52 84 83 +f 52 53 85 84 +f 53 54 86 85 +f 54 55 87 86 +f 55 56 88 87 +f 56 57 89 88 +f 57 58 90 89 +f 58 59 91 90 +f 59 60 92 91 +f 60 61 93 92 +f 61 62 94 93 +f 62 63 95 94 +f 63 64 96 95 +f 64 65 97 96 +f 65 66 98 97 +f 66 35 67 98 +f 67 68 100 99 +f 68 69 101 100 +f 69 70 102 101 +f 70 71 103 102 +f 71 72 104 103 +f 72 73 105 104 +f 73 74 106 105 +f 74 75 107 106 +f 75 76 108 107 +f 76 77 109 108 +f 77 78 110 109 +f 78 79 111 110 +f 79 80 112 111 +f 80 81 113 112 +f 81 82 114 113 +f 82 83 115 114 +f 83 84 116 115 +f 84 85 117 116 +f 85 86 118 117 +f 86 87 119 118 +f 87 88 120 119 +f 88 89 121 120 +f 89 90 122 121 +f 90 91 123 122 +f 91 92 124 123 +f 92 93 125 124 +f 93 94 126 125 +f 94 95 127 126 +f 95 96 128 127 +f 96 97 129 128 +f 97 98 130 129 +f 98 67 99 130 +f 99 100 132 131 +f 100 101 133 132 +f 101 102 134 133 +f 102 103 135 134 +f 103 104 136 135 +f 104 105 137 136 +f 105 106 138 137 +f 106 107 139 138 +f 107 108 140 139 +f 108 109 141 140 +f 109 110 142 141 +f 110 111 143 142 +f 111 112 144 143 +f 112 113 145 144 +f 113 114 146 145 +f 114 115 147 146 +f 115 116 148 147 +f 116 117 149 148 +f 117 118 150 149 +f 118 119 151 150 +f 119 120 152 151 +f 120 121 153 152 +f 121 122 154 153 +f 122 123 155 154 +f 123 124 156 155 +f 124 125 157 156 +f 125 126 158 157 +f 126 127 159 158 +f 127 128 160 159 +f 128 129 161 160 +f 129 130 162 161 +f 130 99 131 162 +f 131 132 164 163 +f 132 133 165 164 +f 133 134 166 165 +f 134 135 167 166 +f 135 136 168 167 +f 136 137 169 168 +f 137 138 170 169 +f 138 139 171 170 +f 139 140 172 171 +f 140 141 173 172 +f 141 142 174 173 +f 142 143 175 174 +f 143 144 176 175 +f 144 145 177 176 +f 145 146 178 177 +f 146 147 179 178 +f 147 148 180 179 +f 148 149 181 180 +f 149 150 182 181 +f 150 151 183 182 +f 151 152 184 183 +f 152 153 185 184 +f 153 154 186 185 +f 154 155 187 186 +f 155 156 188 187 +f 156 157 189 188 +f 157 158 190 189 +f 158 159 191 190 +f 159 160 192 191 +f 160 161 193 192 +f 161 162 194 193 +f 162 131 163 194 +f 163 164 196 195 +f 164 165 197 196 +f 165 166 198 197 +f 166 167 199 198 +f 167 168 200 199 +f 168 169 201 200 +f 169 170 202 201 +f 170 171 203 202 +f 171 172 204 203 +f 172 173 205 204 +f 173 174 206 205 +f 174 175 207 206 +f 175 176 208 207 +f 176 177 209 208 +f 177 178 210 209 +f 178 179 211 210 +f 179 180 212 211 +f 180 181 213 212 +f 181 182 214 213 +f 182 183 215 214 +f 183 184 216 215 +f 184 185 217 216 +f 185 186 218 217 +f 186 187 219 218 +f 187 188 220 219 +f 188 189 221 220 +f 189 190 222 221 +f 190 191 223 222 +f 191 192 224 223 +f 192 193 225 224 +f 193 194 226 225 +f 194 163 195 226 +f 195 196 228 227 +f 196 197 229 228 +f 197 198 230 229 +f 198 199 231 230 +f 199 200 232 231 +f 200 201 233 232 +f 201 202 234 233 +f 202 203 235 234 +f 203 204 236 235 +f 204 205 237 236 +f 205 206 238 237 +f 206 207 239 238 +f 207 208 240 239 +f 208 209 241 240 +f 209 210 242 241 +f 210 211 243 242 +f 211 212 244 243 +f 212 213 245 244 +f 213 214 246 245 +f 214 215 247 246 +f 215 216 248 247 +f 216 217 249 248 +f 217 218 250 249 +f 218 219 251 250 +f 219 220 252 251 +f 220 221 253 252 +f 221 222 254 253 +f 222 223 255 254 +f 223 224 256 255 +f 224 225 257 256 +f 225 226 258 257 +f 226 195 227 258 +f 227 228 260 259 +f 228 229 261 260 +f 229 230 262 261 +f 230 231 263 262 +f 231 232 264 263 +f 232 233 265 264 +f 233 234 266 265 +f 234 235 267 266 +f 235 236 268 267 +f 236 237 269 268 +f 237 238 270 269 +f 238 239 271 270 +f 239 240 272 271 +f 240 241 273 272 +f 241 242 274 273 +f 242 243 275 274 +f 243 244 276 275 +f 244 245 277 276 +f 245 246 278 277 +f 246 247 279 278 +f 247 248 280 279 +f 248 249 281 280 +f 249 250 282 281 +f 250 251 283 282 +f 251 252 284 283 +f 252 253 285 284 +f 253 254 286 285 +f 254 255 287 286 +f 255 256 288 287 +f 256 257 289 288 +f 257 258 290 289 +f 258 227 259 290 +f 259 260 292 291 +f 260 261 293 292 +f 261 262 294 293 +f 262 263 295 294 +f 263 264 296 295 +f 264 265 297 296 +f 265 266 298 297 +f 266 267 299 298 +f 267 268 300 299 +f 268 269 301 300 +f 269 270 302 301 +f 270 271 303 302 +f 271 272 304 303 +f 272 273 305 304 +f 273 274 306 305 +f 274 275 307 306 +f 275 276 308 307 +f 276 277 309 308 +f 277 278 310 309 +f 278 279 311 310 +f 279 280 312 311 +f 280 281 313 312 +f 281 282 314 313 +f 282 283 315 314 +f 283 284 316 315 +f 284 285 317 316 +f 285 286 318 317 +f 286 287 319 318 +f 287 288 320 319 +f 288 289 321 320 +f 289 290 322 321 +f 290 259 291 322 +f 291 292 324 323 +f 292 293 325 324 +f 293 294 326 325 +f 294 295 327 326 +f 295 296 328 327 +f 296 297 329 328 +f 297 298 330 329 +f 298 299 331 330 +f 299 300 332 331 +f 300 301 333 332 +f 301 302 334 333 +f 302 303 335 334 +f 303 304 336 335 +f 304 305 337 336 +f 305 306 338 337 +f 306 307 339 338 +f 307 308 340 339 +f 308 309 341 340 +f 309 310 342 341 +f 310 311 343 342 +f 311 312 344 343 +f 312 313 345 344 +f 313 314 346 345 +f 314 315 347 346 +f 315 316 348 347 +f 316 317 349 348 +f 317 318 350 349 +f 318 319 351 350 +f 319 320 352 351 +f 320 321 353 352 +f 321 322 354 353 +f 322 291 323 354 +f 323 324 356 355 +f 324 325 357 356 +f 325 326 358 357 +f 326 327 359 358 +f 327 328 360 359 +f 328 329 361 360 +f 329 330 362 361 +f 330 331 363 362 +f 331 332 364 363 +f 332 333 365 364 +f 333 334 366 365 +f 334 335 367 366 +f 335 336 368 367 +f 336 337 369 368 +f 337 338 370 369 +f 338 339 371 370 +f 339 340 372 371 +f 340 341 373 372 +f 341 342 374 373 +f 342 343 375 374 +f 343 344 376 375 +f 344 345 377 376 +f 345 346 378 377 +f 346 347 379 378 +f 347 348 380 379 +f 348 349 381 380 +f 349 350 382 381 +f 350 351 383 382 +f 351 352 384 383 +f 352 353 385 384 +f 353 354 386 385 +f 354 323 355 386 +f 355 356 388 387 +f 356 357 389 388 +f 357 358 390 389 +f 358 359 391 390 +f 359 360 392 391 +f 360 361 393 392 +f 361 362 394 393 +f 362 363 395 394 +f 363 364 396 395 +f 364 365 397 396 +f 365 366 398 397 +f 366 367 399 398 +f 367 368 400 399 +f 368 369 401 400 +f 369 370 402 401 +f 370 371 403 402 +f 371 372 404 403 +f 372 373 405 404 +f 373 374 406 405 +f 374 375 407 406 +f 375 376 408 407 +f 376 377 409 408 +f 377 378 410 409 +f 378 379 411 410 +f 379 380 412 411 +f 380 381 413 412 +f 381 382 414 413 +f 382 383 415 414 +f 383 384 416 415 +f 384 385 417 416 +f 385 386 418 417 +f 386 355 387 418 +f 387 388 420 419 +f 388 389 421 420 +f 389 390 422 421 +f 390 391 423 422 +f 391 392 424 423 +f 392 393 425 424 +f 393 394 426 425 +f 394 395 427 426 +f 395 396 428 427 +f 396 397 429 428 +f 397 398 430 429 +f 398 399 431 430 +f 399 400 432 431 +f 400 401 433 432 +f 401 402 434 433 +f 402 403 435 434 +f 403 404 436 435 +f 404 405 437 436 +f 405 406 438 437 +f 406 407 439 438 +f 407 408 440 439 +f 408 409 441 440 +f 409 410 442 441 +f 410 411 443 442 +f 411 412 444 443 +f 412 413 445 444 +f 413 414 446 445 +f 414 415 447 446 +f 415 416 448 447 +f 416 417 449 448 +f 417 418 450 449 +f 418 387 419 450 +f 419 420 452 451 +f 420 421 453 452 +f 421 422 454 453 +f 422 423 455 454 +f 423 424 456 455 +f 424 425 457 456 +f 425 426 458 457 +f 426 427 459 458 +f 427 428 460 459 +f 428 429 461 460 +f 429 430 462 461 +f 430 431 463 462 +f 431 432 464 463 +f 432 433 465 464 +f 433 434 466 465 +f 434 435 467 466 +f 435 436 468 467 +f 436 437 469 468 +f 437 438 470 469 +f 438 439 471 470 +f 439 440 472 471 +f 440 441 473 472 +f 441 442 474 473 +f 442 443 475 474 +f 443 444 476 475 +f 444 445 477 476 +f 445 446 478 477 +f 446 447 479 478 +f 447 448 480 479 +f 448 449 481 480 +f 449 450 482 481 +f 450 419 451 482 +f 451 452 484 483 +f 452 453 485 484 +f 453 454 486 485 +f 454 455 487 486 +f 455 456 488 487 +f 456 457 489 488 +f 457 458 490 489 +f 458 459 491 490 +f 459 460 492 491 +f 460 461 493 492 +f 461 462 494 493 +f 462 463 495 494 +f 463 464 496 495 +f 464 465 497 496 +f 465 466 498 497 +f 466 467 499 498 +f 467 468 500 499 +f 468 469 501 500 +f 469 470 502 501 +f 470 471 503 502 +f 471 472 504 503 +f 472 473 505 504 +f 473 474 506 505 +f 474 475 507 506 +f 475 476 508 507 +f 476 477 509 508 +f 477 478 510 509 +f 478 479 511 510 +f 479 480 512 511 +f 480 481 513 512 +f 481 482 514 513 +f 482 451 483 514 +f 1 4 3 +f 2 483 484 +f 1 5 4 +f 2 484 485 +f 1 6 5 +f 2 485 486 +f 1 7 6 +f 2 486 487 +f 1 8 7 +f 2 487 488 +f 1 9 8 +f 2 488 489 +f 1 10 9 +f 2 489 490 +f 1 11 10 +f 2 490 491 +f 1 12 11 +f 2 491 492 +f 1 13 12 +f 2 492 493 +f 1 14 13 +f 2 493 494 +f 1 15 14 +f 2 494 495 +f 1 16 15 +f 2 495 496 +f 1 17 16 +f 2 496 497 +f 1 18 17 +f 2 497 498 +f 1 19 18 +f 2 498 499 +f 1 20 19 +f 2 499 500 +f 1 21 20 +f 2 500 501 +f 1 22 21 +f 2 501 502 +f 1 23 22 +f 2 502 503 +f 1 24 23 +f 2 503 504 +f 1 25 24 +f 2 504 505 +f 1 26 25 +f 2 505 506 +f 1 27 26 +f 2 506 507 +f 1 28 27 +f 2 507 508 +f 1 29 28 +f 2 508 509 +f 1 30 29 +f 2 509 510 +f 1 31 30 +f 2 510 511 +f 1 32 31 +f 2 511 512 +f 1 33 32 +f 2 512 513 +f 1 34 33 +f 2 513 514 +f 1 3 34 +f 2 514 483 diff --git a/data/spheres/9.obj b/data/spheres/9.obj new file mode 100644 index 0000000..6057062 --- /dev/null +++ b/data/spheres/9.obj @@ -0,0 +1,1334 @@ +v 5.88231e-39 100 5.88009e-39 +v 5.88231e-39 -100 5.88009e-39 +v 16.4594 98.6361 5.88009e-39 +v 16.2094 98.6361 2.85815 +v 15.4668 98.6361 5.62946 +v 14.2543 98.6361 8.22972 +v 12.6087 98.6361 10.5799 +v 10.5799 98.6361 12.6087 +v 8.22973 98.6361 14.2543 +v 5.62948 98.6361 15.4668 +v 2.85817 98.6361 16.2094 +v 1.89017e-05 98.6361 16.4594 +v -2.85813 98.6361 16.2094 +v -5.62944 98.6361 15.4668 +v -8.2297 98.6361 14.2543 +v -10.5799 98.6361 12.6087 +v -12.6087 98.6361 10.58 +v -14.2543 98.6361 8.22975 +v -15.4668 98.6361 5.62949 +v -16.2094 98.6361 2.85819 +v -16.4594 98.6361 3.78034e-05 +v -16.2094 98.6361 -2.85812 +v -15.4668 98.6361 -5.62942 +v -14.2543 98.6361 -8.22969 +v -12.6087 98.6361 -10.5799 +v -10.58 98.6361 -12.6086 +v -8.22976 98.6361 -14.2543 +v -5.62951 98.6361 -15.4668 +v -2.85821 98.6361 -16.2094 +v -5.47431e-05 98.6361 -16.4594 +v 2.8581 98.6361 -16.2094 +v 5.62941 98.6361 -15.4668 +v 8.22967 98.6361 -14.2543 +v 10.5799 98.6361 -12.6087 +v 12.6086 98.6361 -10.58 +v 14.2543 98.6361 -8.22978 +v 15.4668 98.6361 -5.62953 +v 16.2094 98.6361 -2.85823 +v 32.4699 94.5817 5.88009e-39 +v 31.9766 94.5817 5.63834 +v 30.5118 94.5817 11.1054 +v 28.1198 94.5817 16.235 +v 24.8734 94.5817 20.8713 +v 20.8713 94.5817 24.8734 +v 16.235 94.5817 28.1198 +v 11.1054 94.5817 30.5117 +v 5.63838 94.5817 31.9766 +v 3.72879e-05 94.5817 32.4699 +v -5.6383 94.5817 31.9766 +v -11.1053 94.5817 30.5118 +v -16.2349 94.5817 28.1198 +v -20.8712 94.5817 24.8734 +v -24.8734 94.5817 20.8713 +v -28.1197 94.5817 16.235 +v -30.5117 94.5817 11.1054 +v -31.9766 94.5817 5.63841 +v -32.4699 94.5817 7.45757e-05 +v -31.9766 94.5817 -5.63827 +v -30.5118 94.5817 -11.1053 +v -28.1198 94.5817 -16.2349 +v -24.8735 94.5817 -20.8712 +v -20.8713 94.5817 -24.8733 +v -16.235 94.5817 -28.1197 +v -11.1055 94.5817 -30.5117 +v -5.63845 94.5817 -31.9766 +v -0.000107993 94.5817 -32.4699 +v 5.63824 94.5817 -31.9767 +v 11.1053 94.5817 -30.5118 +v 16.2349 94.5817 -28.1198 +v 20.8712 94.5817 -24.8735 +v 24.8733 94.5817 -20.8714 +v 28.1197 94.5817 -16.2351 +v 30.5117 94.5817 -11.1055 +v 31.9766 94.5817 -5.63849 +v 47.5947 87.9474 5.88009e-39 +v 46.8716 87.9474 8.26473 +v 44.7244 87.9474 16.2783 +v 41.2182 87.9474 23.7973 +v 36.4597 87.9474 30.5933 +v 30.5933 87.9474 36.4596 +v 23.7974 87.9474 41.2182 +v 16.2784 87.9474 44.7244 +v 8.26478 87.9474 46.8716 +v 5.46569e-05 87.9474 47.5947 +v -8.26467 87.9474 46.8716 +v -16.2783 87.9474 44.7244 +v -23.7973 87.9474 41.2183 +v -30.5932 87.9474 36.4597 +v -36.4596 87.9474 30.5933 +v -41.2182 87.9474 23.7974 +v -44.7244 87.9474 16.2784 +v -46.8716 87.9474 8.26483 +v -47.5947 87.9474 0.000109314 +v -46.8717 87.9474 -8.26462 +v -44.7244 87.9474 -16.2782 +v -41.2183 87.9474 -23.7972 +v -36.4597 87.9474 -30.5932 +v -30.5934 87.9474 -36.4596 +v -23.7975 87.9474 -41.2182 +v -16.2785 87.9474 -44.7243 +v -8.26489 87.9474 -46.8716 +v -0.000158297 87.9474 -47.5947 +v 8.26458 87.9474 -46.8717 +v 16.2782 87.9474 -44.7244 +v 23.7972 87.9474 -41.2183 +v 30.5931 87.9474 -36.4598 +v 36.4595 87.9474 -30.5934 +v 41.2181 87.9474 -23.7975 +v 44.7243 87.9474 -16.2785 +v 46.8716 87.9474 -8.26495 +v 61.4212 78.9141 5.88009e-39 +v 60.4881 78.9141 10.6657 +v 57.7171 78.9141 21.0073 +v 53.1924 78.9141 30.7106 +v 47.0514 78.9141 39.4808 +v 39.4808 78.9141 47.0514 +v 30.7107 78.9141 53.1923 +v 21.0073 78.9141 57.7171 +v 10.6657 78.9141 60.4881 +v 7.0535e-05 78.9141 61.4212 +v -10.6656 78.9141 60.4881 +v -21.0072 78.9141 57.7171 +v -30.7105 78.9141 53.1924 +v -39.4807 78.9141 47.0515 +v -47.0513 78.9141 39.4809 +v -53.1923 78.9141 30.7107 +v -57.717 78.9141 21.0074 +v -60.4881 78.9141 10.6658 +v -61.4212 78.9141 0.00014107 +v -60.4881 78.9141 -10.6655 +v -57.7171 78.9141 -21.0071 +v -53.1924 78.9141 -30.7105 +v -47.0515 78.9141 -39.4807 +v -39.4809 78.9141 -47.0513 +v -30.7108 78.9141 -53.1923 +v -21.0075 78.9141 -57.717 +v -10.6659 78.9141 -60.4881 +v -0.000204283 78.9141 -61.4212 +v 10.6655 78.9141 -60.4881 +v 21.0071 78.9141 -57.7172 +v 30.7104 78.9141 -53.1925 +v 39.4806 78.9141 -47.0516 +v 47.0512 78.9141 -39.481 +v 53.1922 78.9141 -30.7108 +v 57.717 78.9141 -21.0075 +v 60.4881 78.9141 -10.666 +v 73.5723 67.7282 5.88009e-39 +v 72.4546 67.7282 12.7757 +v 69.1354 67.7282 25.1632 +v 63.7155 67.7282 36.7862 +v 56.3597 67.7282 47.2914 +v 47.2914 67.7282 56.3597 +v 36.7862 67.7282 63.7155 +v 25.1633 67.7282 69.1354 +v 12.7758 67.7282 72.4546 +v 8.44891e-05 67.7282 73.5723 +v -12.7756 67.7282 72.4546 +v -25.1631 67.7282 69.1354 +v -36.7861 67.7282 63.7156 +v -47.2913 67.7282 56.3598 +v -56.3596 67.7282 47.2915 +v -63.7155 67.7282 36.7863 +v -69.1353 67.7282 25.1634 +v -72.4546 67.7282 12.7759 +v -73.5723 67.7282 0.000168978 +v -72.4547 67.7282 -12.7755 +v -69.1355 67.7282 -25.163 +v -63.7156 67.7282 -36.786 +v -56.3598 67.7282 -47.2912 +v -47.2915 67.7282 -56.3596 +v -36.7864 67.7282 -63.7154 +v -25.1635 67.7282 -69.1353 +v -12.7759 67.7282 -72.4546 +v -0.000244697 67.7282 -73.5723 +v 12.7755 67.7282 -72.4547 +v 25.163 67.7282 -69.1355 +v 36.7859 67.7282 -63.7157 +v 47.2912 67.7282 -56.3599 +v 56.3595 67.7282 -47.2916 +v 63.7154 67.7282 -36.7864 +v 69.1353 67.7282 -25.1635 +v 72.4546 67.7282 -12.776 +v 83.7166 54.6949 5.88009e-39 +v 82.4448 54.6949 14.5372 +v 78.6679 54.6949 28.6327 +v 72.5007 54.6949 41.8583 +v 64.1307 54.6949 53.812 +v 53.812 54.6949 64.1306 +v 41.8584 54.6949 72.5007 +v 28.6328 54.6949 78.6679 +v 14.5373 54.6949 82.4447 +v 9.61386e-05 54.6949 83.7166 +v -14.5371 54.6949 82.4448 +v -28.6327 54.6949 78.6679 +v -41.8582 54.6949 72.5008 +v -53.8119 54.6949 64.1307 +v -64.1306 54.6949 53.8121 +v -72.5006 54.6949 41.8584 +v -78.6678 54.6949 28.6329 +v -82.4447 54.6949 14.5374 +v -83.7166 54.6949 0.000192277 +v -82.4448 54.6949 -14.537 +v -78.668 54.6949 -28.6326 +v -72.5008 54.6949 -41.8581 +v -64.1308 54.6949 -53.8118 +v -53.8122 54.6949 -64.1305 +v -41.8585 54.6949 -72.5006 +v -28.633 54.6949 -78.6678 +v -14.5375 54.6949 -82.4447 +v -0.000278436 54.6949 -83.7166 +v 14.537 54.6949 -82.4448 +v 28.6325 54.6949 -78.668 +v 41.858 54.6949 -72.5009 +v 53.8117 54.6949 -64.1309 +v 64.1304 54.6949 -53.8123 +v 72.5005 54.6949 -41.8586 +v 78.6678 54.6949 -28.6331 +v 82.4447 54.6949 -14.5376 +v 91.5773 40.1696 5.88009e-39 +v 90.186 40.1696 15.9022 +v 86.0545 40.1696 31.3213 +v 79.3083 40.1696 45.7886 +v 70.1523 40.1696 58.8647 +v 58.8648 40.1696 70.1522 +v 45.7887 40.1696 79.3082 +v 31.3214 40.1696 86.0545 +v 15.9023 40.1696 90.186 +v 0.000105166 40.1696 91.5773 +v -15.9021 40.1696 90.1861 +v -31.3212 40.1696 86.0546 +v -45.7885 40.1696 79.3083 +v -58.8646 40.1696 70.1524 +v -70.1522 40.1696 58.8649 +v -79.3082 40.1696 45.7888 +v -86.0545 40.1696 31.3215 +v -90.186 40.1696 15.9024 +v -91.5773 40.1696 0.000210331 +v -90.1861 40.1696 -15.902 +v -86.0546 40.1696 -31.3211 +v -79.3084 40.1696 -45.7884 +v -70.1524 40.1696 -58.8646 +v -58.8649 40.1696 -70.1521 +v -45.7889 40.1696 -79.3081 +v -31.3216 40.1696 -86.0544 +v -15.9025 40.1696 -90.186 +v -0.00030458 40.1696 -91.5773 +v 15.9019 40.1696 -90.1861 +v 31.321 40.1696 -86.0546 +v 45.7883 40.1696 -79.3084 +v 58.8645 40.1696 -70.1525 +v 70.152 40.1696 -58.865 +v 79.3081 40.1696 -45.789 +v 86.0544 40.1696 -31.3216 +v 90.186 40.1696 -15.9026 +v 96.94 24.5486 5.88009e-39 +v 95.4673 24.5486 16.8334 +v 91.0938 24.5486 33.1554 +v 83.9525 24.5486 48.47 +v 74.2604 24.5486 62.3118 +v 62.3119 24.5486 74.2603 +v 48.4701 24.5486 83.9525 +v 33.1555 24.5486 91.0938 +v 16.8335 24.5486 95.4672 +v 0.000111324 24.5486 96.94 +v -16.8333 24.5486 95.4673 +v -33.1553 24.5486 91.0938 +v -48.4699 24.5486 83.9526 +v -62.3117 24.5486 74.2605 +v -74.2602 24.5486 62.312 +v -83.9524 24.5486 48.4702 +v -91.0937 24.5486 33.1556 +v -95.4672 24.5486 16.8336 +v -96.94 24.5486 0.000222648 +v -95.4673 24.5486 -16.8332 +v -91.0939 24.5486 -33.1552 +v -83.9526 24.5486 -48.4698 +v -74.2605 24.5486 -62.3116 +v -62.312 24.5486 -74.2602 +v -48.4702 24.5486 -83.9524 +v -33.1557 24.5486 -91.0937 +v -16.8338 24.5486 -95.4672 +v -0.000322416 24.5486 -96.94 +v 16.8331 24.5486 -95.4673 +v 33.1551 24.5486 -91.0939 +v 48.4697 24.5486 -83.9527 +v 62.3115 24.5486 -74.2606 +v 74.2601 24.5486 -62.3121 +v 83.9523 24.5486 -48.4703 +v 91.0937 24.5486 -33.1558 +v 95.4672 24.5486 -16.8339 +v 99.6584 8.25804 5.88009e-39 +v 98.1444 8.25804 17.3055 +v 93.6483 8.25804 34.0852 +v 86.3068 8.25804 49.8292 +v 76.3428 8.25804 64.0592 +v 64.0593 8.25804 76.3428 +v 49.8293 8.25804 86.3067 +v 34.0853 8.25804 93.6483 +v 17.3056 8.25804 98.1444 +v 0.000114446 8.25804 99.6584 +v -17.3054 8.25804 98.1444 +v -34.0851 8.25804 93.6483 +v -49.8291 8.25804 86.3068 +v -64.0591 8.25804 76.3429 +v -76.3427 8.25804 64.0593 +v -86.3066 8.25804 49.8294 +v -93.6482 8.25804 34.0854 +v -98.1444 8.25804 17.3057 +v -99.6584 8.25804 0.000228892 +v -98.1444 8.25804 -17.3053 +v -93.6484 8.25804 -34.0849 +v -86.3069 8.25804 -49.829 +v -76.343 8.25804 -64.059 +v -64.0594 8.25804 -76.3426 +v -49.8295 8.25804 -86.3066 +v -34.0855 8.25804 -93.6482 +v -17.3058 8.25804 -98.1443 +v -0.000331458 8.25804 -99.6584 +v 17.3052 8.25804 -98.1445 +v 34.0849 8.25804 -93.6484 +v 49.8289 8.25804 -86.3069 +v 64.0589 8.25804 -76.343 +v 76.3425 8.25804 -64.0595 +v 86.3065 8.25804 -49.8296 +v 93.6482 8.25804 -34.0856 +v 98.1443 8.25804 -17.306 +v 99.6585 -8.25781 5.88009e-39 +v 98.1444 -8.25781 17.3055 +v 93.6483 -8.25781 34.0852 +v 86.3068 -8.25781 49.8292 +v 76.3428 -8.25781 64.0592 +v 64.0593 -8.25781 76.3428 +v 49.8293 -8.25781 86.3067 +v 34.0853 -8.25781 93.6483 +v 17.3056 -8.25781 98.1444 +v 0.000114446 -8.25781 99.6585 +v -17.3054 -8.25781 98.1444 +v -34.0851 -8.25781 93.6484 +v -49.8291 -8.25781 86.3068 +v -64.0591 -8.25781 76.3429 +v -76.3427 -8.25781 64.0594 +v -86.3067 -8.25781 49.8294 +v -93.6483 -8.25781 34.0854 +v -98.1444 -8.25781 17.3057 +v -99.6585 -8.25781 0.000228892 +v -98.1445 -8.25781 -17.3053 +v -93.6484 -8.25781 -34.085 +v -86.3069 -8.25781 -49.829 +v -76.343 -8.25781 -64.059 +v -64.0594 -8.25781 -76.3426 +v -49.8295 -8.25781 -86.3066 +v -34.0855 -8.25781 -93.6482 +v -17.3058 -8.25781 -98.1444 +v -0.000331458 -8.25781 -99.6585 +v 17.3052 -8.25781 -98.1445 +v 34.0849 -8.25781 -93.6484 +v 49.8289 -8.25781 -86.307 +v 64.0589 -8.25781 -76.3431 +v 76.3426 -8.25781 -64.0595 +v 86.3066 -8.25781 -49.8296 +v 93.6482 -8.25781 -34.0856 +v 98.1443 -8.25781 -17.306 +v 96.9401 -24.5484 5.88009e-39 +v 95.4673 -24.5484 16.8335 +v 91.0939 -24.5484 33.1554 +v 83.9526 -24.5484 48.47 +v 74.2604 -24.5484 62.3118 +v 62.3119 -24.5484 74.2604 +v 48.4701 -24.5484 83.9525 +v 33.1555 -24.5484 91.0938 +v 16.8336 -24.5484 95.4673 +v 0.000111324 -24.5484 96.9401 +v -16.8333 -24.5484 95.4673 +v -33.1553 -24.5484 91.0939 +v -48.4699 -24.5484 83.9526 +v -62.3117 -24.5484 74.2605 +v -74.2603 -24.5484 62.312 +v -83.9525 -24.5484 48.4702 +v -91.0938 -24.5484 33.1556 +v -95.4673 -24.5484 16.8337 +v -96.9401 -24.5484 0.000222648 +v -95.4674 -24.5484 -16.8332 +v -91.0939 -24.5484 -33.1552 +v -83.9527 -24.5484 -48.4698 +v -74.2606 -24.5484 -62.3117 +v -62.3121 -24.5484 -74.2602 +v -48.4703 -24.5484 -83.9524 +v -33.1558 -24.5484 -91.0938 +v -16.8338 -24.5484 -95.4673 +v -0.000322416 -24.5484 -96.9401 +v 16.8331 -24.5484 -95.4674 +v 33.1551 -24.5484 -91.094 +v 48.4697 -24.5484 -83.9527 +v 62.3116 -24.5484 -74.2606 +v 74.2601 -24.5484 -62.3122 +v 83.9524 -24.5484 -48.4704 +v 91.0937 -24.5484 -33.1558 +v 95.4672 -24.5484 -16.8339 +v 91.5774 -40.1694 5.88009e-39 +v 90.1861 -40.1694 15.9022 +v 86.0546 -40.1694 31.3213 +v 79.3084 -40.1694 45.7887 +v 70.1524 -40.1694 58.8648 +v 58.8649 -40.1694 70.1523 +v 45.7887 -40.1694 79.3083 +v 31.3214 -40.1694 86.0546 +v 15.9023 -40.1694 90.1861 +v 0.000105166 -40.1694 91.5774 +v -15.9021 -40.1694 90.1861 +v -31.3212 -40.1694 86.0546 +v -45.7886 -40.1694 79.3084 +v -58.8647 -40.1694 70.1525 +v -70.1523 -40.1694 58.8649 +v -79.3083 -40.1694 45.7889 +v -86.0545 -40.1694 31.3215 +v -90.1861 -40.1694 15.9024 +v -91.5774 -40.1694 0.000210332 +v -90.1862 -40.1694 -15.902 +v -86.0547 -40.1694 -31.3211 +v -79.3085 -40.1694 -45.7885 +v -70.1525 -40.1694 -58.8646 +v -58.865 -40.1694 -70.1522 +v -45.7889 -40.1694 -79.3082 +v -31.3216 -40.1694 -86.0545 +v -15.9025 -40.1694 -90.1861 +v -0.00030458 -40.1694 -91.5774 +v 15.9019 -40.1694 -90.1862 +v 31.321 -40.1694 -86.0547 +v 45.7884 -40.1694 -79.3085 +v 58.8645 -40.1694 -70.1526 +v 70.1521 -40.1694 -58.8651 +v 79.3082 -40.1694 -45.789 +v 86.0545 -40.1694 -31.3217 +v 90.1861 -40.1694 -15.9027 +v 83.7167 -54.6947 5.88009e-39 +v 82.4449 -54.6947 14.5372 +v 78.668 -54.6947 28.6328 +v 72.5008 -54.6947 41.8583 +v 64.1308 -54.6947 53.812 +v 53.8121 -54.6947 64.1307 +v 41.8584 -54.6947 72.5008 +v 28.6329 -54.6947 78.668 +v 14.5373 -54.6947 82.4449 +v 9.61387e-05 -54.6947 83.7167 +v -14.5372 -54.6947 82.4449 +v -28.6327 -54.6947 78.668 +v -41.8583 -54.6947 72.5009 +v -53.812 -54.6947 64.1308 +v -64.1307 -54.6947 53.8122 +v -72.5007 -54.6947 41.8585 +v -78.6679 -54.6947 28.633 +v -82.4449 -54.6947 14.5374 +v -83.7167 -54.6947 0.000192277 +v -82.4449 -54.6947 -14.5371 +v -78.6681 -54.6947 -28.6326 +v -72.5009 -54.6947 -41.8582 +v -64.1309 -54.6947 -53.8119 +v -53.8123 -54.6947 -64.1306 +v -41.8586 -54.6947 -72.5007 +v -28.6331 -54.6947 -78.6679 +v -14.5375 -54.6947 -82.4448 +v -0.000278436 -54.6947 -83.7167 +v 14.537 -54.6947 -82.4449 +v 28.6325 -54.6947 -78.6681 +v 41.8581 -54.6947 -72.501 +v 53.8118 -54.6947 -64.131 +v 64.1305 -54.6947 -53.8123 +v 72.5006 -54.6947 -41.8587 +v 78.6679 -54.6947 -28.6331 +v 82.4448 -54.6947 -14.5376 +v 73.5725 -67.728 5.88009e-39 +v 72.4548 -67.728 12.7757 +v 69.1355 -67.728 25.1633 +v 63.7157 -67.728 36.7862 +v 56.3598 -67.728 47.2915 +v 47.2915 -67.728 56.3598 +v 36.7863 -67.728 63.7156 +v 25.1633 -67.728 69.1355 +v 12.7758 -67.728 72.4548 +v 8.44893e-05 -67.728 73.5725 +v -12.7756 -67.728 72.4548 +v -25.1632 -67.728 69.1356 +v -36.7862 -67.728 63.7157 +v -47.2914 -67.728 56.3599 +v -56.3597 -67.728 47.2916 +v -63.7156 -67.728 36.7864 +v -69.1355 -67.728 25.1634 +v -72.4547 -67.728 12.7759 +v -73.5725 -67.728 0.000168979 +v -72.4548 -67.728 -12.7756 +v -69.1356 -67.728 -25.1631 +v -63.7158 -67.728 -36.7861 +v -56.3599 -67.728 -47.2913 +v -47.2916 -67.728 -56.3597 +v -36.7864 -67.728 -63.7156 +v -25.1635 -67.728 -69.1355 +v -12.776 -67.728 -72.4547 +v -0.000244697 -67.728 -73.5725 +v 12.7755 -67.728 -72.4548 +v 25.163 -67.728 -69.1356 +v 36.786 -67.728 -63.7158 +v 47.2913 -67.728 -56.36 +v 56.3596 -67.728 -47.2917 +v 63.7155 -67.728 -36.7865 +v 69.1354 -67.728 -25.1636 +v 72.4547 -67.728 -12.7761 +v 61.4214 -78.9139 5.88009e-39 +v 60.4883 -78.9139 10.6657 +v 57.7173 -78.9139 21.0073 +v 53.1925 -78.9139 30.7107 +v 47.0516 -78.9139 39.4809 +v 39.481 -78.9139 47.0515 +v 30.7107 -78.9139 53.1925 +v 21.0074 -78.9139 57.7172 +v 10.6658 -78.9139 60.4883 +v 7.05352e-05 -78.9139 61.4214 +v -10.6656 -78.9139 60.4883 +v -21.0073 -78.9139 57.7173 +v -30.7106 -78.9139 53.1925 +v -39.4808 -78.9139 47.0516 +v -47.0515 -78.9139 39.481 +v -53.1924 -78.9139 30.7108 +v -57.7172 -78.9139 21.0075 +v -60.4883 -78.9139 10.6658 +v -61.4214 -78.9139 0.00014107 +v -60.4883 -78.9139 -10.6656 +v -57.7173 -78.9139 -21.0072 +v -53.1926 -78.9139 -30.7106 +v -47.0516 -78.9139 -39.4808 +v -39.4811 -78.9139 -47.0514 +v -30.7109 -78.9139 -53.1924 +v -21.0075 -78.9139 -57.7172 +v -10.6659 -78.9139 -60.4883 +v -0.000204284 -78.9139 -61.4214 +v 10.6655 -78.9139 -60.4883 +v 21.0072 -78.9139 -57.7173 +v 30.7105 -78.9139 -53.1926 +v 39.4807 -78.9139 -47.0517 +v 47.0514 -78.9139 -39.4811 +v 53.1924 -78.9139 -30.7109 +v 57.7172 -78.9139 -21.0076 +v 60.4882 -78.9139 -10.666 +v 47.5949 -87.9473 5.88009e-39 +v 46.8718 -87.9473 8.26476 +v 44.7246 -87.9473 16.2784 +v 41.2184 -87.9473 23.7974 +v 36.4598 -87.9473 30.5934 +v 30.5934 -87.9473 36.4598 +v 23.7975 -87.9473 41.2184 +v 16.2785 -87.9473 44.7246 +v 8.26482 -87.9473 46.8718 +v 5.46571e-05 -87.9473 47.5949 +v -8.26471 -87.9473 46.8718 +v -16.2784 -87.9473 44.7246 +v -23.7974 -87.9473 41.2184 +v -30.5934 -87.9473 36.4599 +v -36.4598 -87.9473 30.5935 +v -41.2184 -87.9473 23.7975 +v -44.7246 -87.9473 16.2785 +v -46.8718 -87.9473 8.26486 +v -47.5949 -87.9473 0.000109314 +v -46.8719 -87.9473 -8.26466 +v -44.7246 -87.9473 -16.2783 +v -41.2185 -87.9473 -23.7973 +v -36.4599 -87.9473 -30.5933 +v -30.5935 -87.9473 -36.4597 +v -23.7976 -87.9473 -41.2183 +v -16.2786 -87.9473 -44.7245 +v -8.26492 -87.9473 -46.8718 +v -0.000158298 -87.9473 -47.5949 +v 8.26461 -87.9473 -46.8719 +v 16.2783 -87.9473 -44.7246 +v 23.7973 -87.9473 -41.2185 +v 30.5933 -87.9473 -36.4599 +v 36.4597 -87.9473 -30.5936 +v 41.2183 -87.9473 -23.7976 +v 44.7245 -87.9473 -16.2786 +v 46.8718 -87.9473 -8.26498 +v 32.4701 -94.5817 5.88009e-39 +v 31.9768 -94.5817 5.63838 +v 30.512 -94.5817 11.1054 +v 28.12 -94.5817 16.2351 +v 24.8736 -94.5817 20.8714 +v 20.8714 -94.5817 24.8736 +v 16.2351 -94.5817 28.12 +v 11.1055 -94.5817 30.5119 +v 5.63841 -94.5817 31.9768 +v 3.72881e-05 -94.5817 32.4701 +v -5.63834 -94.5817 31.9769 +v -11.1054 -94.5817 30.512 +v -16.235 -94.5817 28.12 +v -20.8714 -94.5817 24.8736 +v -24.8735 -94.5817 20.8714 +v -28.1199 -94.5817 16.2351 +v -30.5119 -94.5817 11.1055 +v -31.9768 -94.5817 5.63845 +v -32.4701 -94.5817 7.45762e-05 +v -31.9769 -94.5817 -5.63831 +v -30.512 -94.5817 -11.1054 +v -28.12 -94.5817 -16.235 +v -24.8736 -94.5817 -20.8713 +v -20.8715 -94.5817 -24.8735 +v -16.2351 -94.5817 -28.1199 +v -11.1055 -94.5817 -30.5119 +v -5.63849 -94.5817 -31.9768 +v -0.000107994 -94.5817 -32.4701 +v 5.63827 -94.5817 -31.9769 +v 11.1053 -94.5817 -30.512 +v 16.235 -94.5817 -28.12 +v 20.8713 -94.5817 -24.8737 +v 24.8735 -94.5817 -20.8715 +v 28.1199 -94.5817 -16.2352 +v 30.5119 -94.5817 -11.1056 +v 31.9768 -94.5817 -5.63853 +v 16.4597 -98.6361 5.88009e-39 +v 16.2096 -98.6361 2.85819 +v 15.467 -98.6361 5.62954 +v 14.2545 -98.6361 8.22983 +v 12.6088 -98.6361 10.5801 +v 10.5801 -98.6361 12.6088 +v 8.22985 -98.6361 14.2545 +v 5.62955 -98.6361 15.467 +v 2.85821 -98.6361 16.2096 +v 1.8902e-05 -98.6361 16.4597 +v -2.85817 -98.6361 16.2096 +v -5.62952 -98.6361 15.467 +v -8.22982 -98.6361 14.2545 +v -10.5801 -98.6361 12.6089 +v -12.6088 -98.6361 10.5801 +v -14.2545 -98.6361 8.22986 +v -15.467 -98.6361 5.62957 +v -16.2096 -98.6361 2.85823 +v -16.4597 -98.6361 3.7804e-05 +v -16.2096 -98.6361 -2.85815 +v -15.467 -98.6361 -5.6295 +v -14.2545 -98.6361 -8.2298 +v -12.6089 -98.6361 -10.58 +v -10.5801 -98.6361 -12.6088 +v -8.22988 -98.6361 -14.2545 +v -5.62959 -98.6361 -15.467 +v -2.85825 -98.6361 -16.2096 +v -5.47438e-05 -98.6361 -16.4597 +v 2.85814 -98.6361 -16.2096 +v 5.62949 -98.6361 -15.4671 +v 8.22978 -98.6361 -14.2545 +v 10.58 -98.6361 -12.6089 +v 12.6088 -98.6361 -10.5801 +v 14.2545 -98.6361 -8.22989 +v 15.467 -98.6361 -5.6296 +v 16.2096 -98.6361 -2.85827 +f 3 4 40 39 +f 4 5 41 40 +f 5 6 42 41 +f 6 7 43 42 +f 7 8 44 43 +f 8 9 45 44 +f 9 10 46 45 +f 10 11 47 46 +f 11 12 48 47 +f 12 13 49 48 +f 13 14 50 49 +f 14 15 51 50 +f 15 16 52 51 +f 16 17 53 52 +f 17 18 54 53 +f 18 19 55 54 +f 19 20 56 55 +f 20 21 57 56 +f 21 22 58 57 +f 22 23 59 58 +f 23 24 60 59 +f 24 25 61 60 +f 25 26 62 61 +f 26 27 63 62 +f 27 28 64 63 +f 28 29 65 64 +f 29 30 66 65 +f 30 31 67 66 +f 31 32 68 67 +f 32 33 69 68 +f 33 34 70 69 +f 34 35 71 70 +f 35 36 72 71 +f 36 37 73 72 +f 37 38 74 73 +f 38 3 39 74 +f 39 40 76 75 +f 40 41 77 76 +f 41 42 78 77 +f 42 43 79 78 +f 43 44 80 79 +f 44 45 81 80 +f 45 46 82 81 +f 46 47 83 82 +f 47 48 84 83 +f 48 49 85 84 +f 49 50 86 85 +f 50 51 87 86 +f 51 52 88 87 +f 52 53 89 88 +f 53 54 90 89 +f 54 55 91 90 +f 55 56 92 91 +f 56 57 93 92 +f 57 58 94 93 +f 58 59 95 94 +f 59 60 96 95 +f 60 61 97 96 +f 61 62 98 97 +f 62 63 99 98 +f 63 64 100 99 +f 64 65 101 100 +f 65 66 102 101 +f 66 67 103 102 +f 67 68 104 103 +f 68 69 105 104 +f 69 70 106 105 +f 70 71 107 106 +f 71 72 108 107 +f 72 73 109 108 +f 73 74 110 109 +f 74 39 75 110 +f 75 76 112 111 +f 76 77 113 112 +f 77 78 114 113 +f 78 79 115 114 +f 79 80 116 115 +f 80 81 117 116 +f 81 82 118 117 +f 82 83 119 118 +f 83 84 120 119 +f 84 85 121 120 +f 85 86 122 121 +f 86 87 123 122 +f 87 88 124 123 +f 88 89 125 124 +f 89 90 126 125 +f 90 91 127 126 +f 91 92 128 127 +f 92 93 129 128 +f 93 94 130 129 +f 94 95 131 130 +f 95 96 132 131 +f 96 97 133 132 +f 97 98 134 133 +f 98 99 135 134 +f 99 100 136 135 +f 100 101 137 136 +f 101 102 138 137 +f 102 103 139 138 +f 103 104 140 139 +f 104 105 141 140 +f 105 106 142 141 +f 106 107 143 142 +f 107 108 144 143 +f 108 109 145 144 +f 109 110 146 145 +f 110 75 111 146 +f 111 112 148 147 +f 112 113 149 148 +f 113 114 150 149 +f 114 115 151 150 +f 115 116 152 151 +f 116 117 153 152 +f 117 118 154 153 +f 118 119 155 154 +f 119 120 156 155 +f 120 121 157 156 +f 121 122 158 157 +f 122 123 159 158 +f 123 124 160 159 +f 124 125 161 160 +f 125 126 162 161 +f 126 127 163 162 +f 127 128 164 163 +f 128 129 165 164 +f 129 130 166 165 +f 130 131 167 166 +f 131 132 168 167 +f 132 133 169 168 +f 133 134 170 169 +f 134 135 171 170 +f 135 136 172 171 +f 136 137 173 172 +f 137 138 174 173 +f 138 139 175 174 +f 139 140 176 175 +f 140 141 177 176 +f 141 142 178 177 +f 142 143 179 178 +f 143 144 180 179 +f 144 145 181 180 +f 145 146 182 181 +f 146 111 147 182 +f 147 148 184 183 +f 148 149 185 184 +f 149 150 186 185 +f 150 151 187 186 +f 151 152 188 187 +f 152 153 189 188 +f 153 154 190 189 +f 154 155 191 190 +f 155 156 192 191 +f 156 157 193 192 +f 157 158 194 193 +f 158 159 195 194 +f 159 160 196 195 +f 160 161 197 196 +f 161 162 198 197 +f 162 163 199 198 +f 163 164 200 199 +f 164 165 201 200 +f 165 166 202 201 +f 166 167 203 202 +f 167 168 204 203 +f 168 169 205 204 +f 169 170 206 205 +f 170 171 207 206 +f 171 172 208 207 +f 172 173 209 208 +f 173 174 210 209 +f 174 175 211 210 +f 175 176 212 211 +f 176 177 213 212 +f 177 178 214 213 +f 178 179 215 214 +f 179 180 216 215 +f 180 181 217 216 +f 181 182 218 217 +f 182 147 183 218 +f 183 184 220 219 +f 184 185 221 220 +f 185 186 222 221 +f 186 187 223 222 +f 187 188 224 223 +f 188 189 225 224 +f 189 190 226 225 +f 190 191 227 226 +f 191 192 228 227 +f 192 193 229 228 +f 193 194 230 229 +f 194 195 231 230 +f 195 196 232 231 +f 196 197 233 232 +f 197 198 234 233 +f 198 199 235 234 +f 199 200 236 235 +f 200 201 237 236 +f 201 202 238 237 +f 202 203 239 238 +f 203 204 240 239 +f 204 205 241 240 +f 205 206 242 241 +f 206 207 243 242 +f 207 208 244 243 +f 208 209 245 244 +f 209 210 246 245 +f 210 211 247 246 +f 211 212 248 247 +f 212 213 249 248 +f 213 214 250 249 +f 214 215 251 250 +f 215 216 252 251 +f 216 217 253 252 +f 217 218 254 253 +f 218 183 219 254 +f 219 220 256 255 +f 220 221 257 256 +f 221 222 258 257 +f 222 223 259 258 +f 223 224 260 259 +f 224 225 261 260 +f 225 226 262 261 +f 226 227 263 262 +f 227 228 264 263 +f 228 229 265 264 +f 229 230 266 265 +f 230 231 267 266 +f 231 232 268 267 +f 232 233 269 268 +f 233 234 270 269 +f 234 235 271 270 +f 235 236 272 271 +f 236 237 273 272 +f 237 238 274 273 +f 238 239 275 274 +f 239 240 276 275 +f 240 241 277 276 +f 241 242 278 277 +f 242 243 279 278 +f 243 244 280 279 +f 244 245 281 280 +f 245 246 282 281 +f 246 247 283 282 +f 247 248 284 283 +f 248 249 285 284 +f 249 250 286 285 +f 250 251 287 286 +f 251 252 288 287 +f 252 253 289 288 +f 253 254 290 289 +f 254 219 255 290 +f 255 256 292 291 +f 256 257 293 292 +f 257 258 294 293 +f 258 259 295 294 +f 259 260 296 295 +f 260 261 297 296 +f 261 262 298 297 +f 262 263 299 298 +f 263 264 300 299 +f 264 265 301 300 +f 265 266 302 301 +f 266 267 303 302 +f 267 268 304 303 +f 268 269 305 304 +f 269 270 306 305 +f 270 271 307 306 +f 271 272 308 307 +f 272 273 309 308 +f 273 274 310 309 +f 274 275 311 310 +f 275 276 312 311 +f 276 277 313 312 +f 277 278 314 313 +f 278 279 315 314 +f 279 280 316 315 +f 280 281 317 316 +f 281 282 318 317 +f 282 283 319 318 +f 283 284 320 319 +f 284 285 321 320 +f 285 286 322 321 +f 286 287 323 322 +f 287 288 324 323 +f 288 289 325 324 +f 289 290 326 325 +f 290 255 291 326 +f 291 292 328 327 +f 292 293 329 328 +f 293 294 330 329 +f 294 295 331 330 +f 295 296 332 331 +f 296 297 333 332 +f 297 298 334 333 +f 298 299 335 334 +f 299 300 336 335 +f 300 301 337 336 +f 301 302 338 337 +f 302 303 339 338 +f 303 304 340 339 +f 304 305 341 340 +f 305 306 342 341 +f 306 307 343 342 +f 307 308 344 343 +f 308 309 345 344 +f 309 310 346 345 +f 310 311 347 346 +f 311 312 348 347 +f 312 313 349 348 +f 313 314 350 349 +f 314 315 351 350 +f 315 316 352 351 +f 316 317 353 352 +f 317 318 354 353 +f 318 319 355 354 +f 319 320 356 355 +f 320 321 357 356 +f 321 322 358 357 +f 322 323 359 358 +f 323 324 360 359 +f 324 325 361 360 +f 325 326 362 361 +f 326 291 327 362 +f 327 328 364 363 +f 328 329 365 364 +f 329 330 366 365 +f 330 331 367 366 +f 331 332 368 367 +f 332 333 369 368 +f 333 334 370 369 +f 334 335 371 370 +f 335 336 372 371 +f 336 337 373 372 +f 337 338 374 373 +f 338 339 375 374 +f 339 340 376 375 +f 340 341 377 376 +f 341 342 378 377 +f 342 343 379 378 +f 343 344 380 379 +f 344 345 381 380 +f 345 346 382 381 +f 346 347 383 382 +f 347 348 384 383 +f 348 349 385 384 +f 349 350 386 385 +f 350 351 387 386 +f 351 352 388 387 +f 352 353 389 388 +f 353 354 390 389 +f 354 355 391 390 +f 355 356 392 391 +f 356 357 393 392 +f 357 358 394 393 +f 358 359 395 394 +f 359 360 396 395 +f 360 361 397 396 +f 361 362 398 397 +f 362 327 363 398 +f 363 364 400 399 +f 364 365 401 400 +f 365 366 402 401 +f 366 367 403 402 +f 367 368 404 403 +f 368 369 405 404 +f 369 370 406 405 +f 370 371 407 406 +f 371 372 408 407 +f 372 373 409 408 +f 373 374 410 409 +f 374 375 411 410 +f 375 376 412 411 +f 376 377 413 412 +f 377 378 414 413 +f 378 379 415 414 +f 379 380 416 415 +f 380 381 417 416 +f 381 382 418 417 +f 382 383 419 418 +f 383 384 420 419 +f 384 385 421 420 +f 385 386 422 421 +f 386 387 423 422 +f 387 388 424 423 +f 388 389 425 424 +f 389 390 426 425 +f 390 391 427 426 +f 391 392 428 427 +f 392 393 429 428 +f 393 394 430 429 +f 394 395 431 430 +f 395 396 432 431 +f 396 397 433 432 +f 397 398 434 433 +f 398 363 399 434 +f 399 400 436 435 +f 400 401 437 436 +f 401 402 438 437 +f 402 403 439 438 +f 403 404 440 439 +f 404 405 441 440 +f 405 406 442 441 +f 406 407 443 442 +f 407 408 444 443 +f 408 409 445 444 +f 409 410 446 445 +f 410 411 447 446 +f 411 412 448 447 +f 412 413 449 448 +f 413 414 450 449 +f 414 415 451 450 +f 415 416 452 451 +f 416 417 453 452 +f 417 418 454 453 +f 418 419 455 454 +f 419 420 456 455 +f 420 421 457 456 +f 421 422 458 457 +f 422 423 459 458 +f 423 424 460 459 +f 424 425 461 460 +f 425 426 462 461 +f 426 427 463 462 +f 427 428 464 463 +f 428 429 465 464 +f 429 430 466 465 +f 430 431 467 466 +f 431 432 468 467 +f 432 433 469 468 +f 433 434 470 469 +f 434 399 435 470 +f 435 436 472 471 +f 436 437 473 472 +f 437 438 474 473 +f 438 439 475 474 +f 439 440 476 475 +f 440 441 477 476 +f 441 442 478 477 +f 442 443 479 478 +f 443 444 480 479 +f 444 445 481 480 +f 445 446 482 481 +f 446 447 483 482 +f 447 448 484 483 +f 448 449 485 484 +f 449 450 486 485 +f 450 451 487 486 +f 451 452 488 487 +f 452 453 489 488 +f 453 454 490 489 +f 454 455 491 490 +f 455 456 492 491 +f 456 457 493 492 +f 457 458 494 493 +f 458 459 495 494 +f 459 460 496 495 +f 460 461 497 496 +f 461 462 498 497 +f 462 463 499 498 +f 463 464 500 499 +f 464 465 501 500 +f 465 466 502 501 +f 466 467 503 502 +f 467 468 504 503 +f 468 469 505 504 +f 469 470 506 505 +f 470 435 471 506 +f 471 472 508 507 +f 472 473 509 508 +f 473 474 510 509 +f 474 475 511 510 +f 475 476 512 511 +f 476 477 513 512 +f 477 478 514 513 +f 478 479 515 514 +f 479 480 516 515 +f 480 481 517 516 +f 481 482 518 517 +f 482 483 519 518 +f 483 484 520 519 +f 484 485 521 520 +f 485 486 522 521 +f 486 487 523 522 +f 487 488 524 523 +f 488 489 525 524 +f 489 490 526 525 +f 490 491 527 526 +f 491 492 528 527 +f 492 493 529 528 +f 493 494 530 529 +f 494 495 531 530 +f 495 496 532 531 +f 496 497 533 532 +f 497 498 534 533 +f 498 499 535 534 +f 499 500 536 535 +f 500 501 537 536 +f 501 502 538 537 +f 502 503 539 538 +f 503 504 540 539 +f 504 505 541 540 +f 505 506 542 541 +f 506 471 507 542 +f 507 508 544 543 +f 508 509 545 544 +f 509 510 546 545 +f 510 511 547 546 +f 511 512 548 547 +f 512 513 549 548 +f 513 514 550 549 +f 514 515 551 550 +f 515 516 552 551 +f 516 517 553 552 +f 517 518 554 553 +f 518 519 555 554 +f 519 520 556 555 +f 520 521 557 556 +f 521 522 558 557 +f 522 523 559 558 +f 523 524 560 559 +f 524 525 561 560 +f 525 526 562 561 +f 526 527 563 562 +f 527 528 564 563 +f 528 529 565 564 +f 529 530 566 565 +f 530 531 567 566 +f 531 532 568 567 +f 532 533 569 568 +f 533 534 570 569 +f 534 535 571 570 +f 535 536 572 571 +f 536 537 573 572 +f 537 538 574 573 +f 538 539 575 574 +f 539 540 576 575 +f 540 541 577 576 +f 541 542 578 577 +f 542 507 543 578 +f 543 544 580 579 +f 544 545 581 580 +f 545 546 582 581 +f 546 547 583 582 +f 547 548 584 583 +f 548 549 585 584 +f 549 550 586 585 +f 550 551 587 586 +f 551 552 588 587 +f 552 553 589 588 +f 553 554 590 589 +f 554 555 591 590 +f 555 556 592 591 +f 556 557 593 592 +f 557 558 594 593 +f 558 559 595 594 +f 559 560 596 595 +f 560 561 597 596 +f 561 562 598 597 +f 562 563 599 598 +f 563 564 600 599 +f 564 565 601 600 +f 565 566 602 601 +f 566 567 603 602 +f 567 568 604 603 +f 568 569 605 604 +f 569 570 606 605 +f 570 571 607 606 +f 571 572 608 607 +f 572 573 609 608 +f 573 574 610 609 +f 574 575 611 610 +f 575 576 612 611 +f 576 577 613 612 +f 577 578 614 613 +f 578 543 579 614 +f 579 580 616 615 +f 580 581 617 616 +f 581 582 618 617 +f 582 583 619 618 +f 583 584 620 619 +f 584 585 621 620 +f 585 586 622 621 +f 586 587 623 622 +f 587 588 624 623 +f 588 589 625 624 +f 589 590 626 625 +f 590 591 627 626 +f 591 592 628 627 +f 592 593 629 628 +f 593 594 630 629 +f 594 595 631 630 +f 595 596 632 631 +f 596 597 633 632 +f 597 598 634 633 +f 598 599 635 634 +f 599 600 636 635 +f 600 601 637 636 +f 601 602 638 637 +f 602 603 639 638 +f 603 604 640 639 +f 604 605 641 640 +f 605 606 642 641 +f 606 607 643 642 +f 607 608 644 643 +f 608 609 645 644 +f 609 610 646 645 +f 610 611 647 646 +f 611 612 648 647 +f 612 613 649 648 +f 613 614 650 649 +f 614 579 615 650 +f 1 4 3 +f 2 615 616 +f 1 5 4 +f 2 616 617 +f 1 6 5 +f 2 617 618 +f 1 7 6 +f 2 618 619 +f 1 8 7 +f 2 619 620 +f 1 9 8 +f 2 620 621 +f 1 10 9 +f 2 621 622 +f 1 11 10 +f 2 622 623 +f 1 12 11 +f 2 623 624 +f 1 13 12 +f 2 624 625 +f 1 14 13 +f 2 625 626 +f 1 15 14 +f 2 626 627 +f 1 16 15 +f 2 627 628 +f 1 17 16 +f 2 628 629 +f 1 18 17 +f 2 629 630 +f 1 19 18 +f 2 630 631 +f 1 20 19 +f 2 631 632 +f 1 21 20 +f 2 632 633 +f 1 22 21 +f 2 633 634 +f 1 23 22 +f 2 634 635 +f 1 24 23 +f 2 635 636 +f 1 25 24 +f 2 636 637 +f 1 26 25 +f 2 637 638 +f 1 27 26 +f 2 638 639 +f 1 28 27 +f 2 639 640 +f 1 29 28 +f 2 640 641 +f 1 30 29 +f 2 641 642 +f 1 31 30 +f 2 642 643 +f 1 32 31 +f 2 643 644 +f 1 33 32 +f 2 644 645 +f 1 34 33 +f 2 645 646 +f 1 35 34 +f 2 646 647 +f 1 36 35 +f 2 647 648 +f 1 37 36 +f 2 648 649 +f 1 38 37 +f 2 649 650 +f 1 3 38 +f 2 650 615 diff --git a/index.html b/index.html new file mode 100644 index 0000000..2918499 --- /dev/null +++ b/index.html @@ -0,0 +1,37 @@ + + + + The begining + + + +

Here is a list of places where you can go

+ + + diff --git a/js/BigScene.js b/js/BigScene.js new file mode 100644 index 0000000..f130af4 --- /dev/null +++ b/js/BigScene.js @@ -0,0 +1,112 @@ +var mesh_number = 25; +var renderer, scene, controls, cube, container, plane, mouse= {x:0, y:0}; +var bigmesh; +var raycaster; +var objects = []; +var cameras = new CameraContainer(); +var spheres = new Array(mesh_number); +var visible = 0; + +var loader; + +var container_size = new Object(); +container_size.width = 1067; +container_size.height = 600; + +init(); +animate(); + +function init() { + // on initialise le moteur de rendu + container = document.getElementById('container'); + container.style.height = container_size.height + 'px'; + container.style.width = container_size.width + 'px'; + renderer = new THREE.WebGLRenderer({alpha:"true"}); + renderer.setSize(container_size.width, container_size.height); + renderer.shadowMapEnabled = true; + renderer.setClearColor(0x000000); + document.getElementById('container').appendChild(renderer.domElement); + + // on initialise la scène + scene = new THREE.Scene(); + raycaster = new THREE.Raycaster(); + + // init light + var directional_light = new THREE.DirectionalLight(0x444444); + directional_light.position.set(1, 0.5, 1).normalize(); + directional_light.castShadow = true; + scene.add(directional_light); + + var ambient_light = new THREE.AmbientLight(0x666666); + scene.add(ambient_light); + + // on initialise la camera que l’on place ensuite sur la scène + var camera1 = new PointerCamera(50, container_size.width / container_size.height, 1, 100000); + camera1.position.z = 1500; + scene.add(camera1); + cameras.push(camera1); + + var camera3 = new FixedCamera( + 50, + container_size.width / container_size.height, + 1, + 100000, + new THREE.Vector3(500,0,500), + new THREE.Vector3(0,0,0) + ); + + camera3.addToScene(scene); + cameras.push(camera3); + + window.addEventListener('resize', onWindowResize, false); + + container.addEventListener('mousedown', click, false); + + // Création d'un objloader + var helper = new THREE.LoadingManager(); + helper.onProgress = function(item, loaded, total) { + console.log(item, ": " , loaded, " / ", total); + }; + + loader = new THREE.OBJLoader(helper); + loader.load('mesh/TheCarnival.obj', function (object) { + object.traverse(function (child) { + if (child instanceof THREE.Mesh) { + child.up = new THREE.Vector3(0,0,1); + child.rotation.x = Math.PI / 2; + child.scale.set(0.05,0.05,0.05); + } + }); + scene.add(object); + }); +} + +function animate() { + // on appelle la fonction animate() récursivement à chaque frame + requestAnimationFrame(animate); + + cameras.update(); + cameras.look(); + + renderer.render(scene, cameras.mainCamera()); +} + +function onWindowResize() { + cameras.forEach(function(camera) {camera.aspect = container.offsetWidth / container.offsetHeight;}); + cameras.forEach(function(camera) {camera.updateProjectionMatrix();}); + + renderer.setSize(container.offsetWidth, container.offsetHeight); + renderer.render(scene, cameras.mainCamera()); +} + +function hide(object) { + object.traverse(function(object) {object.visible = false;}); +} + +function show(object) { + object.traverse(function(object) {object.visible = true;}); +} + +function click(event) { + cameras.nextCamera(); +} diff --git a/js/BouncingCube.js b/js/BouncingCube.js new file mode 100644 index 0000000..2eff971 --- /dev/null +++ b/js/BouncingCube.js @@ -0,0 +1,36 @@ +DT = new THREE.Vector3(0.1,0.1,0.1); +FRICTION = new THREE.Vector3(1, 1, 1); +G = new THREE.Vector3(0,0,-10); + +var BouncingCube = function(size, style) { + Cube.call(this, size, style); + + this.fixed_center = new THREE.Vector3(); + this.center = new THREE.Vector3(); + + this.speed = new THREE.Vector3(0,0,300); +} +BouncingCube.prototype = Object.create(Cube.prototype); +BouncingCube.prototype.constructor = BouncingCube; + +BouncingCube.prototype.update = function() { + // Compute new center + var speed_clone = this.speed.clone(); + speed_clone.multiply(DT); + + this.speed.add(G); + + if (this.speed.dot(this.speed) > 100) { + this.center.add(speed_clone); + } + + if (this.center.z < 0) { + this.speed.multiply(new THREE.Vector3(1,1,-0.5)); + this.center.z = 0; + } + + // Update the mesh + this.mesh.position.set(this.center.x, this.center.y, this.center.z); + + // console.log(this.center.x, this.center.y, this.center.z); +} diff --git a/js/Camera.js b/js/Camera.js new file mode 100644 index 0000000..65a04af --- /dev/null +++ b/js/Camera.js @@ -0,0 +1,28 @@ +// class camera extends THREE.PerspectiveCamera +var Camera = function() { + THREE.PerspectiveCamera.apply(this, arguments); + + this.theta = 0; + this.position.x = Camera.DISTANCE_X; + this.position.z = Camera.DISTANCE_Z; + + this.up = new THREE.Vector3(0,0,1); + this.target = new THREE.Vector3(); +} +Camera.prototype = Object.create(THREE.PerspectiveCamera.prototype); + +// Update function +Camera.prototype.update = function() { + this.theta += 0.01; + this.position.x = Camera.DISTANCE_X*Math.cos(this.theta); + this.position.y = Camera.DISTANCE_X*Math.sin(this.theta); +} + +// Look function +Camera.prototype.look = function() { + this.lookAt(this.target); +} + +// Static members +Camera.DISTANCE_X = 1000; +Camera.DISTANCE_Z = 300; diff --git a/js/CameraContainer.js b/js/CameraContainer.js new file mode 100644 index 0000000..b59cc8a --- /dev/null +++ b/js/CameraContainer.js @@ -0,0 +1,61 @@ +var CameraContainer = function () { + this.current_camera = 0; + this.cameras = new Array(); +} + +CameraContainer.prototype.mainCamera = function(id) { + if (typeof id === 'undefined') { + return this.cameras[this.current_camera]; + } + if (id >= cameras.length || id < 0) { + console.log('Warning : this camera does not exist'); + return; + } + + this.current_camera = id; +} + +CameraContainer.prototype.forEach = function(callback) { + this.cameras.forEach(callback); +} + +CameraContainer.prototype.look = function() { + this.cameras[this.current_camera].look(); +} + +CameraContainer.prototype.update = function() { + this.cameras[this.current_camera].update(); +} + +CameraContainer.prototype.push = function(camera) { + this.cameras.push(camera); +} + +CameraContainer.prototype.get = function(i) { + return this.cameras[i]; +} + +CameraContainer.prototype.getById = function(id) { + for (var i in this.cameras) { + if (typeof this.cameras[i].mesh !== 'undefined') { + if (this.cameras[i].mesh.id == id) { + return i; + } + } + } + return -1; +} + +CameraContainer.prototype.setById = function(id) { + var i = this.getById(id); + + if (i !== -1) + this.current_camera = i; +} + +CameraContainer.prototype.nextCamera = function() { + if (this.cameras.length != 0) { + this.current_camera++; + this.current_camera%=this.cameras.length; + } +} diff --git a/js/Cube.js b/js/Cube.js new file mode 100644 index 0000000..58545d0 --- /dev/null +++ b/js/Cube.js @@ -0,0 +1,56 @@ +var Displayable = function() { + // Nothing to do here +} + +Displayable.prototype.addToScene = function(scene) { + scene.add(this.mesh); +} + +Displayable.prototype.translate = function(x,y,z) { + this.geometry.applyMatrix(new THREE.Matrix4().makeTranslation(x,y,z)); +} + +// class Cube extends Displayable +var Cube = function(size, style) { + // Super constructor call + Displayable.call(this); + + if (typeof size === 'undefined') size = 100; + if (typeof style === 'undefined') style = {}; + + this.geometry = new THREE.BoxGeometry(size, size, size); + this.geometry.computeVertexNormals(); + + this.material = new THREE.MeshLambertMaterial(style); + + this.mesh = new THREE.Mesh(this.geometry, this.material); + this.mesh.castShadow = false; +} +Cube.prototype = Object.create(Displayable.prototype); +Cube.prototype.constructor = Cube; + +// class Plane extends Displayable +var Plane = function(size1, size2, style) { + Displayable.call(this); + + if (typeof style === 'undefined') style = {}; + + this.geometry = new THREE.PlaneBufferGeometry(size1, size2); + this.material = new THREE.MeshLambertMaterial(style); + this.material.side = THREE.FrontSide; + + this.materialBack = new THREE.MeshLambertMaterial(style); + this.materialBack.side = THREE.BackSide; + + this.mesh = new THREE.Mesh(this.geometry, this.material); + this.meshBack = new THREE.Mesh(this.geometry, this.materialBack); + + this.mesh.receiveShadow = true; +} +Plane.prototype = Object.create(Displayable.prototype); +Plane.prototype.constructor = Plane; + +Plane.prototype.addToScene = function(scene) { + scene.add(this.mesh); + scene.add(this.meshBack); +} diff --git a/js/FixedCamera.js b/js/FixedCamera.js new file mode 100644 index 0000000..9a59d77 --- /dev/null +++ b/js/FixedCamera.js @@ -0,0 +1,110 @@ +// Initialization + +// class camera extends THREE.PerspectiveCamera +var FixedCamera = function(arg1, arg2, arg3, arg4, position, target) { + THREE.PerspectiveCamera.apply(this, arguments); + + // Set Position + if (typeof position === 'undefined') + { + this.position = new THREE.Vector3(0,0,5); + } + else + { + this.position.x = position.x; + this.position.y = position.y; + this.position.z = position.z; + } + + + if (typeof target === 'undefined') target = new THREE.Vector3(0,0,0); + + var direction = target.clone(); + direction.sub(this.position); + direction.normalize(); + + this.target = this.position.clone(); + this.target.add(direction); + this.up = new THREE.Vector3(0,0,1); + + // Compute corners + + // Create the mesh to draw + + var geometry = new THREE.Geometry(); + + var left = Tools.cross(direction, this.up); + var other = Tools.cross(direction, left); + left.normalize(); + other.normalize(); + left = Tools.mul(left, 100); + other = Tools.mul(other, 100); + + geometry.vertices.push(Tools.sum(Tools.sum(this.position, left), other), + Tools.diff(Tools.sum(this.position, other),left), + Tools.diff(Tools.diff(this.position, left),other), + Tools.sum(Tools.diff(this.position, other), left) + ); + + geometry.faces.push(new THREE.Face3(0,1,2), // new THREE.Face3(0,2,1), + new THREE.Face3(0,2,3) // new THREE.Face3(0,3,2) + ); + + (function(self, direction, left, other) { + var material = new THREE.LineBasicMaterial({ color: '0x000000'}); + var geometry = new THREE.Geometry(); + var direction = Tools.mul(direction, -200); + var target = Tools.sum(self.position, direction); + // geometry.vertices.push(self.position, target); + geometry.vertices.push( + Tools.sum(Tools.sum(self.position, left), other), + Tools.diff(Tools.sum(self.position, other),left), + Tools.diff(Tools.diff(self.position, left),other), + Tools.sum(Tools.diff(self.position, other), left), + Tools.sum(Tools.sum(self.position, left), other), + Tools.sum(Tools.diff(self.position, other), left), + + Tools.sum(self.position, direction), + Tools.sum(Tools.sum(self.position, left), other), + + Tools.sum(self.position, direction), + Tools.diff(Tools.sum(self.position, other),left), + + Tools.sum(self.position, direction), + Tools.diff(Tools.diff(self.position, left),other), + + Tools.sum(self.position, direction), + Tools.sum(Tools.diff(self.position, other), left) + ); + + self.line = new THREE.Line(geometry, material); + })(this, direction, left, other); + + + var material = new THREE.MeshBasicMaterial({ + color : 0xff0000, + transparent : true, + opacity : 0.5, + side: THREE.DoubleSide + }); + + this.mesh = new THREE.Mesh(geometry, material); +} +FixedCamera.prototype = Object.create(THREE.PerspectiveCamera.prototype); +FixedCamera.prototype.constructor = FixedCamera; + +// Update function +FixedCamera.prototype.update = function() { + +} + +// Look function +FixedCamera.prototype.look = function() { + this.lookAt(this.target); +} + +FixedCamera.prototype.addToScene = function(scene) { + scene.add(this); + scene.add(this.mesh); + scene.add(this.line); +} diff --git a/js/PointerCamera.js b/js/PointerCamera.js new file mode 100644 index 0000000..452e934 --- /dev/null +++ b/js/PointerCamera.js @@ -0,0 +1,120 @@ +// Initialization + + +// class camera extends THREE.PerspectiveCamera +var PointerCamera = function() { + THREE.PerspectiveCamera.apply(this, arguments); + + // Set Position + this.theta = Math.PI; + this.phi = Math.PI; + + this.keyboard = 'undefined'; + + + // Stuff for rendering + this.position = new THREE.Vector3(); + this.forward = new THREE.Vector3(); + this.left = new THREE.Vector3(); + this.up = new THREE.Vector3(0,0,1); + this.target = new THREE.Vector3(0,1,0); + + // Stuff for events + this.moveForward = false; + this.moveBackward = false; + this.moveRight = false; + this.moveLeft = false; + + this.sensitivity = 0.05; + this.speed = 1; + + // Set events from the document + var self = this; + var onKeyDown = function(event) {self.onKeyDown(event);}; + var onKeyUp = function(event) {self.onKeyUp(event);}; + + document.addEventListener('keydown', onKeyDown, false); + document.addEventListener('keyup', onKeyUp, false); +} +PointerCamera.prototype = Object.create(THREE.PerspectiveCamera.prototype); +PointerCamera.prototype.constructor = PointerCamera; + +// Update function +PointerCamera.prototype.update = function() { + // Update angles + if (this.increasePhi) this.phi += this.sensitivity; + if (this.decreasePhi) this.phi -= this.sensitivity; + if (this.increaseTheta) this.theta += this.sensitivity; + if (this.decreaseTheta) this.theta -= this.sensitivity; + + // Clamp phi + this.phi = Math.min(Math.max(-(Math.PI/2-0.1),this.phi), Math.PI/2-0.1); + + var delta = 0.1; + + // Update direction + this.forward.z = Math.sin(this.phi); + + var cos = Math.cos(this.phi); + this.forward.x = cos * Math.cos(this.theta); + this.forward.y = cos * Math.sin(this.theta); + this.forward.normalize(); + + // Update + var forward = this.forward.clone(); + forward.multiplyScalar(400.0 * delta); + var left = this.up.clone(); + left.cross(forward); + left.normalize(); + left.multiplyScalar(400.0 * delta); + + if (this.moveForward) this.position.add(Tools.mul(forward, this.speed)); + if (this.moveBackward) this.position.sub(Tools.mul(forward, this.speed)); + if (this.moveLeft) this.position.add(Tools.mul(left, this.speed)); + if (this.moveRight) this.position.sub(Tools.mul(left, this.speed)); + + this.target = this.position.clone(); + this.target.add(forward); +} + +// Look function +PointerCamera.prototype.look = function() { + this.lookAt(this.target); +} + +PointerCamera.prototype.addToScene = function(scene) { + scene.add(this); +} + +PointerCamera.prototype.onKeyEvent = function(event, toSet) { + switch ( event.keyCode ) { + // Azerty keyboards + case 38: case 90: this.moveForward = toSet; break; // up / z + case 37: case 81: this.moveLeft = toSet; break; // left / q + case 40: case 83: this.moveBackward = toSet; break; // down / s + case 39: case 68: this.moveRight = toSet; break; // right / d + + // Qwerty keyboards + // case 38: case 87: this.moveForward = toSet; break; // up / w + // case 37: case 65: this.moveLeft = toSet; break; // left / a + // case 40: case 83: this.moveBackward = toSet; break; // down / s + // case 39: case 68: this.moveRight = toSet; break; // right / d + + case 104: this.increasePhi = toSet; break; // 8 Up for angle + case 98: this.decreasePhi = toSet; break; // 2 Down for angle + case 100: this.increaseTheta = toSet; break; // 4 Left for angle + case 102: this.decreaseTheta = toSet; break; // 6 Right for angle + } +} + +PointerCamera.prototype.onKeyDown = function(event) { + this.onKeyEvent(event, true); +} + +PointerCamera.prototype.onKeyUp = function(event) { + this.onKeyEvent(event, false); +} + +// Static members +PointerCamera.DISTANCE_X = 1000; +PointerCamera.DISTANCE_Z = 300; diff --git a/js/Tools.js b/js/Tools.js new file mode 100644 index 0000000..cc992c3 --- /dev/null +++ b/js/Tools.js @@ -0,0 +1,33 @@ +var Tools = {version : "1.0" }; + +Tools.sum = function(v1, v2) { + var ret = v1.clone(); + ret.add(v2); + return ret; +} + +Tools.diff = function(v1, v2) { + var ret = v1.clone(); + ret.sub(v2); + return ret; +} + +Tools.dot = function(v1, v2) { + return v1.x * v2.x + v1.y * v2.y + v1.z * v2.z; +} + +Tools.cross = function(v1, v2) { + var ret = v1.clone(); + ret.cross(v2); + return ret; +} + +Tools.mul = function(v1, lambda) { + var ret = v1.clone(); + ret.multiplyScalar(lambda); + return ret; +} + +Tools.equals = function(v1, v2) { + return v1.x == v2.x && v1.y == v2.y && v1.z == v2.z; +} diff --git a/js/ToolsTest.js b/js/ToolsTest.js new file mode 100644 index 0000000..f2f2ec2 --- /dev/null +++ b/js/ToolsTest.js @@ -0,0 +1,79 @@ +function test(b) { + if (b) + document.write("
  • Success !
  • "); + else + document.write("
  • Failure !
  • "); +} + +function main() { + document.write("

    Starting test !

    "); + + var v1 = new THREE.Vector3(1,2,3); + var v2 = new THREE.Vector3(2,3,4); + var v1Bak = v1.clone(); + var v2Bak = v2.clone(); + + // First tests + document.write("
      "); + var v3 = Tools.sum(v1,v2); + test(v3.x == v1.x + v2.x && v3.y == v1.y + v2.y && v3.z == v1.z + v2.z); + test(Tools.equals(v1, v1Bak)); + test(Tools.equals(v2, v2Bak)); + document.write('
    '); + + // Clear v1, v2 + v1 = v1Bak.clone(); + v2 = v2Bak.clone(); + + document.write("
      "); + var v4 = Tools.diff(v1,v2); + test(v4.x == v1.x - v2.x && v4.y == v1.y - v2.y && v4.z == v1.z - v2.z); + test(Tools.equals(v1, v1Bak)); + test(Tools.equals(v2, v2Bak)); + document.write('
    '); + + v1 = v1Bak.clone(); + v2 = v2Bak.clone(); + + document.write("
      "); + var v5 = Tools.dot(v1,v2); + test(v5 == v1.x * v2.x + v1.y * v2.y + v1.z * v2.z); + test(Tools.equals(v1, v1Bak)); + test(Tools.equals(v2, v2Bak)); + document.write('
    '); + + v1 = v1Bak.clone(); + v2 = v2Bak.clone(); + + document.write("
      "); + var v6 = Tools.cross(new THREE.Vector3(1,0,0), new THREE.Vector3(0,1,0)); + test(Tools.equals(v6, new THREE.Vector3(0,0,1))); + test(Tools.equals(v1, v1Bak)); + test(Tools.equals(v2, v2Bak)); + document.write('
    '); + + v1 = v1Bak.clone(); + v2 = v2Bak.clone(); + + document.write("
      "); + for (var lambda = 0; lambda < 5; lambda += 0.5) + { + var v7 = Tools.mul(v1, lambda); + test(Tools.equals(v7, new THREE.Vector3(v1Bak.x*lambda, v1Bak.y*lambda, v1Bak.z*lambda))); + v1 = v1Bak.clone(); + v2 = v2Bak.clone(); + var v8 = Tools.mul(v1, lambda); + test(Tools.equals(v8, new THREE.Vector3(v1Bak.x*lambda, v1Bak.y*lambda, v1Bak.z*lambda))); + v1 = v1Bak.clone(); + v2 = v2Bak.clone(); + + // Try into v1 + v1 = Tools.mul(v1, lambda); + test(Tools.equals(v1, new THREE.Vector3(v1Bak.x*lambda, v1Bak.y*lambda, v1Bak.z*lambda))); + v1 = v1Bak.clone(); + v2 = v2Bak.clone(); + + } +} + +main(); diff --git a/js/test1.js b/js/test1.js new file mode 100644 index 0000000..a604e03 --- /dev/null +++ b/js/test1.js @@ -0,0 +1,88 @@ +var renderer, scene, camera, controls, mesh, i = 0; +var raycaster; +var objects = []; +var container_size = new Object(); +container_size.width = 1067; +container_size.height = 600; + +init(); +animate(); + +function init() +{ + // on initialise le moteur de rendu + container = document.getElementById('container'); + container.style.height = container_size.height + 'px'; + container.style.width = container_size.width + 'px'; + renderer = new THREE.WebGLRenderer({alpha:"true"}); + renderer.setSize(container_size.width, container_size.height); + renderer.shadowMapEnabled = true; + document.getElementById('container').appendChild(renderer.domElement); + container.addEventListener('mousedown', click, false); + + // on initialise la scène + scene = new THREE.Scene(); + raycaster = new THREE.Raycaster(); + + // init light + var directional_light = new THREE.DirectionalLight(0xffffff); + directional_light.position.set(1, 0.5, 1).normalize(); + directional_light.castShadow = true; + scene.add(directional_light); + + var ambient_light = new THREE.AmbientLight(0x444444); + scene.add(ambient_light); + + // on initialise la camera que l’on place ensuite sur la scène + camera = new Camera(50, container_size.width / container_size.height, 1, 10000); + scene.add(camera); + + window.addEventListener('resize', onWindowResize, false); + + geometry = new THREE.Geometry(); + geometry.vertices.push(new THREE.Vector3(0,0,0), new THREE.Vector3(100,100,0), new THREE.Vector3(100,0,100)); + geometry.faces.push(new THREE.Face3(0,1,2)); + geometry.faces.push(new THREE.Face3(0,2,1)); + + geometry.verticesNeedUpdate = true; + geometry.groupsNeedUpdate = true; + + mesh = new THREE.Mesh(geometry); + + + scene.add(mesh); +} + +function animate() +{ + // on appelle la fonction animate() récursivement à chaque frame + requestAnimationFrame(animate); + + i += 1; + + mesh.geometry.vertices.push(new THREE.Vector3(0+i,0+i,0+i), new THREE.Vector3(100+i,100+i,+i), new THREE.Vector3(100+i,0+i,100+i)); + var size = mesh.geometry.vertices.length-3; + mesh.geometry.faces.push(new THREE.Face3(size, size+1, size+2), new THREE.Face3(size, size+2, size+1)); + mesh.geometry.verticesNeedUpdate = true; + mesh.geometry.groupsNeedUpdate = true; + + camera.update(); + camera.look(); + + renderer.render(scene, camera); + +} + +function onWindowResize() +{ + camera.aspect = container.offsetWidth / container.offsetHeight; + camera.updateProjectionMatrix(); + + renderer.setSize(container.offsetWidth, container.offsetHeight); + renderer.render(scene, camera); +} + +function click(event) +{ + +} diff --git a/js/three.js b/js/three.js new file mode 100644 index 0000000..ae4b1be --- /dev/null +++ b/js/three.js @@ -0,0 +1,35133 @@ +// File:src/Three.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +var THREE = { REVISION: '71' }; + +// browserify support + +if ( typeof module === 'object' ) { + + module.exports = THREE; + +} + +// polyfills + +if ( Math.sign === undefined ) { + + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign + + Math.sign = function ( x ) { + + return ( x < 0 ) ? - 1 : ( x > 0 ) ? 1 : +x; + + }; + +} + + +// set the default log handlers +THREE.log = function() { console.log.apply( console, arguments ); } +THREE.warn = function() { console.warn.apply( console, arguments ); } +THREE.error = function() { console.error.apply( console, arguments ); } + + +// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent.button + +THREE.MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2 }; + +// GL STATE CONSTANTS + +THREE.CullFaceNone = 0; +THREE.CullFaceBack = 1; +THREE.CullFaceFront = 2; +THREE.CullFaceFrontBack = 3; + +THREE.FrontFaceDirectionCW = 0; +THREE.FrontFaceDirectionCCW = 1; + +// SHADOWING TYPES + +THREE.BasicShadowMap = 0; +THREE.PCFShadowMap = 1; +THREE.PCFSoftShadowMap = 2; + +// MATERIAL CONSTANTS + +// side + +THREE.FrontSide = 0; +THREE.BackSide = 1; +THREE.DoubleSide = 2; + +// shading + +THREE.NoShading = 0; +THREE.FlatShading = 1; +THREE.SmoothShading = 2; + +// colors + +THREE.NoColors = 0; +THREE.FaceColors = 1; +THREE.VertexColors = 2; + +// blending modes + +THREE.NoBlending = 0; +THREE.NormalBlending = 1; +THREE.AdditiveBlending = 2; +THREE.SubtractiveBlending = 3; +THREE.MultiplyBlending = 4; +THREE.CustomBlending = 5; + +// custom blending equations +// (numbers start from 100 not to clash with other +// mappings to OpenGL constants defined in Texture.js) + +THREE.AddEquation = 100; +THREE.SubtractEquation = 101; +THREE.ReverseSubtractEquation = 102; +THREE.MinEquation = 103; +THREE.MaxEquation = 104; + +// custom blending destination factors + +THREE.ZeroFactor = 200; +THREE.OneFactor = 201; +THREE.SrcColorFactor = 202; +THREE.OneMinusSrcColorFactor = 203; +THREE.SrcAlphaFactor = 204; +THREE.OneMinusSrcAlphaFactor = 205; +THREE.DstAlphaFactor = 206; +THREE.OneMinusDstAlphaFactor = 207; + +// custom blending source factors + +//THREE.ZeroFactor = 200; +//THREE.OneFactor = 201; +//THREE.SrcAlphaFactor = 204; +//THREE.OneMinusSrcAlphaFactor = 205; +//THREE.DstAlphaFactor = 206; +//THREE.OneMinusDstAlphaFactor = 207; +THREE.DstColorFactor = 208; +THREE.OneMinusDstColorFactor = 209; +THREE.SrcAlphaSaturateFactor = 210; + + +// TEXTURE CONSTANTS + +THREE.MultiplyOperation = 0; +THREE.MixOperation = 1; +THREE.AddOperation = 2; + +// Mapping modes + +THREE.UVMapping = 300; + +THREE.CubeReflectionMapping = 301; +THREE.CubeRefractionMapping = 302; + +THREE.EquirectangularReflectionMapping = 303; +THREE.EquirectangularRefractionMapping = 304; + +THREE.SphericalReflectionMapping = 305; + +// Wrapping modes + +THREE.RepeatWrapping = 1000; +THREE.ClampToEdgeWrapping = 1001; +THREE.MirroredRepeatWrapping = 1002; + +// Filters + +THREE.NearestFilter = 1003; +THREE.NearestMipMapNearestFilter = 1004; +THREE.NearestMipMapLinearFilter = 1005; +THREE.LinearFilter = 1006; +THREE.LinearMipMapNearestFilter = 1007; +THREE.LinearMipMapLinearFilter = 1008; + +// Data types + +THREE.UnsignedByteType = 1009; +THREE.ByteType = 1010; +THREE.ShortType = 1011; +THREE.UnsignedShortType = 1012; +THREE.IntType = 1013; +THREE.UnsignedIntType = 1014; +THREE.FloatType = 1015; +THREE.HalfFloatType = 1025; + +// Pixel types + +//THREE.UnsignedByteType = 1009; +THREE.UnsignedShort4444Type = 1016; +THREE.UnsignedShort5551Type = 1017; +THREE.UnsignedShort565Type = 1018; + +// Pixel formats + +THREE.AlphaFormat = 1019; +THREE.RGBFormat = 1020; +THREE.RGBAFormat = 1021; +THREE.LuminanceFormat = 1022; +THREE.LuminanceAlphaFormat = 1023; +// THREE.RGBEFormat handled as THREE.RGBAFormat in shaders +THREE.RGBEFormat = THREE.RGBAFormat; //1024; + +// DDS / ST3C Compressed texture formats + +THREE.RGB_S3TC_DXT1_Format = 2001; +THREE.RGBA_S3TC_DXT1_Format = 2002; +THREE.RGBA_S3TC_DXT3_Format = 2003; +THREE.RGBA_S3TC_DXT5_Format = 2004; + + +// PVRTC compressed texture formats + +THREE.RGB_PVRTC_4BPPV1_Format = 2100; +THREE.RGB_PVRTC_2BPPV1_Format = 2101; +THREE.RGBA_PVRTC_4BPPV1_Format = 2102; +THREE.RGBA_PVRTC_2BPPV1_Format = 2103; + + +// DEPRECATED + +THREE.Projector = function () { + + THREE.error( 'THREE.Projector has been moved to /examples/js/renderers/Projector.js.' ); + + this.projectVector = function ( vector, camera ) { + + THREE.warn( 'THREE.Projector: .projectVector() is now vector.project().' ); + vector.project( camera ); + + }; + + this.unprojectVector = function ( vector, camera ) { + + THREE.warn( 'THREE.Projector: .unprojectVector() is now vector.unproject().' ); + vector.unproject( camera ); + + }; + + this.pickingRay = function ( vector, camera ) { + + THREE.error( 'THREE.Projector: .pickingRay() is now raycaster.setFromCamera().' ); + + }; + +}; + +THREE.CanvasRenderer = function () { + + THREE.error( 'THREE.CanvasRenderer has been moved to /examples/js/renderers/CanvasRenderer.js' ); + + this.domElement = document.createElement( 'canvas' ); + this.clear = function () {}; + this.render = function () {}; + this.setClearColor = function () {}; + this.setSize = function () {}; + +}; + +// File:src/math/Color.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.Color = function ( color ) { + + if ( arguments.length === 3 ) { + + return this.setRGB( arguments[ 0 ], arguments[ 1 ], arguments[ 2 ] ); + + } + + return this.set( color ) + +}; + +THREE.Color.prototype = { + + constructor: THREE.Color, + + r: 1, g: 1, b: 1, + + set: function ( value ) { + + if ( value instanceof THREE.Color ) { + + this.copy( value ); + + } else if ( typeof value === 'number' ) { + + this.setHex( value ); + + } else if ( typeof value === 'string' ) { + + this.setStyle( value ); + + } + + return this; + + }, + + setHex: function ( hex ) { + + hex = Math.floor( hex ); + + this.r = ( hex >> 16 & 255 ) / 255; + this.g = ( hex >> 8 & 255 ) / 255; + this.b = ( hex & 255 ) / 255; + + return this; + + }, + + setRGB: function ( r, g, b ) { + + this.r = r; + this.g = g; + this.b = b; + + return this; + + }, + + setHSL: function ( h, s, l ) { + + // h,s,l ranges are in 0.0 - 1.0 + + if ( s === 0 ) { + + this.r = this.g = this.b = l; + + } else { + + var hue2rgb = function ( p, q, t ) { + + if ( t < 0 ) t += 1; + if ( t > 1 ) t -= 1; + if ( t < 1 / 6 ) return p + ( q - p ) * 6 * t; + if ( t < 1 / 2 ) return q; + if ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t ); + return p; + + }; + + var p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s ); + var q = ( 2 * l ) - p; + + this.r = hue2rgb( q, p, h + 1 / 3 ); + this.g = hue2rgb( q, p, h ); + this.b = hue2rgb( q, p, h - 1 / 3 ); + + } + + return this; + + }, + + setStyle: function ( style ) { + + // rgb(255,0,0) + + if ( /^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.test( style ) ) { + + var color = /^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.exec( style ); + + this.r = Math.min( 255, parseInt( color[ 1 ], 10 ) ) / 255; + this.g = Math.min( 255, parseInt( color[ 2 ], 10 ) ) / 255; + this.b = Math.min( 255, parseInt( color[ 3 ], 10 ) ) / 255; + + return this; + + } + + // rgb(100%,0%,0%) + + if ( /^rgb\((\d+)\%, ?(\d+)\%, ?(\d+)\%\)$/i.test( style ) ) { + + var color = /^rgb\((\d+)\%, ?(\d+)\%, ?(\d+)\%\)$/i.exec( style ); + + this.r = Math.min( 100, parseInt( color[ 1 ], 10 ) ) / 100; + this.g = Math.min( 100, parseInt( color[ 2 ], 10 ) ) / 100; + this.b = Math.min( 100, parseInt( color[ 3 ], 10 ) ) / 100; + + return this; + + } + + // #ff0000 + + if ( /^\#([0-9a-f]{6})$/i.test( style ) ) { + + var color = /^\#([0-9a-f]{6})$/i.exec( style ); + + this.setHex( parseInt( color[ 1 ], 16 ) ); + + return this; + + } + + // #f00 + + if ( /^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.test( style ) ) { + + var color = /^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec( style ); + + this.setHex( parseInt( color[ 1 ] + color[ 1 ] + color[ 2 ] + color[ 2 ] + color[ 3 ] + color[ 3 ], 16 ) ); + + return this; + + } + + // red + + if ( /^(\w+)$/i.test( style ) ) { + + this.setHex( THREE.ColorKeywords[ style ] ); + + return this; + + } + + + }, + + copy: function ( color ) { + + this.r = color.r; + this.g = color.g; + this.b = color.b; + + return this; + + }, + + copyGammaToLinear: function ( color, gammaFactor ) { + + if ( gammaFactor === undefined ) gammaFactor = 2.0; + + this.r = Math.pow( color.r, gammaFactor ); + this.g = Math.pow( color.g, gammaFactor ); + this.b = Math.pow( color.b, gammaFactor ); + + return this; + + }, + + copyLinearToGamma: function ( color, gammaFactor ) { + + if ( gammaFactor === undefined ) gammaFactor = 2.0; + + var safeInverse = ( gammaFactor > 0 ) ? ( 1.0 / gammaFactor ) : 1.0; + + this.r = Math.pow( color.r, safeInverse ); + this.g = Math.pow( color.g, safeInverse ); + this.b = Math.pow( color.b, safeInverse ); + + return this; + + }, + + convertGammaToLinear: function () { + + var r = this.r, g = this.g, b = this.b; + + this.r = r * r; + this.g = g * g; + this.b = b * b; + + return this; + + }, + + convertLinearToGamma: function () { + + this.r = Math.sqrt( this.r ); + this.g = Math.sqrt( this.g ); + this.b = Math.sqrt( this.b ); + + return this; + + }, + + getHex: function () { + + return ( this.r * 255 ) << 16 ^ ( this.g * 255 ) << 8 ^ ( this.b * 255 ) << 0; + + }, + + getHexString: function () { + + return ( '000000' + this.getHex().toString( 16 ) ).slice( - 6 ); + + }, + + getHSL: function ( optionalTarget ) { + + // h,s,l ranges are in 0.0 - 1.0 + + var hsl = optionalTarget || { h: 0, s: 0, l: 0 }; + + var r = this.r, g = this.g, b = this.b; + + var max = Math.max( r, g, b ); + var min = Math.min( r, g, b ); + + var hue, saturation; + var lightness = ( min + max ) / 2.0; + + if ( min === max ) { + + hue = 0; + saturation = 0; + + } else { + + var delta = max - min; + + saturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min ); + + switch ( max ) { + + case r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break; + case g: hue = ( b - r ) / delta + 2; break; + case b: hue = ( r - g ) / delta + 4; break; + + } + + hue /= 6; + + } + + hsl.h = hue; + hsl.s = saturation; + hsl.l = lightness; + + return hsl; + + }, + + getStyle: function () { + + return 'rgb(' + ( ( this.r * 255 ) | 0 ) + ',' + ( ( this.g * 255 ) | 0 ) + ',' + ( ( this.b * 255 ) | 0 ) + ')'; + + }, + + offsetHSL: function ( h, s, l ) { + + var hsl = this.getHSL(); + + hsl.h += h; hsl.s += s; hsl.l += l; + + this.setHSL( hsl.h, hsl.s, hsl.l ); + + return this; + + }, + + add: function ( color ) { + + this.r += color.r; + this.g += color.g; + this.b += color.b; + + return this; + + }, + + addColors: function ( color1, color2 ) { + + this.r = color1.r + color2.r; + this.g = color1.g + color2.g; + this.b = color1.b + color2.b; + + return this; + + }, + + addScalar: function ( s ) { + + this.r += s; + this.g += s; + this.b += s; + + return this; + + }, + + multiply: function ( color ) { + + this.r *= color.r; + this.g *= color.g; + this.b *= color.b; + + return this; + + }, + + multiplyScalar: function ( s ) { + + this.r *= s; + this.g *= s; + this.b *= s; + + return this; + + }, + + lerp: function ( color, alpha ) { + + this.r += ( color.r - this.r ) * alpha; + this.g += ( color.g - this.g ) * alpha; + this.b += ( color.b - this.b ) * alpha; + + return this; + + }, + + equals: function ( c ) { + + return ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b ); + + }, + + fromArray: function ( array ) { + + this.r = array[ 0 ]; + this.g = array[ 1 ]; + this.b = array[ 2 ]; + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + array[ offset ] = this.r; + array[ offset + 1 ] = this.g; + array[ offset + 2 ] = this.b; + + return array; + }, + + clone: function () { + + return new THREE.Color().setRGB( this.r, this.g, this.b ); + + } + +}; + +THREE.ColorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF, +'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2, +'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50, +'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B, +'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B, +'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F, +'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3, +'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222, +'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700, +'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4, +'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00, +'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3, +'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA, +'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32, +'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3, +'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC, +'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD, +'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6, +'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9, +'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F, +'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE, +'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA, +'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0, +'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 }; + +// File:src/math/Quaternion.js + +/** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + * @author WestLangley / http://github.com/WestLangley + * @author bhouston / http://exocortex.com + */ + +THREE.Quaternion = function ( x, y, z, w ) { + + this._x = x || 0; + this._y = y || 0; + this._z = z || 0; + this._w = ( w !== undefined ) ? w : 1; + +}; + +THREE.Quaternion.prototype = { + + constructor: THREE.Quaternion, + + _x: 0,_y: 0, _z: 0, _w: 0, + + get x () { + + return this._x; + + }, + + set x ( value ) { + + this._x = value; + this.onChangeCallback(); + + }, + + get y () { + + return this._y; + + }, + + set y ( value ) { + + this._y = value; + this.onChangeCallback(); + + }, + + get z () { + + return this._z; + + }, + + set z ( value ) { + + this._z = value; + this.onChangeCallback(); + + }, + + get w () { + + return this._w; + + }, + + set w ( value ) { + + this._w = value; + this.onChangeCallback(); + + }, + + set: function ( x, y, z, w ) { + + this._x = x; + this._y = y; + this._z = z; + this._w = w; + + this.onChangeCallback(); + + return this; + + }, + + copy: function ( quaternion ) { + + this._x = quaternion.x; + this._y = quaternion.y; + this._z = quaternion.z; + this._w = quaternion.w; + + this.onChangeCallback(); + + return this; + + }, + + setFromEuler: function ( euler, update ) { + + if ( euler instanceof THREE.Euler === false ) { + + throw new Error( 'THREE.Quaternion: .setFromEuler() now expects a Euler rotation rather than a Vector3 and order.' ); + } + + // http://www.mathworks.com/matlabcentral/fileexchange/ + // 20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/ + // content/SpinCalc.m + + var c1 = Math.cos( euler._x / 2 ); + var c2 = Math.cos( euler._y / 2 ); + var c3 = Math.cos( euler._z / 2 ); + var s1 = Math.sin( euler._x / 2 ); + var s2 = Math.sin( euler._y / 2 ); + var s3 = Math.sin( euler._z / 2 ); + + if ( euler.order === 'XYZ' ) { + + this._x = s1 * c2 * c3 + c1 * s2 * s3; + this._y = c1 * s2 * c3 - s1 * c2 * s3; + this._z = c1 * c2 * s3 + s1 * s2 * c3; + this._w = c1 * c2 * c3 - s1 * s2 * s3; + + } else if ( euler.order === 'YXZ' ) { + + this._x = s1 * c2 * c3 + c1 * s2 * s3; + this._y = c1 * s2 * c3 - s1 * c2 * s3; + this._z = c1 * c2 * s3 - s1 * s2 * c3; + this._w = c1 * c2 * c3 + s1 * s2 * s3; + + } else if ( euler.order === 'ZXY' ) { + + this._x = s1 * c2 * c3 - c1 * s2 * s3; + this._y = c1 * s2 * c3 + s1 * c2 * s3; + this._z = c1 * c2 * s3 + s1 * s2 * c3; + this._w = c1 * c2 * c3 - s1 * s2 * s3; + + } else if ( euler.order === 'ZYX' ) { + + this._x = s1 * c2 * c3 - c1 * s2 * s3; + this._y = c1 * s2 * c3 + s1 * c2 * s3; + this._z = c1 * c2 * s3 - s1 * s2 * c3; + this._w = c1 * c2 * c3 + s1 * s2 * s3; + + } else if ( euler.order === 'YZX' ) { + + this._x = s1 * c2 * c3 + c1 * s2 * s3; + this._y = c1 * s2 * c3 + s1 * c2 * s3; + this._z = c1 * c2 * s3 - s1 * s2 * c3; + this._w = c1 * c2 * c3 - s1 * s2 * s3; + + } else if ( euler.order === 'XZY' ) { + + this._x = s1 * c2 * c3 - c1 * s2 * s3; + this._y = c1 * s2 * c3 - s1 * c2 * s3; + this._z = c1 * c2 * s3 + s1 * s2 * c3; + this._w = c1 * c2 * c3 + s1 * s2 * s3; + + } + + if ( update !== false ) this.onChangeCallback(); + + return this; + + }, + + setFromAxisAngle: function ( axis, angle ) { + + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm + + // assumes axis is normalized + + var halfAngle = angle / 2, s = Math.sin( halfAngle ); + + this._x = axis.x * s; + this._y = axis.y * s; + this._z = axis.z * s; + this._w = Math.cos( halfAngle ); + + this.onChangeCallback(); + + return this; + + }, + + setFromRotationMatrix: function ( m ) { + + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm + + // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) + + var te = m.elements, + + m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ], + m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ], + m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ], + + trace = m11 + m22 + m33, + s; + + if ( trace > 0 ) { + + s = 0.5 / Math.sqrt( trace + 1.0 ); + + this._w = 0.25 / s; + this._x = ( m32 - m23 ) * s; + this._y = ( m13 - m31 ) * s; + this._z = ( m21 - m12 ) * s; + + } else if ( m11 > m22 && m11 > m33 ) { + + s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 ); + + this._w = ( m32 - m23 ) / s; + this._x = 0.25 * s; + this._y = ( m12 + m21 ) / s; + this._z = ( m13 + m31 ) / s; + + } else if ( m22 > m33 ) { + + s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 ); + + this._w = ( m13 - m31 ) / s; + this._x = ( m12 + m21 ) / s; + this._y = 0.25 * s; + this._z = ( m23 + m32 ) / s; + + } else { + + s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 ); + + this._w = ( m21 - m12 ) / s; + this._x = ( m13 + m31 ) / s; + this._y = ( m23 + m32 ) / s; + this._z = 0.25 * s; + + } + + this.onChangeCallback(); + + return this; + + }, + + setFromUnitVectors: function () { + + // http://lolengine.net/blog/2014/02/24/quaternion-from-two-vectors-final + + // assumes direction vectors vFrom and vTo are normalized + + var v1, r; + + var EPS = 0.000001; + + return function ( vFrom, vTo ) { + + if ( v1 === undefined ) v1 = new THREE.Vector3(); + + r = vFrom.dot( vTo ) + 1; + + if ( r < EPS ) { + + r = 0; + + if ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) { + + v1.set( - vFrom.y, vFrom.x, 0 ); + + } else { + + v1.set( 0, - vFrom.z, vFrom.y ); + + } + + } else { + + v1.crossVectors( vFrom, vTo ); + + } + + this._x = v1.x; + this._y = v1.y; + this._z = v1.z; + this._w = r; + + this.normalize(); + + return this; + + } + + }(), + + inverse: function () { + + this.conjugate().normalize(); + + return this; + + }, + + conjugate: function () { + + this._x *= - 1; + this._y *= - 1; + this._z *= - 1; + + this.onChangeCallback(); + + return this; + + }, + + dot: function ( v ) { + + return this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w; + + }, + + lengthSq: function () { + + return this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w; + + }, + + length: function () { + + return Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w ); + + }, + + normalize: function () { + + var l = this.length(); + + if ( l === 0 ) { + + this._x = 0; + this._y = 0; + this._z = 0; + this._w = 1; + + } else { + + l = 1 / l; + + this._x = this._x * l; + this._y = this._y * l; + this._z = this._z * l; + this._w = this._w * l; + + } + + this.onChangeCallback(); + + return this; + + }, + + multiply: function ( q, p ) { + + if ( p !== undefined ) { + + THREE.warn( 'THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.' ); + return this.multiplyQuaternions( q, p ); + + } + + return this.multiplyQuaternions( this, q ); + + }, + + multiplyQuaternions: function ( a, b ) { + + // from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm + + var qax = a._x, qay = a._y, qaz = a._z, qaw = a._w; + var qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w; + + this._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby; + this._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz; + this._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx; + this._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz; + + this.onChangeCallback(); + + return this; + + }, + + multiplyVector3: function ( vector ) { + + THREE.warn( 'THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead.' ); + return vector.applyQuaternion( this ); + + }, + + slerp: function ( qb, t ) { + + if ( t === 0 ) return this; + if ( t === 1 ) return this.copy( qb ); + + var x = this._x, y = this._y, z = this._z, w = this._w; + + // http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/ + + var cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z; + + if ( cosHalfTheta < 0 ) { + + this._w = - qb._w; + this._x = - qb._x; + this._y = - qb._y; + this._z = - qb._z; + + cosHalfTheta = - cosHalfTheta; + + } else { + + this.copy( qb ); + + } + + if ( cosHalfTheta >= 1.0 ) { + + this._w = w; + this._x = x; + this._y = y; + this._z = z; + + return this; + + } + + var halfTheta = Math.acos( cosHalfTheta ); + var sinHalfTheta = Math.sqrt( 1.0 - cosHalfTheta * cosHalfTheta ); + + if ( Math.abs( sinHalfTheta ) < 0.001 ) { + + this._w = 0.5 * ( w + this._w ); + this._x = 0.5 * ( x + this._x ); + this._y = 0.5 * ( y + this._y ); + this._z = 0.5 * ( z + this._z ); + + return this; + + } + + var ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta, + ratioB = Math.sin( t * halfTheta ) / sinHalfTheta; + + this._w = ( w * ratioA + this._w * ratioB ); + this._x = ( x * ratioA + this._x * ratioB ); + this._y = ( y * ratioA + this._y * ratioB ); + this._z = ( z * ratioA + this._z * ratioB ); + + this.onChangeCallback(); + + return this; + + }, + + equals: function ( quaternion ) { + + return ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w ); + + }, + + fromArray: function ( array, offset ) { + + if ( offset === undefined ) offset = 0; + + this._x = array[ offset ]; + this._y = array[ offset + 1 ]; + this._z = array[ offset + 2 ]; + this._w = array[ offset + 3 ]; + + this.onChangeCallback(); + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + array[ offset ] = this._x; + array[ offset + 1 ] = this._y; + array[ offset + 2 ] = this._z; + array[ offset + 3 ] = this._w; + + return array; + + }, + + onChange: function ( callback ) { + + this.onChangeCallback = callback; + + return this; + + }, + + onChangeCallback: function () {}, + + clone: function () { + + return new THREE.Quaternion( this._x, this._y, this._z, this._w ); + + } + +}; + +THREE.Quaternion.slerp = function ( qa, qb, qm, t ) { + + return qm.copy( qa ).slerp( qb, t ); + +} + +// File:src/math/Vector2.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author philogb / http://blog.thejit.org/ + * @author egraether / http://egraether.com/ + * @author zz85 / http://www.lab4games.net/zz85/blog + */ + +THREE.Vector2 = function ( x, y ) { + + this.x = x || 0; + this.y = y || 0; + +}; + +THREE.Vector2.prototype = { + + constructor: THREE.Vector2, + + set: function ( x, y ) { + + this.x = x; + this.y = y; + + return this; + + }, + + setX: function ( x ) { + + this.x = x; + + return this; + + }, + + setY: function ( y ) { + + this.y = y; + + return this; + + }, + + setComponent: function ( index, value ) { + + switch ( index ) { + + case 0: this.x = value; break; + case 1: this.y = value; break; + default: throw new Error( 'index is out of range: ' + index ); + + } + + }, + + getComponent: function ( index ) { + + switch ( index ) { + + case 0: return this.x; + case 1: return this.y; + default: throw new Error( 'index is out of range: ' + index ); + + } + + }, + + copy: function ( v ) { + + this.x = v.x; + this.y = v.y; + + return this; + + }, + + add: function ( v, w ) { + + if ( w !== undefined ) { + + THREE.warn( 'THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' ); + return this.addVectors( v, w ); + + } + + this.x += v.x; + this.y += v.y; + + return this; + + }, + + addScalar: function ( s ) { + + this.x += s; + this.y += s; + + return this; + + }, + + addVectors: function ( a, b ) { + + this.x = a.x + b.x; + this.y = a.y + b.y; + + return this; + + }, + + sub: function ( v, w ) { + + if ( w !== undefined ) { + + THREE.warn( 'THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' ); + return this.subVectors( v, w ); + + } + + this.x -= v.x; + this.y -= v.y; + + return this; + + }, + + subScalar: function ( s ) { + + this.x -= s; + this.y -= s; + + return this; + + }, + + subVectors: function ( a, b ) { + + this.x = a.x - b.x; + this.y = a.y - b.y; + + return this; + + }, + + multiply: function ( v ) { + + this.x *= v.x; + this.y *= v.y; + + return this; + + }, + + multiplyScalar: function ( s ) { + + this.x *= s; + this.y *= s; + + return this; + + }, + + divide: function ( v ) { + + this.x /= v.x; + this.y /= v.y; + + return this; + + }, + + divideScalar: function ( scalar ) { + + if ( scalar !== 0 ) { + + var invScalar = 1 / scalar; + + this.x *= invScalar; + this.y *= invScalar; + + } else { + + this.x = 0; + this.y = 0; + + } + + return this; + + }, + + min: function ( v ) { + + if ( this.x > v.x ) { + + this.x = v.x; + + } + + if ( this.y > v.y ) { + + this.y = v.y; + + } + + return this; + + }, + + max: function ( v ) { + + if ( this.x < v.x ) { + + this.x = v.x; + + } + + if ( this.y < v.y ) { + + this.y = v.y; + + } + + return this; + + }, + + clamp: function ( min, max ) { + + // This function assumes min < max, if this assumption isn't true it will not operate correctly + + if ( this.x < min.x ) { + + this.x = min.x; + + } else if ( this.x > max.x ) { + + this.x = max.x; + + } + + if ( this.y < min.y ) { + + this.y = min.y; + + } else if ( this.y > max.y ) { + + this.y = max.y; + + } + + return this; + }, + + clampScalar: ( function () { + + var min, max; + + return function ( minVal, maxVal ) { + + if ( min === undefined ) { + + min = new THREE.Vector2(); + max = new THREE.Vector2(); + + } + + min.set( minVal, minVal ); + max.set( maxVal, maxVal ); + + return this.clamp( min, max ); + + }; + + } )(), + + floor: function () { + + this.x = Math.floor( this.x ); + this.y = Math.floor( this.y ); + + return this; + + }, + + ceil: function () { + + this.x = Math.ceil( this.x ); + this.y = Math.ceil( this.y ); + + return this; + + }, + + round: function () { + + this.x = Math.round( this.x ); + this.y = Math.round( this.y ); + + return this; + + }, + + roundToZero: function () { + + this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x ); + this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y ); + + return this; + + }, + + negate: function () { + + this.x = - this.x; + this.y = - this.y; + + return this; + + }, + + dot: function ( v ) { + + return this.x * v.x + this.y * v.y; + + }, + + lengthSq: function () { + + return this.x * this.x + this.y * this.y; + + }, + + length: function () { + + return Math.sqrt( this.x * this.x + this.y * this.y ); + + }, + + normalize: function () { + + return this.divideScalar( this.length() ); + + }, + + distanceTo: function ( v ) { + + return Math.sqrt( this.distanceToSquared( v ) ); + + }, + + distanceToSquared: function ( v ) { + + var dx = this.x - v.x, dy = this.y - v.y; + return dx * dx + dy * dy; + + }, + + setLength: function ( l ) { + + var oldLength = this.length(); + + if ( oldLength !== 0 && l !== oldLength ) { + + this.multiplyScalar( l / oldLength ); + } + + return this; + + }, + + lerp: function ( v, alpha ) { + + this.x += ( v.x - this.x ) * alpha; + this.y += ( v.y - this.y ) * alpha; + + return this; + + }, + + lerpVectors: function ( v1, v2, alpha ) { + + this.subVectors( v2, v1 ).multiplyScalar( alpha ).add( v1 ); + + return this; + + }, + + equals: function ( v ) { + + return ( ( v.x === this.x ) && ( v.y === this.y ) ); + + }, + + fromArray: function ( array, offset ) { + + if ( offset === undefined ) offset = 0; + + this.x = array[ offset ]; + this.y = array[ offset + 1 ]; + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + array[ offset ] = this.x; + array[ offset + 1 ] = this.y; + + return array; + + }, + + fromAttribute: function ( attribute, index, offset ) { + + if ( offset === undefined ) offset = 0; + + index = index * attribute.itemSize + offset; + + this.x = attribute.array[ index ]; + this.y = attribute.array[ index + 1 ]; + + return this; + + }, + + clone: function () { + + return new THREE.Vector2( this.x, this.y ); + + } + +}; + +// File:src/math/Vector3.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author *kile / http://kile.stravaganza.org/ + * @author philogb / http://blog.thejit.org/ + * @author mikael emtinger / http://gomo.se/ + * @author egraether / http://egraether.com/ + * @author WestLangley / http://github.com/WestLangley + */ + +THREE.Vector3 = function ( x, y, z ) { + + this.x = x || 0; + this.y = y || 0; + this.z = z || 0; + +}; + +THREE.Vector3.prototype = { + + constructor: THREE.Vector3, + + set: function ( x, y, z ) { + + this.x = x; + this.y = y; + this.z = z; + + return this; + + }, + + setX: function ( x ) { + + this.x = x; + + return this; + + }, + + setY: function ( y ) { + + this.y = y; + + return this; + + }, + + setZ: function ( z ) { + + this.z = z; + + return this; + + }, + + setComponent: function ( index, value ) { + + switch ( index ) { + + case 0: this.x = value; break; + case 1: this.y = value; break; + case 2: this.z = value; break; + default: throw new Error( 'index is out of range: ' + index ); + + } + + }, + + getComponent: function ( index ) { + + switch ( index ) { + + case 0: return this.x; + case 1: return this.y; + case 2: return this.z; + default: throw new Error( 'index is out of range: ' + index ); + + } + + }, + + copy: function ( v ) { + + this.x = v.x; + this.y = v.y; + this.z = v.z; + + return this; + + }, + + add: function ( v, w ) { + + if ( w !== undefined ) { + + THREE.warn( 'THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' ); + return this.addVectors( v, w ); + + } + + this.x += v.x; + this.y += v.y; + this.z += v.z; + + return this; + + }, + + addScalar: function ( s ) { + + this.x += s; + this.y += s; + this.z += s; + + return this; + + }, + + addVectors: function ( a, b ) { + + this.x = a.x + b.x; + this.y = a.y + b.y; + this.z = a.z + b.z; + + return this; + + }, + + sub: function ( v, w ) { + + if ( w !== undefined ) { + + THREE.warn( 'THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' ); + return this.subVectors( v, w ); + + } + + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + + return this; + + }, + + subScalar: function ( s ) { + + this.x -= s; + this.y -= s; + this.z -= s; + + return this; + + }, + + subVectors: function ( a, b ) { + + this.x = a.x - b.x; + this.y = a.y - b.y; + this.z = a.z - b.z; + + return this; + + }, + + multiply: function ( v, w ) { + + if ( w !== undefined ) { + + THREE.warn( 'THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.' ); + return this.multiplyVectors( v, w ); + + } + + this.x *= v.x; + this.y *= v.y; + this.z *= v.z; + + return this; + + }, + + multiplyScalar: function ( scalar ) { + + this.x *= scalar; + this.y *= scalar; + this.z *= scalar; + + return this; + + }, + + multiplyVectors: function ( a, b ) { + + this.x = a.x * b.x; + this.y = a.y * b.y; + this.z = a.z * b.z; + + return this; + + }, + + applyEuler: function () { + + var quaternion; + + return function ( euler ) { + + if ( euler instanceof THREE.Euler === false ) { + + THREE.error( 'THREE.Vector3: .applyEuler() now expects a Euler rotation rather than a Vector3 and order.' ); + + } + + if ( quaternion === undefined ) quaternion = new THREE.Quaternion(); + + this.applyQuaternion( quaternion.setFromEuler( euler ) ); + + return this; + + }; + + }(), + + applyAxisAngle: function () { + + var quaternion; + + return function ( axis, angle ) { + + if ( quaternion === undefined ) quaternion = new THREE.Quaternion(); + + this.applyQuaternion( quaternion.setFromAxisAngle( axis, angle ) ); + + return this; + + }; + + }(), + + applyMatrix3: function ( m ) { + + var x = this.x; + var y = this.y; + var z = this.z; + + var e = m.elements; + + this.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z; + this.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z; + this.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z; + + return this; + + }, + + applyMatrix4: function ( m ) { + + // input: THREE.Matrix4 affine matrix + + var x = this.x, y = this.y, z = this.z; + + var e = m.elements; + + this.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ]; + this.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ]; + this.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ]; + + return this; + + }, + + applyProjection: function ( m ) { + + // input: THREE.Matrix4 projection matrix + + var x = this.x, y = this.y, z = this.z; + + var e = m.elements; + var d = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] ); // perspective divide + + this.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * d; + this.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * d; + this.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * d; + + return this; + + }, + + applyQuaternion: function ( q ) { + + var x = this.x; + var y = this.y; + var z = this.z; + + var qx = q.x; + var qy = q.y; + var qz = q.z; + var qw = q.w; + + // calculate quat * vector + + var ix = qw * x + qy * z - qz * y; + var iy = qw * y + qz * x - qx * z; + var iz = qw * z + qx * y - qy * x; + var iw = - qx * x - qy * y - qz * z; + + // calculate result * inverse quat + + this.x = ix * qw + iw * - qx + iy * - qz - iz * - qy; + this.y = iy * qw + iw * - qy + iz * - qx - ix * - qz; + this.z = iz * qw + iw * - qz + ix * - qy - iy * - qx; + + return this; + + }, + + project: function () { + + var matrix; + + return function ( camera ) { + + if ( matrix === undefined ) matrix = new THREE.Matrix4(); + + matrix.multiplyMatrices( camera.projectionMatrix, matrix.getInverse( camera.matrixWorld ) ); + return this.applyProjection( matrix ); + + }; + + }(), + + unproject: function () { + + var matrix; + + return function ( camera ) { + + if ( matrix === undefined ) matrix = new THREE.Matrix4(); + + matrix.multiplyMatrices( camera.matrixWorld, matrix.getInverse( camera.projectionMatrix ) ); + return this.applyProjection( matrix ); + + }; + + }(), + + transformDirection: function ( m ) { + + // input: THREE.Matrix4 affine matrix + // vector interpreted as a direction + + var x = this.x, y = this.y, z = this.z; + + var e = m.elements; + + this.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z; + this.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z; + this.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z; + + this.normalize(); + + return this; + + }, + + divide: function ( v ) { + + this.x /= v.x; + this.y /= v.y; + this.z /= v.z; + + return this; + + }, + + divideScalar: function ( scalar ) { + + if ( scalar !== 0 ) { + + var invScalar = 1 / scalar; + + this.x *= invScalar; + this.y *= invScalar; + this.z *= invScalar; + + } else { + + this.x = 0; + this.y = 0; + this.z = 0; + + } + + return this; + + }, + + min: function ( v ) { + + if ( this.x > v.x ) { + + this.x = v.x; + + } + + if ( this.y > v.y ) { + + this.y = v.y; + + } + + if ( this.z > v.z ) { + + this.z = v.z; + + } + + return this; + + }, + + max: function ( v ) { + + if ( this.x < v.x ) { + + this.x = v.x; + + } + + if ( this.y < v.y ) { + + this.y = v.y; + + } + + if ( this.z < v.z ) { + + this.z = v.z; + + } + + return this; + + }, + + clamp: function ( min, max ) { + + // This function assumes min < max, if this assumption isn't true it will not operate correctly + + if ( this.x < min.x ) { + + this.x = min.x; + + } else if ( this.x > max.x ) { + + this.x = max.x; + + } + + if ( this.y < min.y ) { + + this.y = min.y; + + } else if ( this.y > max.y ) { + + this.y = max.y; + + } + + if ( this.z < min.z ) { + + this.z = min.z; + + } else if ( this.z > max.z ) { + + this.z = max.z; + + } + + return this; + + }, + + clampScalar: ( function () { + + var min, max; + + return function ( minVal, maxVal ) { + + if ( min === undefined ) { + + min = new THREE.Vector3(); + max = new THREE.Vector3(); + + } + + min.set( minVal, minVal, minVal ); + max.set( maxVal, maxVal, maxVal ); + + return this.clamp( min, max ); + + }; + + } )(), + + floor: function () { + + this.x = Math.floor( this.x ); + this.y = Math.floor( this.y ); + this.z = Math.floor( this.z ); + + return this; + + }, + + ceil: function () { + + this.x = Math.ceil( this.x ); + this.y = Math.ceil( this.y ); + this.z = Math.ceil( this.z ); + + return this; + + }, + + round: function () { + + this.x = Math.round( this.x ); + this.y = Math.round( this.y ); + this.z = Math.round( this.z ); + + return this; + + }, + + roundToZero: function () { + + this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x ); + this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y ); + this.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z ); + + return this; + + }, + + negate: function () { + + this.x = - this.x; + this.y = - this.y; + this.z = - this.z; + + return this; + + }, + + dot: function ( v ) { + + return this.x * v.x + this.y * v.y + this.z * v.z; + + }, + + lengthSq: function () { + + return this.x * this.x + this.y * this.y + this.z * this.z; + + }, + + length: function () { + + return Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z ); + + }, + + lengthManhattan: function () { + + return Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ); + + }, + + normalize: function () { + + return this.divideScalar( this.length() ); + + }, + + setLength: function ( l ) { + + var oldLength = this.length(); + + if ( oldLength !== 0 && l !== oldLength ) { + + this.multiplyScalar( l / oldLength ); + } + + return this; + + }, + + lerp: function ( v, alpha ) { + + this.x += ( v.x - this.x ) * alpha; + this.y += ( v.y - this.y ) * alpha; + this.z += ( v.z - this.z ) * alpha; + + return this; + + }, + + lerpVectors: function ( v1, v2, alpha ) { + + this.subVectors( v2, v1 ).multiplyScalar( alpha ).add( v1 ); + + return this; + + }, + + cross: function ( v, w ) { + + if ( w !== undefined ) { + + THREE.warn( 'THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.' ); + return this.crossVectors( v, w ); + + } + + var x = this.x, y = this.y, z = this.z; + + this.x = y * v.z - z * v.y; + this.y = z * v.x - x * v.z; + this.z = x * v.y - y * v.x; + + return this; + + }, + + crossVectors: function ( a, b ) { + + var ax = a.x, ay = a.y, az = a.z; + var bx = b.x, by = b.y, bz = b.z; + + this.x = ay * bz - az * by; + this.y = az * bx - ax * bz; + this.z = ax * by - ay * bx; + + return this; + + }, + + projectOnVector: function () { + + var v1, dot; + + return function ( vector ) { + + if ( v1 === undefined ) v1 = new THREE.Vector3(); + + v1.copy( vector ).normalize(); + + dot = this.dot( v1 ); + + return this.copy( v1 ).multiplyScalar( dot ); + + }; + + }(), + + projectOnPlane: function () { + + var v1; + + return function ( planeNormal ) { + + if ( v1 === undefined ) v1 = new THREE.Vector3(); + + v1.copy( this ).projectOnVector( planeNormal ); + + return this.sub( v1 ); + + } + + }(), + + reflect: function () { + + // reflect incident vector off plane orthogonal to normal + // normal is assumed to have unit length + + var v1; + + return function ( normal ) { + + if ( v1 === undefined ) v1 = new THREE.Vector3(); + + return this.sub( v1.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) ); + + } + + }(), + + angleTo: function ( v ) { + + var theta = this.dot( v ) / ( this.length() * v.length() ); + + // clamp, to handle numerical problems + + return Math.acos( THREE.Math.clamp( theta, - 1, 1 ) ); + + }, + + distanceTo: function ( v ) { + + return Math.sqrt( this.distanceToSquared( v ) ); + + }, + + distanceToSquared: function ( v ) { + + var dx = this.x - v.x; + var dy = this.y - v.y; + var dz = this.z - v.z; + + return dx * dx + dy * dy + dz * dz; + + }, + + setEulerFromRotationMatrix: function ( m, order ) { + + THREE.error( 'THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.' ); + + }, + + setEulerFromQuaternion: function ( q, order ) { + + THREE.error( 'THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.' ); + + }, + + getPositionFromMatrix: function ( m ) { + + THREE.warn( 'THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().' ); + + return this.setFromMatrixPosition( m ); + + }, + + getScaleFromMatrix: function ( m ) { + + THREE.warn( 'THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().' ); + + return this.setFromMatrixScale( m ); + }, + + getColumnFromMatrix: function ( index, matrix ) { + + THREE.warn( 'THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().' ); + + return this.setFromMatrixColumn( index, matrix ); + + }, + + setFromMatrixPosition: function ( m ) { + + this.x = m.elements[ 12 ]; + this.y = m.elements[ 13 ]; + this.z = m.elements[ 14 ]; + + return this; + + }, + + setFromMatrixScale: function ( m ) { + + var sx = this.set( m.elements[ 0 ], m.elements[ 1 ], m.elements[ 2 ] ).length(); + var sy = this.set( m.elements[ 4 ], m.elements[ 5 ], m.elements[ 6 ] ).length(); + var sz = this.set( m.elements[ 8 ], m.elements[ 9 ], m.elements[ 10 ] ).length(); + + this.x = sx; + this.y = sy; + this.z = sz; + + return this; + }, + + setFromMatrixColumn: function ( index, matrix ) { + + var offset = index * 4; + + var me = matrix.elements; + + this.x = me[ offset ]; + this.y = me[ offset + 1 ]; + this.z = me[ offset + 2 ]; + + return this; + + }, + + equals: function ( v ) { + + return ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) ); + + }, + + fromArray: function ( array, offset ) { + + if ( offset === undefined ) offset = 0; + + this.x = array[ offset ]; + this.y = array[ offset + 1 ]; + this.z = array[ offset + 2 ]; + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + array[ offset ] = this.x; + array[ offset + 1 ] = this.y; + array[ offset + 2 ] = this.z; + + return array; + + }, + + fromAttribute: function ( attribute, index, offset ) { + + if ( offset === undefined ) offset = 0; + + index = index * attribute.itemSize + offset; + + this.x = attribute.array[ index ]; + this.y = attribute.array[ index + 1 ]; + this.z = attribute.array[ index + 2 ]; + + return this; + + }, + + clone: function () { + + return new THREE.Vector3( this.x, this.y, this.z ); + + } + +}; + +// File:src/math/Vector4.js + +/** + * @author supereggbert / http://www.paulbrunt.co.uk/ + * @author philogb / http://blog.thejit.org/ + * @author mikael emtinger / http://gomo.se/ + * @author egraether / http://egraether.com/ + * @author WestLangley / http://github.com/WestLangley + */ + +THREE.Vector4 = function ( x, y, z, w ) { + + this.x = x || 0; + this.y = y || 0; + this.z = z || 0; + this.w = ( w !== undefined ) ? w : 1; + +}; + +THREE.Vector4.prototype = { + + constructor: THREE.Vector4, + + set: function ( x, y, z, w ) { + + this.x = x; + this.y = y; + this.z = z; + this.w = w; + + return this; + + }, + + setX: function ( x ) { + + this.x = x; + + return this; + + }, + + setY: function ( y ) { + + this.y = y; + + return this; + + }, + + setZ: function ( z ) { + + this.z = z; + + return this; + + }, + + setW: function ( w ) { + + this.w = w; + + return this; + + }, + + setComponent: function ( index, value ) { + + switch ( index ) { + + case 0: this.x = value; break; + case 1: this.y = value; break; + case 2: this.z = value; break; + case 3: this.w = value; break; + default: throw new Error( 'index is out of range: ' + index ); + + } + + }, + + getComponent: function ( index ) { + + switch ( index ) { + + case 0: return this.x; + case 1: return this.y; + case 2: return this.z; + case 3: return this.w; + default: throw new Error( 'index is out of range: ' + index ); + + } + + }, + + copy: function ( v ) { + + this.x = v.x; + this.y = v.y; + this.z = v.z; + this.w = ( v.w !== undefined ) ? v.w : 1; + + return this; + + }, + + add: function ( v, w ) { + + if ( w !== undefined ) { + + THREE.warn( 'THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' ); + return this.addVectors( v, w ); + + } + + this.x += v.x; + this.y += v.y; + this.z += v.z; + this.w += v.w; + + return this; + + }, + + addScalar: function ( s ) { + + this.x += s; + this.y += s; + this.z += s; + this.w += s; + + return this; + + }, + + addVectors: function ( a, b ) { + + this.x = a.x + b.x; + this.y = a.y + b.y; + this.z = a.z + b.z; + this.w = a.w + b.w; + + return this; + + }, + + sub: function ( v, w ) { + + if ( w !== undefined ) { + + THREE.warn( 'THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' ); + return this.subVectors( v, w ); + + } + + this.x -= v.x; + this.y -= v.y; + this.z -= v.z; + this.w -= v.w; + + return this; + + }, + + subScalar: function ( s ) { + + this.x -= s; + this.y -= s; + this.z -= s; + this.w -= s; + + return this; + + }, + + subVectors: function ( a, b ) { + + this.x = a.x - b.x; + this.y = a.y - b.y; + this.z = a.z - b.z; + this.w = a.w - b.w; + + return this; + + }, + + multiplyScalar: function ( scalar ) { + + this.x *= scalar; + this.y *= scalar; + this.z *= scalar; + this.w *= scalar; + + return this; + + }, + + applyMatrix4: function ( m ) { + + var x = this.x; + var y = this.y; + var z = this.z; + var w = this.w; + + var e = m.elements; + + this.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w; + this.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w; + this.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w; + this.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w; + + return this; + + }, + + divideScalar: function ( scalar ) { + + if ( scalar !== 0 ) { + + var invScalar = 1 / scalar; + + this.x *= invScalar; + this.y *= invScalar; + this.z *= invScalar; + this.w *= invScalar; + + } else { + + this.x = 0; + this.y = 0; + this.z = 0; + this.w = 1; + + } + + return this; + + }, + + setAxisAngleFromQuaternion: function ( q ) { + + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm + + // q is assumed to be normalized + + this.w = 2 * Math.acos( q.w ); + + var s = Math.sqrt( 1 - q.w * q.w ); + + if ( s < 0.0001 ) { + + this.x = 1; + this.y = 0; + this.z = 0; + + } else { + + this.x = q.x / s; + this.y = q.y / s; + this.z = q.z / s; + + } + + return this; + + }, + + setAxisAngleFromRotationMatrix: function ( m ) { + + // http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm + + // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) + + var angle, x, y, z, // variables for result + epsilon = 0.01, // margin to allow for rounding errors + epsilon2 = 0.1, // margin to distinguish between 0 and 180 degrees + + te = m.elements, + + m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ], + m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ], + m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ]; + + if ( ( Math.abs( m12 - m21 ) < epsilon ) + && ( Math.abs( m13 - m31 ) < epsilon ) + && ( Math.abs( m23 - m32 ) < epsilon ) ) { + + // singularity found + // first check for identity matrix which must have +1 for all terms + // in leading diagonal and zero in other terms + + if ( ( Math.abs( m12 + m21 ) < epsilon2 ) + && ( Math.abs( m13 + m31 ) < epsilon2 ) + && ( Math.abs( m23 + m32 ) < epsilon2 ) + && ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) { + + // this singularity is identity matrix so angle = 0 + + this.set( 1, 0, 0, 0 ); + + return this; // zero angle, arbitrary axis + + } + + // otherwise this singularity is angle = 180 + + angle = Math.PI; + + var xx = ( m11 + 1 ) / 2; + var yy = ( m22 + 1 ) / 2; + var zz = ( m33 + 1 ) / 2; + var xy = ( m12 + m21 ) / 4; + var xz = ( m13 + m31 ) / 4; + var yz = ( m23 + m32 ) / 4; + + if ( ( xx > yy ) && ( xx > zz ) ) { // m11 is the largest diagonal term + + if ( xx < epsilon ) { + + x = 0; + y = 0.707106781; + z = 0.707106781; + + } else { + + x = Math.sqrt( xx ); + y = xy / x; + z = xz / x; + + } + + } else if ( yy > zz ) { // m22 is the largest diagonal term + + if ( yy < epsilon ) { + + x = 0.707106781; + y = 0; + z = 0.707106781; + + } else { + + y = Math.sqrt( yy ); + x = xy / y; + z = yz / y; + + } + + } else { // m33 is the largest diagonal term so base result on this + + if ( zz < epsilon ) { + + x = 0.707106781; + y = 0.707106781; + z = 0; + + } else { + + z = Math.sqrt( zz ); + x = xz / z; + y = yz / z; + + } + + } + + this.set( x, y, z, angle ); + + return this; // return 180 deg rotation + + } + + // as we have reached here there are no singularities so we can handle normally + + var s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) + + ( m13 - m31 ) * ( m13 - m31 ) + + ( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize + + if ( Math.abs( s ) < 0.001 ) s = 1; + + // prevent divide by zero, should not happen if matrix is orthogonal and should be + // caught by singularity test above, but I've left it in just in case + + this.x = ( m32 - m23 ) / s; + this.y = ( m13 - m31 ) / s; + this.z = ( m21 - m12 ) / s; + this.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 ); + + return this; + + }, + + min: function ( v ) { + + if ( this.x > v.x ) { + + this.x = v.x; + + } + + if ( this.y > v.y ) { + + this.y = v.y; + + } + + if ( this.z > v.z ) { + + this.z = v.z; + + } + + if ( this.w > v.w ) { + + this.w = v.w; + + } + + return this; + + }, + + max: function ( v ) { + + if ( this.x < v.x ) { + + this.x = v.x; + + } + + if ( this.y < v.y ) { + + this.y = v.y; + + } + + if ( this.z < v.z ) { + + this.z = v.z; + + } + + if ( this.w < v.w ) { + + this.w = v.w; + + } + + return this; + + }, + + clamp: function ( min, max ) { + + // This function assumes min < max, if this assumption isn't true it will not operate correctly + + if ( this.x < min.x ) { + + this.x = min.x; + + } else if ( this.x > max.x ) { + + this.x = max.x; + + } + + if ( this.y < min.y ) { + + this.y = min.y; + + } else if ( this.y > max.y ) { + + this.y = max.y; + + } + + if ( this.z < min.z ) { + + this.z = min.z; + + } else if ( this.z > max.z ) { + + this.z = max.z; + + } + + if ( this.w < min.w ) { + + this.w = min.w; + + } else if ( this.w > max.w ) { + + this.w = max.w; + + } + + return this; + + }, + + clampScalar: ( function () { + + var min, max; + + return function ( minVal, maxVal ) { + + if ( min === undefined ) { + + min = new THREE.Vector4(); + max = new THREE.Vector4(); + + } + + min.set( minVal, minVal, minVal, minVal ); + max.set( maxVal, maxVal, maxVal, maxVal ); + + return this.clamp( min, max ); + + }; + + } )(), + + floor: function () { + + this.x = Math.floor( this.x ); + this.y = Math.floor( this.y ); + this.z = Math.floor( this.z ); + this.w = Math.floor( this.w ); + + return this; + + }, + + ceil: function () { + + this.x = Math.ceil( this.x ); + this.y = Math.ceil( this.y ); + this.z = Math.ceil( this.z ); + this.w = Math.ceil( this.w ); + + return this; + + }, + + round: function () { + + this.x = Math.round( this.x ); + this.y = Math.round( this.y ); + this.z = Math.round( this.z ); + this.w = Math.round( this.w ); + + return this; + + }, + + roundToZero: function () { + + this.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x ); + this.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y ); + this.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z ); + this.w = ( this.w < 0 ) ? Math.ceil( this.w ) : Math.floor( this.w ); + + return this; + + }, + + negate: function () { + + this.x = - this.x; + this.y = - this.y; + this.z = - this.z; + this.w = - this.w; + + return this; + + }, + + dot: function ( v ) { + + return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w; + + }, + + lengthSq: function () { + + return this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w; + + }, + + length: function () { + + return Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w ); + + }, + + lengthManhattan: function () { + + return Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w ); + + }, + + normalize: function () { + + return this.divideScalar( this.length() ); + + }, + + setLength: function ( l ) { + + var oldLength = this.length(); + + if ( oldLength !== 0 && l !== oldLength ) { + + this.multiplyScalar( l / oldLength ); + + } + + return this; + + }, + + lerp: function ( v, alpha ) { + + this.x += ( v.x - this.x ) * alpha; + this.y += ( v.y - this.y ) * alpha; + this.z += ( v.z - this.z ) * alpha; + this.w += ( v.w - this.w ) * alpha; + + return this; + + }, + + lerpVectors: function ( v1, v2, alpha ) { + + this.subVectors( v2, v1 ).multiplyScalar( alpha ).add( v1 ); + + return this; + + }, + + equals: function ( v ) { + + return ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) ); + + }, + + fromArray: function ( array, offset ) { + + if ( offset === undefined ) offset = 0; + + this.x = array[ offset ]; + this.y = array[ offset + 1 ]; + this.z = array[ offset + 2 ]; + this.w = array[ offset + 3 ]; + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + array[ offset ] = this.x; + array[ offset + 1 ] = this.y; + array[ offset + 2 ] = this.z; + array[ offset + 3 ] = this.w; + + return array; + + }, + + fromAttribute: function ( attribute, index, offset ) { + + if ( offset === undefined ) offset = 0; + + index = index * attribute.itemSize + offset; + + this.x = attribute.array[ index ]; + this.y = attribute.array[ index + 1 ]; + this.z = attribute.array[ index + 2 ]; + this.w = attribute.array[ index + 3 ]; + + return this; + + }, + + clone: function () { + + return new THREE.Vector4( this.x, this.y, this.z, this.w ); + + } + +}; + +// File:src/math/Euler.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author WestLangley / http://github.com/WestLangley + * @author bhouston / http://exocortex.com + */ + +THREE.Euler = function ( x, y, z, order ) { + + this._x = x || 0; + this._y = y || 0; + this._z = z || 0; + this._order = order || THREE.Euler.DefaultOrder; + +}; + +THREE.Euler.RotationOrders = [ 'XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX' ]; + +THREE.Euler.DefaultOrder = 'XYZ'; + +THREE.Euler.prototype = { + + constructor: THREE.Euler, + + _x: 0, _y: 0, _z: 0, _order: THREE.Euler.DefaultOrder, + + get x () { + + return this._x; + + }, + + set x ( value ) { + + this._x = value; + this.onChangeCallback(); + + }, + + get y () { + + return this._y; + + }, + + set y ( value ) { + + this._y = value; + this.onChangeCallback(); + + }, + + get z () { + + return this._z; + + }, + + set z ( value ) { + + this._z = value; + this.onChangeCallback(); + + }, + + get order () { + + return this._order; + + }, + + set order ( value ) { + + this._order = value; + this.onChangeCallback(); + + }, + + set: function ( x, y, z, order ) { + + this._x = x; + this._y = y; + this._z = z; + this._order = order || this._order; + + this.onChangeCallback(); + + return this; + + }, + + copy: function ( euler ) { + + this._x = euler._x; + this._y = euler._y; + this._z = euler._z; + this._order = euler._order; + + this.onChangeCallback(); + + return this; + + }, + + setFromRotationMatrix: function ( m, order, update ) { + + var clamp = THREE.Math.clamp; + + // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) + + var te = m.elements; + var m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ]; + var m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ]; + var m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ]; + + order = order || this._order; + + if ( order === 'XYZ' ) { + + this._y = Math.asin( clamp( m13, - 1, 1 ) ); + + if ( Math.abs( m13 ) < 0.99999 ) { + + this._x = Math.atan2( - m23, m33 ); + this._z = Math.atan2( - m12, m11 ); + + } else { + + this._x = Math.atan2( m32, m22 ); + this._z = 0; + + } + + } else if ( order === 'YXZ' ) { + + this._x = Math.asin( - clamp( m23, - 1, 1 ) ); + + if ( Math.abs( m23 ) < 0.99999 ) { + + this._y = Math.atan2( m13, m33 ); + this._z = Math.atan2( m21, m22 ); + + } else { + + this._y = Math.atan2( - m31, m11 ); + this._z = 0; + + } + + } else if ( order === 'ZXY' ) { + + this._x = Math.asin( clamp( m32, - 1, 1 ) ); + + if ( Math.abs( m32 ) < 0.99999 ) { + + this._y = Math.atan2( - m31, m33 ); + this._z = Math.atan2( - m12, m22 ); + + } else { + + this._y = 0; + this._z = Math.atan2( m21, m11 ); + + } + + } else if ( order === 'ZYX' ) { + + this._y = Math.asin( - clamp( m31, - 1, 1 ) ); + + if ( Math.abs( m31 ) < 0.99999 ) { + + this._x = Math.atan2( m32, m33 ); + this._z = Math.atan2( m21, m11 ); + + } else { + + this._x = 0; + this._z = Math.atan2( - m12, m22 ); + + } + + } else if ( order === 'YZX' ) { + + this._z = Math.asin( clamp( m21, - 1, 1 ) ); + + if ( Math.abs( m21 ) < 0.99999 ) { + + this._x = Math.atan2( - m23, m22 ); + this._y = Math.atan2( - m31, m11 ); + + } else { + + this._x = 0; + this._y = Math.atan2( m13, m33 ); + + } + + } else if ( order === 'XZY' ) { + + this._z = Math.asin( - clamp( m12, - 1, 1 ) ); + + if ( Math.abs( m12 ) < 0.99999 ) { + + this._x = Math.atan2( m32, m22 ); + this._y = Math.atan2( m13, m11 ); + + } else { + + this._x = Math.atan2( - m23, m33 ); + this._y = 0; + + } + + } else { + + THREE.warn( 'THREE.Euler: .setFromRotationMatrix() given unsupported order: ' + order ) + + } + + this._order = order; + + if ( update !== false ) this.onChangeCallback(); + + return this; + + }, + + setFromQuaternion: function () { + + var matrix; + + return function ( q, order, update ) { + + if ( matrix === undefined ) matrix = new THREE.Matrix4(); + matrix.makeRotationFromQuaternion( q ); + this.setFromRotationMatrix( matrix, order, update ); + + return this; + + }; + + }(), + + setFromVector3: function ( v, order ) { + + return this.set( v.x, v.y, v.z, order || this._order ); + + }, + + reorder: function () { + + // WARNING: this discards revolution information -bhouston + + var q = new THREE.Quaternion(); + + return function ( newOrder ) { + + q.setFromEuler( this ); + this.setFromQuaternion( q, newOrder ); + + }; + + }(), + + equals: function ( euler ) { + + return ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order ); + + }, + + fromArray: function ( array ) { + + this._x = array[ 0 ]; + this._y = array[ 1 ]; + this._z = array[ 2 ]; + if ( array[ 3 ] !== undefined ) this._order = array[ 3 ]; + + this.onChangeCallback(); + + return this; + + }, + + toArray: function ( array, offset ) { + + if ( array === undefined ) array = []; + if ( offset === undefined ) offset = 0; + + array[ offset ] = this._x; + array[ offset + 1 ] = this._y; + array[ offset + 2 ] = this._z; + array[ offset + 3 ] = this._order; + + return array; + }, + + toVector3: function ( optionalResult ) { + + if ( optionalResult ) { + + return optionalResult.set( this._x, this._y, this._z ); + + } else { + + return new THREE.Vector3( this._x, this._y, this._z ); + + } + + }, + + onChange: function ( callback ) { + + this.onChangeCallback = callback; + + return this; + + }, + + onChangeCallback: function () {}, + + clone: function () { + + return new THREE.Euler( this._x, this._y, this._z, this._order ); + + } + +}; + +// File:src/math/Line3.js + +/** + * @author bhouston / http://exocortex.com + */ + +THREE.Line3 = function ( start, end ) { + + this.start = ( start !== undefined ) ? start : new THREE.Vector3(); + this.end = ( end !== undefined ) ? end : new THREE.Vector3(); + +}; + +THREE.Line3.prototype = { + + constructor: THREE.Line3, + + set: function ( start, end ) { + + this.start.copy( start ); + this.end.copy( end ); + + return this; + + }, + + copy: function ( line ) { + + this.start.copy( line.start ); + this.end.copy( line.end ); + + return this; + + }, + + center: function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + return result.addVectors( this.start, this.end ).multiplyScalar( 0.5 ); + + }, + + delta: function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + return result.subVectors( this.end, this.start ); + + }, + + distanceSq: function () { + + return this.start.distanceToSquared( this.end ); + + }, + + distance: function () { + + return this.start.distanceTo( this.end ); + + }, + + at: function ( t, optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + + return this.delta( result ).multiplyScalar( t ).add( this.start ); + + }, + + closestPointToPointParameter: function () { + + var startP = new THREE.Vector3(); + var startEnd = new THREE.Vector3(); + + return function ( point, clampToLine ) { + + startP.subVectors( point, this.start ); + startEnd.subVectors( this.end, this.start ); + + var startEnd2 = startEnd.dot( startEnd ); + var startEnd_startP = startEnd.dot( startP ); + + var t = startEnd_startP / startEnd2; + + if ( clampToLine ) { + + t = THREE.Math.clamp( t, 0, 1 ); + + } + + return t; + + }; + + }(), + + closestPointToPoint: function ( point, clampToLine, optionalTarget ) { + + var t = this.closestPointToPointParameter( point, clampToLine ); + + var result = optionalTarget || new THREE.Vector3(); + + return this.delta( result ).multiplyScalar( t ).add( this.start ); + + }, + + applyMatrix4: function ( matrix ) { + + this.start.applyMatrix4( matrix ); + this.end.applyMatrix4( matrix ); + + return this; + + }, + + equals: function ( line ) { + + return line.start.equals( this.start ) && line.end.equals( this.end ); + + }, + + clone: function () { + + return new THREE.Line3().copy( this ); + + } + +}; + +// File:src/math/Box2.js + +/** + * @author bhouston / http://exocortex.com + */ + +THREE.Box2 = function ( min, max ) { + + this.min = ( min !== undefined ) ? min : new THREE.Vector2( Infinity, Infinity ); + this.max = ( max !== undefined ) ? max : new THREE.Vector2( - Infinity, - Infinity ); + +}; + +THREE.Box2.prototype = { + + constructor: THREE.Box2, + + set: function ( min, max ) { + + this.min.copy( min ); + this.max.copy( max ); + + return this; + + }, + + setFromPoints: function ( points ) { + + this.makeEmpty(); + + for ( var i = 0, il = points.length; i < il; i ++ ) { + + this.expandByPoint( points[ i ] ) + + } + + return this; + + }, + + setFromCenterAndSize: function () { + + var v1 = new THREE.Vector2(); + + return function ( center, size ) { + + var halfSize = v1.copy( size ).multiplyScalar( 0.5 ); + this.min.copy( center ).sub( halfSize ); + this.max.copy( center ).add( halfSize ); + + return this; + + }; + + }(), + + copy: function ( box ) { + + this.min.copy( box.min ); + this.max.copy( box.max ); + + return this; + + }, + + makeEmpty: function () { + + this.min.x = this.min.y = Infinity; + this.max.x = this.max.y = - Infinity; + + return this; + + }, + + empty: function () { + + // this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes + + return ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ); + + }, + + center: function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Vector2(); + return result.addVectors( this.min, this.max ).multiplyScalar( 0.5 ); + + }, + + size: function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Vector2(); + return result.subVectors( this.max, this.min ); + + }, + + expandByPoint: function ( point ) { + + this.min.min( point ); + this.max.max( point ); + + return this; + }, + + expandByVector: function ( vector ) { + + this.min.sub( vector ); + this.max.add( vector ); + + return this; + }, + + expandByScalar: function ( scalar ) { + + this.min.addScalar( - scalar ); + this.max.addScalar( scalar ); + + return this; + }, + + containsPoint: function ( point ) { + + if ( point.x < this.min.x || point.x > this.max.x || + point.y < this.min.y || point.y > this.max.y ) { + + return false; + + } + + return true; + + }, + + containsBox: function ( box ) { + + if ( ( this.min.x <= box.min.x ) && ( box.max.x <= this.max.x ) && + ( this.min.y <= box.min.y ) && ( box.max.y <= this.max.y ) ) { + + return true; + + } + + return false; + + }, + + getParameter: function ( point, optionalTarget ) { + + // This can potentially have a divide by zero if the box + // has a size dimension of 0. + + var result = optionalTarget || new THREE.Vector2(); + + return result.set( + ( point.x - this.min.x ) / ( this.max.x - this.min.x ), + ( point.y - this.min.y ) / ( this.max.y - this.min.y ) + ); + + }, + + isIntersectionBox: function ( box ) { + + // using 6 splitting planes to rule out intersections. + + if ( box.max.x < this.min.x || box.min.x > this.max.x || + box.max.y < this.min.y || box.min.y > this.max.y ) { + + return false; + + } + + return true; + + }, + + clampPoint: function ( point, optionalTarget ) { + + var result = optionalTarget || new THREE.Vector2(); + return result.copy( point ).clamp( this.min, this.max ); + + }, + + distanceToPoint: function () { + + var v1 = new THREE.Vector2(); + + return function ( point ) { + + var clampedPoint = v1.copy( point ).clamp( this.min, this.max ); + return clampedPoint.sub( point ).length(); + + }; + + }(), + + intersect: function ( box ) { + + this.min.max( box.min ); + this.max.min( box.max ); + + return this; + + }, + + union: function ( box ) { + + this.min.min( box.min ); + this.max.max( box.max ); + + return this; + + }, + + translate: function ( offset ) { + + this.min.add( offset ); + this.max.add( offset ); + + return this; + + }, + + equals: function ( box ) { + + return box.min.equals( this.min ) && box.max.equals( this.max ); + + }, + + clone: function () { + + return new THREE.Box2().copy( this ); + + } + +}; + +// File:src/math/Box3.js + +/** + * @author bhouston / http://exocortex.com + * @author WestLangley / http://github.com/WestLangley + */ + +THREE.Box3 = function ( min, max ) { + + this.min = ( min !== undefined ) ? min : new THREE.Vector3( Infinity, Infinity, Infinity ); + this.max = ( max !== undefined ) ? max : new THREE.Vector3( - Infinity, - Infinity, - Infinity ); + +}; + +THREE.Box3.prototype = { + + constructor: THREE.Box3, + + set: function ( min, max ) { + + this.min.copy( min ); + this.max.copy( max ); + + return this; + + }, + + setFromPoints: function ( points ) { + + this.makeEmpty(); + + for ( var i = 0, il = points.length; i < il; i ++ ) { + + this.expandByPoint( points[ i ] ) + + } + + return this; + + }, + + setFromCenterAndSize: function () { + + var v1 = new THREE.Vector3(); + + return function ( center, size ) { + + var halfSize = v1.copy( size ).multiplyScalar( 0.5 ); + + this.min.copy( center ).sub( halfSize ); + this.max.copy( center ).add( halfSize ); + + return this; + + }; + + }(), + + setFromObject: function () { + + // Computes the world-axis-aligned bounding box of an object (including its children), + // accounting for both the object's, and childrens', world transforms + + var v1 = new THREE.Vector3(); + + return function ( object ) { + + var scope = this; + + object.updateMatrixWorld( true ); + + this.makeEmpty(); + + object.traverse( function ( node ) { + + var geometry = node.geometry; + + if ( geometry !== undefined ) { + + if ( geometry instanceof THREE.Geometry ) { + + var vertices = geometry.vertices; + + for ( var i = 0, il = vertices.length; i < il; i ++ ) { + + v1.copy( vertices[ i ] ); + + v1.applyMatrix4( node.matrixWorld ); + + scope.expandByPoint( v1 ); + + } + + } else if ( geometry instanceof THREE.BufferGeometry && geometry.attributes[ 'position' ] !== undefined ) { + + var positions = geometry.attributes[ 'position' ].array; + + for ( var i = 0, il = positions.length; i < il; i += 3 ) { + + v1.set( positions[ i ], positions[ i + 1 ], positions[ i + 2 ] ); + + v1.applyMatrix4( node.matrixWorld ); + + scope.expandByPoint( v1 ); + + } + + } + + } + + } ); + + return this; + + }; + + }(), + + copy: function ( box ) { + + this.min.copy( box.min ); + this.max.copy( box.max ); + + return this; + + }, + + makeEmpty: function () { + + this.min.x = this.min.y = this.min.z = Infinity; + this.max.x = this.max.y = this.max.z = - Infinity; + + return this; + + }, + + empty: function () { + + // this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes + + return ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z ); + + }, + + center: function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + return result.addVectors( this.min, this.max ).multiplyScalar( 0.5 ); + + }, + + size: function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + return result.subVectors( this.max, this.min ); + + }, + + expandByPoint: function ( point ) { + + this.min.min( point ); + this.max.max( point ); + + return this; + + }, + + expandByVector: function ( vector ) { + + this.min.sub( vector ); + this.max.add( vector ); + + return this; + + }, + + expandByScalar: function ( scalar ) { + + this.min.addScalar( - scalar ); + this.max.addScalar( scalar ); + + return this; + + }, + + containsPoint: function ( point ) { + + if ( point.x < this.min.x || point.x > this.max.x || + point.y < this.min.y || point.y > this.max.y || + point.z < this.min.z || point.z > this.max.z ) { + + return false; + + } + + return true; + + }, + + containsBox: function ( box ) { + + if ( ( this.min.x <= box.min.x ) && ( box.max.x <= this.max.x ) && + ( this.min.y <= box.min.y ) && ( box.max.y <= this.max.y ) && + ( this.min.z <= box.min.z ) && ( box.max.z <= this.max.z ) ) { + + return true; + + } + + return false; + + }, + + getParameter: function ( point, optionalTarget ) { + + // This can potentially have a divide by zero if the box + // has a size dimension of 0. + + var result = optionalTarget || new THREE.Vector3(); + + return result.set( + ( point.x - this.min.x ) / ( this.max.x - this.min.x ), + ( point.y - this.min.y ) / ( this.max.y - this.min.y ), + ( point.z - this.min.z ) / ( this.max.z - this.min.z ) + ); + + }, + + isIntersectionBox: function ( box ) { + + // using 6 splitting planes to rule out intersections. + + if ( box.max.x < this.min.x || box.min.x > this.max.x || + box.max.y < this.min.y || box.min.y > this.max.y || + box.max.z < this.min.z || box.min.z > this.max.z ) { + + return false; + + } + + return true; + + }, + + clampPoint: function ( point, optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + return result.copy( point ).clamp( this.min, this.max ); + + }, + + distanceToPoint: function () { + + var v1 = new THREE.Vector3(); + + return function ( point ) { + + var clampedPoint = v1.copy( point ).clamp( this.min, this.max ); + return clampedPoint.sub( point ).length(); + + }; + + }(), + + getBoundingSphere: function () { + + var v1 = new THREE.Vector3(); + + return function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Sphere(); + + result.center = this.center(); + result.radius = this.size( v1 ).length() * 0.5; + + return result; + + }; + + }(), + + intersect: function ( box ) { + + this.min.max( box.min ); + this.max.min( box.max ); + + return this; + + }, + + union: function ( box ) { + + this.min.min( box.min ); + this.max.max( box.max ); + + return this; + + }, + + applyMatrix4: function () { + + var points = [ + new THREE.Vector3(), + new THREE.Vector3(), + new THREE.Vector3(), + new THREE.Vector3(), + new THREE.Vector3(), + new THREE.Vector3(), + new THREE.Vector3(), + new THREE.Vector3() + ]; + + return function ( matrix ) { + + // NOTE: I am using a binary pattern to specify all 2^3 combinations below + points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000 + points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001 + points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010 + points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011 + points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100 + points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101 + points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110 + points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111 + + this.makeEmpty(); + this.setFromPoints( points ); + + return this; + + }; + + }(), + + translate: function ( offset ) { + + this.min.add( offset ); + this.max.add( offset ); + + return this; + + }, + + equals: function ( box ) { + + return box.min.equals( this.min ) && box.max.equals( this.max ); + + }, + + clone: function () { + + return new THREE.Box3().copy( this ); + + } + +}; + +// File:src/math/Matrix3.js + +/** + * @author alteredq / http://alteredqualia.com/ + * @author WestLangley / http://github.com/WestLangley + * @author bhouston / http://exocortex.com + */ + +THREE.Matrix3 = function () { + + this.elements = new Float32Array( [ + + 1, 0, 0, + 0, 1, 0, + 0, 0, 1 + + ] ); + + if ( arguments.length > 0 ) { + + THREE.error( 'THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.' ); + + } + +}; + +THREE.Matrix3.prototype = { + + constructor: THREE.Matrix3, + + set: function ( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) { + + var te = this.elements; + + te[ 0 ] = n11; te[ 3 ] = n12; te[ 6 ] = n13; + te[ 1 ] = n21; te[ 4 ] = n22; te[ 7 ] = n23; + te[ 2 ] = n31; te[ 5 ] = n32; te[ 8 ] = n33; + + return this; + + }, + + identity: function () { + + this.set( + + 1, 0, 0, + 0, 1, 0, + 0, 0, 1 + + ); + + return this; + + }, + + copy: function ( m ) { + + var me = m.elements; + + this.set( + + me[ 0 ], me[ 3 ], me[ 6 ], + me[ 1 ], me[ 4 ], me[ 7 ], + me[ 2 ], me[ 5 ], me[ 8 ] + + ); + + return this; + + }, + + multiplyVector3: function ( vector ) { + + THREE.warn( 'THREE.Matrix3: .multiplyVector3() has been removed. Use vector.applyMatrix3( matrix ) instead.' ); + return vector.applyMatrix3( this ); + + }, + + multiplyVector3Array: function ( a ) { + + THREE.warn( 'THREE.Matrix3: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.' ); + return this.applyToVector3Array( a ); + + }, + + applyToVector3Array: function () { + + var v1 = new THREE.Vector3(); + + return function ( array, offset, length ) { + + if ( offset === undefined ) offset = 0; + if ( length === undefined ) length = array.length; + + for ( var i = 0, j = offset; i < length; i += 3, j += 3 ) { + + v1.x = array[ j ]; + v1.y = array[ j + 1 ]; + v1.z = array[ j + 2 ]; + + v1.applyMatrix3( this ); + + array[ j ] = v1.x; + array[ j + 1 ] = v1.y; + array[ j + 2 ] = v1.z; + + } + + return array; + + }; + + }(), + + multiplyScalar: function ( s ) { + + var te = this.elements; + + te[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s; + te[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s; + te[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s; + + return this; + + }, + + determinant: function () { + + var te = this.elements; + + var a = te[ 0 ], b = te[ 1 ], c = te[ 2 ], + d = te[ 3 ], e = te[ 4 ], f = te[ 5 ], + g = te[ 6 ], h = te[ 7 ], i = te[ 8 ]; + + return a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g; + + }, + + getInverse: function ( matrix, throwOnInvertible ) { + + // input: THREE.Matrix4 + // ( based on http://code.google.com/p/webgl-mjs/ ) + + var me = matrix.elements; + var te = this.elements; + + te[ 0 ] = me[ 10 ] * me[ 5 ] - me[ 6 ] * me[ 9 ]; + te[ 1 ] = - me[ 10 ] * me[ 1 ] + me[ 2 ] * me[ 9 ]; + te[ 2 ] = me[ 6 ] * me[ 1 ] - me[ 2 ] * me[ 5 ]; + te[ 3 ] = - me[ 10 ] * me[ 4 ] + me[ 6 ] * me[ 8 ]; + te[ 4 ] = me[ 10 ] * me[ 0 ] - me[ 2 ] * me[ 8 ]; + te[ 5 ] = - me[ 6 ] * me[ 0 ] + me[ 2 ] * me[ 4 ]; + te[ 6 ] = me[ 9 ] * me[ 4 ] - me[ 5 ] * me[ 8 ]; + te[ 7 ] = - me[ 9 ] * me[ 0 ] + me[ 1 ] * me[ 8 ]; + te[ 8 ] = me[ 5 ] * me[ 0 ] - me[ 1 ] * me[ 4 ]; + + var det = me[ 0 ] * te[ 0 ] + me[ 1 ] * te[ 3 ] + me[ 2 ] * te[ 6 ]; + + // no inverse + + if ( det === 0 ) { + + var msg = "Matrix3.getInverse(): can't invert matrix, determinant is 0"; + + if ( throwOnInvertible || false ) { + + throw new Error( msg ); + + } else { + + THREE.warn( msg ); + + } + + this.identity(); + + return this; + + } + + this.multiplyScalar( 1.0 / det ); + + return this; + + }, + + transpose: function () { + + var tmp, m = this.elements; + + tmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp; + tmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp; + tmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp; + + return this; + + }, + + flattenToArrayOffset: function ( array, offset ) { + + var te = this.elements; + + array[ offset ] = te[ 0 ]; + array[ offset + 1 ] = te[ 1 ]; + array[ offset + 2 ] = te[ 2 ]; + + array[ offset + 3 ] = te[ 3 ]; + array[ offset + 4 ] = te[ 4 ]; + array[ offset + 5 ] = te[ 5 ]; + + array[ offset + 6 ] = te[ 6 ]; + array[ offset + 7 ] = te[ 7 ]; + array[ offset + 8 ] = te[ 8 ]; + + return array; + + }, + + getNormalMatrix: function ( m ) { + + // input: THREE.Matrix4 + + this.getInverse( m ).transpose(); + + return this; + + }, + + transposeIntoArray: function ( r ) { + + var m = this.elements; + + r[ 0 ] = m[ 0 ]; + r[ 1 ] = m[ 3 ]; + r[ 2 ] = m[ 6 ]; + r[ 3 ] = m[ 1 ]; + r[ 4 ] = m[ 4 ]; + r[ 5 ] = m[ 7 ]; + r[ 6 ] = m[ 2 ]; + r[ 7 ] = m[ 5 ]; + r[ 8 ] = m[ 8 ]; + + return this; + + }, + + fromArray: function ( array ) { + + this.elements.set( array ); + + return this; + + }, + + toArray: function () { + + var te = this.elements; + + return [ + te[ 0 ], te[ 1 ], te[ 2 ], + te[ 3 ], te[ 4 ], te[ 5 ], + te[ 6 ], te[ 7 ], te[ 8 ] + ]; + + }, + + clone: function () { + + return new THREE.Matrix3().fromArray( this.elements ); + + } + +}; + +// File:src/math/Matrix4.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author supereggbert / http://www.paulbrunt.co.uk/ + * @author philogb / http://blog.thejit.org/ + * @author jordi_ros / http://plattsoft.com + * @author D1plo1d / http://github.com/D1plo1d + * @author alteredq / http://alteredqualia.com/ + * @author mikael emtinger / http://gomo.se/ + * @author timknip / http://www.floorplanner.com/ + * @author bhouston / http://exocortex.com + * @author WestLangley / http://github.com/WestLangley + */ + +THREE.Matrix4 = function () { + + this.elements = new Float32Array( [ + + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + + ] ); + + if ( arguments.length > 0 ) { + + THREE.error( 'THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.' ); + + } + +}; + +THREE.Matrix4.prototype = { + + constructor: THREE.Matrix4, + + set: function ( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) { + + var te = this.elements; + + te[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14; + te[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24; + te[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34; + te[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44; + + return this; + + }, + + identity: function () { + + this.set( + + 1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + + ); + + return this; + + }, + + copy: function ( m ) { + + this.elements.set( m.elements ); + + return this; + + }, + + extractPosition: function ( m ) { + + THREE.warn( 'THREE.Matrix4: .extractPosition() has been renamed to .copyPosition().' ); + return this.copyPosition( m ); + + }, + + copyPosition: function ( m ) { + + var te = this.elements; + var me = m.elements; + + te[ 12 ] = me[ 12 ]; + te[ 13 ] = me[ 13 ]; + te[ 14 ] = me[ 14 ]; + + return this; + + }, + + extractBasis: function ( xAxis, yAxis, zAxis ) { + + var te = this.elements; + + xAxis.set( te[ 0 ], te[ 1 ], te[ 2 ] ); + yAxis.set( te[ 4 ], te[ 5 ], te[ 6 ] ); + zAxis.set( te[ 8 ], te[ 9 ], te[ 10 ] ); + + return this; + + }, + + makeBasis: function ( xAxis, yAxis, zAxis ) { + + this.set( + xAxis.x, yAxis.x, zAxis.x, 0, + xAxis.y, yAxis.y, zAxis.y, 0, + xAxis.z, yAxis.z, zAxis.z, 0, + 0, 0, 0, 1 + ); + + return this; + + }, + + extractRotation: function () { + + var v1 = new THREE.Vector3(); + + return function ( m ) { + + var te = this.elements; + var me = m.elements; + + var scaleX = 1 / v1.set( me[ 0 ], me[ 1 ], me[ 2 ] ).length(); + var scaleY = 1 / v1.set( me[ 4 ], me[ 5 ], me[ 6 ] ).length(); + var scaleZ = 1 / v1.set( me[ 8 ], me[ 9 ], me[ 10 ] ).length(); + + te[ 0 ] = me[ 0 ] * scaleX; + te[ 1 ] = me[ 1 ] * scaleX; + te[ 2 ] = me[ 2 ] * scaleX; + + te[ 4 ] = me[ 4 ] * scaleY; + te[ 5 ] = me[ 5 ] * scaleY; + te[ 6 ] = me[ 6 ] * scaleY; + + te[ 8 ] = me[ 8 ] * scaleZ; + te[ 9 ] = me[ 9 ] * scaleZ; + te[ 10 ] = me[ 10 ] * scaleZ; + + return this; + + }; + + }(), + + makeRotationFromEuler: function ( euler ) { + + if ( euler instanceof THREE.Euler === false ) { + + THREE.error( 'THREE.Matrix: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.' ); + + } + + var te = this.elements; + + var x = euler.x, y = euler.y, z = euler.z; + var a = Math.cos( x ), b = Math.sin( x ); + var c = Math.cos( y ), d = Math.sin( y ); + var e = Math.cos( z ), f = Math.sin( z ); + + if ( euler.order === 'XYZ' ) { + + var ae = a * e, af = a * f, be = b * e, bf = b * f; + + te[ 0 ] = c * e; + te[ 4 ] = - c * f; + te[ 8 ] = d; + + te[ 1 ] = af + be * d; + te[ 5 ] = ae - bf * d; + te[ 9 ] = - b * c; + + te[ 2 ] = bf - ae * d; + te[ 6 ] = be + af * d; + te[ 10 ] = a * c; + + } else if ( euler.order === 'YXZ' ) { + + var ce = c * e, cf = c * f, de = d * e, df = d * f; + + te[ 0 ] = ce + df * b; + te[ 4 ] = de * b - cf; + te[ 8 ] = a * d; + + te[ 1 ] = a * f; + te[ 5 ] = a * e; + te[ 9 ] = - b; + + te[ 2 ] = cf * b - de; + te[ 6 ] = df + ce * b; + te[ 10 ] = a * c; + + } else if ( euler.order === 'ZXY' ) { + + var ce = c * e, cf = c * f, de = d * e, df = d * f; + + te[ 0 ] = ce - df * b; + te[ 4 ] = - a * f; + te[ 8 ] = de + cf * b; + + te[ 1 ] = cf + de * b; + te[ 5 ] = a * e; + te[ 9 ] = df - ce * b; + + te[ 2 ] = - a * d; + te[ 6 ] = b; + te[ 10 ] = a * c; + + } else if ( euler.order === 'ZYX' ) { + + var ae = a * e, af = a * f, be = b * e, bf = b * f; + + te[ 0 ] = c * e; + te[ 4 ] = be * d - af; + te[ 8 ] = ae * d + bf; + + te[ 1 ] = c * f; + te[ 5 ] = bf * d + ae; + te[ 9 ] = af * d - be; + + te[ 2 ] = - d; + te[ 6 ] = b * c; + te[ 10 ] = a * c; + + } else if ( euler.order === 'YZX' ) { + + var ac = a * c, ad = a * d, bc = b * c, bd = b * d; + + te[ 0 ] = c * e; + te[ 4 ] = bd - ac * f; + te[ 8 ] = bc * f + ad; + + te[ 1 ] = f; + te[ 5 ] = a * e; + te[ 9 ] = - b * e; + + te[ 2 ] = - d * e; + te[ 6 ] = ad * f + bc; + te[ 10 ] = ac - bd * f; + + } else if ( euler.order === 'XZY' ) { + + var ac = a * c, ad = a * d, bc = b * c, bd = b * d; + + te[ 0 ] = c * e; + te[ 4 ] = - f; + te[ 8 ] = d * e; + + te[ 1 ] = ac * f + bd; + te[ 5 ] = a * e; + te[ 9 ] = ad * f - bc; + + te[ 2 ] = bc * f - ad; + te[ 6 ] = b * e; + te[ 10 ] = bd * f + ac; + + } + + // last column + te[ 3 ] = 0; + te[ 7 ] = 0; + te[ 11 ] = 0; + + // bottom row + te[ 12 ] = 0; + te[ 13 ] = 0; + te[ 14 ] = 0; + te[ 15 ] = 1; + + return this; + + }, + + setRotationFromQuaternion: function ( q ) { + + THREE.warn( 'THREE.Matrix4: .setRotationFromQuaternion() has been renamed to .makeRotationFromQuaternion().' ); + + return this.makeRotationFromQuaternion( q ); + + }, + + makeRotationFromQuaternion: function ( q ) { + + var te = this.elements; + + var x = q.x, y = q.y, z = q.z, w = q.w; + var x2 = x + x, y2 = y + y, z2 = z + z; + var xx = x * x2, xy = x * y2, xz = x * z2; + var yy = y * y2, yz = y * z2, zz = z * z2; + var wx = w * x2, wy = w * y2, wz = w * z2; + + te[ 0 ] = 1 - ( yy + zz ); + te[ 4 ] = xy - wz; + te[ 8 ] = xz + wy; + + te[ 1 ] = xy + wz; + te[ 5 ] = 1 - ( xx + zz ); + te[ 9 ] = yz - wx; + + te[ 2 ] = xz - wy; + te[ 6 ] = yz + wx; + te[ 10 ] = 1 - ( xx + yy ); + + // last column + te[ 3 ] = 0; + te[ 7 ] = 0; + te[ 11 ] = 0; + + // bottom row + te[ 12 ] = 0; + te[ 13 ] = 0; + te[ 14 ] = 0; + te[ 15 ] = 1; + + return this; + + }, + + lookAt: function () { + + var x = new THREE.Vector3(); + var y = new THREE.Vector3(); + var z = new THREE.Vector3(); + + return function ( eye, target, up ) { + + var te = this.elements; + + z.subVectors( eye, target ).normalize(); + + if ( z.length() === 0 ) { + + z.z = 1; + + } + + x.crossVectors( up, z ).normalize(); + + if ( x.length() === 0 ) { + + z.x += 0.0001; + x.crossVectors( up, z ).normalize(); + + } + + y.crossVectors( z, x ); + + + te[ 0 ] = x.x; te[ 4 ] = y.x; te[ 8 ] = z.x; + te[ 1 ] = x.y; te[ 5 ] = y.y; te[ 9 ] = z.y; + te[ 2 ] = x.z; te[ 6 ] = y.z; te[ 10 ] = z.z; + + return this; + + }; + + }(), + + multiply: function ( m, n ) { + + if ( n !== undefined ) { + + THREE.warn( 'THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.' ); + return this.multiplyMatrices( m, n ); + + } + + return this.multiplyMatrices( this, m ); + + }, + + multiplyMatrices: function ( a, b ) { + + var ae = a.elements; + var be = b.elements; + var te = this.elements; + + var a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ]; + var a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ]; + var a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ]; + var a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ]; + + var b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ]; + var b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ]; + var b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ]; + var b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ]; + + te[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41; + te[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42; + te[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43; + te[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44; + + te[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41; + te[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42; + te[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43; + te[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44; + + te[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41; + te[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42; + te[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43; + te[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44; + + te[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41; + te[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42; + te[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43; + te[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44; + + return this; + + }, + + multiplyToArray: function ( a, b, r ) { + + var te = this.elements; + + this.multiplyMatrices( a, b ); + + r[ 0 ] = te[ 0 ]; r[ 1 ] = te[ 1 ]; r[ 2 ] = te[ 2 ]; r[ 3 ] = te[ 3 ]; + r[ 4 ] = te[ 4 ]; r[ 5 ] = te[ 5 ]; r[ 6 ] = te[ 6 ]; r[ 7 ] = te[ 7 ]; + r[ 8 ] = te[ 8 ]; r[ 9 ] = te[ 9 ]; r[ 10 ] = te[ 10 ]; r[ 11 ] = te[ 11 ]; + r[ 12 ] = te[ 12 ]; r[ 13 ] = te[ 13 ]; r[ 14 ] = te[ 14 ]; r[ 15 ] = te[ 15 ]; + + return this; + + }, + + multiplyScalar: function ( s ) { + + var te = this.elements; + + te[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s; + te[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s; + te[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s; + te[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s; + + return this; + + }, + + multiplyVector3: function ( vector ) { + + THREE.warn( 'THREE.Matrix4: .multiplyVector3() has been removed. Use vector.applyMatrix4( matrix ) or vector.applyProjection( matrix ) instead.' ); + return vector.applyProjection( this ); + + }, + + multiplyVector4: function ( vector ) { + + THREE.warn( 'THREE.Matrix4: .multiplyVector4() has been removed. Use vector.applyMatrix4( matrix ) instead.' ); + return vector.applyMatrix4( this ); + + }, + + multiplyVector3Array: function ( a ) { + + THREE.warn( 'THREE.Matrix4: .multiplyVector3Array() has been renamed. Use matrix.applyToVector3Array( array ) instead.' ); + return this.applyToVector3Array( a ); + + }, + + applyToVector3Array: function () { + + var v1 = new THREE.Vector3(); + + return function ( array, offset, length ) { + + if ( offset === undefined ) offset = 0; + if ( length === undefined ) length = array.length; + + for ( var i = 0, j = offset; i < length; i += 3, j += 3 ) { + + v1.x = array[ j ]; + v1.y = array[ j + 1 ]; + v1.z = array[ j + 2 ]; + + v1.applyMatrix4( this ); + + array[ j ] = v1.x; + array[ j + 1 ] = v1.y; + array[ j + 2 ] = v1.z; + + } + + return array; + + }; + + }(), + + rotateAxis: function ( v ) { + + THREE.warn( 'THREE.Matrix4: .rotateAxis() has been removed. Use Vector3.transformDirection( matrix ) instead.' ); + + v.transformDirection( this ); + + }, + + crossVector: function ( vector ) { + + THREE.warn( 'THREE.Matrix4: .crossVector() has been removed. Use vector.applyMatrix4( matrix ) instead.' ); + return vector.applyMatrix4( this ); + + }, + + determinant: function () { + + var te = this.elements; + + var n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ]; + var n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ]; + var n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ]; + var n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ]; + + //TODO: make this more efficient + //( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm ) + + return ( + n41 * ( + + n14 * n23 * n32 + - n13 * n24 * n32 + - n14 * n22 * n33 + + n12 * n24 * n33 + + n13 * n22 * n34 + - n12 * n23 * n34 + ) + + n42 * ( + + n11 * n23 * n34 + - n11 * n24 * n33 + + n14 * n21 * n33 + - n13 * n21 * n34 + + n13 * n24 * n31 + - n14 * n23 * n31 + ) + + n43 * ( + + n11 * n24 * n32 + - n11 * n22 * n34 + - n14 * n21 * n32 + + n12 * n21 * n34 + + n14 * n22 * n31 + - n12 * n24 * n31 + ) + + n44 * ( + - n13 * n22 * n31 + - n11 * n23 * n32 + + n11 * n22 * n33 + + n13 * n21 * n32 + - n12 * n21 * n33 + + n12 * n23 * n31 + ) + + ); + + }, + + transpose: function () { + + var te = this.elements; + var tmp; + + tmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp; + tmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp; + tmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp; + + tmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp; + tmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp; + tmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp; + + return this; + + }, + + flattenToArrayOffset: function ( array, offset ) { + + var te = this.elements; + + array[ offset ] = te[ 0 ]; + array[ offset + 1 ] = te[ 1 ]; + array[ offset + 2 ] = te[ 2 ]; + array[ offset + 3 ] = te[ 3 ]; + + array[ offset + 4 ] = te[ 4 ]; + array[ offset + 5 ] = te[ 5 ]; + array[ offset + 6 ] = te[ 6 ]; + array[ offset + 7 ] = te[ 7 ]; + + array[ offset + 8 ] = te[ 8 ]; + array[ offset + 9 ] = te[ 9 ]; + array[ offset + 10 ] = te[ 10 ]; + array[ offset + 11 ] = te[ 11 ]; + + array[ offset + 12 ] = te[ 12 ]; + array[ offset + 13 ] = te[ 13 ]; + array[ offset + 14 ] = te[ 14 ]; + array[ offset + 15 ] = te[ 15 ]; + + return array; + + }, + + getPosition: function () { + + var v1 = new THREE.Vector3(); + + return function () { + + THREE.warn( 'THREE.Matrix4: .getPosition() has been removed. Use Vector3.setFromMatrixPosition( matrix ) instead.' ); + + var te = this.elements; + return v1.set( te[ 12 ], te[ 13 ], te[ 14 ] ); + + }; + + }(), + + setPosition: function ( v ) { + + var te = this.elements; + + te[ 12 ] = v.x; + te[ 13 ] = v.y; + te[ 14 ] = v.z; + + return this; + + }, + + getInverse: function ( m, throwOnInvertible ) { + + // based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm + var te = this.elements; + var me = m.elements; + + var n11 = me[ 0 ], n12 = me[ 4 ], n13 = me[ 8 ], n14 = me[ 12 ]; + var n21 = me[ 1 ], n22 = me[ 5 ], n23 = me[ 9 ], n24 = me[ 13 ]; + var n31 = me[ 2 ], n32 = me[ 6 ], n33 = me[ 10 ], n34 = me[ 14 ]; + var n41 = me[ 3 ], n42 = me[ 7 ], n43 = me[ 11 ], n44 = me[ 15 ]; + + te[ 0 ] = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44; + te[ 4 ] = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44; + te[ 8 ] = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44; + te[ 12 ] = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34; + te[ 1 ] = n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44; + te[ 5 ] = n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44; + te[ 9 ] = n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44; + te[ 13 ] = n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34; + te[ 2 ] = n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44; + te[ 6 ] = n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44; + te[ 10 ] = n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44; + te[ 14 ] = n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34; + te[ 3 ] = n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43; + te[ 7 ] = n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43; + te[ 11 ] = n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43; + te[ 15 ] = n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33; + + var det = n11 * te[ 0 ] + n21 * te[ 4 ] + n31 * te[ 8 ] + n41 * te[ 12 ]; + + if ( det == 0 ) { + + var msg = "THREE.Matrix4.getInverse(): can't invert matrix, determinant is 0"; + + if ( throwOnInvertible || false ) { + + throw new Error( msg ); + + } else { + + THREE.warn( msg ); + + } + + this.identity(); + + return this; + } + + this.multiplyScalar( 1 / det ); + + return this; + + }, + + translate: function ( v ) { + + THREE.error( 'THREE.Matrix4: .translate() has been removed.' ); + + }, + + rotateX: function ( angle ) { + + THREE.error( 'THREE.Matrix4: .rotateX() has been removed.' ); + + }, + + rotateY: function ( angle ) { + + THREE.error( 'THREE.Matrix4: .rotateY() has been removed.' ); + + }, + + rotateZ: function ( angle ) { + + THREE.error( 'THREE.Matrix4: .rotateZ() has been removed.' ); + + }, + + rotateByAxis: function ( axis, angle ) { + + THREE.error( 'THREE.Matrix4: .rotateByAxis() has been removed.' ); + + }, + + scale: function ( v ) { + + var te = this.elements; + var x = v.x, y = v.y, z = v.z; + + te[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z; + te[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z; + te[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z; + te[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z; + + return this; + + }, + + getMaxScaleOnAxis: function () { + + var te = this.elements; + + var scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ]; + var scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ]; + var scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ]; + + return Math.sqrt( Math.max( scaleXSq, Math.max( scaleYSq, scaleZSq ) ) ); + + }, + + makeTranslation: function ( x, y, z ) { + + this.set( + + 1, 0, 0, x, + 0, 1, 0, y, + 0, 0, 1, z, + 0, 0, 0, 1 + + ); + + return this; + + }, + + makeRotationX: function ( theta ) { + + var c = Math.cos( theta ), s = Math.sin( theta ); + + this.set( + + 1, 0, 0, 0, + 0, c, - s, 0, + 0, s, c, 0, + 0, 0, 0, 1 + + ); + + return this; + + }, + + makeRotationY: function ( theta ) { + + var c = Math.cos( theta ), s = Math.sin( theta ); + + this.set( + + c, 0, s, 0, + 0, 1, 0, 0, + - s, 0, c, 0, + 0, 0, 0, 1 + + ); + + return this; + + }, + + makeRotationZ: function ( theta ) { + + var c = Math.cos( theta ), s = Math.sin( theta ); + + this.set( + + c, - s, 0, 0, + s, c, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1 + + ); + + return this; + + }, + + makeRotationAxis: function ( axis, angle ) { + + // Based on http://www.gamedev.net/reference/articles/article1199.asp + + var c = Math.cos( angle ); + var s = Math.sin( angle ); + var t = 1 - c; + var x = axis.x, y = axis.y, z = axis.z; + var tx = t * x, ty = t * y; + + this.set( + + tx * x + c, tx * y - s * z, tx * z + s * y, 0, + tx * y + s * z, ty * y + c, ty * z - s * x, 0, + tx * z - s * y, ty * z + s * x, t * z * z + c, 0, + 0, 0, 0, 1 + + ); + + return this; + + }, + + makeScale: function ( x, y, z ) { + + this.set( + + x, 0, 0, 0, + 0, y, 0, 0, + 0, 0, z, 0, + 0, 0, 0, 1 + + ); + + return this; + + }, + + compose: function ( position, quaternion, scale ) { + + this.makeRotationFromQuaternion( quaternion ); + this.scale( scale ); + this.setPosition( position ); + + return this; + + }, + + decompose: function () { + + var vector = new THREE.Vector3(); + var matrix = new THREE.Matrix4(); + + return function ( position, quaternion, scale ) { + + var te = this.elements; + + var sx = vector.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length(); + var sy = vector.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length(); + var sz = vector.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length(); + + // if determine is negative, we need to invert one scale + var det = this.determinant(); + if ( det < 0 ) { + sx = - sx; + } + + position.x = te[ 12 ]; + position.y = te[ 13 ]; + position.z = te[ 14 ]; + + // scale the rotation part + + matrix.elements.set( this.elements ); // at this point matrix is incomplete so we can't use .copy() + + var invSX = 1 / sx; + var invSY = 1 / sy; + var invSZ = 1 / sz; + + matrix.elements[ 0 ] *= invSX; + matrix.elements[ 1 ] *= invSX; + matrix.elements[ 2 ] *= invSX; + + matrix.elements[ 4 ] *= invSY; + matrix.elements[ 5 ] *= invSY; + matrix.elements[ 6 ] *= invSY; + + matrix.elements[ 8 ] *= invSZ; + matrix.elements[ 9 ] *= invSZ; + matrix.elements[ 10 ] *= invSZ; + + quaternion.setFromRotationMatrix( matrix ); + + scale.x = sx; + scale.y = sy; + scale.z = sz; + + return this; + + }; + + }(), + + makeFrustum: function ( left, right, bottom, top, near, far ) { + + var te = this.elements; + var x = 2 * near / ( right - left ); + var y = 2 * near / ( top - bottom ); + + 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 ); + + te[ 0 ] = x; te[ 4 ] = 0; te[ 8 ] = a; te[ 12 ] = 0; + te[ 1 ] = 0; te[ 5 ] = y; te[ 9 ] = b; te[ 13 ] = 0; + te[ 2 ] = 0; te[ 6 ] = 0; te[ 10 ] = c; te[ 14 ] = d; + te[ 3 ] = 0; te[ 7 ] = 0; te[ 11 ] = - 1; te[ 15 ] = 0; + + return this; + + }, + + makePerspective: function ( fov, aspect, near, far ) { + + var ymax = near * Math.tan( THREE.Math.degToRad( fov * 0.5 ) ); + var ymin = - ymax; + var xmin = ymin * aspect; + var xmax = ymax * aspect; + + return this.makeFrustum( xmin, xmax, ymin, ymax, near, far ); + + }, + + makeOrthographic: function ( left, right, top, bottom, near, far ) { + + var te = this.elements; + var w = right - left; + var h = top - bottom; + var p = far - near; + + var x = ( right + left ) / w; + var y = ( top + bottom ) / h; + var z = ( far + near ) / p; + + te[ 0 ] = 2 / w; te[ 4 ] = 0; te[ 8 ] = 0; te[ 12 ] = - x; + te[ 1 ] = 0; te[ 5 ] = 2 / h; te[ 9 ] = 0; te[ 13 ] = - y; + te[ 2 ] = 0; te[ 6 ] = 0; te[ 10 ] = - 2 / p; te[ 14 ] = - z; + te[ 3 ] = 0; te[ 7 ] = 0; te[ 11 ] = 0; te[ 15 ] = 1; + + return this; + + }, + + fromArray: function ( array ) { + + this.elements.set( array ); + + return this; + + }, + + toArray: function () { + + var te = this.elements; + + return [ + te[ 0 ], te[ 1 ], te[ 2 ], te[ 3 ], + te[ 4 ], te[ 5 ], te[ 6 ], te[ 7 ], + te[ 8 ], te[ 9 ], te[ 10 ], te[ 11 ], + te[ 12 ], te[ 13 ], te[ 14 ], te[ 15 ] + ]; + + }, + + clone: function () { + + return new THREE.Matrix4().fromArray( this.elements ); + + } + +}; + +// File:src/math/Ray.js + +/** + * @author bhouston / http://exocortex.com + */ + +THREE.Ray = function ( origin, direction ) { + + this.origin = ( origin !== undefined ) ? origin : new THREE.Vector3(); + this.direction = ( direction !== undefined ) ? direction : new THREE.Vector3(); + +}; + +THREE.Ray.prototype = { + + constructor: THREE.Ray, + + set: function ( origin, direction ) { + + this.origin.copy( origin ); + this.direction.copy( direction ); + + return this; + + }, + + copy: function ( ray ) { + + this.origin.copy( ray.origin ); + this.direction.copy( ray.direction ); + + return this; + + }, + + at: function ( t, optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + + return result.copy( this.direction ).multiplyScalar( t ).add( this.origin ); + + }, + + recast: function () { + + var v1 = new THREE.Vector3(); + + return function ( t ) { + + this.origin.copy( this.at( t, v1 ) ); + + return this; + + }; + + }(), + + closestPointToPoint: function ( point, optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + result.subVectors( point, this.origin ); + var directionDistance = result.dot( this.direction ); + + if ( directionDistance < 0 ) { + + return result.copy( this.origin ); + + } + + return result.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin ); + + }, + + distanceToPoint: function () { + + var v1 = new THREE.Vector3(); + + return function ( point ) { + + var directionDistance = v1.subVectors( point, this.origin ).dot( this.direction ); + + // point behind the ray + + if ( directionDistance < 0 ) { + + return this.origin.distanceTo( point ); + + } + + v1.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin ); + + return v1.distanceTo( point ); + + }; + + }(), + + distanceSqToSegment: function () { + + var segCenter = new THREE.Vector3(); + var segDir = new THREE.Vector3(); + var diff = new THREE.Vector3(); + + return function ( v0, v1, optionalPointOnRay, optionalPointOnSegment ) { + + // from http://www.geometrictools.com/LibMathematics/Distance/Wm5DistRay3Segment3.cpp + // It returns the min distance between the ray and the segment + // defined by v0 and v1 + // It can also set two optional targets : + // - The closest point on the ray + // - The closest point on the segment + + segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 ); + segDir.copy( v1 ).sub( v0 ).normalize(); + diff.copy( this.origin ).sub( segCenter ); + + var segExtent = v0.distanceTo( v1 ) * 0.5; + var a01 = - this.direction.dot( segDir ); + var b0 = diff.dot( this.direction ); + var b1 = - diff.dot( segDir ); + var c = diff.lengthSq(); + var det = Math.abs( 1 - a01 * a01 ); + var s0, s1, sqrDist, extDet; + + if ( det > 0 ) { + + // The ray and segment are not parallel. + + s0 = a01 * b1 - b0; + s1 = a01 * b0 - b1; + extDet = segExtent * det; + + if ( s0 >= 0 ) { + + if ( s1 >= - extDet ) { + + if ( s1 <= extDet ) { + + // region 0 + // Minimum at interior points of ray and segment. + + var invDet = 1 / det; + s0 *= invDet; + s1 *= invDet; + sqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c; + + } else { + + // region 1 + + s1 = segExtent; + s0 = Math.max( 0, - ( a01 * s1 + b0 ) ); + sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; + + } + + } else { + + // region 5 + + s1 = - segExtent; + s0 = Math.max( 0, - ( a01 * s1 + b0 ) ); + sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; + + } + + } else { + + if ( s1 <= - extDet ) { + + // region 4 + + s0 = Math.max( 0, - ( - a01 * segExtent + b0 ) ); + s1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent ); + sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; + + } else if ( s1 <= extDet ) { + + // region 3 + + s0 = 0; + s1 = Math.min( Math.max( - segExtent, - b1 ), segExtent ); + sqrDist = s1 * ( s1 + 2 * b1 ) + c; + + } else { + + // region 2 + + s0 = Math.max( 0, - ( a01 * segExtent + b0 ) ); + s1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent ); + sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; + + } + + } + + } else { + + // Ray and segment are parallel. + + s1 = ( a01 > 0 ) ? - segExtent : segExtent; + s0 = Math.max( 0, - ( a01 * s1 + b0 ) ); + sqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c; + + } + + if ( optionalPointOnRay ) { + + optionalPointOnRay.copy( this.direction ).multiplyScalar( s0 ).add( this.origin ); + + } + + if ( optionalPointOnSegment ) { + + optionalPointOnSegment.copy( segDir ).multiplyScalar( s1 ).add( segCenter ); + + } + + return sqrDist; + + }; + + }(), + + + isIntersectionSphere: function ( sphere ) { + + return this.distanceToPoint( sphere.center ) <= sphere.radius; + + }, + + intersectSphere: function () { + + // from http://www.scratchapixel.com/lessons/3d-basic-lessons/lesson-7-intersecting-simple-shapes/ray-sphere-intersection/ + + var v1 = new THREE.Vector3(); + + return function ( sphere, optionalTarget ) { + + v1.subVectors( sphere.center, this.origin ); + + var tca = v1.dot( this.direction ); + + var d2 = v1.dot( v1 ) - tca * tca; + + var radius2 = sphere.radius * sphere.radius; + + if ( d2 > radius2 ) return null; + + var thc = Math.sqrt( radius2 - d2 ); + + // t0 = first intersect point - entrance on front of sphere + var t0 = tca - thc; + + // t1 = second intersect point - exit point on back of sphere + var t1 = tca + thc; + + // test to see if both t0 and t1 are behind the ray - if so, return null + if ( t0 < 0 && t1 < 0 ) return null; + + // test to see if t0 is behind the ray: + // if it is, the ray is inside the sphere, so return the second exit point scaled by t1, + // in order to always return an intersect point that is in front of the ray. + if ( t0 < 0 ) return this.at( t1, optionalTarget ); + + // else t0 is in front of the ray, so return the first collision point scaled by t0 + return this.at( t0, optionalTarget ); + + } + + }(), + + isIntersectionPlane: function ( plane ) { + + // check if the ray lies on the plane first + + var distToPoint = plane.distanceToPoint( this.origin ); + + if ( distToPoint === 0 ) { + + return true; + + } + + var denominator = plane.normal.dot( this.direction ); + + if ( denominator * distToPoint < 0 ) { + + return true; + + } + + // ray origin is behind the plane (and is pointing behind it) + + return false; + + }, + + distanceToPlane: function ( plane ) { + + var denominator = plane.normal.dot( this.direction ); + if ( denominator == 0 ) { + + // line is coplanar, return origin + if ( plane.distanceToPoint( this.origin ) == 0 ) { + + return 0; + + } + + // Null is preferable to undefined since undefined means.... it is undefined + + return null; + + } + + var t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator; + + // Return if the ray never intersects the plane + + return t >= 0 ? t : null; + + }, + + intersectPlane: function ( plane, optionalTarget ) { + + var t = this.distanceToPlane( plane ); + + if ( t === null ) { + + return null; + } + + return this.at( t, optionalTarget ); + + }, + + isIntersectionBox: function () { + + var v = new THREE.Vector3(); + + return function ( box ) { + + return this.intersectBox( box, v ) !== null; + + }; + + }(), + + intersectBox: function ( box, optionalTarget ) { + + // http://www.scratchapixel.com/lessons/3d-basic-lessons/lesson-7-intersecting-simple-shapes/ray-box-intersection/ + + var tmin,tmax,tymin,tymax,tzmin,tzmax; + + var invdirx = 1 / this.direction.x, + invdiry = 1 / this.direction.y, + invdirz = 1 / this.direction.z; + + var origin = this.origin; + + if ( invdirx >= 0 ) { + + tmin = ( box.min.x - origin.x ) * invdirx; + tmax = ( box.max.x - origin.x ) * invdirx; + + } else { + + tmin = ( box.max.x - origin.x ) * invdirx; + tmax = ( box.min.x - origin.x ) * invdirx; + } + + if ( invdiry >= 0 ) { + + tymin = ( box.min.y - origin.y ) * invdiry; + tymax = ( box.max.y - origin.y ) * invdiry; + + } else { + + tymin = ( box.max.y - origin.y ) * invdiry; + tymax = ( box.min.y - origin.y ) * invdiry; + } + + if ( ( tmin > tymax ) || ( tymin > tmax ) ) return null; + + // These lines also handle the case where tmin or tmax is NaN + // (result of 0 * Infinity). x !== x returns true if x is NaN + + if ( tymin > tmin || tmin !== tmin ) tmin = tymin; + + if ( tymax < tmax || tmax !== tmax ) tmax = tymax; + + if ( invdirz >= 0 ) { + + tzmin = ( box.min.z - origin.z ) * invdirz; + tzmax = ( box.max.z - origin.z ) * invdirz; + + } else { + + tzmin = ( box.max.z - origin.z ) * invdirz; + tzmax = ( box.min.z - origin.z ) * invdirz; + } + + if ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null; + + if ( tzmin > tmin || tmin !== tmin ) tmin = tzmin; + + if ( tzmax < tmax || tmax !== tmax ) tmax = tzmax; + + //return point closest to the ray (positive side) + + if ( tmax < 0 ) return null; + + return this.at( tmin >= 0 ? tmin : tmax, optionalTarget ); + + }, + + intersectTriangle: function () { + + // Compute the offset origin, edges, and normal. + var diff = new THREE.Vector3(); + var edge1 = new THREE.Vector3(); + var edge2 = new THREE.Vector3(); + var normal = new THREE.Vector3(); + + return function ( a, b, c, backfaceCulling, optionalTarget ) { + + // from http://www.geometrictools.com/LibMathematics/Intersection/Wm5IntrRay3Triangle3.cpp + + edge1.subVectors( b, a ); + edge2.subVectors( c, a ); + normal.crossVectors( edge1, edge2 ); + + // Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction, + // E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by + // |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2)) + // |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q)) + // |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N) + var DdN = this.direction.dot( normal ); + var sign; + + if ( DdN > 0 ) { + + if ( backfaceCulling ) return null; + sign = 1; + + } else if ( DdN < 0 ) { + + sign = - 1; + DdN = - DdN; + + } else { + + return null; + + } + + diff.subVectors( this.origin, a ); + var DdQxE2 = sign * this.direction.dot( edge2.crossVectors( diff, edge2 ) ); + + // b1 < 0, no intersection + if ( DdQxE2 < 0 ) { + + return null; + + } + + var DdE1xQ = sign * this.direction.dot( edge1.cross( diff ) ); + + // b2 < 0, no intersection + if ( DdE1xQ < 0 ) { + + return null; + + } + + // b1+b2 > 1, no intersection + if ( DdQxE2 + DdE1xQ > DdN ) { + + return null; + + } + + // Line intersects triangle, check if ray does. + var QdN = - sign * diff.dot( normal ); + + // t < 0, no intersection + if ( QdN < 0 ) { + + return null; + + } + + // Ray intersects triangle. + return this.at( QdN / DdN, optionalTarget ); + + }; + + }(), + + applyMatrix4: function ( matrix4 ) { + + this.direction.add( this.origin ).applyMatrix4( matrix4 ); + this.origin.applyMatrix4( matrix4 ); + this.direction.sub( this.origin ); + this.direction.normalize(); + + return this; + }, + + equals: function ( ray ) { + + return ray.origin.equals( this.origin ) && ray.direction.equals( this.direction ); + + }, + + clone: function () { + + return new THREE.Ray().copy( this ); + + } + +}; + +// File:src/math/Sphere.js + +/** + * @author bhouston / http://exocortex.com + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.Sphere = function ( center, radius ) { + + this.center = ( center !== undefined ) ? center : new THREE.Vector3(); + this.radius = ( radius !== undefined ) ? radius : 0; + +}; + +THREE.Sphere.prototype = { + + constructor: THREE.Sphere, + + set: function ( center, radius ) { + + this.center.copy( center ); + this.radius = radius; + + return this; + }, + + setFromPoints: function () { + + var box = new THREE.Box3(); + + return function ( points, optionalCenter ) { + + var center = this.center; + + if ( optionalCenter !== undefined ) { + + center.copy( optionalCenter ); + + } else { + + box.setFromPoints( points ).center( center ); + + } + + var maxRadiusSq = 0; + + for ( var i = 0, il = points.length; i < il; i ++ ) { + + maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) ); + + } + + this.radius = Math.sqrt( maxRadiusSq ); + + return this; + + }; + + }(), + + copy: function ( sphere ) { + + this.center.copy( sphere.center ); + this.radius = sphere.radius; + + return this; + + }, + + empty: function () { + + return ( this.radius <= 0 ); + + }, + + containsPoint: function ( point ) { + + return ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) ); + + }, + + distanceToPoint: function ( point ) { + + return ( point.distanceTo( this.center ) - this.radius ); + + }, + + intersectsSphere: function ( sphere ) { + + var radiusSum = this.radius + sphere.radius; + + return sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum ); + + }, + + clampPoint: function ( point, optionalTarget ) { + + var deltaLengthSq = this.center.distanceToSquared( point ); + + var result = optionalTarget || new THREE.Vector3(); + result.copy( point ); + + if ( deltaLengthSq > ( this.radius * this.radius ) ) { + + result.sub( this.center ).normalize(); + result.multiplyScalar( this.radius ).add( this.center ); + + } + + return result; + + }, + + getBoundingBox: function ( optionalTarget ) { + + var box = optionalTarget || new THREE.Box3(); + + box.set( this.center, this.center ); + box.expandByScalar( this.radius ); + + return box; + + }, + + applyMatrix4: function ( matrix ) { + + this.center.applyMatrix4( matrix ); + this.radius = this.radius * matrix.getMaxScaleOnAxis(); + + return this; + + }, + + translate: function ( offset ) { + + this.center.add( offset ); + + return this; + + }, + + equals: function ( sphere ) { + + return sphere.center.equals( this.center ) && ( sphere.radius === this.radius ); + + }, + + clone: function () { + + return new THREE.Sphere().copy( this ); + + } + +}; + +// File:src/math/Frustum.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * @author bhouston / http://exocortex.com + */ + +THREE.Frustum = function ( p0, p1, p2, p3, p4, p5 ) { + + this.planes = [ + + ( p0 !== undefined ) ? p0 : new THREE.Plane(), + ( p1 !== undefined ) ? p1 : new THREE.Plane(), + ( p2 !== undefined ) ? p2 : new THREE.Plane(), + ( p3 !== undefined ) ? p3 : new THREE.Plane(), + ( p4 !== undefined ) ? p4 : new THREE.Plane(), + ( p5 !== undefined ) ? p5 : new THREE.Plane() + + ]; + +}; + +THREE.Frustum.prototype = { + + constructor: THREE.Frustum, + + set: function ( p0, p1, p2, p3, p4, p5 ) { + + var planes = this.planes; + + planes[ 0 ].copy( p0 ); + planes[ 1 ].copy( p1 ); + planes[ 2 ].copy( p2 ); + planes[ 3 ].copy( p3 ); + planes[ 4 ].copy( p4 ); + planes[ 5 ].copy( p5 ); + + return this; + + }, + + copy: function ( frustum ) { + + var planes = this.planes; + + for ( var i = 0; i < 6; i ++ ) { + + planes[ i ].copy( frustum.planes[ i ] ); + + } + + return this; + + }, + + setFromMatrix: function ( m ) { + + var planes = this.planes; + var me = m.elements; + var me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ]; + var me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ]; + var me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ]; + var me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ]; + + planes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize(); + planes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize(); + planes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize(); + planes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize(); + planes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize(); + planes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize(); + + return this; + + }, + + intersectsObject: function () { + + var sphere = new THREE.Sphere(); + + return function ( object ) { + + var geometry = object.geometry; + + if ( geometry.boundingSphere === null ) geometry.computeBoundingSphere(); + + sphere.copy( geometry.boundingSphere ); + sphere.applyMatrix4( object.matrixWorld ); + + return this.intersectsSphere( sphere ); + + }; + + }(), + + intersectsSphere: function ( sphere ) { + + var planes = this.planes; + var center = sphere.center; + var negRadius = - sphere.radius; + + for ( var i = 0; i < 6; i ++ ) { + + var distance = planes[ i ].distanceToPoint( center ); + + if ( distance < negRadius ) { + + return false; + + } + + } + + return true; + + }, + + intersectsBox: function () { + + var p1 = new THREE.Vector3(), + p2 = new THREE.Vector3(); + + return function ( box ) { + + var planes = this.planes; + + for ( var i = 0; i < 6 ; i ++ ) { + + var plane = planes[ i ]; + + p1.x = plane.normal.x > 0 ? box.min.x : box.max.x; + p2.x = plane.normal.x > 0 ? box.max.x : box.min.x; + p1.y = plane.normal.y > 0 ? box.min.y : box.max.y; + p2.y = plane.normal.y > 0 ? box.max.y : box.min.y; + p1.z = plane.normal.z > 0 ? box.min.z : box.max.z; + p2.z = plane.normal.z > 0 ? box.max.z : box.min.z; + + var d1 = plane.distanceToPoint( p1 ); + var d2 = plane.distanceToPoint( p2 ); + + // if both outside plane, no intersection + + if ( d1 < 0 && d2 < 0 ) { + + return false; + + } + } + + return true; + }; + + }(), + + + containsPoint: function ( point ) { + + var planes = this.planes; + + for ( var i = 0; i < 6; i ++ ) { + + if ( planes[ i ].distanceToPoint( point ) < 0 ) { + + return false; + + } + + } + + return true; + + }, + + clone: function () { + + return new THREE.Frustum().copy( this ); + + } + +}; + +// File:src/math/Plane.js + +/** + * @author bhouston / http://exocortex.com + */ + +THREE.Plane = function ( normal, constant ) { + + this.normal = ( normal !== undefined ) ? normal : new THREE.Vector3( 1, 0, 0 ); + this.constant = ( constant !== undefined ) ? constant : 0; + +}; + +THREE.Plane.prototype = { + + constructor: THREE.Plane, + + set: function ( normal, constant ) { + + this.normal.copy( normal ); + this.constant = constant; + + return this; + + }, + + setComponents: function ( x, y, z, w ) { + + this.normal.set( x, y, z ); + this.constant = w; + + return this; + + }, + + setFromNormalAndCoplanarPoint: function ( normal, point ) { + + this.normal.copy( normal ); + this.constant = - point.dot( this.normal ); // must be this.normal, not normal, as this.normal is normalized + + return this; + + }, + + setFromCoplanarPoints: function () { + + var v1 = new THREE.Vector3(); + var v2 = new THREE.Vector3(); + + return function ( a, b, c ) { + + var normal = v1.subVectors( c, b ).cross( v2.subVectors( a, b ) ).normalize(); + + // Q: should an error be thrown if normal is zero (e.g. degenerate plane)? + + this.setFromNormalAndCoplanarPoint( normal, a ); + + return this; + + }; + + }(), + + + copy: function ( plane ) { + + this.normal.copy( plane.normal ); + this.constant = plane.constant; + + return this; + + }, + + normalize: function () { + + // Note: will lead to a divide by zero if the plane is invalid. + + var inverseNormalLength = 1.0 / this.normal.length(); + this.normal.multiplyScalar( inverseNormalLength ); + this.constant *= inverseNormalLength; + + return this; + + }, + + negate: function () { + + this.constant *= - 1; + this.normal.negate(); + + return this; + + }, + + distanceToPoint: function ( point ) { + + return this.normal.dot( point ) + this.constant; + + }, + + distanceToSphere: function ( sphere ) { + + return this.distanceToPoint( sphere.center ) - sphere.radius; + + }, + + projectPoint: function ( point, optionalTarget ) { + + return this.orthoPoint( point, optionalTarget ).sub( point ).negate(); + + }, + + orthoPoint: function ( point, optionalTarget ) { + + var perpendicularMagnitude = this.distanceToPoint( point ); + + var result = optionalTarget || new THREE.Vector3(); + return result.copy( this.normal ).multiplyScalar( perpendicularMagnitude ); + + }, + + isIntersectionLine: function ( line ) { + + // Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it. + + var startSign = this.distanceToPoint( line.start ); + var endSign = this.distanceToPoint( line.end ); + + return ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 ); + + }, + + intersectLine: function () { + + var v1 = new THREE.Vector3(); + + return function ( line, optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + + var direction = line.delta( v1 ); + + var denominator = this.normal.dot( direction ); + + if ( denominator == 0 ) { + + // line is coplanar, return origin + if ( this.distanceToPoint( line.start ) == 0 ) { + + return result.copy( line.start ); + + } + + // Unsure if this is the correct method to handle this case. + return undefined; + + } + + var t = - ( line.start.dot( this.normal ) + this.constant ) / denominator; + + if ( t < 0 || t > 1 ) { + + return undefined; + + } + + return result.copy( direction ).multiplyScalar( t ).add( line.start ); + + }; + + }(), + + + coplanarPoint: function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + return result.copy( this.normal ).multiplyScalar( - this.constant ); + + }, + + applyMatrix4: function () { + + var v1 = new THREE.Vector3(); + var v2 = new THREE.Vector3(); + var m1 = new THREE.Matrix3(); + + return function ( matrix, optionalNormalMatrix ) { + + // compute new normal based on theory here: + // http://www.songho.ca/opengl/gl_normaltransform.html + var normalMatrix = optionalNormalMatrix || m1.getNormalMatrix( matrix ); + var newNormal = v1.copy( this.normal ).applyMatrix3( normalMatrix ); + + var newCoplanarPoint = this.coplanarPoint( v2 ); + newCoplanarPoint.applyMatrix4( matrix ); + + this.setFromNormalAndCoplanarPoint( newNormal, newCoplanarPoint ); + + return this; + + }; + + }(), + + translate: function ( offset ) { + + this.constant = this.constant - offset.dot( this.normal ); + + return this; + + }, + + equals: function ( plane ) { + + return plane.normal.equals( this.normal ) && ( plane.constant == this.constant ); + + }, + + clone: function () { + + return new THREE.Plane().copy( this ); + + } + +}; + +// File:src/math/Math.js + +/** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.Math = { + + generateUUID: function () { + + // http://www.broofa.com/Tools/Math.uuid.htm + + var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split( '' ); + var uuid = new Array( 36 ); + var rnd = 0, r; + + return function () { + + for ( var i = 0; i < 36; i ++ ) { + + if ( i == 8 || i == 13 || i == 18 || i == 23 ) { + + uuid[ i ] = '-'; + + } else if ( i == 14 ) { + + uuid[ i ] = '4'; + + } else { + + if ( rnd <= 0x02 ) rnd = 0x2000000 + ( Math.random() * 0x1000000 ) | 0; + r = rnd & 0xf; + rnd = rnd >> 4; + uuid[ i ] = chars[ ( i == 19 ) ? ( r & 0x3 ) | 0x8 : r ]; + + } + } + + return uuid.join( '' ); + + }; + + }(), + + // Clamp value to range + + clamp: function ( x, a, b ) { + + return ( x < a ) ? a : ( ( x > b ) ? b : x ); + + }, + + // Clamp value to range to range + + mapLinear: function ( x, a1, a2, b1, b2 ) { + + return b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 ); + + }, + + // http://en.wikipedia.org/wiki/Smoothstep + + smoothstep: function ( x, min, max ) { + + if ( x <= min ) return 0; + if ( x >= max ) return 1; + + x = ( x - min ) / ( max - min ); + + return x * x * ( 3 - 2 * x ); + + }, + + smootherstep: function ( x, min, max ) { + + if ( x <= min ) return 0; + if ( x >= max ) return 1; + + x = ( x - min ) / ( max - min ); + + return x * x * x * ( x * ( x * 6 - 15 ) + 10 ); + + }, + + // Random float from <0, 1> with 16 bits of randomness + // (standard Math.random() creates repetitive patterns when applied over larger space) + + random16: function () { + + return ( 65280 * Math.random() + 255 * Math.random() ) / 65535; + + }, + + // Random integer from interval + + randInt: function ( low, high ) { + + return Math.floor( this.randFloat( low, high ) ); + + }, + + // Random float from interval + + randFloat: function ( low, high ) { + + return low + Math.random() * ( high - low ); + + }, + + // Random float from <-range/2, range/2> interval + + randFloatSpread: function ( range ) { + + return range * ( 0.5 - Math.random() ); + + }, + + degToRad: function () { + + var degreeToRadiansFactor = Math.PI / 180; + + return function ( degrees ) { + + return degrees * degreeToRadiansFactor; + + }; + + }(), + + radToDeg: function () { + + var radianToDegreesFactor = 180 / Math.PI; + + return function ( radians ) { + + return radians * radianToDegreesFactor; + + }; + + }(), + + isPowerOfTwo: function ( value ) { + + return ( value & ( value - 1 ) ) === 0 && value !== 0; + + }, + + nextPowerOfTwo: function ( value ) { + + value --; + value |= value >> 1; + value |= value >> 2; + value |= value >> 4; + value |= value >> 8; + value |= value >> 16; + value ++; + + return value; + + } + +}; + +// File:src/math/Spline.js + +/** + * Spline from Tween.js, slightly optimized (and trashed) + * http://sole.github.com/tween.js/examples/05_spline.html + * + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.Spline = function ( points ) { + + this.points = points; + + var c = [], v3 = { x: 0, y: 0, z: 0 }, + point, intPoint, weight, w2, w3, + pa, pb, pc, pd; + + this.initFromArray = function ( a ) { + + this.points = []; + + for ( var i = 0; i < a.length; i ++ ) { + + this.points[ i ] = { x: a[ i ][ 0 ], y: a[ i ][ 1 ], z: a[ i ][ 2 ] }; + + } + + }; + + this.getPoint = function ( k ) { + + point = ( this.points.length - 1 ) * k; + intPoint = Math.floor( point ); + weight = point - intPoint; + + c[ 0 ] = intPoint === 0 ? intPoint : intPoint - 1; + c[ 1 ] = intPoint; + c[ 2 ] = intPoint > this.points.length - 2 ? this.points.length - 1 : intPoint + 1; + c[ 3 ] = intPoint > this.points.length - 3 ? this.points.length - 1 : intPoint + 2; + + pa = this.points[ c[ 0 ] ]; + pb = this.points[ c[ 1 ] ]; + pc = this.points[ c[ 2 ] ]; + pd = this.points[ c[ 3 ] ]; + + w2 = weight * weight; + w3 = weight * w2; + + v3.x = interpolate( pa.x, pb.x, pc.x, pd.x, weight, w2, w3 ); + v3.y = interpolate( pa.y, pb.y, pc.y, pd.y, weight, w2, w3 ); + v3.z = interpolate( pa.z, pb.z, pc.z, pd.z, weight, w2, w3 ); + + return v3; + + }; + + this.getControlPointsArray = function () { + + var i, p, l = this.points.length, + coords = []; + + for ( i = 0; i < l; i ++ ) { + + p = this.points[ i ]; + coords[ i ] = [ p.x, p.y, p.z ]; + + } + + return coords; + + }; + + // approximate length by summing linear segments + + this.getLength = function ( nSubDivisions ) { + + var i, index, nSamples, position, + point = 0, intPoint = 0, oldIntPoint = 0, + oldPosition = new THREE.Vector3(), + tmpVec = new THREE.Vector3(), + chunkLengths = [], + totalLength = 0; + + // first point has 0 length + + chunkLengths[ 0 ] = 0; + + if ( ! nSubDivisions ) nSubDivisions = 100; + + nSamples = this.points.length * nSubDivisions; + + oldPosition.copy( this.points[ 0 ] ); + + for ( i = 1; i < nSamples; i ++ ) { + + index = i / nSamples; + + position = this.getPoint( index ); + tmpVec.copy( position ); + + totalLength += tmpVec.distanceTo( oldPosition ); + + oldPosition.copy( position ); + + point = ( this.points.length - 1 ) * index; + intPoint = Math.floor( point ); + + if ( intPoint != oldIntPoint ) { + + chunkLengths[ intPoint ] = totalLength; + oldIntPoint = intPoint; + + } + + } + + // last point ends with total length + + chunkLengths[ chunkLengths.length ] = totalLength; + + return { chunks: chunkLengths, total: totalLength }; + + }; + + this.reparametrizeByArcLength = function ( samplingCoef ) { + + var i, j, + index, indexCurrent, indexNext, + realDistance, + sampling, position, + newpoints = [], + tmpVec = new THREE.Vector3(), + sl = this.getLength(); + + newpoints.push( tmpVec.copy( this.points[ 0 ] ).clone() ); + + for ( i = 1; i < this.points.length; i ++ ) { + + //tmpVec.copy( this.points[ i - 1 ] ); + //linearDistance = tmpVec.distanceTo( this.points[ i ] ); + + realDistance = sl.chunks[ i ] - sl.chunks[ i - 1 ]; + + sampling = Math.ceil( samplingCoef * realDistance / sl.total ); + + indexCurrent = ( i - 1 ) / ( this.points.length - 1 ); + indexNext = i / ( this.points.length - 1 ); + + for ( j = 1; j < sampling - 1; j ++ ) { + + index = indexCurrent + j * ( 1 / sampling ) * ( indexNext - indexCurrent ); + + position = this.getPoint( index ); + newpoints.push( tmpVec.copy( position ).clone() ); + + } + + newpoints.push( tmpVec.copy( this.points[ i ] ).clone() ); + + } + + this.points = newpoints; + + }; + + // Catmull-Rom + + function interpolate( p0, p1, p2, p3, t, t2, t3 ) { + + var v0 = ( p2 - p0 ) * 0.5, + v1 = ( p3 - p1 ) * 0.5; + + return ( 2 * ( p1 - p2 ) + v0 + v1 ) * t3 + ( - 3 * ( p1 - p2 ) - 2 * v0 - v1 ) * t2 + v0 * t + p1; + + }; + +}; + +// File:src/math/Triangle.js + +/** + * @author bhouston / http://exocortex.com + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.Triangle = function ( a, b, c ) { + + this.a = ( a !== undefined ) ? a : new THREE.Vector3(); + this.b = ( b !== undefined ) ? b : new THREE.Vector3(); + this.c = ( c !== undefined ) ? c : new THREE.Vector3(); + +}; + +THREE.Triangle.normal = function () { + + var v0 = new THREE.Vector3(); + + return function ( a, b, c, optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + + result.subVectors( c, b ); + v0.subVectors( a, b ); + result.cross( v0 ); + + var resultLengthSq = result.lengthSq(); + if ( resultLengthSq > 0 ) { + + return result.multiplyScalar( 1 / Math.sqrt( resultLengthSq ) ); + + } + + return result.set( 0, 0, 0 ); + + }; + +}(); + +// static/instance method to calculate barycoordinates +// based on: http://www.blackpawn.com/texts/pointinpoly/default.html +THREE.Triangle.barycoordFromPoint = function () { + + var v0 = new THREE.Vector3(); + var v1 = new THREE.Vector3(); + var v2 = new THREE.Vector3(); + + return function ( point, a, b, c, optionalTarget ) { + + v0.subVectors( c, a ); + v1.subVectors( b, a ); + v2.subVectors( point, a ); + + var dot00 = v0.dot( v0 ); + var dot01 = v0.dot( v1 ); + var dot02 = v0.dot( v2 ); + var dot11 = v1.dot( v1 ); + var dot12 = v1.dot( v2 ); + + var denom = ( dot00 * dot11 - dot01 * dot01 ); + + var result = optionalTarget || new THREE.Vector3(); + + // colinear or singular triangle + if ( denom == 0 ) { + // arbitrary location outside of triangle? + // not sure if this is the best idea, maybe should be returning undefined + return result.set( - 2, - 1, - 1 ); + } + + var invDenom = 1 / denom; + var u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom; + var v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom; + + // barycoordinates must always sum to 1 + return result.set( 1 - u - v, v, u ); + + }; + +}(); + +THREE.Triangle.containsPoint = function () { + + var v1 = new THREE.Vector3(); + + return function ( point, a, b, c ) { + + var result = THREE.Triangle.barycoordFromPoint( point, a, b, c, v1 ); + + return ( result.x >= 0 ) && ( result.y >= 0 ) && ( ( result.x + result.y ) <= 1 ); + + }; + +}(); + +THREE.Triangle.prototype = { + + constructor: THREE.Triangle, + + set: function ( a, b, c ) { + + this.a.copy( a ); + this.b.copy( b ); + this.c.copy( c ); + + return this; + + }, + + setFromPointsAndIndices: function ( points, i0, i1, i2 ) { + + this.a.copy( points[ i0 ] ); + this.b.copy( points[ i1 ] ); + this.c.copy( points[ i2 ] ); + + return this; + + }, + + copy: function ( triangle ) { + + this.a.copy( triangle.a ); + this.b.copy( triangle.b ); + this.c.copy( triangle.c ); + + return this; + + }, + + area: function () { + + var v0 = new THREE.Vector3(); + var v1 = new THREE.Vector3(); + + return function () { + + v0.subVectors( this.c, this.b ); + v1.subVectors( this.a, this.b ); + + return v0.cross( v1 ).length() * 0.5; + + }; + + }(), + + midpoint: function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + return result.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 ); + + }, + + normal: function ( optionalTarget ) { + + return THREE.Triangle.normal( this.a, this.b, this.c, optionalTarget ); + + }, + + plane: function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Plane(); + + return result.setFromCoplanarPoints( this.a, this.b, this.c ); + + }, + + barycoordFromPoint: function ( point, optionalTarget ) { + + return THREE.Triangle.barycoordFromPoint( point, this.a, this.b, this.c, optionalTarget ); + + }, + + containsPoint: function ( point ) { + + return THREE.Triangle.containsPoint( point, this.a, this.b, this.c ); + + }, + + equals: function ( triangle ) { + + return triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c ); + + }, + + clone: function () { + + return new THREE.Triangle().copy( this ); + + } + +}; + +// File:src/core/Clock.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.Clock = function ( autoStart ) { + + this.autoStart = ( autoStart !== undefined ) ? autoStart : true; + + this.startTime = 0; + this.oldTime = 0; + this.elapsedTime = 0; + + this.running = false; + +}; + +THREE.Clock.prototype = { + + constructor: THREE.Clock, + + start: function () { + + this.startTime = self.performance !== undefined && self.performance.now !== undefined + ? self.performance.now() + : Date.now(); + + this.oldTime = this.startTime; + this.running = true; + }, + + stop: function () { + + this.getElapsedTime(); + this.running = false; + + }, + + getElapsedTime: function () { + + this.getDelta(); + return this.elapsedTime; + + }, + + getDelta: function () { + + var diff = 0; + + if ( this.autoStart && ! this.running ) { + + this.start(); + + } + + if ( this.running ) { + + var newTime = self.performance !== undefined && self.performance.now !== undefined + ? self.performance.now() + : Date.now(); + + diff = 0.001 * ( newTime - this.oldTime ); + this.oldTime = newTime; + + this.elapsedTime += diff; + + } + + return diff; + + } + +}; + +// File:src/core/EventDispatcher.js + +/** + * https://github.com/mrdoob/eventdispatcher.js/ + */ + +THREE.EventDispatcher = function () {} + +THREE.EventDispatcher.prototype = { + + constructor: THREE.EventDispatcher, + + apply: function ( object ) { + + object.addEventListener = THREE.EventDispatcher.prototype.addEventListener; + object.hasEventListener = THREE.EventDispatcher.prototype.hasEventListener; + object.removeEventListener = THREE.EventDispatcher.prototype.removeEventListener; + object.dispatchEvent = THREE.EventDispatcher.prototype.dispatchEvent; + + }, + + addEventListener: function ( type, listener ) { + + if ( this._listeners === undefined ) this._listeners = {}; + + var listeners = this._listeners; + + if ( listeners[ type ] === undefined ) { + + listeners[ type ] = []; + + } + + if ( listeners[ type ].indexOf( listener ) === - 1 ) { + + listeners[ type ].push( listener ); + + } + + }, + + hasEventListener: function ( type, listener ) { + + if ( this._listeners === undefined ) return false; + + var listeners = this._listeners; + + if ( listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1 ) { + + return true; + + } + + return false; + + }, + + removeEventListener: function ( type, listener ) { + + if ( this._listeners === undefined ) return; + + var listeners = this._listeners; + var listenerArray = listeners[ type ]; + + if ( listenerArray !== undefined ) { + + var index = listenerArray.indexOf( listener ); + + if ( index !== - 1 ) { + + listenerArray.splice( index, 1 ); + + } + + } + + }, + + dispatchEvent: function ( event ) { + + if ( this._listeners === undefined ) return; + + var listeners = this._listeners; + var listenerArray = listeners[ event.type ]; + + if ( listenerArray !== undefined ) { + + event.target = this; + + var array = []; + var length = listenerArray.length; + + for ( var i = 0; i < length; i ++ ) { + + array[ i ] = listenerArray[ i ]; + + } + + for ( var i = 0; i < length; i ++ ) { + + array[ i ].call( this, event ); + + } + + } + + } + +}; + +// File:src/core/Raycaster.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author bhouston / http://exocortex.com/ + * @author stephomi / http://stephaneginier.com/ + */ + +( function ( THREE ) { + + THREE.Raycaster = function ( origin, direction, near, far ) { + + this.ray = new THREE.Ray( origin, direction ); + // direction is assumed to be normalized (for accurate distance calculations) + + this.near = near || 0; + this.far = far || Infinity; + + this.params = { + Sprite: {}, + Mesh: {}, + PointCloud: { threshold: 1 }, + LOD: {}, + Line: {} + }; + + }; + + var descSort = function ( a, b ) { + + return a.distance - b.distance; + + }; + + var intersectObject = function ( object, raycaster, intersects, recursive ) { + + object.raycast( raycaster, intersects ); + + if ( recursive === true ) { + + var children = object.children; + + for ( var i = 0, l = children.length; i < l; i ++ ) { + + intersectObject( children[ i ], raycaster, intersects, true ); + + } + + } + + }; + + // + + THREE.Raycaster.prototype = { + + constructor: THREE.Raycaster, + + precision: 0.0001, + linePrecision: 1, + + set: function ( origin, direction ) { + + // direction is assumed to be normalized (for accurate distance calculations) + + this.ray.set( origin, direction ); + + }, + + setFromCamera: function ( coords, camera ) { + + // camera is assumed _not_ to be a child of a transformed object + + if ( camera instanceof THREE.PerspectiveCamera ) { + + this.ray.origin.copy( camera.position ); + this.ray.direction.set( coords.x, coords.y, 0.5 ).unproject( camera ).sub( camera.position ).normalize(); + + } else if ( camera instanceof THREE.OrthographicCamera ) { + + this.ray.origin.set( coords.x, coords.y, - 1 ).unproject( camera ); + this.ray.direction.set( 0, 0, - 1 ).transformDirection( camera.matrixWorld ); + + } else { + + THREE.error( 'THREE.Raycaster: Unsupported camera type.' ); + + } + + }, + + intersectObject: function ( object, recursive ) { + + var intersects = []; + + intersectObject( object, this, intersects, recursive ); + + intersects.sort( descSort ); + + return intersects; + + }, + + intersectObjects: function ( objects, recursive ) { + + var intersects = []; + + if ( objects instanceof Array === false ) { + + THREE.warn( 'THREE.Raycaster.intersectObjects: objects is not an Array.' ); + return intersects; + + } + + for ( var i = 0, l = objects.length; i < l; i ++ ) { + + intersectObject( objects[ i ], this, intersects, recursive ); + + } + + intersects.sort( descSort ); + + return intersects; + + } + + }; + +}( THREE ) ); + +// File:src/core/Object3D.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + * @author WestLangley / http://github.com/WestLangley + */ + +THREE.Object3D = function () { + + Object.defineProperty( this, 'id', { value: THREE.Object3DIdCount ++ } ); + + this.uuid = THREE.Math.generateUUID(); + + this.name = ''; + this.type = 'Object3D'; + + this.parent = undefined; + this.children = []; + + this.up = THREE.Object3D.DefaultUp.clone(); + + var position = new THREE.Vector3(); + var rotation = new THREE.Euler(); + var quaternion = new THREE.Quaternion(); + var scale = new THREE.Vector3( 1, 1, 1 ); + + var onRotationChange = function () { + quaternion.setFromEuler( rotation, false ); + }; + + var onQuaternionChange = function () { + rotation.setFromQuaternion( quaternion, undefined, false ); + }; + + rotation.onChange( onRotationChange ); + quaternion.onChange( onQuaternionChange ); + + Object.defineProperties( this, { + position: { + enumerable: true, + value: position + }, + rotation: { + enumerable: true, + value: rotation + }, + quaternion: { + enumerable: true, + value: quaternion + }, + scale: { + enumerable: true, + value: scale + } + } ); + + this.rotationAutoUpdate = true; + + this.matrix = new THREE.Matrix4(); + this.matrixWorld = new THREE.Matrix4(); + + this.matrixAutoUpdate = true; + this.matrixWorldNeedsUpdate = false; + + this.visible = true; + + this.castShadow = false; + this.receiveShadow = false; + + this.frustumCulled = true; + this.renderOrder = 0; + + this.userData = {}; + +}; + +THREE.Object3D.DefaultUp = new THREE.Vector3( 0, 1, 0 ); + +THREE.Object3D.prototype = { + + constructor: THREE.Object3D, + + get eulerOrder () { + + THREE.warn( 'THREE.Object3D: .eulerOrder has been moved to .rotation.order.' ); + + return this.rotation.order; + + }, + + set eulerOrder ( value ) { + + THREE.warn( 'THREE.Object3D: .eulerOrder has been moved to .rotation.order.' ); + + this.rotation.order = value; + + }, + + get useQuaternion () { + + THREE.warn( 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' ); + + }, + + set useQuaternion ( value ) { + + THREE.warn( 'THREE.Object3D: .useQuaternion has been removed. The library now uses quaternions by default.' ); + + }, + + applyMatrix: function ( matrix ) { + + this.matrix.multiplyMatrices( matrix, this.matrix ); + + this.matrix.decompose( this.position, this.quaternion, this.scale ); + + }, + + setRotationFromAxisAngle: function ( axis, angle ) { + + // assumes axis is normalized + + this.quaternion.setFromAxisAngle( axis, angle ); + + }, + + setRotationFromEuler: function ( euler ) { + + this.quaternion.setFromEuler( euler, true ); + + }, + + setRotationFromMatrix: function ( m ) { + + // assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled) + + this.quaternion.setFromRotationMatrix( m ); + + }, + + setRotationFromQuaternion: function ( q ) { + + // assumes q is normalized + + this.quaternion.copy( q ); + + }, + + rotateOnAxis: function () { + + // rotate object on axis in object space + // axis is assumed to be normalized + + var q1 = new THREE.Quaternion(); + + return function ( axis, angle ) { + + q1.setFromAxisAngle( axis, angle ); + + this.quaternion.multiply( q1 ); + + return this; + + } + + }(), + + rotateX: function () { + + var v1 = new THREE.Vector3( 1, 0, 0 ); + + return function ( angle ) { + + return this.rotateOnAxis( v1, angle ); + + }; + + }(), + + rotateY: function () { + + var v1 = new THREE.Vector3( 0, 1, 0 ); + + return function ( angle ) { + + return this.rotateOnAxis( v1, angle ); + + }; + + }(), + + rotateZ: function () { + + var v1 = new THREE.Vector3( 0, 0, 1 ); + + return function ( angle ) { + + return this.rotateOnAxis( v1, angle ); + + }; + + }(), + + translateOnAxis: function () { + + // translate object by distance along axis in object space + // axis is assumed to be normalized + + var v1 = new THREE.Vector3(); + + return function ( axis, distance ) { + + v1.copy( axis ).applyQuaternion( this.quaternion ); + + this.position.add( v1.multiplyScalar( distance ) ); + + return this; + + } + + }(), + + translate: function ( distance, axis ) { + + THREE.warn( 'THREE.Object3D: .translate() has been removed. Use .translateOnAxis( axis, distance ) instead.' ); + return this.translateOnAxis( axis, distance ); + + }, + + translateX: function () { + + var v1 = new THREE.Vector3( 1, 0, 0 ); + + return function ( distance ) { + + return this.translateOnAxis( v1, distance ); + + }; + + }(), + + translateY: function () { + + var v1 = new THREE.Vector3( 0, 1, 0 ); + + return function ( distance ) { + + return this.translateOnAxis( v1, distance ); + + }; + + }(), + + translateZ: function () { + + var v1 = new THREE.Vector3( 0, 0, 1 ); + + return function ( distance ) { + + return this.translateOnAxis( v1, distance ); + + }; + + }(), + + localToWorld: function ( vector ) { + + return vector.applyMatrix4( this.matrixWorld ); + + }, + + worldToLocal: function () { + + var m1 = new THREE.Matrix4(); + + return function ( vector ) { + + return vector.applyMatrix4( m1.getInverse( this.matrixWorld ) ); + + }; + + }(), + + lookAt: function () { + + // This routine does not support objects with rotated and/or translated parent(s) + + var m1 = new THREE.Matrix4(); + + return function ( vector ) { + + m1.lookAt( vector, this.position, this.up ); + + this.quaternion.setFromRotationMatrix( m1 ); + + }; + + }(), + + add: function ( object ) { + + if ( arguments.length > 1 ) { + + for ( var i = 0; i < arguments.length; i ++ ) { + + this.add( arguments[ i ] ); + + } + + return this; + + }; + + if ( object === this ) { + + THREE.error( "THREE.Object3D.add: object can't be added as a child of itself.", object ); + return this; + + } + + if ( object instanceof THREE.Object3D ) { + + if ( object.parent !== undefined ) { + + object.parent.remove( object ); + + } + + object.parent = this; + object.dispatchEvent( { type: 'added' } ); + + this.children.push( object ); + + } else { + + THREE.error( "THREE.Object3D.add: object not an instance of THREE.Object3D.", object ); + + } + + return this; + + }, + + remove: function ( object ) { + + if ( arguments.length > 1 ) { + + for ( var i = 0; i < arguments.length; i ++ ) { + + this.remove( arguments[ i ] ); + + } + + }; + + var index = this.children.indexOf( object ); + + if ( index !== - 1 ) { + + object.parent = undefined; + + object.dispatchEvent( { type: 'removed' } ); + + this.children.splice( index, 1 ); + + } + + }, + + getChildByName: function ( name ) { + + THREE.warn( 'THREE.Object3D: .getChildByName() has been renamed to .getObjectByName().' ); + return this.getObjectByName( name ); + + }, + + getObjectById: function ( id ) { + + return this.getObjectByProperty( 'id', id ); + + }, + + getObjectByName: function ( name ) { + + return this.getObjectByProperty( 'name', name ); + + }, + + getObjectByProperty: function ( name, value ) { + + if ( this[ name ] === value ) return this; + + for ( var i = 0, l = this.children.length; i < l; i ++ ) { + + var child = this.children[ i ]; + var object = child.getObjectByProperty( name, value ); + + if ( object !== undefined ) { + + return object; + + } + + } + + return undefined; + + }, + + getWorldPosition: function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + + this.updateMatrixWorld( true ); + + return result.setFromMatrixPosition( this.matrixWorld ); + + }, + + getWorldQuaternion: function () { + + var position = new THREE.Vector3(); + var scale = new THREE.Vector3(); + + return function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Quaternion(); + + this.updateMatrixWorld( true ); + + this.matrixWorld.decompose( position, result, scale ); + + return result; + + } + + }(), + + getWorldRotation: function () { + + var quaternion = new THREE.Quaternion(); + + return function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Euler(); + + this.getWorldQuaternion( quaternion ); + + return result.setFromQuaternion( quaternion, this.rotation.order, false ); + + } + + }(), + + getWorldScale: function () { + + var position = new THREE.Vector3(); + var quaternion = new THREE.Quaternion(); + + return function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + + this.updateMatrixWorld( true ); + + this.matrixWorld.decompose( position, quaternion, result ); + + return result; + + } + + }(), + + getWorldDirection: function () { + + var quaternion = new THREE.Quaternion(); + + return function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + + this.getWorldQuaternion( quaternion ); + + return result.set( 0, 0, 1 ).applyQuaternion( quaternion ); + + } + + }(), + + raycast: function () {}, + + traverse: function ( callback ) { + + callback( this ); + + for ( var i = 0, l = this.children.length; i < l; i ++ ) { + + this.children[ i ].traverse( callback ); + + } + + }, + + traverseVisible: function ( callback ) { + + if ( this.visible === false ) return; + + callback( this ); + + for ( var i = 0, l = this.children.length; i < l; i ++ ) { + + this.children[ i ].traverseVisible( callback ); + + } + + }, + + traverseAncestors: function ( callback ) { + + if ( this.parent ) { + + callback( this.parent ); + + this.parent.traverseAncestors( callback ); + + } + + }, + + updateMatrix: function () { + + this.matrix.compose( this.position, this.quaternion, this.scale ); + + this.matrixWorldNeedsUpdate = true; + + }, + + updateMatrixWorld: function ( force ) { + + if ( this.matrixAutoUpdate === true ) this.updateMatrix(); + + if ( this.matrixWorldNeedsUpdate === true || force === true ) { + + if ( this.parent === undefined ) { + + this.matrixWorld.copy( this.matrix ); + + } else { + + this.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix ); + + } + + this.matrixWorldNeedsUpdate = false; + + force = true; + + } + + // update children + + for ( var i = 0, l = this.children.length; i < l; i ++ ) { + + this.children[ i ].updateMatrixWorld( force ); + + } + + }, + + toJSON: function () { + + var output = { + metadata: { + version: 4.3, + type: 'Object', + generator: 'ObjectExporter' + } + }; + + // + + var geometries = {}; + + var parseGeometry = function ( geometry ) { + + if ( output.geometries === undefined ) { + + output.geometries = []; + + } + + if ( geometries[ geometry.uuid ] === undefined ) { + + var json = geometry.toJSON(); + + delete json.metadata; + + geometries[ geometry.uuid ] = json; + + output.geometries.push( json ); + + } + + return geometry.uuid; + + }; + + // + + var materials = {}; + + var parseMaterial = function ( material ) { + + if ( output.materials === undefined ) { + + output.materials = []; + + } + + if ( materials[ material.uuid ] === undefined ) { + + var json = material.toJSON(); + + delete json.metadata; + + materials[ material.uuid ] = json; + + output.materials.push( json ); + + } + + return material.uuid; + + }; + + // + + var parseObject = function ( object ) { + + var data = {}; + + data.uuid = object.uuid; + data.type = object.type; + + if ( object.name !== '' ) data.name = object.name; + if ( JSON.stringify( object.userData ) !== '{}' ) data.userData = object.userData; + if ( object.visible !== true ) data.visible = object.visible; + + if ( object instanceof THREE.PerspectiveCamera ) { + + data.fov = object.fov; + data.aspect = object.aspect; + data.near = object.near; + data.far = object.far; + + } else if ( object instanceof THREE.OrthographicCamera ) { + + data.left = object.left; + data.right = object.right; + data.top = object.top; + data.bottom = object.bottom; + data.near = object.near; + data.far = object.far; + + } else if ( object instanceof THREE.AmbientLight ) { + + data.color = object.color.getHex(); + + } else if ( object instanceof THREE.DirectionalLight ) { + + data.color = object.color.getHex(); + data.intensity = object.intensity; + + } else if ( object instanceof THREE.PointLight ) { + + data.color = object.color.getHex(); + data.intensity = object.intensity; + data.distance = object.distance; + data.decay = object.decay; + + } else if ( object instanceof THREE.SpotLight ) { + + data.color = object.color.getHex(); + data.intensity = object.intensity; + data.distance = object.distance; + data.angle = object.angle; + data.exponent = object.exponent; + data.decay = object.decay; + + } else if ( object instanceof THREE.HemisphereLight ) { + + data.color = object.color.getHex(); + data.groundColor = object.groundColor.getHex(); + + } else if ( object instanceof THREE.Mesh || object instanceof THREE.Line || object instanceof THREE.PointCloud ) { + + data.geometry = parseGeometry( object.geometry ); + data.material = parseMaterial( object.material ); + + if ( object instanceof THREE.Line ) data.mode = object.mode; + + } else if ( object instanceof THREE.Sprite ) { + + data.material = parseMaterial( object.material ); + + } + + data.matrix = object.matrix.toArray(); + + if ( object.children.length > 0 ) { + + data.children = []; + + for ( var i = 0; i < object.children.length; i ++ ) { + + data.children.push( parseObject( object.children[ i ] ) ); + + } + + } + + return data; + + } + + output.object = parseObject( this ); + + return output; + + }, + + clone: function ( object, recursive ) { + + if ( object === undefined ) object = new THREE.Object3D(); + if ( recursive === undefined ) recursive = true; + + object.name = this.name; + + object.up.copy( this.up ); + + object.position.copy( this.position ); + object.quaternion.copy( this.quaternion ); + object.scale.copy( this.scale ); + + object.rotationAutoUpdate = this.rotationAutoUpdate; + + object.matrix.copy( this.matrix ); + object.matrixWorld.copy( this.matrixWorld ); + + object.matrixAutoUpdate = this.matrixAutoUpdate; + object.matrixWorldNeedsUpdate = this.matrixWorldNeedsUpdate; + + object.visible = this.visible; + + object.castShadow = this.castShadow; + object.receiveShadow = this.receiveShadow; + + object.frustumCulled = this.frustumCulled; + + object.userData = JSON.parse( JSON.stringify( this.userData ) ); + + if ( recursive === true ) { + + for ( var i = 0; i < this.children.length; i ++ ) { + + var child = this.children[ i ]; + object.add( child.clone() ); + + } + + } + + return object; + + } + +}; + +THREE.EventDispatcher.prototype.apply( THREE.Object3D.prototype ); + +THREE.Object3DIdCount = 0; + +// File:src/core/Face3.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.Face3 = function ( a, b, c, normal, color, materialIndex ) { + + this.a = a; + this.b = b; + this.c = c; + + this.normal = normal instanceof THREE.Vector3 ? normal : new THREE.Vector3(); + this.vertexNormals = normal instanceof Array ? normal : []; + + this.color = color instanceof THREE.Color ? color : new THREE.Color(); + this.vertexColors = color instanceof Array ? color : []; + + this.vertexTangents = []; + + this.materialIndex = materialIndex !== undefined ? materialIndex : 0; + +}; + +THREE.Face3.prototype = { + + constructor: THREE.Face3, + + clone: function () { + + var face = new THREE.Face3( this.a, this.b, this.c ); + + face.normal.copy( this.normal ); + face.color.copy( this.color ); + + face.materialIndex = this.materialIndex; + + for ( var i = 0, il = this.vertexNormals.length; i < il; i ++ ) { + + face.vertexNormals[ i ] = this.vertexNormals[ i ].clone(); + + } + + for ( var i = 0, il = this.vertexColors.length; i < il; i ++ ) { + + face.vertexColors[ i ] = this.vertexColors[ i ].clone(); + + } + + for ( var i = 0, il = this.vertexTangents.length; i < il; i ++ ) { + + face.vertexTangents[ i ] = this.vertexTangents[ i ].clone(); + + } + + return face; + + } + +}; + +// File:src/core/Face4.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.Face4 = function ( a, b, c, d, normal, color, materialIndex ) { + + THREE.warn( 'THREE.Face4 has been removed. A THREE.Face3 will be created instead.' ) + return new THREE.Face3( a, b, c, normal, color, materialIndex ); + +}; + +// File:src/core/BufferAttribute.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.BufferAttribute = function ( array, itemSize ) { + + this.array = array; + this.itemSize = itemSize; + + this.needsUpdate = false; + +}; + +THREE.BufferAttribute.prototype = { + + constructor: THREE.BufferAttribute, + + get length () { + + return this.array.length; + + }, + + copyAt: function ( index1, attribute, index2 ) { + + index1 *= this.itemSize; + index2 *= attribute.itemSize; + + for ( var i = 0, l = this.itemSize; i < l; i ++ ) { + + this.array[ index1 + i ] = attribute.array[ index2 + i ]; + + } + + return this; + + }, + + set: function ( value, offset ) { + + if ( offset === undefined ) offset = 0; + + this.array.set( value, offset ); + + return this; + + }, + + setX: function ( index, x ) { + + this.array[ index * this.itemSize ] = x; + + return this; + + }, + + setY: function ( index, y ) { + + this.array[ index * this.itemSize + 1 ] = y; + + return this; + + }, + + setZ: function ( index, z ) { + + this.array[ index * this.itemSize + 2 ] = z; + + return this; + + }, + + setXY: function ( index, x, y ) { + + index *= this.itemSize; + + this.array[ index ] = x; + this.array[ index + 1 ] = y; + + return this; + + }, + + setXYZ: function ( index, x, y, z ) { + + index *= this.itemSize; + + this.array[ index ] = x; + this.array[ index + 1 ] = y; + this.array[ index + 2 ] = z; + + return this; + + }, + + setXYZW: function ( index, x, y, z, w ) { + + index *= this.itemSize; + + this.array[ index ] = x; + this.array[ index + 1 ] = y; + this.array[ index + 2 ] = z; + this.array[ index + 3 ] = w; + + return this; + + }, + + clone: function () { + + return new THREE.BufferAttribute( new this.array.constructor( this.array ), this.itemSize ); + + } + +}; + +// + +THREE.Int8Attribute = function ( data, itemSize ) { + + THREE.warn( 'THREE.Int8Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' ); + return new THREE.BufferAttribute( data, itemSize ); + +}; + +THREE.Uint8Attribute = function ( data, itemSize ) { + + THREE.warn( 'THREE.Uint8Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' ); + return new THREE.BufferAttribute( data, itemSize ); + +}; + +THREE.Uint8ClampedAttribute = function ( data, itemSize ) { + + THREE.warn( 'THREE.Uint8ClampedAttribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' ); + return new THREE.BufferAttribute( data, itemSize ); + + +}; + +THREE.Int16Attribute = function ( data, itemSize ) { + + THREE.warn( 'THREE.Int16Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' ); + return new THREE.BufferAttribute( data, itemSize ); + +}; + +THREE.Uint16Attribute = function ( data, itemSize ) { + + THREE.warn( 'THREE.Uint16Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' ); + return new THREE.BufferAttribute( data, itemSize ); + +}; + +THREE.Int32Attribute = function ( data, itemSize ) { + + THREE.warn( 'THREE.Int32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' ); + return new THREE.BufferAttribute( data, itemSize ); + +}; + +THREE.Uint32Attribute = function ( data, itemSize ) { + + THREE.warn( 'THREE.Uint32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' ); + return new THREE.BufferAttribute( data, itemSize ); + +}; + +THREE.Float32Attribute = function ( data, itemSize ) { + + THREE.warn( 'THREE.Float32Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' ); + return new THREE.BufferAttribute( data, itemSize ); + +}; + +THREE.Float64Attribute = function ( data, itemSize ) { + + THREE.warn( 'THREE.Float64Attribute has been removed. Use THREE.BufferAttribute( array, itemSize ) instead.' ); + return new THREE.BufferAttribute( data, itemSize ); + +}; + +// File:src/core/DynamicBufferAttribute.js + +/** + * @author benaadams / https://twitter.com/ben_a_adams + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.DynamicBufferAttribute = function ( array, itemSize ) { + + THREE.BufferAttribute.call( this, array, itemSize ); + + this.updateRange = { offset: 0, count: -1 }; + +}; + +THREE.DynamicBufferAttribute.prototype = Object.create( THREE.BufferAttribute.prototype ); +THREE.DynamicBufferAttribute.prototype.constructor = THREE.DynamicBufferAttribute; + +THREE.DynamicBufferAttribute.prototype.clone = function () { + + return new THREE.DynamicBufferAttribute( new this.array.constructor( this.array ), this.itemSize ); + +}; + +// File:src/core/BufferGeometry.js + +/** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.BufferGeometry = function () { + + Object.defineProperty( this, 'id', { value: THREE.GeometryIdCount ++ } ); + + this.uuid = THREE.Math.generateUUID(); + + this.name = ''; + this.type = 'BufferGeometry'; + + this.attributes = {}; + this.attributesKeys = []; + + this.drawcalls = []; + this.offsets = this.drawcalls; // backwards compatibility + + this.boundingBox = null; + this.boundingSphere = null; + +}; + +THREE.BufferGeometry.prototype = { + + constructor: THREE.BufferGeometry, + + addAttribute: function ( name, attribute ) { + + if ( attribute instanceof THREE.BufferAttribute === false ) { + + THREE.warn( 'THREE.BufferGeometry: .addAttribute() now expects ( name, attribute ).' ); + + this.attributes[ name ] = { array: arguments[ 1 ], itemSize: arguments[ 2 ] }; + + return; + + } + + this.attributes[ name ] = attribute; + this.attributesKeys = Object.keys( this.attributes ); + + }, + + getAttribute: function ( name ) { + + return this.attributes[ name ]; + + }, + + addDrawCall: function ( start, count, indexOffset ) { + + this.drawcalls.push( { + + start: start, + count: count, + index: indexOffset !== undefined ? indexOffset : 0 + + } ); + + }, + + applyMatrix: function ( matrix ) { + + var position = this.attributes.position; + + if ( position !== undefined ) { + + matrix.applyToVector3Array( position.array ); + position.needsUpdate = true; + + } + + var normal = this.attributes.normal; + + if ( normal !== undefined ) { + + var normalMatrix = new THREE.Matrix3().getNormalMatrix( matrix ); + + normalMatrix.applyToVector3Array( normal.array ); + normal.needsUpdate = true; + + } + + if ( this.boundingBox !== null ) { + + this.computeBoundingBox(); + + } + + if ( this.boundingSphere !== null ) { + + this.computeBoundingSphere(); + + } + + }, + + center: function () { + + this.computeBoundingBox(); + + var offset = this.boundingBox.center().negate(); + + this.applyMatrix( new THREE.Matrix4().setPosition( offset ) ); + + return offset; + + }, + + fromGeometry: function ( geometry, settings ) { + + settings = settings || { 'vertexColors': THREE.NoColors }; + + var vertices = geometry.vertices; + var faces = geometry.faces; + var faceVertexUvs = geometry.faceVertexUvs; + var vertexColors = settings.vertexColors; + var hasFaceVertexUv = faceVertexUvs[ 0 ].length > 0; + var hasFaceVertexNormals = faces[ 0 ].vertexNormals.length == 3; + + var positions = new Float32Array( faces.length * 3 * 3 ); + this.addAttribute( 'position', new THREE.BufferAttribute( positions, 3 ) ); + + var normals = new Float32Array( faces.length * 3 * 3 ); + this.addAttribute( 'normal', new THREE.BufferAttribute( normals, 3 ) ); + + if ( vertexColors !== THREE.NoColors ) { + + var colors = new Float32Array( faces.length * 3 * 3 ); + this.addAttribute( 'color', new THREE.BufferAttribute( colors, 3 ) ); + + } + + if ( hasFaceVertexUv === true ) { + + var uvs = new Float32Array( faces.length * 3 * 2 ); + this.addAttribute( 'uv', new THREE.BufferAttribute( uvs, 2 ) ); + + } + + for ( var i = 0, i2 = 0, i3 = 0; i < faces.length; i ++, i2 += 6, i3 += 9 ) { + + var face = faces[ i ]; + + var a = vertices[ face.a ]; + var b = vertices[ face.b ]; + var c = vertices[ face.c ]; + + positions[ i3 ] = a.x; + positions[ i3 + 1 ] = a.y; + positions[ i3 + 2 ] = a.z; + + positions[ i3 + 3 ] = b.x; + positions[ i3 + 4 ] = b.y; + positions[ i3 + 5 ] = b.z; + + positions[ i3 + 6 ] = c.x; + positions[ i3 + 7 ] = c.y; + positions[ i3 + 8 ] = c.z; + + if ( hasFaceVertexNormals === true ) { + + var na = face.vertexNormals[ 0 ]; + var nb = face.vertexNormals[ 1 ]; + var nc = face.vertexNormals[ 2 ]; + + normals[ i3 ] = na.x; + normals[ i3 + 1 ] = na.y; + normals[ i3 + 2 ] = na.z; + + normals[ i3 + 3 ] = nb.x; + normals[ i3 + 4 ] = nb.y; + normals[ i3 + 5 ] = nb.z; + + normals[ i3 + 6 ] = nc.x; + normals[ i3 + 7 ] = nc.y; + normals[ i3 + 8 ] = nc.z; + + } else { + + var n = face.normal; + + normals[ i3 ] = n.x; + normals[ i3 + 1 ] = n.y; + normals[ i3 + 2 ] = n.z; + + normals[ i3 + 3 ] = n.x; + normals[ i3 + 4 ] = n.y; + normals[ i3 + 5 ] = n.z; + + normals[ i3 + 6 ] = n.x; + normals[ i3 + 7 ] = n.y; + normals[ i3 + 8 ] = n.z; + + } + + if ( vertexColors === THREE.FaceColors ) { + + var fc = face.color; + + colors[ i3 ] = fc.r; + colors[ i3 + 1 ] = fc.g; + colors[ i3 + 2 ] = fc.b; + + colors[ i3 + 3 ] = fc.r; + colors[ i3 + 4 ] = fc.g; + colors[ i3 + 5 ] = fc.b; + + colors[ i3 + 6 ] = fc.r; + colors[ i3 + 7 ] = fc.g; + colors[ i3 + 8 ] = fc.b; + + } else if ( vertexColors === THREE.VertexColors ) { + + var vca = face.vertexColors[ 0 ]; + var vcb = face.vertexColors[ 1 ]; + var vcc = face.vertexColors[ 2 ]; + + colors[ i3 ] = vca.r; + colors[ i3 + 1 ] = vca.g; + colors[ i3 + 2 ] = vca.b; + + colors[ i3 + 3 ] = vcb.r; + colors[ i3 + 4 ] = vcb.g; + colors[ i3 + 5 ] = vcb.b; + + colors[ i3 + 6 ] = vcc.r; + colors[ i3 + 7 ] = vcc.g; + colors[ i3 + 8 ] = vcc.b; + + } + + if ( hasFaceVertexUv === true ) { + + var uva = faceVertexUvs[ 0 ][ i ][ 0 ]; + var uvb = faceVertexUvs[ 0 ][ i ][ 1 ]; + var uvc = faceVertexUvs[ 0 ][ i ][ 2 ]; + + uvs[ i2 ] = uva.x; + uvs[ i2 + 1 ] = uva.y; + + uvs[ i2 + 2 ] = uvb.x; + uvs[ i2 + 3 ] = uvb.y; + + uvs[ i2 + 4 ] = uvc.x; + uvs[ i2 + 5 ] = uvc.y; + + } + + } + + this.computeBoundingSphere() + + return this; + + }, + + computeBoundingBox: function () { + + var vector = new THREE.Vector3(); + + return function () { + + if ( this.boundingBox === null ) { + + this.boundingBox = new THREE.Box3(); + + } + + var positions = this.attributes.position.array; + + if ( positions ) { + + var bb = this.boundingBox; + bb.makeEmpty(); + + for ( var i = 0, il = positions.length; i < il; i += 3 ) { + + vector.set( positions[ i ], positions[ i + 1 ], positions[ i + 2 ] ); + bb.expandByPoint( vector ); + + } + + } + + if ( positions === undefined || positions.length === 0 ) { + + this.boundingBox.min.set( 0, 0, 0 ); + this.boundingBox.max.set( 0, 0, 0 ); + + } + + if ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) { + + THREE.error( 'THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The "position" attribute is likely to have NaN values.' ); + + } + + } + + }(), + + computeBoundingSphere: function () { + + var box = new THREE.Box3(); + var vector = new THREE.Vector3(); + + return function () { + + if ( this.boundingSphere === null ) { + + this.boundingSphere = new THREE.Sphere(); + + } + + var positions = this.attributes.position.array; + + if ( positions ) { + + box.makeEmpty(); + + var center = this.boundingSphere.center; + + for ( var i = 0, il = positions.length; i < il; i += 3 ) { + + vector.set( positions[ i ], positions[ i + 1 ], positions[ i + 2 ] ); + box.expandByPoint( vector ); + + } + + box.center( center ); + + // hoping to find a boundingSphere with a radius smaller than the + // boundingSphere of the boundingBox: sqrt(3) smaller in the best case + + var maxRadiusSq = 0; + + for ( var i = 0, il = positions.length; i < il; i += 3 ) { + + vector.set( positions[ i ], positions[ i + 1 ], positions[ i + 2 ] ); + maxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( vector ) ); + + } + + this.boundingSphere.radius = Math.sqrt( maxRadiusSq ); + + if ( isNaN( this.boundingSphere.radius ) ) { + + THREE.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.' ); + + } + + } + + } + + }(), + + computeFaceNormals: function () { + + // backwards compatibility + + }, + + computeVertexNormals: function () { + + var attributes = this.attributes; + + if ( attributes.position ) { + + var positions = attributes.position.array; + + if ( attributes.normal === undefined ) { + + this.addAttribute( 'normal', new THREE.BufferAttribute( new Float32Array( positions.length ), 3 ) ); + + } else { + + // reset existing normals to zero + + var normals = attributes.normal.array; + + for ( var i = 0, il = normals.length; i < il; i ++ ) { + + normals[ i ] = 0; + + } + + } + + var normals = attributes.normal.array; + + var vA, vB, vC, + + pA = new THREE.Vector3(), + pB = new THREE.Vector3(), + pC = new THREE.Vector3(), + + cb = new THREE.Vector3(), + ab = new THREE.Vector3(); + + // indexed elements + + if ( attributes.index ) { + + var indices = attributes.index.array; + + var offsets = ( this.offsets.length > 0 ? this.offsets : [ { start: 0, count: indices.length, index: 0 } ] ); + + for ( var j = 0, jl = offsets.length; j < jl; ++ j ) { + + var start = offsets[ j ].start; + var count = offsets[ j ].count; + var index = offsets[ j ].index; + + for ( var i = start, il = start + count; i < il; i += 3 ) { + + vA = ( index + indices[ i ] ) * 3; + vB = ( index + indices[ i + 1 ] ) * 3; + vC = ( index + indices[ i + 2 ] ) * 3; + + pA.fromArray( positions, vA ); + pB.fromArray( positions, vB ); + pC.fromArray( positions, vC ); + + cb.subVectors( pC, pB ); + ab.subVectors( pA, pB ); + cb.cross( ab ); + + normals[ vA ] += cb.x; + normals[ vA + 1 ] += cb.y; + normals[ vA + 2 ] += cb.z; + + normals[ vB ] += cb.x; + normals[ vB + 1 ] += cb.y; + normals[ vB + 2 ] += cb.z; + + normals[ vC ] += cb.x; + normals[ vC + 1 ] += cb.y; + normals[ vC + 2 ] += cb.z; + + } + + } + + } else { + + // non-indexed elements (unconnected triangle soup) + + for ( var i = 0, il = positions.length; i < il; i += 9 ) { + + pA.fromArray( positions, i ); + pB.fromArray( positions, i + 3 ); + pC.fromArray( positions, i + 6 ); + + cb.subVectors( pC, pB ); + ab.subVectors( pA, pB ); + cb.cross( ab ); + + normals[ i ] = cb.x; + normals[ i + 1 ] = cb.y; + normals[ i + 2 ] = cb.z; + + normals[ i + 3 ] = cb.x; + normals[ i + 4 ] = cb.y; + normals[ i + 5 ] = cb.z; + + normals[ i + 6 ] = cb.x; + normals[ i + 7 ] = cb.y; + normals[ i + 8 ] = cb.z; + + } + + } + + this.normalizeNormals(); + + attributes.normal.needsUpdate = true; + + } + + }, + + computeTangents: function () { + + // based on http://www.terathon.com/code/tangent.html + // (per vertex tangents) + + if ( this.attributes.index === undefined || + this.attributes.position === undefined || + this.attributes.normal === undefined || + this.attributes.uv === undefined ) { + + THREE.warn( 'THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()' ); + return; + + } + + var indices = this.attributes.index.array; + var positions = this.attributes.position.array; + var normals = this.attributes.normal.array; + var uvs = this.attributes.uv.array; + + var nVertices = positions.length / 3; + + if ( this.attributes.tangent === undefined ) { + + this.addAttribute( 'tangent', new THREE.BufferAttribute( new Float32Array( 4 * nVertices ), 4 ) ); + + } + + var tangents = this.attributes.tangent.array; + + var tan1 = [], tan2 = []; + + for ( var k = 0; k < nVertices; k ++ ) { + + tan1[ k ] = new THREE.Vector3(); + tan2[ k ] = new THREE.Vector3(); + + } + + var vA = new THREE.Vector3(), + vB = new THREE.Vector3(), + vC = new THREE.Vector3(), + + uvA = new THREE.Vector2(), + uvB = new THREE.Vector2(), + uvC = new THREE.Vector2(), + + x1, x2, y1, y2, z1, z2, + s1, s2, t1, t2, r; + + var sdir = new THREE.Vector3(), tdir = new THREE.Vector3(); + + function handleTriangle( a, b, c ) { + + vA.fromArray( positions, a * 3 ); + vB.fromArray( positions, b * 3 ); + vC.fromArray( positions, c * 3 ); + + uvA.fromArray( uvs, a * 2 ); + uvB.fromArray( uvs, b * 2 ); + uvC.fromArray( uvs, c * 2 ); + + x1 = vB.x - vA.x; + x2 = vC.x - vA.x; + + y1 = vB.y - vA.y; + y2 = vC.y - vA.y; + + z1 = vB.z - vA.z; + z2 = vC.z - vA.z; + + s1 = uvB.x - uvA.x; + s2 = uvC.x - uvA.x; + + t1 = uvB.y - uvA.y; + t2 = uvC.y - uvA.y; + + r = 1.0 / ( s1 * t2 - s2 * t1 ); + + sdir.set( + ( t2 * x1 - t1 * x2 ) * r, + ( t2 * y1 - t1 * y2 ) * r, + ( t2 * z1 - t1 * z2 ) * r + ); + + tdir.set( + ( s1 * x2 - s2 * x1 ) * r, + ( s1 * y2 - s2 * y1 ) * r, + ( s1 * z2 - s2 * z1 ) * r + ); + + tan1[ a ].add( sdir ); + tan1[ b ].add( sdir ); + tan1[ c ].add( sdir ); + + tan2[ a ].add( tdir ); + tan2[ b ].add( tdir ); + tan2[ c ].add( tdir ); + + } + + var i, il; + var j, jl; + var iA, iB, iC; + + if ( this.drawcalls.length === 0 ) { + + this.addDrawCall( 0, indices.length, 0 ); + + } + + var drawcalls = this.drawcalls; + + for ( j = 0, jl = drawcalls.length; j < jl; ++ j ) { + + var start = drawcalls[ j ].start; + var count = drawcalls[ j ].count; + var index = drawcalls[ j ].index; + + for ( i = start, il = start + count; i < il; i += 3 ) { + + iA = index + indices[ i ]; + iB = index + indices[ i + 1 ]; + iC = index + indices[ i + 2 ]; + + handleTriangle( iA, iB, iC ); + + } + + } + + var tmp = new THREE.Vector3(), tmp2 = new THREE.Vector3(); + var n = new THREE.Vector3(), n2 = new THREE.Vector3(); + var w, t, test; + + function handleVertex( v ) { + + n.fromArray( normals, v * 3 ); + n2.copy( n ); + + t = tan1[ v ]; + + // Gram-Schmidt orthogonalize + + tmp.copy( t ); + tmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize(); + + // Calculate handedness + + tmp2.crossVectors( n2, t ); + test = tmp2.dot( tan2[ v ] ); + w = ( test < 0.0 ) ? - 1.0 : 1.0; + + tangents[ v * 4 ] = tmp.x; + tangents[ v * 4 + 1 ] = tmp.y; + tangents[ v * 4 + 2 ] = tmp.z; + tangents[ v * 4 + 3 ] = w; + + } + + for ( j = 0, jl = drawcalls.length; j < jl; ++ j ) { + + var start = drawcalls[ j ].start; + var count = drawcalls[ j ].count; + var index = drawcalls[ j ].index; + + for ( i = start, il = start + count; i < il; i += 3 ) { + + iA = index + indices[ i ]; + iB = index + indices[ i + 1 ]; + iC = index + indices[ i + 2 ]; + + handleVertex( iA ); + handleVertex( iB ); + handleVertex( iC ); + + } + + } + + }, + + /* + Compute the draw offset for large models by chunking the index buffer into chunks of 65k addressable vertices. + This method will effectively rewrite the index buffer and remap all attributes to match the new indices. + WARNING: This method will also expand the vertex count to prevent sprawled triangles across draw offsets. + size - Defaults to 65535, but allows for larger or smaller chunks. + */ + computeOffsets: function ( size ) { + + if ( size === undefined ) size = 65535; // WebGL limits type of index buffer values to 16-bit. + + var indices = this.attributes.index.array; + var vertices = this.attributes.position.array; + + var facesCount = ( indices.length / 3 ); + + /* + console.log("Computing buffers in offsets of "+size+" -> indices:"+indices.length+" vertices:"+vertices.length); + console.log("Faces to process: "+(indices.length/3)); + console.log("Reordering "+verticesCount+" vertices."); + */ + + var sortedIndices = new Uint16Array( indices.length ); //16-bit buffers + var indexPtr = 0; + var vertexPtr = 0; + + var offsets = [ { start:0, count:0, index:0 } ]; + var offset = offsets[ 0 ]; + + var duplicatedVertices = 0; + var newVerticeMaps = 0; + var faceVertices = new Int32Array( 6 ); + var vertexMap = new Int32Array( vertices.length ); + var revVertexMap = new Int32Array( vertices.length ); + for ( var j = 0; j < vertices.length; j ++ ) { vertexMap[ j ] = - 1; revVertexMap[ j ] = - 1; } + + /* + Traverse every face and reorder vertices in the proper offsets of 65k. + We can have more than 65k entries in the index buffer per offset, but only reference 65k values. + */ + for ( var findex = 0; findex < facesCount; findex ++ ) { + newVerticeMaps = 0; + + for ( var vo = 0; vo < 3; vo ++ ) { + var vid = indices[ findex * 3 + vo ]; + if ( vertexMap[ vid ] == - 1 ) { + //Unmapped vertice + faceVertices[ vo * 2 ] = vid; + faceVertices[ vo * 2 + 1 ] = - 1; + newVerticeMaps ++; + } else if ( vertexMap[ vid ] < offset.index ) { + //Reused vertices from previous block (duplicate) + faceVertices[ vo * 2 ] = vid; + faceVertices[ vo * 2 + 1 ] = - 1; + duplicatedVertices ++; + } else { + //Reused vertice in the current block + faceVertices[ vo * 2 ] = vid; + faceVertices[ vo * 2 + 1 ] = vertexMap[ vid ]; + } + } + + var faceMax = vertexPtr + newVerticeMaps; + if ( faceMax > ( offset.index + size ) ) { + var new_offset = { start:indexPtr, count:0, index:vertexPtr }; + offsets.push( new_offset ); + offset = new_offset; + + //Re-evaluate reused vertices in light of new offset. + for ( var v = 0; v < 6; v += 2 ) { + var new_vid = faceVertices[ v + 1 ]; + if ( new_vid > - 1 && new_vid < offset.index ) + faceVertices[ v + 1 ] = - 1; + } + } + + //Reindex the face. + for ( var v = 0; v < 6; v += 2 ) { + var vid = faceVertices[ v ]; + var new_vid = faceVertices[ v + 1 ]; + + if ( new_vid === - 1 ) + new_vid = vertexPtr ++; + + vertexMap[ vid ] = new_vid; + revVertexMap[ new_vid ] = vid; + sortedIndices[ indexPtr ++ ] = new_vid - offset.index; //XXX overflows at 16bit + offset.count ++; + } + } + + /* Move all attribute values to map to the new computed indices , also expand the vertice stack to match our new vertexPtr. */ + this.reorderBuffers( sortedIndices, revVertexMap, vertexPtr ); + this.offsets = offsets; // TODO: Deprecate + this.drawcalls = offsets; + + /* + var orderTime = Date.now(); + console.log("Reorder time: "+(orderTime-s)+"ms"); + console.log("Duplicated "+duplicatedVertices+" vertices."); + console.log("Compute Buffers time: "+(Date.now()-s)+"ms"); + console.log("Draw offsets: "+offsets.length); + */ + + return offsets; + + }, + + merge: function ( geometry, offset ) { + + if ( geometry instanceof THREE.BufferGeometry === false ) { + + THREE.error( 'THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.', geometry ); + return; + + } + + if ( offset === undefined ) offset = 0; + + var attributes = this.attributes; + + for ( var key in attributes ) { + + if ( geometry.attributes[ key ] === undefined ) continue; + + var attribute1 = attributes[ key ]; + var attributeArray1 = attribute1.array; + + var attribute2 = geometry.attributes[ key ]; + var attributeArray2 = attribute2.array; + + var attributeSize = attribute2.itemSize; + + for ( var i = 0, j = attributeSize * offset; i < attributeArray2.length; i ++, j ++ ) { + + attributeArray1[ j ] = attributeArray2[ i ]; + + } + + } + + return this; + + }, + + normalizeNormals: function () { + + var normals = this.attributes.normal.array; + + var x, y, z, n; + + for ( var i = 0, il = normals.length; i < il; i += 3 ) { + + x = normals[ i ]; + y = normals[ i + 1 ]; + z = normals[ i + 2 ]; + + n = 1.0 / Math.sqrt( x * x + y * y + z * z ); + + normals[ i ] *= n; + normals[ i + 1 ] *= n; + normals[ i + 2 ] *= n; + + } + + }, + + /* + reoderBuffers: + Reorder attributes based on a new indexBuffer and indexMap. + indexBuffer - Uint16Array of the new ordered indices. + indexMap - Int32Array where the position is the new vertex ID and the value the old vertex ID for each vertex. + vertexCount - Amount of total vertices considered in this reordering (in case you want to grow the vertice stack). + */ + reorderBuffers: function ( indexBuffer, indexMap, vertexCount ) { + + /* Create a copy of all attributes for reordering. */ + var sortedAttributes = {}; + for ( var attr in this.attributes ) { + if ( attr == 'index' ) + continue; + var sourceArray = this.attributes[ attr ].array; + sortedAttributes[ attr ] = new sourceArray.constructor( this.attributes[ attr ].itemSize * vertexCount ); + } + + /* Move attribute positions based on the new index map */ + for ( var new_vid = 0; new_vid < vertexCount; new_vid ++ ) { + var vid = indexMap[ new_vid ]; + for ( var attr in this.attributes ) { + if ( attr == 'index' ) + continue; + var attrArray = this.attributes[ attr ].array; + var attrSize = this.attributes[ attr ].itemSize; + var sortedAttr = sortedAttributes[ attr ]; + for ( var k = 0; k < attrSize; k ++ ) + sortedAttr[ new_vid * attrSize + k ] = attrArray[ vid * attrSize + k ]; + } + } + + /* Carry the new sorted buffers locally */ + this.attributes[ 'index' ].array = indexBuffer; + for ( var attr in this.attributes ) { + if ( attr == 'index' ) + continue; + this.attributes[ attr ].array = sortedAttributes[ attr ]; + this.attributes[ attr ].numItems = this.attributes[ attr ].itemSize * vertexCount; + } + }, + + toJSON: function () { + + var output = { + metadata: { + version: 4.0, + type: 'BufferGeometry', + generator: 'BufferGeometryExporter' + }, + uuid: this.uuid, + type: this.type, + data: { + attributes: {} + } + }; + + var attributes = this.attributes; + var offsets = this.offsets; + var boundingSphere = this.boundingSphere; + + for ( var key in attributes ) { + + var attribute = attributes[ key ]; + + var array = Array.prototype.slice.call( attribute.array ); + + output.data.attributes[ key ] = { + itemSize: attribute.itemSize, + type: attribute.array.constructor.name, + array: array + } + + } + + if ( offsets.length > 0 ) { + + output.data.offsets = JSON.parse( JSON.stringify( offsets ) ); + + } + + if ( boundingSphere !== null ) { + + output.data.boundingSphere = { + center: boundingSphere.center.toArray(), + radius: boundingSphere.radius + } + + } + + return output; + + }, + + clone: function () { + + var geometry = new THREE.BufferGeometry(); + + for ( var attr in this.attributes ) { + + var sourceAttr = this.attributes[ attr ]; + geometry.addAttribute( attr, sourceAttr.clone() ); + + } + + for ( var i = 0, il = this.offsets.length; i < il; i ++ ) { + + var offset = this.offsets[ i ]; + + geometry.offsets.push( { + + start: offset.start, + index: offset.index, + count: offset.count + + } ); + + } + + return geometry; + + }, + + dispose: function () { + + this.dispatchEvent( { type: 'dispose' } ); + + } + +}; + +THREE.EventDispatcher.prototype.apply( THREE.BufferGeometry.prototype ); + +// File:src/core/Geometry.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author kile / http://kile.stravaganza.org/ + * @author alteredq / http://alteredqualia.com/ + * @author mikael emtinger / http://gomo.se/ + * @author zz85 / http://www.lab4games.net/zz85/blog + * @author bhouston / http://exocortex.com + */ + +THREE.Geometry = function () { + + Object.defineProperty( this, 'id', { value: THREE.GeometryIdCount ++ } ); + + this.uuid = THREE.Math.generateUUID(); + + this.name = ''; + this.type = 'Geometry'; + + this.vertices = []; + this.colors = []; // one-to-one vertex colors, used in Points and Line + + this.faces = []; + + this.faceVertexUvs = [ [] ]; + + this.morphTargets = []; + this.morphColors = []; + this.morphNormals = []; + + this.skinWeights = []; + this.skinIndices = []; + + this.lineDistances = []; + + this.boundingBox = null; + this.boundingSphere = null; + + this.hasTangents = false; + + this.dynamic = true; // the intermediate typed arrays will be deleted when set to false + + // update flags + + this.verticesNeedUpdate = false; + this.elementsNeedUpdate = false; + this.uvsNeedUpdate = false; + this.normalsNeedUpdate = false; + this.tangentsNeedUpdate = false; + this.colorsNeedUpdate = false; + this.lineDistancesNeedUpdate = false; + + this.groupsNeedUpdate = false; + +}; + +THREE.Geometry.prototype = { + + constructor: THREE.Geometry, + + applyMatrix: function ( matrix ) { + + var normalMatrix = new THREE.Matrix3().getNormalMatrix( matrix ); + + for ( var i = 0, il = this.vertices.length; i < il; i ++ ) { + + var vertex = this.vertices[ i ]; + vertex.applyMatrix4( matrix ); + + } + + for ( var i = 0, il = this.faces.length; i < il; i ++ ) { + + var face = this.faces[ i ]; + face.normal.applyMatrix3( normalMatrix ).normalize(); + + for ( var j = 0, jl = face.vertexNormals.length; j < jl; j ++ ) { + + face.vertexNormals[ j ].applyMatrix3( normalMatrix ).normalize(); + + } + + } + + if ( this.boundingBox !== null ) { + + this.computeBoundingBox(); + + } + + if ( this.boundingSphere !== null ) { + + this.computeBoundingSphere(); + + } + + this.verticesNeedUpdate = true; + this.normalsNeedUpdate = true; + + }, + + fromBufferGeometry: function ( geometry ) { + + var scope = this; + + var attributes = geometry.attributes; + + var vertices = attributes.position.array; + var indices = attributes.index !== undefined ? attributes.index.array : undefined; + var normals = attributes.normal !== undefined ? attributes.normal.array : undefined; + var colors = attributes.color !== undefined ? attributes.color.array : undefined; + var uvs = attributes.uv !== undefined ? attributes.uv.array : undefined; + + var tempNormals = []; + var tempUVs = []; + + for ( var i = 0, j = 0; i < vertices.length; i += 3, j += 2 ) { + + scope.vertices.push( new THREE.Vector3( vertices[ i ], vertices[ i + 1 ], vertices[ i + 2 ] ) ); + + if ( normals !== undefined ) { + + tempNormals.push( new THREE.Vector3( normals[ i ], normals[ i + 1 ], normals[ i + 2 ] ) ); + + } + + if ( colors !== undefined ) { + + scope.colors.push( new THREE.Color( colors[ i ], colors[ i + 1 ], colors[ i + 2 ] ) ); + + } + + if ( uvs !== undefined ) { + + tempUVs.push( new THREE.Vector2( uvs[ j ], uvs[ j + 1 ] ) ); + + } + + } + + var addFace = function ( a, b, c ) { + + var vertexNormals = normals !== undefined ? [ tempNormals[ a ].clone(), tempNormals[ b ].clone(), tempNormals[ c ].clone() ] : []; + var vertexColors = colors !== undefined ? [ scope.colors[ a ].clone(), scope.colors[ b ].clone(), scope.colors[ c ].clone() ] : []; + + scope.faces.push( new THREE.Face3( a, b, c, vertexNormals, vertexColors ) ); + + if ( uvs !== undefined ) { + + scope.faceVertexUvs[ 0 ].push( [ tempUVs[ a ].clone(), tempUVs[ b ].clone(), tempUVs[ c ].clone() ] ); + + } + + }; + + if ( indices !== undefined ) { + + var drawcalls = geometry.drawcalls; + + if ( drawcalls.length > 0 ) { + + for ( var i = 0; i < drawcalls.length; i ++ ) { + + var drawcall = drawcalls[ i ]; + + var start = drawcall.start; + var count = drawcall.count; + var index = drawcall.index; + + for ( var j = start, jl = start + count; j < jl; j += 3 ) { + + addFace( index + indices[ j ], index + indices[ j + 1 ], index + indices[ j + 2 ] ); + + } + + } + + } else { + + for ( var i = 0; i < indices.length; i += 3 ) { + + addFace( indices[ i ], indices[ i + 1 ], indices[ i + 2 ] ); + + } + + } + + } else { + + for ( var i = 0; i < vertices.length / 3; i += 3 ) { + + addFace( i, i + 1, i + 2 ); + + } + + } + + this.computeFaceNormals(); + + if ( geometry.boundingBox !== null ) { + + this.boundingBox = geometry.boundingBox.clone(); + + } + + if ( geometry.boundingSphere !== null ) { + + this.boundingSphere = geometry.boundingSphere.clone(); + + } + + return this; + + }, + + center: function () { + + this.computeBoundingBox(); + + var offset = this.boundingBox.center().negate(); + + this.applyMatrix( new THREE.Matrix4().setPosition( offset ) ); + + return offset; + + }, + + computeFaceNormals: function () { + + var cb = new THREE.Vector3(), ab = new THREE.Vector3(); + + for ( var f = 0, fl = this.faces.length; f < fl; f ++ ) { + + var face = this.faces[ f ]; + + var vA = this.vertices[ face.a ]; + var vB = this.vertices[ face.b ]; + var vC = this.vertices[ face.c ]; + + cb.subVectors( vC, vB ); + ab.subVectors( vA, vB ); + cb.cross( ab ); + + cb.normalize(); + + face.normal.copy( cb ); + + } + + }, + + computeVertexNormals: function ( areaWeighted ) { + + var v, vl, f, fl, face, vertices; + + vertices = new Array( this.vertices.length ); + + for ( v = 0, vl = this.vertices.length; v < vl; v ++ ) { + + vertices[ v ] = new THREE.Vector3(); + + } + + if ( areaWeighted ) { + + // vertex normals weighted by triangle areas + // http://www.iquilezles.org/www/articles/normals/normals.htm + + var vA, vB, vC; + var cb = new THREE.Vector3(), ab = new THREE.Vector3(); + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + vA = this.vertices[ face.a ]; + vB = this.vertices[ face.b ]; + vC = this.vertices[ face.c ]; + + cb.subVectors( vC, vB ); + ab.subVectors( vA, vB ); + cb.cross( ab ); + + vertices[ face.a ].add( cb ); + vertices[ face.b ].add( cb ); + vertices[ face.c ].add( cb ); + + } + + } else { + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + vertices[ face.a ].add( face.normal ); + vertices[ face.b ].add( face.normal ); + vertices[ face.c ].add( face.normal ); + + } + + } + + for ( v = 0, vl = this.vertices.length; v < vl; v ++ ) { + + vertices[ v ].normalize(); + + } + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + face.vertexNormals[ 0 ] = vertices[ face.a ].clone(); + face.vertexNormals[ 1 ] = vertices[ face.b ].clone(); + face.vertexNormals[ 2 ] = vertices[ face.c ].clone(); + + } + + }, + + computeMorphNormals: function () { + + var i, il, f, fl, face; + + // save original normals + // - create temp variables on first access + // otherwise just copy (for faster repeated calls) + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + if ( ! face.__originalFaceNormal ) { + + face.__originalFaceNormal = face.normal.clone(); + + } else { + + face.__originalFaceNormal.copy( face.normal ); + + } + + if ( ! face.__originalVertexNormals ) face.__originalVertexNormals = []; + + for ( i = 0, il = face.vertexNormals.length; i < il; i ++ ) { + + if ( ! face.__originalVertexNormals[ i ] ) { + + face.__originalVertexNormals[ i ] = face.vertexNormals[ i ].clone(); + + } else { + + face.__originalVertexNormals[ i ].copy( face.vertexNormals[ i ] ); + + } + + } + + } + + // use temp geometry to compute face and vertex normals for each morph + + var tmpGeo = new THREE.Geometry(); + tmpGeo.faces = this.faces; + + for ( i = 0, il = this.morphTargets.length; i < il; i ++ ) { + + // create on first access + + if ( ! this.morphNormals[ i ] ) { + + this.morphNormals[ i ] = {}; + this.morphNormals[ i ].faceNormals = []; + this.morphNormals[ i ].vertexNormals = []; + + var dstNormalsFace = this.morphNormals[ i ].faceNormals; + var dstNormalsVertex = this.morphNormals[ i ].vertexNormals; + + var faceNormal, vertexNormals; + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + faceNormal = new THREE.Vector3(); + vertexNormals = { a: new THREE.Vector3(), b: new THREE.Vector3(), c: new THREE.Vector3() }; + + dstNormalsFace.push( faceNormal ); + dstNormalsVertex.push( vertexNormals ); + + } + + } + + var morphNormals = this.morphNormals[ i ]; + + // set vertices to morph target + + tmpGeo.vertices = this.morphTargets[ i ].vertices; + + // compute morph normals + + tmpGeo.computeFaceNormals(); + tmpGeo.computeVertexNormals(); + + // store morph normals + + var faceNormal, vertexNormals; + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + faceNormal = morphNormals.faceNormals[ f ]; + vertexNormals = morphNormals.vertexNormals[ f ]; + + faceNormal.copy( face.normal ); + + vertexNormals.a.copy( face.vertexNormals[ 0 ] ); + vertexNormals.b.copy( face.vertexNormals[ 1 ] ); + vertexNormals.c.copy( face.vertexNormals[ 2 ] ); + + } + + } + + // restore original normals + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + face.normal = face.__originalFaceNormal; + face.vertexNormals = face.__originalVertexNormals; + + } + + }, + + computeTangents: function () { + + // based on http://www.terathon.com/code/tangent.html + // tangents go to vertices + + var f, fl, v, vl, i, vertexIndex, + face, uv, vA, vB, vC, uvA, uvB, uvC, + x1, x2, y1, y2, z1, z2, + s1, s2, t1, t2, r, t, test, + tan1 = [], tan2 = [], + sdir = new THREE.Vector3(), tdir = new THREE.Vector3(), + tmp = new THREE.Vector3(), tmp2 = new THREE.Vector3(), + n = new THREE.Vector3(), w; + + for ( v = 0, vl = this.vertices.length; v < vl; v ++ ) { + + tan1[ v ] = new THREE.Vector3(); + tan2[ v ] = new THREE.Vector3(); + + } + + function handleTriangle( context, a, b, c, ua, ub, uc ) { + + vA = context.vertices[ a ]; + vB = context.vertices[ b ]; + vC = context.vertices[ c ]; + + uvA = uv[ ua ]; + uvB = uv[ ub ]; + uvC = uv[ uc ]; + + x1 = vB.x - vA.x; + x2 = vC.x - vA.x; + y1 = vB.y - vA.y; + y2 = vC.y - vA.y; + z1 = vB.z - vA.z; + z2 = vC.z - vA.z; + + s1 = uvB.x - uvA.x; + s2 = uvC.x - uvA.x; + t1 = uvB.y - uvA.y; + t2 = uvC.y - uvA.y; + + r = 1.0 / ( s1 * t2 - s2 * t1 ); + sdir.set( ( t2 * x1 - t1 * x2 ) * r, + ( t2 * y1 - t1 * y2 ) * r, + ( t2 * z1 - t1 * z2 ) * r ); + tdir.set( ( s1 * x2 - s2 * x1 ) * r, + ( s1 * y2 - s2 * y1 ) * r, + ( s1 * z2 - s2 * z1 ) * r ); + + tan1[ a ].add( sdir ); + tan1[ b ].add( sdir ); + tan1[ c ].add( sdir ); + + tan2[ a ].add( tdir ); + tan2[ b ].add( tdir ); + tan2[ c ].add( tdir ); + + } + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + uv = this.faceVertexUvs[ 0 ][ f ]; // use UV layer 0 for tangents + + handleTriangle( this, face.a, face.b, face.c, 0, 1, 2 ); + + } + + var faceIndex = [ 'a', 'b', 'c', 'd' ]; + + for ( f = 0, fl = this.faces.length; f < fl; f ++ ) { + + face = this.faces[ f ]; + + for ( i = 0; i < Math.min( face.vertexNormals.length, 3 ); i ++ ) { + + n.copy( face.vertexNormals[ i ] ); + + vertexIndex = face[ faceIndex[ i ] ]; + + t = tan1[ vertexIndex ]; + + // Gram-Schmidt orthogonalize + + tmp.copy( t ); + tmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize(); + + // Calculate handedness + + tmp2.crossVectors( face.vertexNormals[ i ], t ); + test = tmp2.dot( tan2[ vertexIndex ] ); + w = ( test < 0.0 ) ? - 1.0 : 1.0; + + face.vertexTangents[ i ] = new THREE.Vector4( tmp.x, tmp.y, tmp.z, w ); + + } + + } + + this.hasTangents = true; + + }, + + computeLineDistances: function () { + + var d = 0; + var vertices = this.vertices; + + for ( var i = 0, il = vertices.length; i < il; i ++ ) { + + if ( i > 0 ) { + + d += vertices[ i ].distanceTo( vertices[ i - 1 ] ); + + } + + this.lineDistances[ i ] = d; + + } + + }, + + computeBoundingBox: function () { + + if ( this.boundingBox === null ) { + + this.boundingBox = new THREE.Box3(); + + } + + this.boundingBox.setFromPoints( this.vertices ); + + }, + + computeBoundingSphere: function () { + + if ( this.boundingSphere === null ) { + + this.boundingSphere = new THREE.Sphere(); + + } + + this.boundingSphere.setFromPoints( this.vertices ); + + }, + + merge: function ( geometry, matrix, materialIndexOffset ) { + + if ( geometry instanceof THREE.Geometry === false ) { + + THREE.error( 'THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.', geometry ); + return; + + } + + var normalMatrix, + vertexOffset = this.vertices.length, + vertices1 = this.vertices, + vertices2 = geometry.vertices, + faces1 = this.faces, + faces2 = geometry.faces, + uvs1 = this.faceVertexUvs[ 0 ], + uvs2 = geometry.faceVertexUvs[ 0 ]; + + if ( materialIndexOffset === undefined ) materialIndexOffset = 0; + + if ( matrix !== undefined ) { + + normalMatrix = new THREE.Matrix3().getNormalMatrix( matrix ); + + } + + // vertices + + for ( var i = 0, il = vertices2.length; i < il; i ++ ) { + + var vertex = vertices2[ i ]; + + var vertexCopy = vertex.clone(); + + if ( matrix !== undefined ) vertexCopy.applyMatrix4( matrix ); + + vertices1.push( vertexCopy ); + + } + + // faces + + for ( i = 0, il = faces2.length; i < il; i ++ ) { + + var face = faces2[ i ], faceCopy, normal, color, + faceVertexNormals = face.vertexNormals, + faceVertexColors = face.vertexColors; + + faceCopy = new THREE.Face3( face.a + vertexOffset, face.b + vertexOffset, face.c + vertexOffset ); + faceCopy.normal.copy( face.normal ); + + if ( normalMatrix !== undefined ) { + + faceCopy.normal.applyMatrix3( normalMatrix ).normalize(); + + } + + for ( var j = 0, jl = faceVertexNormals.length; j < jl; j ++ ) { + + normal = faceVertexNormals[ j ].clone(); + + if ( normalMatrix !== undefined ) { + + normal.applyMatrix3( normalMatrix ).normalize(); + + } + + faceCopy.vertexNormals.push( normal ); + + } + + faceCopy.color.copy( face.color ); + + for ( var j = 0, jl = faceVertexColors.length; j < jl; j ++ ) { + + color = faceVertexColors[ j ]; + faceCopy.vertexColors.push( color.clone() ); + + } + + faceCopy.materialIndex = face.materialIndex + materialIndexOffset; + + faces1.push( faceCopy ); + + } + + // uvs + + for ( i = 0, il = uvs2.length; i < il; i ++ ) { + + var uv = uvs2[ i ], uvCopy = []; + + if ( uv === undefined ) { + + continue; + + } + + for ( var j = 0, jl = uv.length; j < jl; j ++ ) { + + uvCopy.push( uv[ j ].clone() ); + + } + + uvs1.push( uvCopy ); + + } + + }, + + mergeMesh: function ( mesh ) { + + if ( mesh instanceof THREE.Mesh === false ) { + + THREE.error( 'THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.', mesh ); + return; + + } + + mesh.matrixAutoUpdate && mesh.updateMatrix(); + + this.merge( mesh.geometry, mesh.matrix ); + + }, + + /* + * Checks for duplicate vertices with hashmap. + * Duplicated vertices are removed + * and faces' vertices are updated. + */ + + mergeVertices: function () { + + var verticesMap = {}; // Hashmap for looking up vertice by position coordinates (and making sure they are unique) + var unique = [], changes = []; + + var v, key; + var precisionPoints = 4; // number of decimal points, eg. 4 for epsilon of 0.0001 + var precision = Math.pow( 10, precisionPoints ); + var i, il, face; + var indices, j, jl; + + for ( i = 0, il = this.vertices.length; i < il; i ++ ) { + + v = this.vertices[ i ]; + key = Math.round( v.x * precision ) + '_' + Math.round( v.y * precision ) + '_' + Math.round( v.z * precision ); + + if ( verticesMap[ key ] === undefined ) { + + verticesMap[ key ] = i; + unique.push( this.vertices[ i ] ); + changes[ i ] = unique.length - 1; + + } else { + + //console.log('Duplicate vertex found. ', i, ' could be using ', verticesMap[key]); + changes[ i ] = changes[ verticesMap[ key ] ]; + + } + + }; + + + // if faces are completely degenerate after merging vertices, we + // have to remove them from the geometry. + var faceIndicesToRemove = []; + + for ( i = 0, il = this.faces.length; i < il; i ++ ) { + + face = this.faces[ i ]; + + face.a = changes[ face.a ]; + face.b = changes[ face.b ]; + face.c = changes[ face.c ]; + + indices = [ face.a, face.b, face.c ]; + + var dupIndex = - 1; + + // if any duplicate vertices are found in a Face3 + // we have to remove the face as nothing can be saved + for ( var n = 0; n < 3; n ++ ) { + if ( indices[ n ] == indices[ ( n + 1 ) % 3 ] ) { + + dupIndex = n; + faceIndicesToRemove.push( i ); + break; + + } + } + + } + + for ( i = faceIndicesToRemove.length - 1; i >= 0; i -- ) { + var idx = faceIndicesToRemove[ i ]; + + this.faces.splice( idx, 1 ); + + for ( j = 0, jl = this.faceVertexUvs.length; j < jl; j ++ ) { + + this.faceVertexUvs[ j ].splice( idx, 1 ); + + } + + } + + // Use unique set of vertices + + var diff = this.vertices.length - unique.length; + this.vertices = unique; + return diff; + + }, + + toJSON: function () { + + var output = { + metadata: { + version: 4.0, + type: 'BufferGeometry', + generator: 'BufferGeometryExporter' + }, + uuid: this.uuid, + type: this.type + }; + + if ( this.name !== "" ) output.name = this.name; + + if ( this.parameters !== undefined ) { + + var parameters = this.parameters; + + for ( var key in parameters ) { + + if ( parameters[ key ] !== undefined ) output[ key ] = parameters[ key ]; + + } + + return output; + + } + + var vertices = []; + + for ( var i = 0; i < this.vertices.length; i ++ ) { + + var vertex = this.vertices[ i ]; + vertices.push( vertex.x, vertex.y, vertex.z ); + + } + + var faces = []; + var normals = []; + var normalsHash = {}; + var colors = []; + var colorsHash = {}; + var uvs = []; + var uvsHash = {}; + + for ( var i = 0; i < this.faces.length; i ++ ) { + + var face = this.faces[ i ]; + + var hasMaterial = false; // face.materialIndex !== undefined; + var hasFaceUv = false; // deprecated + var hasFaceVertexUv = this.faceVertexUvs[ 0 ][ i ] !== undefined; + var hasFaceNormal = face.normal.length() > 0; + var hasFaceVertexNormal = face.vertexNormals.length > 0; + var hasFaceColor = face.color.r !== 1 || face.color.g !== 1 || face.color.b !== 1; + var hasFaceVertexColor = face.vertexColors.length > 0; + + var faceType = 0; + + faceType = setBit( faceType, 0, 0 ); + faceType = setBit( faceType, 1, hasMaterial ); + faceType = setBit( faceType, 2, hasFaceUv ); + faceType = setBit( faceType, 3, hasFaceVertexUv ); + faceType = setBit( faceType, 4, hasFaceNormal ); + faceType = setBit( faceType, 5, hasFaceVertexNormal ); + faceType = setBit( faceType, 6, hasFaceColor ); + faceType = setBit( faceType, 7, hasFaceVertexColor ); + + faces.push( faceType ); + faces.push( face.a, face.b, face.c ); + + + /* + if ( hasMaterial ) { + + faces.push( face.materialIndex ); + + } + */ + + if ( hasFaceVertexUv ) { + + var faceVertexUvs = this.faceVertexUvs[ 0 ][ i ]; + + faces.push( + getUvIndex( faceVertexUvs[ 0 ] ), + getUvIndex( faceVertexUvs[ 1 ] ), + getUvIndex( faceVertexUvs[ 2 ] ) + ); + + } + + if ( hasFaceNormal ) { + + faces.push( getNormalIndex( face.normal ) ); + + } + + if ( hasFaceVertexNormal ) { + + var vertexNormals = face.vertexNormals; + + faces.push( + getNormalIndex( vertexNormals[ 0 ] ), + getNormalIndex( vertexNormals[ 1 ] ), + getNormalIndex( vertexNormals[ 2 ] ) + ); + + } + + if ( hasFaceColor ) { + + faces.push( getColorIndex( face.color ) ); + + } + + if ( hasFaceVertexColor ) { + + var vertexColors = face.vertexColors; + + faces.push( + getColorIndex( vertexColors[ 0 ] ), + getColorIndex( vertexColors[ 1 ] ), + getColorIndex( vertexColors[ 2 ] ) + ); + + } + + } + + function setBit( value, position, enabled ) { + + return enabled ? value | ( 1 << position ) : value & ( ~ ( 1 << position) ); + + } + + function getNormalIndex( normal ) { + + var hash = normal.x.toString() + normal.y.toString() + normal.z.toString(); + + if ( normalsHash[ hash ] !== undefined ) { + + return normalsHash[ hash ]; + + } + + normalsHash[ hash ] = normals.length / 3; + normals.push( normal.x, normal.y, normal.z ); + + return normalsHash[ hash ]; + + } + + function getColorIndex( color ) { + + var hash = color.r.toString() + color.g.toString() + color.b.toString(); + + if ( colorsHash[ hash ] !== undefined ) { + + return colorsHash[ hash ]; + + } + + colorsHash[ hash ] = colors.length; + colors.push( color.getHex() ); + + return colorsHash[ hash ]; + + } + + function getUvIndex( uv ) { + + var hash = uv.x.toString() + uv.y.toString(); + + if ( uvsHash[ hash ] !== undefined ) { + + return uvsHash[ hash ]; + + } + + uvsHash[ hash ] = uvs.length / 2; + uvs.push( uv.x, uv.y ); + + return uvsHash[ hash ]; + + } + + output.data = {}; + + output.data.vertices = vertices; + output.data.normals = normals; + if ( colors.length > 0 ) output.data.colors = colors; + if ( uvs.length > 0 ) output.data.uvs = [ uvs ]; // temporal backward compatibility + output.data.faces = faces; + + // + + return output; + + }, + + clone: function () { + + var geometry = new THREE.Geometry(); + + var vertices = this.vertices; + + for ( var i = 0, il = vertices.length; i < il; i ++ ) { + + geometry.vertices.push( vertices[ i ].clone() ); + + } + + var faces = this.faces; + + for ( var i = 0, il = faces.length; i < il; i ++ ) { + + geometry.faces.push( faces[ i ].clone() ); + + } + + for ( var i = 0, il = this.faceVertexUvs.length; i < il; i ++ ) { + + var faceVertexUvs = this.faceVertexUvs[ i ]; + + if ( geometry.faceVertexUvs[ i ] === undefined ) { + + geometry.faceVertexUvs[ i ] = []; + + } + + for ( var j = 0, jl = faceVertexUvs.length; j < jl; j ++ ) { + + var uvs = faceVertexUvs[ j ], uvsCopy = []; + + for ( var k = 0, kl = uvs.length; k < kl; k ++ ) { + + var uv = uvs[ k ]; + + uvsCopy.push( uv.clone() ); + + } + + geometry.faceVertexUvs[ i ].push( uvsCopy ); + + } + + } + + return geometry; + + }, + + dispose: function () { + + this.dispatchEvent( { type: 'dispose' } ); + + } + +}; + +THREE.EventDispatcher.prototype.apply( THREE.Geometry.prototype ); + +THREE.GeometryIdCount = 0; + +// File:src/cameras/Camera.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author mikael emtinger / http://gomo.se/ + * @author WestLangley / http://github.com/WestLangley +*/ + +THREE.Camera = function () { + + THREE.Object3D.call( this ); + + this.type = 'Camera'; + + this.matrixWorldInverse = new THREE.Matrix4(); + this.projectionMatrix = new THREE.Matrix4(); + +}; + +THREE.Camera.prototype = Object.create( THREE.Object3D.prototype ); +THREE.Camera.prototype.constructor = THREE.Camera; + +THREE.Camera.prototype.getWorldDirection = function () { + + var quaternion = new THREE.Quaternion(); + + return function ( optionalTarget ) { + + var result = optionalTarget || new THREE.Vector3(); + + this.getWorldQuaternion( quaternion ); + + return result.set( 0, 0, - 1 ).applyQuaternion( quaternion ); + + } + +}(); + +THREE.Camera.prototype.lookAt = function () { + + // This routine does not support cameras with rotated and/or translated parent(s) + + var m1 = new THREE.Matrix4(); + + return function ( vector ) { + + m1.lookAt( this.position, vector, this.up ); + + this.quaternion.setFromRotationMatrix( m1 ); + + }; + +}(); + +THREE.Camera.prototype.clone = function ( camera ) { + + if ( camera === undefined ) camera = new THREE.Camera(); + + THREE.Object3D.prototype.clone.call( this, camera ); + + camera.matrixWorldInverse.copy( this.matrixWorldInverse ); + camera.projectionMatrix.copy( this.projectionMatrix ); + + return camera; +}; + +// File:src/cameras/CubeCamera.js + +/** + * Camera for rendering cube maps + * - renders scene into axis-aligned cube + * + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.CubeCamera = function ( near, far, cubeResolution ) { + + THREE.Object3D.call( this ); + + this.type = 'CubeCamera'; + + var fov = 90, aspect = 1; + + var cameraPX = new THREE.PerspectiveCamera( fov, aspect, near, far ); + cameraPX.up.set( 0, - 1, 0 ); + cameraPX.lookAt( new THREE.Vector3( 1, 0, 0 ) ); + this.add( cameraPX ); + + var cameraNX = new THREE.PerspectiveCamera( fov, aspect, near, far ); + cameraNX.up.set( 0, - 1, 0 ); + cameraNX.lookAt( new THREE.Vector3( - 1, 0, 0 ) ); + this.add( cameraNX ); + + var cameraPY = new THREE.PerspectiveCamera( fov, aspect, near, far ); + cameraPY.up.set( 0, 0, 1 ); + cameraPY.lookAt( new THREE.Vector3( 0, 1, 0 ) ); + this.add( cameraPY ); + + var cameraNY = new THREE.PerspectiveCamera( fov, aspect, near, far ); + cameraNY.up.set( 0, 0, - 1 ); + cameraNY.lookAt( new THREE.Vector3( 0, - 1, 0 ) ); + this.add( cameraNY ); + + var cameraPZ = new THREE.PerspectiveCamera( fov, aspect, near, far ); + cameraPZ.up.set( 0, - 1, 0 ); + cameraPZ.lookAt( new THREE.Vector3( 0, 0, 1 ) ); + this.add( cameraPZ ); + + var cameraNZ = new THREE.PerspectiveCamera( fov, aspect, near, far ); + cameraNZ.up.set( 0, - 1, 0 ); + cameraNZ.lookAt( new THREE.Vector3( 0, 0, - 1 ) ); + this.add( cameraNZ ); + + this.renderTarget = new THREE.WebGLRenderTargetCube( cubeResolution, cubeResolution, { format: THREE.RGBFormat, magFilter: THREE.LinearFilter, minFilter: THREE.LinearFilter } ); + + this.updateCubeMap = function ( renderer, scene ) { + + var renderTarget = this.renderTarget; + var generateMipmaps = renderTarget.generateMipmaps; + + renderTarget.generateMipmaps = false; + + renderTarget.activeCubeFace = 0; + renderer.render( scene, cameraPX, renderTarget ); + + renderTarget.activeCubeFace = 1; + renderer.render( scene, cameraNX, renderTarget ); + + renderTarget.activeCubeFace = 2; + renderer.render( scene, cameraPY, renderTarget ); + + renderTarget.activeCubeFace = 3; + renderer.render( scene, cameraNY, renderTarget ); + + renderTarget.activeCubeFace = 4; + renderer.render( scene, cameraPZ, renderTarget ); + + renderTarget.generateMipmaps = generateMipmaps; + + renderTarget.activeCubeFace = 5; + renderer.render( scene, cameraNZ, renderTarget ); + + }; + +}; + +THREE.CubeCamera.prototype = Object.create( THREE.Object3D.prototype ); +THREE.CubeCamera.prototype.constructor = THREE.CubeCamera; + +// File:src/cameras/OrthographicCamera.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.OrthographicCamera = function ( left, right, top, bottom, near, far ) { + + THREE.Camera.call( this ); + + this.type = 'OrthographicCamera'; + + this.zoom = 1; + + this.left = left; + this.right = right; + this.top = top; + this.bottom = bottom; + + this.near = ( near !== undefined ) ? near : 0.1; + this.far = ( far !== undefined ) ? far : 2000; + + this.updateProjectionMatrix(); + +}; + +THREE.OrthographicCamera.prototype = Object.create( THREE.Camera.prototype ); +THREE.OrthographicCamera.prototype.constructor = THREE.OrthographicCamera; + +THREE.OrthographicCamera.prototype.updateProjectionMatrix = function () { + + var dx = ( this.right - this.left ) / ( 2 * this.zoom ); + var dy = ( this.top - this.bottom ) / ( 2 * this.zoom ); + var cx = ( this.right + this.left ) / 2; + var cy = ( this.top + this.bottom ) / 2; + + this.projectionMatrix.makeOrthographic( cx - dx, cx + dx, cy + dy, cy - dy, this.near, this.far ); + +}; + +THREE.OrthographicCamera.prototype.clone = function () { + + var camera = new THREE.OrthographicCamera(); + + THREE.Camera.prototype.clone.call( this, camera ); + + camera.zoom = this.zoom; + + camera.left = this.left; + camera.right = this.right; + camera.top = this.top; + camera.bottom = this.bottom; + + camera.near = this.near; + camera.far = this.far; + + camera.projectionMatrix.copy( this.projectionMatrix ); + + return camera; +}; + +// File:src/cameras/PerspectiveCamera.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author greggman / http://games.greggman.com/ + * @author zz85 / http://www.lab4games.net/zz85/blog + */ + +THREE.PerspectiveCamera = function ( fov, aspect, near, far ) { + + THREE.Camera.call( this ); + + this.type = 'PerspectiveCamera'; + + this.zoom = 1; + + this.fov = fov !== undefined ? fov : 50; + this.aspect = aspect !== undefined ? aspect : 1; + this.near = near !== undefined ? near : 0.1; + this.far = far !== undefined ? far : 2000; + + this.updateProjectionMatrix(); + +}; + +THREE.PerspectiveCamera.prototype = Object.create( THREE.Camera.prototype ); +THREE.PerspectiveCamera.prototype.constructor = THREE.PerspectiveCamera; + + +/** + * Uses Focal Length (in mm) to estimate and set FOV + * 35mm (fullframe) camera is used if frame size is not specified; + * Formula based on http://www.bobatkins.com/photography/technical/field_of_view.html + */ + +THREE.PerspectiveCamera.prototype.setLens = function ( focalLength, frameHeight ) { + + if ( frameHeight === undefined ) frameHeight = 24; + + this.fov = 2 * THREE.Math.radToDeg( Math.atan( frameHeight / ( focalLength * 2 ) ) ); + this.updateProjectionMatrix(); + +} + + +/** + * Sets an offset in a larger frustum. This is useful for multi-window or + * multi-monitor/multi-machine setups. + * + * For example, if you have 3x2 monitors and each monitor is 1920x1080 and + * the monitors are in grid like this + * + * +---+---+---+ + * | A | B | C | + * +---+---+---+ + * | D | E | F | + * +---+---+---+ + * + * then for each monitor you would call it like this + * + * var w = 1920; + * var h = 1080; + * var fullWidth = w * 3; + * var fullHeight = h * 2; + * + * --A-- + * camera.setOffset( fullWidth, fullHeight, w * 0, h * 0, w, h ); + * --B-- + * camera.setOffset( fullWidth, fullHeight, w * 1, h * 0, w, h ); + * --C-- + * camera.setOffset( fullWidth, fullHeight, w * 2, h * 0, w, h ); + * --D-- + * camera.setOffset( fullWidth, fullHeight, w * 0, h * 1, w, h ); + * --E-- + * camera.setOffset( fullWidth, fullHeight, w * 1, h * 1, w, h ); + * --F-- + * camera.setOffset( fullWidth, fullHeight, w * 2, h * 1, w, h ); + * + * Note there is no reason monitors have to be the same size or in a grid. + */ + +THREE.PerspectiveCamera.prototype.setViewOffset = function ( fullWidth, fullHeight, x, y, width, height ) { + + this.fullWidth = fullWidth; + this.fullHeight = fullHeight; + this.x = x; + this.y = y; + this.width = width; + this.height = height; + + this.updateProjectionMatrix(); + +}; + + +THREE.PerspectiveCamera.prototype.updateProjectionMatrix = function () { + + var fov = THREE.Math.radToDeg( 2 * Math.atan( Math.tan( THREE.Math.degToRad( this.fov ) * 0.5 ) / this.zoom ) ); + + if ( this.fullWidth ) { + + var aspect = this.fullWidth / this.fullHeight; + var top = Math.tan( THREE.Math.degToRad( fov * 0.5 ) ) * this.near; + var bottom = - top; + var left = aspect * bottom; + var right = aspect * top; + var width = Math.abs( right - left ); + var height = Math.abs( top - bottom ); + + this.projectionMatrix.makeFrustum( + left + this.x * width / this.fullWidth, + left + ( this.x + this.width ) * width / this.fullWidth, + top - ( this.y + this.height ) * height / this.fullHeight, + top - this.y * height / this.fullHeight, + this.near, + this.far + ); + + } else { + + this.projectionMatrix.makePerspective( fov, this.aspect, this.near, this.far ); + + } + +}; + +THREE.PerspectiveCamera.prototype.clone = function () { + + var camera = new THREE.PerspectiveCamera(); + + THREE.Camera.prototype.clone.call( this, camera ); + + camera.zoom = this.zoom; + + camera.fov = this.fov; + camera.aspect = this.aspect; + camera.near = this.near; + camera.far = this.far; + + camera.projectionMatrix.copy( this.projectionMatrix ); + + return camera; + +}; + +// File:src/lights/Light.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.Light = function ( color ) { + + THREE.Object3D.call( this ); + + this.type = 'Light'; + + this.color = new THREE.Color( color ); + +}; + +THREE.Light.prototype = Object.create( THREE.Object3D.prototype ); +THREE.Light.prototype.constructor = THREE.Light; + +THREE.Light.prototype.clone = function ( light ) { + + if ( light === undefined ) light = new THREE.Light(); + + THREE.Object3D.prototype.clone.call( this, light ); + + light.color.copy( this.color ); + + return light; + +}; + +// File:src/lights/AmbientLight.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.AmbientLight = function ( color ) { + + THREE.Light.call( this, color ); + + this.type = 'AmbientLight'; + +}; + +THREE.AmbientLight.prototype = Object.create( THREE.Light.prototype ); +THREE.AmbientLight.prototype.constructor = THREE.AmbientLight; + +THREE.AmbientLight.prototype.clone = function () { + + var light = new THREE.AmbientLight(); + + THREE.Light.prototype.clone.call( this, light ); + + return light; + +}; + +// File:src/lights/AreaLight.js + +/** + * @author MPanknin / http://www.redplant.de/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.AreaLight = function ( color, intensity ) { + + THREE.Light.call( this, color ); + + this.type = 'AreaLight'; + + this.normal = new THREE.Vector3( 0, - 1, 0 ); + this.right = new THREE.Vector3( 1, 0, 0 ); + + this.intensity = ( intensity !== undefined ) ? intensity : 1; + + this.width = 1.0; + this.height = 1.0; + + this.constantAttenuation = 1.5; + this.linearAttenuation = 0.5; + this.quadraticAttenuation = 0.1; + +}; + +THREE.AreaLight.prototype = Object.create( THREE.Light.prototype ); +THREE.AreaLight.prototype.constructor = THREE.AreaLight; + + +// File:src/lights/DirectionalLight.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.DirectionalLight = function ( color, intensity ) { + + THREE.Light.call( this, color ); + + this.type = 'DirectionalLight'; + + this.position.set( 0, 1, 0 ); + this.target = new THREE.Object3D(); + + this.intensity = ( intensity !== undefined ) ? intensity : 1; + + this.castShadow = false; + this.onlyShadow = false; + + // + + this.shadowCameraNear = 50; + this.shadowCameraFar = 5000; + + this.shadowCameraLeft = - 500; + this.shadowCameraRight = 500; + this.shadowCameraTop = 500; + this.shadowCameraBottom = - 500; + + this.shadowCameraVisible = false; + + this.shadowBias = 0; + this.shadowDarkness = 0.5; + + this.shadowMapWidth = 512; + this.shadowMapHeight = 512; + + // + + this.shadowCascade = false; + + this.shadowCascadeOffset = new THREE.Vector3( 0, 0, - 1000 ); + this.shadowCascadeCount = 2; + + this.shadowCascadeBias = [ 0, 0, 0 ]; + this.shadowCascadeWidth = [ 512, 512, 512 ]; + this.shadowCascadeHeight = [ 512, 512, 512 ]; + + this.shadowCascadeNearZ = [ - 1.000, 0.990, 0.998 ]; + this.shadowCascadeFarZ = [ 0.990, 0.998, 1.000 ]; + + this.shadowCascadeArray = []; + + // + + this.shadowMap = null; + this.shadowMapSize = null; + this.shadowCamera = null; + this.shadowMatrix = null; + +}; + +THREE.DirectionalLight.prototype = Object.create( THREE.Light.prototype ); +THREE.DirectionalLight.prototype.constructor = THREE.DirectionalLight; + +THREE.DirectionalLight.prototype.clone = function () { + + var light = new THREE.DirectionalLight(); + + THREE.Light.prototype.clone.call( this, light ); + + light.target = this.target.clone(); + + light.intensity = this.intensity; + + light.castShadow = this.castShadow; + light.onlyShadow = this.onlyShadow; + + // + + light.shadowCameraNear = this.shadowCameraNear; + light.shadowCameraFar = this.shadowCameraFar; + + light.shadowCameraLeft = this.shadowCameraLeft; + light.shadowCameraRight = this.shadowCameraRight; + light.shadowCameraTop = this.shadowCameraTop; + light.shadowCameraBottom = this.shadowCameraBottom; + + light.shadowCameraVisible = this.shadowCameraVisible; + + light.shadowBias = this.shadowBias; + light.shadowDarkness = this.shadowDarkness; + + light.shadowMapWidth = this.shadowMapWidth; + light.shadowMapHeight = this.shadowMapHeight; + + // + + light.shadowCascade = this.shadowCascade; + + light.shadowCascadeOffset.copy( this.shadowCascadeOffset ); + light.shadowCascadeCount = this.shadowCascadeCount; + + light.shadowCascadeBias = this.shadowCascadeBias.slice( 0 ); + light.shadowCascadeWidth = this.shadowCascadeWidth.slice( 0 ); + light.shadowCascadeHeight = this.shadowCascadeHeight.slice( 0 ); + + light.shadowCascadeNearZ = this.shadowCascadeNearZ.slice( 0 ); + light.shadowCascadeFarZ = this.shadowCascadeFarZ.slice( 0 ); + + return light; + +}; + +// File:src/lights/HemisphereLight.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.HemisphereLight = function ( skyColor, groundColor, intensity ) { + + THREE.Light.call( this, skyColor ); + + this.type = 'HemisphereLight'; + + this.position.set( 0, 100, 0 ); + + this.groundColor = new THREE.Color( groundColor ); + this.intensity = ( intensity !== undefined ) ? intensity : 1; + +}; + +THREE.HemisphereLight.prototype = Object.create( THREE.Light.prototype ); +THREE.HemisphereLight.prototype.constructor = THREE.HemisphereLight; + +THREE.HemisphereLight.prototype.clone = function () { + + var light = new THREE.HemisphereLight(); + + THREE.Light.prototype.clone.call( this, light ); + + light.groundColor.copy( this.groundColor ); + light.intensity = this.intensity; + + return light; + +}; + +// File:src/lights/PointLight.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.PointLight = function ( color, intensity, distance, decay ) { + + THREE.Light.call( this, color ); + + this.type = 'PointLight'; + + this.intensity = ( intensity !== undefined ) ? intensity : 1; + this.distance = ( distance !== undefined ) ? distance : 0; + this.decay = ( decay !== undefined ) ? decay : 1; // for physically correct lights, should be 2. + +}; + +THREE.PointLight.prototype = Object.create( THREE.Light.prototype ); +THREE.PointLight.prototype.constructor = THREE.PointLight; + +THREE.PointLight.prototype.clone = function () { + + var light = new THREE.PointLight(); + + THREE.Light.prototype.clone.call( this, light ); + + light.intensity = this.intensity; + light.distance = this.distance; + light.decay = this.decay; + + return light; + +}; + +// File:src/lights/SpotLight.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.SpotLight = function ( color, intensity, distance, angle, exponent, decay ) { + + THREE.Light.call( this, color ); + + this.type = 'SpotLight'; + + this.position.set( 0, 1, 0 ); + this.target = new THREE.Object3D(); + + this.intensity = ( intensity !== undefined ) ? intensity : 1; + this.distance = ( distance !== undefined ) ? distance : 0; + this.angle = ( angle !== undefined ) ? angle : Math.PI / 3; + this.exponent = ( exponent !== undefined ) ? exponent : 10; + this.decay = ( decay !== undefined ) ? decay : 1; // for physically correct lights, should be 2. + + this.castShadow = false; + this.onlyShadow = false; + + // + + this.shadowCameraNear = 50; + this.shadowCameraFar = 5000; + this.shadowCameraFov = 50; + + this.shadowCameraVisible = false; + + this.shadowBias = 0; + this.shadowDarkness = 0.5; + + this.shadowMapWidth = 512; + this.shadowMapHeight = 512; + + // + + this.shadowMap = null; + this.shadowMapSize = null; + this.shadowCamera = null; + this.shadowMatrix = null; + +}; + +THREE.SpotLight.prototype = Object.create( THREE.Light.prototype ); +THREE.SpotLight.prototype.constructor = THREE.SpotLight; + +THREE.SpotLight.prototype.clone = function () { + + var light = new THREE.SpotLight(); + + THREE.Light.prototype.clone.call( this, light ); + + light.target = this.target.clone(); + + light.intensity = this.intensity; + light.distance = this.distance; + light.angle = this.angle; + light.exponent = this.exponent; + light.decay = this.decay; + + light.castShadow = this.castShadow; + light.onlyShadow = this.onlyShadow; + + // + + light.shadowCameraNear = this.shadowCameraNear; + light.shadowCameraFar = this.shadowCameraFar; + light.shadowCameraFov = this.shadowCameraFov; + + light.shadowCameraVisible = this.shadowCameraVisible; + + light.shadowBias = this.shadowBias; + light.shadowDarkness = this.shadowDarkness; + + light.shadowMapWidth = this.shadowMapWidth; + light.shadowMapHeight = this.shadowMapHeight; + + return light; + +}; + +// File:src/loaders/Cache.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.Cache = { + + files: {}, + + add: function ( key, file ) { + + // console.log( 'THREE.Cache', 'Adding key:', key ); + + this.files[ key ] = file; + + }, + + get: function ( key ) { + + // console.log( 'THREE.Cache', 'Checking key:', key ); + + return this.files[ key ]; + + }, + + remove: function ( key ) { + + delete this.files[ key ]; + + }, + + clear: function () { + + this.files = {} + + } + +}; + +// File:src/loaders/Loader.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.Loader = function ( showStatus ) { + + this.showStatus = showStatus; + this.statusDomElement = showStatus ? THREE.Loader.prototype.addStatusElement() : null; + + this.imageLoader = new THREE.ImageLoader(); + + this.onLoadStart = function () {}; + this.onLoadProgress = function () {}; + this.onLoadComplete = function () {}; + +}; + +THREE.Loader.prototype = { + + constructor: THREE.Loader, + + crossOrigin: undefined, + + addStatusElement: function () { + + var e = document.createElement( 'div' ); + + e.style.position = 'absolute'; + e.style.right = '0px'; + e.style.top = '0px'; + e.style.fontSize = '0.8em'; + e.style.textAlign = 'left'; + e.style.background = 'rgba(0,0,0,0.25)'; + e.style.color = '#fff'; + e.style.width = '120px'; + e.style.padding = '0.5em 0.5em 0.5em 0.5em'; + e.style.zIndex = 1000; + + e.innerHTML = 'Loading ...'; + + return e; + + }, + + updateProgress: function ( progress ) { + + var message = 'Loaded '; + + if ( progress.total ) { + + message += ( 100 * progress.loaded / progress.total ).toFixed( 0 ) + '%'; + + + } else { + + message += ( progress.loaded / 1024 ).toFixed( 2 ) + ' KB'; + + } + + this.statusDomElement.innerHTML = message; + + }, + + extractUrlBase: function ( url ) { + + var parts = url.split( '/' ); + + if ( parts.length === 1 ) return './'; + + parts.pop(); + + return parts.join( '/' ) + '/'; + + }, + + initMaterials: function ( materials, texturePath ) { + + var array = []; + + for ( var i = 0; i < materials.length; ++ i ) { + + array[ i ] = this.createMaterial( materials[ i ], texturePath ); + + } + + return array; + + }, + + needsTangents: function ( materials ) { + + for ( var i = 0, il = materials.length; i < il; i ++ ) { + + var m = materials[ i ]; + + if ( m instanceof THREE.ShaderMaterial ) return true; + + } + + return false; + + }, + + createMaterial: function ( m, texturePath ) { + + var scope = this; + + function nearest_pow2( n ) { + + var l = Math.log( n ) / Math.LN2; + return Math.pow( 2, Math.round( l ) ); + + } + + function create_texture( where, name, sourceFile, repeat, offset, wrap, anisotropy ) { + + var fullPath = texturePath + sourceFile; + + var texture; + + var loader = THREE.Loader.Handlers.get( fullPath ); + + if ( loader !== null ) { + + texture = loader.load( fullPath ); + + } else { + + texture = new THREE.Texture(); + + loader = scope.imageLoader; + loader.crossOrigin = scope.crossOrigin; + loader.load( fullPath, function ( image ) { + + if ( THREE.Math.isPowerOfTwo( image.width ) === false || + THREE.Math.isPowerOfTwo( image.height ) === false ) { + + var width = nearest_pow2( image.width ); + var height = nearest_pow2( image.height ); + + var canvas = document.createElement( 'canvas' ); + canvas.width = width; + canvas.height = height; + + var context = canvas.getContext( '2d' ); + context.drawImage( image, 0, 0, width, height ); + + texture.image = canvas; + + } else { + + texture.image = image; + + } + + texture.needsUpdate = true; + + } ); + + } + + texture.sourceFile = sourceFile; + + if ( repeat ) { + + texture.repeat.set( repeat[ 0 ], repeat[ 1 ] ); + + if ( repeat[ 0 ] !== 1 ) texture.wrapS = THREE.RepeatWrapping; + if ( repeat[ 1 ] !== 1 ) texture.wrapT = THREE.RepeatWrapping; + + } + + if ( offset ) { + + texture.offset.set( offset[ 0 ], offset[ 1 ] ); + + } + + if ( wrap ) { + + var wrapMap = { + 'repeat': THREE.RepeatWrapping, + 'mirror': THREE.MirroredRepeatWrapping + } + + if ( wrapMap[ wrap[ 0 ] ] !== undefined ) texture.wrapS = wrapMap[ wrap[ 0 ] ]; + if ( wrapMap[ wrap[ 1 ] ] !== undefined ) texture.wrapT = wrapMap[ wrap[ 1 ] ]; + + } + + if ( anisotropy ) { + + texture.anisotropy = anisotropy; + + } + + where[ name ] = texture; + + } + + function rgb2hex( rgb ) { + + return ( rgb[ 0 ] * 255 << 16 ) + ( rgb[ 1 ] * 255 << 8 ) + rgb[ 2 ] * 255; + + } + + // defaults + + var mtype = 'MeshLambertMaterial'; + var mpars = { color: 0xeeeeee, opacity: 1.0, map: null, lightMap: null, normalMap: null, bumpMap: null, wireframe: false }; + + // parameters from model file + + if ( m.shading ) { + + var shading = m.shading.toLowerCase(); + + if ( shading === 'phong' ) mtype = 'MeshPhongMaterial'; + else if ( shading === 'basic' ) mtype = 'MeshBasicMaterial'; + + } + + if ( m.blending !== undefined && THREE[ m.blending ] !== undefined ) { + + mpars.blending = THREE[ m.blending ]; + + } + + if ( m.transparent !== undefined ) { + + mpars.transparent = m.transparent; + + } + + if ( m.opacity !== undefined && m.opacity < 1.0 ) { + + mpars.transparent = true; + + } + + if ( m.depthTest !== undefined ) { + + mpars.depthTest = m.depthTest; + + } + + if ( m.depthWrite !== undefined ) { + + mpars.depthWrite = m.depthWrite; + + } + + if ( m.visible !== undefined ) { + + mpars.visible = m.visible; + + } + + if ( m.flipSided !== undefined ) { + + mpars.side = THREE.BackSide; + + } + + if ( m.doubleSided !== undefined ) { + + mpars.side = THREE.DoubleSide; + + } + + if ( m.wireframe !== undefined ) { + + mpars.wireframe = m.wireframe; + + } + + if ( m.vertexColors !== undefined ) { + + if ( m.vertexColors === 'face' ) { + + mpars.vertexColors = THREE.FaceColors; + + } else if ( m.vertexColors ) { + + mpars.vertexColors = THREE.VertexColors; + + } + + } + + // colors + + if ( m.colorDiffuse ) { + + mpars.color = rgb2hex( m.colorDiffuse ); + + } else if ( m.DbgColor ) { + + mpars.color = m.DbgColor; + + } + + if ( m.colorSpecular ) { + + mpars.specular = rgb2hex( m.colorSpecular ); + + } + + if ( m.colorEmissive ) { + + mpars.emissive = rgb2hex( m.colorEmissive ); + + } + + // modifiers + + if ( m.transparency !== undefined ) { + + console.warn( 'THREE.Loader: transparency has been renamed to opacity' ); + m.opacity = m.transparency; + + } + + if ( m.opacity !== undefined ) { + + mpars.opacity = m.opacity; + + } + + if ( m.specularCoef ) { + + mpars.shininess = m.specularCoef; + + } + + // textures + + if ( m.mapDiffuse && texturePath ) { + + create_texture( mpars, 'map', m.mapDiffuse, m.mapDiffuseRepeat, m.mapDiffuseOffset, m.mapDiffuseWrap, m.mapDiffuseAnisotropy ); + + } + + if ( m.mapLight && texturePath ) { + + create_texture( mpars, 'lightMap', m.mapLight, m.mapLightRepeat, m.mapLightOffset, m.mapLightWrap, m.mapLightAnisotropy ); + + } + + if ( m.mapBump && texturePath ) { + + create_texture( mpars, 'bumpMap', m.mapBump, m.mapBumpRepeat, m.mapBumpOffset, m.mapBumpWrap, m.mapBumpAnisotropy ); + + } + + if ( m.mapNormal && texturePath ) { + + create_texture( mpars, 'normalMap', m.mapNormal, m.mapNormalRepeat, m.mapNormalOffset, m.mapNormalWrap, m.mapNormalAnisotropy ); + + } + + if ( m.mapSpecular && texturePath ) { + + create_texture( mpars, 'specularMap', m.mapSpecular, m.mapSpecularRepeat, m.mapSpecularOffset, m.mapSpecularWrap, m.mapSpecularAnisotropy ); + + } + + if ( m.mapAlpha && texturePath ) { + + create_texture( mpars, 'alphaMap', m.mapAlpha, m.mapAlphaRepeat, m.mapAlphaOffset, m.mapAlphaWrap, m.mapAlphaAnisotropy ); + + } + + // + + if ( m.mapBumpScale ) { + + mpars.bumpScale = m.mapBumpScale; + + } + + if ( m.mapNormalFactor ) { + + mpars.normalScale = new THREE.Vector2( m.mapNormalFactor, m.mapNormalFactor ); + + } + + var material = new THREE[ mtype ]( mpars ); + + if ( m.DbgName !== undefined ) material.name = m.DbgName; + + return material; + + } + +}; + +THREE.Loader.Handlers = { + + handlers: [], + + add: function ( regex, loader ) { + + this.handlers.push( regex, loader ); + + }, + + get: function ( file ) { + + for ( var i = 0, l = this.handlers.length; i < l; i += 2 ) { + + var regex = this.handlers[ i ]; + var loader = this.handlers[ i + 1 ]; + + if ( regex.test( file ) ) { + + return loader; + + } + + } + + return null; + + } + +}; + +// File:src/loaders/XHRLoader.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.XHRLoader = function ( manager ) { + + this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager; + +}; + +THREE.XHRLoader.prototype = { + + constructor: THREE.XHRLoader, + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var cached = THREE.Cache.get( url ); + + if ( cached !== undefined ) { + + if ( onLoad ) onLoad( cached ); + return; + + } + + var request = new XMLHttpRequest(); + request.open( 'GET', url, true ); + + request.addEventListener( 'load', function ( event ) { + + THREE.Cache.add( url, this.response ); + + if ( onLoad ) onLoad( this.response ); + + scope.manager.itemEnd( url ); + + }, false ); + + if ( onProgress !== undefined ) { + + request.addEventListener( 'progress', function ( event ) { + + onProgress( event ); + + }, false ); + + } + + if ( onError !== undefined ) { + + request.addEventListener( 'error', function ( event ) { + + onError( event ); + + }, false ); + + } + + if ( this.crossOrigin !== undefined ) request.crossOrigin = this.crossOrigin; + if ( this.responseType !== undefined ) request.responseType = this.responseType; + + request.send( null ); + + scope.manager.itemStart( url ); + + }, + + setResponseType: function ( value ) { + + this.responseType = value; + + }, + + setCrossOrigin: function ( value ) { + + this.crossOrigin = value; + + } + +}; + +// File:src/loaders/ImageLoader.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.ImageLoader = function ( manager ) { + + this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager; + +}; + +THREE.ImageLoader.prototype = { + + constructor: THREE.ImageLoader, + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var cached = THREE.Cache.get( url ); + + if ( cached !== undefined ) { + + onLoad( cached ); + return; + + } + + var image = document.createElement( 'img' ); + + image.addEventListener( 'load', function ( event ) { + + THREE.Cache.add( url, this ); + + if ( onLoad ) onLoad( this ); + + scope.manager.itemEnd( url ); + + }, false ); + + if ( onProgress !== undefined ) { + + image.addEventListener( 'progress', function ( event ) { + + onProgress( event ); + + }, false ); + + } + + if ( onError !== undefined ) { + + image.addEventListener( 'error', function ( event ) { + + onError( event ); + + }, false ); + + } + + if ( this.crossOrigin !== undefined ) image.crossOrigin = this.crossOrigin; + + image.src = url; + + scope.manager.itemStart( url ); + + return image; + + }, + + setCrossOrigin: function ( value ) { + + this.crossOrigin = value; + + } + +} + +// File:src/loaders/JSONLoader.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.JSONLoader = function ( showStatus ) { + + THREE.Loader.call( this, showStatus ); + + this.withCredentials = false; + +}; + +THREE.JSONLoader.prototype = Object.create( THREE.Loader.prototype ); +THREE.JSONLoader.prototype.constructor = THREE.JSONLoader; + +THREE.JSONLoader.prototype.load = function ( url, callback, texturePath ) { + + // todo: unify load API to for easier SceneLoader use + + texturePath = texturePath && ( typeof texturePath === 'string' ) ? texturePath : this.extractUrlBase( url ); + + this.onLoadStart(); + this.loadAjaxJSON( this, url, callback, texturePath ); + +}; + +THREE.JSONLoader.prototype.loadAjaxJSON = function ( context, url, callback, texturePath, callbackProgress ) { + + var xhr = new XMLHttpRequest(); + + var length = 0; + + xhr.onreadystatechange = function () { + + if ( xhr.readyState === xhr.DONE ) { + + if ( xhr.status === 200 || xhr.status === 0 ) { + + if ( xhr.responseText ) { + + var json = JSON.parse( xhr.responseText ); + var metadata = json.metadata; + + if ( metadata !== undefined ) { + + if ( metadata.type === 'object' ) { + + THREE.error( 'THREE.JSONLoader: ' + url + ' should be loaded with THREE.ObjectLoader instead.' ); + return; + + } + + if ( metadata.type === 'scene' ) { + + THREE.error( 'THREE.JSONLoader: ' + url + ' seems to be a Scene. Use THREE.SceneLoader instead.' ); + return; + + } + + } + + var result = context.parse( json, texturePath ); + callback( result.geometry, result.materials ); + + } else { + + THREE.error( 'THREE.JSONLoader: ' + url + ' seems to be unreachable or the file is empty.' ); + + } + + // in context of more complex asset initialization + // do not block on single failed file + // maybe should go even one more level up + + context.onLoadComplete(); + + } else { + + THREE.error( 'THREE.JSONLoader: Couldn\'t load ' + url + ' (' + xhr.status + ')' ); + + } + + } else if ( xhr.readyState === xhr.LOADING ) { + + if ( callbackProgress ) { + + if ( length === 0 ) { + + length = xhr.getResponseHeader( 'Content-Length' ); + + } + + callbackProgress( { total: length, loaded: xhr.responseText.length } ); + + } + + } else if ( xhr.readyState === xhr.HEADERS_RECEIVED ) { + + if ( callbackProgress !== undefined ) { + + length = xhr.getResponseHeader( 'Content-Length' ); + + } + + } + + }; + + xhr.open( 'GET', url, true ); + xhr.withCredentials = this.withCredentials; + xhr.send( null ); + +}; + +THREE.JSONLoader.prototype.parse = function ( json, texturePath ) { + + var geometry = new THREE.Geometry(), + scale = ( json.scale !== undefined ) ? 1.0 / json.scale : 1.0; + + parseModel( scale ); + + parseSkin(); + parseMorphing( scale ); + + geometry.computeFaceNormals(); + geometry.computeBoundingSphere(); + + function parseModel( scale ) { + + function isBitSet( value, position ) { + + return value & ( 1 << position ); + + } + + var i, j, fi, + + offset, zLength, + + colorIndex, normalIndex, uvIndex, materialIndex, + + type, + isQuad, + hasMaterial, + hasFaceVertexUv, + hasFaceNormal, hasFaceVertexNormal, + hasFaceColor, hasFaceVertexColor, + + vertex, face, faceA, faceB, hex, normal, + + uvLayer, uv, u, v, + + faces = json.faces, + vertices = json.vertices, + normals = json.normals, + colors = json.colors, + + nUvLayers = 0; + + if ( json.uvs !== undefined ) { + + // disregard empty arrays + + for ( i = 0; i < json.uvs.length; i ++ ) { + + if ( json.uvs[ i ].length ) nUvLayers ++; + + } + + for ( i = 0; i < nUvLayers; i ++ ) { + + geometry.faceVertexUvs[ i ] = []; + + } + + } + + offset = 0; + zLength = vertices.length; + + while ( offset < zLength ) { + + vertex = new THREE.Vector3(); + + vertex.x = vertices[ offset ++ ] * scale; + vertex.y = vertices[ offset ++ ] * scale; + vertex.z = vertices[ offset ++ ] * scale; + + geometry.vertices.push( vertex ); + + } + + offset = 0; + zLength = faces.length; + + while ( offset < zLength ) { + + type = faces[ offset ++ ]; + + + isQuad = isBitSet( type, 0 ); + hasMaterial = isBitSet( type, 1 ); + hasFaceVertexUv = isBitSet( type, 3 ); + hasFaceNormal = isBitSet( type, 4 ); + hasFaceVertexNormal = isBitSet( type, 5 ); + hasFaceColor = isBitSet( type, 6 ); + hasFaceVertexColor = isBitSet( type, 7 ); + + // console.log("type", type, "bits", isQuad, hasMaterial, hasFaceVertexUv, hasFaceNormal, hasFaceVertexNormal, hasFaceColor, hasFaceVertexColor); + + if ( isQuad ) { + + faceA = new THREE.Face3(); + faceA.a = faces[ offset ]; + faceA.b = faces[ offset + 1 ]; + faceA.c = faces[ offset + 3 ]; + + faceB = new THREE.Face3(); + faceB.a = faces[ offset + 1 ]; + faceB.b = faces[ offset + 2 ]; + faceB.c = faces[ offset + 3 ]; + + offset += 4; + + if ( hasMaterial ) { + + materialIndex = faces[ offset ++ ]; + faceA.materialIndex = materialIndex; + faceB.materialIndex = materialIndex; + + } + + // to get face <=> uv index correspondence + + fi = geometry.faces.length; + + if ( hasFaceVertexUv ) { + + for ( i = 0; i < nUvLayers; i ++ ) { + + uvLayer = json.uvs[ i ]; + + geometry.faceVertexUvs[ i ][ fi ] = []; + geometry.faceVertexUvs[ i ][ fi + 1 ] = [] + + for ( j = 0; j < 4; j ++ ) { + + uvIndex = faces[ offset ++ ]; + + u = uvLayer[ uvIndex * 2 ]; + v = uvLayer[ uvIndex * 2 + 1 ]; + + uv = new THREE.Vector2( u, v ); + + if ( j !== 2 ) geometry.faceVertexUvs[ i ][ fi ].push( uv ); + if ( j !== 0 ) geometry.faceVertexUvs[ i ][ fi + 1 ].push( uv ); + + } + + } + + } + + if ( hasFaceNormal ) { + + normalIndex = faces[ offset ++ ] * 3; + + faceA.normal.set( + normals[ normalIndex ++ ], + normals[ normalIndex ++ ], + normals[ normalIndex ] + ); + + faceB.normal.copy( faceA.normal ); + + } + + if ( hasFaceVertexNormal ) { + + for ( i = 0; i < 4; i ++ ) { + + normalIndex = faces[ offset ++ ] * 3; + + normal = new THREE.Vector3( + normals[ normalIndex ++ ], + normals[ normalIndex ++ ], + normals[ normalIndex ] + ); + + + if ( i !== 2 ) faceA.vertexNormals.push( normal ); + if ( i !== 0 ) faceB.vertexNormals.push( normal ); + + } + + } + + + if ( hasFaceColor ) { + + colorIndex = faces[ offset ++ ]; + hex = colors[ colorIndex ]; + + faceA.color.setHex( hex ); + faceB.color.setHex( hex ); + + } + + + if ( hasFaceVertexColor ) { + + for ( i = 0; i < 4; i ++ ) { + + colorIndex = faces[ offset ++ ]; + hex = colors[ colorIndex ]; + + if ( i !== 2 ) faceA.vertexColors.push( new THREE.Color( hex ) ); + if ( i !== 0 ) faceB.vertexColors.push( new THREE.Color( hex ) ); + + } + + } + + geometry.faces.push( faceA ); + geometry.faces.push( faceB ); + + } else { + + face = new THREE.Face3(); + face.a = faces[ offset ++ ]; + face.b = faces[ offset ++ ]; + face.c = faces[ offset ++ ]; + + if ( hasMaterial ) { + + materialIndex = faces[ offset ++ ]; + face.materialIndex = materialIndex; + + } + + // to get face <=> uv index correspondence + + fi = geometry.faces.length; + + if ( hasFaceVertexUv ) { + + for ( i = 0; i < nUvLayers; i ++ ) { + + uvLayer = json.uvs[ i ]; + + geometry.faceVertexUvs[ i ][ fi ] = []; + + for ( j = 0; j < 3; j ++ ) { + + uvIndex = faces[ offset ++ ]; + + u = uvLayer[ uvIndex * 2 ]; + v = uvLayer[ uvIndex * 2 + 1 ]; + + uv = new THREE.Vector2( u, v ); + + geometry.faceVertexUvs[ i ][ fi ].push( uv ); + + } + + } + + } + + if ( hasFaceNormal ) { + + normalIndex = faces[ offset ++ ] * 3; + + face.normal.set( + normals[ normalIndex ++ ], + normals[ normalIndex ++ ], + normals[ normalIndex ] + ); + + } + + if ( hasFaceVertexNormal ) { + + for ( i = 0; i < 3; i ++ ) { + + normalIndex = faces[ offset ++ ] * 3; + + normal = new THREE.Vector3( + normals[ normalIndex ++ ], + normals[ normalIndex ++ ], + normals[ normalIndex ] + ); + + face.vertexNormals.push( normal ); + + } + + } + + + if ( hasFaceColor ) { + + colorIndex = faces[ offset ++ ]; + face.color.setHex( colors[ colorIndex ] ); + + } + + + if ( hasFaceVertexColor ) { + + for ( i = 0; i < 3; i ++ ) { + + colorIndex = faces[ offset ++ ]; + face.vertexColors.push( new THREE.Color( colors[ colorIndex ] ) ); + + } + + } + + geometry.faces.push( face ); + + } + + } + + }; + + function parseSkin() { + var influencesPerVertex = ( json.influencesPerVertex !== undefined ) ? json.influencesPerVertex : 2; + + if ( json.skinWeights ) { + + for ( var i = 0, l = json.skinWeights.length; i < l; i += influencesPerVertex ) { + + var x = json.skinWeights[ i ]; + var y = ( influencesPerVertex > 1 ) ? json.skinWeights[ i + 1 ] : 0; + var z = ( influencesPerVertex > 2 ) ? json.skinWeights[ i + 2 ] : 0; + var w = ( influencesPerVertex > 3 ) ? json.skinWeights[ i + 3 ] : 0; + + geometry.skinWeights.push( new THREE.Vector4( x, y, z, w ) ); + + } + + } + + if ( json.skinIndices ) { + + for ( var i = 0, l = json.skinIndices.length; i < l; i += influencesPerVertex ) { + + var a = json.skinIndices[ i ]; + var b = ( influencesPerVertex > 1 ) ? json.skinIndices[ i + 1 ] : 0; + var c = ( influencesPerVertex > 2 ) ? json.skinIndices[ i + 2 ] : 0; + var d = ( influencesPerVertex > 3 ) ? json.skinIndices[ i + 3 ] : 0; + + geometry.skinIndices.push( new THREE.Vector4( a, b, c, d ) ); + + } + + } + + geometry.bones = json.bones; + + if ( geometry.bones && geometry.bones.length > 0 && ( geometry.skinWeights.length !== geometry.skinIndices.length || geometry.skinIndices.length !== geometry.vertices.length ) ) { + + THREE.warn( 'THREE.JSONLoader: When skinning, number of vertices (' + geometry.vertices.length + '), skinIndices (' + + geometry.skinIndices.length + '), and skinWeights (' + geometry.skinWeights.length + ') should match.' ); + + } + + + // could change this to json.animations[0] or remove completely + + geometry.animation = json.animation; + geometry.animations = json.animations; + + }; + + function parseMorphing( scale ) { + + if ( json.morphTargets !== undefined ) { + + var i, l, v, vl, dstVertices, srcVertices; + + for ( i = 0, l = json.morphTargets.length; i < l; i ++ ) { + + geometry.morphTargets[ i ] = {}; + geometry.morphTargets[ i ].name = json.morphTargets[ i ].name; + geometry.morphTargets[ i ].vertices = []; + + dstVertices = geometry.morphTargets[ i ].vertices; + srcVertices = json.morphTargets [ i ].vertices; + + for ( v = 0, vl = srcVertices.length; v < vl; v += 3 ) { + + var vertex = new THREE.Vector3(); + vertex.x = srcVertices[ v ] * scale; + vertex.y = srcVertices[ v + 1 ] * scale; + vertex.z = srcVertices[ v + 2 ] * scale; + + dstVertices.push( vertex ); + + } + + } + + } + + if ( json.morphColors !== undefined ) { + + var i, l, c, cl, dstColors, srcColors, color; + + for ( i = 0, l = json.morphColors.length; i < l; i ++ ) { + + geometry.morphColors[ i ] = {}; + geometry.morphColors[ i ].name = json.morphColors[ i ].name; + geometry.morphColors[ i ].colors = []; + + dstColors = geometry.morphColors[ i ].colors; + srcColors = json.morphColors [ i ].colors; + + for ( c = 0, cl = srcColors.length; c < cl; c += 3 ) { + + color = new THREE.Color( 0xffaa00 ); + color.setRGB( srcColors[ c ], srcColors[ c + 1 ], srcColors[ c + 2 ] ); + dstColors.push( color ); + + } + + } + + } + + }; + + if ( json.materials === undefined || json.materials.length === 0 ) { + + return { geometry: geometry }; + + } else { + + var materials = this.initMaterials( json.materials, texturePath ); + + if ( this.needsTangents( materials ) ) { + + geometry.computeTangents(); + + } + + return { geometry: geometry, materials: materials }; + + } + +}; + +// File:src/loaders/LoadingManager.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.LoadingManager = function ( onLoad, onProgress, onError ) { + + var scope = this; + + var loaded = 0, total = 0; + + this.onLoad = onLoad; + this.onProgress = onProgress; + this.onError = onError; + + this.itemStart = function ( url ) { + + total ++; + + }; + + this.itemEnd = function ( url ) { + + loaded ++; + + if ( scope.onProgress !== undefined ) { + + scope.onProgress( url, loaded, total ); + + } + + if ( loaded === total && scope.onLoad !== undefined ) { + + scope.onLoad(); + + } + + }; + +}; + +THREE.DefaultLoadingManager = new THREE.LoadingManager(); + +// File:src/loaders/BufferGeometryLoader.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.BufferGeometryLoader = function ( manager ) { + + this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager; + +}; + +THREE.BufferGeometryLoader.prototype = { + + constructor: THREE.BufferGeometryLoader, + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var loader = new THREE.XHRLoader( scope.manager ); + loader.setCrossOrigin( this.crossOrigin ); + loader.load( url, function ( text ) { + + onLoad( scope.parse( JSON.parse( text ) ) ); + + }, onProgress, onError ); + + }, + + setCrossOrigin: function ( value ) { + + this.crossOrigin = value; + + }, + + parse: function ( json ) { + + var geometry = new THREE.BufferGeometry(); + + var attributes = json.data.attributes; + + for ( var key in attributes ) { + + var attribute = attributes[ key ]; + var typedArray = new self[ attribute.type ]( attribute.array ); + + geometry.addAttribute( key, new THREE.BufferAttribute( typedArray, attribute.itemSize ) ); + + } + + var offsets = json.data.offsets; + + if ( offsets !== undefined ) { + + geometry.offsets = JSON.parse( JSON.stringify( offsets ) ); + + } + + var boundingSphere = json.data.boundingSphere; + + if ( boundingSphere !== undefined ) { + + var center = new THREE.Vector3(); + + if ( boundingSphere.center !== undefined ) { + + center.fromArray( boundingSphere.center ); + + } + + geometry.boundingSphere = new THREE.Sphere( center, boundingSphere.radius ); + + } + + return geometry; + + } + +}; + +// File:src/loaders/MaterialLoader.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.MaterialLoader = function ( manager ) { + + this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager; + +}; + +THREE.MaterialLoader.prototype = { + + constructor: THREE.MaterialLoader, + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var loader = new THREE.XHRLoader( scope.manager ); + loader.setCrossOrigin( this.crossOrigin ); + loader.load( url, function ( text ) { + + onLoad( scope.parse( JSON.parse( text ) ) ); + + }, onProgress, onError ); + + }, + + setCrossOrigin: function ( value ) { + + this.crossOrigin = value; + + }, + + parse: function ( json ) { + + var material = new THREE[ json.type ]; + + if ( json.color !== undefined ) material.color.setHex( json.color ); + if ( json.emissive !== undefined ) material.emissive.setHex( json.emissive ); + if ( json.specular !== undefined ) material.specular.setHex( json.specular ); + if ( json.shininess !== undefined ) material.shininess = json.shininess; + if ( json.uniforms !== undefined ) material.uniforms = json.uniforms; + if ( json.vertexShader !== undefined ) material.vertexShader = json.vertexShader; + if ( json.fragmentShader !== undefined ) material.fragmentShader = json.fragmentShader; + if ( json.vertexColors !== undefined ) material.vertexColors = json.vertexColors; + if ( json.shading !== undefined ) material.shading = json.shading; + if ( json.blending !== undefined ) material.blending = json.blending; + if ( json.side !== undefined ) material.side = json.side; + if ( json.opacity !== undefined ) material.opacity = json.opacity; + if ( json.transparent !== undefined ) material.transparent = json.transparent; + if ( json.wireframe !== undefined ) material.wireframe = json.wireframe; + + // for PointCloudMaterial + if ( json.size !== undefined ) material.size = json.size; + if ( json.sizeAttenuation !== undefined ) material.sizeAttenuation = json.sizeAttenuation; + + if ( json.materials !== undefined ) { + + for ( var i = 0, l = json.materials.length; i < l; i ++ ) { + + material.materials.push( this.parse( json.materials[ i ] ) ); + + } + + } + + return material; + + } + +}; + +// File:src/loaders/ObjectLoader.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.ObjectLoader = function ( manager ) { + + this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager; + this.texturePath = ''; + +}; + +THREE.ObjectLoader.prototype = { + + constructor: THREE.ObjectLoader, + + load: function ( url, onLoad, onProgress, onError ) { + + if ( this.texturePath === '' ) { + + this.texturePath = url.substring( 0, url.lastIndexOf( '/' ) + 1 ); + + } + + var scope = this; + + var loader = new THREE.XHRLoader( scope.manager ); + loader.setCrossOrigin( this.crossOrigin ); + loader.load( url, function ( text ) { + + scope.parse( JSON.parse( text ), onLoad ); + + }, onProgress, onError ); + + }, + + setTexturePath: function ( value ) { + + this.texturePath = value; + + }, + + setCrossOrigin: function ( value ) { + + this.crossOrigin = value; + + }, + + parse: function ( json, onLoad ) { + + var geometries = this.parseGeometries( json.geometries ); + + var images = this.parseImages( json.images, function () { + + if ( onLoad !== undefined ) onLoad( object ); + + } ); + var textures = this.parseTextures( json.textures, images ); + var materials = this.parseMaterials( json.materials, textures ); + var object = this.parseObject( json.object, geometries, materials ); + + if ( json.images === undefined || json.images.length === 0 ) { + + if ( onLoad !== undefined ) onLoad( object ); + + } + + return object; + + }, + + parseGeometries: function ( json ) { + + var geometries = {}; + + if ( json !== undefined ) { + + var geometryLoader = new THREE.JSONLoader(); + var bufferGeometryLoader = new THREE.BufferGeometryLoader(); + + for ( var i = 0, l = json.length; i < l; i ++ ) { + + var geometry; + var data = json[ i ]; + + switch ( data.type ) { + + case 'PlaneGeometry': + case 'PlaneBufferGeometry': + + geometry = new THREE[ data.type ]( + data.width, + data.height, + data.widthSegments, + data.heightSegments + ); + + break; + + case 'BoxGeometry': + case 'CubeGeometry': // backwards compatible + + geometry = new THREE.BoxGeometry( + data.width, + data.height, + data.depth, + data.widthSegments, + data.heightSegments, + data.depthSegments + ); + + break; + + case 'CircleGeometry': + + geometry = new THREE.CircleGeometry( + data.radius, + data.segments + ); + + break; + + case 'CylinderGeometry': + + geometry = new THREE.CylinderGeometry( + data.radiusTop, + data.radiusBottom, + data.height, + data.radialSegments, + data.heightSegments, + data.openEnded + ); + + break; + + case 'SphereGeometry': + + geometry = new THREE.SphereGeometry( + data.radius, + data.widthSegments, + data.heightSegments, + data.phiStart, + data.phiLength, + data.thetaStart, + data.thetaLength + ); + + break; + + case 'IcosahedronGeometry': + + geometry = new THREE.IcosahedronGeometry( + data.radius, + data.detail + ); + + break; + + case 'TorusGeometry': + + geometry = new THREE.TorusGeometry( + data.radius, + data.tube, + data.radialSegments, + data.tubularSegments, + data.arc + ); + + break; + + case 'TorusKnotGeometry': + + geometry = new THREE.TorusKnotGeometry( + data.radius, + data.tube, + data.radialSegments, + data.tubularSegments, + data.p, + data.q, + data.heightScale + ); + + break; + + case 'BufferGeometry': + + geometry = bufferGeometryLoader.parse( data ); + + break; + + case 'Geometry': + + geometry = geometryLoader.parse( data.data ).geometry; + + break; + + } + + geometry.uuid = data.uuid; + + if ( data.name !== undefined ) geometry.name = data.name; + + geometries[ data.uuid ] = geometry; + + } + + } + + return geometries; + + }, + + parseMaterials: function ( json, textures ) { + + var materials = {}; + + if ( json !== undefined ) { + + var getTexture = function ( name ) { + + if ( textures[ name ] === undefined ) { + + THREE.warn( 'THREE.ObjectLoader: Undefined texture', name ); + + } + + return textures[ name ]; + + }; + + var loader = new THREE.MaterialLoader(); + + for ( var i = 0, l = json.length; i < l; i ++ ) { + + var data = json[ i ]; + var material = loader.parse( data ); + + material.uuid = data.uuid; + + if ( data.name !== undefined ) material.name = data.name; + + if ( data.map !== undefined ) { + + material.map = getTexture( data.map ); + + } + + if ( data.bumpMap !== undefined ) { + + material.bumpMap = getTexture( data.bumpMap ); + if ( data.bumpScale ) { + material.bumpScale = new THREE.Vector2( data.bumpScale, data.bumpScale ); + } + + } + + if ( data.alphaMap !== undefined ) { + + material.alphaMap = getTexture( data.alphaMap ); + + } + + if ( data.envMap !== undefined ) { + + material.envMap = getTexture( data.envMap ); + + } + + if ( data.normalMap !== undefined ) { + + material.normalMap = getTexture( data.normalMap ); + if ( data.normalScale ) { + material.normalScale = new THREE.Vector2( data.normalScale, data.normalScale ); + } + + } + + if ( data.lightMap !== undefined ) { + + material.lightMap = getTexture( data.lightMap ); + + } + + if ( data.specularMap !== undefined ) { + + material.specularMap = getTexture( data.specularMap ); + + } + + materials[ data.uuid ] = material; + + } + + } + + return materials; + + }, + + parseImages: function ( json, onLoad ) { + + var scope = this; + var images = {}; + + if ( json !== undefined && json.length > 0 ) { + + var manager = new THREE.LoadingManager( onLoad ); + + var loader = new THREE.ImageLoader( manager ); + loader.setCrossOrigin( this.crossOrigin ); + + var loadImage = function ( url ) { + + scope.manager.itemStart( url ); + + return loader.load( url, function () { + + scope.manager.itemEnd( url ); + + } ); + + }; + + for ( var i = 0, l = json.length; i < l; i ++ ) { + + var image = json[ i ]; + var path = /^(\/\/)|([a-z]+:(\/\/)?)/i.test( image.url ) ? image.url : scope.texturePath + image.url; + + images[ image.uuid ] = loadImage( path ); + + } + + } + + return images; + + }, + + parseTextures: function ( json, images ) { + + var textures = {}; + + if ( json !== undefined ) { + + for ( var i = 0, l = json.length; i < l; i ++ ) { + + var data = json[ i ]; + + if ( data.image === undefined ) { + + THREE.warn( 'THREE.ObjectLoader: No "image" speficied for', data.uuid ); + + } + + if ( images[ data.image ] === undefined ) { + + THREE.warn( 'THREE.ObjectLoader: Undefined image', data.image ); + + } + + var texture = new THREE.Texture( images[ data.image ] ); + texture.needsUpdate = true; + + texture.uuid = data.uuid; + + if ( data.name !== undefined ) texture.name = data.name; + if ( data.repeat !== undefined ) texture.repeat = new THREE.Vector2( data.repeat[ 0 ], data.repeat[ 1 ] ); + if ( data.minFilter !== undefined ) texture.minFilter = THREE[ data.minFilter ]; + if ( data.magFilter !== undefined ) texture.magFilter = THREE[ data.magFilter ]; + if ( data.anisotropy !== undefined ) texture.anisotropy = data.anisotropy; + if ( data.wrap instanceof Array ) { + + texture.wrapS = THREE[ data.wrap[ 0 ] ]; + texture.wrapT = THREE[ data.wrap[ 1 ] ]; + + } + + textures[ data.uuid ] = texture; + + } + + } + + return textures; + + }, + + parseObject: function () { + + var matrix = new THREE.Matrix4(); + + return function ( data, geometries, materials ) { + + var object; + + var getGeometry = function ( name ) { + + if ( geometries[ name ] === undefined ) { + + THREE.warn( 'THREE.ObjectLoader: Undefined geometry', name ); + + } + + return geometries[ name ]; + + }; + + var getMaterial = function ( name ) { + + if ( materials[ name ] === undefined ) { + + THREE.warn( 'THREE.ObjectLoader: Undefined material', name ); + + } + + return materials[ name ]; + + }; + + switch ( data.type ) { + + case 'Scene': + + object = new THREE.Scene(); + + break; + + case 'PerspectiveCamera': + + object = new THREE.PerspectiveCamera( data.fov, data.aspect, data.near, data.far ); + + break; + + case 'OrthographicCamera': + + object = new THREE.OrthographicCamera( data.left, data.right, data.top, data.bottom, data.near, data.far ); + + break; + + case 'AmbientLight': + + object = new THREE.AmbientLight( data.color ); + + break; + + case 'DirectionalLight': + + object = new THREE.DirectionalLight( data.color, data.intensity ); + + break; + + case 'PointLight': + + object = new THREE.PointLight( data.color, data.intensity, data.distance, data.decay ); + + break; + + case 'SpotLight': + + object = new THREE.SpotLight( data.color, data.intensity, data.distance, data.angle, data.exponent, data.decay ); + + break; + + case 'HemisphereLight': + + object = new THREE.HemisphereLight( data.color, data.groundColor, data.intensity ); + + break; + + case 'Mesh': + + object = new THREE.Mesh( getGeometry( data.geometry ), getMaterial( data.material ) ); + + break; + + case 'Line': + + object = new THREE.Line( getGeometry( data.geometry ), getMaterial( data.material ), data.mode ); + + break; + + case 'PointCloud': + + object = new THREE.PointCloud( getGeometry( data.geometry ), getMaterial( data.material ) ); + + break; + + case 'Sprite': + + object = new THREE.Sprite( getMaterial( data.material ) ); + + break; + + case 'Group': + + object = new THREE.Group(); + + break; + + default: + + object = new THREE.Object3D(); + + } + + object.uuid = data.uuid; + + if ( data.name !== undefined ) object.name = data.name; + if ( data.matrix !== undefined ) { + + matrix.fromArray( data.matrix ); + matrix.decompose( object.position, object.quaternion, object.scale ); + + } else { + + if ( data.position !== undefined ) object.position.fromArray( data.position ); + if ( data.rotation !== undefined ) object.rotation.fromArray( data.rotation ); + if ( data.scale !== undefined ) object.scale.fromArray( data.scale ); + + } + + if ( data.visible !== undefined ) object.visible = data.visible; + if ( data.userData !== undefined ) object.userData = data.userData; + + if ( data.children !== undefined ) { + + for ( var child in data.children ) { + + object.add( this.parseObject( data.children[ child ], geometries, materials ) ); + + } + + } + + return object; + + } + + }() + +}; + +// File:src/loaders/TextureLoader.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.TextureLoader = function ( manager ) { + + this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager; + +}; + +THREE.TextureLoader.prototype = { + + constructor: THREE.TextureLoader, + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var loader = new THREE.ImageLoader( scope.manager ); + loader.setCrossOrigin( this.crossOrigin ); + loader.load( url, function ( image ) { + + var texture = new THREE.Texture( image ); + texture.needsUpdate = true; + + if ( onLoad !== undefined ) { + + onLoad( texture ); + + } + + }, onProgress, onError ); + + }, + + setCrossOrigin: function ( value ) { + + this.crossOrigin = value; + + } + +}; + +// File:src/loaders/BinaryTextureLoader.js + +/** + * @author Nikos M. / https://github.com/foo123/ + * + * Abstract Base class to load generic binary textures formats (rgbe, hdr, ...) + */ + +THREE.DataTextureLoader = THREE.BinaryTextureLoader = function () { + + // override in sub classes + this._parser = null; + +}; + +THREE.BinaryTextureLoader.prototype = { + + constructor: THREE.BinaryTextureLoader, + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var texture = new THREE.DataTexture( ); + + var loader = new THREE.XHRLoader(); + loader.setResponseType( 'arraybuffer' ); + + loader.load( url, function ( buffer ) { + + var texData = scope._parser( buffer ); + + if ( !texData ) return; + + if ( undefined !== texData.image ) { + + texture.image = texData.image; + + } else if ( undefined !== texData.data ) { + + texture.image.width = texData.width; + texture.image.height = texData.height; + texture.image.data = texData.data; + + } + + texture.wrapS = undefined !== texData.wrapS ? texData.wrapS : THREE.ClampToEdgeWrapping; + texture.wrapT = undefined !== texData.wrapT ? texData.wrapT : THREE.ClampToEdgeWrapping; + + texture.magFilter = undefined !== texData.magFilter ? texData.magFilter : THREE.LinearFilter; + texture.minFilter = undefined !== texData.minFilter ? texData.minFilter : THREE.LinearMipMapLinearFilter; + + texture.anisotropy = undefined !== texData.anisotropy ? texData.anisotropy : 1; + + if ( undefined !== texData.format ) { + + texture.format = texData.format; + + } + if ( undefined !== texData.type ) { + + texture.type = texData.type; + + } + + if ( undefined !== texData.mipmaps ) { + + texture.mipmaps = texData.mipmaps; + + } + + if ( 1 === texData.mipmapCount ) { + + texture.minFilter = THREE.LinearFilter; + + } + + texture.needsUpdate = true; + + if ( onLoad ) onLoad( texture, texData ); + + }, onProgress, onError ); + + + return texture; + + } + +}; + +// File:src/loaders/CompressedTextureLoader.js + +/** + * @author mrdoob / http://mrdoob.com/ + * + * Abstract Base class to block based textures loader (dds, pvr, ...) + */ + +THREE.CompressedTextureLoader = function () { + + // override in sub classes + this._parser = null; + +}; + + +THREE.CompressedTextureLoader.prototype = { + + constructor: THREE.CompressedTextureLoader, + + load: function ( url, onLoad, onError ) { + + var scope = this; + + var images = []; + + var texture = new THREE.CompressedTexture(); + texture.image = images; + + var loader = new THREE.XHRLoader(); + loader.setResponseType( 'arraybuffer' ); + + if ( url instanceof Array ) { + + var loaded = 0; + + var loadTexture = function ( i ) { + + loader.load( url[ i ], function ( buffer ) { + + var texDatas = scope._parser( buffer, true ); + + images[ i ] = { + width: texDatas.width, + height: texDatas.height, + format: texDatas.format, + mipmaps: texDatas.mipmaps + }; + + loaded += 1; + + if ( loaded === 6 ) { + + if (texDatas.mipmapCount == 1) + texture.minFilter = THREE.LinearFilter; + + texture.format = texDatas.format; + texture.needsUpdate = true; + + if ( onLoad ) onLoad( texture ); + + } + + } ); + + }; + + for ( var i = 0, il = url.length; i < il; ++ i ) { + + loadTexture( i ); + + } + + } else { + + // compressed cubemap texture stored in a single DDS file + + loader.load( url, function ( buffer ) { + + var texDatas = scope._parser( buffer, true ); + + if ( texDatas.isCubemap ) { + + var faces = texDatas.mipmaps.length / texDatas.mipmapCount; + + for ( var f = 0; f < faces; f ++ ) { + + images[ f ] = { mipmaps : [] }; + + for ( var i = 0; i < texDatas.mipmapCount; i ++ ) { + + images[ f ].mipmaps.push( texDatas.mipmaps[ f * texDatas.mipmapCount + i ] ); + images[ f ].format = texDatas.format; + images[ f ].width = texDatas.width; + images[ f ].height = texDatas.height; + + } + + } + + } else { + + texture.image.width = texDatas.width; + texture.image.height = texDatas.height; + texture.mipmaps = texDatas.mipmaps; + + } + + if ( texDatas.mipmapCount === 1 ) { + + texture.minFilter = THREE.LinearFilter; + + } + + texture.format = texDatas.format; + texture.needsUpdate = true; + + if ( onLoad ) onLoad( texture ); + + } ); + + } + + return texture; + + } + +}; + +// File:src/materials/Material.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.Material = function () { + + Object.defineProperty( this, 'id', { value: THREE.MaterialIdCount ++ } ); + + this.uuid = THREE.Math.generateUUID(); + + this.name = ''; + this.type = 'Material'; + + this.side = THREE.FrontSide; + + this.opacity = 1; + this.transparent = false; + + this.blending = THREE.NormalBlending; + + this.blendSrc = THREE.SrcAlphaFactor; + this.blendDst = THREE.OneMinusSrcAlphaFactor; + this.blendEquation = THREE.AddEquation; + this.blendSrcAlpha = null; + this.blendDstAlpha = null; + this.blendEquationAlpha = null; + + this.depthTest = true; + this.depthWrite = true; + + this.colorWrite = true; + + this.polygonOffset = false; + this.polygonOffsetFactor = 0; + this.polygonOffsetUnits = 0; + + this.alphaTest = 0; + + this.overdraw = 0; // Overdrawn pixels (typically between 0 and 1) for fixing antialiasing gaps in CanvasRenderer + + this.visible = true; + + this._needsUpdate = true; + +}; + +THREE.Material.prototype = { + + constructor: THREE.Material, + + get needsUpdate () { + + return this._needsUpdate; + + }, + + set needsUpdate ( value ) { + + if ( value === true ) this.update(); + + this._needsUpdate = value; + + }, + + setValues: function ( values ) { + + if ( values === undefined ) return; + + for ( var key in values ) { + + var newValue = values[ key ]; + + if ( newValue === undefined ) { + + THREE.warn( "THREE.Material: '" + key + "' parameter is undefined." ); + continue; + + } + + if ( key in this ) { + + var currentValue = this[ key ]; + + if ( currentValue instanceof THREE.Color ) { + + currentValue.set( newValue ); + + } else if ( currentValue instanceof THREE.Vector3 && newValue instanceof THREE.Vector3 ) { + + currentValue.copy( newValue ); + + } else if ( key == 'overdraw' ) { + + // ensure overdraw is backwards-compatable with legacy boolean type + this[ key ] = Number( newValue ); + + } else { + + this[ key ] = newValue; + + } + + } + + } + + }, + + toJSON: function () { + + var output = { + metadata: { + version: 4.2, + type: 'material', + generator: 'MaterialExporter' + }, + uuid: this.uuid, + type: this.type + }; + + if ( this.name !== "" ) output.name = this.name; + + if ( this instanceof THREE.MeshBasicMaterial ) { + + output.color = this.color.getHex(); + if ( this.vertexColors !== THREE.NoColors ) output.vertexColors = this.vertexColors; + if ( this.blending !== THREE.NormalBlending ) output.blending = this.blending; + if ( this.side !== THREE.FrontSide ) output.side = this.side; + + } else if ( this instanceof THREE.MeshLambertMaterial ) { + + output.color = this.color.getHex(); + output.emissive = this.emissive.getHex(); + if ( this.vertexColors !== THREE.NoColors ) output.vertexColors = this.vertexColors; + if ( this.shading !== THREE.SmoothShading ) output.shading = this.shading; + if ( this.blending !== THREE.NormalBlending ) output.blending = this.blending; + if ( this.side !== THREE.FrontSide ) output.side = this.side; + + } else if ( this instanceof THREE.MeshPhongMaterial ) { + + output.color = this.color.getHex(); + output.emissive = this.emissive.getHex(); + output.specular = this.specular.getHex(); + output.shininess = this.shininess; + if ( this.vertexColors !== THREE.NoColors ) output.vertexColors = this.vertexColors; + if ( this.shading !== THREE.SmoothShading ) output.shading = this.shading; + if ( this.blending !== THREE.NormalBlending ) output.blending = this.blending; + if ( this.side !== THREE.FrontSide ) output.side = this.side; + + } else if ( this instanceof THREE.MeshNormalMaterial ) { + + if ( this.blending !== THREE.NormalBlending ) output.blending = this.blending; + if ( this.side !== THREE.FrontSide ) output.side = this.side; + + } else if ( this instanceof THREE.MeshDepthMaterial ) { + + if ( this.blending !== THREE.NormalBlending ) output.blending = this.blending; + if ( this.side !== THREE.FrontSide ) output.side = this.side; + + } else if ( this instanceof THREE.PointCloudMaterial ) { + + output.size = this.size; + output.sizeAttenuation = this.sizeAttenuation; + output.color = this.color.getHex(); + + if ( this.vertexColors !== THREE.NoColors ) output.vertexColors = this.vertexColors; + if ( this.blending !== THREE.NormalBlending ) output.blending = this.blending; + + } else if ( this instanceof THREE.ShaderMaterial ) { + + output.uniforms = this.uniforms; + output.vertexShader = this.vertexShader; + output.fragmentShader = this.fragmentShader; + + } else if ( this instanceof THREE.SpriteMaterial ) { + + output.color = this.color.getHex(); + + } + + if ( this.opacity < 1 ) output.opacity = this.opacity; + if ( this.transparent !== false ) output.transparent = this.transparent; + if ( this.wireframe !== false ) output.wireframe = this.wireframe; + + return output; + + }, + + clone: function ( material ) { + + if ( material === undefined ) material = new THREE.Material(); + + material.name = this.name; + + material.side = this.side; + + material.opacity = this.opacity; + material.transparent = this.transparent; + + material.blending = this.blending; + + material.blendSrc = this.blendSrc; + material.blendDst = this.blendDst; + material.blendEquation = this.blendEquation; + material.blendSrcAlpha = this.blendSrcAlpha; + material.blendDstAlpha = this.blendDstAlpha; + material.blendEquationAlpha = this.blendEquationAlpha; + + material.depthTest = this.depthTest; + material.depthWrite = this.depthWrite; + + material.polygonOffset = this.polygonOffset; + material.polygonOffsetFactor = this.polygonOffsetFactor; + material.polygonOffsetUnits = this.polygonOffsetUnits; + + material.alphaTest = this.alphaTest; + + material.overdraw = this.overdraw; + + material.visible = this.visible; + + return material; + + }, + + update: function () { + + this.dispatchEvent( { type: 'update' } ); + + }, + + dispose: function () { + + this.dispatchEvent( { type: 'dispose' } ); + + } + +}; + +THREE.EventDispatcher.prototype.apply( THREE.Material.prototype ); + +THREE.MaterialIdCount = 0; + +// File:src/materials/LineBasicMaterial.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * opacity: , + * + * blending: THREE.NormalBlending, + * depthTest: , + * depthWrite: , + * + * linewidth: , + * linecap: "round", + * linejoin: "round", + * + * vertexColors: + * + * fog: + * } + */ + +THREE.LineBasicMaterial = function ( parameters ) { + + THREE.Material.call( this ); + + this.type = 'LineBasicMaterial'; + + this.color = new THREE.Color( 0xffffff ); + + this.linewidth = 1; + this.linecap = 'round'; + this.linejoin = 'round'; + + this.vertexColors = THREE.NoColors; + + this.fog = true; + + this.setValues( parameters ); + +}; + +THREE.LineBasicMaterial.prototype = Object.create( THREE.Material.prototype ); +THREE.LineBasicMaterial.prototype.constructor = THREE.LineBasicMaterial; + +THREE.LineBasicMaterial.prototype.clone = function () { + + var material = new THREE.LineBasicMaterial(); + + THREE.Material.prototype.clone.call( this, material ); + + material.color.copy( this.color ); + + material.linewidth = this.linewidth; + material.linecap = this.linecap; + material.linejoin = this.linejoin; + + material.vertexColors = this.vertexColors; + + material.fog = this.fog; + + return material; + +}; + +// File:src/materials/LineDashedMaterial.js + +/** + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * opacity: , + * + * blending: THREE.NormalBlending, + * depthTest: , + * depthWrite: , + * + * linewidth: , + * + * scale: , + * dashSize: , + * gapSize: , + * + * vertexColors: + * + * fog: + * } + */ + +THREE.LineDashedMaterial = function ( parameters ) { + + THREE.Material.call( this ); + + this.type = 'LineDashedMaterial'; + + this.color = new THREE.Color( 0xffffff ); + + this.linewidth = 1; + + this.scale = 1; + this.dashSize = 3; + this.gapSize = 1; + + this.vertexColors = false; + + this.fog = true; + + this.setValues( parameters ); + +}; + +THREE.LineDashedMaterial.prototype = Object.create( THREE.Material.prototype ); +THREE.LineDashedMaterial.prototype.constructor = THREE.LineDashedMaterial; + +THREE.LineDashedMaterial.prototype.clone = function () { + + var material = new THREE.LineDashedMaterial(); + + THREE.Material.prototype.clone.call( this, material ); + + material.color.copy( this.color ); + + material.linewidth = this.linewidth; + + material.scale = this.scale; + material.dashSize = this.dashSize; + material.gapSize = this.gapSize; + + material.vertexColors = this.vertexColors; + + material.fog = this.fog; + + return material; + +}; + +// File:src/materials/MeshBasicMaterial.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * opacity: , + * map: new THREE.Texture( ), + * + * lightMap: new THREE.Texture( ), + * + * specularMap: new THREE.Texture( ), + * + * alphaMap: new THREE.Texture( ), + * + * envMap: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ), + * combine: THREE.Multiply, + * reflectivity: , + * refractionRatio: , + * + * shading: THREE.SmoothShading, + * blending: THREE.NormalBlending, + * depthTest: , + * depthWrite: , + * + * wireframe: , + * wireframeLinewidth: , + * + * vertexColors: THREE.NoColors / THREE.VertexColors / THREE.FaceColors, + * + * skinning: , + * morphTargets: , + * + * fog: + * } + */ + +THREE.MeshBasicMaterial = function ( parameters ) { + + THREE.Material.call( this ); + + this.type = 'MeshBasicMaterial'; + + this.color = new THREE.Color( 0xffffff ); // emissive + + this.map = null; + + this.lightMap = null; + + this.specularMap = null; + + this.alphaMap = null; + + this.envMap = null; + this.combine = THREE.MultiplyOperation; + this.reflectivity = 1; + this.refractionRatio = 0.98; + + this.fog = true; + + this.shading = THREE.SmoothShading; + + this.wireframe = false; + this.wireframeLinewidth = 1; + this.wireframeLinecap = 'round'; + this.wireframeLinejoin = 'round'; + + this.vertexColors = THREE.NoColors; + + this.skinning = false; + this.morphTargets = false; + + this.setValues( parameters ); + +}; + +THREE.MeshBasicMaterial.prototype = Object.create( THREE.Material.prototype ); +THREE.MeshBasicMaterial.prototype.constructor = THREE.MeshBasicMaterial; + +THREE.MeshBasicMaterial.prototype.clone = function () { + + var material = new THREE.MeshBasicMaterial(); + + THREE.Material.prototype.clone.call( this, material ); + + material.color.copy( this.color ); + + material.map = this.map; + + material.lightMap = this.lightMap; + + material.specularMap = this.specularMap; + + material.alphaMap = this.alphaMap; + + material.envMap = this.envMap; + material.combine = this.combine; + material.reflectivity = this.reflectivity; + material.refractionRatio = this.refractionRatio; + + material.fog = this.fog; + + material.shading = this.shading; + + material.wireframe = this.wireframe; + material.wireframeLinewidth = this.wireframeLinewidth; + material.wireframeLinecap = this.wireframeLinecap; + material.wireframeLinejoin = this.wireframeLinejoin; + + material.vertexColors = this.vertexColors; + + material.skinning = this.skinning; + material.morphTargets = this.morphTargets; + + return material; + +}; + +// File:src/materials/MeshLambertMaterial.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * emissive: , + * opacity: , + * + * map: new THREE.Texture( ), + * + * lightMap: new THREE.Texture( ), + * + * specularMap: new THREE.Texture( ), + * + * alphaMap: new THREE.Texture( ), + * + * envMap: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ), + * combine: THREE.Multiply, + * reflectivity: , + * refractionRatio: , + * + * shading: THREE.SmoothShading, + * blending: THREE.NormalBlending, + * depthTest: , + * depthWrite: , + * + * wireframe: , + * wireframeLinewidth: , + * + * vertexColors: THREE.NoColors / THREE.VertexColors / THREE.FaceColors, + * + * skinning: , + * morphTargets: , + * morphNormals: , + * + * fog: + * } + */ + +THREE.MeshLambertMaterial = function ( parameters ) { + + THREE.Material.call( this ); + + this.type = 'MeshLambertMaterial'; + + this.color = new THREE.Color( 0xffffff ); // diffuse + this.emissive = new THREE.Color( 0x000000 ); + + this.wrapAround = false; + this.wrapRGB = new THREE.Vector3( 1, 1, 1 ); + + this.map = null; + + this.lightMap = null; + + this.specularMap = null; + + this.alphaMap = null; + + this.envMap = null; + this.combine = THREE.MultiplyOperation; + this.reflectivity = 1; + this.refractionRatio = 0.98; + + this.fog = true; + + this.shading = THREE.SmoothShading; + + this.wireframe = false; + this.wireframeLinewidth = 1; + this.wireframeLinecap = 'round'; + this.wireframeLinejoin = 'round'; + + this.vertexColors = THREE.NoColors; + + this.skinning = false; + this.morphTargets = false; + this.morphNormals = false; + + this.setValues( parameters ); + +}; + +THREE.MeshLambertMaterial.prototype = Object.create( THREE.Material.prototype ); +THREE.MeshLambertMaterial.prototype.constructor = THREE.MeshLambertMaterial; + +THREE.MeshLambertMaterial.prototype.clone = function () { + + var material = new THREE.MeshLambertMaterial(); + + THREE.Material.prototype.clone.call( this, material ); + + material.color.copy( this.color ); + material.emissive.copy( this.emissive ); + + material.wrapAround = this.wrapAround; + material.wrapRGB.copy( this.wrapRGB ); + + material.map = this.map; + + material.lightMap = this.lightMap; + + material.specularMap = this.specularMap; + + material.alphaMap = this.alphaMap; + + material.envMap = this.envMap; + material.combine = this.combine; + material.reflectivity = this.reflectivity; + material.refractionRatio = this.refractionRatio; + + material.fog = this.fog; + + material.shading = this.shading; + + material.wireframe = this.wireframe; + material.wireframeLinewidth = this.wireframeLinewidth; + material.wireframeLinecap = this.wireframeLinecap; + material.wireframeLinejoin = this.wireframeLinejoin; + + material.vertexColors = this.vertexColors; + + material.skinning = this.skinning; + material.morphTargets = this.morphTargets; + material.morphNormals = this.morphNormals; + + return material; + +}; + +// File:src/materials/MeshPhongMaterial.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * emissive: , + * specular: , + * shininess: , + * opacity: , + * + * map: new THREE.Texture( ), + * + * lightMap: new THREE.Texture( ), + * + * bumpMap: new THREE.Texture( ), + * bumpScale: , + * + * normalMap: new THREE.Texture( ), + * normalScale: , + * + * specularMap: new THREE.Texture( ), + * + * alphaMap: new THREE.Texture( ), + * + * envMap: new THREE.TextureCube( [posx, negx, posy, negy, posz, negz] ), + * combine: THREE.Multiply, + * reflectivity: , + * refractionRatio: , + * + * shading: THREE.SmoothShading, + * blending: THREE.NormalBlending, + * depthTest: , + * depthWrite: , + * + * wireframe: , + * wireframeLinewidth: , + * + * vertexColors: THREE.NoColors / THREE.VertexColors / THREE.FaceColors, + * + * skinning: , + * morphTargets: , + * morphNormals: , + * + * fog: + * } + */ + +THREE.MeshPhongMaterial = function ( parameters ) { + + THREE.Material.call( this ); + + this.type = 'MeshPhongMaterial'; + + this.color = new THREE.Color( 0xffffff ); // diffuse + this.emissive = new THREE.Color( 0x000000 ); + this.specular = new THREE.Color( 0x111111 ); + this.shininess = 30; + + this.metal = false; + + this.wrapAround = false; + this.wrapRGB = new THREE.Vector3( 1, 1, 1 ); + + this.map = null; + + this.lightMap = null; + + this.bumpMap = null; + this.bumpScale = 1; + + this.normalMap = null; + this.normalScale = new THREE.Vector2( 1, 1 ); + + this.specularMap = null; + + this.alphaMap = null; + + this.envMap = null; + this.combine = THREE.MultiplyOperation; + this.reflectivity = 1; + this.refractionRatio = 0.98; + + this.fog = true; + + this.shading = THREE.SmoothShading; + + this.wireframe = false; + this.wireframeLinewidth = 1; + this.wireframeLinecap = 'round'; + this.wireframeLinejoin = 'round'; + + this.vertexColors = THREE.NoColors; + + this.skinning = false; + this.morphTargets = false; + this.morphNormals = false; + + this.setValues( parameters ); + +}; + +THREE.MeshPhongMaterial.prototype = Object.create( THREE.Material.prototype ); +THREE.MeshPhongMaterial.prototype.constructor = THREE.MeshPhongMaterial; + +THREE.MeshPhongMaterial.prototype.clone = function () { + + var material = new THREE.MeshPhongMaterial(); + + THREE.Material.prototype.clone.call( this, material ); + + material.color.copy( this.color ); + material.emissive.copy( this.emissive ); + material.specular.copy( this.specular ); + material.shininess = this.shininess; + + material.metal = this.metal; + + material.wrapAround = this.wrapAround; + material.wrapRGB.copy( this.wrapRGB ); + + material.map = this.map; + + material.lightMap = this.lightMap; + + material.bumpMap = this.bumpMap; + material.bumpScale = this.bumpScale; + + material.normalMap = this.normalMap; + material.normalScale.copy( this.normalScale ); + + material.specularMap = this.specularMap; + + material.alphaMap = this.alphaMap; + + material.envMap = this.envMap; + material.combine = this.combine; + material.reflectivity = this.reflectivity; + material.refractionRatio = this.refractionRatio; + + material.fog = this.fog; + + material.shading = this.shading; + + material.wireframe = this.wireframe; + material.wireframeLinewidth = this.wireframeLinewidth; + material.wireframeLinecap = this.wireframeLinecap; + material.wireframeLinejoin = this.wireframeLinejoin; + + material.vertexColors = this.vertexColors; + + material.skinning = this.skinning; + material.morphTargets = this.morphTargets; + material.morphNormals = this.morphNormals; + + return material; + +}; + +// File:src/materials/MeshDepthMaterial.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * opacity: , + * + * blending: THREE.NormalBlending, + * depthTest: , + * depthWrite: , + * + * wireframe: , + * wireframeLinewidth: + * } + */ + +THREE.MeshDepthMaterial = function ( parameters ) { + + THREE.Material.call( this ); + + this.type = 'MeshDepthMaterial'; + + this.morphTargets = false; + this.wireframe = false; + this.wireframeLinewidth = 1; + + this.setValues( parameters ); + +}; + +THREE.MeshDepthMaterial.prototype = Object.create( THREE.Material.prototype ); +THREE.MeshDepthMaterial.prototype.constructor = THREE.MeshDepthMaterial; + +THREE.MeshDepthMaterial.prototype.clone = function () { + + var material = new THREE.MeshDepthMaterial(); + + THREE.Material.prototype.clone.call( this, material ); + + material.wireframe = this.wireframe; + material.wireframeLinewidth = this.wireframeLinewidth; + + return material; + +}; + +// File:src/materials/MeshNormalMaterial.js + +/** + * @author mrdoob / http://mrdoob.com/ + * + * parameters = { + * opacity: , + * + * shading: THREE.FlatShading, + * blending: THREE.NormalBlending, + * depthTest: , + * depthWrite: , + * + * wireframe: , + * wireframeLinewidth: + * } + */ + +THREE.MeshNormalMaterial = function ( parameters ) { + + THREE.Material.call( this, parameters ); + + this.type = 'MeshNormalMaterial'; + + this.wireframe = false; + this.wireframeLinewidth = 1; + + this.morphTargets = false; + + this.setValues( parameters ); + +}; + +THREE.MeshNormalMaterial.prototype = Object.create( THREE.Material.prototype ); +THREE.MeshNormalMaterial.prototype.constructor = THREE.MeshNormalMaterial; + +THREE.MeshNormalMaterial.prototype.clone = function () { + + var material = new THREE.MeshNormalMaterial(); + + THREE.Material.prototype.clone.call( this, material ); + + material.wireframe = this.wireframe; + material.wireframeLinewidth = this.wireframeLinewidth; + + return material; + +}; + +// File:src/materials/MeshFaceMaterial.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.MeshFaceMaterial = function ( materials ) { + + this.uuid = THREE.Math.generateUUID(); + + this.type = 'MeshFaceMaterial'; + + this.materials = materials instanceof Array ? materials : []; + +}; + +THREE.MeshFaceMaterial.prototype = { + + constructor: THREE.MeshFaceMaterial, + + toJSON: function () { + + var output = { + metadata: { + version: 4.2, + type: 'material', + generator: 'MaterialExporter' + }, + uuid: this.uuid, + type: this.type, + materials: [] + }; + + for ( var i = 0, l = this.materials.length; i < l; i ++ ) { + + output.materials.push( this.materials[ i ].toJSON() ); + + } + + return output; + + }, + + clone: function () { + + var material = new THREE.MeshFaceMaterial(); + + for ( var i = 0; i < this.materials.length; i ++ ) { + + material.materials.push( this.materials[ i ].clone() ); + + } + + return material; + + } + +}; + +// File:src/materials/PointCloudMaterial.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * opacity: , + * map: new THREE.Texture( ), + * + * size: , + * sizeAttenuation: , + * + * blending: THREE.NormalBlending, + * depthTest: , + * depthWrite: , + * + * vertexColors: , + * + * fog: + * } + */ + +THREE.PointCloudMaterial = function ( parameters ) { + + THREE.Material.call( this ); + + this.type = 'PointCloudMaterial'; + + this.color = new THREE.Color( 0xffffff ); + + this.map = null; + + this.size = 1; + this.sizeAttenuation = true; + + this.vertexColors = THREE.NoColors; + + this.fog = true; + + this.setValues( parameters ); + +}; + +THREE.PointCloudMaterial.prototype = Object.create( THREE.Material.prototype ); +THREE.PointCloudMaterial.prototype.constructor = THREE.PointCloudMaterial; + +THREE.PointCloudMaterial.prototype.clone = function () { + + var material = new THREE.PointCloudMaterial(); + + THREE.Material.prototype.clone.call( this, material ); + + material.color.copy( this.color ); + + material.map = this.map; + + material.size = this.size; + material.sizeAttenuation = this.sizeAttenuation; + + material.vertexColors = this.vertexColors; + + material.fog = this.fog; + + return material; + +}; + +// backwards compatibility + +THREE.ParticleBasicMaterial = function ( parameters ) { + + THREE.warn( 'THREE.ParticleBasicMaterial has been renamed to THREE.PointCloudMaterial.' ); + return new THREE.PointCloudMaterial( parameters ); + +}; + +THREE.ParticleSystemMaterial = function ( parameters ) { + + THREE.warn( 'THREE.ParticleSystemMaterial has been renamed to THREE.PointCloudMaterial.' ); + return new THREE.PointCloudMaterial( parameters ); + +}; + +// File:src/materials/ShaderMaterial.js + +/** + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * defines: { "label" : "value" }, + * uniforms: { "parameter1": { type: "f", value: 1.0 }, "parameter2": { type: "i" value2: 2 } }, + * + * fragmentShader: , + * vertexShader: , + * + * shading: THREE.SmoothShading, + * blending: THREE.NormalBlending, + * depthTest: , + * depthWrite: , + * + * wireframe: , + * wireframeLinewidth: , + * + * lights: , + * + * vertexColors: THREE.NoColors / THREE.VertexColors / THREE.FaceColors, + * + * skinning: , + * morphTargets: , + * morphNormals: , + * + * fog: + * } + */ + +THREE.ShaderMaterial = function ( parameters ) { + + THREE.Material.call( this ); + + this.type = 'ShaderMaterial'; + + this.defines = {}; + this.uniforms = {}; + this.attributes = null; + + this.vertexShader = 'void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}'; + this.fragmentShader = 'void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}'; + + this.shading = THREE.SmoothShading; + + this.linewidth = 1; + + this.wireframe = false; + this.wireframeLinewidth = 1; + + this.fog = false; // set to use scene fog + + this.lights = false; // set to use scene lights + + this.vertexColors = THREE.NoColors; // set to use "color" attribute stream + + this.skinning = false; // set to use skinning attribute streams + + this.morphTargets = false; // set to use morph targets + this.morphNormals = false; // set to use morph normals + + // When rendered geometry doesn't include these attributes but the material does, + // use these default values in WebGL. This avoids errors when buffer data is missing. + this.defaultAttributeValues = { + 'color': [ 1, 1, 1 ], + 'uv': [ 0, 0 ], + 'uv2': [ 0, 0 ] + }; + + this.index0AttributeName = undefined; + + this.setValues( parameters ); + +}; + +THREE.ShaderMaterial.prototype = Object.create( THREE.Material.prototype ); +THREE.ShaderMaterial.prototype.constructor = THREE.ShaderMaterial; + +THREE.ShaderMaterial.prototype.clone = function () { + + var material = new THREE.ShaderMaterial(); + + THREE.Material.prototype.clone.call( this, material ); + + material.fragmentShader = this.fragmentShader; + material.vertexShader = this.vertexShader; + + material.uniforms = THREE.UniformsUtils.clone( this.uniforms ); + + material.attributes = this.attributes; + material.defines = this.defines; + + material.shading = this.shading; + + material.wireframe = this.wireframe; + material.wireframeLinewidth = this.wireframeLinewidth; + + material.fog = this.fog; + + material.lights = this.lights; + + material.vertexColors = this.vertexColors; + + material.skinning = this.skinning; + + material.morphTargets = this.morphTargets; + material.morphNormals = this.morphNormals; + + return material; + +}; + +// File:src/materials/RawShaderMaterial.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.RawShaderMaterial = function ( parameters ) { + + THREE.ShaderMaterial.call( this, parameters ); + + this.type = 'RawShaderMaterial'; + +}; + +THREE.RawShaderMaterial.prototype = Object.create( THREE.ShaderMaterial.prototype ); +THREE.RawShaderMaterial.prototype.constructor = THREE.RawShaderMaterial; + +THREE.RawShaderMaterial.prototype.clone = function () { + + var material = new THREE.RawShaderMaterial(); + + THREE.ShaderMaterial.prototype.clone.call( this, material ); + + return material; + +}; + +// File:src/materials/SpriteMaterial.js + +/** + * @author alteredq / http://alteredqualia.com/ + * + * parameters = { + * color: , + * opacity: , + * map: new THREE.Texture( ), + * + * blending: THREE.NormalBlending, + * depthTest: , + * depthWrite: , + * + * uvOffset: new THREE.Vector2(), + * uvScale: new THREE.Vector2(), + * + * fog: + * } + */ + +THREE.SpriteMaterial = function ( parameters ) { + + THREE.Material.call( this ); + + this.type = 'SpriteMaterial'; + + this.color = new THREE.Color( 0xffffff ); + this.map = null; + + this.rotation = 0; + + this.fog = false; + + // set parameters + + this.setValues( parameters ); + +}; + +THREE.SpriteMaterial.prototype = Object.create( THREE.Material.prototype ); +THREE.SpriteMaterial.prototype.constructor = THREE.SpriteMaterial; + +THREE.SpriteMaterial.prototype.clone = function () { + + var material = new THREE.SpriteMaterial(); + + THREE.Material.prototype.clone.call( this, material ); + + material.color.copy( this.color ); + material.map = this.map; + + material.rotation = this.rotation; + + material.fog = this.fog; + + return material; + +}; + +// File:src/textures/Texture.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * @author szimek / https://github.com/szimek/ + */ + +THREE.Texture = function ( image, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) { + + Object.defineProperty( this, 'id', { value: THREE.TextureIdCount ++ } ); + + this.uuid = THREE.Math.generateUUID(); + + this.name = ''; + this.sourceFile = ''; + + this.image = image !== undefined ? image : THREE.Texture.DEFAULT_IMAGE; + this.mipmaps = []; + + this.mapping = mapping !== undefined ? mapping : THREE.Texture.DEFAULT_MAPPING; + + this.wrapS = wrapS !== undefined ? wrapS : THREE.ClampToEdgeWrapping; + this.wrapT = wrapT !== undefined ? wrapT : THREE.ClampToEdgeWrapping; + + this.magFilter = magFilter !== undefined ? magFilter : THREE.LinearFilter; + this.minFilter = minFilter !== undefined ? minFilter : THREE.LinearMipMapLinearFilter; + + this.anisotropy = anisotropy !== undefined ? anisotropy : 1; + + this.format = format !== undefined ? format : THREE.RGBAFormat; + this.type = type !== undefined ? type : THREE.UnsignedByteType; + + this.offset = new THREE.Vector2( 0, 0 ); + this.repeat = new THREE.Vector2( 1, 1 ); + + this.generateMipmaps = true; + this.premultiplyAlpha = false; + this.flipY = true; + this.unpackAlignment = 4; // valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml) + + this._needsUpdate = false; + this.onUpdate = null; + +}; + +THREE.Texture.DEFAULT_IMAGE = undefined; +THREE.Texture.DEFAULT_MAPPING = THREE.UVMapping; + +THREE.Texture.prototype = { + + constructor: THREE.Texture, + + get needsUpdate () { + + return this._needsUpdate; + + }, + + set needsUpdate ( value ) { + + if ( value === true ) this.update(); + + this._needsUpdate = value; + + }, + + clone: function ( texture ) { + + if ( texture === undefined ) texture = new THREE.Texture(); + + texture.image = this.image; + texture.mipmaps = this.mipmaps.slice( 0 ); + + texture.mapping = this.mapping; + + texture.wrapS = this.wrapS; + texture.wrapT = this.wrapT; + + texture.magFilter = this.magFilter; + texture.minFilter = this.minFilter; + + texture.anisotropy = this.anisotropy; + + texture.format = this.format; + texture.type = this.type; + + texture.offset.copy( this.offset ); + texture.repeat.copy( this.repeat ); + + texture.generateMipmaps = this.generateMipmaps; + texture.premultiplyAlpha = this.premultiplyAlpha; + texture.flipY = this.flipY; + texture.unpackAlignment = this.unpackAlignment; + + return texture; + + }, + + update: function () { + + this.dispatchEvent( { type: 'update' } ); + + }, + + dispose: function () { + + this.dispatchEvent( { type: 'dispose' } ); + + } + +}; + +THREE.EventDispatcher.prototype.apply( THREE.Texture.prototype ); + +THREE.TextureIdCount = 0; + +// File:src/textures/CubeTexture.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.CubeTexture = function ( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) { + + mapping = mapping !== undefined ? mapping : THREE.CubeReflectionMapping; + + THREE.Texture.call( this, images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ); + + this.images = images; + +}; + +THREE.CubeTexture.prototype = Object.create( THREE.Texture.prototype ); +THREE.CubeTexture.prototype.constructor = THREE.CubeTexture; + +THREE.CubeTexture.clone = function ( texture ) { + + if ( texture === undefined ) texture = new THREE.CubeTexture(); + + THREE.Texture.prototype.clone.call( this, texture ); + + texture.images = this.images; + + return texture; + +}; + +// File:src/textures/CompressedTexture.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.CompressedTexture = function ( mipmaps, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy ) { + + THREE.Texture.call( this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ); + + this.image = { width: width, height: height }; + this.mipmaps = mipmaps; + + // no flipping for cube textures + // (also flipping doesn't work for compressed textures ) + + this.flipY = false; + + // can't generate mipmaps for compressed textures + // mips must be embedded in DDS files + + this.generateMipmaps = false; + +}; + +THREE.CompressedTexture.prototype = Object.create( THREE.Texture.prototype ); +THREE.CompressedTexture.prototype.constructor = THREE.CompressedTexture; + +THREE.CompressedTexture.prototype.clone = function () { + + var texture = new THREE.CompressedTexture(); + + THREE.Texture.prototype.clone.call( this, texture ); + + return texture; + +}; + +// File:src/textures/DataTexture.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.DataTexture = function ( data, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy ) { + + THREE.Texture.call( this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ); + + this.image = { data: data, width: width, height: height }; + +}; + +THREE.DataTexture.prototype = Object.create( THREE.Texture.prototype ); +THREE.DataTexture.prototype.constructor = THREE.DataTexture; + +THREE.DataTexture.prototype.clone = function () { + + var texture = new THREE.DataTexture(); + + THREE.Texture.prototype.clone.call( this, texture ); + + return texture; + +}; + +// File:src/textures/VideoTexture.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.VideoTexture = function ( video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ) { + + THREE.Texture.call( this, video, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy ); + + this.generateMipmaps = false; + + var scope = this; + + var update = function () { + + requestAnimationFrame( update ); + + if ( video.readyState === video.HAVE_ENOUGH_DATA ) { + + scope.needsUpdate = true; + + } + + }; + + update(); + +}; + +THREE.VideoTexture.prototype = Object.create( THREE.Texture.prototype ); +THREE.VideoTexture.prototype.constructor = THREE.VideoTexture; + +// File:src/objects/Group.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.Group = function () { + + THREE.Object3D.call( this ); + + this.type = 'Group'; + +}; + +THREE.Group.prototype = Object.create( THREE.Object3D.prototype ); +THREE.Group.prototype.constructor = THREE.Group; + +// File:src/objects/PointCloud.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.PointCloud = function ( geometry, material ) { + + THREE.Object3D.call( this ); + + this.type = 'PointCloud'; + + this.geometry = geometry !== undefined ? geometry : new THREE.Geometry(); + this.material = material !== undefined ? material : new THREE.PointCloudMaterial( { color: Math.random() * 0xffffff } ); + +}; + +THREE.PointCloud.prototype = Object.create( THREE.Object3D.prototype ); +THREE.PointCloud.prototype.constructor = THREE.PointCloud; + +THREE.PointCloud.prototype.raycast = ( function () { + + var inverseMatrix = new THREE.Matrix4(); + var ray = new THREE.Ray(); + + return function ( raycaster, intersects ) { + + var object = this; + var geometry = object.geometry; + var threshold = raycaster.params.PointCloud.threshold; + + inverseMatrix.getInverse( this.matrixWorld ); + ray.copy( raycaster.ray ).applyMatrix4( inverseMatrix ); + + if ( geometry.boundingBox !== null ) { + + if ( ray.isIntersectionBox( geometry.boundingBox ) === false ) { + + return; + + } + + } + + var localThreshold = threshold / ( ( this.scale.x + this.scale.y + this.scale.z ) / 3 ); + var position = new THREE.Vector3(); + + var testPoint = function ( point, index ) { + + var rayPointDistance = ray.distanceToPoint( point ); + + if ( rayPointDistance < localThreshold ) { + + var intersectPoint = ray.closestPointToPoint( point ); + intersectPoint.applyMatrix4( object.matrixWorld ); + + var distance = raycaster.ray.origin.distanceTo( intersectPoint ); + + intersects.push( { + + distance: distance, + distanceToRay: rayPointDistance, + point: intersectPoint.clone(), + index: index, + face: null, + object: object + + } ); + + } + + }; + + if ( geometry instanceof THREE.BufferGeometry ) { + + var attributes = geometry.attributes; + var positions = attributes.position.array; + + if ( attributes.index !== undefined ) { + + var indices = attributes.index.array; + var offsets = geometry.offsets; + + if ( offsets.length === 0 ) { + + var offset = { + start: 0, + count: indices.length, + index: 0 + }; + + offsets = [ offset ]; + + } + + for ( var oi = 0, ol = offsets.length; oi < ol; ++ oi ) { + + var start = offsets[ oi ].start; + var count = offsets[ oi ].count; + var index = offsets[ oi ].index; + + for ( var i = start, il = start + count; i < il; i ++ ) { + + var a = index + indices[ i ]; + + position.fromArray( positions, a * 3 ); + + testPoint( position, a ); + + } + + } + + } else { + + var pointCount = positions.length / 3; + + for ( var i = 0; i < pointCount; i ++ ) { + + position.set( + positions[ 3 * i ], + positions[ 3 * i + 1 ], + positions[ 3 * i + 2 ] + ); + + testPoint( position, i ); + + } + + } + + } else { + + var vertices = this.geometry.vertices; + + for ( var i = 0; i < vertices.length; i ++ ) { + + testPoint( vertices[ i ], i ); + + } + + } + + }; + +}() ); + +THREE.PointCloud.prototype.clone = function ( object ) { + + if ( object === undefined ) object = new THREE.PointCloud( this.geometry, this.material ); + + THREE.Object3D.prototype.clone.call( this, object ); + + return object; + +}; + +// Backwards compatibility + +THREE.ParticleSystem = function ( geometry, material ) { + + THREE.warn( 'THREE.ParticleSystem has been renamed to THREE.PointCloud.' ); + return new THREE.PointCloud( geometry, material ); + +}; + +// File:src/objects/Line.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.Line = function ( geometry, material, mode ) { + + THREE.Object3D.call( this ); + + this.type = 'Line'; + + this.geometry = geometry !== undefined ? geometry : new THREE.Geometry(); + this.material = material !== undefined ? material : new THREE.LineBasicMaterial( { color: Math.random() * 0xffffff } ); + + this.mode = mode !== undefined ? mode : THREE.LineStrip; + +}; + +THREE.LineStrip = 0; +THREE.LinePieces = 1; + +THREE.Line.prototype = Object.create( THREE.Object3D.prototype ); +THREE.Line.prototype.constructor = THREE.Line; + +THREE.Line.prototype.raycast = ( function () { + + var inverseMatrix = new THREE.Matrix4(); + var ray = new THREE.Ray(); + var sphere = new THREE.Sphere(); + + return function ( raycaster, intersects ) { + + var precision = raycaster.linePrecision; + var precisionSq = precision * precision; + + var geometry = this.geometry; + + if ( geometry.boundingSphere === null ) geometry.computeBoundingSphere(); + + // Checking boundingSphere distance to ray + + sphere.copy( geometry.boundingSphere ); + sphere.applyMatrix4( this.matrixWorld ); + + if ( raycaster.ray.isIntersectionSphere( sphere ) === false ) { + + return; + + } + + inverseMatrix.getInverse( this.matrixWorld ); + ray.copy( raycaster.ray ).applyMatrix4( inverseMatrix ); + + var vStart = new THREE.Vector3(); + var vEnd = new THREE.Vector3(); + var interSegment = new THREE.Vector3(); + var interRay = new THREE.Vector3(); + var step = this.mode === THREE.LineStrip ? 1 : 2; + + if ( geometry instanceof THREE.BufferGeometry ) { + + var attributes = geometry.attributes; + + if ( attributes.index !== undefined ) { + + var indices = attributes.index.array; + var positions = attributes.position.array; + var offsets = geometry.offsets; + + if ( offsets.length === 0 ) { + + offsets = [ { start: 0, count: indices.length, index: 0 } ]; + + } + + for ( var oi = 0; oi < offsets.length; oi ++) { + + var start = offsets[ oi ].start; + var count = offsets[ oi ].count; + var index = offsets[ oi ].index; + + for ( var i = start; i < start + count - 1; i += step ) { + + var a = index + indices[ i ]; + var b = index + indices[ i + 1 ]; + + vStart.fromArray( positions, a * 3 ); + vEnd.fromArray( positions, b * 3 ); + + var distSq = ray.distanceSqToSegment( vStart, vEnd, interRay, interSegment ); + + if ( distSq > precisionSq ) continue; + + var distance = ray.origin.distanceTo( interRay ); + + if ( distance < raycaster.near || distance > raycaster.far ) continue; + + intersects.push( { + + distance: distance, + // What do we want? intersection point on the ray or on the segment?? + // point: raycaster.ray.at( distance ), + point: interSegment.clone().applyMatrix4( this.matrixWorld ), + index: i, + offsetIndex: oi, + face: null, + faceIndex: null, + object: this + + } ); + + } + + } + + } else { + + var positions = attributes.position.array; + + for ( var i = 0; i < positions.length / 3 - 1; i += step ) { + + vStart.fromArray( positions, 3 * i ); + vEnd.fromArray( positions, 3 * i + 3 ); + + var distSq = ray.distanceSqToSegment( vStart, vEnd, interRay, interSegment ); + + if ( distSq > precisionSq ) continue; + + var distance = ray.origin.distanceTo( interRay ); + + if ( distance < raycaster.near || distance > raycaster.far ) continue; + + intersects.push( { + + distance: distance, + // What do we want? intersection point on the ray or on the segment?? + // point: raycaster.ray.at( distance ), + point: interSegment.clone().applyMatrix4( this.matrixWorld ), + index: i, + face: null, + faceIndex: null, + object: this + + } ); + + } + + } + + } else if ( geometry instanceof THREE.Geometry ) { + + var vertices = geometry.vertices; + var nbVertices = vertices.length; + + for ( var i = 0; i < nbVertices - 1; i += step ) { + + var distSq = ray.distanceSqToSegment( vertices[ i ], vertices[ i + 1 ], interRay, interSegment ); + + if ( distSq > precisionSq ) continue; + + var distance = ray.origin.distanceTo( interRay ); + + if ( distance < raycaster.near || distance > raycaster.far ) continue; + + intersects.push( { + + distance: distance, + // What do we want? intersection point on the ray or on the segment?? + // point: raycaster.ray.at( distance ), + point: interSegment.clone().applyMatrix4( this.matrixWorld ), + index: i, + face: null, + faceIndex: null, + object: this + + } ); + + } + + } + + }; + +}() ); + +THREE.Line.prototype.clone = function ( object ) { + + if ( object === undefined ) object = new THREE.Line( this.geometry, this.material, this.mode ); + + THREE.Object3D.prototype.clone.call( this, object ); + + return object; + +}; + +// File:src/objects/Mesh.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * @author mikael emtinger / http://gomo.se/ + * @author jonobr1 / http://jonobr1.com/ + */ + +THREE.Mesh = function ( geometry, material ) { + + THREE.Object3D.call( this ); + + this.type = 'Mesh'; + + this.geometry = geometry !== undefined ? geometry : new THREE.Geometry(); + this.material = material !== undefined ? material : new THREE.MeshBasicMaterial( { color: Math.random() * 0xffffff } ); + + this.updateMorphTargets(); + +}; + +THREE.Mesh.prototype = Object.create( THREE.Object3D.prototype ); +THREE.Mesh.prototype.constructor = THREE.Mesh; + +THREE.Mesh.prototype.updateMorphTargets = function () { + + if ( this.geometry.morphTargets !== undefined && this.geometry.morphTargets.length > 0 ) { + + this.morphTargetBase = - 1; + this.morphTargetForcedOrder = []; + this.morphTargetInfluences = []; + this.morphTargetDictionary = {}; + + for ( var m = 0, ml = this.geometry.morphTargets.length; m < ml; m ++ ) { + + this.morphTargetInfluences.push( 0 ); + this.morphTargetDictionary[ this.geometry.morphTargets[ m ].name ] = m; + + } + + } + +}; + +THREE.Mesh.prototype.getMorphTargetIndexByName = function ( name ) { + + if ( this.morphTargetDictionary[ name ] !== undefined ) { + + return this.morphTargetDictionary[ name ]; + + } + + THREE.warn( 'THREE.Mesh.getMorphTargetIndexByName: morph target ' + name + ' does not exist. Returning 0.' ); + + return 0; + +}; + + +THREE.Mesh.prototype.raycast = ( function () { + + var inverseMatrix = new THREE.Matrix4(); + var ray = new THREE.Ray(); + var sphere = new THREE.Sphere(); + + var vA = new THREE.Vector3(); + var vB = new THREE.Vector3(); + var vC = new THREE.Vector3(); + + return function ( raycaster, intersects ) { + + var geometry = this.geometry; + + // Checking boundingSphere distance to ray + + if ( geometry.boundingSphere === null ) geometry.computeBoundingSphere(); + + sphere.copy( geometry.boundingSphere ); + sphere.applyMatrix4( this.matrixWorld ); + + if ( raycaster.ray.isIntersectionSphere( sphere ) === false ) { + + return; + + } + + // Check boundingBox before continuing + + inverseMatrix.getInverse( this.matrixWorld ); + ray.copy( raycaster.ray ).applyMatrix4( inverseMatrix ); + + if ( geometry.boundingBox !== null ) { + + if ( ray.isIntersectionBox( geometry.boundingBox ) === false ) { + + return; + + } + + } + + if ( geometry instanceof THREE.BufferGeometry ) { + + var material = this.material; + + if ( material === undefined ) return; + + var attributes = geometry.attributes; + + var a, b, c; + var precision = raycaster.precision; + + if ( attributes.index !== undefined ) { + + var indices = attributes.index.array; + var positions = attributes.position.array; + var offsets = geometry.offsets; + + if ( offsets.length === 0 ) { + + offsets = [ { start: 0, count: indices.length, index: 0 } ]; + + } + + for ( var oi = 0, ol = offsets.length; oi < ol; ++ oi ) { + + var start = offsets[ oi ].start; + var count = offsets[ oi ].count; + var index = offsets[ oi ].index; + + for ( var i = start, il = start + count; i < il; i += 3 ) { + + a = index + indices[ i ]; + b = index + indices[ i + 1 ]; + c = index + indices[ i + 2 ]; + + vA.fromArray( positions, a * 3 ); + vB.fromArray( positions, b * 3 ); + vC.fromArray( positions, c * 3 ); + + if ( material.side === THREE.BackSide ) { + + var intersectionPoint = ray.intersectTriangle( vC, vB, vA, true ); + + } else { + + var intersectionPoint = ray.intersectTriangle( vA, vB, vC, material.side !== THREE.DoubleSide ); + + } + + if ( intersectionPoint === null ) continue; + + intersectionPoint.applyMatrix4( this.matrixWorld ); + + var distance = raycaster.ray.origin.distanceTo( intersectionPoint ); + + if ( distance < precision || distance < raycaster.near || distance > raycaster.far ) continue; + + intersects.push( { + + distance: distance, + point: intersectionPoint, + face: new THREE.Face3( a, b, c, THREE.Triangle.normal( vA, vB, vC ) ), + faceIndex: null, + object: this + + } ); + + } + + } + + } else { + + var positions = attributes.position.array; + + for ( var i = 0, j = 0, il = positions.length; i < il; i += 3, j += 9 ) { + + a = i; + b = i + 1; + c = i + 2; + + vA.fromArray( positions, j ); + vB.fromArray( positions, j + 3 ); + vC.fromArray( positions, j + 6 ); + + if ( material.side === THREE.BackSide ) { + + var intersectionPoint = ray.intersectTriangle( vC, vB, vA, true ); + + } else { + + var intersectionPoint = ray.intersectTriangle( vA, vB, vC, material.side !== THREE.DoubleSide ); + + } + + if ( intersectionPoint === null ) continue; + + intersectionPoint.applyMatrix4( this.matrixWorld ); + + var distance = raycaster.ray.origin.distanceTo( intersectionPoint ); + + if ( distance < precision || distance < raycaster.near || distance > raycaster.far ) continue; + + intersects.push( { + + distance: distance, + point: intersectionPoint, + face: new THREE.Face3( a, b, c, THREE.Triangle.normal( vA, vB, vC ) ), + faceIndex: null, + object: this + + } ); + + } + + } + + } else if ( geometry instanceof THREE.Geometry ) { + + var isFaceMaterial = this.material instanceof THREE.MeshFaceMaterial; + var objectMaterials = isFaceMaterial === true ? this.material.materials : null; + + var a, b, c; + var precision = raycaster.precision; + + var vertices = geometry.vertices; + + for ( var f = 0, fl = geometry.faces.length; f < fl; f ++ ) { + + var face = geometry.faces[ f ]; + + var material = isFaceMaterial === true ? objectMaterials[ face.materialIndex ] : this.material; + + if ( material === undefined ) continue; + + a = vertices[ face.a ]; + b = vertices[ face.b ]; + c = vertices[ face.c ]; + + if ( material.morphTargets === true ) { + + var morphTargets = geometry.morphTargets; + var morphInfluences = this.morphTargetInfluences; + + vA.set( 0, 0, 0 ); + vB.set( 0, 0, 0 ); + vC.set( 0, 0, 0 ); + + for ( var t = 0, tl = morphTargets.length; t < tl; t ++ ) { + + var influence = morphInfluences[ t ]; + + if ( influence === 0 ) continue; + + var targets = morphTargets[ t ].vertices; + + vA.x += ( targets[ face.a ].x - a.x ) * influence; + vA.y += ( targets[ face.a ].y - a.y ) * influence; + vA.z += ( targets[ face.a ].z - a.z ) * influence; + + vB.x += ( targets[ face.b ].x - b.x ) * influence; + vB.y += ( targets[ face.b ].y - b.y ) * influence; + vB.z += ( targets[ face.b ].z - b.z ) * influence; + + vC.x += ( targets[ face.c ].x - c.x ) * influence; + vC.y += ( targets[ face.c ].y - c.y ) * influence; + vC.z += ( targets[ face.c ].z - c.z ) * influence; + + } + + vA.add( a ); + vB.add( b ); + vC.add( c ); + + a = vA; + b = vB; + c = vC; + + } + + if ( material.side === THREE.BackSide ) { + + var intersectionPoint = ray.intersectTriangle( c, b, a, true ); + + } else { + + var intersectionPoint = ray.intersectTriangle( a, b, c, material.side !== THREE.DoubleSide ); + + } + + if ( intersectionPoint === null ) continue; + + intersectionPoint.applyMatrix4( this.matrixWorld ); + + var distance = raycaster.ray.origin.distanceTo( intersectionPoint ); + + if ( distance < precision || distance < raycaster.near || distance > raycaster.far ) continue; + + intersects.push( { + + distance: distance, + point: intersectionPoint, + face: face, + faceIndex: f, + object: this + + } ); + + } + + } + + }; + +}() ); + +THREE.Mesh.prototype.clone = function ( object, recursive ) { + + if ( object === undefined ) object = new THREE.Mesh( this.geometry, this.material ); + + THREE.Object3D.prototype.clone.call( this, object, recursive ); + + return object; + +}; + +// File:src/objects/Bone.js + +/** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + * @author ikerr / http://verold.com + */ + +THREE.Bone = function ( skin ) { + + THREE.Object3D.call( this ); + + this.type = 'Bone'; + + this.skin = skin; + +}; + +THREE.Bone.prototype = Object.create( THREE.Object3D.prototype ); +THREE.Bone.prototype.constructor = THREE.Bone; + +// File:src/objects/Skeleton.js + +/** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + * @author michael guerrero / http://realitymeltdown.com + * @author ikerr / http://verold.com + */ + +THREE.Skeleton = function ( bones, boneInverses, useVertexTexture ) { + + this.useVertexTexture = useVertexTexture !== undefined ? useVertexTexture : true; + + this.identityMatrix = new THREE.Matrix4(); + + // copy the bone array + + bones = bones || []; + + this.bones = bones.slice( 0 ); + + // create a bone texture or an array of floats + + if ( this.useVertexTexture ) { + + // layout (1 matrix = 4 pixels) + // RGBA RGBA RGBA RGBA (=> column1, column2, column3, column4) + // with 8x8 pixel texture max 16 bones (8 * 8 / 4) + // 16x16 pixel texture max 64 bones (16 * 16 / 4) + // 32x32 pixel texture max 256 bones (32 * 32 / 4) + // 64x64 pixel texture max 1024 bones (64 * 64 / 4) + + var size; + + if ( this.bones.length > 256 ) + size = 64; + else if ( this.bones.length > 64 ) + size = 32; + else if ( this.bones.length > 16 ) + size = 16; + else + size = 8; + + this.boneTextureWidth = size; + this.boneTextureHeight = size; + + this.boneMatrices = new Float32Array( this.boneTextureWidth * this.boneTextureHeight * 4 ); // 4 floats per RGBA pixel + this.boneTexture = new THREE.DataTexture( this.boneMatrices, this.boneTextureWidth, this.boneTextureHeight, THREE.RGBAFormat, THREE.FloatType ); + this.boneTexture.minFilter = THREE.NearestFilter; + this.boneTexture.magFilter = THREE.NearestFilter; + this.boneTexture.generateMipmaps = false; + this.boneTexture.flipY = false; + + } else { + + this.boneMatrices = new Float32Array( 16 * this.bones.length ); + + } + + // use the supplied bone inverses or calculate the inverses + + if ( boneInverses === undefined ) { + + this.calculateInverses(); + + } else { + + if ( this.bones.length === boneInverses.length ) { + + this.boneInverses = boneInverses.slice( 0 ); + + } else { + + THREE.warn( 'THREE.Skeleton bonInverses is the wrong length.' ); + + this.boneInverses = []; + + for ( var b = 0, bl = this.bones.length; b < bl; b ++ ) { + + this.boneInverses.push( new THREE.Matrix4() ); + + } + + } + + } + +}; + +THREE.Skeleton.prototype.calculateInverses = function () { + + this.boneInverses = []; + + for ( var b = 0, bl = this.bones.length; b < bl; b ++ ) { + + var inverse = new THREE.Matrix4(); + + if ( this.bones[ b ] ) { + + inverse.getInverse( this.bones[ b ].matrixWorld ); + + } + + this.boneInverses.push( inverse ); + + } + +}; + +THREE.Skeleton.prototype.pose = function () { + + var bone; + + // recover the bind-time world matrices + + for ( var b = 0, bl = this.bones.length; b < bl; b ++ ) { + + bone = this.bones[ b ]; + + if ( bone ) { + + bone.matrixWorld.getInverse( this.boneInverses[ b ] ); + + } + + } + + // compute the local matrices, positions, rotations and scales + + for ( var b = 0, bl = this.bones.length; b < bl; b ++ ) { + + bone = this.bones[ b ]; + + if ( bone ) { + + if ( bone.parent ) { + + bone.matrix.getInverse( bone.parent.matrixWorld ); + bone.matrix.multiply( bone.matrixWorld ); + + } else { + + bone.matrix.copy( bone.matrixWorld ); + + } + + bone.matrix.decompose( bone.position, bone.quaternion, bone.scale ); + + } + + } + +}; + +THREE.Skeleton.prototype.update = ( function () { + + var offsetMatrix = new THREE.Matrix4(); + + return function () { + + // flatten bone matrices to array + + for ( var b = 0, bl = this.bones.length; b < bl; b ++ ) { + + // compute the offset between the current and the original transform + + var matrix = this.bones[ b ] ? this.bones[ b ].matrixWorld : this.identityMatrix; + + offsetMatrix.multiplyMatrices( matrix, this.boneInverses[ b ] ); + offsetMatrix.flattenToArrayOffset( this.boneMatrices, b * 16 ); + + } + + if ( this.useVertexTexture ) { + + this.boneTexture.needsUpdate = true; + + } + + }; + +} )(); + + +// File:src/objects/SkinnedMesh.js + +/** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + * @author ikerr / http://verold.com + */ + +THREE.SkinnedMesh = function ( geometry, material, useVertexTexture ) { + + THREE.Mesh.call( this, geometry, material ); + + this.type = 'SkinnedMesh'; + + this.bindMode = "attached"; + this.bindMatrix = new THREE.Matrix4(); + this.bindMatrixInverse = new THREE.Matrix4(); + + // init bones + + // TODO: remove bone creation as there is no reason (other than + // convenience) for THREE.SkinnedMesh to do this. + + var bones = []; + + if ( this.geometry && this.geometry.bones !== undefined ) { + + var bone, gbone, p, q, s; + + for ( var b = 0, bl = this.geometry.bones.length; b < bl; ++ b ) { + + gbone = this.geometry.bones[ b ]; + + p = gbone.pos; + q = gbone.rotq; + s = gbone.scl; + + bone = new THREE.Bone( this ); + bones.push( bone ); + + bone.name = gbone.name; + bone.position.set( p[ 0 ], p[ 1 ], p[ 2 ] ); + bone.quaternion.set( q[ 0 ], q[ 1 ], q[ 2 ], q[ 3 ] ); + + if ( s !== undefined ) { + + bone.scale.set( s[ 0 ], s[ 1 ], s[ 2 ] ); + + } else { + + bone.scale.set( 1, 1, 1 ); + + } + + } + + for ( var b = 0, bl = this.geometry.bones.length; b < bl; ++ b ) { + + gbone = this.geometry.bones[ b ]; + + if ( gbone.parent !== - 1 ) { + + bones[ gbone.parent ].add( bones[ b ] ); + + } else { + + this.add( bones[ b ] ); + + } + + } + + } + + this.normalizeSkinWeights(); + + this.updateMatrixWorld( true ); + this.bind( new THREE.Skeleton( bones, undefined, useVertexTexture ) ); + +}; + + +THREE.SkinnedMesh.prototype = Object.create( THREE.Mesh.prototype ); +THREE.SkinnedMesh.prototype.constructor = THREE.SkinnedMesh; + +THREE.SkinnedMesh.prototype.bind = function( skeleton, bindMatrix ) { + + this.skeleton = skeleton; + + if ( bindMatrix === undefined ) { + + this.updateMatrixWorld( true ); + + bindMatrix = this.matrixWorld; + + } + + this.bindMatrix.copy( bindMatrix ); + this.bindMatrixInverse.getInverse( bindMatrix ); + +}; + +THREE.SkinnedMesh.prototype.pose = function () { + + this.skeleton.pose(); + +}; + +THREE.SkinnedMesh.prototype.normalizeSkinWeights = function () { + + if ( this.geometry instanceof THREE.Geometry ) { + + for ( var i = 0; i < this.geometry.skinIndices.length; i ++ ) { + + var sw = this.geometry.skinWeights[ i ]; + + var scale = 1.0 / sw.lengthManhattan(); + + if ( scale !== Infinity ) { + + sw.multiplyScalar( scale ); + + } else { + + sw.set( 1 ); // this will be normalized by the shader anyway + + } + + } + + } else { + + // skinning weights assumed to be normalized for THREE.BufferGeometry + + } + +}; + +THREE.SkinnedMesh.prototype.updateMatrixWorld = function( force ) { + + THREE.Mesh.prototype.updateMatrixWorld.call( this, true ); + + if ( this.bindMode === "attached" ) { + + this.bindMatrixInverse.getInverse( this.matrixWorld ); + + } else if ( this.bindMode === "detached" ) { + + this.bindMatrixInverse.getInverse( this.bindMatrix ); + + } else { + + THREE.warn( 'THREE.SkinnedMesh unreckognized bindMode: ' + this.bindMode ); + + } + +}; + +THREE.SkinnedMesh.prototype.clone = function( object ) { + + if ( object === undefined ) { + + object = new THREE.SkinnedMesh( this.geometry, this.material, this.useVertexTexture ); + + } + + THREE.Mesh.prototype.clone.call( this, object ); + + return object; + +}; + + +// File:src/objects/MorphAnimMesh.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.MorphAnimMesh = function ( geometry, material ) { + + THREE.Mesh.call( this, geometry, material ); + + this.type = 'MorphAnimMesh'; + + // API + + this.duration = 1000; // milliseconds + this.mirroredLoop = false; + this.time = 0; + + // internals + + this.lastKeyframe = 0; + this.currentKeyframe = 0; + + this.direction = 1; + this.directionBackwards = false; + + this.setFrameRange( 0, this.geometry.morphTargets.length - 1 ); + +}; + +THREE.MorphAnimMesh.prototype = Object.create( THREE.Mesh.prototype ); +THREE.MorphAnimMesh.prototype.constructor = THREE.MorphAnimMesh; + +THREE.MorphAnimMesh.prototype.setFrameRange = function ( start, end ) { + + this.startKeyframe = start; + this.endKeyframe = end; + + this.length = this.endKeyframe - this.startKeyframe + 1; + +}; + +THREE.MorphAnimMesh.prototype.setDirectionForward = function () { + + this.direction = 1; + this.directionBackwards = false; + +}; + +THREE.MorphAnimMesh.prototype.setDirectionBackward = function () { + + this.direction = - 1; + this.directionBackwards = true; + +}; + +THREE.MorphAnimMesh.prototype.parseAnimations = function () { + + var geometry = this.geometry; + + if ( ! geometry.animations ) geometry.animations = {}; + + var firstAnimation, animations = geometry.animations; + + var pattern = /([a-z]+)_?(\d+)/; + + for ( var i = 0, il = geometry.morphTargets.length; i < il; i ++ ) { + + var morph = geometry.morphTargets[ i ]; + var parts = morph.name.match( pattern ); + + if ( parts && parts.length > 1 ) { + + var label = parts[ 1 ]; + + if ( ! animations[ label ] ) animations[ label ] = { start: Infinity, end: - Infinity }; + + var animation = animations[ label ]; + + if ( i < animation.start ) animation.start = i; + if ( i > animation.end ) animation.end = i; + + if ( ! firstAnimation ) firstAnimation = label; + + } + + } + + geometry.firstAnimation = firstAnimation; + +}; + +THREE.MorphAnimMesh.prototype.setAnimationLabel = function ( label, start, end ) { + + if ( ! this.geometry.animations ) this.geometry.animations = {}; + + this.geometry.animations[ label ] = { start: start, end: end }; + +}; + +THREE.MorphAnimMesh.prototype.playAnimation = function ( label, fps ) { + + var animation = this.geometry.animations[ label ]; + + if ( animation ) { + + this.setFrameRange( animation.start, animation.end ); + this.duration = 1000 * ( ( animation.end - animation.start ) / fps ); + this.time = 0; + + } else { + + THREE.warn( 'THREE.MorphAnimMesh: animation[' + label + '] undefined in .playAnimation()' ); + + } + +}; + +THREE.MorphAnimMesh.prototype.updateAnimation = function ( delta ) { + + var frameTime = this.duration / this.length; + + this.time += this.direction * delta; + + if ( this.mirroredLoop ) { + + if ( this.time > this.duration || this.time < 0 ) { + + this.direction *= - 1; + + if ( this.time > this.duration ) { + + this.time = this.duration; + this.directionBackwards = true; + + } + + if ( this.time < 0 ) { + + this.time = 0; + this.directionBackwards = false; + + } + + } + + } else { + + this.time = this.time % this.duration; + + if ( this.time < 0 ) this.time += this.duration; + + } + + var keyframe = this.startKeyframe + THREE.Math.clamp( Math.floor( this.time / frameTime ), 0, this.length - 1 ); + + if ( keyframe !== this.currentKeyframe ) { + + this.morphTargetInfluences[ this.lastKeyframe ] = 0; + this.morphTargetInfluences[ this.currentKeyframe ] = 1; + + this.morphTargetInfluences[ keyframe ] = 0; + + this.lastKeyframe = this.currentKeyframe; + this.currentKeyframe = keyframe; + + } + + var mix = ( this.time % frameTime ) / frameTime; + + if ( this.directionBackwards ) { + + mix = 1 - mix; + + } + + this.morphTargetInfluences[ this.currentKeyframe ] = mix; + this.morphTargetInfluences[ this.lastKeyframe ] = 1 - mix; + +}; + +THREE.MorphAnimMesh.prototype.interpolateTargets = function ( a, b, t ) { + + var influences = this.morphTargetInfluences; + + for ( var i = 0, l = influences.length; i < l; i ++ ) { + + influences[ i ] = 0; + + } + + if ( a > -1 ) influences[ a ] = 1 - t; + if ( b > -1 ) influences[ b ] = t; + +}; + +THREE.MorphAnimMesh.prototype.clone = function ( object ) { + + if ( object === undefined ) object = new THREE.MorphAnimMesh( this.geometry, this.material ); + + object.duration = this.duration; + object.mirroredLoop = this.mirroredLoop; + object.time = this.time; + + object.lastKeyframe = this.lastKeyframe; + object.currentKeyframe = this.currentKeyframe; + + object.direction = this.direction; + object.directionBackwards = this.directionBackwards; + + THREE.Mesh.prototype.clone.call( this, object ); + + return object; + +}; + +// File:src/objects/LOD.js + +/** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.LOD = function () { + + THREE.Object3D.call( this ); + + this.objects = []; + +}; + + +THREE.LOD.prototype = Object.create( THREE.Object3D.prototype ); +THREE.LOD.prototype.constructor = THREE.LOD; + +THREE.LOD.prototype.addLevel = function ( object, distance ) { + + if ( distance === undefined ) distance = 0; + + distance = Math.abs( distance ); + + for ( var l = 0; l < this.objects.length; l ++ ) { + + if ( distance < this.objects[ l ].distance ) { + + break; + + } + + } + + this.objects.splice( l, 0, { distance: distance, object: object } ); + this.add( object ); + +}; + +THREE.LOD.prototype.getObjectForDistance = function ( distance ) { + + for ( var i = 1, l = this.objects.length; i < l; i ++ ) { + + if ( distance < this.objects[ i ].distance ) { + + break; + + } + + } + + return this.objects[ i - 1 ].object; + +}; + +THREE.LOD.prototype.raycast = ( function () { + + var matrixPosition = new THREE.Vector3(); + + return function ( raycaster, intersects ) { + + matrixPosition.setFromMatrixPosition( this.matrixWorld ); + + var distance = raycaster.ray.origin.distanceTo( matrixPosition ); + + this.getObjectForDistance( distance ).raycast( raycaster, intersects ); + + }; + +}() ); + +THREE.LOD.prototype.update = function () { + + var v1 = new THREE.Vector3(); + var v2 = new THREE.Vector3(); + + return function ( camera ) { + + if ( this.objects.length > 1 ) { + + v1.setFromMatrixPosition( camera.matrixWorld ); + v2.setFromMatrixPosition( this.matrixWorld ); + + var distance = v1.distanceTo( v2 ); + + this.objects[ 0 ].object.visible = true; + + for ( var i = 1, l = this.objects.length; i < l; i ++ ) { + + if ( distance >= this.objects[ i ].distance ) { + + this.objects[ i - 1 ].object.visible = false; + this.objects[ i ].object.visible = true; + + } else { + + break; + + } + + } + + for ( ; i < l; i ++ ) { + + this.objects[ i ].object.visible = false; + + } + + } + + }; + +}(); + +THREE.LOD.prototype.clone = function ( object ) { + + if ( object === undefined ) object = new THREE.LOD(); + + THREE.Object3D.prototype.clone.call( this, object ); + + for ( var i = 0, l = this.objects.length; i < l; i ++ ) { + var x = this.objects[ i ].object.clone(); + x.visible = i === 0; + object.addLevel( x, this.objects[ i ].distance ); + } + + return object; + +}; + +// File:src/objects/Sprite.js + +/** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.Sprite = ( function () { + + var indices = new Uint16Array( [ 0, 1, 2, 0, 2, 3 ] ); + var vertices = new Float32Array( [ - 0.5, - 0.5, 0, 0.5, - 0.5, 0, 0.5, 0.5, 0, - 0.5, 0.5, 0 ] ); + var uvs = new Float32Array( [ 0, 0, 1, 0, 1, 1, 0, 1 ] ); + + var geometry = new THREE.BufferGeometry(); + geometry.addAttribute( 'index', new THREE.BufferAttribute( indices, 1 ) ); + geometry.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) ); + geometry.addAttribute( 'uv', new THREE.BufferAttribute( uvs, 2 ) ); + + return function ( material ) { + + THREE.Object3D.call( this ); + + this.type = 'Sprite'; + + this.geometry = geometry; + this.material = ( material !== undefined ) ? material : new THREE.SpriteMaterial(); + + }; + +} )(); + +THREE.Sprite.prototype = Object.create( THREE.Object3D.prototype ); +THREE.Sprite.prototype.constructor = THREE.Sprite; + +THREE.Sprite.prototype.raycast = ( function () { + + var matrixPosition = new THREE.Vector3(); + + return function ( raycaster, intersects ) { + + matrixPosition.setFromMatrixPosition( this.matrixWorld ); + + var distance = raycaster.ray.distanceToPoint( matrixPosition ); + + if ( distance > this.scale.x ) { + + return; + + } + + intersects.push( { + + distance: distance, + point: this.position, + face: null, + object: this + + } ); + + }; + +}() ); + +THREE.Sprite.prototype.clone = function ( object ) { + + if ( object === undefined ) object = new THREE.Sprite( this.material ); + + THREE.Object3D.prototype.clone.call( this, object ); + + return object; + +}; + +// Backwards compatibility + +THREE.Particle = THREE.Sprite; + +// File:src/objects/LensFlare.js + +/** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.LensFlare = function ( texture, size, distance, blending, color ) { + + THREE.Object3D.call( this ); + + this.lensFlares = []; + + this.positionScreen = new THREE.Vector3(); + this.customUpdateCallback = undefined; + + if ( texture !== undefined ) { + + this.add( texture, size, distance, blending, color ); + + } + +}; + +THREE.LensFlare.prototype = Object.create( THREE.Object3D.prototype ); +THREE.LensFlare.prototype.constructor = THREE.LensFlare; + + +/* + * Add: adds another flare + */ + +THREE.LensFlare.prototype.add = function ( texture, size, distance, blending, color, opacity ) { + + if ( size === undefined ) size = - 1; + if ( distance === undefined ) distance = 0; + if ( opacity === undefined ) opacity = 1; + if ( color === undefined ) color = new THREE.Color( 0xffffff ); + if ( blending === undefined ) blending = THREE.NormalBlending; + + distance = Math.min( distance, Math.max( 0, distance ) ); + + this.lensFlares.push( { + texture: texture, // THREE.Texture + size: size, // size in pixels (-1 = use texture.width) + distance: distance, // distance (0-1) from light source (0=at light source) + x: 0, y: 0, z: 0, // screen position (-1 => 1) z = 0 is ontop z = 1 is back + scale: 1, // scale + rotation: 1, // rotation + opacity: opacity, // opacity + color: color, // color + blending: blending // blending + } ); + +}; + +/* + * Update lens flares update positions on all flares based on the screen position + * Set myLensFlare.customUpdateCallback to alter the flares in your project specific way. + */ + +THREE.LensFlare.prototype.updateLensFlares = function () { + + var f, fl = this.lensFlares.length; + var flare; + var vecX = - this.positionScreen.x * 2; + var vecY = - this.positionScreen.y * 2; + + for ( f = 0; f < fl; f ++ ) { + + flare = this.lensFlares[ f ]; + + flare.x = this.positionScreen.x + vecX * flare.distance; + flare.y = this.positionScreen.y + vecY * flare.distance; + + flare.wantedRotation = flare.x * Math.PI * 0.25; + flare.rotation += ( flare.wantedRotation - flare.rotation ) * 0.25; + + } + +}; + + +// File:src/scenes/Scene.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.Scene = function () { + + THREE.Object3D.call( this ); + + this.type = 'Scene'; + + this.fog = null; + this.overrideMaterial = null; + + this.autoUpdate = true; // checked by the renderer + +}; + +THREE.Scene.prototype = Object.create( THREE.Object3D.prototype ); +THREE.Scene.prototype.constructor = THREE.Scene; + +THREE.Scene.prototype.clone = function ( object ) { + + if ( object === undefined ) object = new THREE.Scene(); + + THREE.Object3D.prototype.clone.call( this, object ); + + if ( this.fog !== null ) object.fog = this.fog.clone(); + if ( this.overrideMaterial !== null ) object.overrideMaterial = this.overrideMaterial.clone(); + + object.autoUpdate = this.autoUpdate; + object.matrixAutoUpdate = this.matrixAutoUpdate; + + return object; + +}; + +// File:src/scenes/Fog.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.Fog = function ( color, near, far ) { + + this.name = ''; + + this.color = new THREE.Color( color ); + + this.near = ( near !== undefined ) ? near : 1; + this.far = ( far !== undefined ) ? far : 1000; + +}; + +THREE.Fog.prototype.clone = function () { + + return new THREE.Fog( this.color.getHex(), this.near, this.far ); + +}; + +// File:src/scenes/FogExp2.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.FogExp2 = function ( color, density ) { + + this.name = ''; + + this.color = new THREE.Color( color ); + this.density = ( density !== undefined ) ? density : 0.00025; + +}; + +THREE.FogExp2.prototype.clone = function () { + + return new THREE.FogExp2( this.color.getHex(), this.density ); + +}; + +// File:src/renderers/shaders/ShaderChunk.js + +THREE.ShaderChunk = {}; + +// File:src/renderers/shaders/ShaderChunk/common.glsl + +THREE.ShaderChunk[ 'common'] = "#define PI 3.14159\n#define PI2 6.28318\n#define RECIPROCAL_PI2 0.15915494\n#define LOG2 1.442695\n#define EPSILON 1e-6\n\nfloat square( in float a ) { return a*a; }\nvec2 square( in vec2 a ) { return vec2( a.x*a.x, a.y*a.y ); }\nvec3 square( in vec3 a ) { return vec3( a.x*a.x, a.y*a.y, a.z*a.z ); }\nvec4 square( in vec4 a ) { return vec4( a.x*a.x, a.y*a.y, a.z*a.z, a.w*a.w ); }\nfloat saturate( in float a ) { return clamp( a, 0.0, 1.0 ); }\nvec2 saturate( in vec2 a ) { return clamp( a, 0.0, 1.0 ); }\nvec3 saturate( in vec3 a ) { return clamp( a, 0.0, 1.0 ); }\nvec4 saturate( in vec4 a ) { return clamp( a, 0.0, 1.0 ); }\nfloat average( in float a ) { return a; }\nfloat average( in vec2 a ) { return ( a.x + a.y) * 0.5; }\nfloat average( in vec3 a ) { return ( a.x + a.y + a.z) / 3.0; }\nfloat average( in vec4 a ) { return ( a.x + a.y + a.z + a.w) * 0.25; }\nfloat whiteCompliment( in float a ) { return saturate( 1.0 - a ); }\nvec2 whiteCompliment( in vec2 a ) { return saturate( vec2(1.0) - a ); }\nvec3 whiteCompliment( in vec3 a ) { return saturate( vec3(1.0) - a ); }\nvec4 whiteCompliment( in vec4 a ) { return saturate( vec4(1.0) - a ); }\nvec3 transformDirection( in vec3 normal, in mat4 matrix ) {\n return normalize( ( matrix * vec4( normal, 0.0 ) ).xyz );\n}\n// http://en.wikibooks.org/wiki/GLSL_Programming/Applying_Matrix_Transformations\nvec3 inverseTransformDirection( in vec3 normal, in mat4 matrix ) {\n return normalize( ( vec4( normal, 0.0 ) * matrix ).xyz );\n}\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal) {\n float distance = dot( planeNormal, point-pointOnPlane );\n return point - distance * planeNormal;\n}\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\n return sign( dot( point - pointOnPlane, planeNormal ) );\n}\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\n return pointOnLine + lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) );\n}\nfloat calcLightAttenuation( float lightDistance, float cutoffDistance, float decayExponent ) {\n if ( decayExponent > 0.0 ) {\n return pow( saturate( 1.0 - lightDistance / cutoffDistance ), decayExponent );\n }\n return 1.0;\n}\n\nvec3 inputToLinear( in vec3 a ) {\n#ifdef GAMMA_INPUT\n return pow( a, vec3( float( GAMMA_FACTOR ) ) );\n#else\n return a;\n#endif\n}\nvec3 linearToOutput( in vec3 a ) {\n#ifdef GAMMA_OUTPUT\n return pow( a, vec3( 1.0 / float( GAMMA_FACTOR ) ) );\n#else\n return a;\n#endif\n}\n"; + +// File:src/renderers/shaders/ShaderChunk/alphatest_fragment.glsl + +THREE.ShaderChunk[ 'alphatest_fragment'] = "#ifdef ALPHATEST\n\n if ( diffuseColor.a < ALPHATEST ) discard;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl + +THREE.ShaderChunk[ 'lights_lambert_vertex'] = "vLightFront = vec3( 0.0 );\n\n#ifdef DOUBLE_SIDED\n\n vLightBack = vec3( 0.0 );\n\n#endif\n\ntransformedNormal = normalize( transformedNormal );\n\n#if MAX_DIR_LIGHTS > 0\n\nfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\n\n vec3 dirVector = transformDirection( directionalLightDirection[ i ], viewMatrix );\n\n float dotProduct = dot( transformedNormal, dirVector );\n vec3 directionalLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\n #ifdef DOUBLE_SIDED\n\n vec3 directionalLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\n #ifdef WRAP_AROUND\n\n vec3 directionalLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\n #endif\n\n #endif\n\n #ifdef WRAP_AROUND\n\n vec3 directionalLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n directionalLightWeighting = mix( directionalLightWeighting, directionalLightWeightingHalf, wrapRGB );\n\n #ifdef DOUBLE_SIDED\n\n directionalLightWeightingBack = mix( directionalLightWeightingBack, directionalLightWeightingHalfBack, wrapRGB );\n\n #endif\n\n #endif\n\n vLightFront += directionalLightColor[ i ] * directionalLightWeighting;\n\n #ifdef DOUBLE_SIDED\n\n vLightBack += directionalLightColor[ i ] * directionalLightWeightingBack;\n\n #endif\n\n}\n\n#endif\n\n#if MAX_POINT_LIGHTS > 0\n\n for( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n\n vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\n vec3 lVector = lPosition.xyz - mvPosition.xyz;\n\n float attenuation = calcLightAttenuation( length( lVector ), pointLightDistance[ i ], pointLightDecay[ i ] );\n\n lVector = normalize( lVector );\n float dotProduct = dot( transformedNormal, lVector );\n\n vec3 pointLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\n #ifdef DOUBLE_SIDED\n\n vec3 pointLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\n #ifdef WRAP_AROUND\n\n vec3 pointLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\n #endif\n\n #endif\n\n #ifdef WRAP_AROUND\n\n vec3 pointLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n pointLightWeighting = mix( pointLightWeighting, pointLightWeightingHalf, wrapRGB );\n\n #ifdef DOUBLE_SIDED\n\n pointLightWeightingBack = mix( pointLightWeightingBack, pointLightWeightingHalfBack, wrapRGB );\n\n #endif\n\n #endif\n\n vLightFront += pointLightColor[ i ] * pointLightWeighting * attenuation;\n\n #ifdef DOUBLE_SIDED\n\n vLightBack += pointLightColor[ i ] * pointLightWeightingBack * attenuation;\n\n #endif\n\n }\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n for( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\n\n vec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\n vec3 lVector = lPosition.xyz - mvPosition.xyz;\n\n float spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - worldPosition.xyz ) );\n\n if ( spotEffect > spotLightAngleCos[ i ] ) {\n\n spotEffect = max( pow( max( spotEffect, 0.0 ), spotLightExponent[ i ] ), 0.0 );\n\n float attenuation = calcLightAttenuation( length( lVector ), spotLightDistance[ i ], spotLightDecay[ i ] );\n\n lVector = normalize( lVector );\n\n float dotProduct = dot( transformedNormal, lVector );\n vec3 spotLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\n #ifdef DOUBLE_SIDED\n\n vec3 spotLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\n #ifdef WRAP_AROUND\n\n vec3 spotLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\n #endif\n\n #endif\n\n #ifdef WRAP_AROUND\n\n vec3 spotLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n spotLightWeighting = mix( spotLightWeighting, spotLightWeightingHalf, wrapRGB );\n\n #ifdef DOUBLE_SIDED\n\n spotLightWeightingBack = mix( spotLightWeightingBack, spotLightWeightingHalfBack, wrapRGB );\n\n #endif\n\n #endif\n\n vLightFront += spotLightColor[ i ] * spotLightWeighting * attenuation * spotEffect;\n\n #ifdef DOUBLE_SIDED\n\n vLightBack += spotLightColor[ i ] * spotLightWeightingBack * attenuation * spotEffect;\n\n #endif\n\n }\n\n }\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n for( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\n\n vec3 lVector = transformDirection( hemisphereLightDirection[ i ], viewMatrix );\n\n float dotProduct = dot( transformedNormal, lVector );\n\n float hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\n float hemiDiffuseWeightBack = -0.5 * dotProduct + 0.5;\n\n vLightFront += mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\n\n #ifdef DOUBLE_SIDED\n\n vLightBack += mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeightBack );\n\n #endif\n\n }\n\n#endif\n\nvLightFront += ambientLightColor;\n\n#ifdef DOUBLE_SIDED\n\n vLightBack += ambientLightColor;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/map_particle_pars_fragment.glsl + +THREE.ShaderChunk[ 'map_particle_pars_fragment'] = "#ifdef USE_MAP\n\n uniform vec4 offsetRepeat;\n uniform sampler2D map;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/default_vertex.glsl + +THREE.ShaderChunk[ 'default_vertex'] = "#ifdef USE_SKINNING\n\n vec4 mvPosition = modelViewMatrix * skinned;\n\n#elif defined( USE_MORPHTARGETS )\n\n vec4 mvPosition = modelViewMatrix * vec4( morphed, 1.0 );\n\n#else\n\n vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\n#endif\n\ngl_Position = projectionMatrix * mvPosition;\n"; + +// File:src/renderers/shaders/ShaderChunk/map_pars_fragment.glsl + +THREE.ShaderChunk[ 'map_pars_fragment'] = "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n varying vec2 vUv;\n\n#endif\n\n#ifdef USE_MAP\n\n uniform sampler2D map;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/skinnormal_vertex.glsl + +THREE.ShaderChunk[ 'skinnormal_vertex'] = "#ifdef USE_SKINNING\n\n mat4 skinMatrix = mat4( 0.0 );\n skinMatrix += skinWeight.x * boneMatX;\n skinMatrix += skinWeight.y * boneMatY;\n skinMatrix += skinWeight.z * boneMatZ;\n skinMatrix += skinWeight.w * boneMatW;\n skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\n #ifdef USE_MORPHNORMALS\n\n vec4 skinnedNormal = skinMatrix * vec4( morphedNormal, 0.0 );\n\n #else\n\n vec4 skinnedNormal = skinMatrix * vec4( normal, 0.0 );\n\n #endif\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/logdepthbuf_pars_vertex.glsl + +THREE.ShaderChunk[ 'logdepthbuf_pars_vertex'] = "#ifdef USE_LOGDEPTHBUF\n\n #ifdef USE_LOGDEPTHBUF_EXT\n\n varying float vFragDepth;\n\n #endif\n\n uniform float logDepthBufFC;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/lightmap_pars_vertex.glsl + +THREE.ShaderChunk[ 'lightmap_pars_vertex'] = "#ifdef USE_LIGHTMAP\n\n varying vec2 vUv2;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/lights_phong_fragment.glsl + +THREE.ShaderChunk[ 'lights_phong_fragment'] = "#ifndef FLAT_SHADED\n\n vec3 normal = normalize( vNormal );\n\n #ifdef DOUBLE_SIDED\n\n normal = normal * ( -1.0 + 2.0 * float( gl_FrontFacing ) );\n\n #endif\n\n#else\n\n vec3 fdx = dFdx( vViewPosition );\n vec3 fdy = dFdy( vViewPosition );\n vec3 normal = normalize( cross( fdx, fdy ) );\n\n#endif\n\nvec3 viewPosition = normalize( vViewPosition );\n\n#ifdef USE_NORMALMAP\n\n normal = perturbNormal2Arb( -vViewPosition, normal );\n\n#elif defined( USE_BUMPMAP )\n\n normal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n\n#endif\n\nvec3 totalDiffuseLight = vec3( 0.0 );\nvec3 totalSpecularLight = vec3( 0.0 );\n\n#if MAX_POINT_LIGHTS > 0\n\n for ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n\n vec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\n vec3 lVector = lPosition.xyz + vViewPosition.xyz;\n\n float attenuation = calcLightAttenuation( length( lVector ), pointLightDistance[ i ], pointLightDecay[ i ] );\n\n lVector = normalize( lVector );\n\n // diffuse\n\n float dotProduct = dot( normal, lVector );\n\n #ifdef WRAP_AROUND\n\n float pointDiffuseWeightFull = max( dotProduct, 0.0 );\n float pointDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\n vec3 pointDiffuseWeight = mix( vec3( pointDiffuseWeightFull ), vec3( pointDiffuseWeightHalf ), wrapRGB );\n\n #else\n\n float pointDiffuseWeight = max( dotProduct, 0.0 );\n\n #endif\n\n totalDiffuseLight += pointLightColor[ i ] * pointDiffuseWeight * attenuation;\n\n // specular\n\n vec3 pointHalfVector = normalize( lVector + viewPosition );\n float pointDotNormalHalf = max( dot( normal, pointHalfVector ), 0.0 );\n float pointSpecularWeight = specularStrength * max( pow( pointDotNormalHalf, shininess ), 0.0 );\n\n float specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n vec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, pointHalfVector ), 0.0 ), 5.0 );\n totalSpecularLight += schlick * pointLightColor[ i ] * pointSpecularWeight * pointDiffuseWeight * attenuation * specularNormalization;\n\n }\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n for ( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\n\n vec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\n vec3 lVector = lPosition.xyz + vViewPosition.xyz;\n\n float attenuation = calcLightAttenuation( length( lVector ), spotLightDistance[ i ], spotLightDecay[ i ] );\n\n lVector = normalize( lVector );\n\n float spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - vWorldPosition ) );\n\n if ( spotEffect > spotLightAngleCos[ i ] ) {\n\n spotEffect = max( pow( max( spotEffect, 0.0 ), spotLightExponent[ i ] ), 0.0 );\n\n // diffuse\n\n float dotProduct = dot( normal, lVector );\n\n #ifdef WRAP_AROUND\n\n float spotDiffuseWeightFull = max( dotProduct, 0.0 );\n float spotDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\n vec3 spotDiffuseWeight = mix( vec3( spotDiffuseWeightFull ), vec3( spotDiffuseWeightHalf ), wrapRGB );\n\n #else\n\n float spotDiffuseWeight = max( dotProduct, 0.0 );\n\n #endif\n\n totalDiffuseLight += spotLightColor[ i ] * spotDiffuseWeight * attenuation * spotEffect;\n\n // specular\n\n vec3 spotHalfVector = normalize( lVector + viewPosition );\n float spotDotNormalHalf = max( dot( normal, spotHalfVector ), 0.0 );\n float spotSpecularWeight = specularStrength * max( pow( spotDotNormalHalf, shininess ), 0.0 );\n\n float specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n vec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, spotHalfVector ), 0.0 ), 5.0 );\n totalSpecularLight += schlick * spotLightColor[ i ] * spotSpecularWeight * spotDiffuseWeight * attenuation * specularNormalization * spotEffect;\n\n }\n\n }\n\n#endif\n\n#if MAX_DIR_LIGHTS > 0\n\n for( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\n\n vec3 dirVector = transformDirection( directionalLightDirection[ i ], viewMatrix );\n\n // diffuse\n\n float dotProduct = dot( normal, dirVector );\n\n #ifdef WRAP_AROUND\n\n float dirDiffuseWeightFull = max( dotProduct, 0.0 );\n float dirDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\n vec3 dirDiffuseWeight = mix( vec3( dirDiffuseWeightFull ), vec3( dirDiffuseWeightHalf ), wrapRGB );\n\n #else\n\n float dirDiffuseWeight = max( dotProduct, 0.0 );\n\n #endif\n\n totalDiffuseLight += directionalLightColor[ i ] * dirDiffuseWeight;\n\n // specular\n\n vec3 dirHalfVector = normalize( dirVector + viewPosition );\n float dirDotNormalHalf = max( dot( normal, dirHalfVector ), 0.0 );\n float dirSpecularWeight = specularStrength * max( pow( dirDotNormalHalf, shininess ), 0.0 );\n\n /*\n // fresnel term from skin shader\n const float F0 = 0.128;\n\n float base = 1.0 - dot( viewPosition, dirHalfVector );\n float exponential = pow( base, 5.0 );\n\n float fresnel = exponential + F0 * ( 1.0 - exponential );\n */\n\n /*\n // fresnel term from fresnel shader\n const float mFresnelBias = 0.08;\n const float mFresnelScale = 0.3;\n const float mFresnelPower = 5.0;\n\n float fresnel = mFresnelBias + mFresnelScale * pow( 1.0 + dot( normalize( -viewPosition ), normal ), mFresnelPower );\n */\n\n float specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n // dirSpecular += specular * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight * specularNormalization * fresnel;\n\n vec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( dirVector, dirHalfVector ), 0.0 ), 5.0 );\n totalSpecularLight += schlick * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight * specularNormalization;\n\n\n }\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n for( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\n\n vec3 lVector = transformDirection( hemisphereLightDirection[ i ], viewMatrix );\n\n // diffuse\n\n float dotProduct = dot( normal, lVector );\n float hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\n\n vec3 hemiColor = mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\n\n totalDiffuseLight += hemiColor;\n\n // specular (sky light)\n\n vec3 hemiHalfVectorSky = normalize( lVector + viewPosition );\n float hemiDotNormalHalfSky = 0.5 * dot( normal, hemiHalfVectorSky ) + 0.5;\n float hemiSpecularWeightSky = specularStrength * max( pow( max( hemiDotNormalHalfSky, 0.0 ), shininess ), 0.0 );\n\n // specular (ground light)\n\n vec3 lVectorGround = -lVector;\n\n vec3 hemiHalfVectorGround = normalize( lVectorGround + viewPosition );\n float hemiDotNormalHalfGround = 0.5 * dot( normal, hemiHalfVectorGround ) + 0.5;\n float hemiSpecularWeightGround = specularStrength * max( pow( max( hemiDotNormalHalfGround, 0.0 ), shininess ), 0.0 );\n\n float dotProductGround = dot( normal, lVectorGround );\n\n float specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n vec3 schlickSky = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, hemiHalfVectorSky ), 0.0 ), 5.0 );\n vec3 schlickGround = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVectorGround, hemiHalfVectorGround ), 0.0 ), 5.0 );\n totalSpecularLight += hemiColor * specularNormalization * ( schlickSky * hemiSpecularWeightSky * max( dotProduct, 0.0 ) + schlickGround * hemiSpecularWeightGround * max( dotProductGround, 0.0 ) );\n\n }\n\n#endif\n\n#ifdef METAL\n\n outgoingLight += diffuseColor.rgb * ( totalDiffuseLight + ambientLightColor ) * specular + totalSpecularLight + emissive;\n\n#else\n\n outgoingLight += diffuseColor.rgb * ( totalDiffuseLight + ambientLightColor ) + totalSpecularLight + emissive;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/fog_pars_fragment.glsl + +THREE.ShaderChunk[ 'fog_pars_fragment'] = "#ifdef USE_FOG\n\n uniform vec3 fogColor;\n\n #ifdef FOG_EXP2\n\n uniform float fogDensity;\n\n #else\n\n uniform float fogNear;\n uniform float fogFar;\n #endif\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl + +THREE.ShaderChunk[ 'morphnormal_vertex'] = "#ifdef USE_MORPHNORMALS\n\n vec3 morphedNormal = vec3( 0.0 );\n\n morphedNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n morphedNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n morphedNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n morphedNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n\n morphedNormal += normal;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl + +THREE.ShaderChunk[ 'envmap_pars_fragment'] = "#ifdef USE_ENVMAP\n\n uniform float reflectivity;\n #ifdef ENVMAP_TYPE_CUBE\n uniform samplerCube envMap;\n #else\n uniform sampler2D envMap;\n #endif\n uniform float flipEnvMap;\n\n #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\n uniform float refractionRatio;\n\n #else\n\n varying vec3 vReflect;\n\n #endif\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/logdepthbuf_fragment.glsl + +THREE.ShaderChunk[ 'logdepthbuf_fragment'] = "#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)\n\n gl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl + +THREE.ShaderChunk[ 'normalmap_pars_fragment'] = "#ifdef USE_NORMALMAP\n\n uniform sampler2D normalMap;\n uniform vec2 normalScale;\n\n // Per-Pixel Tangent Space Normal Mapping\n // http://hacksoflife.blogspot.ch/2009/11/per-pixel-tangent-space-normal-mapping.html\n\n vec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\n vec3 q0 = dFdx( eye_pos.xyz );\n vec3 q1 = dFdy( eye_pos.xyz );\n vec2 st0 = dFdx( vUv.st );\n vec2 st1 = dFdy( vUv.st );\n\n vec3 S = normalize( q0 * st1.t - q1 * st0.t );\n vec3 T = normalize( -q0 * st1.s + q1 * st0.s );\n vec3 N = normalize( surf_norm );\n\n vec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n mapN.xy = normalScale * mapN.xy;\n mat3 tsn = mat3( S, T, N );\n return normalize( tsn * mapN );\n\n }\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/lights_phong_pars_vertex.glsl + +THREE.ShaderChunk[ 'lights_phong_pars_vertex'] = "#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\n varying vec3 vWorldPosition;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/lightmap_pars_fragment.glsl + +THREE.ShaderChunk[ 'lightmap_pars_fragment'] = "#ifdef USE_LIGHTMAP\n\n varying vec2 vUv2;\n uniform sampler2D lightMap;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl + +THREE.ShaderChunk[ 'shadowmap_vertex'] = "#ifdef USE_SHADOWMAP\n\n for( int i = 0; i < MAX_SHADOWS; i ++ ) {\n\n vShadowCoord[ i ] = shadowMatrix[ i ] * worldPosition;\n\n }\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/lights_phong_vertex.glsl + +THREE.ShaderChunk[ 'lights_phong_vertex'] = "#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\n vWorldPosition = worldPosition.xyz;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/map_fragment.glsl + +THREE.ShaderChunk[ 'map_fragment'] = "#ifdef USE_MAP\n\n vec4 texelColor = texture2D( map, vUv );\n\n texelColor.xyz = inputToLinear( texelColor.xyz );\n\n diffuseColor *= texelColor;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/lightmap_vertex.glsl + +THREE.ShaderChunk[ 'lightmap_vertex'] = "#ifdef USE_LIGHTMAP\n\n vUv2 = uv2;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl + +THREE.ShaderChunk[ 'map_particle_fragment'] = "#ifdef USE_MAP\n\n diffuseColor *= texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/color_pars_fragment.glsl + +THREE.ShaderChunk[ 'color_pars_fragment'] = "#ifdef USE_COLOR\n\n varying vec3 vColor;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/color_vertex.glsl + +THREE.ShaderChunk[ 'color_vertex'] = "#ifdef USE_COLOR\n\n vColor.xyz = inputToLinear( color.xyz );\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/skinning_vertex.glsl + +THREE.ShaderChunk[ 'skinning_vertex'] = "#ifdef USE_SKINNING\n\n #ifdef USE_MORPHTARGETS\n\n vec4 skinVertex = bindMatrix * vec4( morphed, 1.0 );\n\n #else\n\n vec4 skinVertex = bindMatrix * vec4( position, 1.0 );\n\n #endif\n\n vec4 skinned = vec4( 0.0 );\n skinned += boneMatX * skinVertex * skinWeight.x;\n skinned += boneMatY * skinVertex * skinWeight.y;\n skinned += boneMatZ * skinVertex * skinWeight.z;\n skinned += boneMatW * skinVertex * skinWeight.w;\n skinned = bindMatrixInverse * skinned;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl + +THREE.ShaderChunk[ 'envmap_pars_vertex'] = "#if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP ) && ! defined( PHONG )\n\n varying vec3 vReflect;\n\n uniform float refractionRatio;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/linear_to_gamma_fragment.glsl + +THREE.ShaderChunk[ 'linear_to_gamma_fragment'] = "\n outgoingLight = linearToOutput( outgoingLight );\n"; + +// File:src/renderers/shaders/ShaderChunk/color_pars_vertex.glsl + +THREE.ShaderChunk[ 'color_pars_vertex'] = "#ifdef USE_COLOR\n\n varying vec3 vColor;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/lights_lambert_pars_vertex.glsl + +THREE.ShaderChunk[ 'lights_lambert_pars_vertex'] = "uniform vec3 ambientLightColor;\n\n#if MAX_DIR_LIGHTS > 0\n\n uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\n uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n uniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\n uniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\n uniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n\n#endif\n\n#if MAX_POINT_LIGHTS > 0\n\n uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\n uniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n uniform float pointLightDecay[ MAX_POINT_LIGHTS ];\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n uniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\n uniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\n uniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\n uniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n uniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\n uniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n uniform float spotLightDecay[ MAX_SPOT_LIGHTS ];\n\n#endif\n\n#ifdef WRAP_AROUND\n\n uniform vec3 wrapRGB;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/map_pars_vertex.glsl + +THREE.ShaderChunk[ 'map_pars_vertex'] = "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n varying vec2 vUv;\n uniform vec4 offsetRepeat;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/envmap_fragment.glsl + +THREE.ShaderChunk[ 'envmap_fragment'] = "#ifdef USE_ENVMAP\n\n #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\n vec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\n // Transforming Normal Vectors with the Inverse Transformation\n vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\n #ifdef ENVMAP_MODE_REFLECTION\n\n vec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\n #else\n\n vec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\n #endif\n\n #else\n\n vec3 reflectVec = vReflect;\n\n #endif\n\n #ifdef DOUBLE_SIDED\n float flipNormal = ( -1.0 + 2.0 * float( gl_FrontFacing ) );\n #else\n float flipNormal = 1.0;\n #endif\n\n #ifdef ENVMAP_TYPE_CUBE\n vec4 envColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\n #elif defined( ENVMAP_TYPE_EQUIREC )\n vec2 sampleUV;\n sampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\n sampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n vec4 envColor = texture2D( envMap, sampleUV );\n\n #elif defined( ENVMAP_TYPE_SPHERE )\n vec3 reflectView = flipNormal * normalize((viewMatrix * vec4( reflectVec, 0.0 )).xyz + vec3(0.0,0.0,1.0));\n vec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n #endif\n\n envColor.xyz = inputToLinear( envColor.xyz );\n\n #ifdef ENVMAP_BLENDING_MULTIPLY\n\n outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\n #elif defined( ENVMAP_BLENDING_MIX )\n\n outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\n #elif defined( ENVMAP_BLENDING_ADD )\n\n outgoingLight += envColor.xyz * specularStrength * reflectivity;\n\n #endif\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/specularmap_pars_fragment.glsl + +THREE.ShaderChunk[ 'specularmap_pars_fragment'] = "#ifdef USE_SPECULARMAP\n\n uniform sampler2D specularMap;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/logdepthbuf_vertex.glsl + +THREE.ShaderChunk[ 'logdepthbuf_vertex'] = "#ifdef USE_LOGDEPTHBUF\n\n gl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;\n\n #ifdef USE_LOGDEPTHBUF_EXT\n\n vFragDepth = 1.0 + gl_Position.w;\n\n#else\n\n gl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;\n\n #endif\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl + +THREE.ShaderChunk[ 'morphtarget_pars_vertex'] = "#ifdef USE_MORPHTARGETS\n\n #ifndef USE_MORPHNORMALS\n\n uniform float morphTargetInfluences[ 8 ];\n\n #else\n\n uniform float morphTargetInfluences[ 4 ];\n\n #endif\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/specularmap_fragment.glsl + +THREE.ShaderChunk[ 'specularmap_fragment'] = "float specularStrength;\n\n#ifdef USE_SPECULARMAP\n\n vec4 texelSpecular = texture2D( specularMap, vUv );\n specularStrength = texelSpecular.r;\n\n#else\n\n specularStrength = 1.0;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/fog_fragment.glsl + +THREE.ShaderChunk[ 'fog_fragment'] = "#ifdef USE_FOG\n\n #ifdef USE_LOGDEPTHBUF_EXT\n\n float depth = gl_FragDepthEXT / gl_FragCoord.w;\n\n #else\n\n float depth = gl_FragCoord.z / gl_FragCoord.w;\n\n #endif\n\n #ifdef FOG_EXP2\n\n float fogFactor = exp2( - square( fogDensity ) * square( depth ) * LOG2 );\n fogFactor = whiteCompliment( fogFactor );\n\n #else\n\n float fogFactor = smoothstep( fogNear, fogFar, depth );\n\n #endif\n \n outgoingLight = mix( outgoingLight, fogColor, fogFactor );\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl + +THREE.ShaderChunk[ 'bumpmap_pars_fragment'] = "#ifdef USE_BUMPMAP\n\n uniform sampler2D bumpMap;\n uniform float bumpScale;\n\n // Derivative maps - bump mapping unparametrized surfaces by Morten Mikkelsen\n // http://mmikkelsen3d.blogspot.sk/2011/07/derivative-maps.html\n\n // Evaluate the derivative of the height w.r.t. screen-space using forward differencing (listing 2)\n\n vec2 dHdxy_fwd() {\n\n vec2 dSTdx = dFdx( vUv );\n vec2 dSTdy = dFdy( vUv );\n\n float Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n float dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n float dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\n return vec2( dBx, dBy );\n\n }\n\n vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\n vec3 vSigmaX = dFdx( surf_pos );\n vec3 vSigmaY = dFdy( surf_pos );\n vec3 vN = surf_norm; // normalized\n\n vec3 R1 = cross( vSigmaY, vN );\n vec3 R2 = cross( vN, vSigmaX );\n\n float fDet = dot( vSigmaX, R1 );\n\n vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n return normalize( abs( fDet ) * surf_norm - vGrad );\n\n }\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl + +THREE.ShaderChunk[ 'defaultnormal_vertex'] = "#ifdef USE_SKINNING\n\n vec3 objectNormal = skinnedNormal.xyz;\n\n#elif defined( USE_MORPHNORMALS )\n\n vec3 objectNormal = morphedNormal;\n\n#else\n\n vec3 objectNormal = normal;\n\n#endif\n\n#ifdef FLIP_SIDED\n\n objectNormal = -objectNormal;\n\n#endif\n\nvec3 transformedNormal = normalMatrix * objectNormal;\n"; + +// File:src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl + +THREE.ShaderChunk[ 'lights_phong_pars_fragment'] = "uniform vec3 ambientLightColor;\n\n#if MAX_DIR_LIGHTS > 0\n\n uniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\n uniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n uniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\n uniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\n uniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n\n#endif\n\n#if MAX_POINT_LIGHTS > 0\n\n uniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n\n uniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\n uniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n uniform float pointLightDecay[ MAX_POINT_LIGHTS ];\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n uniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\n uniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\n uniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\n uniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\n uniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n uniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n uniform float spotLightDecay[ MAX_SPOT_LIGHTS ];\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\n varying vec3 vWorldPosition;\n\n#endif\n\n#ifdef WRAP_AROUND\n\n uniform vec3 wrapRGB;\n\n#endif\n\nvarying vec3 vViewPosition;\n\n#ifndef FLAT_SHADED\n\n varying vec3 vNormal;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/skinbase_vertex.glsl + +THREE.ShaderChunk[ 'skinbase_vertex'] = "#ifdef USE_SKINNING\n\n mat4 boneMatX = getBoneMatrix( skinIndex.x );\n mat4 boneMatY = getBoneMatrix( skinIndex.y );\n mat4 boneMatZ = getBoneMatrix( skinIndex.z );\n mat4 boneMatW = getBoneMatrix( skinIndex.w );\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/map_vertex.glsl + +THREE.ShaderChunk[ 'map_vertex'] = "#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n vUv = uv * offsetRepeat.zw + offsetRepeat.xy;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl + +THREE.ShaderChunk[ 'lightmap_fragment'] = "#ifdef USE_LIGHTMAP\n\n outgoingLight *= diffuseColor.xyz * texture2D( lightMap, vUv2 ).xyz;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl + +THREE.ShaderChunk[ 'shadowmap_pars_vertex'] = "#ifdef USE_SHADOWMAP\n\n varying vec4 vShadowCoord[ MAX_SHADOWS ];\n uniform mat4 shadowMatrix[ MAX_SHADOWS ];\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/color_fragment.glsl + +THREE.ShaderChunk[ 'color_fragment'] = "#ifdef USE_COLOR\n\n diffuseColor.rgb *= vColor;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl + +THREE.ShaderChunk[ 'morphtarget_vertex'] = "#ifdef USE_MORPHTARGETS\n\n vec3 morphed = vec3( 0.0 );\n morphed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n morphed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n morphed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n morphed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\n #ifndef USE_MORPHNORMALS\n\n morphed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n morphed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n morphed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n morphed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\n #endif\n\n morphed += position;\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/envmap_vertex.glsl + +THREE.ShaderChunk[ 'envmap_vertex'] = "#if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP ) && ! defined( PHONG )\n\n vec3 worldNormal = transformDirection( objectNormal, modelMatrix );\n\n vec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\n #ifdef ENVMAP_MODE_REFLECTION\n\n vReflect = reflect( cameraToVertex, worldNormal );\n\n #else\n\n vReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\n #endif\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/shadowmap_fragment.glsl + +THREE.ShaderChunk[ 'shadowmap_fragment'] = "#ifdef USE_SHADOWMAP\n\n #ifdef SHADOWMAP_DEBUG\n\n vec3 frustumColors[3];\n frustumColors[0] = vec3( 1.0, 0.5, 0.0 );\n frustumColors[1] = vec3( 0.0, 1.0, 0.8 );\n frustumColors[2] = vec3( 0.0, 0.5, 1.0 );\n\n #endif\n\n #ifdef SHADOWMAP_CASCADE\n\n int inFrustumCount = 0;\n\n #endif\n\n float fDepth;\n vec3 shadowColor = vec3( 1.0 );\n\n for( int i = 0; i < MAX_SHADOWS; i ++ ) {\n\n vec3 shadowCoord = vShadowCoord[ i ].xyz / vShadowCoord[ i ].w;\n\n // if ( something && something ) breaks ATI OpenGL shader compiler\n // if ( all( something, something ) ) using this instead\n\n bvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n bool inFrustum = all( inFrustumVec );\n\n // don't shadow pixels outside of light frustum\n // use just first frustum (for cascades)\n // don't shadow pixels behind far plane of light frustum\n\n #ifdef SHADOWMAP_CASCADE\n\n inFrustumCount += int( inFrustum );\n bvec3 frustumTestVec = bvec3( inFrustum, inFrustumCount == 1, shadowCoord.z <= 1.0 );\n\n #else\n\n bvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\n #endif\n\n bool frustumTest = all( frustumTestVec );\n\n if ( frustumTest ) {\n\n shadowCoord.z += shadowBias[ i ];\n\n #if defined( SHADOWMAP_TYPE_PCF )\n\n // Percentage-close filtering\n // (9 pixel kernel)\n // http://fabiensanglard.net/shadowmappingPCF/\n\n float shadow = 0.0;\n\n /*\n // nested loops breaks shader compiler / validator on some ATI cards when using OpenGL\n // must enroll loop manually\n\n for ( float y = -1.25; y <= 1.25; y += 1.25 )\n for ( float x = -1.25; x <= 1.25; x += 1.25 ) {\n\n vec4 rgbaDepth = texture2D( shadowMap[ i ], vec2( x * xPixelOffset, y * yPixelOffset ) + shadowCoord.xy );\n\n // doesn't seem to produce any noticeable visual difference compared to simple texture2D lookup\n //vec4 rgbaDepth = texture2DProj( shadowMap[ i ], vec4( vShadowCoord[ i ].w * ( vec2( x * xPixelOffset, y * yPixelOffset ) + shadowCoord.xy ), 0.05, vShadowCoord[ i ].w ) );\n\n float fDepth = unpackDepth( rgbaDepth );\n\n if ( fDepth < shadowCoord.z )\n shadow += 1.0;\n\n }\n\n shadow /= 9.0;\n\n */\n\n const float shadowDelta = 1.0 / 9.0;\n\n float xPixelOffset = 1.0 / shadowMapSize[ i ].x;\n float yPixelOffset = 1.0 / shadowMapSize[ i ].y;\n\n float dx0 = -1.25 * xPixelOffset;\n float dy0 = -1.25 * yPixelOffset;\n float dx1 = 1.25 * xPixelOffset;\n float dy1 = 1.25 * yPixelOffset;\n\n fDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\n if ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n fDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\n if ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n fDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\n if ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n fDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\n if ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n fDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\n if ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n fDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\n if ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n fDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );\n if ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n fDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\n if ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n fDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\n if ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n shadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n\n #elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\n // Percentage-close filtering\n // (9 pixel kernel)\n // http://fabiensanglard.net/shadowmappingPCF/\n\n float shadow = 0.0;\n\n float xPixelOffset = 1.0 / shadowMapSize[ i ].x;\n float yPixelOffset = 1.0 / shadowMapSize[ i ].y;\n\n float dx0 = -1.0 * xPixelOffset;\n float dy0 = -1.0 * yPixelOffset;\n float dx1 = 1.0 * xPixelOffset;\n float dy1 = 1.0 * yPixelOffset;\n\n mat3 shadowKernel;\n mat3 depthKernel;\n\n depthKernel[0][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\n depthKernel[0][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\n depthKernel[0][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );\n depthKernel[1][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\n depthKernel[1][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\n depthKernel[1][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\n depthKernel[2][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\n depthKernel[2][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\n depthKernel[2][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\n\n vec3 shadowZ = vec3( shadowCoord.z );\n shadowKernel[0] = vec3(lessThan(depthKernel[0], shadowZ ));\n shadowKernel[0] *= vec3(0.25);\n\n shadowKernel[1] = vec3(lessThan(depthKernel[1], shadowZ ));\n shadowKernel[1] *= vec3(0.25);\n\n shadowKernel[2] = vec3(lessThan(depthKernel[2], shadowZ ));\n shadowKernel[2] *= vec3(0.25);\n\n vec2 fractionalCoord = 1.0 - fract( shadowCoord.xy * shadowMapSize[i].xy );\n\n shadowKernel[0] = mix( shadowKernel[1], shadowKernel[0], fractionalCoord.x );\n shadowKernel[1] = mix( shadowKernel[2], shadowKernel[1], fractionalCoord.x );\n\n vec4 shadowValues;\n shadowValues.x = mix( shadowKernel[0][1], shadowKernel[0][0], fractionalCoord.y );\n shadowValues.y = mix( shadowKernel[0][2], shadowKernel[0][1], fractionalCoord.y );\n shadowValues.z = mix( shadowKernel[1][1], shadowKernel[1][0], fractionalCoord.y );\n shadowValues.w = mix( shadowKernel[1][2], shadowKernel[1][1], fractionalCoord.y );\n\n shadow = dot( shadowValues, vec4( 1.0 ) );\n\n shadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n\n #else\n\n vec4 rgbaDepth = texture2D( shadowMap[ i ], shadowCoord.xy );\n float fDepth = unpackDepth( rgbaDepth );\n\n if ( fDepth < shadowCoord.z )\n\n // spot with multiple shadows is darker\n\n shadowColor = shadowColor * vec3( 1.0 - shadowDarkness[ i ] );\n\n // spot with multiple shadows has the same color as single shadow spot\n\n // shadowColor = min( shadowColor, vec3( shadowDarkness[ i ] ) );\n\n #endif\n\n }\n\n\n #ifdef SHADOWMAP_DEBUG\n\n #ifdef SHADOWMAP_CASCADE\n\n if ( inFrustum && inFrustumCount == 1 ) outgoingLight *= frustumColors[ i ];\n\n #else\n\n if ( inFrustum ) outgoingLight *= frustumColors[ i ];\n\n #endif\n\n #endif\n\n }\n\n // NOTE: I am unsure if this is correct in linear space. -bhouston, Dec 29, 2014\n shadowColor = inputToLinear( shadowColor );\n\n outgoingLight = outgoingLight * shadowColor;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl + +THREE.ShaderChunk[ 'worldpos_vertex'] = "#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\n\n #ifdef USE_SKINNING\n\n vec4 worldPosition = modelMatrix * skinned;\n\n #elif defined( USE_MORPHTARGETS )\n\n vec4 worldPosition = modelMatrix * vec4( morphed, 1.0 );\n\n #else\n\n vec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n\n #endif\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl + +THREE.ShaderChunk[ 'shadowmap_pars_fragment'] = "#ifdef USE_SHADOWMAP\n\n uniform sampler2D shadowMap[ MAX_SHADOWS ];\n uniform vec2 shadowMapSize[ MAX_SHADOWS ];\n\n uniform float shadowDarkness[ MAX_SHADOWS ];\n uniform float shadowBias[ MAX_SHADOWS ];\n\n varying vec4 vShadowCoord[ MAX_SHADOWS ];\n\n float unpackDepth( const in vec4 rgba_depth ) {\n\n const vec4 bit_shift = vec4( 1.0 / ( 256.0 * 256.0 * 256.0 ), 1.0 / ( 256.0 * 256.0 ), 1.0 / 256.0, 1.0 );\n float depth = dot( rgba_depth, bit_shift );\n return depth;\n\n }\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl + +THREE.ShaderChunk[ 'skinning_pars_vertex'] = "#ifdef USE_SKINNING\n\n uniform mat4 bindMatrix;\n uniform mat4 bindMatrixInverse;\n\n #ifdef BONE_TEXTURE\n\n uniform sampler2D boneTexture;\n uniform int boneTextureWidth;\n uniform int boneTextureHeight;\n\n mat4 getBoneMatrix( const in float i ) {\n\n float j = i * 4.0;\n float x = mod( j, float( boneTextureWidth ) );\n float y = floor( j / float( boneTextureWidth ) );\n\n float dx = 1.0 / float( boneTextureWidth );\n float dy = 1.0 / float( boneTextureHeight );\n\n y = dy * ( y + 0.5 );\n\n vec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n vec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n vec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n vec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\n mat4 bone = mat4( v1, v2, v3, v4 );\n\n return bone;\n\n }\n\n #else\n\n uniform mat4 boneGlobalMatrices[ MAX_BONES ];\n\n mat4 getBoneMatrix( const in float i ) {\n\n mat4 bone = boneGlobalMatrices[ int(i) ];\n return bone;\n\n }\n\n #endif\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/logdepthbuf_pars_fragment.glsl + +THREE.ShaderChunk[ 'logdepthbuf_pars_fragment'] = "#ifdef USE_LOGDEPTHBUF\n\n uniform float logDepthBufFC;\n\n #ifdef USE_LOGDEPTHBUF_EXT\n\n #extension GL_EXT_frag_depth : enable\n varying float vFragDepth;\n\n #endif\n\n#endif"; + +// File:src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl + +THREE.ShaderChunk[ 'alphamap_fragment'] = "#ifdef USE_ALPHAMAP\n\n diffuseColor.a *= texture2D( alphaMap, vUv ).g;\n\n#endif\n"; + +// File:src/renderers/shaders/ShaderChunk/alphamap_pars_fragment.glsl + +THREE.ShaderChunk[ 'alphamap_pars_fragment'] = "#ifdef USE_ALPHAMAP\n\n uniform sampler2D alphaMap;\n\n#endif\n"; + +// File:src/renderers/shaders/UniformsUtils.js + +/** + * Uniform Utilities + */ + +THREE.UniformsUtils = { + + merge: function ( uniforms ) { + + var merged = {}; + + for ( var u = 0; u < uniforms.length; u ++ ) { + + var tmp = this.clone( uniforms[ u ] ); + + for ( var p in tmp ) { + + merged[ p ] = tmp[ p ]; + + } + + } + + return merged; + + }, + + clone: function ( uniforms_src ) { + + var uniforms_dst = {}; + + for ( var u in uniforms_src ) { + + uniforms_dst[ u ] = {}; + + for ( var p in uniforms_src[ u ] ) { + + var parameter_src = uniforms_src[ u ][ p ]; + + if ( parameter_src instanceof THREE.Color || + parameter_src instanceof THREE.Vector2 || + parameter_src instanceof THREE.Vector3 || + parameter_src instanceof THREE.Vector4 || + parameter_src instanceof THREE.Matrix4 || + parameter_src instanceof THREE.Texture ) { + + uniforms_dst[ u ][ p ] = parameter_src.clone(); + + } else if ( parameter_src instanceof Array ) { + + uniforms_dst[ u ][ p ] = parameter_src.slice(); + + } else { + + uniforms_dst[ u ][ p ] = parameter_src; + + } + + } + + } + + return uniforms_dst; + + } + +}; + +// File:src/renderers/shaders/UniformsLib.js + +/** + * Uniforms library for shared webgl shaders + */ + +THREE.UniformsLib = { + + common: { + + "diffuse" : { type: "c", value: new THREE.Color( 0xeeeeee ) }, + "opacity" : { type: "f", value: 1.0 }, + + "map" : { type: "t", value: null }, + "offsetRepeat" : { type: "v4", value: new THREE.Vector4( 0, 0, 1, 1 ) }, + + "lightMap" : { type: "t", value: null }, + "specularMap" : { type: "t", value: null }, + "alphaMap" : { type: "t", value: null }, + + "envMap" : { type: "t", value: null }, + "flipEnvMap" : { type: "f", value: - 1 }, + "reflectivity" : { type: "f", value: 1.0 }, + "refractionRatio" : { type: "f", value: 0.98 }, + + "morphTargetInfluences" : { type: "f", value: 0 } + + }, + + bump: { + + "bumpMap" : { type: "t", value: null }, + "bumpScale" : { type: "f", value: 1 } + + }, + + normalmap: { + + "normalMap" : { type: "t", value: null }, + "normalScale" : { type: "v2", value: new THREE.Vector2( 1, 1 ) } + }, + + fog : { + + "fogDensity" : { type: "f", value: 0.00025 }, + "fogNear" : { type: "f", value: 1 }, + "fogFar" : { type: "f", value: 2000 }, + "fogColor" : { type: "c", value: new THREE.Color( 0xffffff ) } + + }, + + lights: { + + "ambientLightColor" : { type: "fv", value: [] }, + + "directionalLightDirection" : { type: "fv", value: [] }, + "directionalLightColor" : { type: "fv", value: [] }, + + "hemisphereLightDirection" : { type: "fv", value: [] }, + "hemisphereLightSkyColor" : { type: "fv", value: [] }, + "hemisphereLightGroundColor" : { type: "fv", value: [] }, + + "pointLightColor" : { type: "fv", value: [] }, + "pointLightPosition" : { type: "fv", value: [] }, + "pointLightDistance" : { type: "fv1", value: [] }, + "pointLightDecay" : { type: "fv1", value: [] }, + + "spotLightColor" : { type: "fv", value: [] }, + "spotLightPosition" : { type: "fv", value: [] }, + "spotLightDirection" : { type: "fv", value: [] }, + "spotLightDistance" : { type: "fv1", value: [] }, + "spotLightAngleCos" : { type: "fv1", value: [] }, + "spotLightExponent" : { type: "fv1", value: [] }, + "spotLightDecay" : { type: "fv1", value: [] } + + }, + + particle: { + + "psColor" : { type: "c", value: new THREE.Color( 0xeeeeee ) }, + "opacity" : { type: "f", value: 1.0 }, + "size" : { type: "f", value: 1.0 }, + "scale" : { type: "f", value: 1.0 }, + "map" : { type: "t", value: null }, + "offsetRepeat" : { type: "v4", value: new THREE.Vector4( 0, 0, 1, 1 ) }, + + "fogDensity" : { type: "f", value: 0.00025 }, + "fogNear" : { type: "f", value: 1 }, + "fogFar" : { type: "f", value: 2000 }, + "fogColor" : { type: "c", value: new THREE.Color( 0xffffff ) } + + }, + + shadowmap: { + + "shadowMap": { type: "tv", value: [] }, + "shadowMapSize": { type: "v2v", value: [] }, + + "shadowBias" : { type: "fv1", value: [] }, + "shadowDarkness": { type: "fv1", value: [] }, + + "shadowMatrix" : { type: "m4v", value: [] } + + } + +}; + +// File:src/renderers/shaders/ShaderLib.js + +/** + * Webgl Shader Library for three.js + * + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + * @author mikael emtinger / http://gomo.se/ + */ + + +THREE.ShaderLib = { + + 'basic': { + + uniforms: THREE.UniformsUtils.merge( [ + + THREE.UniformsLib[ "common" ], + THREE.UniformsLib[ "fog" ], + THREE.UniformsLib[ "shadowmap" ] + + ] ), + + vertexShader: [ + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "map_pars_vertex" ], + THREE.ShaderChunk[ "lightmap_pars_vertex" ], + THREE.ShaderChunk[ "envmap_pars_vertex" ], + THREE.ShaderChunk[ "color_pars_vertex" ], + THREE.ShaderChunk[ "morphtarget_pars_vertex" ], + THREE.ShaderChunk[ "skinning_pars_vertex" ], + THREE.ShaderChunk[ "shadowmap_pars_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_pars_vertex" ], + + "void main() {", + + THREE.ShaderChunk[ "map_vertex" ], + THREE.ShaderChunk[ "lightmap_vertex" ], + THREE.ShaderChunk[ "color_vertex" ], + THREE.ShaderChunk[ "skinbase_vertex" ], + + " #ifdef USE_ENVMAP", + + THREE.ShaderChunk[ "morphnormal_vertex" ], + THREE.ShaderChunk[ "skinnormal_vertex" ], + THREE.ShaderChunk[ "defaultnormal_vertex" ], + + " #endif", + + THREE.ShaderChunk[ "morphtarget_vertex" ], + THREE.ShaderChunk[ "skinning_vertex" ], + THREE.ShaderChunk[ "default_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_vertex" ], + + THREE.ShaderChunk[ "worldpos_vertex" ], + THREE.ShaderChunk[ "envmap_vertex" ], + THREE.ShaderChunk[ "shadowmap_vertex" ], + + "}" + + ].join("\n"), + + fragmentShader: [ + + "uniform vec3 diffuse;", + "uniform float opacity;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "color_pars_fragment" ], + THREE.ShaderChunk[ "map_pars_fragment" ], + THREE.ShaderChunk[ "alphamap_pars_fragment" ], + THREE.ShaderChunk[ "lightmap_pars_fragment" ], + THREE.ShaderChunk[ "envmap_pars_fragment" ], + THREE.ShaderChunk[ "fog_pars_fragment" ], + THREE.ShaderChunk[ "shadowmap_pars_fragment" ], + THREE.ShaderChunk[ "specularmap_pars_fragment" ], + THREE.ShaderChunk[ "logdepthbuf_pars_fragment" ], + + "void main() {", + + " vec3 outgoingLight = vec3( 0.0 );", // outgoing light does not have an alpha, the surface does + " vec4 diffuseColor = vec4( diffuse, opacity );", + + THREE.ShaderChunk[ "logdepthbuf_fragment" ], + THREE.ShaderChunk[ "map_fragment" ], + THREE.ShaderChunk[ "color_fragment" ], + THREE.ShaderChunk[ "alphamap_fragment" ], + THREE.ShaderChunk[ "alphatest_fragment" ], + THREE.ShaderChunk[ "specularmap_fragment" ], + + " outgoingLight = diffuseColor.rgb;", // simple shader + + THREE.ShaderChunk[ "lightmap_fragment" ], // TODO: Light map on an otherwise unlit surface doesn't make sense. + THREE.ShaderChunk[ "envmap_fragment" ], + THREE.ShaderChunk[ "shadowmap_fragment" ], // TODO: Shadows on an otherwise unlit surface doesn't make sense. + + THREE.ShaderChunk[ "linear_to_gamma_fragment" ], + + THREE.ShaderChunk[ "fog_fragment" ], + + " gl_FragColor = vec4( outgoingLight, diffuseColor.a );", // TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects + + "}" + + ].join("\n") + + }, + + 'lambert': { + + uniforms: THREE.UniformsUtils.merge( [ + + THREE.UniformsLib[ "common" ], + THREE.UniformsLib[ "fog" ], + THREE.UniformsLib[ "lights" ], + THREE.UniformsLib[ "shadowmap" ], + + { + "emissive" : { type: "c", value: new THREE.Color( 0x000000 ) }, + "wrapRGB" : { type: "v3", value: new THREE.Vector3( 1, 1, 1 ) } + } + + ] ), + + vertexShader: [ + + "#define LAMBERT", + + "varying vec3 vLightFront;", + + "#ifdef DOUBLE_SIDED", + + " varying vec3 vLightBack;", + + "#endif", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "map_pars_vertex" ], + THREE.ShaderChunk[ "lightmap_pars_vertex" ], + THREE.ShaderChunk[ "envmap_pars_vertex" ], + THREE.ShaderChunk[ "lights_lambert_pars_vertex" ], + THREE.ShaderChunk[ "color_pars_vertex" ], + THREE.ShaderChunk[ "morphtarget_pars_vertex" ], + THREE.ShaderChunk[ "skinning_pars_vertex" ], + THREE.ShaderChunk[ "shadowmap_pars_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_pars_vertex" ], + + "void main() {", + + THREE.ShaderChunk[ "map_vertex" ], + THREE.ShaderChunk[ "lightmap_vertex" ], + THREE.ShaderChunk[ "color_vertex" ], + + THREE.ShaderChunk[ "morphnormal_vertex" ], + THREE.ShaderChunk[ "skinbase_vertex" ], + THREE.ShaderChunk[ "skinnormal_vertex" ], + THREE.ShaderChunk[ "defaultnormal_vertex" ], + + THREE.ShaderChunk[ "morphtarget_vertex" ], + THREE.ShaderChunk[ "skinning_vertex" ], + THREE.ShaderChunk[ "default_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_vertex" ], + + THREE.ShaderChunk[ "worldpos_vertex" ], + THREE.ShaderChunk[ "envmap_vertex" ], + THREE.ShaderChunk[ "lights_lambert_vertex" ], + THREE.ShaderChunk[ "shadowmap_vertex" ], + + "}" + + ].join("\n"), + + fragmentShader: [ + + "uniform vec3 diffuse;", + "uniform vec3 emissive;", + "uniform float opacity;", + + "varying vec3 vLightFront;", + + "#ifdef DOUBLE_SIDED", + + " varying vec3 vLightBack;", + + "#endif", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "color_pars_fragment" ], + THREE.ShaderChunk[ "map_pars_fragment" ], + THREE.ShaderChunk[ "alphamap_pars_fragment" ], + THREE.ShaderChunk[ "lightmap_pars_fragment" ], + THREE.ShaderChunk[ "envmap_pars_fragment" ], + THREE.ShaderChunk[ "fog_pars_fragment" ], + THREE.ShaderChunk[ "shadowmap_pars_fragment" ], + THREE.ShaderChunk[ "specularmap_pars_fragment" ], + THREE.ShaderChunk[ "logdepthbuf_pars_fragment" ], + + "void main() {", + + " vec3 outgoingLight = vec3( 0.0 );", // outgoing light does not have an alpha, the surface does + " vec4 diffuseColor = vec4( diffuse, opacity );", + + THREE.ShaderChunk[ "logdepthbuf_fragment" ], + THREE.ShaderChunk[ "map_fragment" ], + THREE.ShaderChunk[ "color_fragment" ], + THREE.ShaderChunk[ "alphamap_fragment" ], + THREE.ShaderChunk[ "alphatest_fragment" ], + THREE.ShaderChunk[ "specularmap_fragment" ], + + " #ifdef DOUBLE_SIDED", + + //"float isFront = float( gl_FrontFacing );", + //"gl_FragColor.xyz *= isFront * vLightFront + ( 1.0 - isFront ) * vLightBack;", + + " if ( gl_FrontFacing )", + " outgoingLight += diffuseColor.rgb * vLightFront + emissive;", + " else", + " outgoingLight += diffuseColor.rgb * vLightBack + emissive;", + + " #else", + + " outgoingLight += diffuseColor.rgb * vLightFront + emissive;", + + " #endif", + + THREE.ShaderChunk[ "lightmap_fragment" ], + THREE.ShaderChunk[ "envmap_fragment" ], + THREE.ShaderChunk[ "shadowmap_fragment" ], + + THREE.ShaderChunk[ "linear_to_gamma_fragment" ], + + THREE.ShaderChunk[ "fog_fragment" ], + + " gl_FragColor = vec4( outgoingLight, diffuseColor.a );", // TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects + + "}" + + ].join("\n") + + }, + + 'phong': { + + uniforms: THREE.UniformsUtils.merge( [ + + THREE.UniformsLib[ "common" ], + THREE.UniformsLib[ "bump" ], + THREE.UniformsLib[ "normalmap" ], + THREE.UniformsLib[ "fog" ], + THREE.UniformsLib[ "lights" ], + THREE.UniformsLib[ "shadowmap" ], + + { + "emissive" : { type: "c", value: new THREE.Color( 0x000000 ) }, + "specular" : { type: "c", value: new THREE.Color( 0x111111 ) }, + "shininess": { type: "f", value: 30 }, + "wrapRGB" : { type: "v3", value: new THREE.Vector3( 1, 1, 1 ) } + } + + ] ), + + vertexShader: [ + + "#define PHONG", + + "varying vec3 vViewPosition;", + + "#ifndef FLAT_SHADED", + + " varying vec3 vNormal;", + + "#endif", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "map_pars_vertex" ], + THREE.ShaderChunk[ "lightmap_pars_vertex" ], + THREE.ShaderChunk[ "envmap_pars_vertex" ], + THREE.ShaderChunk[ "lights_phong_pars_vertex" ], + THREE.ShaderChunk[ "color_pars_vertex" ], + THREE.ShaderChunk[ "morphtarget_pars_vertex" ], + THREE.ShaderChunk[ "skinning_pars_vertex" ], + THREE.ShaderChunk[ "shadowmap_pars_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_pars_vertex" ], + + "void main() {", + + THREE.ShaderChunk[ "map_vertex" ], + THREE.ShaderChunk[ "lightmap_vertex" ], + THREE.ShaderChunk[ "color_vertex" ], + + THREE.ShaderChunk[ "morphnormal_vertex" ], + THREE.ShaderChunk[ "skinbase_vertex" ], + THREE.ShaderChunk[ "skinnormal_vertex" ], + THREE.ShaderChunk[ "defaultnormal_vertex" ], + + "#ifndef FLAT_SHADED", // Normal computed with derivatives when FLAT_SHADED + + " vNormal = normalize( transformedNormal );", + + "#endif", + + THREE.ShaderChunk[ "morphtarget_vertex" ], + THREE.ShaderChunk[ "skinning_vertex" ], + THREE.ShaderChunk[ "default_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_vertex" ], + + " vViewPosition = -mvPosition.xyz;", + + THREE.ShaderChunk[ "worldpos_vertex" ], + THREE.ShaderChunk[ "envmap_vertex" ], + THREE.ShaderChunk[ "lights_phong_vertex" ], + THREE.ShaderChunk[ "shadowmap_vertex" ], + + "}" + + ].join("\n"), + + fragmentShader: [ + + "#define PHONG", + + "uniform vec3 diffuse;", + "uniform vec3 emissive;", + "uniform vec3 specular;", + "uniform float shininess;", + "uniform float opacity;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "color_pars_fragment" ], + THREE.ShaderChunk[ "map_pars_fragment" ], + THREE.ShaderChunk[ "alphamap_pars_fragment" ], + THREE.ShaderChunk[ "lightmap_pars_fragment" ], + THREE.ShaderChunk[ "envmap_pars_fragment" ], + THREE.ShaderChunk[ "fog_pars_fragment" ], + THREE.ShaderChunk[ "lights_phong_pars_fragment" ], + THREE.ShaderChunk[ "shadowmap_pars_fragment" ], + THREE.ShaderChunk[ "bumpmap_pars_fragment" ], + THREE.ShaderChunk[ "normalmap_pars_fragment" ], + THREE.ShaderChunk[ "specularmap_pars_fragment" ], + THREE.ShaderChunk[ "logdepthbuf_pars_fragment" ], + + "void main() {", + + " vec3 outgoingLight = vec3( 0.0 );", // outgoing light does not have an alpha, the surface does + " vec4 diffuseColor = vec4( diffuse, opacity );", + + THREE.ShaderChunk[ "logdepthbuf_fragment" ], + THREE.ShaderChunk[ "map_fragment" ], + THREE.ShaderChunk[ "color_fragment" ], + THREE.ShaderChunk[ "alphamap_fragment" ], + THREE.ShaderChunk[ "alphatest_fragment" ], + THREE.ShaderChunk[ "specularmap_fragment" ], + + THREE.ShaderChunk[ "lights_phong_fragment" ], + + THREE.ShaderChunk[ "lightmap_fragment" ], + THREE.ShaderChunk[ "envmap_fragment" ], + THREE.ShaderChunk[ "shadowmap_fragment" ], + + THREE.ShaderChunk[ "linear_to_gamma_fragment" ], + + THREE.ShaderChunk[ "fog_fragment" ], + + " gl_FragColor = vec4( outgoingLight, diffuseColor.a );", // TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects + + "}" + + ].join("\n") + + }, + + 'particle_basic': { + + uniforms: THREE.UniformsUtils.merge( [ + + THREE.UniformsLib[ "particle" ], + THREE.UniformsLib[ "shadowmap" ] + + ] ), + + vertexShader: [ + + "uniform float size;", + "uniform float scale;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "color_pars_vertex" ], + THREE.ShaderChunk[ "shadowmap_pars_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_pars_vertex" ], + + "void main() {", + + THREE.ShaderChunk[ "color_vertex" ], + + " vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );", + + " #ifdef USE_SIZEATTENUATION", + " gl_PointSize = size * ( scale / length( mvPosition.xyz ) );", + " #else", + " gl_PointSize = size;", + " #endif", + + " gl_Position = projectionMatrix * mvPosition;", + + THREE.ShaderChunk[ "logdepthbuf_vertex" ], + THREE.ShaderChunk[ "worldpos_vertex" ], + THREE.ShaderChunk[ "shadowmap_vertex" ], + + "}" + + ].join("\n"), + + fragmentShader: [ + + "uniform vec3 psColor;", + "uniform float opacity;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "color_pars_fragment" ], + THREE.ShaderChunk[ "map_particle_pars_fragment" ], + THREE.ShaderChunk[ "fog_pars_fragment" ], + THREE.ShaderChunk[ "shadowmap_pars_fragment" ], + THREE.ShaderChunk[ "logdepthbuf_pars_fragment" ], + + "void main() {", + + " vec3 outgoingLight = vec3( 0.0 );", // outgoing light does not have an alpha, the surface does + " vec4 diffuseColor = vec4( psColor, opacity );", + + THREE.ShaderChunk[ "logdepthbuf_fragment" ], + THREE.ShaderChunk[ "map_particle_fragment" ], + THREE.ShaderChunk[ "color_fragment" ], + THREE.ShaderChunk[ "alphatest_fragment" ], + + " outgoingLight = diffuseColor.rgb;", // simple shader + + THREE.ShaderChunk[ "shadowmap_fragment" ], + THREE.ShaderChunk[ "fog_fragment" ], + + " gl_FragColor = vec4( outgoingLight, diffuseColor.a );", // TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects + + "}" + + ].join("\n") + + }, + + 'dashed': { + + uniforms: THREE.UniformsUtils.merge( [ + + THREE.UniformsLib[ "common" ], + THREE.UniformsLib[ "fog" ], + + { + "scale" : { type: "f", value: 1 }, + "dashSize" : { type: "f", value: 1 }, + "totalSize": { type: "f", value: 2 } + } + + ] ), + + vertexShader: [ + + "uniform float scale;", + "attribute float lineDistance;", + + "varying float vLineDistance;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "color_pars_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_pars_vertex" ], + + "void main() {", + + THREE.ShaderChunk[ "color_vertex" ], + + " vLineDistance = scale * lineDistance;", + + " vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );", + " gl_Position = projectionMatrix * mvPosition;", + + THREE.ShaderChunk[ "logdepthbuf_vertex" ], + + "}" + + ].join("\n"), + + fragmentShader: [ + + "uniform vec3 diffuse;", + "uniform float opacity;", + + "uniform float dashSize;", + "uniform float totalSize;", + + "varying float vLineDistance;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "color_pars_fragment" ], + THREE.ShaderChunk[ "fog_pars_fragment" ], + THREE.ShaderChunk[ "logdepthbuf_pars_fragment" ], + + "void main() {", + + " if ( mod( vLineDistance, totalSize ) > dashSize ) {", + + " discard;", + + " }", + + " vec3 outgoingLight = vec3( 0.0 );", // outgoing light does not have an alpha, the surface does + " vec4 diffuseColor = vec4( diffuse, opacity );", + + THREE.ShaderChunk[ "logdepthbuf_fragment" ], + THREE.ShaderChunk[ "color_fragment" ], + + " outgoingLight = diffuseColor.rgb;", // simple shader + + THREE.ShaderChunk[ "fog_fragment" ], + + " gl_FragColor = vec4( outgoingLight, diffuseColor.a );", // TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects + + "}" + + ].join("\n") + + }, + + 'depth': { + + uniforms: { + + "mNear": { type: "f", value: 1.0 }, + "mFar" : { type: "f", value: 2000.0 }, + "opacity" : { type: "f", value: 1.0 } + + }, + + vertexShader: [ + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "morphtarget_pars_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_pars_vertex" ], + + "void main() {", + + THREE.ShaderChunk[ "morphtarget_vertex" ], + THREE.ShaderChunk[ "default_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_vertex" ], + + "}" + + ].join("\n"), + + fragmentShader: [ + + "uniform float mNear;", + "uniform float mFar;", + "uniform float opacity;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "logdepthbuf_pars_fragment" ], + + "void main() {", + + THREE.ShaderChunk[ "logdepthbuf_fragment" ], + + " #ifdef USE_LOGDEPTHBUF_EXT", + + " float depth = gl_FragDepthEXT / gl_FragCoord.w;", + + " #else", + + " float depth = gl_FragCoord.z / gl_FragCoord.w;", + + " #endif", + + " float color = 1.0 - smoothstep( mNear, mFar, depth );", + " gl_FragColor = vec4( vec3( color ), opacity );", // TODO, this should be pre-multiplied to allow for bright highlights on very transparent objects + + "}" + + ].join("\n") + + }, + + 'normal': { + + uniforms: { + + "opacity" : { type: "f", value: 1.0 } + + }, + + vertexShader: [ + + "varying vec3 vNormal;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "morphtarget_pars_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_pars_vertex" ], + + "void main() {", + + " vNormal = normalize( normalMatrix * normal );", + + THREE.ShaderChunk[ "morphtarget_vertex" ], + THREE.ShaderChunk[ "default_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_vertex" ], + + "}" + + ].join("\n"), + + fragmentShader: [ + + "uniform float opacity;", + "varying vec3 vNormal;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "logdepthbuf_pars_fragment" ], + + "void main() {", + + " gl_FragColor = vec4( 0.5 * normalize( vNormal ) + 0.5, opacity );", + + THREE.ShaderChunk[ "logdepthbuf_fragment" ], + + "}" + + ].join("\n") + + }, + + /* ------------------------------------------------------------------------- + // Cube map shader + ------------------------------------------------------------------------- */ + + 'cube': { + + uniforms: { "tCube": { type: "t", value: null }, + "tFlip": { type: "f", value: - 1 } }, + + vertexShader: [ + + "varying vec3 vWorldPosition;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "logdepthbuf_pars_vertex" ], + + "void main() {", + + " vWorldPosition = transformDirection( position, modelMatrix );", + + " gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );", + + THREE.ShaderChunk[ "logdepthbuf_vertex" ], + + "}" + + ].join("\n"), + + fragmentShader: [ + + "uniform samplerCube tCube;", + "uniform float tFlip;", + + "varying vec3 vWorldPosition;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "logdepthbuf_pars_fragment" ], + + "void main() {", + + " gl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );", + + THREE.ShaderChunk[ "logdepthbuf_fragment" ], + + "}" + + ].join("\n") + + }, + + /* ------------------------------------------------------------------------- + // Cube map shader + ------------------------------------------------------------------------- */ + + 'equirect': { + + uniforms: { "tEquirect": { type: "t", value: null }, + "tFlip": { type: "f", value: - 1 } }, + + vertexShader: [ + + "varying vec3 vWorldPosition;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "logdepthbuf_pars_vertex" ], + + "void main() {", + + " vWorldPosition = transformDirection( position, modelMatrix );", + + " gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );", + + THREE.ShaderChunk[ "logdepthbuf_vertex" ], + + "}" + + ].join("\n"), + + fragmentShader: [ + + "uniform sampler2D tEquirect;", + "uniform float tFlip;", + + "varying vec3 vWorldPosition;", + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "logdepthbuf_pars_fragment" ], + + "void main() {", + + // " gl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );", + "vec3 direction = normalize( vWorldPosition );", + "vec2 sampleUV;", + "sampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );", + "sampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;", + "gl_FragColor = texture2D( tEquirect, sampleUV );", + + THREE.ShaderChunk[ "logdepthbuf_fragment" ], + + "}" + + ].join("\n") + + }, + + /* Depth encoding into RGBA texture + * + * based on SpiderGL shadow map example + * http://spidergl.org/example.php?id=6 + * + * originally from + * http://www.gamedev.net/topic/442138-packing-a-float-into-a-a8r8g8b8-texture-shader/page__whichpage__1%25EF%25BF%25BD + * + * see also + * http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + */ + + 'depthRGBA': { + + uniforms: {}, + + vertexShader: [ + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "morphtarget_pars_vertex" ], + THREE.ShaderChunk[ "skinning_pars_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_pars_vertex" ], + + "void main() {", + + THREE.ShaderChunk[ "skinbase_vertex" ], + THREE.ShaderChunk[ "morphtarget_vertex" ], + THREE.ShaderChunk[ "skinning_vertex" ], + THREE.ShaderChunk[ "default_vertex" ], + THREE.ShaderChunk[ "logdepthbuf_vertex" ], + + "}" + + ].join("\n"), + + fragmentShader: [ + + THREE.ShaderChunk[ "common" ], + THREE.ShaderChunk[ "logdepthbuf_pars_fragment" ], + + "vec4 pack_depth( const in float depth ) {", + + " const vec4 bit_shift = vec4( 256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0 );", + " const vec4 bit_mask = vec4( 0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0 );", + " vec4 res = mod( depth * bit_shift * vec4( 255 ), vec4( 256 ) ) / vec4( 255 );", // " vec4 res = fract( depth * bit_shift );", + " res -= res.xxyz * bit_mask;", + " return res;", + + "}", + + "void main() {", + + THREE.ShaderChunk[ "logdepthbuf_fragment" ], + + " #ifdef USE_LOGDEPTHBUF_EXT", + + " gl_FragData[ 0 ] = pack_depth( gl_FragDepthEXT );", + + " #else", + + " gl_FragData[ 0 ] = pack_depth( gl_FragCoord.z );", + + " #endif", + + //"gl_FragData[ 0 ] = pack_depth( gl_FragCoord.z / gl_FragCoord.w );", + //"float z = ( ( gl_FragCoord.z / gl_FragCoord.w ) - 3.0 ) / ( 4000.0 - 3.0 );", + //"gl_FragData[ 0 ] = pack_depth( z );", + //"gl_FragData[ 0 ] = vec4( z, z, z, 1.0 );", + + "}" + + ].join("\n") + + } + +}; + +// File:src/renderers/WebGLRenderer.js + +/** + * @author supereggbert / http://www.paulbrunt.co.uk/ + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * @author szimek / https://github.com/szimek/ + */ + +THREE.WebGLRenderer = function ( parameters ) { + + console.log( 'THREE.WebGLRenderer', THREE.REVISION ); + + parameters = parameters || {}; + + var _canvas = parameters.canvas !== undefined ? parameters.canvas : document.createElement( 'canvas' ), + _context = parameters.context !== undefined ? parameters.context : null, + + pixelRatio = 1, + + _precision = parameters.precision !== undefined ? parameters.precision : 'highp', + + _alpha = parameters.alpha !== undefined ? parameters.alpha : false, + _depth = parameters.depth !== undefined ? parameters.depth : true, + _stencil = parameters.stencil !== undefined ? parameters.stencil : true, + _antialias = parameters.antialias !== undefined ? parameters.antialias : false, + _premultipliedAlpha = parameters.premultipliedAlpha !== undefined ? parameters.premultipliedAlpha : true, + _preserveDrawingBuffer = parameters.preserveDrawingBuffer !== undefined ? parameters.preserveDrawingBuffer : false, + _logarithmicDepthBuffer = parameters.logarithmicDepthBuffer !== undefined ? parameters.logarithmicDepthBuffer : false, + + _clearColor = new THREE.Color( 0x000000 ), + _clearAlpha = 0; + + var lights = []; + + var _webglObjects = {}; + var _webglObjectsImmediate = []; + + var opaqueObjects = []; + var transparentObjects = []; + + var sprites = []; + var lensFlares = []; + + // public properties + + this.domElement = _canvas; + this.context = null; + + // clearing + + this.autoClear = true; + this.autoClearColor = true; + this.autoClearDepth = true; + this.autoClearStencil = true; + + // scene graph + + this.sortObjects = true; + + // physically based shading + + this.gammaFactor = 2.0; // for backwards compatibility + this.gammaInput = false; + this.gammaOutput = false; + + // shadow map + + this.shadowMapEnabled = false; + this.shadowMapType = THREE.PCFShadowMap; + this.shadowMapCullFace = THREE.CullFaceFront; + this.shadowMapDebug = false; + this.shadowMapCascade = false; + + // morphs + + this.maxMorphTargets = 8; + this.maxMorphNormals = 4; + + // flags + + this.autoScaleCubemaps = true; + + // info + + this.info = { + + memory: { + + programs: 0, + geometries: 0, + textures: 0 + + }, + + render: { + + calls: 0, + vertices: 0, + faces: 0, + points: 0 + + } + + }; + + // internal properties + + var _this = this, + + _programs = [], + + // internal state cache + + _currentProgram = null, + _currentFramebuffer = null, + _currentMaterialId = - 1, + _currentGeometryProgram = '', + _currentCamera = null, + + _usedTextureUnits = 0, + + _viewportX = 0, + _viewportY = 0, + _viewportWidth = _canvas.width, + _viewportHeight = _canvas.height, + _currentWidth = 0, + _currentHeight = 0, + + // frustum + + _frustum = new THREE.Frustum(), + + // camera matrices cache + + _projScreenMatrix = new THREE.Matrix4(), + + _vector3 = new THREE.Vector3(), + + // light arrays cache + + _direction = new THREE.Vector3(), + + _lightsNeedUpdate = true, + + _lights = { + + ambient: [ 0, 0, 0 ], + directional: { length: 0, colors:[], positions: [] }, + point: { length: 0, colors: [], positions: [], distances: [], decays: [] }, + spot: { length: 0, colors: [], positions: [], distances: [], directions: [], anglesCos: [], exponents: [], decays: [] }, + hemi: { length: 0, skyColors: [], groundColors: [], positions: [] } + + }; + + // initialize + + var _gl; + + try { + + var attributes = { + alpha: _alpha, + depth: _depth, + stencil: _stencil, + antialias: _antialias, + premultipliedAlpha: _premultipliedAlpha, + preserveDrawingBuffer: _preserveDrawingBuffer + }; + + _gl = _context || _canvas.getContext( 'webgl', attributes ) || _canvas.getContext( 'experimental-webgl', attributes ); + + if ( _gl === null ) { + + if ( _canvas.getContext( 'webgl') !== null ) { + + throw 'Error creating WebGL context with your selected attributes.'; + + } else { + + throw 'Error creating WebGL context.'; + + } + + } + + _canvas.addEventListener( 'webglcontextlost', function ( event ) { + + event.preventDefault(); + + resetGLState(); + setDefaultGLState(); + + _webglObjects = {}; + + }, false); + + } catch ( error ) { + + THREE.error( 'THREE.WebGLRenderer: ' + error ); + + } + + var state = new THREE.WebGLState( _gl, paramThreeToGL ); + + if ( _gl.getShaderPrecisionFormat === undefined ) { + + _gl.getShaderPrecisionFormat = function () { + + return { + 'rangeMin': 1, + 'rangeMax': 1, + 'precision': 1 + }; + + } + + } + + var extensions = new THREE.WebGLExtensions( _gl ); + + extensions.get( 'OES_texture_float' ); + extensions.get( 'OES_texture_float_linear' ); + extensions.get( 'OES_texture_half_float' ); + extensions.get( 'OES_texture_half_float_linear' ); + extensions.get( 'OES_standard_derivatives' ); + + if ( _logarithmicDepthBuffer ) { + + extensions.get( 'EXT_frag_depth' ); + + } + + // + + var glClearColor = function ( r, g, b, a ) { + + if ( _premultipliedAlpha === true ) { + + r *= a; g *= a; b *= a; + + } + + _gl.clearColor( r, g, b, a ); + + }; + + var setDefaultGLState = function () { + + _gl.clearColor( 0, 0, 0, 1 ); + _gl.clearDepth( 1 ); + _gl.clearStencil( 0 ); + + _gl.enable( _gl.DEPTH_TEST ); + _gl.depthFunc( _gl.LEQUAL ); + + _gl.frontFace( _gl.CCW ); + _gl.cullFace( _gl.BACK ); + _gl.enable( _gl.CULL_FACE ); + + _gl.enable( _gl.BLEND ); + _gl.blendEquation( _gl.FUNC_ADD ); + _gl.blendFunc( _gl.SRC_ALPHA, _gl.ONE_MINUS_SRC_ALPHA ); + + _gl.viewport( _viewportX, _viewportY, _viewportWidth, _viewportHeight ); + + glClearColor( _clearColor.r, _clearColor.g, _clearColor.b, _clearAlpha ); + + }; + + var resetGLState = function () { + + _currentProgram = null; + _currentCamera = null; + + _currentGeometryProgram = ''; + _currentMaterialId = - 1; + + _lightsNeedUpdate = true; + + state.reset(); + + }; + + setDefaultGLState(); + + this.context = _gl; + this.state = state; + + // GPU capabilities + + var _maxTextures = _gl.getParameter( _gl.MAX_TEXTURE_IMAGE_UNITS ); + var _maxVertexTextures = _gl.getParameter( _gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS ); + var _maxTextureSize = _gl.getParameter( _gl.MAX_TEXTURE_SIZE ); + var _maxCubemapSize = _gl.getParameter( _gl.MAX_CUBE_MAP_TEXTURE_SIZE ); + + var _supportsVertexTextures = _maxVertexTextures > 0; + var _supportsBoneTextures = _supportsVertexTextures && extensions.get( 'OES_texture_float' ); + + // + + var _vertexShaderPrecisionHighpFloat = _gl.getShaderPrecisionFormat( _gl.VERTEX_SHADER, _gl.HIGH_FLOAT ); + var _vertexShaderPrecisionMediumpFloat = _gl.getShaderPrecisionFormat( _gl.VERTEX_SHADER, _gl.MEDIUM_FLOAT ); + + var _fragmentShaderPrecisionHighpFloat = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.HIGH_FLOAT ); + var _fragmentShaderPrecisionMediumpFloat = _gl.getShaderPrecisionFormat( _gl.FRAGMENT_SHADER, _gl.MEDIUM_FLOAT ); + + var getCompressedTextureFormats = ( function () { + + var array; + + return function () { + + if ( array !== undefined ) { + + return array; + + } + + array = []; + + if ( extensions.get( 'WEBGL_compressed_texture_pvrtc' ) || extensions.get( 'WEBGL_compressed_texture_s3tc' ) ) { + + var formats = _gl.getParameter( _gl.COMPRESSED_TEXTURE_FORMATS ); + + for ( var i = 0; i < formats.length; i ++ ) { + + array.push( formats[ i ] ); + + } + + } + + return array; + + }; + + } )(); + + // clamp precision to maximum available + + var highpAvailable = _vertexShaderPrecisionHighpFloat.precision > 0 && _fragmentShaderPrecisionHighpFloat.precision > 0; + var mediumpAvailable = _vertexShaderPrecisionMediumpFloat.precision > 0 && _fragmentShaderPrecisionMediumpFloat.precision > 0; + + if ( _precision === 'highp' && ! highpAvailable ) { + + if ( mediumpAvailable ) { + + _precision = 'mediump'; + THREE.warn( 'THREE.WebGLRenderer: highp not supported, using mediump.' ); + + } else { + + _precision = 'lowp'; + THREE.warn( 'THREE.WebGLRenderer: highp and mediump not supported, using lowp.' ); + + } + + } + + if ( _precision === 'mediump' && ! mediumpAvailable ) { + + _precision = 'lowp'; + THREE.warn( 'THREE.WebGLRenderer: mediump not supported, using lowp.' ); + + } + + // Plugins + + var shadowMapPlugin = new THREE.ShadowMapPlugin( this, lights, _webglObjects, _webglObjectsImmediate ); + + var spritePlugin = new THREE.SpritePlugin( this, sprites ); + var lensFlarePlugin = new THREE.LensFlarePlugin( this, lensFlares ); + + // API + + this.getContext = function () { + + return _gl; + + }; + + this.forceContextLoss = function () { + + extensions.get( 'WEBGL_lose_context' ).loseContext(); + + }; + + this.supportsVertexTextures = function () { + + return _supportsVertexTextures; + + }; + + this.supportsFloatTextures = function () { + + return extensions.get( 'OES_texture_float' ); + + }; + + this.supportsHalfFloatTextures = function () { + + return extensions.get( 'OES_texture_half_float' ); + + }; + + this.supportsStandardDerivatives = function () { + + return extensions.get( 'OES_standard_derivatives' ); + + }; + + this.supportsCompressedTextureS3TC = function () { + + return extensions.get( 'WEBGL_compressed_texture_s3tc' ); + + }; + + this.supportsCompressedTexturePVRTC = function () { + + return extensions.get( 'WEBGL_compressed_texture_pvrtc' ); + + }; + + this.supportsBlendMinMax = function () { + + return extensions.get( 'EXT_blend_minmax' ); + + }; + + this.getMaxAnisotropy = ( function () { + + var value; + + return function () { + + if ( value !== undefined ) { + + return value; + + } + + var extension = extensions.get( 'EXT_texture_filter_anisotropic' ); + + value = extension !== null ? _gl.getParameter( extension.MAX_TEXTURE_MAX_ANISOTROPY_EXT ) : 0; + + return value; + + } + + } )(); + + this.getPrecision = function () { + + return _precision; + + }; + + this.getPixelRatio = function () { + + return pixelRatio; + + }; + + this.setPixelRatio = function ( value ) { + + pixelRatio = value; + + }; + + this.setSize = function ( width, height, updateStyle ) { + + _canvas.width = width * pixelRatio; + _canvas.height = height * pixelRatio; + + if ( updateStyle !== false ) { + + _canvas.style.width = width + 'px'; + _canvas.style.height = height + 'px'; + + } + + this.setViewport( 0, 0, width, height ); + + }; + + this.setViewport = function ( x, y, width, height ) { + + _viewportX = x * pixelRatio; + _viewportY = y * pixelRatio; + + _viewportWidth = width * pixelRatio; + _viewportHeight = height * pixelRatio; + + _gl.viewport( _viewportX, _viewportY, _viewportWidth, _viewportHeight ); + + }; + + this.setScissor = function ( x, y, width, height ) { + + _gl.scissor( + x * pixelRatio, + y * pixelRatio, + width * pixelRatio, + height * pixelRatio + ); + + }; + + this.enableScissorTest = function ( enable ) { + + enable ? _gl.enable( _gl.SCISSOR_TEST ) : _gl.disable( _gl.SCISSOR_TEST ); + + }; + + // Clearing + + this.getClearColor = function () { + + return _clearColor; + + }; + + this.setClearColor = function ( color, alpha ) { + + _clearColor.set( color ); + + _clearAlpha = alpha !== undefined ? alpha : 1; + + glClearColor( _clearColor.r, _clearColor.g, _clearColor.b, _clearAlpha ); + + }; + + this.getClearAlpha = function () { + + return _clearAlpha; + + }; + + this.setClearAlpha = function ( alpha ) { + + _clearAlpha = alpha; + + glClearColor( _clearColor.r, _clearColor.g, _clearColor.b, _clearAlpha ); + + }; + + this.clear = function ( color, depth, stencil ) { + + var bits = 0; + + if ( color === undefined || color ) bits |= _gl.COLOR_BUFFER_BIT; + if ( depth === undefined || depth ) bits |= _gl.DEPTH_BUFFER_BIT; + if ( stencil === undefined || stencil ) bits |= _gl.STENCIL_BUFFER_BIT; + + _gl.clear( bits ); + + }; + + this.clearColor = function () { + + _gl.clear( _gl.COLOR_BUFFER_BIT ); + + }; + + this.clearDepth = function () { + + _gl.clear( _gl.DEPTH_BUFFER_BIT ); + + }; + + this.clearStencil = function () { + + _gl.clear( _gl.STENCIL_BUFFER_BIT ); + + }; + + this.clearTarget = function ( renderTarget, color, depth, stencil ) { + + this.setRenderTarget( renderTarget ); + this.clear( color, depth, stencil ); + + }; + + // Reset + + this.resetGLState = resetGLState; + + // Buffer allocation + + function createParticleBuffers ( geometry ) { + + geometry.__webglVertexBuffer = _gl.createBuffer(); + geometry.__webglColorBuffer = _gl.createBuffer(); + + _this.info.memory.geometries ++; + + }; + + function createLineBuffers ( geometry ) { + + geometry.__webglVertexBuffer = _gl.createBuffer(); + geometry.__webglColorBuffer = _gl.createBuffer(); + geometry.__webglLineDistanceBuffer = _gl.createBuffer(); + + _this.info.memory.geometries ++; + + }; + + function createMeshBuffers ( geometryGroup ) { + + geometryGroup.__webglVertexBuffer = _gl.createBuffer(); + geometryGroup.__webglNormalBuffer = _gl.createBuffer(); + geometryGroup.__webglTangentBuffer = _gl.createBuffer(); + geometryGroup.__webglColorBuffer = _gl.createBuffer(); + geometryGroup.__webglUVBuffer = _gl.createBuffer(); + geometryGroup.__webglUV2Buffer = _gl.createBuffer(); + + geometryGroup.__webglSkinIndicesBuffer = _gl.createBuffer(); + geometryGroup.__webglSkinWeightsBuffer = _gl.createBuffer(); + + geometryGroup.__webglFaceBuffer = _gl.createBuffer(); + geometryGroup.__webglLineBuffer = _gl.createBuffer(); + + var numMorphTargets = geometryGroup.numMorphTargets; + + if ( numMorphTargets ) { + + geometryGroup.__webglMorphTargetsBuffers = []; + + for ( var m = 0, ml = numMorphTargets; m < ml; m ++ ) { + + geometryGroup.__webglMorphTargetsBuffers.push( _gl.createBuffer() ); + + } + + } + + var numMorphNormals = geometryGroup.numMorphNormals; + + if ( numMorphNormals ) { + + geometryGroup.__webglMorphNormalsBuffers = []; + + for ( var m = 0, ml = numMorphNormals; m < ml; m ++ ) { + + geometryGroup.__webglMorphNormalsBuffers.push( _gl.createBuffer() ); + + } + + } + + _this.info.memory.geometries ++; + + }; + + // Events + + var onObjectRemoved = function ( event ) { + + var object = event.target; + + object.traverse( function ( child ) { + + child.removeEventListener( 'remove', onObjectRemoved ); + + removeObject( child ); + + } ); + + }; + + var onGeometryDispose = function ( event ) { + + var geometry = event.target; + + geometry.removeEventListener( 'dispose', onGeometryDispose ); + + deallocateGeometry( geometry ); + + }; + + var onTextureDispose = function ( event ) { + + var texture = event.target; + + texture.removeEventListener( 'dispose', onTextureDispose ); + + deallocateTexture( texture ); + + _this.info.memory.textures --; + + + }; + + var onRenderTargetDispose = function ( event ) { + + var renderTarget = event.target; + + renderTarget.removeEventListener( 'dispose', onRenderTargetDispose ); + + deallocateRenderTarget( renderTarget ); + + _this.info.memory.textures --; + + }; + + var onMaterialDispose = function ( event ) { + + var material = event.target; + + material.removeEventListener( 'dispose', onMaterialDispose ); + + deallocateMaterial( material ); + + }; + + // Buffer deallocation + + var deleteBuffers = function ( geometry ) { + + var buffers = [ + '__webglVertexBuffer', + '__webglNormalBuffer', + '__webglTangentBuffer', + '__webglColorBuffer', + '__webglUVBuffer', + '__webglUV2Buffer', + + '__webglSkinIndicesBuffer', + '__webglSkinWeightsBuffer', + + '__webglFaceBuffer', + '__webglLineBuffer', + + '__webglLineDistanceBuffer' + ]; + + for ( var i = 0, l = buffers.length; i < l; i ++ ) { + + var name = buffers[ i ]; + + if ( geometry[ name ] !== undefined ) { + + _gl.deleteBuffer( geometry[ name ] ); + + delete geometry[ name ]; + + } + + } + + // custom attributes + + if ( geometry.__webglCustomAttributesList !== undefined ) { + + for ( var name in geometry.__webglCustomAttributesList ) { + + _gl.deleteBuffer( geometry.__webglCustomAttributesList[ name ].buffer ); + + } + + delete geometry.__webglCustomAttributesList; + + } + + _this.info.memory.geometries --; + + }; + + var deallocateGeometry = function ( geometry ) { + + delete geometry.__webglInit; + + if ( geometry instanceof THREE.BufferGeometry ) { + + for ( var name in geometry.attributes ) { + + var attribute = geometry.attributes[ name ]; + + if ( attribute.buffer !== undefined ) { + + _gl.deleteBuffer( attribute.buffer ); + + delete attribute.buffer; + + } + + } + + _this.info.memory.geometries --; + + } else { + + var geometryGroupsList = geometryGroups[ geometry.id ]; + + if ( geometryGroupsList !== undefined ) { + + for ( var i = 0, l = geometryGroupsList.length; i < l; i ++ ) { + + var geometryGroup = geometryGroupsList[ i ]; + + if ( geometryGroup.numMorphTargets !== undefined ) { + + for ( var m = 0, ml = geometryGroup.numMorphTargets; m < ml; m ++ ) { + + _gl.deleteBuffer( geometryGroup.__webglMorphTargetsBuffers[ m ] ); + + } + + delete geometryGroup.__webglMorphTargetsBuffers; + + } + + if ( geometryGroup.numMorphNormals !== undefined ) { + + for ( var m = 0, ml = geometryGroup.numMorphNormals; m < ml; m ++ ) { + + _gl.deleteBuffer( geometryGroup.__webglMorphNormalsBuffers[ m ] ); + + } + + delete geometryGroup.__webglMorphNormalsBuffers; + + } + + deleteBuffers( geometryGroup ); + + } + + delete geometryGroups[ geometry.id ]; + + } else { + + deleteBuffers( geometry ); + + } + + } + + // TOFIX: Workaround for deleted geometry being currently bound + + _currentGeometryProgram = ''; + + }; + + var deallocateTexture = function ( texture ) { + + if ( texture.image && texture.image.__webglTextureCube ) { + + // cube texture + + _gl.deleteTexture( texture.image.__webglTextureCube ); + + delete texture.image.__webglTextureCube; + + } else { + + // 2D texture + + if ( texture.__webglInit === undefined ) return; + + _gl.deleteTexture( texture.__webglTexture ); + + delete texture.__webglTexture; + delete texture.__webglInit; + + } + + }; + + var deallocateRenderTarget = function ( renderTarget ) { + + if ( ! renderTarget || renderTarget.__webglTexture === undefined ) return; + + _gl.deleteTexture( renderTarget.__webglTexture ); + + delete renderTarget.__webglTexture; + + if ( renderTarget instanceof THREE.WebGLRenderTargetCube ) { + + for ( var i = 0; i < 6; i ++ ) { + + _gl.deleteFramebuffer( renderTarget.__webglFramebuffer[ i ] ); + _gl.deleteRenderbuffer( renderTarget.__webglRenderbuffer[ i ] ); + + } + + } else { + + _gl.deleteFramebuffer( renderTarget.__webglFramebuffer ); + _gl.deleteRenderbuffer( renderTarget.__webglRenderbuffer ); + + } + + delete renderTarget.__webglFramebuffer; + delete renderTarget.__webglRenderbuffer; + + }; + + var deallocateMaterial = function ( material ) { + + var program = material.program.program; + + if ( program === undefined ) return; + + material.program = undefined; + + // only deallocate GL program if this was the last use of shared program + // assumed there is only single copy of any program in the _programs list + // (that's how it's constructed) + + var i, il, programInfo; + var deleteProgram = false; + + for ( i = 0, il = _programs.length; i < il; i ++ ) { + + programInfo = _programs[ i ]; + + if ( programInfo.program === program ) { + + programInfo.usedTimes --; + + if ( programInfo.usedTimes === 0 ) { + + deleteProgram = true; + + } + + break; + + } + + } + + if ( deleteProgram === true ) { + + // avoid using array.splice, this is costlier than creating new array from scratch + + var newPrograms = []; + + for ( i = 0, il = _programs.length; i < il; i ++ ) { + + programInfo = _programs[ i ]; + + if ( programInfo.program !== program ) { + + newPrograms.push( programInfo ); + + } + + } + + _programs = newPrograms; + + _gl.deleteProgram( program ); + + _this.info.memory.programs --; + + } + + }; + + // Buffer initialization + + function initCustomAttributes ( object ) { + + var geometry = object.geometry; + var material = object.material; + + var nvertices = geometry.vertices.length; + + if ( material.attributes ) { + + if ( geometry.__webglCustomAttributesList === undefined ) { + + geometry.__webglCustomAttributesList = []; + + } + + for ( var name in material.attributes ) { + + var attribute = material.attributes[ name ]; + + if ( ! attribute.__webglInitialized || attribute.createUniqueBuffers ) { + + attribute.__webglInitialized = true; + + var size = 1; // "f" and "i" + + if ( attribute.type === 'v2' ) size = 2; + else if ( attribute.type === 'v3' ) size = 3; + else if ( attribute.type === 'v4' ) size = 4; + else if ( attribute.type === 'c' ) size = 3; + + attribute.size = size; + + attribute.array = new Float32Array( nvertices * size ); + + attribute.buffer = _gl.createBuffer(); + attribute.buffer.belongsToAttribute = name; + + attribute.needsUpdate = true; + + } + + geometry.__webglCustomAttributesList.push( attribute ); + + } + + } + + }; + + function initParticleBuffers ( geometry, object ) { + + var nvertices = geometry.vertices.length; + + geometry.__vertexArray = new Float32Array( nvertices * 3 ); + geometry.__colorArray = new Float32Array( nvertices * 3 ); + + geometry.__webglParticleCount = nvertices; + + initCustomAttributes( object ); + + }; + + function initLineBuffers ( geometry, object ) { + + var nvertices = geometry.vertices.length; + + geometry.__vertexArray = new Float32Array( nvertices * 3 ); + geometry.__colorArray = new Float32Array( nvertices * 3 ); + geometry.__lineDistanceArray = new Float32Array( nvertices * 1 ); + + geometry.__webglLineCount = nvertices; + + initCustomAttributes( object ); + + }; + + function initMeshBuffers ( geometryGroup, object ) { + + var geometry = object.geometry, + faces3 = geometryGroup.faces3, + + nvertices = faces3.length * 3, + ntris = faces3.length * 1, + nlines = faces3.length * 3, + + material = getBufferMaterial( object, geometryGroup ); + + geometryGroup.__vertexArray = new Float32Array( nvertices * 3 ); + geometryGroup.__normalArray = new Float32Array( nvertices * 3 ); + geometryGroup.__colorArray = new Float32Array( nvertices * 3 ); + geometryGroup.__uvArray = new Float32Array( nvertices * 2 ); + + if ( geometry.faceVertexUvs.length > 1 ) { + + geometryGroup.__uv2Array = new Float32Array( nvertices * 2 ); + + } + + if ( geometry.hasTangents ) { + + geometryGroup.__tangentArray = new Float32Array( nvertices * 4 ); + + } + + if ( object.geometry.skinWeights.length && object.geometry.skinIndices.length ) { + + geometryGroup.__skinIndexArray = new Float32Array( nvertices * 4 ); + geometryGroup.__skinWeightArray = new Float32Array( nvertices * 4 ); + + } + + var UintArray = extensions.get( 'OES_element_index_uint' ) !== null && ntris > 21845 ? Uint32Array : Uint16Array; // 65535 / 3 + + geometryGroup.__typeArray = UintArray; + geometryGroup.__faceArray = new UintArray( ntris * 3 ); + geometryGroup.__lineArray = new UintArray( nlines * 2 ); + + var numMorphTargets = geometryGroup.numMorphTargets; + + if ( numMorphTargets ) { + + geometryGroup.__morphTargetsArrays = []; + + for ( var m = 0, ml = numMorphTargets; m < ml; m ++ ) { + + geometryGroup.__morphTargetsArrays.push( new Float32Array( nvertices * 3 ) ); + + } + + } + + var numMorphNormals = geometryGroup.numMorphNormals; + + if ( numMorphNormals ) { + + geometryGroup.__morphNormalsArrays = []; + + for ( var m = 0, ml = numMorphNormals; m < ml; m ++ ) { + + geometryGroup.__morphNormalsArrays.push( new Float32Array( nvertices * 3 ) ); + + } + + } + + geometryGroup.__webglFaceCount = ntris * 3; + geometryGroup.__webglLineCount = nlines * 2; + + + // custom attributes + + if ( material.attributes ) { + + if ( geometryGroup.__webglCustomAttributesList === undefined ) { + + geometryGroup.__webglCustomAttributesList = []; + + } + + for ( var name in material.attributes ) { + + // Do a shallow copy of the attribute object so different geometryGroup chunks use different + // attribute buffers which are correctly indexed in the setMeshBuffers function + + var originalAttribute = material.attributes[ name ]; + + var attribute = {}; + + for ( var property in originalAttribute ) { + + attribute[ property ] = originalAttribute[ property ]; + + } + + if ( ! attribute.__webglInitialized || attribute.createUniqueBuffers ) { + + attribute.__webglInitialized = true; + + var size = 1; // "f" and "i" + + if ( attribute.type === 'v2' ) size = 2; + else if ( attribute.type === 'v3' ) size = 3; + else if ( attribute.type === 'v4' ) size = 4; + else if ( attribute.type === 'c' ) size = 3; + + attribute.size = size; + + attribute.array = new Float32Array( nvertices * size ); + + attribute.buffer = _gl.createBuffer(); + attribute.buffer.belongsToAttribute = name; + + originalAttribute.needsUpdate = true; + attribute.__original = originalAttribute; + + } + + geometryGroup.__webglCustomAttributesList.push( attribute ); + + } + + } + + geometryGroup.__inittedArrays = true; + + }; + + function getBufferMaterial( object, geometryGroup ) { + + return object.material instanceof THREE.MeshFaceMaterial + ? object.material.materials[ geometryGroup.materialIndex ] + : object.material; + + } + + function materialNeedsFaceNormals ( material ) { + + return material instanceof THREE.MeshPhongMaterial === false && material.shading === THREE.FlatShading; + + } + + // Buffer setting + + function setParticleBuffers ( geometry, hint, object ) { + + var v, c, vertex, offset, color, + + vertices = geometry.vertices, + vl = vertices.length, + + colors = geometry.colors, + cl = colors.length, + + vertexArray = geometry.__vertexArray, + colorArray = geometry.__colorArray, + + dirtyVertices = geometry.verticesNeedUpdate, + dirtyColors = geometry.colorsNeedUpdate, + + customAttributes = geometry.__webglCustomAttributesList, + i, il, + ca, cal, value, + customAttribute; + + if ( dirtyVertices ) { + + for ( v = 0; v < vl; v ++ ) { + + vertex = vertices[ v ]; + + offset = v * 3; + + vertexArray[ offset ] = vertex.x; + vertexArray[ offset + 1 ] = vertex.y; + vertexArray[ offset + 2 ] = vertex.z; + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometry.__webglVertexBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, vertexArray, hint ); + + } + + if ( dirtyColors ) { + + for ( c = 0; c < cl; c ++ ) { + + color = colors[ c ]; + + offset = c * 3; + + colorArray[ offset ] = color.r; + colorArray[ offset + 1 ] = color.g; + colorArray[ offset + 2 ] = color.b; + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometry.__webglColorBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, colorArray, hint ); + + } + + if ( customAttributes ) { + + for ( i = 0, il = customAttributes.length; i < il; i ++ ) { + + customAttribute = customAttributes[ i ]; + + if ( customAttribute.needsUpdate && ( customAttribute.boundTo === undefined || customAttribute.boundTo === 'vertices' ) ) { + + cal = customAttribute.value.length; + + offset = 0; + + if ( customAttribute.size === 1 ) { + + for ( ca = 0; ca < cal; ca ++ ) { + + customAttribute.array[ ca ] = customAttribute.value[ ca ]; + + } + + } else if ( customAttribute.size === 2 ) { + + for ( ca = 0; ca < cal; ca ++ ) { + + value = customAttribute.value[ ca ]; + + customAttribute.array[ offset ] = value.x; + customAttribute.array[ offset + 1 ] = value.y; + + offset += 2; + + } + + } else if ( customAttribute.size === 3 ) { + + if ( customAttribute.type === 'c' ) { + + for ( ca = 0; ca < cal; ca ++ ) { + + value = customAttribute.value[ ca ]; + + customAttribute.array[ offset ] = value.r; + customAttribute.array[ offset + 1 ] = value.g; + customAttribute.array[ offset + 2 ] = value.b; + + offset += 3; + + } + + } else { + + for ( ca = 0; ca < cal; ca ++ ) { + + value = customAttribute.value[ ca ]; + + customAttribute.array[ offset ] = value.x; + customAttribute.array[ offset + 1 ] = value.y; + customAttribute.array[ offset + 2 ] = value.z; + + offset += 3; + + } + + } + + } else if ( customAttribute.size === 4 ) { + + for ( ca = 0; ca < cal; ca ++ ) { + + value = customAttribute.value[ ca ]; + + customAttribute.array[ offset ] = value.x; + customAttribute.array[ offset + 1 ] = value.y; + customAttribute.array[ offset + 2 ] = value.z; + customAttribute.array[ offset + 3 ] = value.w; + + offset += 4; + + } + + } + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, customAttribute.buffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, customAttribute.array, hint ); + + customAttribute.needsUpdate = false; + + } + + } + + } + + function setLineBuffers ( geometry, hint ) { + + var v, c, d, vertex, offset, color, + + vertices = geometry.vertices, + colors = geometry.colors, + lineDistances = geometry.lineDistances, + + vl = vertices.length, + cl = colors.length, + dl = lineDistances.length, + + vertexArray = geometry.__vertexArray, + colorArray = geometry.__colorArray, + lineDistanceArray = geometry.__lineDistanceArray, + + dirtyVertices = geometry.verticesNeedUpdate, + dirtyColors = geometry.colorsNeedUpdate, + dirtyLineDistances = geometry.lineDistancesNeedUpdate, + + customAttributes = geometry.__webglCustomAttributesList, + + i, il, + ca, cal, value, + customAttribute; + + if ( dirtyVertices ) { + + for ( v = 0; v < vl; v ++ ) { + + vertex = vertices[ v ]; + + offset = v * 3; + + vertexArray[ offset ] = vertex.x; + vertexArray[ offset + 1 ] = vertex.y; + vertexArray[ offset + 2 ] = vertex.z; + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometry.__webglVertexBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, vertexArray, hint ); + + } + + if ( dirtyColors ) { + + for ( c = 0; c < cl; c ++ ) { + + color = colors[ c ]; + + offset = c * 3; + + colorArray[ offset ] = color.r; + colorArray[ offset + 1 ] = color.g; + colorArray[ offset + 2 ] = color.b; + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometry.__webglColorBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, colorArray, hint ); + + } + + if ( dirtyLineDistances ) { + + for ( d = 0; d < dl; d ++ ) { + + lineDistanceArray[ d ] = lineDistances[ d ]; + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometry.__webglLineDistanceBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, lineDistanceArray, hint ); + + } + + if ( customAttributes ) { + + for ( i = 0, il = customAttributes.length; i < il; i ++ ) { + + customAttribute = customAttributes[ i ]; + + if ( customAttribute.needsUpdate && ( customAttribute.boundTo === undefined || customAttribute.boundTo === 'vertices' ) ) { + + offset = 0; + + cal = customAttribute.value.length; + + if ( customAttribute.size === 1 ) { + + for ( ca = 0; ca < cal; ca ++ ) { + + customAttribute.array[ ca ] = customAttribute.value[ ca ]; + + } + + } else if ( customAttribute.size === 2 ) { + + for ( ca = 0; ca < cal; ca ++ ) { + + value = customAttribute.value[ ca ]; + + customAttribute.array[ offset ] = value.x; + customAttribute.array[ offset + 1 ] = value.y; + + offset += 2; + + } + + } else if ( customAttribute.size === 3 ) { + + if ( customAttribute.type === 'c' ) { + + for ( ca = 0; ca < cal; ca ++ ) { + + value = customAttribute.value[ ca ]; + + customAttribute.array[ offset ] = value.r; + customAttribute.array[ offset + 1 ] = value.g; + customAttribute.array[ offset + 2 ] = value.b; + + offset += 3; + + } + + } else { + + for ( ca = 0; ca < cal; ca ++ ) { + + value = customAttribute.value[ ca ]; + + customAttribute.array[ offset ] = value.x; + customAttribute.array[ offset + 1 ] = value.y; + customAttribute.array[ offset + 2 ] = value.z; + + offset += 3; + + } + + } + + } else if ( customAttribute.size === 4 ) { + + for ( ca = 0; ca < cal; ca ++ ) { + + value = customAttribute.value[ ca ]; + + customAttribute.array[ offset ] = value.x; + customAttribute.array[ offset + 1 ] = value.y; + customAttribute.array[ offset + 2 ] = value.z; + customAttribute.array[ offset + 3 ] = value.w; + + offset += 4; + + } + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, customAttribute.buffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, customAttribute.array, hint ); + + customAttribute.needsUpdate = false; + + } + + } + + } + + } + + function setMeshBuffers( geometryGroup, object, hint, dispose, material ) { + + if ( ! geometryGroup.__inittedArrays ) { + + return; + + } + + var needsFaceNormals = materialNeedsFaceNormals( material ); + + var f, fl, fi, face, + vertexNormals, faceNormal, + vertexColors, faceColor, + vertexTangents, + uv, uv2, v1, v2, v3, t1, t2, t3, n1, n2, n3, + c1, c2, c3, + sw1, sw2, sw3, + si1, si2, si3, + i, il, + vn, uvi, uv2i, + vk, vkl, vka, + nka, chf, faceVertexNormals, + + vertexIndex = 0, + + offset = 0, + offset_uv = 0, + offset_uv2 = 0, + offset_face = 0, + offset_normal = 0, + offset_tangent = 0, + offset_line = 0, + offset_color = 0, + offset_skin = 0, + offset_morphTarget = 0, + offset_custom = 0, + + value, + + vertexArray = geometryGroup.__vertexArray, + uvArray = geometryGroup.__uvArray, + uv2Array = geometryGroup.__uv2Array, + normalArray = geometryGroup.__normalArray, + tangentArray = geometryGroup.__tangentArray, + colorArray = geometryGroup.__colorArray, + + skinIndexArray = geometryGroup.__skinIndexArray, + skinWeightArray = geometryGroup.__skinWeightArray, + + morphTargetsArrays = geometryGroup.__morphTargetsArrays, + morphNormalsArrays = geometryGroup.__morphNormalsArrays, + + customAttributes = geometryGroup.__webglCustomAttributesList, + customAttribute, + + faceArray = geometryGroup.__faceArray, + lineArray = geometryGroup.__lineArray, + + geometry = object.geometry, // this is shared for all chunks + + dirtyVertices = geometry.verticesNeedUpdate, + dirtyElements = geometry.elementsNeedUpdate, + dirtyUvs = geometry.uvsNeedUpdate, + dirtyNormals = geometry.normalsNeedUpdate, + dirtyTangents = geometry.tangentsNeedUpdate, + dirtyColors = geometry.colorsNeedUpdate, + dirtyMorphTargets = geometry.morphTargetsNeedUpdate, + + vertices = geometry.vertices, + chunk_faces3 = geometryGroup.faces3, + obj_faces = geometry.faces, + + obj_uvs = geometry.faceVertexUvs[ 0 ], + obj_uvs2 = geometry.faceVertexUvs[ 1 ], + + obj_skinIndices = geometry.skinIndices, + obj_skinWeights = geometry.skinWeights, + + morphTargets = geometry.morphTargets, + morphNormals = geometry.morphNormals; + + if ( dirtyVertices ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + face = obj_faces[ chunk_faces3[ f ] ]; + + v1 = vertices[ face.a ]; + v2 = vertices[ face.b ]; + v3 = vertices[ face.c ]; + + vertexArray[ offset ] = v1.x; + vertexArray[ offset + 1 ] = v1.y; + vertexArray[ offset + 2 ] = v1.z; + + vertexArray[ offset + 3 ] = v2.x; + vertexArray[ offset + 4 ] = v2.y; + vertexArray[ offset + 5 ] = v2.z; + + vertexArray[ offset + 6 ] = v3.x; + vertexArray[ offset + 7 ] = v3.y; + vertexArray[ offset + 8 ] = v3.z; + + offset += 9; + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglVertexBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, vertexArray, hint ); + + } + + if ( dirtyMorphTargets ) { + + for ( vk = 0, vkl = morphTargets.length; vk < vkl; vk ++ ) { + + offset_morphTarget = 0; + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + chf = chunk_faces3[ f ]; + face = obj_faces[ chf ]; + + // morph positions + + v1 = morphTargets[ vk ].vertices[ face.a ]; + v2 = morphTargets[ vk ].vertices[ face.b ]; + v3 = morphTargets[ vk ].vertices[ face.c ]; + + vka = morphTargetsArrays[ vk ]; + + vka[ offset_morphTarget ] = v1.x; + vka[ offset_morphTarget + 1 ] = v1.y; + vka[ offset_morphTarget + 2 ] = v1.z; + + vka[ offset_morphTarget + 3 ] = v2.x; + vka[ offset_morphTarget + 4 ] = v2.y; + vka[ offset_morphTarget + 5 ] = v2.z; + + vka[ offset_morphTarget + 6 ] = v3.x; + vka[ offset_morphTarget + 7 ] = v3.y; + vka[ offset_morphTarget + 8 ] = v3.z; + + // morph normals + + if ( material.morphNormals ) { + + if ( needsFaceNormals ) { + + n1 = morphNormals[ vk ].faceNormals[ chf ]; + n2 = n1; + n3 = n1; + + } else { + + faceVertexNormals = morphNormals[ vk ].vertexNormals[ chf ]; + + n1 = faceVertexNormals.a; + n2 = faceVertexNormals.b; + n3 = faceVertexNormals.c; + + } + + nka = morphNormalsArrays[ vk ]; + + nka[ offset_morphTarget ] = n1.x; + nka[ offset_morphTarget + 1 ] = n1.y; + nka[ offset_morphTarget + 2 ] = n1.z; + + nka[ offset_morphTarget + 3 ] = n2.x; + nka[ offset_morphTarget + 4 ] = n2.y; + nka[ offset_morphTarget + 5 ] = n2.z; + + nka[ offset_morphTarget + 6 ] = n3.x; + nka[ offset_morphTarget + 7 ] = n3.y; + nka[ offset_morphTarget + 8 ] = n3.z; + + } + + // + + offset_morphTarget += 9; + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglMorphTargetsBuffers[ vk ] ); + _gl.bufferData( _gl.ARRAY_BUFFER, morphTargetsArrays[ vk ], hint ); + + if ( material.morphNormals ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglMorphNormalsBuffers[ vk ] ); + _gl.bufferData( _gl.ARRAY_BUFFER, morphNormalsArrays[ vk ], hint ); + + } + + } + + } + + if ( obj_skinWeights.length ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + face = obj_faces[ chunk_faces3[ f ] ]; + + // weights + + sw1 = obj_skinWeights[ face.a ]; + sw2 = obj_skinWeights[ face.b ]; + sw3 = obj_skinWeights[ face.c ]; + + skinWeightArray[ offset_skin ] = sw1.x; + skinWeightArray[ offset_skin + 1 ] = sw1.y; + skinWeightArray[ offset_skin + 2 ] = sw1.z; + skinWeightArray[ offset_skin + 3 ] = sw1.w; + + skinWeightArray[ offset_skin + 4 ] = sw2.x; + skinWeightArray[ offset_skin + 5 ] = sw2.y; + skinWeightArray[ offset_skin + 6 ] = sw2.z; + skinWeightArray[ offset_skin + 7 ] = sw2.w; + + skinWeightArray[ offset_skin + 8 ] = sw3.x; + skinWeightArray[ offset_skin + 9 ] = sw3.y; + skinWeightArray[ offset_skin + 10 ] = sw3.z; + skinWeightArray[ offset_skin + 11 ] = sw3.w; + + // indices + + si1 = obj_skinIndices[ face.a ]; + si2 = obj_skinIndices[ face.b ]; + si3 = obj_skinIndices[ face.c ]; + + skinIndexArray[ offset_skin ] = si1.x; + skinIndexArray[ offset_skin + 1 ] = si1.y; + skinIndexArray[ offset_skin + 2 ] = si1.z; + skinIndexArray[ offset_skin + 3 ] = si1.w; + + skinIndexArray[ offset_skin + 4 ] = si2.x; + skinIndexArray[ offset_skin + 5 ] = si2.y; + skinIndexArray[ offset_skin + 6 ] = si2.z; + skinIndexArray[ offset_skin + 7 ] = si2.w; + + skinIndexArray[ offset_skin + 8 ] = si3.x; + skinIndexArray[ offset_skin + 9 ] = si3.y; + skinIndexArray[ offset_skin + 10 ] = si3.z; + skinIndexArray[ offset_skin + 11 ] = si3.w; + + offset_skin += 12; + + } + + if ( offset_skin > 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglSkinIndicesBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, skinIndexArray, hint ); + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglSkinWeightsBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, skinWeightArray, hint ); + + } + + } + + if ( dirtyColors ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + face = obj_faces[ chunk_faces3[ f ] ]; + + vertexColors = face.vertexColors; + faceColor = face.color; + + if ( vertexColors.length === 3 && material.vertexColors === THREE.VertexColors ) { + + c1 = vertexColors[ 0 ]; + c2 = vertexColors[ 1 ]; + c3 = vertexColors[ 2 ]; + + } else { + + c1 = faceColor; + c2 = faceColor; + c3 = faceColor; + + } + + colorArray[ offset_color ] = c1.r; + colorArray[ offset_color + 1 ] = c1.g; + colorArray[ offset_color + 2 ] = c1.b; + + colorArray[ offset_color + 3 ] = c2.r; + colorArray[ offset_color + 4 ] = c2.g; + colorArray[ offset_color + 5 ] = c2.b; + + colorArray[ offset_color + 6 ] = c3.r; + colorArray[ offset_color + 7 ] = c3.g; + colorArray[ offset_color + 8 ] = c3.b; + + offset_color += 9; + + } + + if ( offset_color > 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglColorBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, colorArray, hint ); + + } + + } + + if ( dirtyTangents && geometry.hasTangents ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + face = obj_faces[ chunk_faces3[ f ] ]; + + vertexTangents = face.vertexTangents; + + t1 = vertexTangents[ 0 ]; + t2 = vertexTangents[ 1 ]; + t3 = vertexTangents[ 2 ]; + + tangentArray[ offset_tangent ] = t1.x; + tangentArray[ offset_tangent + 1 ] = t1.y; + tangentArray[ offset_tangent + 2 ] = t1.z; + tangentArray[ offset_tangent + 3 ] = t1.w; + + tangentArray[ offset_tangent + 4 ] = t2.x; + tangentArray[ offset_tangent + 5 ] = t2.y; + tangentArray[ offset_tangent + 6 ] = t2.z; + tangentArray[ offset_tangent + 7 ] = t2.w; + + tangentArray[ offset_tangent + 8 ] = t3.x; + tangentArray[ offset_tangent + 9 ] = t3.y; + tangentArray[ offset_tangent + 10 ] = t3.z; + tangentArray[ offset_tangent + 11 ] = t3.w; + + offset_tangent += 12; + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglTangentBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, tangentArray, hint ); + + } + + if ( dirtyNormals ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + face = obj_faces[ chunk_faces3[ f ] ]; + + vertexNormals = face.vertexNormals; + faceNormal = face.normal; + + if ( vertexNormals.length === 3 && needsFaceNormals === false ) { + + for ( i = 0; i < 3; i ++ ) { + + vn = vertexNormals[ i ]; + + normalArray[ offset_normal ] = vn.x; + normalArray[ offset_normal + 1 ] = vn.y; + normalArray[ offset_normal + 2 ] = vn.z; + + offset_normal += 3; + + } + + } else { + + for ( i = 0; i < 3; i ++ ) { + + normalArray[ offset_normal ] = faceNormal.x; + normalArray[ offset_normal + 1 ] = faceNormal.y; + normalArray[ offset_normal + 2 ] = faceNormal.z; + + offset_normal += 3; + + } + + } + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglNormalBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, normalArray, hint ); + + } + + if ( dirtyUvs && obj_uvs ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + fi = chunk_faces3[ f ]; + + uv = obj_uvs[ fi ]; + + if ( uv === undefined ) continue; + + for ( i = 0; i < 3; i ++ ) { + + uvi = uv[ i ]; + + uvArray[ offset_uv ] = uvi.x; + uvArray[ offset_uv + 1 ] = uvi.y; + + offset_uv += 2; + + } + + } + + if ( offset_uv > 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglUVBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, uvArray, hint ); + + } + + } + + if ( dirtyUvs && obj_uvs2 ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + fi = chunk_faces3[ f ]; + + uv2 = obj_uvs2[ fi ]; + + if ( uv2 === undefined ) continue; + + for ( i = 0; i < 3; i ++ ) { + + uv2i = uv2[ i ]; + + uv2Array[ offset_uv2 ] = uv2i.x; + uv2Array[ offset_uv2 + 1 ] = uv2i.y; + + offset_uv2 += 2; + + } + + } + + if ( offset_uv2 > 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglUV2Buffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, uv2Array, hint ); + + } + + } + + if ( dirtyElements ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + faceArray[ offset_face ] = vertexIndex; + faceArray[ offset_face + 1 ] = vertexIndex + 1; + faceArray[ offset_face + 2 ] = vertexIndex + 2; + + offset_face += 3; + + lineArray[ offset_line ] = vertexIndex; + lineArray[ offset_line + 1 ] = vertexIndex + 1; + + lineArray[ offset_line + 2 ] = vertexIndex; + lineArray[ offset_line + 3 ] = vertexIndex + 2; + + lineArray[ offset_line + 4 ] = vertexIndex + 1; + lineArray[ offset_line + 5 ] = vertexIndex + 2; + + offset_line += 6; + + vertexIndex += 3; + + } + + _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, geometryGroup.__webglFaceBuffer ); + _gl.bufferData( _gl.ELEMENT_ARRAY_BUFFER, faceArray, hint ); + + _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, geometryGroup.__webglLineBuffer ); + _gl.bufferData( _gl.ELEMENT_ARRAY_BUFFER, lineArray, hint ); + + } + + if ( customAttributes ) { + + for ( i = 0, il = customAttributes.length; i < il; i ++ ) { + + customAttribute = customAttributes[ i ]; + + if ( ! customAttribute.__original.needsUpdate ) continue; + + offset_custom = 0; + + if ( customAttribute.size === 1 ) { + + if ( customAttribute.boundTo === undefined || customAttribute.boundTo === 'vertices' ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + face = obj_faces[ chunk_faces3[ f ] ]; + + customAttribute.array[ offset_custom ] = customAttribute.value[ face.a ]; + customAttribute.array[ offset_custom + 1 ] = customAttribute.value[ face.b ]; + customAttribute.array[ offset_custom + 2 ] = customAttribute.value[ face.c ]; + + offset_custom += 3; + + } + + } else if ( customAttribute.boundTo === 'faces' ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + value = customAttribute.value[ chunk_faces3[ f ] ]; + + customAttribute.array[ offset_custom ] = value; + customAttribute.array[ offset_custom + 1 ] = value; + customAttribute.array[ offset_custom + 2 ] = value; + + offset_custom += 3; + + } + + } + + } else if ( customAttribute.size === 2 ) { + + if ( customAttribute.boundTo === undefined || customAttribute.boundTo === 'vertices' ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + face = obj_faces[ chunk_faces3[ f ] ]; + + v1 = customAttribute.value[ face.a ]; + v2 = customAttribute.value[ face.b ]; + v3 = customAttribute.value[ face.c ]; + + customAttribute.array[ offset_custom ] = v1.x; + customAttribute.array[ offset_custom + 1 ] = v1.y; + + customAttribute.array[ offset_custom + 2 ] = v2.x; + customAttribute.array[ offset_custom + 3 ] = v2.y; + + customAttribute.array[ offset_custom + 4 ] = v3.x; + customAttribute.array[ offset_custom + 5 ] = v3.y; + + offset_custom += 6; + + } + + } else if ( customAttribute.boundTo === 'faces' ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + value = customAttribute.value[ chunk_faces3[ f ] ]; + + v1 = value; + v2 = value; + v3 = value; + + customAttribute.array[ offset_custom ] = v1.x; + customAttribute.array[ offset_custom + 1 ] = v1.y; + + customAttribute.array[ offset_custom + 2 ] = v2.x; + customAttribute.array[ offset_custom + 3 ] = v2.y; + + customAttribute.array[ offset_custom + 4 ] = v3.x; + customAttribute.array[ offset_custom + 5 ] = v3.y; + + offset_custom += 6; + + } + + } + + } else if ( customAttribute.size === 3 ) { + + var pp; + + if ( customAttribute.type === 'c' ) { + + pp = [ 'r', 'g', 'b' ]; + + } else { + + pp = [ 'x', 'y', 'z' ]; + + } + + if ( customAttribute.boundTo === undefined || customAttribute.boundTo === 'vertices' ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + face = obj_faces[ chunk_faces3[ f ] ]; + + v1 = customAttribute.value[ face.a ]; + v2 = customAttribute.value[ face.b ]; + v3 = customAttribute.value[ face.c ]; + + customAttribute.array[ offset_custom ] = v1[ pp[ 0 ] ]; + customAttribute.array[ offset_custom + 1 ] = v1[ pp[ 1 ] ]; + customAttribute.array[ offset_custom + 2 ] = v1[ pp[ 2 ] ]; + + customAttribute.array[ offset_custom + 3 ] = v2[ pp[ 0 ] ]; + customAttribute.array[ offset_custom + 4 ] = v2[ pp[ 1 ] ]; + customAttribute.array[ offset_custom + 5 ] = v2[ pp[ 2 ] ]; + + customAttribute.array[ offset_custom + 6 ] = v3[ pp[ 0 ] ]; + customAttribute.array[ offset_custom + 7 ] = v3[ pp[ 1 ] ]; + customAttribute.array[ offset_custom + 8 ] = v3[ pp[ 2 ] ]; + + offset_custom += 9; + + } + + } else if ( customAttribute.boundTo === 'faces' ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + value = customAttribute.value[ chunk_faces3[ f ] ]; + + v1 = value; + v2 = value; + v3 = value; + + customAttribute.array[ offset_custom ] = v1[ pp[ 0 ] ]; + customAttribute.array[ offset_custom + 1 ] = v1[ pp[ 1 ] ]; + customAttribute.array[ offset_custom + 2 ] = v1[ pp[ 2 ] ]; + + customAttribute.array[ offset_custom + 3 ] = v2[ pp[ 0 ] ]; + customAttribute.array[ offset_custom + 4 ] = v2[ pp[ 1 ] ]; + customAttribute.array[ offset_custom + 5 ] = v2[ pp[ 2 ] ]; + + customAttribute.array[ offset_custom + 6 ] = v3[ pp[ 0 ] ]; + customAttribute.array[ offset_custom + 7 ] = v3[ pp[ 1 ] ]; + customAttribute.array[ offset_custom + 8 ] = v3[ pp[ 2 ] ]; + + offset_custom += 9; + + } + + } else if ( customAttribute.boundTo === 'faceVertices' ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + value = customAttribute.value[ chunk_faces3[ f ] ]; + + v1 = value[ 0 ]; + v2 = value[ 1 ]; + v3 = value[ 2 ]; + + customAttribute.array[ offset_custom ] = v1[ pp[ 0 ] ]; + customAttribute.array[ offset_custom + 1 ] = v1[ pp[ 1 ] ]; + customAttribute.array[ offset_custom + 2 ] = v1[ pp[ 2 ] ]; + + customAttribute.array[ offset_custom + 3 ] = v2[ pp[ 0 ] ]; + customAttribute.array[ offset_custom + 4 ] = v2[ pp[ 1 ] ]; + customAttribute.array[ offset_custom + 5 ] = v2[ pp[ 2 ] ]; + + customAttribute.array[ offset_custom + 6 ] = v3[ pp[ 0 ] ]; + customAttribute.array[ offset_custom + 7 ] = v3[ pp[ 1 ] ]; + customAttribute.array[ offset_custom + 8 ] = v3[ pp[ 2 ] ]; + + offset_custom += 9; + + } + + } + + } else if ( customAttribute.size === 4 ) { + + if ( customAttribute.boundTo === undefined || customAttribute.boundTo === 'vertices' ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + face = obj_faces[ chunk_faces3[ f ] ]; + + v1 = customAttribute.value[ face.a ]; + v2 = customAttribute.value[ face.b ]; + v3 = customAttribute.value[ face.c ]; + + customAttribute.array[ offset_custom ] = v1.x; + customAttribute.array[ offset_custom + 1 ] = v1.y; + customAttribute.array[ offset_custom + 2 ] = v1.z; + customAttribute.array[ offset_custom + 3 ] = v1.w; + + customAttribute.array[ offset_custom + 4 ] = v2.x; + customAttribute.array[ offset_custom + 5 ] = v2.y; + customAttribute.array[ offset_custom + 6 ] = v2.z; + customAttribute.array[ offset_custom + 7 ] = v2.w; + + customAttribute.array[ offset_custom + 8 ] = v3.x; + customAttribute.array[ offset_custom + 9 ] = v3.y; + customAttribute.array[ offset_custom + 10 ] = v3.z; + customAttribute.array[ offset_custom + 11 ] = v3.w; + + offset_custom += 12; + + } + + } else if ( customAttribute.boundTo === 'faces' ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + value = customAttribute.value[ chunk_faces3[ f ] ]; + + v1 = value; + v2 = value; + v3 = value; + + customAttribute.array[ offset_custom ] = v1.x; + customAttribute.array[ offset_custom + 1 ] = v1.y; + customAttribute.array[ offset_custom + 2 ] = v1.z; + customAttribute.array[ offset_custom + 3 ] = v1.w; + + customAttribute.array[ offset_custom + 4 ] = v2.x; + customAttribute.array[ offset_custom + 5 ] = v2.y; + customAttribute.array[ offset_custom + 6 ] = v2.z; + customAttribute.array[ offset_custom + 7 ] = v2.w; + + customAttribute.array[ offset_custom + 8 ] = v3.x; + customAttribute.array[ offset_custom + 9 ] = v3.y; + customAttribute.array[ offset_custom + 10 ] = v3.z; + customAttribute.array[ offset_custom + 11 ] = v3.w; + + offset_custom += 12; + + } + + } else if ( customAttribute.boundTo === 'faceVertices' ) { + + for ( f = 0, fl = chunk_faces3.length; f < fl; f ++ ) { + + value = customAttribute.value[ chunk_faces3[ f ] ]; + + v1 = value[ 0 ]; + v2 = value[ 1 ]; + v3 = value[ 2 ]; + + customAttribute.array[ offset_custom ] = v1.x; + customAttribute.array[ offset_custom + 1 ] = v1.y; + customAttribute.array[ offset_custom + 2 ] = v1.z; + customAttribute.array[ offset_custom + 3 ] = v1.w; + + customAttribute.array[ offset_custom + 4 ] = v2.x; + customAttribute.array[ offset_custom + 5 ] = v2.y; + customAttribute.array[ offset_custom + 6 ] = v2.z; + customAttribute.array[ offset_custom + 7 ] = v2.w; + + customAttribute.array[ offset_custom + 8 ] = v3.x; + customAttribute.array[ offset_custom + 9 ] = v3.y; + customAttribute.array[ offset_custom + 10 ] = v3.z; + customAttribute.array[ offset_custom + 11 ] = v3.w; + + offset_custom += 12; + + } + + } + + } + + _gl.bindBuffer( _gl.ARRAY_BUFFER, customAttribute.buffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, customAttribute.array, hint ); + + } + + } + + if ( dispose ) { + + delete geometryGroup.__inittedArrays; + delete geometryGroup.__colorArray; + delete geometryGroup.__normalArray; + delete geometryGroup.__tangentArray; + delete geometryGroup.__uvArray; + delete geometryGroup.__uv2Array; + delete geometryGroup.__faceArray; + delete geometryGroup.__vertexArray; + delete geometryGroup.__lineArray; + delete geometryGroup.__skinIndexArray; + delete geometryGroup.__skinWeightArray; + + } + + }; + + // Buffer rendering + + this.renderBufferImmediate = function ( object, program, material ) { + + state.initAttributes(); + + if ( object.hasPositions && ! object.__webglVertexBuffer ) object.__webglVertexBuffer = _gl.createBuffer(); + if ( object.hasNormals && ! object.__webglNormalBuffer ) object.__webglNormalBuffer = _gl.createBuffer(); + if ( object.hasUvs && ! object.__webglUvBuffer ) object.__webglUvBuffer = _gl.createBuffer(); + if ( object.hasColors && ! object.__webglColorBuffer ) object.__webglColorBuffer = _gl.createBuffer(); + + if ( object.hasPositions ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, object.__webglVertexBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, object.positionArray, _gl.DYNAMIC_DRAW ); + + state.enableAttribute( program.attributes.position ); + + _gl.vertexAttribPointer( program.attributes.position, 3, _gl.FLOAT, false, 0, 0 ); + + } + + if ( object.hasNormals ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, object.__webglNormalBuffer ); + + if ( material instanceof THREE.MeshPhongMaterial === false && + material.shading === THREE.FlatShading ) { + + var nx, ny, nz, + nax, nbx, ncx, nay, nby, ncy, naz, nbz, ncz, + normalArray, + i, il = object.count * 3; + + for ( i = 0; i < il; i += 9 ) { + + normalArray = object.normalArray; + + nax = normalArray[ i ]; + nay = normalArray[ i + 1 ]; + naz = normalArray[ i + 2 ]; + + nbx = normalArray[ i + 3 ]; + nby = normalArray[ i + 4 ]; + nbz = normalArray[ i + 5 ]; + + ncx = normalArray[ i + 6 ]; + ncy = normalArray[ i + 7 ]; + ncz = normalArray[ i + 8 ]; + + nx = ( nax + nbx + ncx ) / 3; + ny = ( nay + nby + ncy ) / 3; + nz = ( naz + nbz + ncz ) / 3; + + normalArray[ i ] = nx; + normalArray[ i + 1 ] = ny; + normalArray[ i + 2 ] = nz; + + normalArray[ i + 3 ] = nx; + normalArray[ i + 4 ] = ny; + normalArray[ i + 5 ] = nz; + + normalArray[ i + 6 ] = nx; + normalArray[ i + 7 ] = ny; + normalArray[ i + 8 ] = nz; + + } + + } + + _gl.bufferData( _gl.ARRAY_BUFFER, object.normalArray, _gl.DYNAMIC_DRAW ); + + state.enableAttribute( program.attributes.normal ); + + _gl.vertexAttribPointer( program.attributes.normal, 3, _gl.FLOAT, false, 0, 0 ); + + } + + if ( object.hasUvs && material.map ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, object.__webglUvBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, object.uvArray, _gl.DYNAMIC_DRAW ); + + state.enableAttribute( program.attributes.uv ); + + _gl.vertexAttribPointer( program.attributes.uv, 2, _gl.FLOAT, false, 0, 0 ); + + } + + if ( object.hasColors && material.vertexColors !== THREE.NoColors ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, object.__webglColorBuffer ); + _gl.bufferData( _gl.ARRAY_BUFFER, object.colorArray, _gl.DYNAMIC_DRAW ); + + state.enableAttribute( program.attributes.color ); + + _gl.vertexAttribPointer( program.attributes.color, 3, _gl.FLOAT, false, 0, 0 ); + + } + + state.disableUnusedAttributes(); + + _gl.drawArrays( _gl.TRIANGLES, 0, object.count ); + + object.count = 0; + + }; + + function setupVertexAttributes( material, program, geometry, startIndex ) { + + var geometryAttributes = geometry.attributes; + + var programAttributes = program.attributes; + var programAttributesKeys = program.attributesKeys; + + for ( var i = 0, l = programAttributesKeys.length; i < l; i ++ ) { + + var key = programAttributesKeys[ i ]; + var programAttribute = programAttributes[ key ]; + + if ( programAttribute >= 0 ) { + + var geometryAttribute = geometryAttributes[ key ]; + + if ( geometryAttribute !== undefined ) { + + var size = geometryAttribute.itemSize; + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryAttribute.buffer ); + + state.enableAttribute( programAttribute ); + + _gl.vertexAttribPointer( programAttribute, size, _gl.FLOAT, false, 0, startIndex * size * 4 ); // 4 bytes per Float32 + + } else if ( material.defaultAttributeValues !== undefined ) { + + if ( material.defaultAttributeValues[ key ].length === 2 ) { + + _gl.vertexAttrib2fv( programAttribute, material.defaultAttributeValues[ key ] ); + + } else if ( material.defaultAttributeValues[ key ].length === 3 ) { + + _gl.vertexAttrib3fv( programAttribute, material.defaultAttributeValues[ key ] ); + + } + + } + + } + + } + + state.disableUnusedAttributes(); + + } + + this.renderBufferDirect = function ( camera, lights, fog, material, geometry, object ) { + + if ( material.visible === false ) return; + + updateObject( object ); + + var program = setProgram( camera, lights, fog, material, object ); + + var updateBuffers = false, + wireframeBit = material.wireframe ? 1 : 0, + geometryProgram = 'direct_' + geometry.id + '_' + program.id + '_' + wireframeBit; + + if ( geometryProgram !== _currentGeometryProgram ) { + + _currentGeometryProgram = geometryProgram; + updateBuffers = true; + + } + + if ( updateBuffers ) { + + state.initAttributes(); + + } + + // render mesh + + if ( object instanceof THREE.Mesh ) { + + var mode = material.wireframe === true ? _gl.LINES : _gl.TRIANGLES; + + var index = geometry.attributes.index; + + if ( index ) { + + // indexed triangles + + var type, size; + + if ( index.array instanceof Uint32Array && extensions.get( 'OES_element_index_uint' ) ) { + + type = _gl.UNSIGNED_INT; + size = 4; + + } else { + + type = _gl.UNSIGNED_SHORT; + size = 2; + + } + + var offsets = geometry.offsets; + + if ( offsets.length === 0 ) { + + if ( updateBuffers ) { + + setupVertexAttributes( material, program, geometry, 0 ); + _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, index.buffer ); + + } + + _gl.drawElements( mode, index.array.length, type, 0 ); + + _this.info.render.calls ++; + _this.info.render.vertices += index.array.length; // not really true, here vertices can be shared + _this.info.render.faces += index.array.length / 3; + + } else { + + // if there is more than 1 chunk + // must set attribute pointers to use new offsets for each chunk + // even if geometry and materials didn't change + + updateBuffers = true; + + for ( var i = 0, il = offsets.length; i < il; i ++ ) { + + var startIndex = offsets[ i ].index; + + if ( updateBuffers ) { + + setupVertexAttributes( material, program, geometry, startIndex ); + _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, index.buffer ); + + } + + // render indexed triangles + + _gl.drawElements( mode, offsets[ i ].count, type, offsets[ i ].start * size ); + + _this.info.render.calls ++; + _this.info.render.vertices += offsets[ i ].count; // not really true, here vertices can be shared + _this.info.render.faces += offsets[ i ].count / 3; + + } + + } + + } else { + + // non-indexed triangles + + if ( updateBuffers ) { + + setupVertexAttributes( material, program, geometry, 0 ); + + } + + var position = geometry.attributes[ 'position' ]; + + // render non-indexed triangles + + _gl.drawArrays( mode, 0, position.array.length / position.itemSize ); + + _this.info.render.calls ++; + _this.info.render.vertices += position.array.length / position.itemSize; + _this.info.render.faces += position.array.length / ( 3 * position.itemSize ); + + } + + } else if ( object instanceof THREE.PointCloud ) { + + // render particles + + var mode = _gl.POINTS; + + var index = geometry.attributes.index; + + if ( index ) { + + // indexed points + + var type, size; + + if ( index.array instanceof Uint32Array && extensions.get( 'OES_element_index_uint' ) ) { + + type = _gl.UNSIGNED_INT; + size = 4; + + } else { + + type = _gl.UNSIGNED_SHORT; + size = 2; + + } + + var offsets = geometry.offsets; + + if ( offsets.length === 0 ) { + + if ( updateBuffers ) { + + setupVertexAttributes( material, program, geometry, 0 ); + _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, index.buffer ); + + } + + _gl.drawElements( mode, index.array.length, type, 0); + + _this.info.render.calls ++; + _this.info.render.points += index.array.length; + + } else { + + // if there is more than 1 chunk + // must set attribute pointers to use new offsets for each chunk + // even if geometry and materials didn't change + + if ( offsets.length > 1 ) updateBuffers = true; + + for ( var i = 0, il = offsets.length; i < il; i ++ ) { + + var startIndex = offsets[ i ].index; + + if ( updateBuffers ) { + + setupVertexAttributes( material, program, geometry, startIndex ); + _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, index.buffer ); + + } + + // render indexed points + + _gl.drawElements( mode, offsets[ i ].count, type, offsets[ i ].start * size ); + + _this.info.render.calls ++; + _this.info.render.points += offsets[ i ].count; + + } + + } + + } else { + + // non-indexed points + + if ( updateBuffers ) { + + setupVertexAttributes( material, program, geometry, 0 ); + + } + + var position = geometry.attributes.position; + var offsets = geometry.offsets; + + if ( offsets.length === 0 ) { + + _gl.drawArrays( mode, 0, position.array.length / 3 ); + + _this.info.render.calls ++; + _this.info.render.points += position.array.length / 3; + + } else { + + for ( var i = 0, il = offsets.length; i < il; i ++ ) { + + _gl.drawArrays( mode, offsets[ i ].index, offsets[ i ].count ); + + _this.info.render.calls ++; + _this.info.render.points += offsets[ i ].count; + + } + + } + + } + + } else if ( object instanceof THREE.Line ) { + + var mode = ( object.mode === THREE.LineStrip ) ? _gl.LINE_STRIP : _gl.LINES; + + state.setLineWidth( material.linewidth * pixelRatio ); + + var index = geometry.attributes.index; + + if ( index ) { + + // indexed lines + + var type, size; + + if ( index.array instanceof Uint32Array ) { + + type = _gl.UNSIGNED_INT; + size = 4; + + } else { + + type = _gl.UNSIGNED_SHORT; + size = 2; + + } + + var offsets = geometry.offsets; + + if ( offsets.length === 0 ) { + + if ( updateBuffers ) { + + setupVertexAttributes( material, program, geometry, 0 ); + _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, index.buffer ); + + } + + _gl.drawElements( mode, index.array.length, type, 0 ); // 2 bytes per Uint16Array + + _this.info.render.calls ++; + _this.info.render.vertices += index.array.length; // not really true, here vertices can be shared + + } else { + + // if there is more than 1 chunk + // must set attribute pointers to use new offsets for each chunk + // even if geometry and materials didn't change + + if ( offsets.length > 1 ) updateBuffers = true; + + for ( var i = 0, il = offsets.length; i < il; i ++ ) { + + var startIndex = offsets[ i ].index; + + if ( updateBuffers ) { + + setupVertexAttributes( material, program, geometry, startIndex ); + _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, index.buffer ); + + } + + // render indexed lines + + _gl.drawElements( mode, offsets[ i ].count, type, offsets[ i ].start * size ); // 2 bytes per Uint16Array + + _this.info.render.calls ++; + _this.info.render.vertices += offsets[ i ].count; // not really true, here vertices can be shared + + } + + } + + } else { + + // non-indexed lines + + if ( updateBuffers ) { + + setupVertexAttributes( material, program, geometry, 0 ); + + } + + var position = geometry.attributes.position; + var offsets = geometry.offsets; + + if ( offsets.length === 0 ) { + + _gl.drawArrays( mode, 0, position.array.length / 3 ); + + _this.info.render.calls ++; + _this.info.render.vertices += position.array.length / 3; + + } else { + + for ( var i = 0, il = offsets.length; i < il; i ++ ) { + + _gl.drawArrays( mode, offsets[ i ].index, offsets[ i ].count ); + + _this.info.render.calls ++; + _this.info.render.vertices += offsets[ i ].count; + + } + + } + + } + + } + + }; + + this.renderBuffer = function ( camera, lights, fog, material, geometryGroup, object ) { + + if ( material.visible === false ) return; + + updateObject( object ); + + var program = setProgram( camera, lights, fog, material, object ); + + var attributes = program.attributes; + + var updateBuffers = false, + wireframeBit = material.wireframe ? 1 : 0, + geometryProgram = geometryGroup.id + '_' + program.id + '_' + wireframeBit; + + if ( geometryProgram !== _currentGeometryProgram ) { + + _currentGeometryProgram = geometryProgram; + updateBuffers = true; + + } + + if ( updateBuffers ) { + + state.initAttributes(); + + } + + // vertices + + if ( ! material.morphTargets && attributes.position >= 0 ) { + + if ( updateBuffers ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglVertexBuffer ); + + state.enableAttribute( attributes.position ); + + _gl.vertexAttribPointer( attributes.position, 3, _gl.FLOAT, false, 0, 0 ); + + } + + } else { + + if ( object.morphTargetBase ) { + + setupMorphTargets( material, geometryGroup, object ); + + } + + } + + + if ( updateBuffers ) { + + // custom attributes + + // Use the per-geometryGroup custom attribute arrays which are setup in initMeshBuffers + + if ( geometryGroup.__webglCustomAttributesList ) { + + for ( var i = 0, il = geometryGroup.__webglCustomAttributesList.length; i < il; i ++ ) { + + var attribute = geometryGroup.__webglCustomAttributesList[ i ]; + + if ( attributes[ attribute.buffer.belongsToAttribute ] >= 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, attribute.buffer ); + + state.enableAttribute( attributes[ attribute.buffer.belongsToAttribute ] ); + + _gl.vertexAttribPointer( attributes[ attribute.buffer.belongsToAttribute ], attribute.size, _gl.FLOAT, false, 0, 0 ); + + } + + } + + } + + + // colors + + if ( attributes.color >= 0 ) { + + if ( object.geometry.colors.length > 0 || object.geometry.faces.length > 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglColorBuffer ); + + state.enableAttribute( attributes.color ); + + _gl.vertexAttribPointer( attributes.color, 3, _gl.FLOAT, false, 0, 0 ); + + } else if ( material.defaultAttributeValues !== undefined ) { + + + _gl.vertexAttrib3fv( attributes.color, material.defaultAttributeValues.color ); + + } + + } + + // normals + + if ( attributes.normal >= 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglNormalBuffer ); + + state.enableAttribute( attributes.normal ); + + _gl.vertexAttribPointer( attributes.normal, 3, _gl.FLOAT, false, 0, 0 ); + + } + + // tangents + + if ( attributes.tangent >= 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglTangentBuffer ); + + state.enableAttribute( attributes.tangent ); + + _gl.vertexAttribPointer( attributes.tangent, 4, _gl.FLOAT, false, 0, 0 ); + + } + + // uvs + + if ( attributes.uv >= 0 ) { + + if ( object.geometry.faceVertexUvs[ 0 ] ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglUVBuffer ); + + state.enableAttribute( attributes.uv ); + + _gl.vertexAttribPointer( attributes.uv, 2, _gl.FLOAT, false, 0, 0 ); + + } else if ( material.defaultAttributeValues !== undefined ) { + + + _gl.vertexAttrib2fv( attributes.uv, material.defaultAttributeValues.uv ); + + } + + } + + if ( attributes.uv2 >= 0 ) { + + if ( object.geometry.faceVertexUvs[ 1 ] ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglUV2Buffer ); + + state.enableAttribute( attributes.uv2 ); + + _gl.vertexAttribPointer( attributes.uv2, 2, _gl.FLOAT, false, 0, 0 ); + + } else if ( material.defaultAttributeValues !== undefined ) { + + + _gl.vertexAttrib2fv( attributes.uv2, material.defaultAttributeValues.uv2 ); + + } + + } + + if ( material.skinning && + attributes.skinIndex >= 0 && attributes.skinWeight >= 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglSkinIndicesBuffer ); + + state.enableAttribute( attributes.skinIndex ); + + _gl.vertexAttribPointer( attributes.skinIndex, 4, _gl.FLOAT, false, 0, 0 ); + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglSkinWeightsBuffer ); + + state.enableAttribute( attributes.skinWeight ); + + _gl.vertexAttribPointer( attributes.skinWeight, 4, _gl.FLOAT, false, 0, 0 ); + + } + + // line distances + + if ( attributes.lineDistance >= 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglLineDistanceBuffer ); + + state.enableAttribute( attributes.lineDistance ); + + _gl.vertexAttribPointer( attributes.lineDistance, 1, _gl.FLOAT, false, 0, 0 ); + + } + + } + + state.disableUnusedAttributes(); + + // render mesh + + if ( object instanceof THREE.Mesh ) { + + var type = geometryGroup.__typeArray === Uint32Array ? _gl.UNSIGNED_INT : _gl.UNSIGNED_SHORT; + + // wireframe + + if ( material.wireframe ) { + + state.setLineWidth( material.wireframeLinewidth * pixelRatio ); + + if ( updateBuffers ) _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, geometryGroup.__webglLineBuffer ); + _gl.drawElements( _gl.LINES, geometryGroup.__webglLineCount, type, 0 ); + + // triangles + + } else { + + if ( updateBuffers ) _gl.bindBuffer( _gl.ELEMENT_ARRAY_BUFFER, geometryGroup.__webglFaceBuffer ); + _gl.drawElements( _gl.TRIANGLES, geometryGroup.__webglFaceCount, type, 0 ); + + } + + _this.info.render.calls ++; + _this.info.render.vertices += geometryGroup.__webglFaceCount; + _this.info.render.faces += geometryGroup.__webglFaceCount / 3; + + // render lines + + } else if ( object instanceof THREE.Line ) { + + var mode = ( object.mode === THREE.LineStrip ) ? _gl.LINE_STRIP : _gl.LINES; + + state.setLineWidth( material.linewidth * pixelRatio ); + + _gl.drawArrays( mode, 0, geometryGroup.__webglLineCount ); + + _this.info.render.calls ++; + + // render particles + + } else if ( object instanceof THREE.PointCloud ) { + + _gl.drawArrays( _gl.POINTS, 0, geometryGroup.__webglParticleCount ); + + _this.info.render.calls ++; + _this.info.render.points += geometryGroup.__webglParticleCount; + + } + + }; + + function setupMorphTargets ( material, geometryGroup, object ) { + + // set base + + var attributes = material.program.attributes; + + if ( object.morphTargetBase !== - 1 && attributes.position >= 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglMorphTargetsBuffers[ object.morphTargetBase ] ); + + state.enableAttribute( attributes.position ); + + _gl.vertexAttribPointer( attributes.position, 3, _gl.FLOAT, false, 0, 0 ); + + } else if ( attributes.position >= 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglVertexBuffer ); + + state.enableAttribute( attributes.position ); + + _gl.vertexAttribPointer( attributes.position, 3, _gl.FLOAT, false, 0, 0 ); + + } + + if ( object.morphTargetForcedOrder.length ) { + + // set forced order + + var m = 0; + var order = object.morphTargetForcedOrder; + var influences = object.morphTargetInfluences; + + var attribute; + + while ( m < material.numSupportedMorphTargets && m < order.length ) { + + attribute = attributes[ 'morphTarget' + m ]; + + if ( attribute >= 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglMorphTargetsBuffers[ order[ m ] ] ); + + state.enableAttribute( attribute ); + + _gl.vertexAttribPointer( attribute, 3, _gl.FLOAT, false, 0, 0 ); + + } + + attribute = attributes[ 'morphNormal' + m ]; + + if ( attribute >= 0 && material.morphNormals ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglMorphNormalsBuffers[ order[ m ] ] ); + + state.enableAttribute( attribute ); + + _gl.vertexAttribPointer( attribute, 3, _gl.FLOAT, false, 0, 0 ); + + } + + object.__webglMorphTargetInfluences[ m ] = influences[ order[ m ] ]; + + m ++; + + } + + } else { + + // find the most influencing + + var activeInfluenceIndices = []; + var influences = object.morphTargetInfluences; + var morphTargets = object.geometry.morphTargets; + + if ( influences.length > morphTargets.length ) { + + console.warn( 'THREE.WebGLRenderer: Influences array is bigger than morphTargets array.' ); + influences.length = morphTargets.length; + + } + + for ( var i = 0, il = influences.length; i < il; i ++ ) { + + var influence = influences[ i ]; + + activeInfluenceIndices.push( [ influence, i ] ); + + } + + if ( activeInfluenceIndices.length > material.numSupportedMorphTargets ) { + + activeInfluenceIndices.sort( numericalSort ); + activeInfluenceIndices.length = material.numSupportedMorphTargets; + + } else if ( activeInfluenceIndices.length > material.numSupportedMorphNormals ) { + + activeInfluenceIndices.sort( numericalSort ); + + } else if ( activeInfluenceIndices.length === 0 ) { + + activeInfluenceIndices.push( [ 0, 0 ] ); + + } + + var attribute; + + for ( var m = 0, ml = material.numSupportedMorphTargets; m < ml; m ++ ) { + + if ( activeInfluenceIndices[ m ] ) { + + var influenceIndex = activeInfluenceIndices[ m ][ 1 ]; + + attribute = attributes[ 'morphTarget' + m ]; + + if ( attribute >= 0 ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglMorphTargetsBuffers[ influenceIndex ] ); + + state.enableAttribute( attribute ); + + _gl.vertexAttribPointer( attribute, 3, _gl.FLOAT, false, 0, 0 ); + + } + + attribute = attributes[ 'morphNormal' + m ]; + + if ( attribute >= 0 && material.morphNormals ) { + + _gl.bindBuffer( _gl.ARRAY_BUFFER, geometryGroup.__webglMorphNormalsBuffers[ influenceIndex ] ); + + state.enableAttribute( attribute ); + + _gl.vertexAttribPointer( attribute, 3, _gl.FLOAT, false, 0, 0 ); + + } + + object.__webglMorphTargetInfluences[ m ] = influences[ influenceIndex ]; + + } else { + + /* + _gl.vertexAttribPointer( attributes[ "morphTarget" + m ], 3, _gl.FLOAT, false, 0, 0 ); + + if ( material.morphNormals ) { + + _gl.vertexAttribPointer( attributes[ "morphNormal" + m ], 3, _gl.FLOAT, false, 0, 0 ); + + } + */ + + object.__webglMorphTargetInfluences[ m ] = 0; + + } + + } + + } + + // load updated influences uniform + + if ( material.program.uniforms.morphTargetInfluences !== null ) { + + _gl.uniform1fv( material.program.uniforms.morphTargetInfluences, object.__webglMorphTargetInfluences ); + + } + + } + + // Sorting + + function painterSortStable ( a, b ) { + + if ( a.object.renderOrder !== b.object.renderOrder ) { + + return a.object.renderOrder - b.object.renderOrder; + + } else if ( a.material.id !== b.material.id ) { + + return a.material.id - b.material.id; + + } else if ( a.z !== b.z ) { + + return a.z - b.z; + + } else { + + return a.id - b.id; + + } + + } + + function reversePainterSortStable ( a, b ) { + + if ( a.object.renderOrder !== b.object.renderOrder ) { + + return a.object.renderOrder - b.object.renderOrder; + + } if ( a.z !== b.z ) { + + return b.z - a.z; + + } else { + + return a.id - b.id; + + } + + } + + function numericalSort ( a, b ) { + + return b[ 0 ] - a[ 0 ]; + + } + + // Rendering + + this.render = function ( scene, camera, renderTarget, forceClear ) { + + if ( camera instanceof THREE.Camera === false ) { + + THREE.error( 'THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.' ); + return; + + } + + var fog = scene.fog; + + // reset caching for this frame + + _currentGeometryProgram = ''; + _currentMaterialId = - 1; + _currentCamera = null; + _lightsNeedUpdate = true; + + // update scene graph + + if ( scene.autoUpdate === true ) scene.updateMatrixWorld(); + + // update camera matrices and frustum + + if ( camera.parent === undefined ) camera.updateMatrixWorld(); + + // update Skeleton objects + + scene.traverse( function ( object ) { + + if ( object instanceof THREE.SkinnedMesh ) { + + object.skeleton.update(); + + } + + } ); + + camera.matrixWorldInverse.getInverse( camera.matrixWorld ); + + _projScreenMatrix.multiplyMatrices( camera.projectionMatrix, camera.matrixWorldInverse ); + _frustum.setFromMatrix( _projScreenMatrix ); + + lights.length = 0; + opaqueObjects.length = 0; + transparentObjects.length = 0; + + sprites.length = 0; + lensFlares.length = 0; + + projectObject( scene ); + + if ( _this.sortObjects === true ) { + + opaqueObjects.sort( painterSortStable ); + transparentObjects.sort( reversePainterSortStable ); + + } + + // custom render plugins (pre pass) + + shadowMapPlugin.render( scene, camera ); + + // + + _this.info.render.calls = 0; + _this.info.render.vertices = 0; + _this.info.render.faces = 0; + _this.info.render.points = 0; + + this.setRenderTarget( renderTarget ); + + if ( this.autoClear || forceClear ) { + + this.clear( this.autoClearColor, this.autoClearDepth, this.autoClearStencil ); + + } + + // set matrices for immediate objects + + for ( var i = 0, il = _webglObjectsImmediate.length; i < il; i ++ ) { + + var webglObject = _webglObjectsImmediate[ i ]; + var object = webglObject.object; + + if ( object.visible ) { + + setupMatrices( object, camera ); + + unrollImmediateBufferMaterial( webglObject ); + + } + + } + + if ( scene.overrideMaterial ) { + + var overrideMaterial = scene.overrideMaterial; + + setMaterial( overrideMaterial ); + + renderObjects( opaqueObjects, camera, lights, fog, overrideMaterial ); + renderObjects( transparentObjects, camera, lights, fog, overrideMaterial ); + renderObjectsImmediate( _webglObjectsImmediate, '', camera, lights, fog, overrideMaterial ); + + } else { + + // opaque pass (front-to-back order) + + state.setBlending( THREE.NoBlending ); + + renderObjects( opaqueObjects, camera, lights, fog, null ); + renderObjectsImmediate( _webglObjectsImmediate, 'opaque', camera, lights, fog, null ); + + // transparent pass (back-to-front order) + + renderObjects( transparentObjects, camera, lights, fog, null ); + renderObjectsImmediate( _webglObjectsImmediate, 'transparent', camera, lights, fog, null ); + + } + + // custom render plugins (post pass) + + spritePlugin.render( scene, camera ); + lensFlarePlugin.render( scene, camera, _currentWidth, _currentHeight ); + + // Generate mipmap if we're using any kind of mipmap filtering + + if ( renderTarget && renderTarget.generateMipmaps && renderTarget.minFilter !== THREE.NearestFilter && renderTarget.minFilter !== THREE.LinearFilter ) { + + updateRenderTargetMipmap( renderTarget ); + + } + + // Ensure depth buffer writing is enabled so it can be cleared on next render + + state.setDepthTest( true ); + state.setDepthWrite( true ); + state.setColorWrite( true ); + + // _gl.finish(); + + }; + + function projectObject( object ) { + + if ( object.visible === false ) return; + + if ( object instanceof THREE.Scene || object instanceof THREE.Group ) { + + // skip + + } else { + + initObject( object ); + + if ( object instanceof THREE.Light ) { + + lights.push( object ); + + } else if ( object instanceof THREE.Sprite ) { + + sprites.push( object ); + + } else if ( object instanceof THREE.LensFlare ) { + + lensFlares.push( object ); + + } else { + + var webglObjects = _webglObjects[ object.id ]; + + if ( webglObjects && ( object.frustumCulled === false || _frustum.intersectsObject( object ) === true ) ) { + + for ( var i = 0, l = webglObjects.length; i < l; i ++ ) { + + var webglObject = webglObjects[ i ]; + + unrollBufferMaterial( webglObject ); + + webglObject.render = true; + + if ( _this.sortObjects === true ) { + + _vector3.setFromMatrixPosition( object.matrixWorld ); + _vector3.applyProjection( _projScreenMatrix ); + + webglObject.z = _vector3.z; + + } + + } + + } + + } + + } + + for ( var i = 0, l = object.children.length; i < l; i ++ ) { + + projectObject( object.children[ i ] ); + + } + + } + + function renderObjects( renderList, camera, lights, fog, overrideMaterial ) { + + var material; + + for ( var i = 0, l = renderList.length; i < l; i ++ ) { + + var webglObject = renderList[ i ]; + + var object = webglObject.object; + var buffer = webglObject.buffer; + + setupMatrices( object, camera ); + + if ( overrideMaterial ) { + + material = overrideMaterial; + + } else { + + material = webglObject.material; + + if ( ! material ) continue; + + setMaterial( material ); + + } + + _this.setMaterialFaces( material ); + + if ( buffer instanceof THREE.BufferGeometry ) { + + _this.renderBufferDirect( camera, lights, fog, material, buffer, object ); + + } else { + + _this.renderBuffer( camera, lights, fog, material, buffer, object ); + + } + + } + + } + + function renderObjectsImmediate ( renderList, materialType, camera, lights, fog, overrideMaterial ) { + + var material; + + for ( var i = 0, l = renderList.length; i < l; i ++ ) { + + var webglObject = renderList[ i ]; + var object = webglObject.object; + + if ( object.visible ) { + + if ( overrideMaterial ) { + + material = overrideMaterial; + + } else { + + material = webglObject[ materialType ]; + + if ( ! material ) continue; + + setMaterial( material ); + + } + + _this.renderImmediateObject( camera, lights, fog, material, object ); + + } + + } + + } + + this.renderImmediateObject = function ( camera, lights, fog, material, object ) { + + var program = setProgram( camera, lights, fog, material, object ); + + _currentGeometryProgram = ''; + + _this.setMaterialFaces( material ); + + if ( object.immediateRenderCallback ) { + + object.immediateRenderCallback( program, _gl, _frustum ); + + } else { + + object.render( function ( object ) { _this.renderBufferImmediate( object, program, material ); } ); + + } + + }; + + function unrollImmediateBufferMaterial ( globject ) { + + var object = globject.object, + material = object.material; + + if ( material.transparent ) { + + globject.transparent = material; + globject.opaque = null; + + } else { + + globject.opaque = material; + globject.transparent = null; + + } + + } + + function unrollBufferMaterial ( globject ) { + + var object = globject.object; + var buffer = globject.buffer; + + var geometry = object.geometry; + var material = object.material; + + if ( material instanceof THREE.MeshFaceMaterial ) { + + var materialIndex = geometry instanceof THREE.BufferGeometry ? 0 : buffer.materialIndex; + + material = material.materials[ materialIndex ]; + + globject.material = material; + + if ( material.transparent ) { + + transparentObjects.push( globject ); + + } else { + + opaqueObjects.push( globject ); + + } + + } else if ( material ) { + + globject.material = material; + + if ( material.transparent ) { + + transparentObjects.push( globject ); + + } else { + + opaqueObjects.push( globject ); + + } + + } + + } + + function initObject( object ) { + + if ( object.__webglInit === undefined ) { + + object.__webglInit = true; + object._modelViewMatrix = new THREE.Matrix4(); + object._normalMatrix = new THREE.Matrix3(); + + object.addEventListener( 'removed', onObjectRemoved ); + + } + + var geometry = object.geometry; + + if ( geometry === undefined ) { + + // ImmediateRenderObject + + } else if ( geometry.__webglInit === undefined ) { + + geometry.__webglInit = true; + geometry.addEventListener( 'dispose', onGeometryDispose ); + + if ( geometry instanceof THREE.BufferGeometry ) { + + _this.info.memory.geometries ++; + + } else if ( object instanceof THREE.Mesh ) { + + initGeometryGroups( object, geometry ); + + } else if ( object instanceof THREE.Line ) { + + if ( geometry.__webglVertexBuffer === undefined ) { + + createLineBuffers( geometry ); + initLineBuffers( geometry, object ); + + geometry.verticesNeedUpdate = true; + geometry.colorsNeedUpdate = true; + geometry.lineDistancesNeedUpdate = true; + + } + + } else if ( object instanceof THREE.PointCloud ) { + + if ( geometry.__webglVertexBuffer === undefined ) { + + createParticleBuffers( geometry ); + initParticleBuffers( geometry, object ); + + geometry.verticesNeedUpdate = true; + geometry.colorsNeedUpdate = true; + + } + + } + + } + + if ( object.__webglActive === undefined) { + + object.__webglActive = true; + + if ( object instanceof THREE.Mesh ) { + + if ( geometry instanceof THREE.BufferGeometry ) { + + addBuffer( _webglObjects, geometry, object ); + + } else if ( geometry instanceof THREE.Geometry ) { + + var geometryGroupsList = geometryGroups[ geometry.id ]; + + for ( var i = 0,l = geometryGroupsList.length; i < l; i ++ ) { + + addBuffer( _webglObjects, geometryGroupsList[ i ], object ); + + } + + } + + } else if ( object instanceof THREE.Line || object instanceof THREE.PointCloud ) { + + addBuffer( _webglObjects, geometry, object ); + + } else if ( object instanceof THREE.ImmediateRenderObject || object.immediateRenderCallback ) { + + addBufferImmediate( _webglObjectsImmediate, object ); + + } + + } + + } + + // Geometry splitting + + var geometryGroups = {}; + var geometryGroupCounter = 0; + + function makeGroups( geometry, usesFaceMaterial ) { + + var maxVerticesInGroup = extensions.get( 'OES_element_index_uint' ) ? 4294967296 : 65535; + + var groupHash, hash_map = {}; + + var numMorphTargets = geometry.morphTargets.length; + var numMorphNormals = geometry.morphNormals.length; + + var group; + var groups = {}; + var groupsList = []; + + for ( var f = 0, fl = geometry.faces.length; f < fl; f ++ ) { + + var face = geometry.faces[ f ]; + var materialIndex = usesFaceMaterial ? face.materialIndex : 0; + + if ( ! ( materialIndex in hash_map ) ) { + + hash_map[ materialIndex ] = { hash: materialIndex, counter: 0 }; + + } + + groupHash = hash_map[ materialIndex ].hash + '_' + hash_map[ materialIndex ].counter; + + if ( ! ( groupHash in groups ) ) { + + group = { + id: geometryGroupCounter ++, + faces3: [], + materialIndex: materialIndex, + vertices: 0, + numMorphTargets: numMorphTargets, + numMorphNormals: numMorphNormals + }; + + groups[ groupHash ] = group; + groupsList.push( group ); + + } + + if ( groups[ groupHash ].vertices + 3 > maxVerticesInGroup ) { + + hash_map[ materialIndex ].counter += 1; + groupHash = hash_map[ materialIndex ].hash + '_' + hash_map[ materialIndex ].counter; + + if ( ! ( groupHash in groups ) ) { + + group = { + id: geometryGroupCounter ++, + faces3: [], + materialIndex: materialIndex, + vertices: 0, + numMorphTargets: numMorphTargets, + numMorphNormals: numMorphNormals + }; + + groups[ groupHash ] = group; + groupsList.push( group ); + + } + + } + + groups[ groupHash ].faces3.push( f ); + groups[ groupHash ].vertices += 3; + + } + + return groupsList; + + } + + function initGeometryGroups( object, geometry ) { + + var material = object.material, addBuffers = false; + + if ( geometryGroups[ geometry.id ] === undefined || geometry.groupsNeedUpdate === true ) { + + delete _webglObjects[ object.id ]; + + geometryGroups[ geometry.id ] = makeGroups( geometry, material instanceof THREE.MeshFaceMaterial ); + + geometry.groupsNeedUpdate = false; + + } + + var geometryGroupsList = geometryGroups[ geometry.id ]; + + // create separate VBOs per geometry chunk + + for ( var i = 0, il = geometryGroupsList.length; i < il; i ++ ) { + + var geometryGroup = geometryGroupsList[ i ]; + + // initialise VBO on the first access + + if ( geometryGroup.__webglVertexBuffer === undefined ) { + + createMeshBuffers( geometryGroup ); + initMeshBuffers( geometryGroup, object ); + + geometry.verticesNeedUpdate = true; + geometry.morphTargetsNeedUpdate = true; + geometry.elementsNeedUpdate = true; + geometry.uvsNeedUpdate = true; + geometry.normalsNeedUpdate = true; + geometry.tangentsNeedUpdate = true; + geometry.colorsNeedUpdate = true; + + addBuffers = true; + + } else { + + addBuffers = false; + + } + + if ( addBuffers || object.__webglActive === undefined ) { + + addBuffer( _webglObjects, geometryGroup, object ); + + } + + } + + object.__webglActive = true; + + } + + function addBuffer( objlist, buffer, object ) { + + var id = object.id; + objlist[id] = objlist[id] || []; + objlist[id].push( + { + id: id, + buffer: buffer, + object: object, + material: null, + z: 0 + } + ); + + }; + + function addBufferImmediate( objlist, object ) { + + objlist.push( + { + id: null, + object: object, + opaque: null, + transparent: null, + z: 0 + } + ); + + }; + + // Objects updates + + function updateObject( object ) { + + var geometry = object.geometry; + + if ( geometry instanceof THREE.BufferGeometry ) { + + var attributes = geometry.attributes; + var attributesKeys = geometry.attributesKeys; + + for ( var i = 0, l = attributesKeys.length; i < l; i ++ ) { + + var key = attributesKeys[ i ]; + var attribute = attributes[ key ]; + var bufferType = ( key === 'index' ) ? _gl.ELEMENT_ARRAY_BUFFER : _gl.ARRAY_BUFFER; + + if ( attribute.buffer === undefined ) { + + attribute.buffer = _gl.createBuffer(); + _gl.bindBuffer( bufferType, attribute.buffer ); + _gl.bufferData( bufferType, attribute.array, ( attribute instanceof THREE.DynamicBufferAttribute ) ? _gl.DYNAMIC_DRAW : _gl.STATIC_DRAW ); + + attribute.needsUpdate = false; + + } else if ( attribute.needsUpdate === true ) { + + _gl.bindBuffer( bufferType, attribute.buffer ); + + if ( attribute.updateRange === undefined || attribute.updateRange.count === -1 ) { // Not using update ranges + + _gl.bufferSubData( bufferType, 0, attribute.array ); + + } else if ( attribute.updateRange.count === 0 ) { + + console.error( 'THREE.WebGLRenderer.updateObject: using updateRange for THREE.DynamicBufferAttribute and marked as needsUpdate but count is 0, ensure you are using set methods or updating manually.' ); + + } else { + + _gl.bufferSubData( bufferType, attribute.updateRange.offset * attribute.array.BYTES_PER_ELEMENT, + attribute.array.subarray( attribute.updateRange.offset, attribute.updateRange.offset + attribute.updateRange.count ) ); + + attribute.updateRange.count = 0; // reset range + + } + + attribute.needsUpdate = false; + + } + + } + + } else if ( object instanceof THREE.Mesh ) { + + // check all geometry groups + + if ( geometry.groupsNeedUpdate === true ) { + + initGeometryGroups( object, geometry ); + + } + + var geometryGroupsList = geometryGroups[ geometry.id ]; + + for ( var i = 0, il = geometryGroupsList.length; i < il; i ++ ) { + + var geometryGroup = geometryGroupsList[ i ]; + var material = getBufferMaterial( object, geometryGroup ); + + var customAttributesDirty = material.attributes && areCustomAttributesDirty( material ); + + if ( geometry.verticesNeedUpdate || geometry.morphTargetsNeedUpdate || geometry.elementsNeedUpdate || + geometry.uvsNeedUpdate || geometry.normalsNeedUpdate || + geometry.colorsNeedUpdate || geometry.tangentsNeedUpdate || customAttributesDirty ) { + + setMeshBuffers( geometryGroup, object, _gl.DYNAMIC_DRAW, ! geometry.dynamic, material ); + + } + + } + + geometry.verticesNeedUpdate = false; + geometry.morphTargetsNeedUpdate = false; + geometry.elementsNeedUpdate = false; + geometry.uvsNeedUpdate = false; + geometry.normalsNeedUpdate = false; + geometry.colorsNeedUpdate = false; + geometry.tangentsNeedUpdate = false; + + material.attributes && clearCustomAttributes( material ); + + } else if ( object instanceof THREE.Line ) { + + var material = getBufferMaterial( object, geometry ); + var customAttributesDirty = material.attributes && areCustomAttributesDirty( material ); + + if ( geometry.verticesNeedUpdate || geometry.colorsNeedUpdate || geometry.lineDistancesNeedUpdate || customAttributesDirty ) { + + setLineBuffers( geometry, _gl.DYNAMIC_DRAW ); + + } + + geometry.verticesNeedUpdate = false; + geometry.colorsNeedUpdate = false; + geometry.lineDistancesNeedUpdate = false; + + material.attributes && clearCustomAttributes( material ); + + } else if ( object instanceof THREE.PointCloud ) { + + var material = getBufferMaterial( object, geometry ); + var customAttributesDirty = material.attributes && areCustomAttributesDirty( material ); + + if ( geometry.verticesNeedUpdate || geometry.colorsNeedUpdate || customAttributesDirty ) { + + setParticleBuffers( geometry, _gl.DYNAMIC_DRAW, object ); + + } + + geometry.verticesNeedUpdate = false; + geometry.colorsNeedUpdate = false; + + material.attributes && clearCustomAttributes( material ); + + } + + } + + // Objects updates - custom attributes check + + function areCustomAttributesDirty( material ) { + + for ( var name in material.attributes ) { + + if ( material.attributes[ name ].needsUpdate ) return true; + + } + + return false; + + } + + function clearCustomAttributes( material ) { + + for ( var name in material.attributes ) { + + material.attributes[ name ].needsUpdate = false; + + } + + } + + // Objects removal + + function removeObject( object ) { + + if ( object instanceof THREE.Mesh || + object instanceof THREE.PointCloud || + object instanceof THREE.Line ) { + + delete _webglObjects[ object.id ]; + + } else if ( object instanceof THREE.ImmediateRenderObject || object.immediateRenderCallback ) { + + removeInstances( _webglObjectsImmediate, object ); + + } + + delete object.__webglInit; + delete object._modelViewMatrix; + delete object._normalMatrix; + + delete object.__webglActive; + + } + + function removeInstances( objlist, object ) { + + for ( var o = objlist.length - 1; o >= 0; o -- ) { + + if ( objlist[ o ].object === object ) { + + objlist.splice( o, 1 ); + + } + + } + + } + + // Materials + + var shaderIDs = { + MeshDepthMaterial: 'depth', + MeshNormalMaterial: 'normal', + MeshBasicMaterial: 'basic', + MeshLambertMaterial: 'lambert', + MeshPhongMaterial: 'phong', + LineBasicMaterial: 'basic', + LineDashedMaterial: 'dashed', + PointCloudMaterial: 'particle_basic' + }; + + function initMaterial( material, lights, fog, object ) { + + material.addEventListener( 'dispose', onMaterialDispose ); + + var shaderID = shaderIDs[ material.type ]; + + if ( shaderID ) { + + var shader = THREE.ShaderLib[ shaderID ]; + + material.__webglShader = { + uniforms: THREE.UniformsUtils.clone( shader.uniforms ), + vertexShader: shader.vertexShader, + fragmentShader: shader.fragmentShader + } + + } else { + + material.__webglShader = { + uniforms: material.uniforms, + vertexShader: material.vertexShader, + fragmentShader: material.fragmentShader + } + + } + + // heuristics to create shader parameters according to lights in the scene + // (not to blow over maxLights budget) + + var maxLightCount = allocateLights( lights ); + var maxShadows = allocateShadows( lights ); + var maxBones = allocateBones( object ); + + var parameters = { + + precision: _precision, + supportsVertexTextures: _supportsVertexTextures, + + map: !! material.map, + envMap: !! material.envMap, + envMapMode: material.envMap && material.envMap.mapping, + lightMap: !! material.lightMap, + bumpMap: !! material.bumpMap, + normalMap: !! material.normalMap, + specularMap: !! material.specularMap, + alphaMap: !! material.alphaMap, + + combine: material.combine, + + vertexColors: material.vertexColors, + + fog: fog, + useFog: material.fog, + fogExp: fog instanceof THREE.FogExp2, + + flatShading: material.shading === THREE.FlatShading, + + sizeAttenuation: material.sizeAttenuation, + logarithmicDepthBuffer: _logarithmicDepthBuffer, + + skinning: material.skinning, + maxBones: maxBones, + useVertexTexture: _supportsBoneTextures && object && object.skeleton && object.skeleton.useVertexTexture, + + morphTargets: material.morphTargets, + morphNormals: material.morphNormals, + maxMorphTargets: _this.maxMorphTargets, + maxMorphNormals: _this.maxMorphNormals, + + maxDirLights: maxLightCount.directional, + maxPointLights: maxLightCount.point, + maxSpotLights: maxLightCount.spot, + maxHemiLights: maxLightCount.hemi, + + maxShadows: maxShadows, + shadowMapEnabled: _this.shadowMapEnabled && object.receiveShadow && maxShadows > 0, + shadowMapType: _this.shadowMapType, + shadowMapDebug: _this.shadowMapDebug, + shadowMapCascade: _this.shadowMapCascade, + + alphaTest: material.alphaTest, + metal: material.metal, + wrapAround: material.wrapAround, + doubleSided: material.side === THREE.DoubleSide, + flipSided: material.side === THREE.BackSide + + }; + + // Generate code + + var chunks = []; + + if ( shaderID ) { + + chunks.push( shaderID ); + + } else { + + chunks.push( material.fragmentShader ); + chunks.push( material.vertexShader ); + + } + + if ( material.defines !== undefined ) { + + for ( var name in material.defines ) { + + chunks.push( name ); + chunks.push( material.defines[ name ] ); + + } + + } + + for ( var name in parameters ) { + + chunks.push( name ); + chunks.push( parameters[ name ] ); + + } + + var code = chunks.join(); + + var program; + + // Check if code has been already compiled + + for ( var p = 0, pl = _programs.length; p < pl; p ++ ) { + + var programInfo = _programs[ p ]; + + if ( programInfo.code === code ) { + + program = programInfo; + program.usedTimes ++; + + break; + + } + + } + + if ( program === undefined ) { + + program = new THREE.WebGLProgram( _this, code, material, parameters ); + _programs.push( program ); + + _this.info.memory.programs = _programs.length; + + } + + material.program = program; + + var attributes = program.attributes; + + if ( material.morphTargets ) { + + material.numSupportedMorphTargets = 0; + + var id, base = 'morphTarget'; + + for ( var i = 0; i < _this.maxMorphTargets; i ++ ) { + + id = base + i; + + if ( attributes[ id ] >= 0 ) { + + material.numSupportedMorphTargets ++; + + } + + } + + } + + if ( material.morphNormals ) { + + material.numSupportedMorphNormals = 0; + + var id, base = 'morphNormal'; + + for ( i = 0; i < _this.maxMorphNormals; i ++ ) { + + id = base + i; + + if ( attributes[ id ] >= 0 ) { + + material.numSupportedMorphNormals ++; + + } + + } + + } + + material.uniformsList = []; + + for ( var u in material.__webglShader.uniforms ) { + + var location = material.program.uniforms[ u ]; + + if ( location ) { + material.uniformsList.push( [ material.__webglShader.uniforms[ u ], location ] ); + } + + } + + } + + function setMaterial( material ) { + + if ( material.transparent === true ) { + + state.setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst, material.blendEquationAlpha, material.blendSrcAlpha, material.blendDstAlpha ); + + } else { + + state.setBlending( THREE.NoBlending ); + + } + + state.setDepthTest( material.depthTest ); + state.setDepthWrite( material.depthWrite ); + state.setColorWrite( material.colorWrite ); + state.setPolygonOffset( material.polygonOffset, material.polygonOffsetFactor, material.polygonOffsetUnits ); + + } + + function setProgram( camera, lights, fog, material, object ) { + + _usedTextureUnits = 0; + + if ( material.needsUpdate ) { + + if ( material.program ) deallocateMaterial( material ); + + initMaterial( material, lights, fog, object ); + material.needsUpdate = false; + + } + + if ( material.morphTargets ) { + + if ( ! object.__webglMorphTargetInfluences ) { + + object.__webglMorphTargetInfluences = new Float32Array( _this.maxMorphTargets ); + + } + + } + + var refreshProgram = false; + var refreshMaterial = false; + var refreshLights = false; + + var program = material.program, + p_uniforms = program.uniforms, + m_uniforms = material.__webglShader.uniforms; + + if ( program.id !== _currentProgram ) { + + _gl.useProgram( program.program ); + _currentProgram = program.id; + + refreshProgram = true; + refreshMaterial = true; + refreshLights = true; + + } + + if ( material.id !== _currentMaterialId ) { + + if ( _currentMaterialId === -1 ) refreshLights = true; + _currentMaterialId = material.id; + + refreshMaterial = true; + + } + + if ( refreshProgram || camera !== _currentCamera ) { + + _gl.uniformMatrix4fv( p_uniforms.projectionMatrix, false, camera.projectionMatrix.elements ); + + if ( _logarithmicDepthBuffer ) { + + _gl.uniform1f( p_uniforms.logDepthBufFC, 2.0 / ( Math.log( camera.far + 1.0 ) / Math.LN2 ) ); + + } + + + if ( camera !== _currentCamera ) _currentCamera = camera; + + // load material specific uniforms + // (shader material also gets them for the sake of genericity) + + if ( material instanceof THREE.ShaderMaterial || + material instanceof THREE.MeshPhongMaterial || + material.envMap ) { + + if ( p_uniforms.cameraPosition !== null ) { + + _vector3.setFromMatrixPosition( camera.matrixWorld ); + _gl.uniform3f( p_uniforms.cameraPosition, _vector3.x, _vector3.y, _vector3.z ); + + } + + } + + if ( material instanceof THREE.MeshPhongMaterial || + material instanceof THREE.MeshLambertMaterial || + material instanceof THREE.MeshBasicMaterial || + material instanceof THREE.ShaderMaterial || + material.skinning ) { + + if ( p_uniforms.viewMatrix !== null ) { + + _gl.uniformMatrix4fv( p_uniforms.viewMatrix, false, camera.matrixWorldInverse.elements ); + + } + + } + + } + + // skinning uniforms must be set even if material didn't change + // auto-setting of texture unit for bone texture must go before other textures + // not sure why, but otherwise weird things happen + + if ( material.skinning ) { + + if ( object.bindMatrix && p_uniforms.bindMatrix !== null ) { + + _gl.uniformMatrix4fv( p_uniforms.bindMatrix, false, object.bindMatrix.elements ); + + } + + if ( object.bindMatrixInverse && p_uniforms.bindMatrixInverse !== null ) { + + _gl.uniformMatrix4fv( p_uniforms.bindMatrixInverse, false, object.bindMatrixInverse.elements ); + + } + + if ( _supportsBoneTextures && object.skeleton && object.skeleton.useVertexTexture ) { + + if ( p_uniforms.boneTexture !== null ) { + + var textureUnit = getTextureUnit(); + + _gl.uniform1i( p_uniforms.boneTexture, textureUnit ); + _this.setTexture( object.skeleton.boneTexture, textureUnit ); + + } + + if ( p_uniforms.boneTextureWidth !== null ) { + + _gl.uniform1i( p_uniforms.boneTextureWidth, object.skeleton.boneTextureWidth ); + + } + + if ( p_uniforms.boneTextureHeight !== null ) { + + _gl.uniform1i( p_uniforms.boneTextureHeight, object.skeleton.boneTextureHeight ); + + } + + } else if ( object.skeleton && object.skeleton.boneMatrices ) { + + if ( p_uniforms.boneGlobalMatrices !== null ) { + + _gl.uniformMatrix4fv( p_uniforms.boneGlobalMatrices, false, object.skeleton.boneMatrices ); + + } + + } + + } + + if ( refreshMaterial ) { + + // refresh uniforms common to several materials + + if ( fog && material.fog ) { + + refreshUniformsFog( m_uniforms, fog ); + + } + + if ( material instanceof THREE.MeshPhongMaterial || + material instanceof THREE.MeshLambertMaterial || + material.lights ) { + + if ( _lightsNeedUpdate ) { + + refreshLights = true; + setupLights( lights ); + _lightsNeedUpdate = false; + } + + if ( refreshLights ) { + refreshUniformsLights( m_uniforms, _lights ); + markUniformsLightsNeedsUpdate( m_uniforms, true ); + } else { + markUniformsLightsNeedsUpdate( m_uniforms, false ); + } + + } + + if ( material instanceof THREE.MeshBasicMaterial || + material instanceof THREE.MeshLambertMaterial || + material instanceof THREE.MeshPhongMaterial ) { + + refreshUniformsCommon( m_uniforms, material ); + + } + + // refresh single material specific uniforms + + if ( material instanceof THREE.LineBasicMaterial ) { + + refreshUniformsLine( m_uniforms, material ); + + } else if ( material instanceof THREE.LineDashedMaterial ) { + + refreshUniformsLine( m_uniforms, material ); + refreshUniformsDash( m_uniforms, material ); + + } else if ( material instanceof THREE.PointCloudMaterial ) { + + refreshUniformsParticle( m_uniforms, material ); + + } else if ( material instanceof THREE.MeshPhongMaterial ) { + + refreshUniformsPhong( m_uniforms, material ); + + } else if ( material instanceof THREE.MeshLambertMaterial ) { + + refreshUniformsLambert( m_uniforms, material ); + + } else if ( material instanceof THREE.MeshDepthMaterial ) { + + m_uniforms.mNear.value = camera.near; + m_uniforms.mFar.value = camera.far; + m_uniforms.opacity.value = material.opacity; + + } else if ( material instanceof THREE.MeshNormalMaterial ) { + + m_uniforms.opacity.value = material.opacity; + + } + + if ( object.receiveShadow && ! material._shadowPass ) { + + refreshUniformsShadow( m_uniforms, lights ); + + } + + // load common uniforms + + loadUniformsGeneric( material.uniformsList ); + + } + + loadUniformsMatrices( p_uniforms, object ); + + if ( p_uniforms.modelMatrix !== null ) { + + _gl.uniformMatrix4fv( p_uniforms.modelMatrix, false, object.matrixWorld.elements ); + + } + + return program; + + } + + // Uniforms (refresh uniforms objects) + + function refreshUniformsCommon ( uniforms, material ) { + + uniforms.opacity.value = material.opacity; + + uniforms.diffuse.value = material.color; + + uniforms.map.value = material.map; + uniforms.lightMap.value = material.lightMap; + uniforms.specularMap.value = material.specularMap; + uniforms.alphaMap.value = material.alphaMap; + + if ( material.bumpMap ) { + + uniforms.bumpMap.value = material.bumpMap; + uniforms.bumpScale.value = material.bumpScale; + + } + + if ( material.normalMap ) { + + uniforms.normalMap.value = material.normalMap; + uniforms.normalScale.value.copy( material.normalScale ); + + } + + // uv repeat and offset setting priorities + // 1. color map + // 2. specular map + // 3. normal map + // 4. bump map + // 5. alpha map + + var uvScaleMap; + + if ( material.map ) { + + uvScaleMap = material.map; + + } else if ( material.specularMap ) { + + uvScaleMap = material.specularMap; + + } else if ( material.normalMap ) { + + uvScaleMap = material.normalMap; + + } else if ( material.bumpMap ) { + + uvScaleMap = material.bumpMap; + + } else if ( material.alphaMap ) { + + uvScaleMap = material.alphaMap; + + } + + if ( uvScaleMap !== undefined ) { + + var offset = uvScaleMap.offset; + var repeat = uvScaleMap.repeat; + + uniforms.offsetRepeat.value.set( offset.x, offset.y, repeat.x, repeat.y ); + + } + + uniforms.envMap.value = material.envMap; + uniforms.flipEnvMap.value = ( material.envMap instanceof THREE.WebGLRenderTargetCube ) ? 1 : - 1; + + uniforms.reflectivity.value = material.reflectivity; + uniforms.refractionRatio.value = material.refractionRatio; + + } + + function refreshUniformsLine ( uniforms, material ) { + + uniforms.diffuse.value = material.color; + uniforms.opacity.value = material.opacity; + + } + + function refreshUniformsDash ( uniforms, material ) { + + uniforms.dashSize.value = material.dashSize; + uniforms.totalSize.value = material.dashSize + material.gapSize; + uniforms.scale.value = material.scale; + + } + + function refreshUniformsParticle ( uniforms, material ) { + + uniforms.psColor.value = material.color; + uniforms.opacity.value = material.opacity; + uniforms.size.value = material.size; + uniforms.scale.value = _canvas.height / 2.0; // TODO: Cache this. + + uniforms.map.value = material.map; + + if ( material.map !== null ) { + + var offset = material.map.offset; + var repeat = material.map.repeat; + + uniforms.offsetRepeat.value.set( offset.x, offset.y, repeat.x, repeat.y ); + + } + + } + + function refreshUniformsFog ( uniforms, fog ) { + + uniforms.fogColor.value = fog.color; + + if ( fog instanceof THREE.Fog ) { + + uniforms.fogNear.value = fog.near; + uniforms.fogFar.value = fog.far; + + } else if ( fog instanceof THREE.FogExp2 ) { + + uniforms.fogDensity.value = fog.density; + + } + + } + + function refreshUniformsPhong ( uniforms, material ) { + + uniforms.shininess.value = material.shininess; + + uniforms.emissive.value = material.emissive; + uniforms.specular.value = material.specular; + + if ( material.wrapAround ) { + + uniforms.wrapRGB.value.copy( material.wrapRGB ); + + } + + } + + function refreshUniformsLambert ( uniforms, material ) { + + uniforms.emissive.value = material.emissive; + + if ( material.wrapAround ) { + + uniforms.wrapRGB.value.copy( material.wrapRGB ); + + } + + } + + function refreshUniformsLights ( uniforms, lights ) { + + uniforms.ambientLightColor.value = lights.ambient; + + uniforms.directionalLightColor.value = lights.directional.colors; + uniforms.directionalLightDirection.value = lights.directional.positions; + + uniforms.pointLightColor.value = lights.point.colors; + uniforms.pointLightPosition.value = lights.point.positions; + uniforms.pointLightDistance.value = lights.point.distances; + uniforms.pointLightDecay.value = lights.point.decays; + + uniforms.spotLightColor.value = lights.spot.colors; + uniforms.spotLightPosition.value = lights.spot.positions; + uniforms.spotLightDistance.value = lights.spot.distances; + uniforms.spotLightDirection.value = lights.spot.directions; + uniforms.spotLightAngleCos.value = lights.spot.anglesCos; + uniforms.spotLightExponent.value = lights.spot.exponents; + uniforms.spotLightDecay.value = lights.spot.decays; + + uniforms.hemisphereLightSkyColor.value = lights.hemi.skyColors; + uniforms.hemisphereLightGroundColor.value = lights.hemi.groundColors; + uniforms.hemisphereLightDirection.value = lights.hemi.positions; + + } + + // If uniforms are marked as clean, they don't need to be loaded to the GPU. + + function markUniformsLightsNeedsUpdate ( uniforms, value ) { + + uniforms.ambientLightColor.needsUpdate = value; + + uniforms.directionalLightColor.needsUpdate = value; + uniforms.directionalLightDirection.needsUpdate = value; + + uniforms.pointLightColor.needsUpdate = value; + uniforms.pointLightPosition.needsUpdate = value; + uniforms.pointLightDistance.needsUpdate = value; + uniforms.pointLightDecay.needsUpdate = value; + + uniforms.spotLightColor.needsUpdate = value; + uniforms.spotLightPosition.needsUpdate = value; + uniforms.spotLightDistance.needsUpdate = value; + uniforms.spotLightDirection.needsUpdate = value; + uniforms.spotLightAngleCos.needsUpdate = value; + uniforms.spotLightExponent.needsUpdate = value; + uniforms.spotLightDecay.needsUpdate = value; + + uniforms.hemisphereLightSkyColor.needsUpdate = value; + uniforms.hemisphereLightGroundColor.needsUpdate = value; + uniforms.hemisphereLightDirection.needsUpdate = value; + + } + + function refreshUniformsShadow ( uniforms, lights ) { + + if ( uniforms.shadowMatrix ) { + + var j = 0; + + for ( var i = 0, il = lights.length; i < il; i ++ ) { + + var light = lights[ i ]; + + if ( ! light.castShadow ) continue; + + if ( light instanceof THREE.SpotLight || ( light instanceof THREE.DirectionalLight && ! light.shadowCascade ) ) { + + uniforms.shadowMap.value[ j ] = light.shadowMap; + uniforms.shadowMapSize.value[ j ] = light.shadowMapSize; + + uniforms.shadowMatrix.value[ j ] = light.shadowMatrix; + + uniforms.shadowDarkness.value[ j ] = light.shadowDarkness; + uniforms.shadowBias.value[ j ] = light.shadowBias; + + j ++; + + } + + } + + } + + } + + // Uniforms (load to GPU) + + function loadUniformsMatrices ( uniforms, object ) { + + _gl.uniformMatrix4fv( uniforms.modelViewMatrix, false, object._modelViewMatrix.elements ); + + if ( uniforms.normalMatrix ) { + + _gl.uniformMatrix3fv( uniforms.normalMatrix, false, object._normalMatrix.elements ); + + } + + } + + function getTextureUnit() { + + var textureUnit = _usedTextureUnits; + + if ( textureUnit >= _maxTextures ) { + + THREE.warn( 'WebGLRenderer: trying to use ' + textureUnit + ' texture units while this GPU supports only ' + _maxTextures ); + + } + + _usedTextureUnits += 1; + + return textureUnit; + + } + + function loadUniformsGeneric ( uniforms ) { + + var texture, textureUnit, offset; + + for ( var j = 0, jl = uniforms.length; j < jl; j ++ ) { + + var uniform = uniforms[ j ][ 0 ]; + + // needsUpdate property is not added to all uniforms. + if ( uniform.needsUpdate === false ) continue; + + var type = uniform.type; + var value = uniform.value; + var location = uniforms[ j ][ 1 ]; + + switch ( type ) { + + case '1i': + _gl.uniform1i( location, value ); + break; + + case '1f': + _gl.uniform1f( location, value ); + break; + + case '2f': + _gl.uniform2f( location, value[ 0 ], value[ 1 ] ); + break; + + case '3f': + _gl.uniform3f( location, value[ 0 ], value[ 1 ], value[ 2 ] ); + break; + + case '4f': + _gl.uniform4f( location, value[ 0 ], value[ 1 ], value[ 2 ], value[ 3 ] ); + break; + + case '1iv': + _gl.uniform1iv( location, value ); + break; + + case '3iv': + _gl.uniform3iv( location, value ); + break; + + case '1fv': + _gl.uniform1fv( location, value ); + break; + + case '2fv': + _gl.uniform2fv( location, value ); + break; + + case '3fv': + _gl.uniform3fv( location, value ); + break; + + case '4fv': + _gl.uniform4fv( location, value ); + break; + + case 'Matrix3fv': + _gl.uniformMatrix3fv( location, false, value ); + break; + + case 'Matrix4fv': + _gl.uniformMatrix4fv( location, false, value ); + break; + + // + + case 'i': + + // single integer + _gl.uniform1i( location, value ); + + break; + + case 'f': + + // single float + _gl.uniform1f( location, value ); + + break; + + case 'v2': + + // single THREE.Vector2 + _gl.uniform2f( location, value.x, value.y ); + + break; + + case 'v3': + + // single THREE.Vector3 + _gl.uniform3f( location, value.x, value.y, value.z ); + + break; + + case 'v4': + + // single THREE.Vector4 + _gl.uniform4f( location, value.x, value.y, value.z, value.w ); + + break; + + case 'c': + + // single THREE.Color + _gl.uniform3f( location, value.r, value.g, value.b ); + + break; + + case 'iv1': + + // flat array of integers (JS or typed array) + _gl.uniform1iv( location, value ); + + break; + + case 'iv': + + // flat array of integers with 3 x N size (JS or typed array) + _gl.uniform3iv( location, value ); + + break; + + case 'fv1': + + // flat array of floats (JS or typed array) + _gl.uniform1fv( location, value ); + + break; + + case 'fv': + + // flat array of floats with 3 x N size (JS or typed array) + _gl.uniform3fv( location, value ); + + break; + + case 'v2v': + + // array of THREE.Vector2 + + if ( uniform._array === undefined ) { + + uniform._array = new Float32Array( 2 * value.length ); + + } + + for ( var i = 0, il = value.length; i < il; i ++ ) { + + offset = i * 2; + + uniform._array[ offset ] = value[ i ].x; + uniform._array[ offset + 1 ] = value[ i ].y; + + } + + _gl.uniform2fv( location, uniform._array ); + + break; + + case 'v3v': + + // array of THREE.Vector3 + + if ( uniform._array === undefined ) { + + uniform._array = new Float32Array( 3 * value.length ); + + } + + for ( var i = 0, il = value.length; i < il; i ++ ) { + + offset = i * 3; + + uniform._array[ offset ] = value[ i ].x; + uniform._array[ offset + 1 ] = value[ i ].y; + uniform._array[ offset + 2 ] = value[ i ].z; + + } + + _gl.uniform3fv( location, uniform._array ); + + break; + + case 'v4v': + + // array of THREE.Vector4 + + if ( uniform._array === undefined ) { + + uniform._array = new Float32Array( 4 * value.length ); + + } + + for ( var i = 0, il = value.length; i < il; i ++ ) { + + offset = i * 4; + + uniform._array[ offset ] = value[ i ].x; + uniform._array[ offset + 1 ] = value[ i ].y; + uniform._array[ offset + 2 ] = value[ i ].z; + uniform._array[ offset + 3 ] = value[ i ].w; + + } + + _gl.uniform4fv( location, uniform._array ); + + break; + + case 'm3': + + // single THREE.Matrix3 + _gl.uniformMatrix3fv( location, false, value.elements ); + + break; + + case 'm3v': + + // array of THREE.Matrix3 + + if ( uniform._array === undefined ) { + + uniform._array = new Float32Array( 9 * value.length ); + + } + + for ( var i = 0, il = value.length; i < il; i ++ ) { + + value[ i ].flattenToArrayOffset( uniform._array, i * 9 ); + + } + + _gl.uniformMatrix3fv( location, false, uniform._array ); + + break; + + case 'm4': + + // single THREE.Matrix4 + _gl.uniformMatrix4fv( location, false, value.elements ); + + break; + + case 'm4v': + + // array of THREE.Matrix4 + + if ( uniform._array === undefined ) { + + uniform._array = new Float32Array( 16 * value.length ); + + } + + for ( var i = 0, il = value.length; i < il; i ++ ) { + + value[ i ].flattenToArrayOffset( uniform._array, i * 16 ); + + } + + _gl.uniformMatrix4fv( location, false, uniform._array ); + + break; + + case 't': + + // single THREE.Texture (2d or cube) + + texture = value; + textureUnit = getTextureUnit(); + + _gl.uniform1i( location, textureUnit ); + + if ( ! texture ) continue; + + if ( texture instanceof THREE.CubeTexture || + ( texture.image instanceof Array && texture.image.length === 6 ) ) { // CompressedTexture can have Array in image :/ + + setCubeTexture( texture, textureUnit ); + + } else if ( texture instanceof THREE.WebGLRenderTargetCube ) { + + setCubeTextureDynamic( texture, textureUnit ); + + } else { + + _this.setTexture( texture, textureUnit ); + + } + + break; + + case 'tv': + + // array of THREE.Texture (2d) + + if ( uniform._array === undefined ) { + + uniform._array = []; + + } + + for ( var i = 0, il = uniform.value.length; i < il; i ++ ) { + + uniform._array[ i ] = getTextureUnit(); + + } + + _gl.uniform1iv( location, uniform._array ); + + for ( var i = 0, il = uniform.value.length; i < il; i ++ ) { + + texture = uniform.value[ i ]; + textureUnit = uniform._array[ i ]; + + if ( ! texture ) continue; + + _this.setTexture( texture, textureUnit ); + + } + + break; + + default: + + THREE.warn( 'THREE.WebGLRenderer: Unknown uniform type: ' + type ); + + } + + } + + } + + function setupMatrices ( object, camera ) { + + object._modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, object.matrixWorld ); + object._normalMatrix.getNormalMatrix( object._modelViewMatrix ); + + } + + function setColorLinear( array, offset, color, intensity ) { + + array[ offset ] = color.r * intensity; + array[ offset + 1 ] = color.g * intensity; + array[ offset + 2 ] = color.b * intensity; + + } + + function setupLights ( lights ) { + + var l, ll, light, + r = 0, g = 0, b = 0, + color, skyColor, groundColor, + intensity, + distance, + + zlights = _lights, + + dirColors = zlights.directional.colors, + dirPositions = zlights.directional.positions, + + pointColors = zlights.point.colors, + pointPositions = zlights.point.positions, + pointDistances = zlights.point.distances, + pointDecays = zlights.point.decays, + + spotColors = zlights.spot.colors, + spotPositions = zlights.spot.positions, + spotDistances = zlights.spot.distances, + spotDirections = zlights.spot.directions, + spotAnglesCos = zlights.spot.anglesCos, + spotExponents = zlights.spot.exponents, + spotDecays = zlights.spot.decays, + + hemiSkyColors = zlights.hemi.skyColors, + hemiGroundColors = zlights.hemi.groundColors, + hemiPositions = zlights.hemi.positions, + + dirLength = 0, + pointLength = 0, + spotLength = 0, + hemiLength = 0, + + dirCount = 0, + pointCount = 0, + spotCount = 0, + hemiCount = 0, + + dirOffset = 0, + pointOffset = 0, + spotOffset = 0, + hemiOffset = 0; + + for ( l = 0, ll = lights.length; l < ll; l ++ ) { + + light = lights[ l ]; + + if ( light.onlyShadow ) continue; + + color = light.color; + intensity = light.intensity; + distance = light.distance; + + if ( light instanceof THREE.AmbientLight ) { + + if ( ! light.visible ) continue; + + r += color.r; + g += color.g; + b += color.b; + + } else if ( light instanceof THREE.DirectionalLight ) { + + dirCount += 1; + + if ( ! light.visible ) continue; + + _direction.setFromMatrixPosition( light.matrixWorld ); + _vector3.setFromMatrixPosition( light.target.matrixWorld ); + _direction.sub( _vector3 ); + _direction.normalize(); + + dirOffset = dirLength * 3; + + dirPositions[ dirOffset ] = _direction.x; + dirPositions[ dirOffset + 1 ] = _direction.y; + dirPositions[ dirOffset + 2 ] = _direction.z; + + setColorLinear( dirColors, dirOffset, color, intensity ); + + dirLength += 1; + + } else if ( light instanceof THREE.PointLight ) { + + pointCount += 1; + + if ( ! light.visible ) continue; + + pointOffset = pointLength * 3; + + setColorLinear( pointColors, pointOffset, color, intensity ); + + _vector3.setFromMatrixPosition( light.matrixWorld ); + + pointPositions[ pointOffset ] = _vector3.x; + pointPositions[ pointOffset + 1 ] = _vector3.y; + pointPositions[ pointOffset + 2 ] = _vector3.z; + + // distance is 0 if decay is 0, because there is no attenuation at all. + pointDistances[ pointLength ] = distance; + pointDecays[ pointLength ] = ( light.distance === 0 ) ? 0.0 : light.decay; + + pointLength += 1; + + } else if ( light instanceof THREE.SpotLight ) { + + spotCount += 1; + + if ( ! light.visible ) continue; + + spotOffset = spotLength * 3; + + setColorLinear( spotColors, spotOffset, color, intensity ); + + _direction.setFromMatrixPosition( light.matrixWorld ); + + spotPositions[ spotOffset ] = _direction.x; + spotPositions[ spotOffset + 1 ] = _direction.y; + spotPositions[ spotOffset + 2 ] = _direction.z; + + spotDistances[ spotLength ] = distance; + + _vector3.setFromMatrixPosition( light.target.matrixWorld ); + _direction.sub( _vector3 ); + _direction.normalize(); + + spotDirections[ spotOffset ] = _direction.x; + spotDirections[ spotOffset + 1 ] = _direction.y; + spotDirections[ spotOffset + 2 ] = _direction.z; + + spotAnglesCos[ spotLength ] = Math.cos( light.angle ); + spotExponents[ spotLength ] = light.exponent; + spotDecays[ spotLength ] = ( light.distance === 0 ) ? 0.0 : light.decay; + + spotLength += 1; + + } else if ( light instanceof THREE.HemisphereLight ) { + + hemiCount += 1; + + if ( ! light.visible ) continue; + + _direction.setFromMatrixPosition( light.matrixWorld ); + _direction.normalize(); + + hemiOffset = hemiLength * 3; + + hemiPositions[ hemiOffset ] = _direction.x; + hemiPositions[ hemiOffset + 1 ] = _direction.y; + hemiPositions[ hemiOffset + 2 ] = _direction.z; + + skyColor = light.color; + groundColor = light.groundColor; + + setColorLinear( hemiSkyColors, hemiOffset, skyColor, intensity ); + setColorLinear( hemiGroundColors, hemiOffset, groundColor, intensity ); + + hemiLength += 1; + + } + + } + + // null eventual remains from removed lights + // (this is to avoid if in shader) + + for ( l = dirLength * 3, ll = Math.max( dirColors.length, dirCount * 3 ); l < ll; l ++ ) dirColors[ l ] = 0.0; + for ( l = pointLength * 3, ll = Math.max( pointColors.length, pointCount * 3 ); l < ll; l ++ ) pointColors[ l ] = 0.0; + for ( l = spotLength * 3, ll = Math.max( spotColors.length, spotCount * 3 ); l < ll; l ++ ) spotColors[ l ] = 0.0; + for ( l = hemiLength * 3, ll = Math.max( hemiSkyColors.length, hemiCount * 3 ); l < ll; l ++ ) hemiSkyColors[ l ] = 0.0; + for ( l = hemiLength * 3, ll = Math.max( hemiGroundColors.length, hemiCount * 3 ); l < ll; l ++ ) hemiGroundColors[ l ] = 0.0; + + zlights.directional.length = dirLength; + zlights.point.length = pointLength; + zlights.spot.length = spotLength; + zlights.hemi.length = hemiLength; + + zlights.ambient[ 0 ] = r; + zlights.ambient[ 1 ] = g; + zlights.ambient[ 2 ] = b; + + } + + // GL state setting + + this.setFaceCulling = function ( cullFace, frontFaceDirection ) { + + if ( cullFace === THREE.CullFaceNone ) { + + _gl.disable( _gl.CULL_FACE ); + + } else { + + if ( frontFaceDirection === THREE.FrontFaceDirectionCW ) { + + _gl.frontFace( _gl.CW ); + + } else { + + _gl.frontFace( _gl.CCW ); + + } + + if ( cullFace === THREE.CullFaceBack ) { + + _gl.cullFace( _gl.BACK ); + + } else if ( cullFace === THREE.CullFaceFront ) { + + _gl.cullFace( _gl.FRONT ); + + } else { + + _gl.cullFace( _gl.FRONT_AND_BACK ); + + } + + _gl.enable( _gl.CULL_FACE ); + + } + + }; + + this.setMaterialFaces = function ( material ) { + + state.setDoubleSided( material.side === THREE.DoubleSide ); + state.setFlipSided( material.side === THREE.BackSide ); + + }; + + // Textures + + function setTextureParameters ( textureType, texture, isImagePowerOfTwo ) { + + var extension; + + if ( isImagePowerOfTwo ) { + + _gl.texParameteri( textureType, _gl.TEXTURE_WRAP_S, paramThreeToGL( texture.wrapS ) ); + _gl.texParameteri( textureType, _gl.TEXTURE_WRAP_T, paramThreeToGL( texture.wrapT ) ); + + _gl.texParameteri( textureType, _gl.TEXTURE_MAG_FILTER, paramThreeToGL( texture.magFilter ) ); + _gl.texParameteri( textureType, _gl.TEXTURE_MIN_FILTER, paramThreeToGL( texture.minFilter ) ); + + } else { + + _gl.texParameteri( textureType, _gl.TEXTURE_WRAP_S, _gl.CLAMP_TO_EDGE ); + _gl.texParameteri( textureType, _gl.TEXTURE_WRAP_T, _gl.CLAMP_TO_EDGE ); + + if ( texture.wrapS !== THREE.ClampToEdgeWrapping || texture.wrapT !== THREE.ClampToEdgeWrapping ) { + + THREE.warn( 'THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping. ( ' + texture.sourceFile + ' )' ); + + } + + _gl.texParameteri( textureType, _gl.TEXTURE_MAG_FILTER, filterFallback( texture.magFilter ) ); + _gl.texParameteri( textureType, _gl.TEXTURE_MIN_FILTER, filterFallback( texture.minFilter ) ); + + if ( texture.minFilter !== THREE.NearestFilter && texture.minFilter !== THREE.LinearFilter ) { + + THREE.warn( 'THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter. ( ' + texture.sourceFile + ' )' ); + + } + + } + + extension = extensions.get( 'EXT_texture_filter_anisotropic' ); + + if ( extension && texture.type !== THREE.FloatType && texture.type !== THREE.HalfFloatType ) { + + if ( texture.anisotropy > 1 || texture.__currentAnisotropy ) { + + _gl.texParameterf( textureType, extension.TEXTURE_MAX_ANISOTROPY_EXT, Math.min( texture.anisotropy, _this.getMaxAnisotropy() ) ); + texture.__currentAnisotropy = texture.anisotropy; + + } + + } + + } + + this.uploadTexture = function ( texture ) { + + if ( texture.__webglInit === undefined ) { + + texture.__webglInit = true; + + texture.addEventListener( 'dispose', onTextureDispose ); + + texture.__webglTexture = _gl.createTexture(); + + _this.info.memory.textures ++; + + } + + _gl.bindTexture( _gl.TEXTURE_2D, texture.__webglTexture ); + + _gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY ); + _gl.pixelStorei( _gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.premultiplyAlpha ); + _gl.pixelStorei( _gl.UNPACK_ALIGNMENT, texture.unpackAlignment ); + + texture.image = clampToMaxSize( texture.image, _maxTextureSize ); + + var image = texture.image, + isImagePowerOfTwo = THREE.Math.isPowerOfTwo( image.width ) && THREE.Math.isPowerOfTwo( image.height ), + glFormat = paramThreeToGL( texture.format ), + glType = paramThreeToGL( texture.type ); + + setTextureParameters( _gl.TEXTURE_2D, texture, isImagePowerOfTwo ); + + var mipmap, mipmaps = texture.mipmaps; + + if ( texture instanceof THREE.DataTexture ) { + + // use manually created mipmaps if available + // if there are no manual mipmaps + // set 0 level mipmap and then use GL to generate other mipmap levels + + if ( mipmaps.length > 0 && isImagePowerOfTwo ) { + + for ( var i = 0, il = mipmaps.length; i < il; i ++ ) { + + mipmap = mipmaps[ i ]; + _gl.texImage2D( _gl.TEXTURE_2D, i, glFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data ); + + } + + texture.generateMipmaps = false; + + } else { + + _gl.texImage2D( _gl.TEXTURE_2D, 0, glFormat, image.width, image.height, 0, glFormat, glType, image.data ); + + } + + } else if ( texture instanceof THREE.CompressedTexture ) { + + for ( var i = 0, il = mipmaps.length; i < il; i ++ ) { + + mipmap = mipmaps[ i ]; + + if ( texture.format !== THREE.RGBAFormat && texture.format !== THREE.RGBFormat ) { + + if ( getCompressedTextureFormats().indexOf( glFormat ) > -1 ) { + + _gl.compressedTexImage2D( _gl.TEXTURE_2D, i, glFormat, mipmap.width, mipmap.height, 0, mipmap.data ); + + } else { + + THREE.warn( "THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()" ); + + } + + } else { + + _gl.texImage2D( _gl.TEXTURE_2D, i, glFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data ); + + } + + } + + } else { // regular Texture (image, video, canvas) + + // use manually created mipmaps if available + // if there are no manual mipmaps + // set 0 level mipmap and then use GL to generate other mipmap levels + + if ( mipmaps.length > 0 && isImagePowerOfTwo ) { + + for ( var i = 0, il = mipmaps.length; i < il; i ++ ) { + + mipmap = mipmaps[ i ]; + _gl.texImage2D( _gl.TEXTURE_2D, i, glFormat, glFormat, glType, mipmap ); + + } + + texture.generateMipmaps = false; + + } else { + + _gl.texImage2D( _gl.TEXTURE_2D, 0, glFormat, glFormat, glType, texture.image ); + + } + + } + + if ( texture.generateMipmaps && isImagePowerOfTwo ) _gl.generateMipmap( _gl.TEXTURE_2D ); + + texture.needsUpdate = false; + + if ( texture.onUpdate ) texture.onUpdate(); + + }; + + this.setTexture = function ( texture, slot ) { + + _gl.activeTexture( _gl.TEXTURE0 + slot ); + + if ( texture.needsUpdate ) { + + _this.uploadTexture( texture ); + + } else { + + _gl.bindTexture( _gl.TEXTURE_2D, texture.__webglTexture ); + + } + + }; + + function clampToMaxSize ( image, maxSize ) { + + if ( image.width > maxSize || image.height > maxSize ) { + + // Warning: Scaling through the canvas will only work with images that use + // premultiplied alpha. + + var scale = maxSize / Math.max( image.width, image.height ); + + var canvas = document.createElement( 'canvas' ); + canvas.width = Math.floor( image.width * scale ); + canvas.height = Math.floor( image.height * scale ); + + var context = canvas.getContext( '2d' ); + context.drawImage( image, 0, 0, image.width, image.height, 0, 0, canvas.width, canvas.height ); + + THREE.warn( 'THREE.WebGLRenderer: image is too big (' + image.width + 'x' + image.height + '). Resized to ' + canvas.width + 'x' + canvas.height, image ); + + return canvas; + + } + + return image; + + } + + function setCubeTexture ( texture, slot ) { + + if ( texture.image.length === 6 ) { + + if ( texture.needsUpdate ) { + + if ( ! texture.image.__webglTextureCube ) { + + texture.addEventListener( 'dispose', onTextureDispose ); + + texture.image.__webglTextureCube = _gl.createTexture(); + + _this.info.memory.textures ++; + + } + + _gl.activeTexture( _gl.TEXTURE0 + slot ); + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, texture.image.__webglTextureCube ); + + _gl.pixelStorei( _gl.UNPACK_FLIP_Y_WEBGL, texture.flipY ); + + var isCompressed = texture instanceof THREE.CompressedTexture; + var isDataTexture = texture.image[ 0 ] instanceof THREE.DataTexture; + + var cubeImage = []; + + for ( var i = 0; i < 6; i ++ ) { + + if ( _this.autoScaleCubemaps && ! isCompressed && ! isDataTexture ) { + + cubeImage[ i ] = clampToMaxSize( texture.image[ i ], _maxCubemapSize ); + + } else { + + cubeImage[ i ] = isDataTexture ? texture.image[ i ].image : texture.image[ i ]; + + } + + } + + var image = cubeImage[ 0 ], + isImagePowerOfTwo = THREE.Math.isPowerOfTwo( image.width ) && THREE.Math.isPowerOfTwo( image.height ), + glFormat = paramThreeToGL( texture.format ), + glType = paramThreeToGL( texture.type ); + + setTextureParameters( _gl.TEXTURE_CUBE_MAP, texture, isImagePowerOfTwo ); + + for ( var i = 0; i < 6; i ++ ) { + + if ( ! isCompressed ) { + + if ( isDataTexture ) { + + _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glFormat, cubeImage[ i ].width, cubeImage[ i ].height, 0, glFormat, glType, cubeImage[ i ].data ); + + } else { + + _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glFormat, glFormat, glType, cubeImage[ i ] ); + + } + + } else { + + var mipmap, mipmaps = cubeImage[ i ].mipmaps; + + for ( var j = 0, jl = mipmaps.length; j < jl; j ++ ) { + + mipmap = mipmaps[ j ]; + + if ( texture.format !== THREE.RGBAFormat && texture.format !== THREE.RGBFormat ) { + + if ( getCompressedTextureFormats().indexOf( glFormat ) > -1 ) { + + _gl.compressedTexImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glFormat, mipmap.width, mipmap.height, 0, mipmap.data ); + + } else { + + THREE.warn( "THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setCubeTexture()" ); + + } + + } else { + + _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, j, glFormat, mipmap.width, mipmap.height, 0, glFormat, glType, mipmap.data ); + + } + + } + + } + + } + + if ( texture.generateMipmaps && isImagePowerOfTwo ) { + + _gl.generateMipmap( _gl.TEXTURE_CUBE_MAP ); + + } + + texture.needsUpdate = false; + + if ( texture.onUpdate ) texture.onUpdate(); + + } else { + + _gl.activeTexture( _gl.TEXTURE0 + slot ); + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, texture.image.__webglTextureCube ); + + } + + } + + } + + function setCubeTextureDynamic ( texture, slot ) { + + _gl.activeTexture( _gl.TEXTURE0 + slot ); + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, texture.__webglTexture ); + + } + + // Render targets + + function setupFrameBuffer ( framebuffer, renderTarget, textureTarget ) { + + _gl.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer ); + _gl.framebufferTexture2D( _gl.FRAMEBUFFER, _gl.COLOR_ATTACHMENT0, textureTarget, renderTarget.__webglTexture, 0 ); + + } + + function setupRenderBuffer ( renderbuffer, renderTarget ) { + + _gl.bindRenderbuffer( _gl.RENDERBUFFER, renderbuffer ); + + if ( renderTarget.depthBuffer && ! renderTarget.stencilBuffer ) { + + _gl.renderbufferStorage( _gl.RENDERBUFFER, _gl.DEPTH_COMPONENT16, renderTarget.width, renderTarget.height ); + _gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.RENDERBUFFER, renderbuffer ); + + /* For some reason this is not working. Defaulting to RGBA4. + } else if ( ! renderTarget.depthBuffer && renderTarget.stencilBuffer ) { + + _gl.renderbufferStorage( _gl.RENDERBUFFER, _gl.STENCIL_INDEX8, renderTarget.width, renderTarget.height ); + _gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.STENCIL_ATTACHMENT, _gl.RENDERBUFFER, renderbuffer ); + */ + } else if ( renderTarget.depthBuffer && renderTarget.stencilBuffer ) { + + _gl.renderbufferStorage( _gl.RENDERBUFFER, _gl.DEPTH_STENCIL, renderTarget.width, renderTarget.height ); + _gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.RENDERBUFFER, renderbuffer ); + + } else { + + _gl.renderbufferStorage( _gl.RENDERBUFFER, _gl.RGBA4, renderTarget.width, renderTarget.height ); + + } + + } + + this.setRenderTarget = function ( renderTarget ) { + + var isCube = ( renderTarget instanceof THREE.WebGLRenderTargetCube ); + + if ( renderTarget && renderTarget.__webglFramebuffer === undefined ) { + + if ( renderTarget.depthBuffer === undefined ) renderTarget.depthBuffer = true; + if ( renderTarget.stencilBuffer === undefined ) renderTarget.stencilBuffer = true; + + renderTarget.addEventListener( 'dispose', onRenderTargetDispose ); + + renderTarget.__webglTexture = _gl.createTexture(); + + _this.info.memory.textures ++; + + // Setup texture, create render and frame buffers + + var isTargetPowerOfTwo = THREE.Math.isPowerOfTwo( renderTarget.width ) && THREE.Math.isPowerOfTwo( renderTarget.height ), + glFormat = paramThreeToGL( renderTarget.format ), + glType = paramThreeToGL( renderTarget.type ); + + if ( isCube ) { + + renderTarget.__webglFramebuffer = []; + renderTarget.__webglRenderbuffer = []; + + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, renderTarget.__webglTexture ); + setTextureParameters( _gl.TEXTURE_CUBE_MAP, renderTarget, isTargetPowerOfTwo ); + + for ( var i = 0; i < 6; i ++ ) { + + renderTarget.__webglFramebuffer[ i ] = _gl.createFramebuffer(); + renderTarget.__webglRenderbuffer[ i ] = _gl.createRenderbuffer(); + + _gl.texImage2D( _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, glFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null ); + + setupFrameBuffer( renderTarget.__webglFramebuffer[ i ], renderTarget, _gl.TEXTURE_CUBE_MAP_POSITIVE_X + i ); + setupRenderBuffer( renderTarget.__webglRenderbuffer[ i ], renderTarget ); + + } + + if ( isTargetPowerOfTwo ) _gl.generateMipmap( _gl.TEXTURE_CUBE_MAP ); + + } else { + + renderTarget.__webglFramebuffer = _gl.createFramebuffer(); + + if ( renderTarget.shareDepthFrom ) { + + renderTarget.__webglRenderbuffer = renderTarget.shareDepthFrom.__webglRenderbuffer; + + } else { + + renderTarget.__webglRenderbuffer = _gl.createRenderbuffer(); + + } + + _gl.bindTexture( _gl.TEXTURE_2D, renderTarget.__webglTexture ); + setTextureParameters( _gl.TEXTURE_2D, renderTarget, isTargetPowerOfTwo ); + + _gl.texImage2D( _gl.TEXTURE_2D, 0, glFormat, renderTarget.width, renderTarget.height, 0, glFormat, glType, null ); + + setupFrameBuffer( renderTarget.__webglFramebuffer, renderTarget, _gl.TEXTURE_2D ); + + if ( renderTarget.shareDepthFrom ) { + + if ( renderTarget.depthBuffer && ! renderTarget.stencilBuffer ) { + + _gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.DEPTH_ATTACHMENT, _gl.RENDERBUFFER, renderTarget.__webglRenderbuffer ); + + } else if ( renderTarget.depthBuffer && renderTarget.stencilBuffer ) { + + _gl.framebufferRenderbuffer( _gl.FRAMEBUFFER, _gl.DEPTH_STENCIL_ATTACHMENT, _gl.RENDERBUFFER, renderTarget.__webglRenderbuffer ); + + } + + } else { + + setupRenderBuffer( renderTarget.__webglRenderbuffer, renderTarget ); + + } + + if ( isTargetPowerOfTwo ) _gl.generateMipmap( _gl.TEXTURE_2D ); + + } + + // Release everything + + if ( isCube ) { + + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, null ); + + } else { + + _gl.bindTexture( _gl.TEXTURE_2D, null ); + + } + + _gl.bindRenderbuffer( _gl.RENDERBUFFER, null ); + _gl.bindFramebuffer( _gl.FRAMEBUFFER, null ); + + } + + var framebuffer, width, height, vx, vy; + + if ( renderTarget ) { + + if ( isCube ) { + + framebuffer = renderTarget.__webglFramebuffer[ renderTarget.activeCubeFace ]; + + } else { + + framebuffer = renderTarget.__webglFramebuffer; + + } + + width = renderTarget.width; + height = renderTarget.height; + + vx = 0; + vy = 0; + + } else { + + framebuffer = null; + + width = _viewportWidth; + height = _viewportHeight; + + vx = _viewportX; + vy = _viewportY; + + } + + if ( framebuffer !== _currentFramebuffer ) { + + _gl.bindFramebuffer( _gl.FRAMEBUFFER, framebuffer ); + _gl.viewport( vx, vy, width, height ); + + _currentFramebuffer = framebuffer; + + } + + _currentWidth = width; + _currentHeight = height; + + }; + + this.readRenderTargetPixels = function( renderTarget, x, y, width, height, buffer ) { + + if ( ! ( renderTarget instanceof THREE.WebGLRenderTarget ) ) { + + console.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.' ); + return; + + } + + if ( renderTarget.__webglFramebuffer ) { + + if ( renderTarget.format !== THREE.RGBAFormat ) { + + console.error( 'THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA format. readPixels can read only RGBA format.' ); + return; + + } + + var restore = false; + + if ( renderTarget.__webglFramebuffer !== _currentFramebuffer ) { + + _gl.bindFramebuffer( _gl.FRAMEBUFFER, renderTarget.__webglFramebuffer ); + + restore = true; + + } + + if ( _gl.checkFramebufferStatus( _gl.FRAMEBUFFER ) === _gl.FRAMEBUFFER_COMPLETE ) { + + _gl.readPixels( x, y, width, height, _gl.RGBA, _gl.UNSIGNED_BYTE, buffer ); + + } else { + + console.error( 'THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.' ); + + } + + if ( restore ) { + + _gl.bindFramebuffer( _gl.FRAMEBUFFER, _currentFramebuffer ); + + } + + } + + }; + + function updateRenderTargetMipmap ( renderTarget ) { + + if ( renderTarget instanceof THREE.WebGLRenderTargetCube ) { + + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, renderTarget.__webglTexture ); + _gl.generateMipmap( _gl.TEXTURE_CUBE_MAP ); + _gl.bindTexture( _gl.TEXTURE_CUBE_MAP, null ); + + } else { + + _gl.bindTexture( _gl.TEXTURE_2D, renderTarget.__webglTexture ); + _gl.generateMipmap( _gl.TEXTURE_2D ); + _gl.bindTexture( _gl.TEXTURE_2D, null ); + + } + + } + + // Fallback filters for non-power-of-2 textures + + function filterFallback ( f ) { + + if ( f === THREE.NearestFilter || f === THREE.NearestMipMapNearestFilter || f === THREE.NearestMipMapLinearFilter ) { + + return _gl.NEAREST; + + } + + return _gl.LINEAR; + + } + + // Map three.js constants to WebGL constants + + function paramThreeToGL ( p ) { + + var extension; + + if ( p === THREE.RepeatWrapping ) return _gl.REPEAT; + if ( p === THREE.ClampToEdgeWrapping ) return _gl.CLAMP_TO_EDGE; + if ( p === THREE.MirroredRepeatWrapping ) return _gl.MIRRORED_REPEAT; + + if ( p === THREE.NearestFilter ) return _gl.NEAREST; + if ( p === THREE.NearestMipMapNearestFilter ) return _gl.NEAREST_MIPMAP_NEAREST; + if ( p === THREE.NearestMipMapLinearFilter ) return _gl.NEAREST_MIPMAP_LINEAR; + + if ( p === THREE.LinearFilter ) return _gl.LINEAR; + if ( p === THREE.LinearMipMapNearestFilter ) return _gl.LINEAR_MIPMAP_NEAREST; + if ( p === THREE.LinearMipMapLinearFilter ) return _gl.LINEAR_MIPMAP_LINEAR; + + if ( p === THREE.UnsignedByteType ) return _gl.UNSIGNED_BYTE; + if ( p === THREE.UnsignedShort4444Type ) return _gl.UNSIGNED_SHORT_4_4_4_4; + if ( p === THREE.UnsignedShort5551Type ) return _gl.UNSIGNED_SHORT_5_5_5_1; + if ( p === THREE.UnsignedShort565Type ) return _gl.UNSIGNED_SHORT_5_6_5; + + if ( p === THREE.ByteType ) return _gl.BYTE; + if ( p === THREE.ShortType ) return _gl.SHORT; + if ( p === THREE.UnsignedShortType ) return _gl.UNSIGNED_SHORT; + if ( p === THREE.IntType ) return _gl.INT; + if ( p === THREE.UnsignedIntType ) return _gl.UNSIGNED_INT; + if ( p === THREE.FloatType ) return _gl.FLOAT; + + extension = extensions.get( 'OES_texture_half_float' ); + + if ( extension !== null ) { + + if ( p === THREE.HalfFloatType ) return extension.HALF_FLOAT_OES; + + } + + if ( p === THREE.AlphaFormat ) return _gl.ALPHA; + if ( p === THREE.RGBFormat ) return _gl.RGB; + if ( p === THREE.RGBAFormat ) return _gl.RGBA; + if ( p === THREE.LuminanceFormat ) return _gl.LUMINANCE; + if ( p === THREE.LuminanceAlphaFormat ) return _gl.LUMINANCE_ALPHA; + + if ( p === THREE.AddEquation ) return _gl.FUNC_ADD; + if ( p === THREE.SubtractEquation ) return _gl.FUNC_SUBTRACT; + if ( p === THREE.ReverseSubtractEquation ) return _gl.FUNC_REVERSE_SUBTRACT; + + if ( p === THREE.ZeroFactor ) return _gl.ZERO; + if ( p === THREE.OneFactor ) return _gl.ONE; + if ( p === THREE.SrcColorFactor ) return _gl.SRC_COLOR; + if ( p === THREE.OneMinusSrcColorFactor ) return _gl.ONE_MINUS_SRC_COLOR; + if ( p === THREE.SrcAlphaFactor ) return _gl.SRC_ALPHA; + if ( p === THREE.OneMinusSrcAlphaFactor ) return _gl.ONE_MINUS_SRC_ALPHA; + if ( p === THREE.DstAlphaFactor ) return _gl.DST_ALPHA; + if ( p === THREE.OneMinusDstAlphaFactor ) return _gl.ONE_MINUS_DST_ALPHA; + + if ( p === THREE.DstColorFactor ) return _gl.DST_COLOR; + if ( p === THREE.OneMinusDstColorFactor ) return _gl.ONE_MINUS_DST_COLOR; + if ( p === THREE.SrcAlphaSaturateFactor ) return _gl.SRC_ALPHA_SATURATE; + + extension = extensions.get( 'WEBGL_compressed_texture_s3tc' ); + + if ( extension !== null ) { + + if ( p === THREE.RGB_S3TC_DXT1_Format ) return extension.COMPRESSED_RGB_S3TC_DXT1_EXT; + if ( p === THREE.RGBA_S3TC_DXT1_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT1_EXT; + if ( p === THREE.RGBA_S3TC_DXT3_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT3_EXT; + if ( p === THREE.RGBA_S3TC_DXT5_Format ) return extension.COMPRESSED_RGBA_S3TC_DXT5_EXT; + + } + + extension = extensions.get( 'WEBGL_compressed_texture_pvrtc' ); + + if ( extension !== null ) { + + if ( p === THREE.RGB_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_4BPPV1_IMG; + if ( p === THREE.RGB_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGB_PVRTC_2BPPV1_IMG; + if ( p === THREE.RGBA_PVRTC_4BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; + if ( p === THREE.RGBA_PVRTC_2BPPV1_Format ) return extension.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG; + + } + + extension = extensions.get( 'EXT_blend_minmax' ); + + if ( extension !== null ) { + + if ( p === THREE.MinEquation ) return extension.MIN_EXT; + if ( p === THREE.MaxEquation ) return extension.MAX_EXT; + + } + + return 0; + + } + + // Allocations + + function allocateBones ( object ) { + + if ( _supportsBoneTextures && object && object.skeleton && object.skeleton.useVertexTexture ) { + + return 1024; + + } else { + + // default for when object is not specified + // ( for example when prebuilding shader + // to be used with multiple objects ) + // + // - leave some extra space for other uniforms + // - limit here is ANGLE's 254 max uniform vectors + // (up to 54 should be safe) + + var nVertexUniforms = _gl.getParameter( _gl.MAX_VERTEX_UNIFORM_VECTORS ); + var nVertexMatrices = Math.floor( ( nVertexUniforms - 20 ) / 4 ); + + var maxBones = nVertexMatrices; + + if ( object !== undefined && object instanceof THREE.SkinnedMesh ) { + + maxBones = Math.min( object.skeleton.bones.length, maxBones ); + + if ( maxBones < object.skeleton.bones.length ) { + + THREE.warn( 'WebGLRenderer: too many bones - ' + object.skeleton.bones.length + ', this GPU supports just ' + maxBones + ' (try OpenGL instead of ANGLE)' ); + + } + + } + + return maxBones; + + } + + } + + function allocateLights( lights ) { + + var dirLights = 0; + var pointLights = 0; + var spotLights = 0; + var hemiLights = 0; + + for ( var l = 0, ll = lights.length; l < ll; l ++ ) { + + var light = lights[ l ]; + + if ( light.onlyShadow || light.visible === false ) continue; + + if ( light instanceof THREE.DirectionalLight ) dirLights ++; + if ( light instanceof THREE.PointLight ) pointLights ++; + if ( light instanceof THREE.SpotLight ) spotLights ++; + if ( light instanceof THREE.HemisphereLight ) hemiLights ++; + + } + + return { 'directional': dirLights, 'point': pointLights, 'spot': spotLights, 'hemi': hemiLights }; + + } + + function allocateShadows( lights ) { + + var maxShadows = 0; + + for ( var l = 0, ll = lights.length; l < ll; l ++ ) { + + var light = lights[ l ]; + + if ( ! light.castShadow ) continue; + + if ( light instanceof THREE.SpotLight ) maxShadows ++; + if ( light instanceof THREE.DirectionalLight && ! light.shadowCascade ) maxShadows ++; + + } + + return maxShadows; + + } + + // DEPRECATED + + this.initMaterial = function () { + + THREE.warn( 'THREE.WebGLRenderer: .initMaterial() has been removed.' ); + + }; + + this.addPrePlugin = function () { + + THREE.warn( 'THREE.WebGLRenderer: .addPrePlugin() has been removed.' ); + + }; + + this.addPostPlugin = function () { + + THREE.warn( 'THREE.WebGLRenderer: .addPostPlugin() has been removed.' ); + + }; + + this.updateShadowMap = function () { + + THREE.warn( 'THREE.WebGLRenderer: .updateShadowMap() has been removed.' ); + + }; + +}; + +// File:src/renderers/WebGLRenderTarget.js + +/** + * @author szimek / https://github.com/szimek/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.WebGLRenderTarget = function ( width, height, options ) { + + this.width = width; + this.height = height; + + options = options || {}; + + this.wrapS = options.wrapS !== undefined ? options.wrapS : THREE.ClampToEdgeWrapping; + this.wrapT = options.wrapT !== undefined ? options.wrapT : THREE.ClampToEdgeWrapping; + + this.magFilter = options.magFilter !== undefined ? options.magFilter : THREE.LinearFilter; + this.minFilter = options.minFilter !== undefined ? options.minFilter : THREE.LinearMipMapLinearFilter; + + this.anisotropy = options.anisotropy !== undefined ? options.anisotropy : 1; + + this.offset = new THREE.Vector2( 0, 0 ); + this.repeat = new THREE.Vector2( 1, 1 ); + + this.format = options.format !== undefined ? options.format : THREE.RGBAFormat; + this.type = options.type !== undefined ? options.type : THREE.UnsignedByteType; + + this.depthBuffer = options.depthBuffer !== undefined ? options.depthBuffer : true; + this.stencilBuffer = options.stencilBuffer !== undefined ? options.stencilBuffer : true; + + this.generateMipmaps = true; + + this.shareDepthFrom = options.shareDepthFrom !== undefined ? options.shareDepthFrom : null; + +}; + +THREE.WebGLRenderTarget.prototype = { + + constructor: THREE.WebGLRenderTarget, + + setSize: function ( width, height ) { + + this.width = width; + this.height = height; + + }, + + clone: function () { + + var tmp = new THREE.WebGLRenderTarget( this.width, this.height ); + + tmp.wrapS = this.wrapS; + tmp.wrapT = this.wrapT; + + tmp.magFilter = this.magFilter; + tmp.minFilter = this.minFilter; + + tmp.anisotropy = this.anisotropy; + + tmp.offset.copy( this.offset ); + tmp.repeat.copy( this.repeat ); + + tmp.format = this.format; + tmp.type = this.type; + + tmp.depthBuffer = this.depthBuffer; + tmp.stencilBuffer = this.stencilBuffer; + + tmp.generateMipmaps = this.generateMipmaps; + + tmp.shareDepthFrom = this.shareDepthFrom; + + return tmp; + + }, + + dispose: function () { + + this.dispatchEvent( { type: 'dispose' } ); + + } + +}; + +THREE.EventDispatcher.prototype.apply( THREE.WebGLRenderTarget.prototype ); + +// File:src/renderers/WebGLRenderTargetCube.js + +/** + * @author alteredq / http://alteredqualia.com + */ + +THREE.WebGLRenderTargetCube = function ( width, height, options ) { + + THREE.WebGLRenderTarget.call( this, width, height, options ); + + this.activeCubeFace = 0; // PX 0, NX 1, PY 2, NY 3, PZ 4, NZ 5 + +}; + +THREE.WebGLRenderTargetCube.prototype = Object.create( THREE.WebGLRenderTarget.prototype ); +THREE.WebGLRenderTargetCube.prototype.constructor = THREE.WebGLRenderTargetCube; + +// File:src/renderers/webgl/WebGLExtensions.js + +/** +* @author mrdoob / http://mrdoob.com/ +*/ + +THREE.WebGLExtensions = function ( gl ) { + + var extensions = {}; + + this.get = function ( name ) { + + if ( extensions[ name ] !== undefined ) { + + return extensions[ name ]; + + } + + var extension; + + switch ( name ) { + + case 'EXT_texture_filter_anisotropic': + extension = gl.getExtension( 'EXT_texture_filter_anisotropic' ) || gl.getExtension( 'MOZ_EXT_texture_filter_anisotropic' ) || gl.getExtension( 'WEBKIT_EXT_texture_filter_anisotropic' ); + break; + + case 'WEBGL_compressed_texture_s3tc': + extension = gl.getExtension( 'WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'MOZ_WEBGL_compressed_texture_s3tc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_s3tc' ); + break; + + case 'WEBGL_compressed_texture_pvrtc': + extension = gl.getExtension( 'WEBGL_compressed_texture_pvrtc' ) || gl.getExtension( 'WEBKIT_WEBGL_compressed_texture_pvrtc' ); + break; + + default: + extension = gl.getExtension( name ); + + } + + if ( extension === null ) { + + THREE.warn( 'THREE.WebGLRenderer: ' + name + ' extension not supported.' ); + + } + + extensions[ name ] = extension; + + return extension; + + }; + +}; + +// File:src/renderers/webgl/WebGLProgram.js + +THREE.WebGLProgram = ( function () { + + var programIdCount = 0; + + var generateDefines = function ( defines ) { + + var value, chunk, chunks = []; + + for ( var d in defines ) { + + value = defines[ d ]; + if ( value === false ) continue; + + chunk = '#define ' + d + ' ' + value; + chunks.push( chunk ); + + } + + return chunks.join( '\n' ); + + }; + + var cacheUniformLocations = function ( gl, program, identifiers ) { + + var uniforms = {}; + + for ( var i = 0, l = identifiers.length; i < l; i ++ ) { + + var id = identifiers[ i ]; + uniforms[ id ] = gl.getUniformLocation( program, id ); + + } + + return uniforms; + + }; + + var cacheAttributeLocations = function ( gl, program, identifiers ) { + + var attributes = {}; + + for ( var i = 0, l = identifiers.length; i < l; i ++ ) { + + var id = identifiers[ i ]; + attributes[ id ] = gl.getAttribLocation( program, id ); + + } + + return attributes; + + }; + + return function ( renderer, code, material, parameters ) { + + var _this = renderer; + var _gl = _this.context; + + var defines = material.defines; + var uniforms = material.__webglShader.uniforms; + var attributes = material.attributes; + + var vertexShader = material.__webglShader.vertexShader; + var fragmentShader = material.__webglShader.fragmentShader; + + var index0AttributeName = material.index0AttributeName; + + if ( index0AttributeName === undefined && parameters.morphTargets === true ) { + + // programs with morphTargets displace position out of attribute 0 + + index0AttributeName = 'position'; + + } + + var shadowMapTypeDefine = 'SHADOWMAP_TYPE_BASIC'; + + if ( parameters.shadowMapType === THREE.PCFShadowMap ) { + + shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF'; + + } else if ( parameters.shadowMapType === THREE.PCFSoftShadowMap ) { + + shadowMapTypeDefine = 'SHADOWMAP_TYPE_PCF_SOFT'; + + } + + var envMapTypeDefine = 'ENVMAP_TYPE_CUBE'; + var envMapModeDefine = 'ENVMAP_MODE_REFLECTION'; + var envMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY'; + + if ( parameters.envMap ) { + + switch ( material.envMap.mapping ) { + + case THREE.CubeReflectionMapping: + case THREE.CubeRefractionMapping: + envMapTypeDefine = 'ENVMAP_TYPE_CUBE'; + break; + + case THREE.EquirectangularReflectionMapping: + case THREE.EquirectangularRefractionMapping: + envMapTypeDefine = 'ENVMAP_TYPE_EQUIREC'; + break; + + case THREE.SphericalReflectionMapping: + envMapTypeDefine = 'ENVMAP_TYPE_SPHERE'; + break; + + } + + switch ( material.envMap.mapping ) { + + case THREE.CubeRefractionMapping: + case THREE.EquirectangularRefractionMapping: + envMapModeDefine = 'ENVMAP_MODE_REFRACTION'; + break; + + } + + switch ( material.combine ) { + + case THREE.MultiplyOperation: + envMapBlendingDefine = 'ENVMAP_BLENDING_MULTIPLY'; + break; + + case THREE.MixOperation: + envMapBlendingDefine = 'ENVMAP_BLENDING_MIX'; + break; + + case THREE.AddOperation: + envMapBlendingDefine = 'ENVMAP_BLENDING_ADD'; + break; + + } + + } + + var gammaFactorDefine = ( renderer.gammaFactor > 0 ) ? renderer.gammaFactor : 1.0; + + // console.log( 'building new program ' ); + + // + + var customDefines = generateDefines( defines ); + + // + + var program = _gl.createProgram(); + + var prefix_vertex, prefix_fragment; + + if ( material instanceof THREE.RawShaderMaterial ) { + + prefix_vertex = ''; + prefix_fragment = ''; + + } else { + + prefix_vertex = [ + + 'precision ' + parameters.precision + ' float;', + 'precision ' + parameters.precision + ' int;', + + customDefines, + + parameters.supportsVertexTextures ? '#define VERTEX_TEXTURES' : '', + + _this.gammaInput ? '#define GAMMA_INPUT' : '', + _this.gammaOutput ? '#define GAMMA_OUTPUT' : '', + '#define GAMMA_FACTOR ' + gammaFactorDefine, + + '#define MAX_DIR_LIGHTS ' + parameters.maxDirLights, + '#define MAX_POINT_LIGHTS ' + parameters.maxPointLights, + '#define MAX_SPOT_LIGHTS ' + parameters.maxSpotLights, + '#define MAX_HEMI_LIGHTS ' + parameters.maxHemiLights, + + '#define MAX_SHADOWS ' + parameters.maxShadows, + + '#define MAX_BONES ' + parameters.maxBones, + + parameters.map ? '#define USE_MAP' : '', + parameters.envMap ? '#define USE_ENVMAP' : '', + parameters.envMap ? '#define ' + envMapModeDefine : '', + parameters.lightMap ? '#define USE_LIGHTMAP' : '', + parameters.bumpMap ? '#define USE_BUMPMAP' : '', + parameters.normalMap ? '#define USE_NORMALMAP' : '', + parameters.specularMap ? '#define USE_SPECULARMAP' : '', + parameters.alphaMap ? '#define USE_ALPHAMAP' : '', + parameters.vertexColors ? '#define USE_COLOR' : '', + + parameters.flatShading ? '#define FLAT_SHADED': '', + + parameters.skinning ? '#define USE_SKINNING' : '', + parameters.useVertexTexture ? '#define BONE_TEXTURE' : '', + + parameters.morphTargets ? '#define USE_MORPHTARGETS' : '', + parameters.morphNormals ? '#define USE_MORPHNORMALS' : '', + parameters.wrapAround ? '#define WRAP_AROUND' : '', + parameters.doubleSided ? '#define DOUBLE_SIDED' : '', + parameters.flipSided ? '#define FLIP_SIDED' : '', + + parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', + parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', + parameters.shadowMapDebug ? '#define SHADOWMAP_DEBUG' : '', + parameters.shadowMapCascade ? '#define SHADOWMAP_CASCADE' : '', + + parameters.sizeAttenuation ? '#define USE_SIZEATTENUATION' : '', + + parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', + //_this._glExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '', + + + 'uniform mat4 modelMatrix;', + 'uniform mat4 modelViewMatrix;', + 'uniform mat4 projectionMatrix;', + 'uniform mat4 viewMatrix;', + 'uniform mat3 normalMatrix;', + 'uniform vec3 cameraPosition;', + + 'attribute vec3 position;', + 'attribute vec3 normal;', + 'attribute vec2 uv;', + 'attribute vec2 uv2;', + + '#ifdef USE_COLOR', + + ' attribute vec3 color;', + + '#endif', + + '#ifdef USE_MORPHTARGETS', + + ' attribute vec3 morphTarget0;', + ' attribute vec3 morphTarget1;', + ' attribute vec3 morphTarget2;', + ' attribute vec3 morphTarget3;', + + ' #ifdef USE_MORPHNORMALS', + + ' attribute vec3 morphNormal0;', + ' attribute vec3 morphNormal1;', + ' attribute vec3 morphNormal2;', + ' attribute vec3 morphNormal3;', + + ' #else', + + ' attribute vec3 morphTarget4;', + ' attribute vec3 morphTarget5;', + ' attribute vec3 morphTarget6;', + ' attribute vec3 morphTarget7;', + + ' #endif', + + '#endif', + + '#ifdef USE_SKINNING', + + ' attribute vec4 skinIndex;', + ' attribute vec4 skinWeight;', + + '#endif', + + '' + + ].join( '\n' ); + + prefix_fragment = [ + + 'precision ' + parameters.precision + ' float;', + 'precision ' + parameters.precision + ' int;', + + ( parameters.bumpMap || parameters.normalMap || parameters.flatShading ) ? '#extension GL_OES_standard_derivatives : enable' : '', + + customDefines, + + '#define MAX_DIR_LIGHTS ' + parameters.maxDirLights, + '#define MAX_POINT_LIGHTS ' + parameters.maxPointLights, + '#define MAX_SPOT_LIGHTS ' + parameters.maxSpotLights, + '#define MAX_HEMI_LIGHTS ' + parameters.maxHemiLights, + + '#define MAX_SHADOWS ' + parameters.maxShadows, + + parameters.alphaTest ? '#define ALPHATEST ' + parameters.alphaTest : '', + + _this.gammaInput ? '#define GAMMA_INPUT' : '', + _this.gammaOutput ? '#define GAMMA_OUTPUT' : '', + '#define GAMMA_FACTOR ' + gammaFactorDefine, + + ( parameters.useFog && parameters.fog ) ? '#define USE_FOG' : '', + ( parameters.useFog && parameters.fogExp ) ? '#define FOG_EXP2' : '', + + parameters.map ? '#define USE_MAP' : '', + parameters.envMap ? '#define USE_ENVMAP' : '', + parameters.envMap ? '#define ' + envMapTypeDefine : '', + parameters.envMap ? '#define ' + envMapModeDefine : '', + parameters.envMap ? '#define ' + envMapBlendingDefine : '', + parameters.lightMap ? '#define USE_LIGHTMAP' : '', + parameters.bumpMap ? '#define USE_BUMPMAP' : '', + parameters.normalMap ? '#define USE_NORMALMAP' : '', + parameters.specularMap ? '#define USE_SPECULARMAP' : '', + parameters.alphaMap ? '#define USE_ALPHAMAP' : '', + parameters.vertexColors ? '#define USE_COLOR' : '', + + parameters.flatShading ? '#define FLAT_SHADED': '', + + parameters.metal ? '#define METAL' : '', + parameters.wrapAround ? '#define WRAP_AROUND' : '', + parameters.doubleSided ? '#define DOUBLE_SIDED' : '', + parameters.flipSided ? '#define FLIP_SIDED' : '', + + parameters.shadowMapEnabled ? '#define USE_SHADOWMAP' : '', + parameters.shadowMapEnabled ? '#define ' + shadowMapTypeDefine : '', + parameters.shadowMapDebug ? '#define SHADOWMAP_DEBUG' : '', + parameters.shadowMapCascade ? '#define SHADOWMAP_CASCADE' : '', + + parameters.logarithmicDepthBuffer ? '#define USE_LOGDEPTHBUF' : '', + //_this._glExtensionFragDepth ? '#define USE_LOGDEPTHBUF_EXT' : '', + + 'uniform mat4 viewMatrix;', + 'uniform vec3 cameraPosition;', + '' + + ].join( '\n' ); + + } + + var glVertexShader = new THREE.WebGLShader( _gl, _gl.VERTEX_SHADER, prefix_vertex + vertexShader ); + var glFragmentShader = new THREE.WebGLShader( _gl, _gl.FRAGMENT_SHADER, prefix_fragment + fragmentShader ); + + _gl.attachShader( program, glVertexShader ); + _gl.attachShader( program, glFragmentShader ); + + if ( index0AttributeName !== undefined ) { + + // Force a particular attribute to index 0. + // because potentially expensive emulation is done by browser if attribute 0 is disabled. + // And, color, for example is often automatically bound to index 0 so disabling it + + _gl.bindAttribLocation( program, 0, index0AttributeName ); + + } + + _gl.linkProgram( program ); + + var programLogInfo = _gl.getProgramInfoLog( program ); + + if ( _gl.getProgramParameter( program, _gl.LINK_STATUS ) === false ) { + + THREE.error( 'THREE.WebGLProgram: shader error: ' + _gl.getError(), 'gl.VALIDATE_STATUS', _gl.getProgramParameter( program, _gl.VALIDATE_STATUS ), 'gl.getPRogramInfoLog', programLogInfo ); + + } + + if ( programLogInfo !== '' ) { + + THREE.warn( 'THREE.WebGLProgram: gl.getProgramInfoLog()' + programLogInfo ); + // THREE.warn( _gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( glVertexShader ) ); + // THREE.warn( _gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( glFragmentShader ) ); + + } + + // clean up + + _gl.deleteShader( glVertexShader ); + _gl.deleteShader( glFragmentShader ); + + // cache uniform locations + + var identifiers = [ + + 'viewMatrix', + 'modelViewMatrix', + 'projectionMatrix', + 'normalMatrix', + 'modelMatrix', + 'cameraPosition', + 'morphTargetInfluences', + 'bindMatrix', + 'bindMatrixInverse' + + ]; + + if ( parameters.useVertexTexture ) { + + identifiers.push( 'boneTexture' ); + identifiers.push( 'boneTextureWidth' ); + identifiers.push( 'boneTextureHeight' ); + + } else { + + identifiers.push( 'boneGlobalMatrices' ); + + } + + if ( parameters.logarithmicDepthBuffer ) { + + identifiers.push('logDepthBufFC'); + + } + + + for ( var u in uniforms ) { + + identifiers.push( u ); + + } + + this.uniforms = cacheUniformLocations( _gl, program, identifiers ); + + // cache attributes locations + + identifiers = [ + + 'position', + 'normal', + 'uv', + 'uv2', + 'tangent', + 'color', + 'skinIndex', + 'skinWeight', + 'lineDistance' + + ]; + + for ( var i = 0; i < parameters.maxMorphTargets; i ++ ) { + + identifiers.push( 'morphTarget' + i ); + + } + + for ( var i = 0; i < parameters.maxMorphNormals; i ++ ) { + + identifiers.push( 'morphNormal' + i ); + + } + + for ( var a in attributes ) { + + identifiers.push( a ); + + } + + this.attributes = cacheAttributeLocations( _gl, program, identifiers ); + this.attributesKeys = Object.keys( this.attributes ); + + // + + this.id = programIdCount ++; + this.code = code; + this.usedTimes = 1; + this.program = program; + this.vertexShader = glVertexShader; + this.fragmentShader = glFragmentShader; + + return this; + + }; + +} )(); + +// File:src/renderers/webgl/WebGLShader.js + +THREE.WebGLShader = ( function () { + + var addLineNumbers = function ( string ) { + + var lines = string.split( '\n' ); + + for ( var i = 0; i < lines.length; i ++ ) { + + lines[ i ] = ( i + 1 ) + ': ' + lines[ i ]; + + } + + return lines.join( '\n' ); + + }; + + return function ( gl, type, string ) { + + var shader = gl.createShader( type ); + + gl.shaderSource( shader, string ); + gl.compileShader( shader ); + + if ( gl.getShaderParameter( shader, gl.COMPILE_STATUS ) === false ) { + + THREE.error( 'THREE.WebGLShader: Shader couldn\'t compile.' ); + + } + + if ( gl.getShaderInfoLog( shader ) !== '' ) { + + THREE.warn( 'THREE.WebGLShader: gl.getShaderInfoLog()', gl.getShaderInfoLog( shader ), addLineNumbers( string ) ); + + } + + // --enable-privileged-webgl-extension + // console.log( type, gl.getExtension( 'WEBGL_debug_shaders' ).getTranslatedShaderSource( shader ) ); + + return shader; + + }; + +} )(); + +// File:src/renderers/webgl/WebGLState.js + +/** +* @author mrdoob / http://mrdoob.com/ +*/ + +THREE.WebGLState = function ( gl, paramThreeToGL ) { + + var newAttributes = new Uint8Array( 16 ); + var enabledAttributes = new Uint8Array( 16 ); + + var currentBlending = null; + var currentBlendEquation = null; + var currentBlendSrc = null; + var currentBlendDst = null; + var currentBlendEquationAlpha = null; + var currentBlendSrcAlpha = null; + var currentBlendDstAlpha = null; + + var currentDepthTest = null; + var currentDepthWrite = null; + + var currentColorWrite = null; + + var currentDoubleSided = null; + var currentFlipSided = null; + + var currentLineWidth = null; + + var currentPolygonOffset = null; + var currentPolygonOffsetFactor = null; + var currentPolygonOffsetUnits = null; + + this.initAttributes = function () { + + for ( var i = 0, l = newAttributes.length; i < l; i ++ ) { + + newAttributes[ i ] = 0; + + } + + }; + + this.enableAttribute = function ( attribute ) { + + newAttributes[ attribute ] = 1; + + if ( enabledAttributes[ attribute ] === 0 ) { + + gl.enableVertexAttribArray( attribute ); + enabledAttributes[ attribute ] = 1; + + } + + }; + + this.disableUnusedAttributes = function () { + + for ( var i = 0, l = enabledAttributes.length; i < l; i ++ ) { + + if ( enabledAttributes[ i ] !== newAttributes[ i ] ) { + + gl.disableVertexAttribArray( i ); + enabledAttributes[ i ] = 0; + + } + + } + + }; + + this.setBlending = function ( blending, blendEquation, blendSrc, blendDst, blendEquationAlpha, blendSrcAlpha, blendDstAlpha ) { + + if ( blending !== currentBlending ) { + + if ( blending === THREE.NoBlending ) { + + gl.disable( gl.BLEND ); + + } else if ( blending === THREE.AdditiveBlending ) { + + gl.enable( gl.BLEND ); + gl.blendEquation( gl.FUNC_ADD ); + gl.blendFunc( gl.SRC_ALPHA, gl.ONE ); + + } else if ( blending === THREE.SubtractiveBlending ) { + + // TODO: Find blendFuncSeparate() combination + gl.enable( gl.BLEND ); + gl.blendEquation( gl.FUNC_ADD ); + gl.blendFunc( gl.ZERO, gl.ONE_MINUS_SRC_COLOR ); + + } else if ( blending === THREE.MultiplyBlending ) { + + // TODO: Find blendFuncSeparate() combination + gl.enable( gl.BLEND ); + gl.blendEquation( gl.FUNC_ADD ); + gl.blendFunc( gl.ZERO, gl.SRC_COLOR ); + + } else if ( blending === THREE.CustomBlending ) { + + gl.enable( gl.BLEND ); + + } else { + + gl.enable( gl.BLEND ); + gl.blendEquationSeparate( gl.FUNC_ADD, gl.FUNC_ADD ); + gl.blendFuncSeparate( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA ); + + } + + currentBlending = blending; + + } + + if ( blending === THREE.CustomBlending ) { + + blendEquationAlpha = blendEquationAlpha || blendEquation; + blendSrcAlpha = blendSrcAlpha || blendSrc; + blendDstAlpha = blendDstAlpha || blendDst; + + if ( blendEquation !== currentBlendEquation || blendEquationAlpha !== currentBlendEquationAlpha ) { + + gl.blendEquationSeparate( paramThreeToGL( blendEquation ), paramThreeToGL( blendEquationAlpha ) ); + + currentBlendEquation = blendEquation; + currentBlendEquationAlpha = blendEquationAlpha; + + } + + if ( blendSrc !== currentBlendSrc || blendDst !== currentBlendDst || blendSrcAlpha !== currentBlendSrcAlpha || blendDstAlpha !== currentBlendDstAlpha ) { + + gl.blendFuncSeparate( paramThreeToGL( blendSrc ), paramThreeToGL( blendDst ), paramThreeToGL( blendSrcAlpha ), paramThreeToGL( blendDstAlpha ) ); + + currentBlendSrc = blendSrc; + currentBlendDst = blendDst; + currentBlendSrcAlpha = blendSrcAlpha; + currentBlendDstAlpha = blendDstAlpha; + + } + + } else { + + currentBlendEquation = null; + currentBlendSrc = null; + currentBlendDst = null; + currentBlendEquationAlpha = null; + currentBlendSrcAlpha = null; + currentBlendDstAlpha = null; + + } + + }; + + this.setDepthTest = function ( depthTest ) { + + if ( currentDepthTest !== depthTest ) { + + if ( depthTest ) { + + gl.enable( gl.DEPTH_TEST ); + + } else { + + gl.disable( gl.DEPTH_TEST ); + + } + + currentDepthTest = depthTest; + + } + + }; + + this.setDepthWrite = function ( depthWrite ) { + + if ( currentDepthWrite !== depthWrite ) { + + gl.depthMask( depthWrite ); + currentDepthWrite = depthWrite; + + } + + }; + + this.setColorWrite = function ( colorWrite ) { + + if ( currentColorWrite !== colorWrite ) { + + gl.colorMask( colorWrite, colorWrite, colorWrite, colorWrite ); + currentColorWrite = colorWrite; + + } + + }; + + this.setDoubleSided = function ( doubleSided ) { + + if ( currentDoubleSided !== doubleSided ) { + + if ( doubleSided ) { + + gl.disable( gl.CULL_FACE ); + + } else { + + gl.enable( gl.CULL_FACE ); + + } + + currentDoubleSided = doubleSided; + + } + + }; + + this.setFlipSided = function ( flipSided ) { + + if ( currentFlipSided !== flipSided ) { + + if ( flipSided ) { + + gl.frontFace( gl.CW ); + + } else { + + gl.frontFace( gl.CCW ); + + } + + currentFlipSided = flipSided; + + } + + }; + + this.setLineWidth = function ( width ) { + + if ( width !== currentLineWidth ) { + + gl.lineWidth( width ); + + currentLineWidth = width; + + } + + }; + + this.setPolygonOffset = function ( polygonoffset, factor, units ) { + + if ( currentPolygonOffset !== polygonoffset ) { + + if ( polygonoffset ) { + + gl.enable( gl.POLYGON_OFFSET_FILL ); + + } else { + + gl.disable( gl.POLYGON_OFFSET_FILL ); + + } + + currentPolygonOffset = polygonoffset; + + } + + if ( polygonoffset && ( currentPolygonOffsetFactor !== factor || currentPolygonOffsetUnits !== units ) ) { + + gl.polygonOffset( factor, units ); + + currentPolygonOffsetFactor = factor; + currentPolygonOffsetUnits = units; + + } + + }; + + this.reset = function () { + + for ( var i = 0; i < enabledAttributes.length; i ++ ) { + + enabledAttributes[ i ] = 0; + + } + + currentBlending = null; + currentDepthTest = null; + currentDepthWrite = null; + currentColorWrite = null; + currentDoubleSided = null; + currentFlipSided = null; + + }; + +}; + +// File:src/renderers/webgl/plugins/LensFlarePlugin.js + +/** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.LensFlarePlugin = function ( renderer, flares ) { + + var gl = renderer.context; + + var vertexBuffer, elementBuffer; + var program, attributes, uniforms; + var hasVertexTexture; + + var tempTexture, occlusionTexture; + + var init = function () { + + var vertices = new Float32Array( [ + -1, -1, 0, 0, + 1, -1, 1, 0, + 1, 1, 1, 1, + -1, 1, 0, 1 + ] ); + + var faces = new Uint16Array( [ + 0, 1, 2, + 0, 2, 3 + ] ); + + // buffers + + vertexBuffer = gl.createBuffer(); + elementBuffer = gl.createBuffer(); + + gl.bindBuffer( gl.ARRAY_BUFFER, vertexBuffer ); + gl.bufferData( gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW ); + + gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, elementBuffer ); + gl.bufferData( gl.ELEMENT_ARRAY_BUFFER, faces, gl.STATIC_DRAW ); + + // textures + + tempTexture = gl.createTexture(); + occlusionTexture = gl.createTexture(); + + gl.bindTexture( gl.TEXTURE_2D, tempTexture ); + gl.texImage2D( gl.TEXTURE_2D, 0, gl.RGB, 16, 16, 0, gl.RGB, gl.UNSIGNED_BYTE, null ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST ); + + gl.bindTexture( gl.TEXTURE_2D, occlusionTexture ); + gl.texImage2D( gl.TEXTURE_2D, 0, gl.RGBA, 16, 16, 0, gl.RGBA, gl.UNSIGNED_BYTE, null ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST ); + gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST ); + + hasVertexTexture = gl.getParameter( gl.MAX_VERTEX_TEXTURE_IMAGE_UNITS ) > 0; + + var shader; + + if ( hasVertexTexture ) { + + shader = { + + vertexShader: [ + + "uniform lowp int renderType;", + + "uniform vec3 screenPosition;", + "uniform vec2 scale;", + "uniform float rotation;", + + "uniform sampler2D occlusionMap;", + + "attribute vec2 position;", + "attribute vec2 uv;", + + "varying vec2 vUV;", + "varying float vVisibility;", + + "void main() {", + + "vUV = uv;", + + "vec2 pos = position;", + + "if( renderType == 2 ) {", + + "vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );", + "visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );", + + "vVisibility = visibility.r / 9.0;", + "vVisibility *= 1.0 - visibility.g / 9.0;", + "vVisibility *= visibility.b / 9.0;", + "vVisibility *= 1.0 - visibility.a / 9.0;", + + "pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;", + "pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;", + + "}", + + "gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );", + + "}" + + ].join( "\n" ), + + fragmentShader: [ + + "uniform lowp int renderType;", + + "uniform sampler2D map;", + "uniform float opacity;", + "uniform vec3 color;", + + "varying vec2 vUV;", + "varying float vVisibility;", + + "void main() {", + + // pink square + + "if( renderType == 0 ) {", + + "gl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );", + + // restore + + "} else if( renderType == 1 ) {", + + "gl_FragColor = texture2D( map, vUV );", + + // flare + + "} else {", + + "vec4 texture = texture2D( map, vUV );", + "texture.a *= opacity * vVisibility;", + "gl_FragColor = texture;", + "gl_FragColor.rgb *= color;", + + "}", + + "}" + + ].join( "\n" ) + + }; + + } else { + + shader = { + + vertexShader: [ + + "uniform lowp int renderType;", + + "uniform vec3 screenPosition;", + "uniform vec2 scale;", + "uniform float rotation;", + + "attribute vec2 position;", + "attribute vec2 uv;", + + "varying vec2 vUV;", + + "void main() {", + + "vUV = uv;", + + "vec2 pos = position;", + + "if( renderType == 2 ) {", + + "pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;", + "pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;", + + "}", + + "gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );", + + "}" + + ].join( "\n" ), + + fragmentShader: [ + + "precision mediump float;", + + "uniform lowp int renderType;", + + "uniform sampler2D map;", + "uniform sampler2D occlusionMap;", + "uniform float opacity;", + "uniform vec3 color;", + + "varying vec2 vUV;", + + "void main() {", + + // pink square + + "if( renderType == 0 ) {", + + "gl_FragColor = vec4( texture2D( map, vUV ).rgb, 0.0 );", + + // restore + + "} else if( renderType == 1 ) {", + + "gl_FragColor = texture2D( map, vUV );", + + // flare + + "} else {", + + "float visibility = texture2D( occlusionMap, vec2( 0.5, 0.1 ) ).a;", + "visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) ).a;", + "visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) ).a;", + "visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) ).a;", + "visibility = ( 1.0 - visibility / 4.0 );", + + "vec4 texture = texture2D( map, vUV );", + "texture.a *= opacity * visibility;", + "gl_FragColor = texture;", + "gl_FragColor.rgb *= color;", + + "}", + + "}" + + ].join( "\n" ) + + }; + + } + + program = createProgram( shader ); + + attributes = { + vertex: gl.getAttribLocation ( program, "position" ), + uv: gl.getAttribLocation ( program, "uv" ) + } + + uniforms = { + renderType: gl.getUniformLocation( program, "renderType" ), + map: gl.getUniformLocation( program, "map" ), + occlusionMap: gl.getUniformLocation( program, "occlusionMap" ), + opacity: gl.getUniformLocation( program, "opacity" ), + color: gl.getUniformLocation( program, "color" ), + scale: gl.getUniformLocation( program, "scale" ), + rotation: gl.getUniformLocation( program, "rotation" ), + screenPosition: gl.getUniformLocation( program, "screenPosition" ) + }; + + }; + + /* + * Render lens flares + * Method: renders 16x16 0xff00ff-colored points scattered over the light source area, + * reads these back and calculates occlusion. + */ + + this.render = function ( scene, camera, viewportWidth, viewportHeight ) { + + if ( flares.length === 0 ) return; + + var tempPosition = new THREE.Vector3(); + + var invAspect = viewportHeight / viewportWidth, + halfViewportWidth = viewportWidth * 0.5, + halfViewportHeight = viewportHeight * 0.5; + + var size = 16 / viewportHeight, + scale = new THREE.Vector2( size * invAspect, size ); + + var screenPosition = new THREE.Vector3( 1, 1, 0 ), + screenPositionPixels = new THREE.Vector2( 1, 1 ); + + if ( program === undefined ) { + + init(); + + } + + gl.useProgram( program ); + + gl.enableVertexAttribArray( attributes.vertex ); + gl.enableVertexAttribArray( attributes.uv ); + + // loop through all lens flares to update their occlusion and positions + // setup gl and common used attribs/unforms + + gl.uniform1i( uniforms.occlusionMap, 0 ); + gl.uniform1i( uniforms.map, 1 ); + + gl.bindBuffer( gl.ARRAY_BUFFER, vertexBuffer ); + gl.vertexAttribPointer( attributes.vertex, 2, gl.FLOAT, false, 2 * 8, 0 ); + gl.vertexAttribPointer( attributes.uv, 2, gl.FLOAT, false, 2 * 8, 8 ); + + gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, elementBuffer ); + + gl.disable( gl.CULL_FACE ); + gl.depthMask( false ); + + for ( var i = 0, l = flares.length; i < l; i ++ ) { + + size = 16 / viewportHeight; + scale.set( size * invAspect, size ); + + // calc object screen position + + var flare = flares[ i ]; + + tempPosition.set( flare.matrixWorld.elements[12], flare.matrixWorld.elements[13], flare.matrixWorld.elements[14] ); + + tempPosition.applyMatrix4( camera.matrixWorldInverse ); + tempPosition.applyProjection( camera.projectionMatrix ); + + // setup arrays for gl programs + + screenPosition.copy( tempPosition ) + + screenPositionPixels.x = screenPosition.x * halfViewportWidth + halfViewportWidth; + screenPositionPixels.y = screenPosition.y * halfViewportHeight + halfViewportHeight; + + // screen cull + + if ( hasVertexTexture || ( + screenPositionPixels.x > 0 && + screenPositionPixels.x < viewportWidth && + screenPositionPixels.y > 0 && + screenPositionPixels.y < viewportHeight ) ) { + + // save current RGB to temp texture + + gl.activeTexture( gl.TEXTURE1 ); + gl.bindTexture( gl.TEXTURE_2D, tempTexture ); + gl.copyTexImage2D( gl.TEXTURE_2D, 0, gl.RGB, screenPositionPixels.x - 8, screenPositionPixels.y - 8, 16, 16, 0 ); + + + // render pink quad + + gl.uniform1i( uniforms.renderType, 0 ); + gl.uniform2f( uniforms.scale, scale.x, scale.y ); + gl.uniform3f( uniforms.screenPosition, screenPosition.x, screenPosition.y, screenPosition.z ); + + gl.disable( gl.BLEND ); + gl.enable( gl.DEPTH_TEST ); + + gl.drawElements( gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0 ); + + + // copy result to occlusionMap + + gl.activeTexture( gl.TEXTURE0 ); + gl.bindTexture( gl.TEXTURE_2D, occlusionTexture ); + gl.copyTexImage2D( gl.TEXTURE_2D, 0, gl.RGBA, screenPositionPixels.x - 8, screenPositionPixels.y - 8, 16, 16, 0 ); + + + // restore graphics + + gl.uniform1i( uniforms.renderType, 1 ); + gl.disable( gl.DEPTH_TEST ); + + gl.activeTexture( gl.TEXTURE1 ); + gl.bindTexture( gl.TEXTURE_2D, tempTexture ); + gl.drawElements( gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0 ); + + + // update object positions + + flare.positionScreen.copy( screenPosition ) + + if ( flare.customUpdateCallback ) { + + flare.customUpdateCallback( flare ); + + } else { + + flare.updateLensFlares(); + + } + + // render flares + + gl.uniform1i( uniforms.renderType, 2 ); + gl.enable( gl.BLEND ); + + for ( var j = 0, jl = flare.lensFlares.length; j < jl; j ++ ) { + + var sprite = flare.lensFlares[ j ]; + + if ( sprite.opacity > 0.001 && sprite.scale > 0.001 ) { + + screenPosition.x = sprite.x; + screenPosition.y = sprite.y; + screenPosition.z = sprite.z; + + size = sprite.size * sprite.scale / viewportHeight; + + scale.x = size * invAspect; + scale.y = size; + + gl.uniform3f( uniforms.screenPosition, screenPosition.x, screenPosition.y, screenPosition.z ); + gl.uniform2f( uniforms.scale, scale.x, scale.y ); + gl.uniform1f( uniforms.rotation, sprite.rotation ); + + gl.uniform1f( uniforms.opacity, sprite.opacity ); + gl.uniform3f( uniforms.color, sprite.color.r, sprite.color.g, sprite.color.b ); + + renderer.state.setBlending( sprite.blending, sprite.blendEquation, sprite.blendSrc, sprite.blendDst ); + renderer.setTexture( sprite.texture, 1 ); + + gl.drawElements( gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0 ); + + } + + } + + } + + } + + // restore gl + + gl.enable( gl.CULL_FACE ); + gl.enable( gl.DEPTH_TEST ); + gl.depthMask( true ); + + renderer.resetGLState(); + + }; + + function createProgram ( shader ) { + + var program = gl.createProgram(); + + var fragmentShader = gl.createShader( gl.FRAGMENT_SHADER ); + var vertexShader = gl.createShader( gl.VERTEX_SHADER ); + + var prefix = "precision " + renderer.getPrecision() + " float;\n"; + + gl.shaderSource( fragmentShader, prefix + shader.fragmentShader ); + gl.shaderSource( vertexShader, prefix + shader.vertexShader ); + + gl.compileShader( fragmentShader ); + gl.compileShader( vertexShader ); + + gl.attachShader( program, fragmentShader ); + gl.attachShader( program, vertexShader ); + + gl.linkProgram( program ); + + return program; + + } + +}; + +// File:src/renderers/webgl/plugins/ShadowMapPlugin.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.ShadowMapPlugin = function ( _renderer, _lights, _webglObjects, _webglObjectsImmediate ) { + + var _gl = _renderer.context; + + var _depthMaterial, _depthMaterialMorph, _depthMaterialSkin, _depthMaterialMorphSkin, + + _frustum = new THREE.Frustum(), + _projScreenMatrix = new THREE.Matrix4(), + + _min = new THREE.Vector3(), + _max = new THREE.Vector3(), + + _matrixPosition = new THREE.Vector3(), + + _renderList = []; + + // init + + var depthShader = THREE.ShaderLib[ "depthRGBA" ]; + var depthUniforms = THREE.UniformsUtils.clone( depthShader.uniforms ); + + _depthMaterial = new THREE.ShaderMaterial( { + uniforms: depthUniforms, + vertexShader: depthShader.vertexShader, + fragmentShader: depthShader.fragmentShader + } ); + + _depthMaterialMorph = new THREE.ShaderMaterial( { + uniforms: depthUniforms, + vertexShader: depthShader.vertexShader, + fragmentShader: depthShader.fragmentShader, + morphTargets: true + } ); + + _depthMaterialSkin = new THREE.ShaderMaterial( { + uniforms: depthUniforms, + vertexShader: depthShader.vertexShader, + fragmentShader: depthShader.fragmentShader, + skinning: true + } ); + + _depthMaterialMorphSkin = new THREE.ShaderMaterial( { + uniforms: depthUniforms, + vertexShader: depthShader.vertexShader, + fragmentShader: depthShader.fragmentShader, + morphTargets: true, + skinning: true + } ); + + _depthMaterial._shadowPass = true; + _depthMaterialMorph._shadowPass = true; + _depthMaterialSkin._shadowPass = true; + _depthMaterialMorphSkin._shadowPass = true; + + this.render = function ( scene, camera ) { + + if ( _renderer.shadowMapEnabled === false ) return; + + var i, il, j, jl, n, + + shadowMap, shadowMatrix, shadowCamera, + buffer, material, + webglObject, object, light, + + lights = [], + k = 0, + + fog = null; + + // set GL state for depth map + + _gl.clearColor( 1, 1, 1, 1 ); + _gl.disable( _gl.BLEND ); + + _gl.enable( _gl.CULL_FACE ); + _gl.frontFace( _gl.CCW ); + + if ( _renderer.shadowMapCullFace === THREE.CullFaceFront ) { + + _gl.cullFace( _gl.FRONT ); + + } else { + + _gl.cullFace( _gl.BACK ); + + } + + _renderer.state.setDepthTest( true ); + + // preprocess lights + // - skip lights that are not casting shadows + // - create virtual lights for cascaded shadow maps + + for ( i = 0, il = _lights.length; i < il; i ++ ) { + + light = _lights[ i ]; + + if ( ! light.castShadow ) continue; + + if ( ( light instanceof THREE.DirectionalLight ) && light.shadowCascade ) { + + for ( n = 0; n < light.shadowCascadeCount; n ++ ) { + + var virtualLight; + + if ( ! light.shadowCascadeArray[ n ] ) { + + virtualLight = createVirtualLight( light, n ); + virtualLight.originalCamera = camera; + + var gyro = new THREE.Gyroscope(); + gyro.position.copy( light.shadowCascadeOffset ); + + gyro.add( virtualLight ); + gyro.add( virtualLight.target ); + + camera.add( gyro ); + + light.shadowCascadeArray[ n ] = virtualLight; + + //console.log( "Created virtualLight", virtualLight ); + + } else { + + virtualLight = light.shadowCascadeArray[ n ]; + + } + + updateVirtualLight( light, n ); + + lights[ k ] = virtualLight; + k ++; + + } + + } else { + + lights[ k ] = light; + k ++; + + } + + } + + // render depth map + + for ( i = 0, il = lights.length; i < il; i ++ ) { + + light = lights[ i ]; + + if ( ! light.shadowMap ) { + + var shadowFilter = THREE.LinearFilter; + + if ( _renderer.shadowMapType === THREE.PCFSoftShadowMap ) { + + shadowFilter = THREE.NearestFilter; + + } + + var pars = { minFilter: shadowFilter, magFilter: shadowFilter, format: THREE.RGBAFormat }; + + light.shadowMap = new THREE.WebGLRenderTarget( light.shadowMapWidth, light.shadowMapHeight, pars ); + light.shadowMapSize = new THREE.Vector2( light.shadowMapWidth, light.shadowMapHeight ); + + light.shadowMatrix = new THREE.Matrix4(); + + } + + if ( ! light.shadowCamera ) { + + if ( light instanceof THREE.SpotLight ) { + + light.shadowCamera = new THREE.PerspectiveCamera( light.shadowCameraFov, light.shadowMapWidth / light.shadowMapHeight, light.shadowCameraNear, light.shadowCameraFar ); + + } else if ( light instanceof THREE.DirectionalLight ) { + + light.shadowCamera = new THREE.OrthographicCamera( light.shadowCameraLeft, light.shadowCameraRight, light.shadowCameraTop, light.shadowCameraBottom, light.shadowCameraNear, light.shadowCameraFar ); + + } else { + + THREE.error( "THREE.ShadowMapPlugin: Unsupported light type for shadow", light ); + continue; + + } + + scene.add( light.shadowCamera ); + + if ( scene.autoUpdate === true ) scene.updateMatrixWorld(); + + } + + if ( light.shadowCameraVisible && ! light.cameraHelper ) { + + light.cameraHelper = new THREE.CameraHelper( light.shadowCamera ); + scene.add( light.cameraHelper ); + + } + + if ( light.isVirtual && virtualLight.originalCamera == camera ) { + + updateShadowCamera( camera, light ); + + } + + shadowMap = light.shadowMap; + shadowMatrix = light.shadowMatrix; + shadowCamera = light.shadowCamera; + + // + + shadowCamera.position.setFromMatrixPosition( light.matrixWorld ); + _matrixPosition.setFromMatrixPosition( light.target.matrixWorld ); + shadowCamera.lookAt( _matrixPosition ); + shadowCamera.updateMatrixWorld(); + + shadowCamera.matrixWorldInverse.getInverse( shadowCamera.matrixWorld ); + + // + + if ( light.cameraHelper ) light.cameraHelper.visible = light.shadowCameraVisible; + if ( light.shadowCameraVisible ) light.cameraHelper.update(); + + // compute shadow matrix + + shadowMatrix.set( + 0.5, 0.0, 0.0, 0.5, + 0.0, 0.5, 0.0, 0.5, + 0.0, 0.0, 0.5, 0.5, + 0.0, 0.0, 0.0, 1.0 + ); + + shadowMatrix.multiply( shadowCamera.projectionMatrix ); + shadowMatrix.multiply( shadowCamera.matrixWorldInverse ); + + // update camera matrices and frustum + + _projScreenMatrix.multiplyMatrices( shadowCamera.projectionMatrix, shadowCamera.matrixWorldInverse ); + _frustum.setFromMatrix( _projScreenMatrix ); + + // render shadow map + + _renderer.setRenderTarget( shadowMap ); + _renderer.clear(); + + // set object matrices & frustum culling + + _renderList.length = 0; + + projectObject( scene, scene, shadowCamera ); + + + // render regular objects + + var objectMaterial, useMorphing, useSkinning; + + for ( j = 0, jl = _renderList.length; j < jl; j ++ ) { + + webglObject = _renderList[ j ]; + + object = webglObject.object; + buffer = webglObject.buffer; + + // culling is overriden globally for all objects + // while rendering depth map + + // need to deal with MeshFaceMaterial somehow + // in that case just use the first of material.materials for now + // (proper solution would require to break objects by materials + // similarly to regular rendering and then set corresponding + // depth materials per each chunk instead of just once per object) + + objectMaterial = getObjectMaterial( object ); + + useMorphing = object.geometry.morphTargets !== undefined && object.geometry.morphTargets.length > 0 && objectMaterial.morphTargets; + useSkinning = object instanceof THREE.SkinnedMesh && objectMaterial.skinning; + + if ( object.customDepthMaterial ) { + + material = object.customDepthMaterial; + + } else if ( useSkinning ) { + + material = useMorphing ? _depthMaterialMorphSkin : _depthMaterialSkin; + + } else if ( useMorphing ) { + + material = _depthMaterialMorph; + + } else { + + material = _depthMaterial; + + } + + _renderer.setMaterialFaces( objectMaterial ); + + if ( buffer instanceof THREE.BufferGeometry ) { + + _renderer.renderBufferDirect( shadowCamera, _lights, fog, material, buffer, object ); + + } else { + + _renderer.renderBuffer( shadowCamera, _lights, fog, material, buffer, object ); + + } + + } + + // set matrices and render immediate objects + + for ( j = 0, jl = _webglObjectsImmediate.length; j < jl; j ++ ) { + + webglObject = _webglObjectsImmediate[ j ]; + object = webglObject.object; + + if ( object.visible && object.castShadow ) { + + object._modelViewMatrix.multiplyMatrices( shadowCamera.matrixWorldInverse, object.matrixWorld ); + + _renderer.renderImmediateObject( shadowCamera, _lights, fog, _depthMaterial, object ); + + } + + } + + } + + // restore GL state + + var clearColor = _renderer.getClearColor(), + clearAlpha = _renderer.getClearAlpha(); + + _gl.clearColor( clearColor.r, clearColor.g, clearColor.b, clearAlpha ); + _gl.enable( _gl.BLEND ); + + if ( _renderer.shadowMapCullFace === THREE.CullFaceFront ) { + + _gl.cullFace( _gl.BACK ); + + } + + _renderer.resetGLState(); + + }; + + function projectObject( scene, object, shadowCamera ) { + + if ( object.visible ) { + + var webglObjects = _webglObjects[ object.id ]; + + if ( webglObjects && object.castShadow && (object.frustumCulled === false || _frustum.intersectsObject( object ) === true) ) { + + for ( var i = 0, l = webglObjects.length; i < l; i ++ ) { + + var webglObject = webglObjects[ i ]; + + object._modelViewMatrix.multiplyMatrices( shadowCamera.matrixWorldInverse, object.matrixWorld ); + _renderList.push( webglObject ); + + } + + } + + for ( var i = 0, l = object.children.length; i < l; i ++ ) { + + projectObject( scene, object.children[ i ], shadowCamera ); + + } + + } + + } + + function createVirtualLight( light, cascade ) { + + var virtualLight = new THREE.DirectionalLight(); + + virtualLight.isVirtual = true; + + virtualLight.onlyShadow = true; + virtualLight.castShadow = true; + + virtualLight.shadowCameraNear = light.shadowCameraNear; + virtualLight.shadowCameraFar = light.shadowCameraFar; + + virtualLight.shadowCameraLeft = light.shadowCameraLeft; + virtualLight.shadowCameraRight = light.shadowCameraRight; + virtualLight.shadowCameraBottom = light.shadowCameraBottom; + virtualLight.shadowCameraTop = light.shadowCameraTop; + + virtualLight.shadowCameraVisible = light.shadowCameraVisible; + + virtualLight.shadowDarkness = light.shadowDarkness; + + virtualLight.shadowBias = light.shadowCascadeBias[ cascade ]; + virtualLight.shadowMapWidth = light.shadowCascadeWidth[ cascade ]; + virtualLight.shadowMapHeight = light.shadowCascadeHeight[ cascade ]; + + virtualLight.pointsWorld = []; + virtualLight.pointsFrustum = []; + + var pointsWorld = virtualLight.pointsWorld, + pointsFrustum = virtualLight.pointsFrustum; + + for ( var i = 0; i < 8; i ++ ) { + + pointsWorld[ i ] = new THREE.Vector3(); + pointsFrustum[ i ] = new THREE.Vector3(); + + } + + var nearZ = light.shadowCascadeNearZ[ cascade ]; + var farZ = light.shadowCascadeFarZ[ cascade ]; + + pointsFrustum[ 0 ].set( - 1, - 1, nearZ ); + pointsFrustum[ 1 ].set( 1, - 1, nearZ ); + pointsFrustum[ 2 ].set( - 1, 1, nearZ ); + pointsFrustum[ 3 ].set( 1, 1, nearZ ); + + pointsFrustum[ 4 ].set( - 1, - 1, farZ ); + pointsFrustum[ 5 ].set( 1, - 1, farZ ); + pointsFrustum[ 6 ].set( - 1, 1, farZ ); + pointsFrustum[ 7 ].set( 1, 1, farZ ); + + return virtualLight; + + } + + // Synchronize virtual light with the original light + + function updateVirtualLight( light, cascade ) { + + var virtualLight = light.shadowCascadeArray[ cascade ]; + + virtualLight.position.copy( light.position ); + virtualLight.target.position.copy( light.target.position ); + virtualLight.lookAt( virtualLight.target ); + + virtualLight.shadowCameraVisible = light.shadowCameraVisible; + virtualLight.shadowDarkness = light.shadowDarkness; + + virtualLight.shadowBias = light.shadowCascadeBias[ cascade ]; + + var nearZ = light.shadowCascadeNearZ[ cascade ]; + var farZ = light.shadowCascadeFarZ[ cascade ]; + + var pointsFrustum = virtualLight.pointsFrustum; + + pointsFrustum[ 0 ].z = nearZ; + pointsFrustum[ 1 ].z = nearZ; + pointsFrustum[ 2 ].z = nearZ; + pointsFrustum[ 3 ].z = nearZ; + + pointsFrustum[ 4 ].z = farZ; + pointsFrustum[ 5 ].z = farZ; + pointsFrustum[ 6 ].z = farZ; + pointsFrustum[ 7 ].z = farZ; + + } + + // Fit shadow camera's ortho frustum to camera frustum + + function updateShadowCamera( camera, light ) { + + var shadowCamera = light.shadowCamera, + pointsFrustum = light.pointsFrustum, + pointsWorld = light.pointsWorld; + + _min.set( Infinity, Infinity, Infinity ); + _max.set( - Infinity, - Infinity, - Infinity ); + + for ( var i = 0; i < 8; i ++ ) { + + var p = pointsWorld[ i ]; + + p.copy( pointsFrustum[ i ] ); + p.unproject( camera ); + + p.applyMatrix4( shadowCamera.matrixWorldInverse ); + + if ( p.x < _min.x ) _min.x = p.x; + if ( p.x > _max.x ) _max.x = p.x; + + if ( p.y < _min.y ) _min.y = p.y; + if ( p.y > _max.y ) _max.y = p.y; + + if ( p.z < _min.z ) _min.z = p.z; + if ( p.z > _max.z ) _max.z = p.z; + + } + + shadowCamera.left = _min.x; + shadowCamera.right = _max.x; + shadowCamera.top = _max.y; + shadowCamera.bottom = _min.y; + + // can't really fit near/far + //shadowCamera.near = _min.z; + //shadowCamera.far = _max.z; + + shadowCamera.updateProjectionMatrix(); + + } + + // For the moment just ignore objects that have multiple materials with different animation methods + // Only the first material will be taken into account for deciding which depth material to use for shadow maps + + function getObjectMaterial( object ) { + + return object.material instanceof THREE.MeshFaceMaterial + ? object.material.materials[ 0 ] + : object.material; + + }; + +}; + +// File:src/renderers/webgl/plugins/SpritePlugin.js + +/** + * @author mikael emtinger / http://gomo.se/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.SpritePlugin = function ( renderer, sprites ) { + + var gl = renderer.context; + + var vertexBuffer, elementBuffer; + var program, attributes, uniforms; + + var texture; + + // decompose matrixWorld + + var spritePosition = new THREE.Vector3(); + var spriteRotation = new THREE.Quaternion(); + var spriteScale = new THREE.Vector3(); + + var init = function () { + + var vertices = new Float32Array( [ + - 0.5, - 0.5, 0, 0, + 0.5, - 0.5, 1, 0, + 0.5, 0.5, 1, 1, + - 0.5, 0.5, 0, 1 + ] ); + + var faces = new Uint16Array( [ + 0, 1, 2, + 0, 2, 3 + ] ); + + vertexBuffer = gl.createBuffer(); + elementBuffer = gl.createBuffer(); + + gl.bindBuffer( gl.ARRAY_BUFFER, vertexBuffer ); + gl.bufferData( gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW ); + + gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, elementBuffer ); + gl.bufferData( gl.ELEMENT_ARRAY_BUFFER, faces, gl.STATIC_DRAW ); + + program = createProgram(); + + attributes = { + position: gl.getAttribLocation ( program, 'position' ), + uv: gl.getAttribLocation ( program, 'uv' ) + }; + + uniforms = { + uvOffset: gl.getUniformLocation( program, 'uvOffset' ), + uvScale: gl.getUniformLocation( program, 'uvScale' ), + + rotation: gl.getUniformLocation( program, 'rotation' ), + scale: gl.getUniformLocation( program, 'scale' ), + + color: gl.getUniformLocation( program, 'color' ), + map: gl.getUniformLocation( program, 'map' ), + opacity: gl.getUniformLocation( program, 'opacity' ), + + modelViewMatrix: gl.getUniformLocation( program, 'modelViewMatrix' ), + projectionMatrix: gl.getUniformLocation( program, 'projectionMatrix' ), + + fogType: gl.getUniformLocation( program, 'fogType' ), + fogDensity: gl.getUniformLocation( program, 'fogDensity' ), + fogNear: gl.getUniformLocation( program, 'fogNear' ), + fogFar: gl.getUniformLocation( program, 'fogFar' ), + fogColor: gl.getUniformLocation( program, 'fogColor' ), + + alphaTest: gl.getUniformLocation( program, 'alphaTest' ) + }; + + var canvas = document.createElement( 'canvas' ); + canvas.width = 8; + canvas.height = 8; + + var context = canvas.getContext( '2d' ); + context.fillStyle = 'white'; + context.fillRect( 0, 0, 8, 8 ); + + texture = new THREE.Texture( canvas ); + texture.needsUpdate = true; + + }; + + this.render = function ( scene, camera ) { + + if ( sprites.length === 0 ) return; + + // setup gl + + if ( program === undefined ) { + + init(); + + } + + gl.useProgram( program ); + + gl.enableVertexAttribArray( attributes.position ); + gl.enableVertexAttribArray( attributes.uv ); + + gl.disable( gl.CULL_FACE ); + gl.enable( gl.BLEND ); + + gl.bindBuffer( gl.ARRAY_BUFFER, vertexBuffer ); + gl.vertexAttribPointer( attributes.position, 2, gl.FLOAT, false, 2 * 8, 0 ); + gl.vertexAttribPointer( attributes.uv, 2, gl.FLOAT, false, 2 * 8, 8 ); + + gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, elementBuffer ); + + gl.uniformMatrix4fv( uniforms.projectionMatrix, false, camera.projectionMatrix.elements ); + + gl.activeTexture( gl.TEXTURE0 ); + gl.uniform1i( uniforms.map, 0 ); + + var oldFogType = 0; + var sceneFogType = 0; + var fog = scene.fog; + + if ( fog ) { + + gl.uniform3f( uniforms.fogColor, fog.color.r, fog.color.g, fog.color.b ); + + if ( fog instanceof THREE.Fog ) { + + gl.uniform1f( uniforms.fogNear, fog.near ); + gl.uniform1f( uniforms.fogFar, fog.far ); + + gl.uniform1i( uniforms.fogType, 1 ); + oldFogType = 1; + sceneFogType = 1; + + } else if ( fog instanceof THREE.FogExp2 ) { + + gl.uniform1f( uniforms.fogDensity, fog.density ); + + gl.uniform1i( uniforms.fogType, 2 ); + oldFogType = 2; + sceneFogType = 2; + + } + + } else { + + gl.uniform1i( uniforms.fogType, 0 ); + oldFogType = 0; + sceneFogType = 0; + + } + + + // update positions and sort + + for ( var i = 0, l = sprites.length; i < l; i ++ ) { + + var sprite = sprites[ i ]; + + sprite._modelViewMatrix.multiplyMatrices( camera.matrixWorldInverse, sprite.matrixWorld ); + sprite.z = - sprite._modelViewMatrix.elements[ 14 ]; + + } + + sprites.sort( painterSortStable ); + + // render all sprites + + var scale = []; + + for ( var i = 0, l = sprites.length; i < l; i ++ ) { + + var sprite = sprites[ i ]; + var material = sprite.material; + + gl.uniform1f( uniforms.alphaTest, material.alphaTest ); + gl.uniformMatrix4fv( uniforms.modelViewMatrix, false, sprite._modelViewMatrix.elements ); + + sprite.matrixWorld.decompose( spritePosition, spriteRotation, spriteScale ); + + scale[ 0 ] = spriteScale.x; + scale[ 1 ] = spriteScale.y; + + var fogType = 0; + + if ( scene.fog && material.fog ) { + + fogType = sceneFogType; + + } + + if ( oldFogType !== fogType ) { + + gl.uniform1i( uniforms.fogType, fogType ); + oldFogType = fogType; + + } + + if ( material.map !== null ) { + + gl.uniform2f( uniforms.uvOffset, material.map.offset.x, material.map.offset.y ); + gl.uniform2f( uniforms.uvScale, material.map.repeat.x, material.map.repeat.y ); + + } else { + + gl.uniform2f( uniforms.uvOffset, 0, 0 ); + gl.uniform2f( uniforms.uvScale, 1, 1 ); + + } + + gl.uniform1f( uniforms.opacity, material.opacity ); + gl.uniform3f( uniforms.color, material.color.r, material.color.g, material.color.b ); + + gl.uniform1f( uniforms.rotation, material.rotation ); + gl.uniform2fv( uniforms.scale, scale ); + + renderer.state.setBlending( material.blending, material.blendEquation, material.blendSrc, material.blendDst ); + renderer.state.setDepthTest( material.depthTest ); + renderer.state.setDepthWrite( material.depthWrite ); + + if ( material.map && material.map.image && material.map.image.width ) { + + renderer.setTexture( material.map, 0 ); + + } else { + + renderer.setTexture( texture, 0 ); + + } + + gl.drawElements( gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0 ); + + } + + // restore gl + + gl.enable( gl.CULL_FACE ); + + renderer.resetGLState(); + + }; + + function createProgram () { + + var program = gl.createProgram(); + + var vertexShader = gl.createShader( gl.VERTEX_SHADER ); + var fragmentShader = gl.createShader( gl.FRAGMENT_SHADER ); + + gl.shaderSource( vertexShader, [ + + 'precision ' + renderer.getPrecision() + ' float;', + + 'uniform mat4 modelViewMatrix;', + 'uniform mat4 projectionMatrix;', + 'uniform float rotation;', + 'uniform vec2 scale;', + 'uniform vec2 uvOffset;', + 'uniform vec2 uvScale;', + + 'attribute vec2 position;', + 'attribute vec2 uv;', + + 'varying vec2 vUV;', + + 'void main() {', + + 'vUV = uvOffset + uv * uvScale;', + + 'vec2 alignedPosition = position * scale;', + + 'vec2 rotatedPosition;', + 'rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;', + 'rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;', + + 'vec4 finalPosition;', + + 'finalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );', + 'finalPosition.xy += rotatedPosition;', + 'finalPosition = projectionMatrix * finalPosition;', + + 'gl_Position = finalPosition;', + + '}' + + ].join( '\n' ) ); + + gl.shaderSource( fragmentShader, [ + + 'precision ' + renderer.getPrecision() + ' float;', + + 'uniform vec3 color;', + 'uniform sampler2D map;', + 'uniform float opacity;', + + 'uniform int fogType;', + 'uniform vec3 fogColor;', + 'uniform float fogDensity;', + 'uniform float fogNear;', + 'uniform float fogFar;', + 'uniform float alphaTest;', + + 'varying vec2 vUV;', + + 'void main() {', + + 'vec4 texture = texture2D( map, vUV );', + + 'if ( texture.a < alphaTest ) discard;', + + 'gl_FragColor = vec4( color * texture.xyz, texture.a * opacity );', + + 'if ( fogType > 0 ) {', + + 'float depth = gl_FragCoord.z / gl_FragCoord.w;', + 'float fogFactor = 0.0;', + + 'if ( fogType == 1 ) {', + + 'fogFactor = smoothstep( fogNear, fogFar, depth );', + + '} else {', + + 'const float LOG2 = 1.442695;', + 'float fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );', + 'fogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );', + + '}', + + 'gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );', + + '}', + + '}' + + ].join( '\n' ) ); + + gl.compileShader( vertexShader ); + gl.compileShader( fragmentShader ); + + gl.attachShader( program, vertexShader ); + gl.attachShader( program, fragmentShader ); + + gl.linkProgram( program ); + + return program; + + }; + + function painterSortStable ( a, b ) { + + if ( a.z !== b.z ) { + + return b.z - a.z; + + } else { + + return b.id - a.id; + + } + + }; + +}; + +// File:src/extras/GeometryUtils.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.GeometryUtils = { + + merge: function ( geometry1, geometry2, materialIndexOffset ) { + + THREE.warn( 'THREE.GeometryUtils: .merge() has been moved to Geometry. Use geometry.merge( geometry2, matrix, materialIndexOffset ) instead.' ); + + var matrix; + + if ( geometry2 instanceof THREE.Mesh ) { + + geometry2.matrixAutoUpdate && geometry2.updateMatrix(); + + matrix = geometry2.matrix; + geometry2 = geometry2.geometry; + + } + + geometry1.merge( geometry2, matrix, materialIndexOffset ); + + }, + + center: function ( geometry ) { + + THREE.warn( 'THREE.GeometryUtils: .center() has been moved to Geometry. Use geometry.center() instead.' ); + return geometry.center(); + + } + +}; + +// File:src/extras/ImageUtils.js + +/** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + * @author Daosheng Mu / https://github.com/DaoshengMu/ + */ + +THREE.ImageUtils = { + + crossOrigin: undefined, + + loadTexture: function ( url, mapping, onLoad, onError ) { + + var loader = new THREE.ImageLoader(); + loader.crossOrigin = this.crossOrigin; + + var texture = new THREE.Texture( undefined, mapping ); + + loader.load( url, function ( image ) { + + texture.image = image; + texture.needsUpdate = true; + + if ( onLoad ) onLoad( texture ); + + }, undefined, function ( event ) { + + if ( onError ) onError( event ); + + } ); + + texture.sourceFile = url; + + return texture; + + }, + + loadTextureCube: function ( array, mapping, onLoad, onError ) { + + var images = []; + + var loader = new THREE.ImageLoader(); + loader.crossOrigin = this.crossOrigin; + + var texture = new THREE.CubeTexture( images, mapping ); + + // no flipping needed for cube textures + + texture.flipY = false; + + var loaded = 0; + + var loadTexture = function ( i ) { + + loader.load( array[ i ], function ( image ) { + + texture.images[ i ] = image; + + loaded += 1; + + if ( loaded === 6 ) { + + texture.needsUpdate = true; + + if ( onLoad ) onLoad( texture ); + + } + + }, undefined, onError ); + + } + + for ( var i = 0, il = array.length; i < il; ++ i ) { + + loadTexture( i ); + + } + + return texture; + + }, + + loadCompressedTexture: function () { + + THREE.error( 'THREE.ImageUtils.loadCompressedTexture has been removed. Use THREE.DDSLoader instead.' ) + + }, + + loadCompressedTextureCube: function () { + + THREE.error( 'THREE.ImageUtils.loadCompressedTextureCube has been removed. Use THREE.DDSLoader instead.' ) + + }, + + getNormalMap: function ( image, depth ) { + + // Adapted from http://www.paulbrunt.co.uk/lab/heightnormal/ + + var cross = function ( a, b ) { + + return [ a[ 1 ] * b[ 2 ] - a[ 2 ] * b[ 1 ], a[ 2 ] * b[ 0 ] - a[ 0 ] * b[ 2 ], a[ 0 ] * b[ 1 ] - a[ 1 ] * b[ 0 ] ]; + + } + + var subtract = function ( a, b ) { + + return [ a[ 0 ] - b[ 0 ], a[ 1 ] - b[ 1 ], a[ 2 ] - b[ 2 ] ]; + + } + + var normalize = function ( a ) { + + var l = Math.sqrt( a[ 0 ] * a[ 0 ] + a[ 1 ] * a[ 1 ] + a[ 2 ] * a[ 2 ] ); + return [ a[ 0 ] / l, a[ 1 ] / l, a[ 2 ] / l ]; + + } + + depth = depth | 1; + + var width = image.width; + var height = image.height; + + var canvas = document.createElement( 'canvas' ); + canvas.width = width; + canvas.height = height; + + var context = canvas.getContext( '2d' ); + context.drawImage( image, 0, 0 ); + + var data = context.getImageData( 0, 0, width, height ).data; + var imageData = context.createImageData( width, height ); + var output = imageData.data; + + for ( var x = 0; x < width; x ++ ) { + + for ( var y = 0; y < height; y ++ ) { + + var ly = y - 1 < 0 ? 0 : y - 1; + var uy = y + 1 > height - 1 ? height - 1 : y + 1; + var lx = x - 1 < 0 ? 0 : x - 1; + var ux = x + 1 > width - 1 ? width - 1 : x + 1; + + var points = []; + var origin = [ 0, 0, data[ ( y * width + x ) * 4 ] / 255 * depth ]; + points.push( [ - 1, 0, data[ ( y * width + lx ) * 4 ] / 255 * depth ] ); + points.push( [ - 1, - 1, data[ ( ly * width + lx ) * 4 ] / 255 * depth ] ); + points.push( [ 0, - 1, data[ ( ly * width + x ) * 4 ] / 255 * depth ] ); + points.push( [ 1, - 1, data[ ( ly * width + ux ) * 4 ] / 255 * depth ] ); + points.push( [ 1, 0, data[ ( y * width + ux ) * 4 ] / 255 * depth ] ); + points.push( [ 1, 1, data[ ( uy * width + ux ) * 4 ] / 255 * depth ] ); + points.push( [ 0, 1, data[ ( uy * width + x ) * 4 ] / 255 * depth ] ); + points.push( [ - 1, 1, data[ ( uy * width + lx ) * 4 ] / 255 * depth ] ); + + var normals = []; + var num_points = points.length; + + for ( var i = 0; i < num_points; i ++ ) { + + var v1 = points[ i ]; + var v2 = points[ ( i + 1 ) % num_points ]; + v1 = subtract( v1, origin ); + v2 = subtract( v2, origin ); + normals.push( normalize( cross( v1, v2 ) ) ); + + } + + var normal = [ 0, 0, 0 ]; + + for ( var i = 0; i < normals.length; i ++ ) { + + normal[ 0 ] += normals[ i ][ 0 ]; + normal[ 1 ] += normals[ i ][ 1 ]; + normal[ 2 ] += normals[ i ][ 2 ]; + + } + + normal[ 0 ] /= normals.length; + normal[ 1 ] /= normals.length; + normal[ 2 ] /= normals.length; + + var idx = ( y * width + x ) * 4; + + output[ idx ] = ( ( normal[ 0 ] + 1.0 ) / 2.0 * 255 ) | 0; + output[ idx + 1 ] = ( ( normal[ 1 ] + 1.0 ) / 2.0 * 255 ) | 0; + output[ idx + 2 ] = ( normal[ 2 ] * 255 ) | 0; + output[ idx + 3 ] = 255; + + } + + } + + context.putImageData( imageData, 0, 0 ); + + return canvas; + + }, + + generateDataTexture: function ( width, height, color ) { + + var size = width * height; + var data = new Uint8Array( 3 * size ); + + var r = Math.floor( color.r * 255 ); + var g = Math.floor( color.g * 255 ); + var b = Math.floor( color.b * 255 ); + + for ( var i = 0; i < size; i ++ ) { + + data[ i * 3 ] = r; + data[ i * 3 + 1 ] = g; + data[ i * 3 + 2 ] = b; + + } + + var texture = new THREE.DataTexture( data, width, height, THREE.RGBFormat ); + texture.needsUpdate = true; + + return texture; + + } + +}; + +// File:src/extras/SceneUtils.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.SceneUtils = { + + createMultiMaterialObject: function ( geometry, materials ) { + + var group = new THREE.Object3D(); + + for ( var i = 0, l = materials.length; i < l; i ++ ) { + + group.add( new THREE.Mesh( geometry, materials[ i ] ) ); + + } + + return group; + + }, + + detach: function ( child, parent, scene ) { + + child.applyMatrix( parent.matrixWorld ); + parent.remove( child ); + scene.add( child ); + + }, + + attach: function ( child, scene, parent ) { + + var matrixWorldInverse = new THREE.Matrix4(); + matrixWorldInverse.getInverse( parent.matrixWorld ); + child.applyMatrix( matrixWorldInverse ); + + scene.remove( child ); + parent.add( child ); + + } + +}; + +// File:src/extras/FontUtils.js + +/** + * @author zz85 / http://www.lab4games.net/zz85/blog + * @author alteredq / http://alteredqualia.com/ + * + * For Text operations in three.js (See TextGeometry) + * + * It uses techniques used in: + * + * typeface.js and canvastext + * For converting fonts and rendering with javascript + * http://typeface.neocracy.org + * + * Triangulation ported from AS3 + * Simple Polygon Triangulation + * http://actionsnippet.com/?p=1462 + * + * A Method to triangulate shapes with holes + * http://www.sakri.net/blog/2009/06/12/an-approach-to-triangulating-polygons-with-holes/ + * + */ + +THREE.FontUtils = { + + faces: {}, + + // Just for now. face[weight][style] + + face: 'helvetiker', + weight: 'normal', + style: 'normal', + size: 150, + divisions: 10, + + getFace: function () { + + try { + + return this.faces[ this.face ][ this.weight ][ this.style ]; + + } catch (e) { + + throw "The font " + this.face + " with " + this.weight + " weight and " + this.style + " style is missing." + + }; + + }, + + loadFace: function ( data ) { + + var family = data.familyName.toLowerCase(); + + var ThreeFont = this; + + ThreeFont.faces[ family ] = ThreeFont.faces[ family ] || {}; + + ThreeFont.faces[ family ][ data.cssFontWeight ] = ThreeFont.faces[ family ][ data.cssFontWeight ] || {}; + ThreeFont.faces[ family ][ data.cssFontWeight ][ data.cssFontStyle ] = data; + + ThreeFont.faces[ family ][ data.cssFontWeight ][ data.cssFontStyle ] = data; + + return data; + + }, + + drawText: function ( text ) { + + // RenderText + + var i, + face = this.getFace(), + scale = this.size / face.resolution, + offset = 0, + chars = String( text ).split( '' ), + length = chars.length; + + var fontPaths = []; + + for ( i = 0; i < length; i ++ ) { + + var path = new THREE.Path(); + + var ret = this.extractGlyphPoints( chars[ i ], face, scale, offset, path ); + offset += ret.offset; + + fontPaths.push( ret.path ); + + } + + // get the width + + var width = offset / 2; + // + // for ( p = 0; p < allPts.length; p++ ) { + // + // allPts[ p ].x -= width; + // + // } + + //var extract = this.extractPoints( allPts, characterPts ); + //extract.contour = allPts; + + //extract.paths = fontPaths; + //extract.offset = width; + + return { paths: fontPaths, offset: width }; + + }, + + + + + extractGlyphPoints: function ( c, face, scale, offset, path ) { + + var pts = []; + + var i, i2, divisions, + outline, action, length, + scaleX, scaleY, + x, y, cpx, cpy, cpx0, cpy0, cpx1, cpy1, cpx2, cpy2, + laste, + glyph = face.glyphs[ c ] || face.glyphs[ '?' ]; + + if ( ! glyph ) return; + + if ( glyph.o ) { + + outline = glyph._cachedOutline || ( glyph._cachedOutline = glyph.o.split( ' ' ) ); + length = outline.length; + + scaleX = scale; + scaleY = scale; + + for ( i = 0; i < length; ) { + + action = outline[ i ++ ]; + + //console.log( action ); + + switch ( action ) { + + case 'm': + + // Move To + + x = outline[ i ++ ] * scaleX + offset; + y = outline[ i ++ ] * scaleY; + + path.moveTo( x, y ); + break; + + case 'l': + + // Line To + + x = outline[ i ++ ] * scaleX + offset; + y = outline[ i ++ ] * scaleY; + path.lineTo( x, y ); + break; + + case 'q': + + // QuadraticCurveTo + + cpx = outline[ i ++ ] * scaleX + offset; + cpy = outline[ i ++ ] * scaleY; + cpx1 = outline[ i ++ ] * scaleX + offset; + cpy1 = outline[ i ++ ] * scaleY; + + path.quadraticCurveTo( cpx1, cpy1, cpx, cpy ); + + laste = pts[ pts.length - 1 ]; + + if ( laste ) { + + cpx0 = laste.x; + cpy0 = laste.y; + + for ( i2 = 1, divisions = this.divisions; i2 <= divisions; i2 ++ ) { + + var t = i2 / divisions; + THREE.Shape.Utils.b2( t, cpx0, cpx1, cpx ); + THREE.Shape.Utils.b2( t, cpy0, cpy1, cpy ); + } + + } + + break; + + case 'b': + + // Cubic Bezier Curve + + cpx = outline[ i ++ ] * scaleX + offset; + cpy = outline[ i ++ ] * scaleY; + cpx1 = outline[ i ++ ] * scaleX + offset; + cpy1 = outline[ i ++ ] * scaleY; + cpx2 = outline[ i ++ ] * scaleX + offset; + cpy2 = outline[ i ++ ] * scaleY; + + path.bezierCurveTo( cpx1, cpy1, cpx2, cpy2, cpx, cpy ); + + laste = pts[ pts.length - 1 ]; + + if ( laste ) { + + cpx0 = laste.x; + cpy0 = laste.y; + + for ( i2 = 1, divisions = this.divisions; i2 <= divisions; i2 ++ ) { + + var t = i2 / divisions; + THREE.Shape.Utils.b3( t, cpx0, cpx1, cpx2, cpx ); + THREE.Shape.Utils.b3( t, cpy0, cpy1, cpy2, cpy ); + + } + + } + + break; + + } + + } + } + + + + return { offset: glyph.ha * scale, path:path }; + } + +}; + + +THREE.FontUtils.generateShapes = function ( text, parameters ) { + + // Parameters + + parameters = parameters || {}; + + var size = parameters.size !== undefined ? parameters.size : 100; + var curveSegments = parameters.curveSegments !== undefined ? parameters.curveSegments : 4; + + var font = parameters.font !== undefined ? parameters.font : 'helvetiker'; + var weight = parameters.weight !== undefined ? parameters.weight : 'normal'; + var style = parameters.style !== undefined ? parameters.style : 'normal'; + + THREE.FontUtils.size = size; + THREE.FontUtils.divisions = curveSegments; + + THREE.FontUtils.face = font; + THREE.FontUtils.weight = weight; + THREE.FontUtils.style = style; + + // Get a Font data json object + + var data = THREE.FontUtils.drawText( text ); + + var paths = data.paths; + var shapes = []; + + for ( var p = 0, pl = paths.length; p < pl; p ++ ) { + + Array.prototype.push.apply( shapes, paths[ p ].toShapes() ); + + } + + return shapes; + +}; + + +/** + * This code is a quick port of code written in C++ which was submitted to + * flipcode.com by John W. Ratcliff // July 22, 2000 + * See original code and more information here: + * http://www.flipcode.com/archives/Efficient_Polygon_Triangulation.shtml + * + * ported to actionscript by Zevan Rosser + * www.actionsnippet.com + * + * ported to javascript by Joshua Koo + * http://www.lab4games.net/zz85/blog + * + */ + + +( function ( namespace ) { + + var EPSILON = 0.0000000001; + + // takes in an contour array and returns + + var process = function ( contour, indices ) { + + var n = contour.length; + + if ( n < 3 ) return null; + + var result = [], + verts = [], + vertIndices = []; + + /* we want a counter-clockwise polygon in verts */ + + var u, v, w; + + if ( area( contour ) > 0.0 ) { + + for ( v = 0; v < n; v ++ ) verts[ v ] = v; + + } else { + + for ( v = 0; v < n; v ++ ) verts[ v ] = ( n - 1 ) - v; + + } + + var nv = n; + + /* remove nv - 2 vertices, creating 1 triangle every time */ + + var count = 2 * nv; /* error detection */ + + for ( v = nv - 1; nv > 2; ) { + + /* if we loop, it is probably a non-simple polygon */ + + if ( ( count -- ) <= 0 ) { + + //** Triangulate: ERROR - probable bad polygon! + + //throw ( "Warning, unable to triangulate polygon!" ); + //return null; + // Sometimes warning is fine, especially polygons are triangulated in reverse. + THREE.warn( 'THREE.FontUtils: Warning, unable to triangulate polygon! in Triangulate.process()' ); + + if ( indices ) return vertIndices; + return result; + + } + + /* three consecutive vertices in current polygon, */ + + u = v; if ( nv <= u ) u = 0; /* previous */ + v = u + 1; if ( nv <= v ) v = 0; /* new v */ + w = v + 1; if ( nv <= w ) w = 0; /* next */ + + if ( snip( contour, u, v, w, nv, verts ) ) { + + var a, b, c, s, t; + + /* true names of the vertices */ + + a = verts[ u ]; + b = verts[ v ]; + c = verts[ w ]; + + /* output Triangle */ + + result.push( [ contour[ a ], + contour[ b ], + contour[ c ] ] ); + + + vertIndices.push( [ verts[ u ], verts[ v ], verts[ w ] ] ); + + /* remove v from the remaining polygon */ + + for ( s = v, t = v + 1; t < nv; s ++, t ++ ) { + + verts[ s ] = verts[ t ]; + + } + + nv --; + + /* reset error detection counter */ + + count = 2 * nv; + + } + + } + + if ( indices ) return vertIndices; + return result; + + }; + + // calculate area of the contour polygon + + var area = function ( contour ) { + + var n = contour.length; + var a = 0.0; + + for ( var p = n - 1, q = 0; q < n; p = q ++ ) { + + a += contour[ p ].x * contour[ q ].y - contour[ q ].x * contour[ p ].y; + + } + + return a * 0.5; + + }; + + var snip = function ( contour, u, v, w, n, verts ) { + + var p; + var ax, ay, bx, by; + var cx, cy, px, py; + + ax = contour[ verts[ u ] ].x; + ay = contour[ verts[ u ] ].y; + + bx = contour[ verts[ v ] ].x; + by = contour[ verts[ v ] ].y; + + cx = contour[ verts[ w ] ].x; + cy = contour[ verts[ w ] ].y; + + if ( EPSILON > ( ( ( bx - ax ) * ( cy - ay ) ) - ( ( by - ay ) * ( cx - ax ) ) ) ) return false; + + var aX, aY, bX, bY, cX, cY; + var apx, apy, bpx, bpy, cpx, cpy; + var cCROSSap, bCROSScp, aCROSSbp; + + aX = cx - bx; aY = cy - by; + bX = ax - cx; bY = ay - cy; + cX = bx - ax; cY = by - ay; + + for ( p = 0; p < n; p ++ ) { + + px = contour[ verts[ p ] ].x + py = contour[ verts[ p ] ].y + + if ( ( ( px === ax ) && ( py === ay ) ) || + ( ( px === bx ) && ( py === by ) ) || + ( ( px === cx ) && ( py === cy ) ) ) continue; + + apx = px - ax; apy = py - ay; + bpx = px - bx; bpy = py - by; + cpx = px - cx; cpy = py - cy; + + // see if p is inside triangle abc + + aCROSSbp = aX * bpy - aY * bpx; + cCROSSap = cX * apy - cY * apx; + bCROSScp = bX * cpy - bY * cpx; + + if ( ( aCROSSbp >= - EPSILON ) && ( bCROSScp >= - EPSILON ) && ( cCROSSap >= - EPSILON ) ) return false; + + } + + return true; + + }; + + + namespace.Triangulate = process; + namespace.Triangulate.area = area; + + return namespace; + +} )( THREE.FontUtils ); + +// To use the typeface.js face files, hook up the API +self._typeface_js = { faces: THREE.FontUtils.faces, loadFace: THREE.FontUtils.loadFace }; +THREE.typeface_js = self._typeface_js; + +// File:src/extras/audio/Audio.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.Audio = function ( listener ) { + + THREE.Object3D.call( this ); + + this.type = 'Audio'; + + this.context = listener.context; + this.source = this.context.createBufferSource(); + this.source.onended = this.onEnded.bind(this); + + this.gain = this.context.createGain(); + this.gain.connect( this.context.destination ); + + this.panner = this.context.createPanner(); + this.panner.connect( this.gain ); + + this.autoplay = false; + + this.startTime = 0; + this.isPlaying = false; + +}; + +THREE.Audio.prototype = Object.create( THREE.Object3D.prototype ); +THREE.Audio.prototype.constructor = THREE.Audio; + +THREE.Audio.prototype.load = function ( file ) { + + var scope = this; + + var request = new XMLHttpRequest(); + request.open( 'GET', file, true ); + request.responseType = 'arraybuffer'; + request.onload = function ( e ) { + + scope.context.decodeAudioData( this.response, function ( buffer ) { + + scope.source.buffer = buffer; + + if( scope.autoplay ) scope.play(); + + } ); + + }; + request.send(); + + return this; + +}; + +THREE.Audio.prototype.play = function () { + + if ( this.isPlaying === true ) { + + THREE.warn( 'THREE.Audio: Audio is already playing.' ); + return; + + } + + var source = this.context.createBufferSource(); + + source.buffer = this.source.buffer; + source.loop = this.source.loop; + source.onended = this.source.onended; + source.connect( this.panner ); + source.start( 0, this.startTime ); + + this.isPlaying = true; + + this.source = source; + +}; + +THREE.Audio.prototype.pause = function () { + + this.source.stop(); + this.startTime = this.context.currentTime; + +}; + +THREE.Audio.prototype.stop = function () { + + this.source.stop(); + this.startTime = 0; + +}; + +THREE.Audio.prototype.onEnded = function() { + + this.isPlaying = false; + +}; + +THREE.Audio.prototype.setLoop = function ( value ) { + + this.source.loop = value; + +}; + +THREE.Audio.prototype.setRefDistance = function ( value ) { + + this.panner.refDistance = value; + +}; + +THREE.Audio.prototype.setRolloffFactor = function ( value ) { + + this.panner.rolloffFactor = value; + +}; + +THREE.Audio.prototype.setVolume = function ( value ) { + + this.gain.gain.value = value; + +}; + +THREE.Audio.prototype.updateMatrixWorld = ( function () { + + var position = new THREE.Vector3(); + + return function ( force ) { + + THREE.Object3D.prototype.updateMatrixWorld.call( this, force ); + + position.setFromMatrixPosition( this.matrixWorld ); + + this.panner.setPosition( position.x, position.y, position.z ); + + }; + +} )(); + +// File:src/extras/audio/AudioListener.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.AudioListener = function () { + + THREE.Object3D.call( this ); + + this.type = 'AudioListener'; + + this.context = new ( window.AudioContext || window.webkitAudioContext )(); + +}; + +THREE.AudioListener.prototype = Object.create( THREE.Object3D.prototype ); +THREE.AudioListener.prototype.constructor = THREE.AudioListener; + +THREE.AudioListener.prototype.updateMatrixWorld = ( function () { + + var position = new THREE.Vector3(); + var quaternion = new THREE.Quaternion(); + var scale = new THREE.Vector3(); + + var orientation = new THREE.Vector3(); + var velocity = new THREE.Vector3(); + + var positionPrev = new THREE.Vector3(); + + return function ( force ) { + + THREE.Object3D.prototype.updateMatrixWorld.call( this, force ); + + var listener = this.context.listener; + var up = this.up; + + this.matrixWorld.decompose( position, quaternion, scale ); + + orientation.set( 0, 0, -1 ).applyQuaternion( quaternion ); + velocity.subVectors( position, positionPrev ); + + listener.setPosition( position.x, position.y, position.z ); + listener.setOrientation( orientation.x, orientation.y, orientation.z, up.x, up.y, up.z ); + listener.setVelocity( velocity.x, velocity.y, velocity.z ); + + positionPrev.copy( position ); + + }; + +} )(); + +// File:src/extras/core/Curve.js + +/** + * @author zz85 / http://www.lab4games.net/zz85/blog + * Extensible curve object + * + * Some common of Curve methods + * .getPoint(t), getTangent(t) + * .getPointAt(u), getTagentAt(u) + * .getPoints(), .getSpacedPoints() + * .getLength() + * .updateArcLengths() + * + * This following classes subclasses THREE.Curve: + * + * -- 2d classes -- + * THREE.LineCurve + * THREE.QuadraticBezierCurve + * THREE.CubicBezierCurve + * THREE.SplineCurve + * THREE.ArcCurve + * THREE.EllipseCurve + * + * -- 3d classes -- + * THREE.LineCurve3 + * THREE.QuadraticBezierCurve3 + * THREE.CubicBezierCurve3 + * THREE.SplineCurve3 + * THREE.ClosedSplineCurve3 + * + * A series of curves can be represented as a THREE.CurvePath + * + **/ + +/************************************************************** + * Abstract Curve base class + **************************************************************/ + +THREE.Curve = function () { + +}; + +// Virtual base class method to overwrite and implement in subclasses +// - t [0 .. 1] + +THREE.Curve.prototype.getPoint = function ( t ) { + + THREE.warn( "THREE.Curve: Warning, getPoint() not implemented!" ); + return null; + +}; + +// Get point at relative position in curve according to arc length +// - u [0 .. 1] + +THREE.Curve.prototype.getPointAt = function ( u ) { + + var t = this.getUtoTmapping( u ); + return this.getPoint( t ); + +}; + +// Get sequence of points using getPoint( t ) + +THREE.Curve.prototype.getPoints = function ( divisions ) { + + if ( ! divisions ) divisions = 5; + + var d, pts = []; + + for ( d = 0; d <= divisions; d ++ ) { + + pts.push( this.getPoint( d / divisions ) ); + + } + + return pts; + +}; + +// Get sequence of points using getPointAt( u ) + +THREE.Curve.prototype.getSpacedPoints = function ( divisions ) { + + if ( ! divisions ) divisions = 5; + + var d, pts = []; + + for ( d = 0; d <= divisions; d ++ ) { + + pts.push( this.getPointAt( d / divisions ) ); + + } + + return pts; + +}; + +// Get total curve arc length + +THREE.Curve.prototype.getLength = function () { + + var lengths = this.getLengths(); + return lengths[ lengths.length - 1 ]; + +}; + +// Get list of cumulative segment lengths + +THREE.Curve.prototype.getLengths = function ( divisions ) { + + if ( ! divisions ) divisions = (this.__arcLengthDivisions) ? (this.__arcLengthDivisions) : 200; + + if ( this.cacheArcLengths + && ( this.cacheArcLengths.length == divisions + 1 ) + && ! this.needsUpdate) { + + //console.log( "cached", this.cacheArcLengths ); + return this.cacheArcLengths; + + } + + this.needsUpdate = false; + + var cache = []; + var current, last = this.getPoint( 0 ); + var p, sum = 0; + + cache.push( 0 ); + + for ( p = 1; p <= divisions; p ++ ) { + + current = this.getPoint ( p / divisions ); + sum += current.distanceTo( last ); + cache.push( sum ); + last = current; + + } + + this.cacheArcLengths = cache; + + return cache; // { sums: cache, sum:sum }; Sum is in the last element. + +}; + + +THREE.Curve.prototype.updateArcLengths = function() { + this.needsUpdate = true; + this.getLengths(); +}; + +// Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equi distance + +THREE.Curve.prototype.getUtoTmapping = function ( u, distance ) { + + var arcLengths = this.getLengths(); + + var i = 0, il = arcLengths.length; + + var targetArcLength; // The targeted u distance value to get + + if ( distance ) { + + targetArcLength = distance; + + } else { + + targetArcLength = u * arcLengths[ il - 1 ]; + + } + + //var time = Date.now(); + + // binary search for the index with largest value smaller than target u distance + + var low = 0, high = il - 1, comparison; + + while ( low <= high ) { + + i = Math.floor( low + ( high - low ) / 2 ); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats + + comparison = arcLengths[ i ] - targetArcLength; + + if ( comparison < 0 ) { + + low = i + 1; + + } else if ( comparison > 0 ) { + + high = i - 1; + + } else { + + high = i; + break; + + // DONE + + } + + } + + i = high; + + //console.log('b' , i, low, high, Date.now()- time); + + if ( arcLengths[ i ] == targetArcLength ) { + + var t = i / ( il - 1 ); + return t; + + } + + // we could get finer grain at lengths, or use simple interpolatation between two points + + var lengthBefore = arcLengths[ i ]; + var lengthAfter = arcLengths[ i + 1 ]; + + var segmentLength = lengthAfter - lengthBefore; + + // determine where we are between the 'before' and 'after' points + + var segmentFraction = ( targetArcLength - lengthBefore ) / segmentLength; + + // add that fractional amount to t + + var t = ( i + segmentFraction ) / ( il - 1 ); + + return t; + +}; + +// Returns a unit vector tangent at t +// In case any sub curve does not implement its tangent derivation, +// 2 points a small delta apart will be used to find its gradient +// which seems to give a reasonable approximation + +THREE.Curve.prototype.getTangent = function( t ) { + + var delta = 0.0001; + var t1 = t - delta; + var t2 = t + delta; + + // Capping in case of danger + + if ( t1 < 0 ) t1 = 0; + if ( t2 > 1 ) t2 = 1; + + var pt1 = this.getPoint( t1 ); + var pt2 = this.getPoint( t2 ); + + var vec = pt2.clone().sub(pt1); + return vec.normalize(); + +}; + + +THREE.Curve.prototype.getTangentAt = function ( u ) { + + var t = this.getUtoTmapping( u ); + return this.getTangent( t ); + +}; + + + + + +/************************************************************** + * Utils + **************************************************************/ + +THREE.Curve.Utils = { + + tangentQuadraticBezier: function ( t, p0, p1, p2 ) { + + return 2 * ( 1 - t ) * ( p1 - p0 ) + 2 * t * ( p2 - p1 ); + + }, + + // Puay Bing, thanks for helping with this derivative! + + tangentCubicBezier: function (t, p0, p1, p2, p3 ) { + + return - 3 * p0 * (1 - t) * (1 - t) + + 3 * p1 * (1 - t) * (1 - t) - 6 * t * p1 * (1 - t) + + 6 * t * p2 * (1 - t) - 3 * t * t * p2 + + 3 * t * t * p3; + + }, + + tangentSpline: function ( t, p0, p1, p2, p3 ) { + + // To check if my formulas are correct + + var h00 = 6 * t * t - 6 * t; // derived from 2t^3 − 3t^2 + 1 + var h10 = 3 * t * t - 4 * t + 1; // t^3 − 2t^2 + t + var h01 = - 6 * t * t + 6 * t; // − 2t3 + 3t2 + var h11 = 3 * t * t - 2 * t; // t3 − t2 + + return h00 + h10 + h01 + h11; + + }, + + // Catmull-Rom + + interpolate: function( p0, p1, p2, p3, t ) { + + var v0 = ( p2 - p0 ) * 0.5; + var v1 = ( p3 - p1 ) * 0.5; + var t2 = t * t; + var t3 = t * t2; + return ( 2 * p1 - 2 * p2 + v0 + v1 ) * t3 + ( - 3 * p1 + 3 * p2 - 2 * v0 - v1 ) * t2 + v0 * t + p1; + + } + +}; + + +// TODO: Transformation for Curves? + +/************************************************************** + * 3D Curves + **************************************************************/ + +// A Factory method for creating new curve subclasses + +THREE.Curve.create = function ( constructor, getPointFunc ) { + + constructor.prototype = Object.create( THREE.Curve.prototype ); + constructor.prototype.constructor = constructor; + constructor.prototype.getPoint = getPointFunc; + + return constructor; + +}; + +// File:src/extras/core/CurvePath.js + +/** + * @author zz85 / http://www.lab4games.net/zz85/blog + * + **/ + +/************************************************************** + * Curved Path - a curve path is simply a array of connected + * curves, but retains the api of a curve + **************************************************************/ + +THREE.CurvePath = function () { + + this.curves = []; + this.bends = []; + + this.autoClose = false; // Automatically closes the path +}; + +THREE.CurvePath.prototype = Object.create( THREE.Curve.prototype ); +THREE.CurvePath.prototype.constructor = THREE.CurvePath; + +THREE.CurvePath.prototype.add = function ( curve ) { + + this.curves.push( curve ); + +}; + +THREE.CurvePath.prototype.checkConnection = function() { + // TODO + // If the ending of curve is not connected to the starting + // or the next curve, then, this is not a real path +}; + +THREE.CurvePath.prototype.closePath = function() { + // TODO Test + // and verify for vector3 (needs to implement equals) + // Add a line curve if start and end of lines are not connected + var startPoint = this.curves[0].getPoint(0); + var endPoint = this.curves[this.curves.length - 1].getPoint(1); + + if (! startPoint.equals(endPoint)) { + this.curves.push( new THREE.LineCurve(endPoint, startPoint) ); + } + +}; + +// To get accurate point with reference to +// entire path distance at time t, +// following has to be done: + +// 1. Length of each sub path have to be known +// 2. Locate and identify type of curve +// 3. Get t for the curve +// 4. Return curve.getPointAt(t') + +THREE.CurvePath.prototype.getPoint = function( t ) { + + var d = t * this.getLength(); + var curveLengths = this.getCurveLengths(); + var i = 0, diff, curve; + + // To think about boundaries points. + + while ( i < curveLengths.length ) { + + if ( curveLengths[ i ] >= d ) { + + diff = curveLengths[ i ] - d; + curve = this.curves[ i ]; + + var u = 1 - diff / curve.getLength(); + + return curve.getPointAt( u ); + + } + + i ++; + + } + + return null; + + // loop where sum != 0, sum > d , sum+1 maxX ) maxX = p.x; + else if ( p.x < minX ) minX = p.x; + + if ( p.y > maxY ) maxY = p.y; + else if ( p.y < minY ) minY = p.y; + + if ( v3 ) { + + if ( p.z > maxZ ) maxZ = p.z; + else if ( p.z < minZ ) minZ = p.z; + + } + + sum.add( p ); + + } + + var ret = { + + minX: minX, + minY: minY, + maxX: maxX, + maxY: maxY + + }; + + if ( v3 ) { + + ret.maxZ = maxZ; + ret.minZ = minZ; + + } + + return ret; + +}; + +/************************************************************** + * Create Geometries Helpers + **************************************************************/ + +/// Generate geometry from path points (for Line or Points objects) + +THREE.CurvePath.prototype.createPointsGeometry = function( divisions ) { + + var pts = this.getPoints( divisions, true ); + return this.createGeometry( pts ); + +}; + +// Generate geometry from equidistance sampling along the path + +THREE.CurvePath.prototype.createSpacedPointsGeometry = function( divisions ) { + + var pts = this.getSpacedPoints( divisions, true ); + return this.createGeometry( pts ); + +}; + +THREE.CurvePath.prototype.createGeometry = function( points ) { + + var geometry = new THREE.Geometry(); + + for ( var i = 0; i < points.length; i ++ ) { + + geometry.vertices.push( new THREE.Vector3( points[ i ].x, points[ i ].y, points[ i ].z || 0) ); + + } + + return geometry; + +}; + + +/************************************************************** + * Bend / Wrap Helper Methods + **************************************************************/ + +// Wrap path / Bend modifiers? + +THREE.CurvePath.prototype.addWrapPath = function ( bendpath ) { + + this.bends.push( bendpath ); + +}; + +THREE.CurvePath.prototype.getTransformedPoints = function( segments, bends ) { + + var oldPts = this.getPoints( segments ); // getPoints getSpacedPoints + var i, il; + + if ( ! bends ) { + + bends = this.bends; + + } + + for ( i = 0, il = bends.length; i < il; i ++ ) { + + oldPts = this.getWrapPoints( oldPts, bends[ i ] ); + + } + + return oldPts; + +}; + +THREE.CurvePath.prototype.getTransformedSpacedPoints = function( segments, bends ) { + + var oldPts = this.getSpacedPoints( segments ); + + var i, il; + + if ( ! bends ) { + + bends = this.bends; + + } + + for ( i = 0, il = bends.length; i < il; i ++ ) { + + oldPts = this.getWrapPoints( oldPts, bends[ i ] ); + + } + + return oldPts; + +}; + +// This returns getPoints() bend/wrapped around the contour of a path. +// Read http://www.planetclegg.com/projects/WarpingTextToSplines.html + +THREE.CurvePath.prototype.getWrapPoints = function ( oldPts, path ) { + + var bounds = this.getBoundingBox(); + + var i, il, p, oldX, oldY, xNorm; + + for ( i = 0, il = oldPts.length; i < il; i ++ ) { + + p = oldPts[ i ]; + + oldX = p.x; + oldY = p.y; + + xNorm = oldX / bounds.maxX; + + // If using actual distance, for length > path, requires line extrusions + //xNorm = path.getUtoTmapping(xNorm, oldX); // 3 styles. 1) wrap stretched. 2) wrap stretch by arc length 3) warp by actual distance + + xNorm = path.getUtoTmapping( xNorm, oldX ); + + // check for out of bounds? + + var pathPt = path.getPoint( xNorm ); + var normal = path.getTangent( xNorm ); + normal.set( - normal.y, normal.x ).multiplyScalar( oldY ); + + p.x = pathPt.x + normal.x; + p.y = pathPt.y + normal.y; + + } + + return oldPts; + +}; + + +// File:src/extras/core/Gyroscope.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.Gyroscope = function () { + + THREE.Object3D.call( this ); + +}; + +THREE.Gyroscope.prototype = Object.create( THREE.Object3D.prototype ); +THREE.Gyroscope.prototype.constructor = THREE.Gyroscope; + +THREE.Gyroscope.prototype.updateMatrixWorld = ( function () { + + var translationObject = new THREE.Vector3(); + var quaternionObject = new THREE.Quaternion(); + var scaleObject = new THREE.Vector3(); + + var translationWorld = new THREE.Vector3(); + var quaternionWorld = new THREE.Quaternion(); + var scaleWorld = new THREE.Vector3(); + + return function ( force ) { + + this.matrixAutoUpdate && this.updateMatrix(); + + // update matrixWorld + + if ( this.matrixWorldNeedsUpdate || force ) { + + if ( this.parent ) { + + this.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix ); + + this.matrixWorld.decompose( translationWorld, quaternionWorld, scaleWorld ); + this.matrix.decompose( translationObject, quaternionObject, scaleObject ); + + this.matrixWorld.compose( translationWorld, quaternionObject, scaleWorld ); + + + } else { + + this.matrixWorld.copy( this.matrix ); + + } + + + this.matrixWorldNeedsUpdate = false; + + force = true; + + } + + // update children + + for ( var i = 0, l = this.children.length; i < l; i ++ ) { + + this.children[ i ].updateMatrixWorld( force ); + + } + + }; + +}() ); + +// File:src/extras/core/Path.js + +/** + * @author zz85 / http://www.lab4games.net/zz85/blog + * Creates free form 2d path using series of points, lines or curves. + * + **/ + +THREE.Path = function ( points ) { + + THREE.CurvePath.call(this); + + this.actions = []; + + if ( points ) { + + this.fromPoints( points ); + + } + +}; + +THREE.Path.prototype = Object.create( THREE.CurvePath.prototype ); +THREE.Path.prototype.constructor = THREE.Path; + +THREE.PathActions = { + + MOVE_TO: 'moveTo', + LINE_TO: 'lineTo', + QUADRATIC_CURVE_TO: 'quadraticCurveTo', // Bezier quadratic curve + BEZIER_CURVE_TO: 'bezierCurveTo', // Bezier cubic curve + CSPLINE_THRU: 'splineThru', // Catmull-rom spline + ARC: 'arc', // Circle + ELLIPSE: 'ellipse' +}; + +// TODO Clean up PATH API + +// Create path using straight lines to connect all points +// - vectors: array of Vector2 + +THREE.Path.prototype.fromPoints = function ( vectors ) { + + this.moveTo( vectors[ 0 ].x, vectors[ 0 ].y ); + + for ( var v = 1, vlen = vectors.length; v < vlen; v ++ ) { + + this.lineTo( vectors[ v ].x, vectors[ v ].y ); + + }; + +}; + +// startPath() endPath()? + +THREE.Path.prototype.moveTo = function ( x, y ) { + + var args = Array.prototype.slice.call( arguments ); + this.actions.push( { action: THREE.PathActions.MOVE_TO, args: args } ); + +}; + +THREE.Path.prototype.lineTo = function ( x, y ) { + + var args = Array.prototype.slice.call( arguments ); + + var lastargs = this.actions[ this.actions.length - 1 ].args; + + var x0 = lastargs[ lastargs.length - 2 ]; + var y0 = lastargs[ lastargs.length - 1 ]; + + var curve = new THREE.LineCurve( new THREE.Vector2( x0, y0 ), new THREE.Vector2( x, y ) ); + this.curves.push( curve ); + + this.actions.push( { action: THREE.PathActions.LINE_TO, args: args } ); + +}; + +THREE.Path.prototype.quadraticCurveTo = function( aCPx, aCPy, aX, aY ) { + + var args = Array.prototype.slice.call( arguments ); + + var lastargs = this.actions[ this.actions.length - 1 ].args; + + var x0 = lastargs[ lastargs.length - 2 ]; + var y0 = lastargs[ lastargs.length - 1 ]; + + var curve = new THREE.QuadraticBezierCurve( new THREE.Vector2( x0, y0 ), + new THREE.Vector2( aCPx, aCPy ), + new THREE.Vector2( aX, aY ) ); + this.curves.push( curve ); + + this.actions.push( { action: THREE.PathActions.QUADRATIC_CURVE_TO, args: args } ); + +}; + +THREE.Path.prototype.bezierCurveTo = function( aCP1x, aCP1y, + aCP2x, aCP2y, + aX, aY ) { + + var args = Array.prototype.slice.call( arguments ); + + var lastargs = this.actions[ this.actions.length - 1 ].args; + + var x0 = lastargs[ lastargs.length - 2 ]; + var y0 = lastargs[ lastargs.length - 1 ]; + + var curve = new THREE.CubicBezierCurve( new THREE.Vector2( x0, y0 ), + new THREE.Vector2( aCP1x, aCP1y ), + new THREE.Vector2( aCP2x, aCP2y ), + new THREE.Vector2( aX, aY ) ); + this.curves.push( curve ); + + this.actions.push( { action: THREE.PathActions.BEZIER_CURVE_TO, args: args } ); + +}; + +THREE.Path.prototype.splineThru = function( pts /*Array of Vector*/ ) { + + var args = Array.prototype.slice.call( arguments ); + var lastargs = this.actions[ this.actions.length - 1 ].args; + + var x0 = lastargs[ lastargs.length - 2 ]; + var y0 = lastargs[ lastargs.length - 1 ]; +//--- + var npts = [ new THREE.Vector2( x0, y0 ) ]; + Array.prototype.push.apply( npts, pts ); + + var curve = new THREE.SplineCurve( npts ); + this.curves.push( curve ); + + this.actions.push( { action: THREE.PathActions.CSPLINE_THRU, args: args } ); + +}; + +// FUTURE: Change the API or follow canvas API? + +THREE.Path.prototype.arc = function ( aX, aY, aRadius, + aStartAngle, aEndAngle, aClockwise ) { + + var lastargs = this.actions[ this.actions.length - 1].args; + var x0 = lastargs[ lastargs.length - 2 ]; + var y0 = lastargs[ lastargs.length - 1 ]; + + this.absarc(aX + x0, aY + y0, aRadius, + aStartAngle, aEndAngle, aClockwise ); + + }; + + THREE.Path.prototype.absarc = function ( aX, aY, aRadius, + aStartAngle, aEndAngle, aClockwise ) { + this.absellipse(aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise); + }; + +THREE.Path.prototype.ellipse = function ( aX, aY, xRadius, yRadius, + aStartAngle, aEndAngle, aClockwise ) { + + var lastargs = this.actions[ this.actions.length - 1].args; + var x0 = lastargs[ lastargs.length - 2 ]; + var y0 = lastargs[ lastargs.length - 1 ]; + + this.absellipse(aX + x0, aY + y0, xRadius, yRadius, + aStartAngle, aEndAngle, aClockwise ); + + }; + + +THREE.Path.prototype.absellipse = function ( aX, aY, xRadius, yRadius, + aStartAngle, aEndAngle, aClockwise ) { + + var args = Array.prototype.slice.call( arguments ); + var curve = new THREE.EllipseCurve( aX, aY, xRadius, yRadius, + aStartAngle, aEndAngle, aClockwise ); + this.curves.push( curve ); + + var lastPoint = curve.getPoint(1); + args.push(lastPoint.x); + args.push(lastPoint.y); + + this.actions.push( { action: THREE.PathActions.ELLIPSE, args: args } ); + + }; + +THREE.Path.prototype.getSpacedPoints = function ( divisions, closedPath ) { + + if ( ! divisions ) divisions = 40; + + var points = []; + + for ( var i = 0; i < divisions; i ++ ) { + + points.push( this.getPoint( i / divisions ) ); + + //if( !this.getPoint( i / divisions ) ) throw "DIE"; + + } + + // if ( closedPath ) { + // + // points.push( points[ 0 ] ); + // + // } + + return points; + +}; + +/* Return an array of vectors based on contour of the path */ + +THREE.Path.prototype.getPoints = function( divisions, closedPath ) { + + if (this.useSpacedPoints) { + console.log('tata'); + return this.getSpacedPoints( divisions, closedPath ); + } + + divisions = divisions || 12; + + var points = []; + + var i, il, item, action, args; + var cpx, cpy, cpx2, cpy2, cpx1, cpy1, cpx0, cpy0, + laste, j, + t, tx, ty; + + for ( i = 0, il = this.actions.length; i < il; i ++ ) { + + item = this.actions[ i ]; + + action = item.action; + args = item.args; + + switch ( action ) { + + case THREE.PathActions.MOVE_TO: + + points.push( new THREE.Vector2( args[ 0 ], args[ 1 ] ) ); + + break; + + case THREE.PathActions.LINE_TO: + + points.push( new THREE.Vector2( args[ 0 ], args[ 1 ] ) ); + + break; + + case THREE.PathActions.QUADRATIC_CURVE_TO: + + cpx = args[ 2 ]; + cpy = args[ 3 ]; + + cpx1 = args[ 0 ]; + cpy1 = args[ 1 ]; + + if ( points.length > 0 ) { + + laste = points[ points.length - 1 ]; + + cpx0 = laste.x; + cpy0 = laste.y; + + } else { + + laste = this.actions[ i - 1 ].args; + + cpx0 = laste[ laste.length - 2 ]; + cpy0 = laste[ laste.length - 1 ]; + + } + + for ( j = 1; j <= divisions; j ++ ) { + + t = j / divisions; + + tx = THREE.Shape.Utils.b2( t, cpx0, cpx1, cpx ); + ty = THREE.Shape.Utils.b2( t, cpy0, cpy1, cpy ); + + points.push( new THREE.Vector2( tx, ty ) ); + + } + + break; + + case THREE.PathActions.BEZIER_CURVE_TO: + + cpx = args[ 4 ]; + cpy = args[ 5 ]; + + cpx1 = args[ 0 ]; + cpy1 = args[ 1 ]; + + cpx2 = args[ 2 ]; + cpy2 = args[ 3 ]; + + if ( points.length > 0 ) { + + laste = points[ points.length - 1 ]; + + cpx0 = laste.x; + cpy0 = laste.y; + + } else { + + laste = this.actions[ i - 1 ].args; + + cpx0 = laste[ laste.length - 2 ]; + cpy0 = laste[ laste.length - 1 ]; + + } + + + for ( j = 1; j <= divisions; j ++ ) { + + t = j / divisions; + + tx = THREE.Shape.Utils.b3( t, cpx0, cpx1, cpx2, cpx ); + ty = THREE.Shape.Utils.b3( t, cpy0, cpy1, cpy2, cpy ); + + points.push( new THREE.Vector2( tx, ty ) ); + + } + + break; + + case THREE.PathActions.CSPLINE_THRU: + + laste = this.actions[ i - 1 ].args; + + var last = new THREE.Vector2( laste[ laste.length - 2 ], laste[ laste.length - 1 ] ); + var spts = [ last ]; + + var n = divisions * args[ 0 ].length; + + spts = spts.concat( args[ 0 ] ); + + var spline = new THREE.SplineCurve( spts ); + + for ( j = 1; j <= n; j ++ ) { + + points.push( spline.getPointAt( j / n ) ) ; + + } + + break; + + case THREE.PathActions.ARC: + + var aX = args[ 0 ], aY = args[ 1 ], + aRadius = args[ 2 ], + aStartAngle = args[ 3 ], aEndAngle = args[ 4 ], + aClockwise = !! args[ 5 ]; + + var deltaAngle = aEndAngle - aStartAngle; + var angle; + var tdivisions = divisions * 2; + + for ( j = 1; j <= tdivisions; j ++ ) { + + t = j / tdivisions; + + if ( ! aClockwise ) { + + t = 1 - t; + + } + + angle = aStartAngle + t * deltaAngle; + + tx = aX + aRadius * Math.cos( angle ); + ty = aY + aRadius * Math.sin( angle ); + + //console.log('t', t, 'angle', angle, 'tx', tx, 'ty', ty); + + points.push( new THREE.Vector2( tx, ty ) ); + + } + + //console.log(points); + + break; + + case THREE.PathActions.ELLIPSE: + + var aX = args[ 0 ], aY = args[ 1 ], + xRadius = args[ 2 ], + yRadius = args[ 3 ], + aStartAngle = args[ 4 ], aEndAngle = args[ 5 ], + aClockwise = !! args[ 6 ]; + + + var deltaAngle = aEndAngle - aStartAngle; + var angle; + var tdivisions = divisions * 2; + + for ( j = 1; j <= tdivisions; j ++ ) { + + t = j / tdivisions; + + if ( ! aClockwise ) { + + t = 1 - t; + + } + + angle = aStartAngle + t * deltaAngle; + + tx = aX + xRadius * Math.cos( angle ); + ty = aY + yRadius * Math.sin( angle ); + + //console.log('t', t, 'angle', angle, 'tx', tx, 'ty', ty); + + points.push( new THREE.Vector2( tx, ty ) ); + + } + + //console.log(points); + + break; + + } // end switch + + } + + + + // Normalize to remove the closing point by default. + var lastPoint = points[ points.length - 1]; + var EPSILON = 0.0000000001; + if ( Math.abs(lastPoint.x - points[ 0 ].x) < EPSILON && + Math.abs(lastPoint.y - points[ 0 ].y) < EPSILON) + points.splice( points.length - 1, 1); + if ( closedPath ) { + + points.push( points[ 0 ] ); + + } + + return points; + +}; + +// +// Breaks path into shapes +// +// Assumptions (if parameter isCCW==true the opposite holds): +// - solid shapes are defined clockwise (CW) +// - holes are defined counterclockwise (CCW) +// +// If parameter noHoles==true: +// - all subPaths are regarded as solid shapes +// - definition order CW/CCW has no relevance +// + +THREE.Path.prototype.toShapes = function( isCCW, noHoles ) { + + function extractSubpaths( inActions ) { + + var i, il, item, action, args; + + var subPaths = [], lastPath = new THREE.Path(); + + for ( i = 0, il = inActions.length; i < il; i ++ ) { + + item = inActions[ i ]; + + args = item.args; + action = item.action; + + if ( action == THREE.PathActions.MOVE_TO ) { + + if ( lastPath.actions.length != 0 ) { + + subPaths.push( lastPath ); + lastPath = new THREE.Path(); + + } + + } + + lastPath[ action ].apply( lastPath, args ); + + } + + if ( lastPath.actions.length != 0 ) { + + subPaths.push( lastPath ); + + } + + // console.log(subPaths); + + return subPaths; + } + + function toShapesNoHoles( inSubpaths ) { + + var shapes = []; + + for ( var i = 0, il = inSubpaths.length; i < il; i ++ ) { + + var tmpPath = inSubpaths[ i ]; + + var tmpShape = new THREE.Shape(); + tmpShape.actions = tmpPath.actions; + tmpShape.curves = tmpPath.curves; + + shapes.push( tmpShape ); + } + + //console.log("shape", shapes); + + return shapes; + }; + + function isPointInsidePolygon( inPt, inPolygon ) { + var EPSILON = 0.0000000001; + + var polyLen = inPolygon.length; + + // inPt on polygon contour => immediate success or + // toggling of inside/outside at every single! intersection point of an edge + // with the horizontal line through inPt, left of inPt + // not counting lowerY endpoints of edges and whole edges on that line + var inside = false; + for ( var p = polyLen - 1, q = 0; q < polyLen; p = q ++ ) { + var edgeLowPt = inPolygon[ p ]; + var edgeHighPt = inPolygon[ q ]; + + var edgeDx = edgeHighPt.x - edgeLowPt.x; + var edgeDy = edgeHighPt.y - edgeLowPt.y; + + if ( Math.abs(edgeDy) > EPSILON ) { // not parallel + if ( edgeDy < 0 ) { + edgeLowPt = inPolygon[ q ]; edgeDx = - edgeDx; + edgeHighPt = inPolygon[ p ]; edgeDy = - edgeDy; + } + if ( ( inPt.y < edgeLowPt.y ) || ( inPt.y > edgeHighPt.y ) ) continue; + + if ( inPt.y == edgeLowPt.y ) { + if ( inPt.x == edgeLowPt.x ) return true; // inPt is on contour ? + // continue; // no intersection or edgeLowPt => doesn't count !!! + } else { + var perpEdge = edgeDy * (inPt.x - edgeLowPt.x) - edgeDx * (inPt.y - edgeLowPt.y); + if ( perpEdge == 0 ) return true; // inPt is on contour ? + if ( perpEdge < 0 ) continue; + inside = ! inside; // true intersection left of inPt + } + } else { // parallel or colinear + if ( inPt.y != edgeLowPt.y ) continue; // parallel + // egde lies on the same horizontal line as inPt + if ( ( ( edgeHighPt.x <= inPt.x ) && ( inPt.x <= edgeLowPt.x ) ) || + ( ( edgeLowPt.x <= inPt.x ) && ( inPt.x <= edgeHighPt.x ) ) ) return true; // inPt: Point on contour ! + // continue; + } + } + + return inside; + } + + + var subPaths = extractSubpaths( this.actions ); + if ( subPaths.length == 0 ) return []; + + if ( noHoles === true ) return toShapesNoHoles( subPaths ); + + + var solid, tmpPath, tmpShape, shapes = []; + + if ( subPaths.length == 1) { + + tmpPath = subPaths[0]; + tmpShape = new THREE.Shape(); + tmpShape.actions = tmpPath.actions; + tmpShape.curves = tmpPath.curves; + shapes.push( tmpShape ); + return shapes; + + } + + var holesFirst = ! THREE.Shape.Utils.isClockWise( subPaths[ 0 ].getPoints() ); + holesFirst = isCCW ? ! holesFirst : holesFirst; + + // console.log("Holes first", holesFirst); + + var betterShapeHoles = []; + var newShapes = []; + var newShapeHoles = []; + var mainIdx = 0; + var tmpPoints; + + newShapes[mainIdx] = undefined; + newShapeHoles[mainIdx] = []; + + var i, il; + + for ( i = 0, il = subPaths.length; i < il; i ++ ) { + + tmpPath = subPaths[ i ]; + tmpPoints = tmpPath.getPoints(); + solid = THREE.Shape.Utils.isClockWise( tmpPoints ); + solid = isCCW ? ! solid : solid; + + if ( solid ) { + + if ( (! holesFirst ) && ( newShapes[mainIdx] ) ) mainIdx ++; + + newShapes[mainIdx] = { s: new THREE.Shape(), p: tmpPoints }; + newShapes[mainIdx].s.actions = tmpPath.actions; + newShapes[mainIdx].s.curves = tmpPath.curves; + + if ( holesFirst ) mainIdx ++; + newShapeHoles[mainIdx] = []; + + //console.log('cw', i); + + } else { + + newShapeHoles[mainIdx].push( { h: tmpPath, p: tmpPoints[0] } ); + + //console.log('ccw', i); + + } + + } + + // only Holes? -> probably all Shapes with wrong orientation + if ( ! newShapes[0] ) return toShapesNoHoles( subPaths ); + + + if ( newShapes.length > 1 ) { + var ambigious = false; + var toChange = []; + + for (var sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) { + betterShapeHoles[sIdx] = []; + } + for (var sIdx = 0, sLen = newShapes.length; sIdx < sLen; sIdx ++ ) { + var sho = newShapeHoles[sIdx]; + for (var hIdx = 0; hIdx < sho.length; hIdx ++ ) { + var ho = sho[hIdx]; + var hole_unassigned = true; + for (var s2Idx = 0; s2Idx < newShapes.length; s2Idx ++ ) { + if ( isPointInsidePolygon( ho.p, newShapes[s2Idx].p ) ) { + if ( sIdx != s2Idx ) toChange.push( { froms: sIdx, tos: s2Idx, hole: hIdx } ); + if ( hole_unassigned ) { + hole_unassigned = false; + betterShapeHoles[s2Idx].push( ho ); + } else { + ambigious = true; + } + } + } + if ( hole_unassigned ) { betterShapeHoles[sIdx].push( ho ); } + } + } + // console.log("ambigious: ", ambigious); + if ( toChange.length > 0 ) { + // console.log("to change: ", toChange); + if (! ambigious) newShapeHoles = betterShapeHoles; + } + } + + var tmpHoles, j, jl; + for ( i = 0, il = newShapes.length; i < il; i ++ ) { + tmpShape = newShapes[i].s; + shapes.push( tmpShape ); + tmpHoles = newShapeHoles[i]; + for ( j = 0, jl = tmpHoles.length; j < jl; j ++ ) { + tmpShape.holes.push( tmpHoles[j].h ); + } + } + + //console.log("shape", shapes); + + return shapes; + +}; + +// File:src/extras/core/Shape.js + +/** + * @author zz85 / http://www.lab4games.net/zz85/blog + * Defines a 2d shape plane using paths. + **/ + +// STEP 1 Create a path. +// STEP 2 Turn path into shape. +// STEP 3 ExtrudeGeometry takes in Shape/Shapes +// STEP 3a - Extract points from each shape, turn to vertices +// STEP 3b - Triangulate each shape, add faces. + +THREE.Shape = function () { + + THREE.Path.apply( this, arguments ); + this.holes = []; + +}; + +THREE.Shape.prototype = Object.create( THREE.Path.prototype ); +THREE.Shape.prototype.constructor = THREE.Shape; + +// Convenience method to return ExtrudeGeometry + +THREE.Shape.prototype.extrude = function ( options ) { + + var extruded = new THREE.ExtrudeGeometry( this, options ); + return extruded; + +}; + +// Convenience method to return ShapeGeometry + +THREE.Shape.prototype.makeGeometry = function ( options ) { + + var geometry = new THREE.ShapeGeometry( this, options ); + return geometry; + +}; + +// Get points of holes + +THREE.Shape.prototype.getPointsHoles = function ( divisions ) { + + var i, il = this.holes.length, holesPts = []; + + for ( i = 0; i < il; i ++ ) { + + holesPts[ i ] = this.holes[ i ].getTransformedPoints( divisions, this.bends ); + + } + + return holesPts; + +}; + +// Get points of holes (spaced by regular distance) + +THREE.Shape.prototype.getSpacedPointsHoles = function ( divisions ) { + + var i, il = this.holes.length, holesPts = []; + + for ( i = 0; i < il; i ++ ) { + + holesPts[ i ] = this.holes[ i ].getTransformedSpacedPoints( divisions, this.bends ); + + } + + return holesPts; + +}; + + +// Get points of shape and holes (keypoints based on segments parameter) + +THREE.Shape.prototype.extractAllPoints = function ( divisions ) { + + return { + + shape: this.getTransformedPoints( divisions ), + holes: this.getPointsHoles( divisions ) + + }; + +}; + +THREE.Shape.prototype.extractPoints = function ( divisions ) { + + if (this.useSpacedPoints) { + return this.extractAllSpacedPoints(divisions); + } + + return this.extractAllPoints(divisions); + +}; + +// +// THREE.Shape.prototype.extractAllPointsWithBend = function ( divisions, bend ) { +// +// return { +// +// shape: this.transform( bend, divisions ), +// holes: this.getPointsHoles( divisions, bend ) +// +// }; +// +// }; + +// Get points of shape and holes (spaced by regular distance) + +THREE.Shape.prototype.extractAllSpacedPoints = function ( divisions ) { + + return { + + shape: this.getTransformedSpacedPoints( divisions ), + holes: this.getSpacedPointsHoles( divisions ) + + }; + +}; + +/************************************************************** + * Utils + **************************************************************/ + +THREE.Shape.Utils = { + + triangulateShape: function ( contour, holes ) { + + function point_in_segment_2D_colin( inSegPt1, inSegPt2, inOtherPt ) { + // inOtherPt needs to be colinear to the inSegment + if ( inSegPt1.x != inSegPt2.x ) { + if ( inSegPt1.x < inSegPt2.x ) { + return ( ( inSegPt1.x <= inOtherPt.x ) && ( inOtherPt.x <= inSegPt2.x ) ); + } else { + return ( ( inSegPt2.x <= inOtherPt.x ) && ( inOtherPt.x <= inSegPt1.x ) ); + } + } else { + if ( inSegPt1.y < inSegPt2.y ) { + return ( ( inSegPt1.y <= inOtherPt.y ) && ( inOtherPt.y <= inSegPt2.y ) ); + } else { + return ( ( inSegPt2.y <= inOtherPt.y ) && ( inOtherPt.y <= inSegPt1.y ) ); + } + } + } + + function intersect_segments_2D( inSeg1Pt1, inSeg1Pt2, inSeg2Pt1, inSeg2Pt2, inExcludeAdjacentSegs ) { + var EPSILON = 0.0000000001; + + var seg1dx = inSeg1Pt2.x - inSeg1Pt1.x, seg1dy = inSeg1Pt2.y - inSeg1Pt1.y; + var seg2dx = inSeg2Pt2.x - inSeg2Pt1.x, seg2dy = inSeg2Pt2.y - inSeg2Pt1.y; + + var seg1seg2dx = inSeg1Pt1.x - inSeg2Pt1.x; + var seg1seg2dy = inSeg1Pt1.y - inSeg2Pt1.y; + + var limit = seg1dy * seg2dx - seg1dx * seg2dy; + var perpSeg1 = seg1dy * seg1seg2dx - seg1dx * seg1seg2dy; + + if ( Math.abs(limit) > EPSILON ) { // not parallel + + var perpSeg2; + if ( limit > 0 ) { + if ( ( perpSeg1 < 0 ) || ( perpSeg1 > limit ) ) return []; + perpSeg2 = seg2dy * seg1seg2dx - seg2dx * seg1seg2dy; + if ( ( perpSeg2 < 0 ) || ( perpSeg2 > limit ) ) return []; + } else { + if ( ( perpSeg1 > 0 ) || ( perpSeg1 < limit ) ) return []; + perpSeg2 = seg2dy * seg1seg2dx - seg2dx * seg1seg2dy; + if ( ( perpSeg2 > 0 ) || ( perpSeg2 < limit ) ) return []; + } + + // i.e. to reduce rounding errors + // intersection at endpoint of segment#1? + if ( perpSeg2 == 0 ) { + if ( ( inExcludeAdjacentSegs ) && + ( ( perpSeg1 == 0 ) || ( perpSeg1 == limit ) ) ) return []; + return [ inSeg1Pt1 ]; + } + if ( perpSeg2 == limit ) { + if ( ( inExcludeAdjacentSegs ) && + ( ( perpSeg1 == 0 ) || ( perpSeg1 == limit ) ) ) return []; + return [ inSeg1Pt2 ]; + } + // intersection at endpoint of segment#2? + if ( perpSeg1 == 0 ) return [ inSeg2Pt1 ]; + if ( perpSeg1 == limit ) return [ inSeg2Pt2 ]; + + // return real intersection point + var factorSeg1 = perpSeg2 / limit; + return [ { x: inSeg1Pt1.x + factorSeg1 * seg1dx, + y: inSeg1Pt1.y + factorSeg1 * seg1dy } ]; + + } else { // parallel or colinear + if ( ( perpSeg1 != 0 ) || + ( seg2dy * seg1seg2dx != seg2dx * seg1seg2dy ) ) return []; + + // they are collinear or degenerate + var seg1Pt = ( (seg1dx == 0) && (seg1dy == 0) ); // segment1 ist just a point? + var seg2Pt = ( (seg2dx == 0) && (seg2dy == 0) ); // segment2 ist just a point? + // both segments are points + if ( seg1Pt && seg2Pt ) { + if ( (inSeg1Pt1.x != inSeg2Pt1.x) || + (inSeg1Pt1.y != inSeg2Pt1.y) ) return []; // they are distinct points + return [ inSeg1Pt1 ]; // they are the same point + } + // segment#1 is a single point + if ( seg1Pt ) { + if (! point_in_segment_2D_colin( inSeg2Pt1, inSeg2Pt2, inSeg1Pt1 ) ) return []; // but not in segment#2 + return [ inSeg1Pt1 ]; + } + // segment#2 is a single point + if ( seg2Pt ) { + if (! point_in_segment_2D_colin( inSeg1Pt1, inSeg1Pt2, inSeg2Pt1 ) ) return []; // but not in segment#1 + return [ inSeg2Pt1 ]; + } + + // they are collinear segments, which might overlap + var seg1min, seg1max, seg1minVal, seg1maxVal; + var seg2min, seg2max, seg2minVal, seg2maxVal; + if (seg1dx != 0) { // the segments are NOT on a vertical line + if ( inSeg1Pt1.x < inSeg1Pt2.x ) { + seg1min = inSeg1Pt1; seg1minVal = inSeg1Pt1.x; + seg1max = inSeg1Pt2; seg1maxVal = inSeg1Pt2.x; + } else { + seg1min = inSeg1Pt2; seg1minVal = inSeg1Pt2.x; + seg1max = inSeg1Pt1; seg1maxVal = inSeg1Pt1.x; + } + if ( inSeg2Pt1.x < inSeg2Pt2.x ) { + seg2min = inSeg2Pt1; seg2minVal = inSeg2Pt1.x; + seg2max = inSeg2Pt2; seg2maxVal = inSeg2Pt2.x; + } else { + seg2min = inSeg2Pt2; seg2minVal = inSeg2Pt2.x; + seg2max = inSeg2Pt1; seg2maxVal = inSeg2Pt1.x; + } + } else { // the segments are on a vertical line + if ( inSeg1Pt1.y < inSeg1Pt2.y ) { + seg1min = inSeg1Pt1; seg1minVal = inSeg1Pt1.y; + seg1max = inSeg1Pt2; seg1maxVal = inSeg1Pt2.y; + } else { + seg1min = inSeg1Pt2; seg1minVal = inSeg1Pt2.y; + seg1max = inSeg1Pt1; seg1maxVal = inSeg1Pt1.y; + } + if ( inSeg2Pt1.y < inSeg2Pt2.y ) { + seg2min = inSeg2Pt1; seg2minVal = inSeg2Pt1.y; + seg2max = inSeg2Pt2; seg2maxVal = inSeg2Pt2.y; + } else { + seg2min = inSeg2Pt2; seg2minVal = inSeg2Pt2.y; + seg2max = inSeg2Pt1; seg2maxVal = inSeg2Pt1.y; + } + } + if ( seg1minVal <= seg2minVal ) { + if ( seg1maxVal < seg2minVal ) return []; + if ( seg1maxVal == seg2minVal ) { + if ( inExcludeAdjacentSegs ) return []; + return [ seg2min ]; + } + if ( seg1maxVal <= seg2maxVal ) return [ seg2min, seg1max ]; + return [ seg2min, seg2max ]; + } else { + if ( seg1minVal > seg2maxVal ) return []; + if ( seg1minVal == seg2maxVal ) { + if ( inExcludeAdjacentSegs ) return []; + return [ seg1min ]; + } + if ( seg1maxVal <= seg2maxVal ) return [ seg1min, seg1max ]; + return [ seg1min, seg2max ]; + } + } + } + + function isPointInsideAngle( inVertex, inLegFromPt, inLegToPt, inOtherPt ) { + // The order of legs is important + + var EPSILON = 0.0000000001; + + // translation of all points, so that Vertex is at (0,0) + var legFromPtX = inLegFromPt.x - inVertex.x, legFromPtY = inLegFromPt.y - inVertex.y; + var legToPtX = inLegToPt.x - inVertex.x, legToPtY = inLegToPt.y - inVertex.y; + var otherPtX = inOtherPt.x - inVertex.x, otherPtY = inOtherPt.y - inVertex.y; + + // main angle >0: < 180 deg.; 0: 180 deg.; <0: > 180 deg. + var from2toAngle = legFromPtX * legToPtY - legFromPtY * legToPtX; + var from2otherAngle = legFromPtX * otherPtY - legFromPtY * otherPtX; + + if ( Math.abs(from2toAngle) > EPSILON ) { // angle != 180 deg. + + var other2toAngle = otherPtX * legToPtY - otherPtY * legToPtX; + // console.log( "from2to: " + from2toAngle + ", from2other: " + from2otherAngle + ", other2to: " + other2toAngle ); + + if ( from2toAngle > 0 ) { // main angle < 180 deg. + return ( ( from2otherAngle >= 0 ) && ( other2toAngle >= 0 ) ); + } else { // main angle > 180 deg. + return ( ( from2otherAngle >= 0 ) || ( other2toAngle >= 0 ) ); + } + } else { // angle == 180 deg. + // console.log( "from2to: 180 deg., from2other: " + from2otherAngle ); + return ( from2otherAngle > 0 ); + } + } + + + function removeHoles( contour, holes ) { + + var shape = contour.concat(); // work on this shape + var hole; + + function isCutLineInsideAngles( inShapeIdx, inHoleIdx ) { + // Check if hole point lies within angle around shape point + var lastShapeIdx = shape.length - 1; + + var prevShapeIdx = inShapeIdx - 1; + if ( prevShapeIdx < 0 ) prevShapeIdx = lastShapeIdx; + + var nextShapeIdx = inShapeIdx + 1; + if ( nextShapeIdx > lastShapeIdx ) nextShapeIdx = 0; + + var insideAngle = isPointInsideAngle( shape[inShapeIdx], shape[ prevShapeIdx ], shape[ nextShapeIdx ], hole[inHoleIdx] ); + if (! insideAngle ) { + // console.log( "Vertex (Shape): " + inShapeIdx + ", Point: " + hole[inHoleIdx].x + "/" + hole[inHoleIdx].y ); + return false; + } + + // Check if shape point lies within angle around hole point + var lastHoleIdx = hole.length - 1; + + var prevHoleIdx = inHoleIdx - 1; + if ( prevHoleIdx < 0 ) prevHoleIdx = lastHoleIdx; + + var nextHoleIdx = inHoleIdx + 1; + if ( nextHoleIdx > lastHoleIdx ) nextHoleIdx = 0; + + insideAngle = isPointInsideAngle( hole[inHoleIdx], hole[ prevHoleIdx ], hole[ nextHoleIdx ], shape[inShapeIdx] ); + if (! insideAngle ) { + // console.log( "Vertex (Hole): " + inHoleIdx + ", Point: " + shape[inShapeIdx].x + "/" + shape[inShapeIdx].y ); + return false; + } + + return true; + } + + function intersectsShapeEdge( inShapePt, inHolePt ) { + // checks for intersections with shape edges + var sIdx, nextIdx, intersection; + for ( sIdx = 0; sIdx < shape.length; sIdx ++ ) { + nextIdx = sIdx + 1; nextIdx %= shape.length; + intersection = intersect_segments_2D( inShapePt, inHolePt, shape[sIdx], shape[nextIdx], true ); + if ( intersection.length > 0 ) return true; + } + + return false; + } + + var indepHoles = []; + + function intersectsHoleEdge( inShapePt, inHolePt ) { + // checks for intersections with hole edges + var ihIdx, chkHole, + hIdx, nextIdx, intersection; + for ( ihIdx = 0; ihIdx < indepHoles.length; ihIdx ++ ) { + chkHole = holes[indepHoles[ihIdx]]; + for ( hIdx = 0; hIdx < chkHole.length; hIdx ++ ) { + nextIdx = hIdx + 1; nextIdx %= chkHole.length; + intersection = intersect_segments_2D( inShapePt, inHolePt, chkHole[hIdx], chkHole[nextIdx], true ); + if ( intersection.length > 0 ) return true; + } + } + return false; + } + + var holeIndex, shapeIndex, + shapePt, holePt, + holeIdx, cutKey, failedCuts = [], + tmpShape1, tmpShape2, + tmpHole1, tmpHole2; + + for ( var h = 0, hl = holes.length; h < hl; h ++ ) { + + indepHoles.push( h ); + + } + + var minShapeIndex = 0; + var counter = indepHoles.length * 2; + while ( indepHoles.length > 0 ) { + counter --; + if ( counter < 0 ) { + console.log( "Infinite Loop! Holes left:" + indepHoles.length + ", Probably Hole outside Shape!" ); + break; + } + + // search for shape-vertex and hole-vertex, + // which can be connected without intersections + for ( shapeIndex = minShapeIndex; shapeIndex < shape.length; shapeIndex ++ ) { + + shapePt = shape[ shapeIndex ]; + holeIndex = - 1; + + // search for hole which can be reached without intersections + for ( var h = 0; h < indepHoles.length; h ++ ) { + holeIdx = indepHoles[h]; + + // prevent multiple checks + cutKey = shapePt.x + ":" + shapePt.y + ":" + holeIdx; + if ( failedCuts[cutKey] !== undefined ) continue; + + hole = holes[holeIdx]; + for ( var h2 = 0; h2 < hole.length; h2 ++ ) { + holePt = hole[ h2 ]; + if (! isCutLineInsideAngles( shapeIndex, h2 ) ) continue; + if ( intersectsShapeEdge( shapePt, holePt ) ) continue; + if ( intersectsHoleEdge( shapePt, holePt ) ) continue; + + holeIndex = h2; + indepHoles.splice(h, 1); + + tmpShape1 = shape.slice( 0, shapeIndex + 1 ); + tmpShape2 = shape.slice( shapeIndex ); + tmpHole1 = hole.slice( holeIndex ); + tmpHole2 = hole.slice( 0, holeIndex + 1 ); + + shape = tmpShape1.concat( tmpHole1 ).concat( tmpHole2 ).concat( tmpShape2 ); + + minShapeIndex = shapeIndex; + + // Debug only, to show the selected cuts + // glob_CutLines.push( [ shapePt, holePt ] ); + + break; + } + if ( holeIndex >= 0 ) break; // hole-vertex found + + failedCuts[cutKey] = true; // remember failure + } + if ( holeIndex >= 0 ) break; // hole-vertex found + } + } + + return shape; /* shape with no holes */ + } + + + var i, il, f, face, + key, index, + allPointsMap = {}; + + // To maintain reference to old shape, one must match coordinates, or offset the indices from original arrays. It's probably easier to do the first. + + var allpoints = contour.concat(); + + for ( var h = 0, hl = holes.length; h < hl; h ++ ) { + + Array.prototype.push.apply( allpoints, holes[h] ); + + } + + //console.log( "allpoints",allpoints, allpoints.length ); + + // prepare all points map + + for ( i = 0, il = allpoints.length; i < il; i ++ ) { + + key = allpoints[ i ].x + ":" + allpoints[ i ].y; + + if ( allPointsMap[ key ] !== undefined ) { + + THREE.warn( "THREE.Shape: Duplicate point", key ); + + } + + allPointsMap[ key ] = i; + + } + + // remove holes by cutting paths to holes and adding them to the shape + var shapeWithoutHoles = removeHoles( contour, holes ); + + var triangles = THREE.FontUtils.Triangulate( shapeWithoutHoles, false ); // True returns indices for points of spooled shape + //console.log( "triangles",triangles, triangles.length ); + + // check all face vertices against all points map + + for ( i = 0, il = triangles.length; i < il; i ++ ) { + + face = triangles[ i ]; + + for ( f = 0; f < 3; f ++ ) { + + key = face[ f ].x + ":" + face[ f ].y; + + index = allPointsMap[ key ]; + + if ( index !== undefined ) { + + face[ f ] = index; + + } + + } + + } + + return triangles.concat(); + + }, + + isClockWise: function ( pts ) { + + return THREE.FontUtils.Triangulate.area( pts ) < 0; + + }, + + // Bezier Curves formulas obtained from + // http://en.wikipedia.org/wiki/B%C3%A9zier_curve + + // Quad Bezier Functions + + b2p0: function ( t, p ) { + + var k = 1 - t; + return k * k * p; + + }, + + b2p1: function ( t, p ) { + + return 2 * ( 1 - t ) * t * p; + + }, + + b2p2: function ( t, p ) { + + return t * t * p; + + }, + + b2: function ( t, p0, p1, p2 ) { + + return this.b2p0( t, p0 ) + this.b2p1( t, p1 ) + this.b2p2( t, p2 ); + + }, + + // Cubic Bezier Functions + + b3p0: function ( t, p ) { + + var k = 1 - t; + return k * k * k * p; + + }, + + b3p1: function ( t, p ) { + + var k = 1 - t; + return 3 * k * k * t * p; + + }, + + b3p2: function ( t, p ) { + + var k = 1 - t; + return 3 * k * t * t * p; + + }, + + b3p3: function ( t, p ) { + + return t * t * t * p; + + }, + + b3: function ( t, p0, p1, p2, p3 ) { + + return this.b3p0( t, p0 ) + this.b3p1( t, p1 ) + this.b3p2( t, p2 ) + this.b3p3( t, p3 ); + + } + +}; + + +// File:src/extras/curves/LineCurve.js + +/************************************************************** + * Line + **************************************************************/ + +THREE.LineCurve = function ( v1, v2 ) { + + this.v1 = v1; + this.v2 = v2; + +}; + +THREE.LineCurve.prototype = Object.create( THREE.Curve.prototype ); +THREE.LineCurve.prototype.constructor = THREE.LineCurve; + +THREE.LineCurve.prototype.getPoint = function ( t ) { + + var point = this.v2.clone().sub(this.v1); + point.multiplyScalar( t ).add( this.v1 ); + + return point; + +}; + +// Line curve is linear, so we can overwrite default getPointAt + +THREE.LineCurve.prototype.getPointAt = function ( u ) { + + return this.getPoint( u ); + +}; + +THREE.LineCurve.prototype.getTangent = function( t ) { + + var tangent = this.v2.clone().sub(this.v1); + + return tangent.normalize(); + +}; + +// File:src/extras/curves/QuadraticBezierCurve.js + +/************************************************************** + * Quadratic Bezier curve + **************************************************************/ + + +THREE.QuadraticBezierCurve = function ( v0, v1, v2 ) { + + this.v0 = v0; + this.v1 = v1; + this.v2 = v2; + +}; + +THREE.QuadraticBezierCurve.prototype = Object.create( THREE.Curve.prototype ); +THREE.QuadraticBezierCurve.prototype.constructor = THREE.QuadraticBezierCurve; + + +THREE.QuadraticBezierCurve.prototype.getPoint = function ( t ) { + + var vector = new THREE.Vector2(); + + vector.x = THREE.Shape.Utils.b2( t, this.v0.x, this.v1.x, this.v2.x ); + vector.y = THREE.Shape.Utils.b2( t, this.v0.y, this.v1.y, this.v2.y ); + + return vector; + +}; + + +THREE.QuadraticBezierCurve.prototype.getTangent = function( t ) { + + var vector = new THREE.Vector2(); + + vector.x = THREE.Curve.Utils.tangentQuadraticBezier( t, this.v0.x, this.v1.x, this.v2.x ); + vector.y = THREE.Curve.Utils.tangentQuadraticBezier( t, this.v0.y, this.v1.y, this.v2.y ); + + // returns unit vector + + return vector.normalize(); + +}; + +// File:src/extras/curves/CubicBezierCurve.js + +/************************************************************** + * Cubic Bezier curve + **************************************************************/ + +THREE.CubicBezierCurve = function ( v0, v1, v2, v3 ) { + + this.v0 = v0; + this.v1 = v1; + this.v2 = v2; + this.v3 = v3; + +}; + +THREE.CubicBezierCurve.prototype = Object.create( THREE.Curve.prototype ); +THREE.CubicBezierCurve.prototype.constructor = THREE.CubicBezierCurve; + +THREE.CubicBezierCurve.prototype.getPoint = function ( t ) { + + var tx, ty; + + tx = THREE.Shape.Utils.b3( t, this.v0.x, this.v1.x, this.v2.x, this.v3.x ); + ty = THREE.Shape.Utils.b3( t, this.v0.y, this.v1.y, this.v2.y, this.v3.y ); + + return new THREE.Vector2( tx, ty ); + +}; + +THREE.CubicBezierCurve.prototype.getTangent = function( t ) { + + var tx, ty; + + tx = THREE.Curve.Utils.tangentCubicBezier( t, this.v0.x, this.v1.x, this.v2.x, this.v3.x ); + ty = THREE.Curve.Utils.tangentCubicBezier( t, this.v0.y, this.v1.y, this.v2.y, this.v3.y ); + + var tangent = new THREE.Vector2( tx, ty ); + tangent.normalize(); + + return tangent; + +}; + +// File:src/extras/curves/SplineCurve.js + +/************************************************************** + * Spline curve + **************************************************************/ + +THREE.SplineCurve = function ( points /* array of Vector2 */ ) { + + this.points = ( points == undefined ) ? [] : points; + +}; + +THREE.SplineCurve.prototype = Object.create( THREE.Curve.prototype ); +THREE.SplineCurve.prototype.constructor = THREE.SplineCurve; + +THREE.SplineCurve.prototype.getPoint = function ( t ) { + + var points = this.points; + var point = ( points.length - 1 ) * t; + + var intPoint = Math.floor( point ); + var weight = point - intPoint; + + var point0 = points[ intPoint == 0 ? intPoint : intPoint - 1 ] + var point1 = points[ intPoint ] + var point2 = points[ intPoint > points.length - 2 ? points.length - 1 : intPoint + 1 ] + var point3 = points[ intPoint > points.length - 3 ? points.length - 1 : intPoint + 2 ] + + var vector = new THREE.Vector2(); + + vector.x = THREE.Curve.Utils.interpolate( point0.x, point1.x, point2.x, point3.x, weight ); + vector.y = THREE.Curve.Utils.interpolate( point0.y, point1.y, point2.y, point3.y, weight ); + + return vector; + +}; + +// File:src/extras/curves/EllipseCurve.js + +/************************************************************** + * Ellipse curve + **************************************************************/ + +THREE.EllipseCurve = function ( aX, aY, xRadius, yRadius, aStartAngle, aEndAngle, aClockwise ) { + + this.aX = aX; + this.aY = aY; + + this.xRadius = xRadius; + this.yRadius = yRadius; + + this.aStartAngle = aStartAngle; + this.aEndAngle = aEndAngle; + + this.aClockwise = aClockwise; + +}; + +THREE.EllipseCurve.prototype = Object.create( THREE.Curve.prototype ); +THREE.EllipseCurve.prototype.constructor = THREE.EllipseCurve; + +THREE.EllipseCurve.prototype.getPoint = function ( t ) { + + var deltaAngle = this.aEndAngle - this.aStartAngle; + + if ( deltaAngle < 0 ) deltaAngle += Math.PI * 2; + if ( deltaAngle > Math.PI * 2 ) deltaAngle -= Math.PI * 2; + + var angle; + + if ( this.aClockwise === true ) { + + angle = this.aEndAngle + ( 1 - t ) * ( Math.PI * 2 - deltaAngle ); + + } else { + + angle = this.aStartAngle + t * deltaAngle; + + } + + var vector = new THREE.Vector2(); + + vector.x = this.aX + this.xRadius * Math.cos( angle ); + vector.y = this.aY + this.yRadius * Math.sin( angle ); + + return vector; + +}; + +// File:src/extras/curves/ArcCurve.js + +/************************************************************** + * Arc curve + **************************************************************/ + +THREE.ArcCurve = function ( aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise ) { + + THREE.EllipseCurve.call( this, aX, aY, aRadius, aRadius, aStartAngle, aEndAngle, aClockwise ); +}; + +THREE.ArcCurve.prototype = Object.create( THREE.EllipseCurve.prototype ); +THREE.ArcCurve.prototype.constructor = THREE.ArcCurve; + +// File:src/extras/curves/LineCurve3.js + +/************************************************************** + * Line3D + **************************************************************/ + +THREE.LineCurve3 = THREE.Curve.create( + + function ( v1, v2 ) { + + this.v1 = v1; + this.v2 = v2; + + }, + + function ( t ) { + + var vector = new THREE.Vector3(); + + vector.subVectors( this.v2, this.v1 ); // diff + vector.multiplyScalar( t ); + vector.add( this.v1 ); + + return vector; + + } + +); + +// File:src/extras/curves/QuadraticBezierCurve3.js + +/************************************************************** + * Quadratic Bezier 3D curve + **************************************************************/ + +THREE.QuadraticBezierCurve3 = THREE.Curve.create( + + function ( v0, v1, v2 ) { + + this.v0 = v0; + this.v1 = v1; + this.v2 = v2; + + }, + + function ( t ) { + + var vector = new THREE.Vector3(); + + vector.x = THREE.Shape.Utils.b2( t, this.v0.x, this.v1.x, this.v2.x ); + vector.y = THREE.Shape.Utils.b2( t, this.v0.y, this.v1.y, this.v2.y ); + vector.z = THREE.Shape.Utils.b2( t, this.v0.z, this.v1.z, this.v2.z ); + + return vector; + + } + +); + +// File:src/extras/curves/CubicBezierCurve3.js + +/************************************************************** + * Cubic Bezier 3D curve + **************************************************************/ + +THREE.CubicBezierCurve3 = THREE.Curve.create( + + function ( v0, v1, v2, v3 ) { + + this.v0 = v0; + this.v1 = v1; + this.v2 = v2; + this.v3 = v3; + + }, + + function ( t ) { + + var vector = new THREE.Vector3(); + + vector.x = THREE.Shape.Utils.b3( t, this.v0.x, this.v1.x, this.v2.x, this.v3.x ); + vector.y = THREE.Shape.Utils.b3( t, this.v0.y, this.v1.y, this.v2.y, this.v3.y ); + vector.z = THREE.Shape.Utils.b3( t, this.v0.z, this.v1.z, this.v2.z, this.v3.z ); + + return vector; + + } + +); + +// File:src/extras/curves/SplineCurve3.js + +/************************************************************** + * Spline 3D curve + **************************************************************/ + + +THREE.SplineCurve3 = THREE.Curve.create( + + function ( points /* array of Vector3 */) { + + this.points = ( points == undefined ) ? [] : points; + + }, + + function ( t ) { + + var points = this.points; + var point = ( points.length - 1 ) * t; + + var intPoint = Math.floor( point ); + var weight = point - intPoint; + + var point0 = points[ intPoint == 0 ? intPoint : intPoint - 1 ]; + var point1 = points[ intPoint ]; + var point2 = points[ intPoint > points.length - 2 ? points.length - 1 : intPoint + 1 ]; + var point3 = points[ intPoint > points.length - 3 ? points.length - 1 : intPoint + 2 ]; + + var vector = new THREE.Vector3(); + + vector.x = THREE.Curve.Utils.interpolate( point0.x, point1.x, point2.x, point3.x, weight ); + vector.y = THREE.Curve.Utils.interpolate( point0.y, point1.y, point2.y, point3.y, weight ); + vector.z = THREE.Curve.Utils.interpolate( point0.z, point1.z, point2.z, point3.z, weight ); + + return vector; + + } + +); + +// File:src/extras/curves/ClosedSplineCurve3.js + +/************************************************************** + * Closed Spline 3D curve + **************************************************************/ + + +THREE.ClosedSplineCurve3 = THREE.Curve.create( + + function ( points /* array of Vector3 */) { + + this.points = ( points == undefined ) ? [] : points; + + }, + + function ( t ) { + + var points = this.points; + var point = ( points.length - 0 ) * t; // This needs to be from 0-length +1 + + var intPoint = Math.floor( point ); + var weight = point - intPoint; + + intPoint += intPoint > 0 ? 0 : ( Math.floor( Math.abs( intPoint ) / points.length ) + 1 ) * points.length; + + var point0 = points[ ( intPoint - 1 ) % points.length ]; + var point1 = points[ ( intPoint ) % points.length ]; + var point2 = points[ ( intPoint + 1 ) % points.length ]; + var point3 = points[ ( intPoint + 2 ) % points.length ]; + + var vector = new THREE.Vector3(); + + vector.x = THREE.Curve.Utils.interpolate( point0.x, point1.x, point2.x, point3.x, weight ); + vector.y = THREE.Curve.Utils.interpolate( point0.y, point1.y, point2.y, point3.y, weight ); + vector.z = THREE.Curve.Utils.interpolate( point0.z, point1.z, point2.z, point3.z, weight ); + + return vector; + + } + +); + +// File:src/extras/animation/AnimationHandler.js + +/** + * @author mikael emtinger / http://gomo.se/ + */ + +THREE.AnimationHandler = { + + LINEAR: 0, + CATMULLROM: 1, + CATMULLROM_FORWARD: 2, + + // + + add: function () { THREE.warn( 'THREE.AnimationHandler.add() has been deprecated.' ); }, + get: function () { THREE.warn( 'THREE.AnimationHandler.get() has been deprecated.' ); }, + remove: function () { THREE.warn( 'THREE.AnimationHandler.remove() has been deprecated.' ); }, + + // + + animations: [], + + init: function ( data ) { + + if ( data.initialized === true ) return data; + + // loop through all keys + + for ( var h = 0; h < data.hierarchy.length; h ++ ) { + + for ( var k = 0; k < data.hierarchy[ h ].keys.length; k ++ ) { + + // remove minus times + + if ( data.hierarchy[ h ].keys[ k ].time < 0 ) { + + data.hierarchy[ h ].keys[ k ].time = 0; + + } + + // create quaternions + + if ( data.hierarchy[ h ].keys[ k ].rot !== undefined && + ! ( data.hierarchy[ h ].keys[ k ].rot instanceof THREE.Quaternion ) ) { + + var quat = data.hierarchy[ h ].keys[ k ].rot; + data.hierarchy[ h ].keys[ k ].rot = new THREE.Quaternion().fromArray( quat ); + + } + + } + + // prepare morph target keys + + if ( data.hierarchy[ h ].keys.length && data.hierarchy[ h ].keys[ 0 ].morphTargets !== undefined ) { + + // get all used + + var usedMorphTargets = {}; + + for ( var k = 0; k < data.hierarchy[ h ].keys.length; k ++ ) { + + for ( var m = 0; m < data.hierarchy[ h ].keys[ k ].morphTargets.length; m ++ ) { + + var morphTargetName = data.hierarchy[ h ].keys[ k ].morphTargets[ m ]; + usedMorphTargets[ morphTargetName ] = - 1; + + } + + } + + data.hierarchy[ h ].usedMorphTargets = usedMorphTargets; + + + // set all used on all frames + + for ( var k = 0; k < data.hierarchy[ h ].keys.length; k ++ ) { + + var influences = {}; + + for ( var morphTargetName in usedMorphTargets ) { + + for ( var m = 0; m < data.hierarchy[ h ].keys[ k ].morphTargets.length; m ++ ) { + + if ( data.hierarchy[ h ].keys[ k ].morphTargets[ m ] === morphTargetName ) { + + influences[ morphTargetName ] = data.hierarchy[ h ].keys[ k ].morphTargetsInfluences[ m ]; + break; + + } + + } + + if ( m === data.hierarchy[ h ].keys[ k ].morphTargets.length ) { + + influences[ morphTargetName ] = 0; + + } + + } + + data.hierarchy[ h ].keys[ k ].morphTargetsInfluences = influences; + + } + + } + + + // remove all keys that are on the same time + + for ( var k = 1; k < data.hierarchy[ h ].keys.length; k ++ ) { + + if ( data.hierarchy[ h ].keys[ k ].time === data.hierarchy[ h ].keys[ k - 1 ].time ) { + + data.hierarchy[ h ].keys.splice( k, 1 ); + k --; + + } + + } + + + // set index + + for ( var k = 0; k < data.hierarchy[ h ].keys.length; k ++ ) { + + data.hierarchy[ h ].keys[ k ].index = k; + + } + + } + + data.initialized = true; + + return data; + + }, + + parse: function ( root ) { + + var parseRecurseHierarchy = function ( root, hierarchy ) { + + hierarchy.push( root ); + + for ( var c = 0; c < root.children.length; c ++ ) + parseRecurseHierarchy( root.children[ c ], hierarchy ); + + }; + + // setup hierarchy + + var hierarchy = []; + + if ( root instanceof THREE.SkinnedMesh ) { + + for ( var b = 0; b < root.skeleton.bones.length; b ++ ) { + + hierarchy.push( root.skeleton.bones[ b ] ); + + } + + } else { + + parseRecurseHierarchy( root, hierarchy ); + + } + + return hierarchy; + + }, + + play: function ( animation ) { + + if ( this.animations.indexOf( animation ) === - 1 ) { + + this.animations.push( animation ); + + } + + }, + + stop: function ( animation ) { + + var index = this.animations.indexOf( animation ); + + if ( index !== - 1 ) { + + this.animations.splice( index, 1 ); + + } + + }, + + update: function ( deltaTimeMS ) { + + for ( var i = 0; i < this.animations.length; i ++ ) { + + this.animations[ i ].resetBlendWeights( ); + + } + + for ( var i = 0; i < this.animations.length; i ++ ) { + + this.animations[ i ].update( deltaTimeMS ); + + } + + } + +}; + +// File:src/extras/animation/Animation.js + +/** + * @author mikael emtinger / http://gomo.se/ + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.Animation = function ( root, data ) { + + this.root = root; + this.data = THREE.AnimationHandler.init( data ); + this.hierarchy = THREE.AnimationHandler.parse( root ); + + this.currentTime = 0; + this.timeScale = 1; + + this.isPlaying = false; + this.loop = true; + this.weight = 0; + + this.interpolationType = THREE.AnimationHandler.LINEAR; + +}; + +THREE.Animation.prototype = { + + constructor: THREE.Animation, + + keyTypes: [ "pos", "rot", "scl" ], + + play: function ( startTime, weight ) { + + this.currentTime = startTime !== undefined ? startTime : 0; + this.weight = weight !== undefined ? weight : 1; + + this.isPlaying = true; + + this.reset(); + + THREE.AnimationHandler.play( this ); + + }, + + stop: function() { + + this.isPlaying = false; + + THREE.AnimationHandler.stop( this ); + + }, + + reset: function () { + + for ( var h = 0, hl = this.hierarchy.length; h < hl; h ++ ) { + + var object = this.hierarchy[ h ]; + + if ( object.animationCache === undefined ) { + + object.animationCache = { + animations: {}, + blending: { + positionWeight: 0.0, + quaternionWeight: 0.0, + scaleWeight: 0.0 + } + }; + } + + var name = this.data.name; + var animations = object.animationCache.animations; + var animationCache = animations[ name ]; + + if ( animationCache === undefined ) { + + animationCache = { + prevKey: { pos: 0, rot: 0, scl: 0 }, + nextKey: { pos: 0, rot: 0, scl: 0 }, + originalMatrix: object.matrix + }; + + animations[ name ] = animationCache; + + } + + // Get keys to match our current time + + for ( var t = 0; t < 3; t ++ ) { + + var type = this.keyTypes[ t ]; + + var prevKey = this.data.hierarchy[ h ].keys[ 0 ]; + var nextKey = this.getNextKeyWith( type, h, 1 ); + + while ( nextKey.time < this.currentTime && nextKey.index > prevKey.index ) { + + prevKey = nextKey; + nextKey = this.getNextKeyWith( type, h, nextKey.index + 1 ); + + } + + animationCache.prevKey[ type ] = prevKey; + animationCache.nextKey[ type ] = nextKey; + + } + + } + + }, + + resetBlendWeights: function () { + + for ( var h = 0, hl = this.hierarchy.length; h < hl; h ++ ) { + + var object = this.hierarchy[ h ]; + var animationCache = object.animationCache; + + if ( animationCache !== undefined ) { + + var blending = animationCache.blending; + + blending.positionWeight = 0.0; + blending.quaternionWeight = 0.0; + blending.scaleWeight = 0.0; + + } + + } + + }, + + update: ( function() { + + var points = []; + var target = new THREE.Vector3(); + var newVector = new THREE.Vector3(); + var newQuat = new THREE.Quaternion(); + + // Catmull-Rom spline + + var interpolateCatmullRom = function ( points, scale ) { + + var c = [], v3 = [], + point, intPoint, weight, w2, w3, + pa, pb, pc, pd; + + point = ( points.length - 1 ) * scale; + intPoint = Math.floor( point ); + weight = point - intPoint; + + c[ 0 ] = intPoint === 0 ? intPoint : intPoint - 1; + c[ 1 ] = intPoint; + c[ 2 ] = intPoint > points.length - 2 ? intPoint : intPoint + 1; + c[ 3 ] = intPoint > points.length - 3 ? intPoint : intPoint + 2; + + pa = points[ c[ 0 ] ]; + pb = points[ c[ 1 ] ]; + pc = points[ c[ 2 ] ]; + pd = points[ c[ 3 ] ]; + + w2 = weight * weight; + w3 = weight * w2; + + v3[ 0 ] = interpolate( pa[ 0 ], pb[ 0 ], pc[ 0 ], pd[ 0 ], weight, w2, w3 ); + v3[ 1 ] = interpolate( pa[ 1 ], pb[ 1 ], pc[ 1 ], pd[ 1 ], weight, w2, w3 ); + v3[ 2 ] = interpolate( pa[ 2 ], pb[ 2 ], pc[ 2 ], pd[ 2 ], weight, w2, w3 ); + + return v3; + + }; + + var interpolate = function ( p0, p1, p2, p3, t, t2, t3 ) { + + var v0 = ( p2 - p0 ) * 0.5, + v1 = ( p3 - p1 ) * 0.5; + + return ( 2 * ( p1 - p2 ) + v0 + v1 ) * t3 + ( - 3 * ( p1 - p2 ) - 2 * v0 - v1 ) * t2 + v0 * t + p1; + + }; + + return function ( delta ) { + + if ( this.isPlaying === false ) return; + + this.currentTime += delta * this.timeScale; + + if ( this.weight === 0 ) + return; + + // + + var duration = this.data.length; + + if ( this.currentTime > duration || this.currentTime < 0 ) { + + if ( this.loop ) { + + this.currentTime %= duration; + + if ( this.currentTime < 0 ) + this.currentTime += duration; + + this.reset(); + + } else { + + this.stop(); + + } + + } + + for ( var h = 0, hl = this.hierarchy.length; h < hl; h ++ ) { + + var object = this.hierarchy[ h ]; + var animationCache = object.animationCache.animations[this.data.name]; + var blending = object.animationCache.blending; + + // loop through pos/rot/scl + + for ( var t = 0; t < 3; t ++ ) { + + // get keys + + var type = this.keyTypes[ t ]; + var prevKey = animationCache.prevKey[ type ]; + var nextKey = animationCache.nextKey[ type ]; + + if ( ( this.timeScale > 0 && nextKey.time <= this.currentTime ) || + ( this.timeScale < 0 && prevKey.time >= this.currentTime ) ) { + + prevKey = this.data.hierarchy[ h ].keys[ 0 ]; + nextKey = this.getNextKeyWith( type, h, 1 ); + + while ( nextKey.time < this.currentTime && nextKey.index > prevKey.index ) { + + prevKey = nextKey; + nextKey = this.getNextKeyWith( type, h, nextKey.index + 1 ); + + } + + animationCache.prevKey[ type ] = prevKey; + animationCache.nextKey[ type ] = nextKey; + + } + + var scale = ( this.currentTime - prevKey.time ) / ( nextKey.time - prevKey.time ); + + var prevXYZ = prevKey[ type ]; + var nextXYZ = nextKey[ type ]; + + if ( scale < 0 ) scale = 0; + if ( scale > 1 ) scale = 1; + + // interpolate + + if ( type === "pos" ) { + + if ( this.interpolationType === THREE.AnimationHandler.LINEAR ) { + + newVector.x = prevXYZ[ 0 ] + ( nextXYZ[ 0 ] - prevXYZ[ 0 ] ) * scale; + newVector.y = prevXYZ[ 1 ] + ( nextXYZ[ 1 ] - prevXYZ[ 1 ] ) * scale; + newVector.z = prevXYZ[ 2 ] + ( nextXYZ[ 2 ] - prevXYZ[ 2 ] ) * scale; + + // blend + var proportionalWeight = this.weight / ( this.weight + blending.positionWeight ); + object.position.lerp( newVector, proportionalWeight ); + blending.positionWeight += this.weight; + + } else if ( this.interpolationType === THREE.AnimationHandler.CATMULLROM || + this.interpolationType === THREE.AnimationHandler.CATMULLROM_FORWARD ) { + + points[ 0 ] = this.getPrevKeyWith( "pos", h, prevKey.index - 1 )[ "pos" ]; + points[ 1 ] = prevXYZ; + points[ 2 ] = nextXYZ; + points[ 3 ] = this.getNextKeyWith( "pos", h, nextKey.index + 1 )[ "pos" ]; + + scale = scale * 0.33 + 0.33; + + var currentPoint = interpolateCatmullRom( points, scale ); + var proportionalWeight = this.weight / ( this.weight + blending.positionWeight ); + blending.positionWeight += this.weight; + + // blend + + var vector = object.position; + + vector.x = vector.x + ( currentPoint[ 0 ] - vector.x ) * proportionalWeight; + vector.y = vector.y + ( currentPoint[ 1 ] - vector.y ) * proportionalWeight; + vector.z = vector.z + ( currentPoint[ 2 ] - vector.z ) * proportionalWeight; + + if ( this.interpolationType === THREE.AnimationHandler.CATMULLROM_FORWARD ) { + + var forwardPoint = interpolateCatmullRom( points, scale * 1.01 ); + + target.set( forwardPoint[ 0 ], forwardPoint[ 1 ], forwardPoint[ 2 ] ); + target.sub( vector ); + target.y = 0; + target.normalize(); + + var angle = Math.atan2( target.x, target.z ); + object.rotation.set( 0, angle, 0 ); + + } + + } + + } else if ( type === "rot" ) { + + THREE.Quaternion.slerp( prevXYZ, nextXYZ, newQuat, scale ); + + // Avoid paying the cost of an additional slerp if we don't have to + if ( blending.quaternionWeight === 0 ) { + + object.quaternion.copy(newQuat); + blending.quaternionWeight = this.weight; + + } else { + + var proportionalWeight = this.weight / ( this.weight + blending.quaternionWeight ); + THREE.Quaternion.slerp( object.quaternion, newQuat, object.quaternion, proportionalWeight ); + blending.quaternionWeight += this.weight; + + } + + } else if ( type === "scl" ) { + + newVector.x = prevXYZ[ 0 ] + ( nextXYZ[ 0 ] - prevXYZ[ 0 ] ) * scale; + newVector.y = prevXYZ[ 1 ] + ( nextXYZ[ 1 ] - prevXYZ[ 1 ] ) * scale; + newVector.z = prevXYZ[ 2 ] + ( nextXYZ[ 2 ] - prevXYZ[ 2 ] ) * scale; + + var proportionalWeight = this.weight / ( this.weight + blending.scaleWeight ); + object.scale.lerp( newVector, proportionalWeight ); + blending.scaleWeight += this.weight; + + } + + } + + } + + return true; + + }; + + } )(), + + getNextKeyWith: function ( type, h, key ) { + + var keys = this.data.hierarchy[ h ].keys; + + if ( this.interpolationType === THREE.AnimationHandler.CATMULLROM || + this.interpolationType === THREE.AnimationHandler.CATMULLROM_FORWARD ) { + + key = key < keys.length - 1 ? key : keys.length - 1; + + } else { + + key = key % keys.length; + + } + + for ( ; key < keys.length; key ++ ) { + + if ( keys[ key ][ type ] !== undefined ) { + + return keys[ key ]; + + } + + } + + return this.data.hierarchy[ h ].keys[ 0 ]; + + }, + + getPrevKeyWith: function ( type, h, key ) { + + var keys = this.data.hierarchy[ h ].keys; + + if ( this.interpolationType === THREE.AnimationHandler.CATMULLROM || + this.interpolationType === THREE.AnimationHandler.CATMULLROM_FORWARD ) { + + key = key > 0 ? key : 0; + + } else { + + key = key >= 0 ? key : key + keys.length; + + } + + + for ( ; key >= 0; key -- ) { + + if ( keys[ key ][ type ] !== undefined ) { + + return keys[ key ]; + + } + + } + + return this.data.hierarchy[ h ].keys[ keys.length - 1 ]; + + } + +}; + +// File:src/extras/animation/KeyFrameAnimation.js + +/** + * @author mikael emtinger / http://gomo.se/ + * @author mrdoob / http://mrdoob.com/ + * @author alteredq / http://alteredqualia.com/ + * @author khang duong + * @author erik kitson + */ + +THREE.KeyFrameAnimation = function ( data ) { + + this.root = data.node; + this.data = THREE.AnimationHandler.init( data ); + this.hierarchy = THREE.AnimationHandler.parse( this.root ); + this.currentTime = 0; + this.timeScale = 0.001; + this.isPlaying = false; + this.isPaused = true; + this.loop = true; + + // initialize to first keyframes + + for ( var h = 0, hl = this.hierarchy.length; h < hl; h ++ ) { + + var keys = this.data.hierarchy[h].keys, + sids = this.data.hierarchy[h].sids, + obj = this.hierarchy[h]; + + if ( keys.length && sids ) { + + for ( var s = 0; s < sids.length; s ++ ) { + + var sid = sids[ s ], + next = this.getNextKeyWith( sid, h, 0 ); + + if ( next ) { + + next.apply( sid ); + + } + + } + + obj.matrixAutoUpdate = false; + this.data.hierarchy[h].node.updateMatrix(); + obj.matrixWorldNeedsUpdate = true; + + } + + } + +}; + +THREE.KeyFrameAnimation.prototype = { + + constructor: THREE.KeyFrameAnimation, + + play: function ( startTime ) { + + this.currentTime = startTime !== undefined ? startTime : 0; + + if ( this.isPlaying === false ) { + + this.isPlaying = true; + + // reset key cache + + var h, hl = this.hierarchy.length, + object, + node; + + for ( h = 0; h < hl; h ++ ) { + + object = this.hierarchy[ h ]; + node = this.data.hierarchy[ h ]; + + if ( node.animationCache === undefined ) { + + node.animationCache = {}; + node.animationCache.prevKey = null; + node.animationCache.nextKey = null; + node.animationCache.originalMatrix = object.matrix; + + } + + var keys = this.data.hierarchy[h].keys; + + if (keys.length) { + + node.animationCache.prevKey = keys[ 0 ]; + node.animationCache.nextKey = keys[ 1 ]; + + this.startTime = Math.min( keys[0].time, this.startTime ); + this.endTime = Math.max( keys[keys.length - 1].time, this.endTime ); + + } + + } + + this.update( 0 ); + + } + + this.isPaused = false; + + THREE.AnimationHandler.play( this ); + + }, + + stop: function () { + + this.isPlaying = false; + this.isPaused = false; + + THREE.AnimationHandler.stop( this ); + + // reset JIT matrix and remove cache + + for ( var h = 0; h < this.data.hierarchy.length; h ++ ) { + + var obj = this.hierarchy[ h ]; + var node = this.data.hierarchy[ h ]; + + if ( node.animationCache !== undefined ) { + + var original = node.animationCache.originalMatrix; + + original.copy( obj.matrix ); + obj.matrix = original; + + delete node.animationCache; + + } + + } + + }, + + update: function ( delta ) { + + if ( this.isPlaying === false ) return; + + this.currentTime += delta * this.timeScale; + + // + + var duration = this.data.length; + + if ( this.loop === true && this.currentTime > duration ) { + + this.currentTime %= duration; + + } + + this.currentTime = Math.min( this.currentTime, duration ); + + for ( var h = 0, hl = this.hierarchy.length; h < hl; h ++ ) { + + var object = this.hierarchy[ h ]; + var node = this.data.hierarchy[ h ]; + + var keys = node.keys, + animationCache = node.animationCache; + + + if ( keys.length ) { + + var prevKey = animationCache.prevKey; + var nextKey = animationCache.nextKey; + + if ( nextKey.time <= this.currentTime ) { + + while ( nextKey.time < this.currentTime && nextKey.index > prevKey.index ) { + + prevKey = nextKey; + nextKey = keys[ prevKey.index + 1 ]; + + } + + animationCache.prevKey = prevKey; + animationCache.nextKey = nextKey; + + } + + if ( nextKey.time >= this.currentTime ) { + + prevKey.interpolate( nextKey, this.currentTime ); + + } else { + + prevKey.interpolate( nextKey, nextKey.time ); + + } + + this.data.hierarchy[ h ].node.updateMatrix(); + object.matrixWorldNeedsUpdate = true; + + } + + } + + }, + + getNextKeyWith: function ( sid, h, key ) { + + var keys = this.data.hierarchy[ h ].keys; + key = key % keys.length; + + for ( ; key < keys.length; key ++ ) { + + if ( keys[ key ].hasTarget( sid ) ) { + + return keys[ key ]; + + } + + } + + return keys[ 0 ]; + + }, + + getPrevKeyWith: function ( sid, h, key ) { + + var keys = this.data.hierarchy[ h ].keys; + key = key >= 0 ? key : key + keys.length; + + for ( ; key >= 0; key -- ) { + + if ( keys[ key ].hasTarget( sid ) ) { + + return keys[ key ]; + + } + + } + + return keys[ keys.length - 1 ]; + + } + +}; + +// File:src/extras/animation/MorphAnimation.js + +/** + * @author mrdoob / http://mrdoob.com + * @author willy-vvu / http://willy-vvu.github.io + */ + +THREE.MorphAnimation = function ( mesh ) { + + this.mesh = mesh; + this.frames = mesh.morphTargetInfluences.length; + this.currentTime = 0; + this.duration = 1000; + this.loop = true; + this.lastFrame = 0; + this.currentFrame = 0; + + this.isPlaying = false; + +}; + +THREE.MorphAnimation.prototype = { + + constructor: THREE.MorphAnimation, + + play: function () { + + this.isPlaying = true; + + }, + + pause: function () { + + this.isPlaying = false; + + }, + + update: function ( delta ) { + + if ( this.isPlaying === false ) return; + + this.currentTime += delta; + + if ( this.loop === true && this.currentTime > this.duration ) { + + this.currentTime %= this.duration; + + } + + this.currentTime = Math.min( this.currentTime, this.duration ); + + var interpolation = this.duration / this.frames; + var frame = Math.floor( this.currentTime / interpolation ); + + var influences = this.mesh.morphTargetInfluences; + + if ( frame != this.currentFrame ) { + + influences[ this.lastFrame ] = 0; + influences[ this.currentFrame ] = 1; + influences[ frame ] = 0; + + this.lastFrame = this.currentFrame; + this.currentFrame = frame; + + } + + influences[ frame ] = ( this.currentTime % interpolation ) / interpolation; + influences[ this.lastFrame ] = 1 - influences[ frame ]; + + } + +}; + +// File:src/extras/geometries/BoxGeometry.js + +/** + * @author mrdoob / http://mrdoob.com/ + * based on http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/papervision3d/objects/primitives/Cube.as + */ + +THREE.BoxGeometry = function ( width, height, depth, widthSegments, heightSegments, depthSegments ) { + + THREE.Geometry.call( this ); + + this.type = 'BoxGeometry'; + + this.parameters = { + width: width, + height: height, + depth: depth, + widthSegments: widthSegments, + heightSegments: heightSegments, + depthSegments: depthSegments + }; + + this.widthSegments = widthSegments || 1; + this.heightSegments = heightSegments || 1; + this.depthSegments = depthSegments || 1; + + var scope = this; + + var width_half = width / 2; + var height_half = height / 2; + var depth_half = depth / 2; + + buildPlane( 'z', 'y', - 1, - 1, depth, height, width_half, 0 ); // px + buildPlane( 'z', 'y', 1, - 1, depth, height, - width_half, 1 ); // nx + buildPlane( 'x', 'z', 1, 1, width, depth, height_half, 2 ); // py + buildPlane( 'x', 'z', 1, - 1, width, depth, - height_half, 3 ); // ny + buildPlane( 'x', 'y', 1, - 1, width, height, depth_half, 4 ); // pz + buildPlane( 'x', 'y', - 1, - 1, width, height, - depth_half, 5 ); // nz + + function buildPlane( u, v, udir, vdir, width, height, depth, materialIndex ) { + + var w, ix, iy, + gridX = scope.widthSegments, + gridY = scope.heightSegments, + width_half = width / 2, + height_half = height / 2, + offset = scope.vertices.length; + + if ( ( u === 'x' && v === 'y' ) || ( u === 'y' && v === 'x' ) ) { + + w = 'z'; + + } else if ( ( u === 'x' && v === 'z' ) || ( u === 'z' && v === 'x' ) ) { + + w = 'y'; + gridY = scope.depthSegments; + + } else if ( ( u === 'z' && v === 'y' ) || ( u === 'y' && v === 'z' ) ) { + + w = 'x'; + gridX = scope.depthSegments; + + } + + var gridX1 = gridX + 1, + gridY1 = gridY + 1, + segment_width = width / gridX, + segment_height = height / gridY, + normal = new THREE.Vector3(); + + normal[ w ] = depth > 0 ? 1 : - 1; + + for ( iy = 0; iy < gridY1; iy ++ ) { + + for ( ix = 0; ix < gridX1; ix ++ ) { + + var vector = new THREE.Vector3(); + vector[ u ] = ( ix * segment_width - width_half ) * udir; + vector[ v ] = ( iy * segment_height - height_half ) * vdir; + vector[ w ] = depth; + + scope.vertices.push( vector ); + + } + + } + + for ( iy = 0; iy < gridY; iy ++ ) { + + for ( ix = 0; ix < gridX; ix ++ ) { + + var a = ix + gridX1 * iy; + var b = ix + gridX1 * ( iy + 1 ); + var c = ( ix + 1 ) + gridX1 * ( iy + 1 ); + var d = ( ix + 1 ) + gridX1 * iy; + + var uva = new THREE.Vector2( ix / gridX, 1 - iy / gridY ); + var uvb = new THREE.Vector2( ix / gridX, 1 - ( iy + 1 ) / gridY ); + var uvc = new THREE.Vector2( ( ix + 1 ) / gridX, 1 - ( iy + 1 ) / gridY ); + var uvd = new THREE.Vector2( ( ix + 1 ) / gridX, 1 - iy / gridY ); + + var face = new THREE.Face3( a + offset, b + offset, d + offset ); + face.normal.copy( normal ); + face.vertexNormals.push( normal.clone(), normal.clone(), normal.clone() ); + face.materialIndex = materialIndex; + + scope.faces.push( face ); + scope.faceVertexUvs[ 0 ].push( [ uva, uvb, uvd ] ); + + face = new THREE.Face3( b + offset, c + offset, d + offset ); + face.normal.copy( normal ); + face.vertexNormals.push( normal.clone(), normal.clone(), normal.clone() ); + face.materialIndex = materialIndex; + + scope.faces.push( face ); + scope.faceVertexUvs[ 0 ].push( [ uvb.clone(), uvc, uvd.clone() ] ); + + } + + } + + } + + this.mergeVertices(); + +}; + +THREE.BoxGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.BoxGeometry.prototype.constructor = THREE.BoxGeometry; + +// File:src/extras/geometries/CircleGeometry.js + +/** + * @author hughes + */ + +THREE.CircleGeometry = function ( radius, segments, thetaStart, thetaLength ) { + + THREE.Geometry.call( this ); + + this.type = 'CircleGeometry'; + + this.parameters = { + radius: radius, + segments: segments, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + radius = radius || 50; + segments = segments !== undefined ? Math.max( 3, segments ) : 8; + + thetaStart = thetaStart !== undefined ? thetaStart : 0; + thetaLength = thetaLength !== undefined ? thetaLength : Math.PI * 2; + + var i, uvs = [], + center = new THREE.Vector3(), centerUV = new THREE.Vector2( 0.5, 0.5 ); + + this.vertices.push(center); + uvs.push( centerUV ); + + for ( i = 0; i <= segments; i ++ ) { + + var vertex = new THREE.Vector3(); + var segment = thetaStart + i / segments * thetaLength; + + vertex.x = radius * Math.cos( segment ); + vertex.y = radius * Math.sin( segment ); + + this.vertices.push( vertex ); + uvs.push( new THREE.Vector2( ( vertex.x / radius + 1 ) / 2, ( vertex.y / radius + 1 ) / 2 ) ); + + } + + var n = new THREE.Vector3( 0, 0, 1 ); + + for ( i = 1; i <= segments; i ++ ) { + + this.faces.push( new THREE.Face3( i, i + 1, 0, [ n.clone(), n.clone(), n.clone() ] ) ); + this.faceVertexUvs[ 0 ].push( [ uvs[ i ].clone(), uvs[ i + 1 ].clone(), centerUV.clone() ] ); + + } + + this.computeFaceNormals(); + + this.boundingSphere = new THREE.Sphere( new THREE.Vector3(), radius ); + +}; + +THREE.CircleGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.CircleGeometry.prototype.constructor = THREE.CircleGeometry; + +// File:src/extras/geometries/CubeGeometry.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + + +THREE.CubeGeometry = function ( width, height, depth, widthSegments, heightSegments, depthSegments ) { + + THREE.warn( 'THREE.CubeGeometry has been renamed to THREE.BoxGeometry.' ); + return new THREE.BoxGeometry( width, height, depth, widthSegments, heightSegments, depthSegments ); + + }; + +// File:src/extras/geometries/CylinderGeometry.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.CylinderGeometry = function ( radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded, thetaStart, thetaLength ) { + + THREE.Geometry.call( this ); + + this.type = 'CylinderGeometry'; + + this.parameters = { + radiusTop: radiusTop, + radiusBottom: radiusBottom, + height: height, + radialSegments: radialSegments, + heightSegments: heightSegments, + openEnded: openEnded, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + radiusTop = radiusTop !== undefined ? radiusTop : 20; + radiusBottom = radiusBottom !== undefined ? radiusBottom : 20; + height = height !== undefined ? height : 100; + + radialSegments = radialSegments || 8; + heightSegments = heightSegments || 1; + + openEnded = openEnded !== undefined ? openEnded : false; + thetaStart = thetaStart !== undefined ? thetaStart : 0; + thetaLength = thetaLength !== undefined ? thetaLength : 2 * Math.PI; + + var heightHalf = height / 2; + + var x, y, vertices = [], uvs = []; + + for ( y = 0; y <= heightSegments; y ++ ) { + + var verticesRow = []; + var uvsRow = []; + + var v = y / heightSegments; + var radius = v * ( radiusBottom - radiusTop ) + radiusTop; + + for ( x = 0; x <= radialSegments; x ++ ) { + + var u = x / radialSegments; + + var vertex = new THREE.Vector3(); + vertex.x = radius * Math.sin( u * thetaLength + thetaStart ); + vertex.y = - v * height + heightHalf; + vertex.z = radius * Math.cos( u * thetaLength + thetaStart ); + + this.vertices.push( vertex ); + + verticesRow.push( this.vertices.length - 1 ); + uvsRow.push( new THREE.Vector2( u, 1 - v ) ); + + } + + vertices.push( verticesRow ); + uvs.push( uvsRow ); + + } + + var tanTheta = ( radiusBottom - radiusTop ) / height; + var na, nb; + + for ( x = 0; x < radialSegments; x ++ ) { + + if ( radiusTop !== 0 ) { + + na = this.vertices[ vertices[ 0 ][ x ] ].clone(); + nb = this.vertices[ vertices[ 0 ][ x + 1 ] ].clone(); + + } else { + + na = this.vertices[ vertices[ 1 ][ x ] ].clone(); + nb = this.vertices[ vertices[ 1 ][ x + 1 ] ].clone(); + + } + + na.setY( Math.sqrt( na.x * na.x + na.z * na.z ) * tanTheta ).normalize(); + nb.setY( Math.sqrt( nb.x * nb.x + nb.z * nb.z ) * tanTheta ).normalize(); + + for ( y = 0; y < heightSegments; y ++ ) { + + var v1 = vertices[ y ][ x ]; + var v2 = vertices[ y + 1 ][ x ]; + var v3 = vertices[ y + 1 ][ x + 1 ]; + var v4 = vertices[ y ][ x + 1 ]; + + var n1 = na.clone(); + var n2 = na.clone(); + var n3 = nb.clone(); + var n4 = nb.clone(); + + var uv1 = uvs[ y ][ x ].clone(); + var uv2 = uvs[ y + 1 ][ x ].clone(); + var uv3 = uvs[ y + 1 ][ x + 1 ].clone(); + var uv4 = uvs[ y ][ x + 1 ].clone(); + + this.faces.push( new THREE.Face3( v1, v2, v4, [ n1, n2, n4 ] ) ); + this.faceVertexUvs[ 0 ].push( [ uv1, uv2, uv4 ] ); + + this.faces.push( new THREE.Face3( v2, v3, v4, [ n2.clone(), n3, n4.clone() ] ) ); + this.faceVertexUvs[ 0 ].push( [ uv2.clone(), uv3, uv4.clone() ] ); + + } + + } + + // top cap + + if ( openEnded === false && radiusTop > 0 ) { + + this.vertices.push( new THREE.Vector3( 0, heightHalf, 0 ) ); + + for ( x = 0; x < radialSegments; x ++ ) { + + var v1 = vertices[ 0 ][ x ]; + var v2 = vertices[ 0 ][ x + 1 ]; + var v3 = this.vertices.length - 1; + + var n1 = new THREE.Vector3( 0, 1, 0 ); + var n2 = new THREE.Vector3( 0, 1, 0 ); + var n3 = new THREE.Vector3( 0, 1, 0 ); + + var uv1 = uvs[ 0 ][ x ].clone(); + var uv2 = uvs[ 0 ][ x + 1 ].clone(); + var uv3 = new THREE.Vector2( uv2.x, 0 ); + + this.faces.push( new THREE.Face3( v1, v2, v3, [ n1, n2, n3 ] ) ); + this.faceVertexUvs[ 0 ].push( [ uv1, uv2, uv3 ] ); + + } + + } + + // bottom cap + + if ( openEnded === false && radiusBottom > 0 ) { + + this.vertices.push( new THREE.Vector3( 0, - heightHalf, 0 ) ); + + for ( x = 0; x < radialSegments; x ++ ) { + + var v1 = vertices[ heightSegments ][ x + 1 ]; + var v2 = vertices[ heightSegments ][ x ]; + var v3 = this.vertices.length - 1; + + var n1 = new THREE.Vector3( 0, - 1, 0 ); + var n2 = new THREE.Vector3( 0, - 1, 0 ); + var n3 = new THREE.Vector3( 0, - 1, 0 ); + + var uv1 = uvs[ heightSegments ][ x + 1 ].clone(); + var uv2 = uvs[ heightSegments ][ x ].clone(); + var uv3 = new THREE.Vector2( uv2.x, 1 ); + + this.faces.push( new THREE.Face3( v1, v2, v3, [ n1, n2, n3 ] ) ); + this.faceVertexUvs[ 0 ].push( [ uv1, uv2, uv3 ] ); + + } + + } + + this.computeFaceNormals(); + +}; + +THREE.CylinderGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.CylinderGeometry.prototype.constructor = THREE.CylinderGeometry; + +// File:src/extras/geometries/ExtrudeGeometry.js + +/** + * @author zz85 / http://www.lab4games.net/zz85/blog + * + * Creates extruded geometry from a path shape. + * + * parameters = { + * + * curveSegments: , // number of points on the curves + * steps: , // number of points for z-side extrusions / used for subdividing segements of extrude spline too + * amount: , // Depth to extrude the shape + * + * bevelEnabled: , // turn on bevel + * bevelThickness: , // how deep into the original shape bevel goes + * bevelSize: , // how far from shape outline is bevel + * bevelSegments: , // number of bevel layers + * + * extrudePath: // 3d spline path to extrude shape along. (creates Frames if .frames aren't defined) + * frames: // containing arrays of tangents, normals, binormals + * + * material: // material index for front and back faces + * extrudeMaterial: // material index for extrusion and beveled faces + * uvGenerator: // object that provides UV generator functions + * + * } + **/ + +THREE.ExtrudeGeometry = function ( shapes, options ) { + + if ( typeof( shapes ) === "undefined" ) { + shapes = []; + return; + } + + THREE.Geometry.call( this ); + + this.type = 'ExtrudeGeometry'; + + shapes = shapes instanceof Array ? shapes : [ shapes ]; + + this.addShapeList( shapes, options ); + + this.computeFaceNormals(); + + // can't really use automatic vertex normals + // as then front and back sides get smoothed too + // should do separate smoothing just for sides + + //this.computeVertexNormals(); + + //console.log( "took", ( Date.now() - startTime ) ); + +}; + +THREE.ExtrudeGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.ExtrudeGeometry.prototype.constructor = THREE.ExtrudeGeometry; + +THREE.ExtrudeGeometry.prototype.addShapeList = function ( shapes, options ) { + var sl = shapes.length; + + for ( var s = 0; s < sl; s ++ ) { + var shape = shapes[ s ]; + this.addShape( shape, options ); + } +}; + +THREE.ExtrudeGeometry.prototype.addShape = function ( shape, options ) { + + var amount = options.amount !== undefined ? options.amount : 100; + + var bevelThickness = options.bevelThickness !== undefined ? options.bevelThickness : 6; // 10 + var bevelSize = options.bevelSize !== undefined ? options.bevelSize : bevelThickness - 2; // 8 + var bevelSegments = options.bevelSegments !== undefined ? options.bevelSegments : 3; + + var bevelEnabled = options.bevelEnabled !== undefined ? options.bevelEnabled : true; // false + + var curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12; + + var steps = options.steps !== undefined ? options.steps : 1; + + var extrudePath = options.extrudePath; + var extrudePts, extrudeByPath = false; + + var material = options.material; + var extrudeMaterial = options.extrudeMaterial; + + // Use default WorldUVGenerator if no UV generators are specified. + var uvgen = options.UVGenerator !== undefined ? options.UVGenerator : THREE.ExtrudeGeometry.WorldUVGenerator; + + var splineTube, binormal, normal, position2; + if ( extrudePath ) { + + extrudePts = extrudePath.getSpacedPoints( steps ); + + extrudeByPath = true; + bevelEnabled = false; // bevels not supported for path extrusion + + // SETUP TNB variables + + // Reuse TNB from TubeGeomtry for now. + // TODO1 - have a .isClosed in spline? + + splineTube = options.frames !== undefined ? options.frames : new THREE.TubeGeometry.FrenetFrames(extrudePath, steps, false); + + // console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length); + + binormal = new THREE.Vector3(); + normal = new THREE.Vector3(); + position2 = new THREE.Vector3(); + + } + + // Safeguards if bevels are not enabled + + if ( ! bevelEnabled ) { + + bevelSegments = 0; + bevelThickness = 0; + bevelSize = 0; + + } + + // Variables initalization + + var ahole, h, hl; // looping of holes + var scope = this; + + var shapesOffset = this.vertices.length; + + var shapePoints = shape.extractPoints( curveSegments ); + + var vertices = shapePoints.shape; + var holes = shapePoints.holes; + + var reverse = ! THREE.Shape.Utils.isClockWise( vertices ) ; + + if ( reverse ) { + + vertices = vertices.reverse(); + + // Maybe we should also check if holes are in the opposite direction, just to be safe ... + + for ( h = 0, hl = holes.length; h < hl; h ++ ) { + + ahole = holes[ h ]; + + if ( THREE.Shape.Utils.isClockWise( ahole ) ) { + + holes[ h ] = ahole.reverse(); + + } + + } + + reverse = false; // If vertices are in order now, we shouldn't need to worry about them again (hopefully)! + + } + + + var faces = THREE.Shape.Utils.triangulateShape ( vertices, holes ); + + /* Vertices */ + + var contour = vertices; // vertices has all points but contour has only points of circumference + + for ( h = 0, hl = holes.length; h < hl; h ++ ) { + + ahole = holes[ h ]; + + vertices = vertices.concat( ahole ); + + } + + + function scalePt2 ( pt, vec, size ) { + + if ( ! vec ) THREE.error( "THREE.ExtrudeGeometry: vec does not exist" ); + + return vec.clone().multiplyScalar( size ).add( pt ); + + } + + var b, bs, t, z, + vert, vlen = vertices.length, + face, flen = faces.length; + + + // Find directions for point movement + + + function getBevelVec( inPt, inPrev, inNext ) { + + var EPSILON = 0.0000000001; + + // computes for inPt the corresponding point inPt' on a new contour + // shiftet by 1 unit (length of normalized vector) to the left + // if we walk along contour clockwise, this new contour is outside the old one + // + // inPt' is the intersection of the two lines parallel to the two + // adjacent edges of inPt at a distance of 1 unit on the left side. + + var v_trans_x, v_trans_y, shrink_by = 1; // resulting translation vector for inPt + + // good reading for geometry algorithms (here: line-line intersection) + // http://geomalgorithms.com/a05-_intersect-1.html + + var v_prev_x = inPt.x - inPrev.x, v_prev_y = inPt.y - inPrev.y; + var v_next_x = inNext.x - inPt.x, v_next_y = inNext.y - inPt.y; + + var v_prev_lensq = ( v_prev_x * v_prev_x + v_prev_y * v_prev_y ); + + // check for colinear edges + var colinear0 = ( v_prev_x * v_next_y - v_prev_y * v_next_x ); + + if ( Math.abs( colinear0 ) > EPSILON ) { // not colinear + + // length of vectors for normalizing + + var v_prev_len = Math.sqrt( v_prev_lensq ); + var v_next_len = Math.sqrt( v_next_x * v_next_x + v_next_y * v_next_y ); + + // shift adjacent points by unit vectors to the left + + var ptPrevShift_x = ( inPrev.x - v_prev_y / v_prev_len ); + var ptPrevShift_y = ( inPrev.y + v_prev_x / v_prev_len ); + + var ptNextShift_x = ( inNext.x - v_next_y / v_next_len ); + var ptNextShift_y = ( inNext.y + v_next_x / v_next_len ); + + // scaling factor for v_prev to intersection point + + var sf = ( ( ptNextShift_x - ptPrevShift_x ) * v_next_y - + ( ptNextShift_y - ptPrevShift_y ) * v_next_x ) / + ( v_prev_x * v_next_y - v_prev_y * v_next_x ); + + // vector from inPt to intersection point + + v_trans_x = ( ptPrevShift_x + v_prev_x * sf - inPt.x ); + v_trans_y = ( ptPrevShift_y + v_prev_y * sf - inPt.y ); + + // Don't normalize!, otherwise sharp corners become ugly + // but prevent crazy spikes + var v_trans_lensq = ( v_trans_x * v_trans_x + v_trans_y * v_trans_y ) + if ( v_trans_lensq <= 2 ) { + return new THREE.Vector2( v_trans_x, v_trans_y ); + } else { + shrink_by = Math.sqrt( v_trans_lensq / 2 ); + } + + } else { // handle special case of colinear edges + + var direction_eq = false; // assumes: opposite + if ( v_prev_x > EPSILON ) { + if ( v_next_x > EPSILON ) { direction_eq = true; } + } else { + if ( v_prev_x < - EPSILON ) { + if ( v_next_x < - EPSILON ) { direction_eq = true; } + } else { + if ( Math.sign(v_prev_y) == Math.sign(v_next_y) ) { direction_eq = true; } + } + } + + if ( direction_eq ) { + // console.log("Warning: lines are a straight sequence"); + v_trans_x = - v_prev_y; + v_trans_y = v_prev_x; + shrink_by = Math.sqrt( v_prev_lensq ); + } else { + // console.log("Warning: lines are a straight spike"); + v_trans_x = v_prev_x; + v_trans_y = v_prev_y; + shrink_by = Math.sqrt( v_prev_lensq / 2 ); + } + + } + + return new THREE.Vector2( v_trans_x / shrink_by, v_trans_y / shrink_by ); + + } + + + var contourMovements = []; + + for ( var i = 0, il = contour.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) { + + if ( j === il ) j = 0; + if ( k === il ) k = 0; + + // (j)---(i)---(k) + // console.log('i,j,k', i, j , k) + + contourMovements[ i ] = getBevelVec( contour[ i ], contour[ j ], contour[ k ] ); + + } + + var holesMovements = [], oneHoleMovements, verticesMovements = contourMovements.concat(); + + for ( h = 0, hl = holes.length; h < hl; h ++ ) { + + ahole = holes[ h ]; + + oneHoleMovements = []; + + for ( i = 0, il = ahole.length, j = il - 1, k = i + 1; i < il; i ++, j ++, k ++ ) { + + if ( j === il ) j = 0; + if ( k === il ) k = 0; + + // (j)---(i)---(k) + oneHoleMovements[ i ] = getBevelVec( ahole[ i ], ahole[ j ], ahole[ k ] ); + + } + + holesMovements.push( oneHoleMovements ); + verticesMovements = verticesMovements.concat( oneHoleMovements ); + + } + + + // Loop bevelSegments, 1 for the front, 1 for the back + + for ( b = 0; b < bevelSegments; b ++ ) { + //for ( b = bevelSegments; b > 0; b -- ) { + + t = b / bevelSegments; + z = bevelThickness * ( 1 - t ); + + //z = bevelThickness * t; + bs = bevelSize * ( Math.sin ( t * Math.PI / 2 ) ) ; // curved + //bs = bevelSize * t ; // linear + + // contract shape + + for ( i = 0, il = contour.length; i < il; i ++ ) { + + vert = scalePt2( contour[ i ], contourMovements[ i ], bs ); + + v( vert.x, vert.y, - z ); + + } + + // expand holes + + for ( h = 0, hl = holes.length; h < hl; h ++ ) { + + ahole = holes[ h ]; + oneHoleMovements = holesMovements[ h ]; + + for ( i = 0, il = ahole.length; i < il; i ++ ) { + + vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs ); + + v( vert.x, vert.y, - z ); + + } + + } + + } + + bs = bevelSize; + + // Back facing vertices + + for ( i = 0; i < vlen; i ++ ) { + + vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ]; + + if ( ! extrudeByPath ) { + + v( vert.x, vert.y, 0 ); + + } else { + + // v( vert.x, vert.y + extrudePts[ 0 ].y, extrudePts[ 0 ].x ); + + normal.copy( splineTube.normals[0] ).multiplyScalar(vert.x); + binormal.copy( splineTube.binormals[0] ).multiplyScalar(vert.y); + + position2.copy( extrudePts[0] ).add(normal).add(binormal); + + v( position2.x, position2.y, position2.z ); + + } + + } + + // Add stepped vertices... + // Including front facing vertices + + var s; + + for ( s = 1; s <= steps; s ++ ) { + + for ( i = 0; i < vlen; i ++ ) { + + vert = bevelEnabled ? scalePt2( vertices[ i ], verticesMovements[ i ], bs ) : vertices[ i ]; + + if ( ! extrudeByPath ) { + + v( vert.x, vert.y, amount / steps * s ); + + } else { + + // v( vert.x, vert.y + extrudePts[ s - 1 ].y, extrudePts[ s - 1 ].x ); + + normal.copy( splineTube.normals[s] ).multiplyScalar( vert.x ); + binormal.copy( splineTube.binormals[s] ).multiplyScalar( vert.y ); + + position2.copy( extrudePts[s] ).add( normal ).add( binormal ); + + v( position2.x, position2.y, position2.z ); + + } + + } + + } + + + // Add bevel segments planes + + //for ( b = 1; b <= bevelSegments; b ++ ) { + for ( b = bevelSegments - 1; b >= 0; b -- ) { + + t = b / bevelSegments; + z = bevelThickness * ( 1 - t ); + //bs = bevelSize * ( 1-Math.sin ( ( 1 - t ) * Math.PI/2 ) ); + bs = bevelSize * Math.sin ( t * Math.PI / 2 ) ; + + // contract shape + + for ( i = 0, il = contour.length; i < il; i ++ ) { + + vert = scalePt2( contour[ i ], contourMovements[ i ], bs ); + v( vert.x, vert.y, amount + z ); + + } + + // expand holes + + for ( h = 0, hl = holes.length; h < hl; h ++ ) { + + ahole = holes[ h ]; + oneHoleMovements = holesMovements[ h ]; + + for ( i = 0, il = ahole.length; i < il; i ++ ) { + + vert = scalePt2( ahole[ i ], oneHoleMovements[ i ], bs ); + + if ( ! extrudeByPath ) { + + v( vert.x, vert.y, amount + z ); + + } else { + + v( vert.x, vert.y + extrudePts[ steps - 1 ].y, extrudePts[ steps - 1 ].x + z ); + + } + + } + + } + + } + + /* Faces */ + + // Top and bottom faces + + buildLidFaces(); + + // Sides faces + + buildSideFaces(); + + + ///// Internal functions + + function buildLidFaces() { + + if ( bevelEnabled ) { + + var layer = 0 ; // steps + 1 + var offset = vlen * layer; + + // Bottom faces + + for ( i = 0; i < flen; i ++ ) { + + face = faces[ i ]; + f3( face[ 2 ] + offset, face[ 1 ] + offset, face[ 0 ] + offset ); + + } + + layer = steps + bevelSegments * 2; + offset = vlen * layer; + + // Top faces + + for ( i = 0; i < flen; i ++ ) { + + face = faces[ i ]; + f3( face[ 0 ] + offset, face[ 1 ] + offset, face[ 2 ] + offset ); + + } + + } else { + + // Bottom faces + + for ( i = 0; i < flen; i ++ ) { + + face = faces[ i ]; + f3( face[ 2 ], face[ 1 ], face[ 0 ] ); + + } + + // Top faces + + for ( i = 0; i < flen; i ++ ) { + + face = faces[ i ]; + f3( face[ 0 ] + vlen * steps, face[ 1 ] + vlen * steps, face[ 2 ] + vlen * steps ); + + } + } + + } + + // Create faces for the z-sides of the shape + + function buildSideFaces() { + + var layeroffset = 0; + sidewalls( contour, layeroffset ); + layeroffset += contour.length; + + for ( h = 0, hl = holes.length; h < hl; h ++ ) { + + ahole = holes[ h ]; + sidewalls( ahole, layeroffset ); + + //, true + layeroffset += ahole.length; + + } + + } + + function sidewalls( contour, layeroffset ) { + + var j, k; + i = contour.length; + + while ( -- i >= 0 ) { + + j = i; + k = i - 1; + if ( k < 0 ) k = contour.length - 1; + + //console.log('b', i,j, i-1, k,vertices.length); + + var s = 0, sl = steps + bevelSegments * 2; + + for ( s = 0; s < sl; s ++ ) { + + var slen1 = vlen * s; + var slen2 = vlen * ( s + 1 ); + + var a = layeroffset + j + slen1, + b = layeroffset + k + slen1, + c = layeroffset + k + slen2, + d = layeroffset + j + slen2; + + f4( a, b, c, d, contour, s, sl, j, k ); + + } + } + + } + + + function v( x, y, z ) { + + scope.vertices.push( new THREE.Vector3( x, y, z ) ); + + } + + function f3( a, b, c ) { + + a += shapesOffset; + b += shapesOffset; + c += shapesOffset; + + // normal, color, material + scope.faces.push( new THREE.Face3( a, b, c, null, null, material ) ); + + var uvs = uvgen.generateTopUV( scope, a, b, c ); + + scope.faceVertexUvs[ 0 ].push( uvs ); + + } + + function f4( a, b, c, d, wallContour, stepIndex, stepsLength, contourIndex1, contourIndex2 ) { + + a += shapesOffset; + b += shapesOffset; + c += shapesOffset; + d += shapesOffset; + + scope.faces.push( new THREE.Face3( a, b, d, null, null, extrudeMaterial ) ); + scope.faces.push( new THREE.Face3( b, c, d, null, null, extrudeMaterial ) ); + + var uvs = uvgen.generateSideWallUV( scope, a, b, c, d ); + + scope.faceVertexUvs[ 0 ].push( [ uvs[ 0 ], uvs[ 1 ], uvs[ 3 ] ] ); + scope.faceVertexUvs[ 0 ].push( [ uvs[ 1 ], uvs[ 2 ], uvs[ 3 ] ] ); + + } + +}; + +THREE.ExtrudeGeometry.WorldUVGenerator = { + + generateTopUV: function ( geometry, indexA, indexB, indexC ) { + + var vertices = geometry.vertices; + + var a = vertices[ indexA ]; + var b = vertices[ indexB ]; + var c = vertices[ indexC ]; + + return [ + new THREE.Vector2( a.x, a.y ), + new THREE.Vector2( b.x, b.y ), + new THREE.Vector2( c.x, c.y ) + ]; + + }, + + generateSideWallUV: function ( geometry, indexA, indexB, indexC, indexD ) { + + var vertices = geometry.vertices; + + var a = vertices[ indexA ]; + var b = vertices[ indexB ]; + var c = vertices[ indexC ]; + var d = vertices[ indexD ]; + + if ( Math.abs( a.y - b.y ) < 0.01 ) { + return [ + new THREE.Vector2( a.x, 1 - a.z ), + new THREE.Vector2( b.x, 1 - b.z ), + new THREE.Vector2( c.x, 1 - c.z ), + new THREE.Vector2( d.x, 1 - d.z ) + ]; + } else { + return [ + new THREE.Vector2( a.y, 1 - a.z ), + new THREE.Vector2( b.y, 1 - b.z ), + new THREE.Vector2( c.y, 1 - c.z ), + new THREE.Vector2( d.y, 1 - d.z ) + ]; + } + } +}; + +// File:src/extras/geometries/ShapeGeometry.js + +/** + * @author jonobr1 / http://jonobr1.com + * + * Creates a one-sided polygonal geometry from a path shape. Similar to + * ExtrudeGeometry. + * + * parameters = { + * + * curveSegments: , // number of points on the curves. NOT USED AT THE MOMENT. + * + * material: // material index for front and back faces + * uvGenerator: // object that provides UV generator functions + * + * } + **/ + +THREE.ShapeGeometry = function ( shapes, options ) { + + THREE.Geometry.call( this ); + + this.type = 'ShapeGeometry'; + + if ( shapes instanceof Array === false ) shapes = [ shapes ]; + + this.addShapeList( shapes, options ); + + this.computeFaceNormals(); + +}; + +THREE.ShapeGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.ShapeGeometry.prototype.constructor = THREE.ShapeGeometry; + +/** + * Add an array of shapes to THREE.ShapeGeometry. + */ +THREE.ShapeGeometry.prototype.addShapeList = function ( shapes, options ) { + + for ( var i = 0, l = shapes.length; i < l; i ++ ) { + + this.addShape( shapes[ i ], options ); + + } + + return this; + +}; + +/** + * Adds a shape to THREE.ShapeGeometry, based on THREE.ExtrudeGeometry. + */ +THREE.ShapeGeometry.prototype.addShape = function ( shape, options ) { + + if ( options === undefined ) options = {}; + var curveSegments = options.curveSegments !== undefined ? options.curveSegments : 12; + + var material = options.material; + var uvgen = options.UVGenerator === undefined ? THREE.ExtrudeGeometry.WorldUVGenerator : options.UVGenerator; + + // + + var i, l, hole; + + var shapesOffset = this.vertices.length; + var shapePoints = shape.extractPoints( curveSegments ); + + var vertices = shapePoints.shape; + var holes = shapePoints.holes; + + var reverse = ! THREE.Shape.Utils.isClockWise( vertices ); + + if ( reverse ) { + + vertices = vertices.reverse(); + + // Maybe we should also check if holes are in the opposite direction, just to be safe... + + for ( i = 0, l = holes.length; i < l; i ++ ) { + + hole = holes[ i ]; + + if ( THREE.Shape.Utils.isClockWise( hole ) ) { + + holes[ i ] = hole.reverse(); + + } + + } + + reverse = false; + + } + + var faces = THREE.Shape.Utils.triangulateShape( vertices, holes ); + + // Vertices + + var contour = vertices; + + for ( i = 0, l = holes.length; i < l; i ++ ) { + + hole = holes[ i ]; + vertices = vertices.concat( hole ); + + } + + // + + var vert, vlen = vertices.length; + var face, flen = faces.length; + + for ( i = 0; i < vlen; i ++ ) { + + vert = vertices[ i ]; + + this.vertices.push( new THREE.Vector3( vert.x, vert.y, 0 ) ); + + } + + for ( i = 0; i < flen; i ++ ) { + + face = faces[ i ]; + + var a = face[ 0 ] + shapesOffset; + var b = face[ 1 ] + shapesOffset; + var c = face[ 2 ] + shapesOffset; + + this.faces.push( new THREE.Face3( a, b, c, null, null, material ) ); + this.faceVertexUvs[ 0 ].push( uvgen.generateTopUV( this, a, b, c ) ); + + } + +}; + +// File:src/extras/geometries/LatheGeometry.js + +/** + * @author astrodud / http://astrodud.isgreat.org/ + * @author zz85 / https://github.com/zz85 + * @author bhouston / http://exocortex.com + */ + +// points - to create a closed torus, one must use a set of points +// like so: [ a, b, c, d, a ], see first is the same as last. +// segments - the number of circumference segments to create +// phiStart - the starting radian +// phiLength - the radian (0 to 2*PI) range of the lathed section +// 2*pi is a closed lathe, less than 2PI is a portion. + +THREE.LatheGeometry = function ( points, segments, phiStart, phiLength ) { + + THREE.Geometry.call( this ); + + this.type = 'LatheGeometry'; + + this.parameters = { + points: points, + segments: segments, + phiStart: phiStart, + phiLength: phiLength + }; + + segments = segments || 12; + phiStart = phiStart || 0; + phiLength = phiLength || 2 * Math.PI; + + var inversePointLength = 1.0 / ( points.length - 1 ); + var inverseSegments = 1.0 / segments; + + for ( var i = 0, il = segments; i <= il; i ++ ) { + + var phi = phiStart + i * inverseSegments * phiLength; + + var c = Math.cos( phi ), + s = Math.sin( phi ); + + for ( var j = 0, jl = points.length; j < jl; j ++ ) { + + var pt = points[ j ]; + + var vertex = new THREE.Vector3(); + + vertex.x = c * pt.x - s * pt.y; + vertex.y = s * pt.x + c * pt.y; + vertex.z = pt.z; + + this.vertices.push( vertex ); + + } + + } + + var np = points.length; + + for ( var i = 0, il = segments; i < il; i ++ ) { + + for ( var j = 0, jl = points.length - 1; j < jl; j ++ ) { + + var base = j + np * i; + var a = base; + var b = base + np; + var c = base + 1 + np; + var d = base + 1; + + var u0 = i * inverseSegments; + var v0 = j * inversePointLength; + var u1 = u0 + inverseSegments; + var v1 = v0 + inversePointLength; + + this.faces.push( new THREE.Face3( a, b, d ) ); + + this.faceVertexUvs[ 0 ].push( [ + + new THREE.Vector2( u0, v0 ), + new THREE.Vector2( u1, v0 ), + new THREE.Vector2( u0, v1 ) + + ] ); + + this.faces.push( new THREE.Face3( b, c, d ) ); + + this.faceVertexUvs[ 0 ].push( [ + + new THREE.Vector2( u1, v0 ), + new THREE.Vector2( u1, v1 ), + new THREE.Vector2( u0, v1 ) + + ] ); + + + } + + } + + this.mergeVertices(); + this.computeFaceNormals(); + this.computeVertexNormals(); + +}; + +THREE.LatheGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.LatheGeometry.prototype.constructor = THREE.LatheGeometry; + +// File:src/extras/geometries/PlaneGeometry.js + +/** + * @author mrdoob / http://mrdoob.com/ + * based on http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/papervision3d/objects/primitives/Plane.as + */ + +THREE.PlaneGeometry = function ( width, height, widthSegments, heightSegments ) { + + console.info( 'THREE.PlaneGeometry: Consider using THREE.PlaneBufferGeometry for lower memory footprint.' ); + + THREE.Geometry.call( this ); + + this.type = 'PlaneGeometry'; + + this.parameters = { + width: width, + height: height, + widthSegments: widthSegments, + heightSegments: heightSegments + }; + + this.fromBufferGeometry( new THREE.PlaneBufferGeometry( width, height, widthSegments, heightSegments ) ); + +}; + +THREE.PlaneGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.PlaneGeometry.prototype.constructor = THREE.PlaneGeometry; + +// File:src/extras/geometries/PlaneBufferGeometry.js + +/** + * @author mrdoob / http://mrdoob.com/ + * based on http://papervision3d.googlecode.com/svn/trunk/as3/trunk/src/org/papervision3d/objects/primitives/Plane.as + */ + +THREE.PlaneBufferGeometry = function ( width, height, widthSegments, heightSegments ) { + + THREE.BufferGeometry.call( this ); + + this.type = 'PlaneBufferGeometry'; + + this.parameters = { + width: width, + height: height, + widthSegments: widthSegments, + heightSegments: heightSegments + }; + + var width_half = width / 2; + var height_half = height / 2; + + var gridX = widthSegments || 1; + var gridY = heightSegments || 1; + + var gridX1 = gridX + 1; + var gridY1 = gridY + 1; + + var segment_width = width / gridX; + var segment_height = height / gridY; + + var vertices = new Float32Array( gridX1 * gridY1 * 3 ); + var normals = new Float32Array( gridX1 * gridY1 * 3 ); + var uvs = new Float32Array( gridX1 * gridY1 * 2 ); + + var offset = 0; + var offset2 = 0; + + for ( var iy = 0; iy < gridY1; iy ++ ) { + + var y = iy * segment_height - height_half; + + for ( var ix = 0; ix < gridX1; ix ++ ) { + + var x = ix * segment_width - width_half; + + vertices[ offset ] = x; + vertices[ offset + 1 ] = - y; + + normals[ offset + 2 ] = 1; + + uvs[ offset2 ] = ix / gridX; + uvs[ offset2 + 1 ] = 1 - ( iy / gridY ); + + offset += 3; + offset2 += 2; + + } + + } + + offset = 0; + + var indices = new ( ( vertices.length / 3 ) > 65535 ? Uint32Array : Uint16Array )( gridX * gridY * 6 ); + + for ( var iy = 0; iy < gridY; iy ++ ) { + + for ( var ix = 0; ix < gridX; ix ++ ) { + + var a = ix + gridX1 * iy; + var b = ix + gridX1 * ( iy + 1 ); + var c = ( ix + 1 ) + gridX1 * ( iy + 1 ); + var d = ( ix + 1 ) + gridX1 * iy; + + indices[ offset ] = a; + indices[ offset + 1 ] = b; + indices[ offset + 2 ] = d; + + indices[ offset + 3 ] = b; + indices[ offset + 4 ] = c; + indices[ offset + 5 ] = d; + + offset += 6; + + } + + } + + this.addAttribute( 'index', new THREE.BufferAttribute( indices, 1 ) ); + this.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) ); + this.addAttribute( 'normal', new THREE.BufferAttribute( normals, 3 ) ); + this.addAttribute( 'uv', new THREE.BufferAttribute( uvs, 2 ) ); + +}; + +THREE.PlaneBufferGeometry.prototype = Object.create( THREE.BufferGeometry.prototype ); +THREE.PlaneBufferGeometry.prototype.constructor = THREE.PlaneBufferGeometry; + +// File:src/extras/geometries/RingGeometry.js + +/** + * @author Kaleb Murphy + */ + +THREE.RingGeometry = function ( innerRadius, outerRadius, thetaSegments, phiSegments, thetaStart, thetaLength ) { + + THREE.Geometry.call( this ); + + this.type = 'RingGeometry'; + + this.parameters = { + innerRadius: innerRadius, + outerRadius: outerRadius, + thetaSegments: thetaSegments, + phiSegments: phiSegments, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + innerRadius = innerRadius || 0; + outerRadius = outerRadius || 50; + + thetaStart = thetaStart !== undefined ? thetaStart : 0; + thetaLength = thetaLength !== undefined ? thetaLength : Math.PI * 2; + + thetaSegments = thetaSegments !== undefined ? Math.max( 3, thetaSegments ) : 8; + phiSegments = phiSegments !== undefined ? Math.max( 1, phiSegments ) : 8; + + var i, o, uvs = [], radius = innerRadius, radiusStep = ( ( outerRadius - innerRadius ) / phiSegments ); + + for ( i = 0; i < phiSegments + 1; i ++ ) { // concentric circles inside ring + + for ( o = 0; o < thetaSegments + 1; o ++ ) { // number of segments per circle + + var vertex = new THREE.Vector3(); + var segment = thetaStart + o / thetaSegments * thetaLength; + vertex.x = radius * Math.cos( segment ); + vertex.y = radius * Math.sin( segment ); + + this.vertices.push( vertex ); + uvs.push( new THREE.Vector2( ( vertex.x / outerRadius + 1 ) / 2, ( vertex.y / outerRadius + 1 ) / 2 ) ); + } + + radius += radiusStep; + + } + + var n = new THREE.Vector3( 0, 0, 1 ); + + for ( i = 0; i < phiSegments; i ++ ) { // concentric circles inside ring + + var thetaSegment = i * (thetaSegments + 1); + + for ( o = 0; o < thetaSegments ; o ++ ) { // number of segments per circle + + var segment = o + thetaSegment; + + var v1 = segment; + var v2 = segment + thetaSegments + 1; + var v3 = segment + thetaSegments + 2; + + this.faces.push( new THREE.Face3( v1, v2, v3, [ n.clone(), n.clone(), n.clone() ] ) ); + this.faceVertexUvs[ 0 ].push( [ uvs[ v1 ].clone(), uvs[ v2 ].clone(), uvs[ v3 ].clone() ]); + + v1 = segment; + v2 = segment + thetaSegments + 2; + v3 = segment + 1; + + this.faces.push( new THREE.Face3( v1, v2, v3, [ n.clone(), n.clone(), n.clone() ] ) ); + this.faceVertexUvs[ 0 ].push( [ uvs[ v1 ].clone(), uvs[ v2 ].clone(), uvs[ v3 ].clone() ]); + + } + } + + this.computeFaceNormals(); + + this.boundingSphere = new THREE.Sphere( new THREE.Vector3(), radius ); + +}; + +THREE.RingGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.RingGeometry.prototype.constructor = THREE.RingGeometry; + + +// File:src/extras/geometries/SphereGeometry.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.SphereGeometry = function ( radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength ) { + + THREE.Geometry.call( this ); + + this.type = 'SphereGeometry'; + + this.parameters = { + radius: radius, + widthSegments: widthSegments, + heightSegments: heightSegments, + phiStart: phiStart, + phiLength: phiLength, + thetaStart: thetaStart, + thetaLength: thetaLength + }; + + radius = radius || 50; + + widthSegments = Math.max( 3, Math.floor( widthSegments ) || 8 ); + heightSegments = Math.max( 2, Math.floor( heightSegments ) || 6 ); + + phiStart = phiStart !== undefined ? phiStart : 0; + phiLength = phiLength !== undefined ? phiLength : Math.PI * 2; + + thetaStart = thetaStart !== undefined ? thetaStart : 0; + thetaLength = thetaLength !== undefined ? thetaLength : Math.PI; + + var x, y, vertices = [], uvs = []; + + for ( y = 0; y <= heightSegments; y ++ ) { + + var verticesRow = []; + var uvsRow = []; + + for ( x = 0; x <= widthSegments; x ++ ) { + + var u = x / widthSegments; + var v = y / heightSegments; + + var vertex = new THREE.Vector3(); + vertex.x = - radius * Math.cos( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength ); + vertex.y = radius * Math.cos( thetaStart + v * thetaLength ); + vertex.z = radius * Math.sin( phiStart + u * phiLength ) * Math.sin( thetaStart + v * thetaLength ); + + this.vertices.push( vertex ); + + verticesRow.push( this.vertices.length - 1 ); + uvsRow.push( new THREE.Vector2( u, 1 - v ) ); + + } + + vertices.push( verticesRow ); + uvs.push( uvsRow ); + + } + + for ( y = 0; y < heightSegments; y ++ ) { + + for ( x = 0; x < widthSegments; x ++ ) { + + var v1 = vertices[ y ][ x + 1 ]; + var v2 = vertices[ y ][ x ]; + var v3 = vertices[ y + 1 ][ x ]; + var v4 = vertices[ y + 1 ][ x + 1 ]; + + var n1 = this.vertices[ v1 ].clone().normalize(); + var n2 = this.vertices[ v2 ].clone().normalize(); + var n3 = this.vertices[ v3 ].clone().normalize(); + var n4 = this.vertices[ v4 ].clone().normalize(); + + var uv1 = uvs[ y ][ x + 1 ].clone(); + var uv2 = uvs[ y ][ x ].clone(); + var uv3 = uvs[ y + 1 ][ x ].clone(); + var uv4 = uvs[ y + 1 ][ x + 1 ].clone(); + + if ( Math.abs( this.vertices[ v1 ].y ) === radius ) { + + uv1.x = ( uv1.x + uv2.x ) / 2; + this.faces.push( new THREE.Face3( v1, v3, v4, [ n1, n3, n4 ] ) ); + this.faceVertexUvs[ 0 ].push( [ uv1, uv3, uv4 ] ); + + } else if ( Math.abs( this.vertices[ v3 ].y ) === radius ) { + + uv3.x = ( uv3.x + uv4.x ) / 2; + this.faces.push( new THREE.Face3( v1, v2, v3, [ n1, n2, n3 ] ) ); + this.faceVertexUvs[ 0 ].push( [ uv1, uv2, uv3 ] ); + + } else { + + this.faces.push( new THREE.Face3( v1, v2, v4, [ n1, n2, n4 ] ) ); + this.faceVertexUvs[ 0 ].push( [ uv1, uv2, uv4 ] ); + + this.faces.push( new THREE.Face3( v2, v3, v4, [ n2.clone(), n3, n4.clone() ] ) ); + this.faceVertexUvs[ 0 ].push( [ uv2.clone(), uv3, uv4.clone() ] ); + + } + + } + + } + + this.computeFaceNormals(); + + this.boundingSphere = new THREE.Sphere( new THREE.Vector3(), radius ); + +}; + +THREE.SphereGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.SphereGeometry.prototype.constructor = THREE.SphereGeometry; + +// File:src/extras/geometries/TextGeometry.js + +/** + * @author zz85 / http://www.lab4games.net/zz85/blog + * @author alteredq / http://alteredqualia.com/ + * + * For creating 3D text geometry in three.js + * + * Text = 3D Text + * + * parameters = { + * size: , // size of the text + * height: , // thickness to extrude text + * curveSegments: , // number of points on the curves + * + * font: , // font name + * weight: , // font weight (normal, bold) + * style: , // font style (normal, italics) + * + * bevelEnabled: , // turn on bevel + * bevelThickness: , // how deep into text bevel goes + * bevelSize: , // how far from text outline is bevel + * } + * + */ + +/* Usage Examples + + // TextGeometry wrapper + + var text3d = new TextGeometry( text, options ); + + // Complete manner + + var textShapes = THREE.FontUtils.generateShapes( text, options ); + var text3d = new ExtrudeGeometry( textShapes, options ); + +*/ + + +THREE.TextGeometry = function ( text, parameters ) { + + parameters = parameters || {}; + + var textShapes = THREE.FontUtils.generateShapes( text, parameters ); + + // translate parameters to ExtrudeGeometry API + + parameters.amount = parameters.height !== undefined ? parameters.height : 50; + + // defaults + + if ( parameters.bevelThickness === undefined ) parameters.bevelThickness = 10; + if ( parameters.bevelSize === undefined ) parameters.bevelSize = 8; + if ( parameters.bevelEnabled === undefined ) parameters.bevelEnabled = false; + + THREE.ExtrudeGeometry.call( this, textShapes, parameters ); + + this.type = 'TextGeometry'; + +}; + +THREE.TextGeometry.prototype = Object.create( THREE.ExtrudeGeometry.prototype ); +THREE.TextGeometry.prototype.constructor = THREE.TextGeometry; + +// File:src/extras/geometries/TorusGeometry.js + +/** + * @author oosmoxiecode + * @author mrdoob / http://mrdoob.com/ + * based on http://code.google.com/p/away3d/source/browse/trunk/fp10/Away3DLite/src/away3dlite/primitives/Torus.as?r=2888 + */ + +THREE.TorusGeometry = function ( radius, tube, radialSegments, tubularSegments, arc ) { + + THREE.Geometry.call( this ); + + this.type = 'TorusGeometry'; + + this.parameters = { + radius: radius, + tube: tube, + radialSegments: radialSegments, + tubularSegments: tubularSegments, + arc: arc + }; + + radius = radius || 100; + tube = tube || 40; + radialSegments = radialSegments || 8; + tubularSegments = tubularSegments || 6; + arc = arc || Math.PI * 2; + + var center = new THREE.Vector3(), uvs = [], normals = []; + + for ( var j = 0; j <= radialSegments; j ++ ) { + + for ( var i = 0; i <= tubularSegments; i ++ ) { + + var u = i / tubularSegments * arc; + var v = j / radialSegments * Math.PI * 2; + + center.x = radius * Math.cos( u ); + center.y = radius * Math.sin( u ); + + var vertex = new THREE.Vector3(); + vertex.x = ( radius + tube * Math.cos( v ) ) * Math.cos( u ); + vertex.y = ( radius + tube * Math.cos( v ) ) * Math.sin( u ); + vertex.z = tube * Math.sin( v ); + + this.vertices.push( vertex ); + + uvs.push( new THREE.Vector2( i / tubularSegments, j / radialSegments ) ); + normals.push( vertex.clone().sub( center ).normalize() ); + + } + + } + + for ( var j = 1; j <= radialSegments; j ++ ) { + + for ( var i = 1; i <= tubularSegments; i ++ ) { + + var a = ( tubularSegments + 1 ) * j + i - 1; + var b = ( tubularSegments + 1 ) * ( j - 1 ) + i - 1; + var c = ( tubularSegments + 1 ) * ( j - 1 ) + i; + var d = ( tubularSegments + 1 ) * j + i; + + var face = new THREE.Face3( a, b, d, [ normals[ a ].clone(), normals[ b ].clone(), normals[ d ].clone() ] ); + this.faces.push( face ); + this.faceVertexUvs[ 0 ].push( [ uvs[ a ].clone(), uvs[ b ].clone(), uvs[ d ].clone() ] ); + + face = new THREE.Face3( b, c, d, [ normals[ b ].clone(), normals[ c ].clone(), normals[ d ].clone() ] ); + this.faces.push( face ); + this.faceVertexUvs[ 0 ].push( [ uvs[ b ].clone(), uvs[ c ].clone(), uvs[ d ].clone() ] ); + + } + + } + + this.computeFaceNormals(); + +}; + +THREE.TorusGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.TorusGeometry.prototype.constructor = THREE.TorusGeometry; + +// File:src/extras/geometries/TorusKnotGeometry.js + +/** + * @author oosmoxiecode + * based on http://code.google.com/p/away3d/source/browse/trunk/fp10/Away3D/src/away3d/primitives/TorusKnot.as?spec=svn2473&r=2473 + */ + +THREE.TorusKnotGeometry = function ( radius, tube, radialSegments, tubularSegments, p, q, heightScale ) { + + THREE.Geometry.call( this ); + + this.type = 'TorusKnotGeometry'; + + this.parameters = { + radius: radius, + tube: tube, + radialSegments: radialSegments, + tubularSegments: tubularSegments, + p: p, + q: q, + heightScale: heightScale + }; + + radius = radius || 100; + tube = tube || 40; + radialSegments = radialSegments || 64; + tubularSegments = tubularSegments || 8; + p = p || 2; + q = q || 3; + heightScale = heightScale || 1; + + var grid = new Array( radialSegments ); + var tang = new THREE.Vector3(); + var n = new THREE.Vector3(); + var bitan = new THREE.Vector3(); + + for ( var i = 0; i < radialSegments; ++ i ) { + + grid[ i ] = new Array( tubularSegments ); + var u = i / radialSegments * 2 * p * Math.PI; + var p1 = getPos( u, q, p, radius, heightScale ); + var p2 = getPos( u + 0.01, q, p, radius, heightScale ); + tang.subVectors( p2, p1 ); + n.addVectors( p2, p1 ); + + bitan.crossVectors( tang, n ); + n.crossVectors( bitan, tang ); + bitan.normalize(); + n.normalize(); + + for ( var j = 0; j < tubularSegments; ++ j ) { + + var v = j / tubularSegments * 2 * Math.PI; + var cx = - tube * Math.cos( v ); // TODO: Hack: Negating it so it faces outside. + var cy = tube * Math.sin( v ); + + var pos = new THREE.Vector3(); + pos.x = p1.x + cx * n.x + cy * bitan.x; + pos.y = p1.y + cx * n.y + cy * bitan.y; + pos.z = p1.z + cx * n.z + cy * bitan.z; + + grid[ i ][ j ] = this.vertices.push( pos ) - 1; + + } + + } + + for ( var i = 0; i < radialSegments; ++ i ) { + + for ( var j = 0; j < tubularSegments; ++ j ) { + + var ip = ( i + 1 ) % radialSegments; + var jp = ( j + 1 ) % tubularSegments; + + var a = grid[ i ][ j ]; + var b = grid[ ip ][ j ]; + var c = grid[ ip ][ jp ]; + var d = grid[ i ][ jp ]; + + var uva = new THREE.Vector2( i / radialSegments, j / tubularSegments ); + var uvb = new THREE.Vector2( ( i + 1 ) / radialSegments, j / tubularSegments ); + var uvc = new THREE.Vector2( ( i + 1 ) / radialSegments, ( j + 1 ) / tubularSegments ); + var uvd = new THREE.Vector2( i / radialSegments, ( j + 1 ) / tubularSegments ); + + this.faces.push( new THREE.Face3( a, b, d ) ); + this.faceVertexUvs[ 0 ].push( [ uva, uvb, uvd ] ); + + this.faces.push( new THREE.Face3( b, c, d ) ); + this.faceVertexUvs[ 0 ].push( [ uvb.clone(), uvc, uvd.clone() ] ); + + } + } + + this.computeFaceNormals(); + this.computeVertexNormals(); + + function getPos( u, in_q, in_p, radius, heightScale ) { + + var cu = Math.cos( u ); + var su = Math.sin( u ); + var quOverP = in_q / in_p * u; + var cs = Math.cos( quOverP ); + + var tx = radius * ( 2 + cs ) * 0.5 * cu; + var ty = radius * ( 2 + cs ) * su * 0.5; + var tz = heightScale * radius * Math.sin( quOverP ) * 0.5; + + return new THREE.Vector3( tx, ty, tz ); + + } + +}; + +THREE.TorusKnotGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.TorusKnotGeometry.prototype.constructor = THREE.TorusKnotGeometry; + +// File:src/extras/geometries/TubeGeometry.js + +/** + * @author WestLangley / https://github.com/WestLangley + * @author zz85 / https://github.com/zz85 + * @author miningold / https://github.com/miningold + * @author jonobr1 / https://github.com/jonobr1 + * + * Modified from the TorusKnotGeometry by @oosmoxiecode + * + * Creates a tube which extrudes along a 3d spline + * + * Uses parallel transport frames as described in + * http://www.cs.indiana.edu/pub/techreports/TR425.pdf + */ + +THREE.TubeGeometry = function ( path, segments, radius, radialSegments, closed, taper ) { + + THREE.Geometry.call( this ); + + this.type = 'TubeGeometry'; + + this.parameters = { + path: path, + segments: segments, + radius: radius, + radialSegments: radialSegments, + closed: closed + }; + + segments = segments || 64; + radius = radius || 1; + radialSegments = radialSegments || 8; + closed = closed || false; + taper = taper || THREE.TubeGeometry.NoTaper; + + var grid = []; + + var scope = this, + + tangent, + normal, + binormal, + + numpoints = segments + 1, + + u, v, r, + + cx, cy, + pos, pos2 = new THREE.Vector3(), + i, j, + ip, jp, + a, b, c, d, + uva, uvb, uvc, uvd; + + var frames = new THREE.TubeGeometry.FrenetFrames( path, segments, closed ), + tangents = frames.tangents, + normals = frames.normals, + binormals = frames.binormals; + + // proxy internals + this.tangents = tangents; + this.normals = normals; + this.binormals = binormals; + + function vert( x, y, z ) { + + return scope.vertices.push( new THREE.Vector3( x, y, z ) ) - 1; + + } + + // consruct the grid + + for ( i = 0; i < numpoints; i ++ ) { + + grid[ i ] = []; + + u = i / ( numpoints - 1 ); + + pos = path.getPointAt( u ); + + tangent = tangents[ i ]; + normal = normals[ i ]; + binormal = binormals[ i ]; + + r = radius * taper( u ); + + for ( j = 0; j < radialSegments; j ++ ) { + + v = j / radialSegments * 2 * Math.PI; + + cx = - r * Math.cos( v ); // TODO: Hack: Negating it so it faces outside. + cy = r * Math.sin( v ); + + pos2.copy( pos ); + pos2.x += cx * normal.x + cy * binormal.x; + pos2.y += cx * normal.y + cy * binormal.y; + pos2.z += cx * normal.z + cy * binormal.z; + + grid[ i ][ j ] = vert( pos2.x, pos2.y, pos2.z ); + + } + } + + + // construct the mesh + + for ( i = 0; i < segments; i ++ ) { + + for ( j = 0; j < radialSegments; j ++ ) { + + ip = ( closed ) ? (i + 1) % segments : i + 1; + jp = (j + 1) % radialSegments; + + a = grid[ i ][ j ]; // *** NOT NECESSARILY PLANAR ! *** + b = grid[ ip ][ j ]; + c = grid[ ip ][ jp ]; + d = grid[ i ][ jp ]; + + uva = new THREE.Vector2( i / segments, j / radialSegments ); + uvb = new THREE.Vector2( ( i + 1 ) / segments, j / radialSegments ); + uvc = new THREE.Vector2( ( i + 1 ) / segments, ( j + 1 ) / radialSegments ); + uvd = new THREE.Vector2( i / segments, ( j + 1 ) / radialSegments ); + + this.faces.push( new THREE.Face3( a, b, d ) ); + this.faceVertexUvs[ 0 ].push( [ uva, uvb, uvd ] ); + + this.faces.push( new THREE.Face3( b, c, d ) ); + this.faceVertexUvs[ 0 ].push( [ uvb.clone(), uvc, uvd.clone() ] ); + + } + } + + this.computeFaceNormals(); + this.computeVertexNormals(); + +}; + +THREE.TubeGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.TubeGeometry.prototype.constructor = THREE.TubeGeometry; + +THREE.TubeGeometry.NoTaper = function ( u ) { + + return 1; + +}; + +THREE.TubeGeometry.SinusoidalTaper = function ( u ) { + + return Math.sin( Math.PI * u ); + +}; + +// For computing of Frenet frames, exposing the tangents, normals and binormals the spline +THREE.TubeGeometry.FrenetFrames = function ( path, segments, closed ) { + + var normal = new THREE.Vector3(), + + tangents = [], + normals = [], + binormals = [], + + vec = new THREE.Vector3(), + mat = new THREE.Matrix4(), + + numpoints = segments + 1, + theta, + epsilon = 0.0001, + smallest, + + tx, ty, tz, + i, u; + + + // expose internals + this.tangents = tangents; + this.normals = normals; + this.binormals = binormals; + + // compute the tangent vectors for each segment on the path + + for ( i = 0; i < numpoints; i ++ ) { + + u = i / ( numpoints - 1 ); + + tangents[ i ] = path.getTangentAt( u ); + tangents[ i ].normalize(); + + } + + initialNormal3(); + + /* + function initialNormal1(lastBinormal) { + // fixed start binormal. Has dangers of 0 vectors + normals[ 0 ] = new THREE.Vector3(); + binormals[ 0 ] = new THREE.Vector3(); + if (lastBinormal===undefined) lastBinormal = new THREE.Vector3( 0, 0, 1 ); + normals[ 0 ].crossVectors( lastBinormal, tangents[ 0 ] ).normalize(); + binormals[ 0 ].crossVectors( tangents[ 0 ], normals[ 0 ] ).normalize(); + } + + function initialNormal2() { + + // This uses the Frenet-Serret formula for deriving binormal + var t2 = path.getTangentAt( epsilon ); + + normals[ 0 ] = new THREE.Vector3().subVectors( t2, tangents[ 0 ] ).normalize(); + binormals[ 0 ] = new THREE.Vector3().crossVectors( tangents[ 0 ], normals[ 0 ] ); + + normals[ 0 ].crossVectors( binormals[ 0 ], tangents[ 0 ] ).normalize(); // last binormal x tangent + binormals[ 0 ].crossVectors( tangents[ 0 ], normals[ 0 ] ).normalize(); + + } + */ + + function initialNormal3() { + // select an initial normal vector perpenicular to the first tangent vector, + // and in the direction of the smallest tangent xyz component + + normals[ 0 ] = new THREE.Vector3(); + binormals[ 0 ] = new THREE.Vector3(); + smallest = Number.MAX_VALUE; + tx = Math.abs( tangents[ 0 ].x ); + ty = Math.abs( tangents[ 0 ].y ); + tz = Math.abs( tangents[ 0 ].z ); + + if ( tx <= smallest ) { + smallest = tx; + normal.set( 1, 0, 0 ); + } + + if ( ty <= smallest ) { + smallest = ty; + normal.set( 0, 1, 0 ); + } + + if ( tz <= smallest ) { + normal.set( 0, 0, 1 ); + } + + vec.crossVectors( tangents[ 0 ], normal ).normalize(); + + normals[ 0 ].crossVectors( tangents[ 0 ], vec ); + binormals[ 0 ].crossVectors( tangents[ 0 ], normals[ 0 ] ); + } + + + // compute the slowly-varying normal and binormal vectors for each segment on the path + + for ( i = 1; i < numpoints; i ++ ) { + + normals[ i ] = normals[ i - 1 ].clone(); + + binormals[ i ] = binormals[ i - 1 ].clone(); + + vec.crossVectors( tangents[ i - 1 ], tangents[ i ] ); + + if ( vec.length() > epsilon ) { + + vec.normalize(); + + theta = Math.acos( THREE.Math.clamp( tangents[ i - 1 ].dot( tangents[ i ] ), - 1, 1 ) ); // clamp for floating pt errors + + normals[ i ].applyMatrix4( mat.makeRotationAxis( vec, theta ) ); + + } + + binormals[ i ].crossVectors( tangents[ i ], normals[ i ] ); + + } + + + // if the curve is closed, postprocess the vectors so the first and last normal vectors are the same + + if ( closed ) { + + theta = Math.acos( THREE.Math.clamp( normals[ 0 ].dot( normals[ numpoints - 1 ] ), - 1, 1 ) ); + theta /= ( numpoints - 1 ); + + if ( tangents[ 0 ].dot( vec.crossVectors( normals[ 0 ], normals[ numpoints - 1 ] ) ) > 0 ) { + + theta = - theta; + + } + + for ( i = 1; i < numpoints; i ++ ) { + + // twist a little... + normals[ i ].applyMatrix4( mat.makeRotationAxis( tangents[ i ], theta * i ) ); + binormals[ i ].crossVectors( tangents[ i ], normals[ i ] ); + + } + + } +}; + +// File:src/extras/geometries/PolyhedronGeometry.js + +/** + * @author clockworkgeek / https://github.com/clockworkgeek + * @author timothypratley / https://github.com/timothypratley + * @author WestLangley / http://github.com/WestLangley +*/ + +THREE.PolyhedronGeometry = function ( vertices, indices, radius, detail ) { + + THREE.Geometry.call( this ); + + this.type = 'PolyhedronGeometry'; + + this.parameters = { + vertices: vertices, + indices: indices, + radius: radius, + detail: detail + }; + + radius = radius || 1; + detail = detail || 0; + + var that = this; + + for ( var i = 0, l = vertices.length; i < l; i += 3 ) { + + prepare( new THREE.Vector3( vertices[ i ], vertices[ i + 1 ], vertices[ i + 2 ] ) ); + + } + + var p = this.vertices; + + var faces = []; + + for ( var i = 0, j = 0, l = indices.length; i < l; i += 3, j ++ ) { + + var v1 = p[ indices[ i ] ]; + var v2 = p[ indices[ i + 1 ] ]; + var v3 = p[ indices[ i + 2 ] ]; + + faces[ j ] = new THREE.Face3( v1.index, v2.index, v3.index, [ v1.clone(), v2.clone(), v3.clone() ] ); + + } + + var centroid = new THREE.Vector3(); + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + subdivide( faces[ i ], detail ); + + } + + + // Handle case when face straddles the seam + + for ( var i = 0, l = this.faceVertexUvs[ 0 ].length; i < l; i ++ ) { + + var uvs = this.faceVertexUvs[ 0 ][ i ]; + + var x0 = uvs[ 0 ].x; + var x1 = uvs[ 1 ].x; + var x2 = uvs[ 2 ].x; + + var max = Math.max( x0, Math.max( x1, x2 ) ); + var min = Math.min( x0, Math.min( x1, x2 ) ); + + if ( max > 0.9 && min < 0.1 ) { // 0.9 is somewhat arbitrary + + if ( x0 < 0.2 ) uvs[ 0 ].x += 1; + if ( x1 < 0.2 ) uvs[ 1 ].x += 1; + if ( x2 < 0.2 ) uvs[ 2 ].x += 1; + + } + + } + + + // Apply radius + + for ( var i = 0, l = this.vertices.length; i < l; i ++ ) { + + this.vertices[ i ].multiplyScalar( radius ); + + } + + + // Merge vertices + + this.mergeVertices(); + + this.computeFaceNormals(); + + this.boundingSphere = new THREE.Sphere( new THREE.Vector3(), radius ); + + + // Project vector onto sphere's surface + + function prepare( vector ) { + + var vertex = vector.normalize().clone(); + vertex.index = that.vertices.push( vertex ) - 1; + + // Texture coords are equivalent to map coords, calculate angle and convert to fraction of a circle. + + var u = azimuth( vector ) / 2 / Math.PI + 0.5; + var v = inclination( vector ) / Math.PI + 0.5; + vertex.uv = new THREE.Vector2( u, 1 - v ); + + return vertex; + + } + + + // Approximate a curved face with recursively sub-divided triangles. + + function make( v1, v2, v3 ) { + + var face = new THREE.Face3( v1.index, v2.index, v3.index, [ v1.clone(), v2.clone(), v3.clone() ] ); + that.faces.push( face ); + + centroid.copy( v1 ).add( v2 ).add( v3 ).divideScalar( 3 ); + + var azi = azimuth( centroid ); + + that.faceVertexUvs[ 0 ].push( [ + correctUV( v1.uv, v1, azi ), + correctUV( v2.uv, v2, azi ), + correctUV( v3.uv, v3, azi ) + ] ); + + } + + + // Analytically subdivide a face to the required detail level. + + function subdivide( face, detail ) { + + var cols = Math.pow(2, detail); + var a = prepare( that.vertices[ face.a ] ); + var b = prepare( that.vertices[ face.b ] ); + var c = prepare( that.vertices[ face.c ] ); + var v = []; + + // Construct all of the vertices for this subdivision. + + for ( var i = 0 ; i <= cols; i ++ ) { + + v[ i ] = []; + + var aj = prepare( a.clone().lerp( c, i / cols ) ); + var bj = prepare( b.clone().lerp( c, i / cols ) ); + var rows = cols - i; + + for ( var j = 0; j <= rows; j ++) { + + if ( j == 0 && i == cols ) { + + v[ i ][ j ] = aj; + + } else { + + v[ i ][ j ] = prepare( aj.clone().lerp( bj, j / rows ) ); + + } + + } + + } + + // Construct all of the faces. + + for ( var i = 0; i < cols ; i ++ ) { + + for ( var j = 0; j < 2 * (cols - i) - 1; j ++ ) { + + var k = Math.floor( j / 2 ); + + if ( j % 2 == 0 ) { + + make( + v[ i ][ k + 1], + v[ i + 1 ][ k ], + v[ i ][ k ] + ); + + } else { + + make( + v[ i ][ k + 1 ], + v[ i + 1][ k + 1], + v[ i + 1 ][ k ] + ); + + } + + } + + } + + } + + + // Angle around the Y axis, counter-clockwise when looking from above. + + function azimuth( vector ) { + + return Math.atan2( vector.z, - vector.x ); + + } + + + // Angle above the XZ plane. + + function inclination( vector ) { + + return Math.atan2( - vector.y, Math.sqrt( ( vector.x * vector.x ) + ( vector.z * vector.z ) ) ); + + } + + + // Texture fixing helper. Spheres have some odd behaviours. + + function correctUV( uv, vector, azimuth ) { + + if ( ( azimuth < 0 ) && ( uv.x === 1 ) ) uv = new THREE.Vector2( uv.x - 1, uv.y ); + if ( ( vector.x === 0 ) && ( vector.z === 0 ) ) uv = new THREE.Vector2( azimuth / 2 / Math.PI + 0.5, uv.y ); + return uv.clone(); + + } + + +}; + +THREE.PolyhedronGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.PolyhedronGeometry.prototype.constructor = THREE.PolyhedronGeometry; + +// File:src/extras/geometries/DodecahedronGeometry.js + +/** + * @author Abe Pazos / https://hamoid.com + */ + +THREE.DodecahedronGeometry = function ( radius, detail ) { + + this.parameters = { + radius: radius, + detail: detail + }; + + var t = ( 1 + Math.sqrt( 5 ) ) / 2; + var r = 1 / t; + + var vertices = [ + + // (±1, ±1, ±1) + -1, -1, -1, -1, -1, 1, + -1, 1, -1, -1, 1, 1, + 1, -1, -1, 1, -1, 1, + 1, 1, -1, 1, 1, 1, + + // (0, ±1/φ, ±φ) + 0, -r, -t, 0, -r, t, + 0, r, -t, 0, r, t, + + // (±1/φ, ±φ, 0) + -r, -t, 0, -r, t, 0, + r, -t, 0, r, t, 0, + + // (±φ, 0, ±1/φ) + -t, 0, -r, t, 0, -r, + -t, 0, r, t, 0, r + ]; + + var indices = [ + 3, 11, 7, 3, 7, 15, 3, 15, 13, + 7, 19, 17, 7, 17, 6, 7, 6, 15, + 17, 4, 8, 17, 8, 10, 17, 10, 6, + 8, 0, 16, 8, 16, 2, 8, 2, 10, + 0, 12, 1, 0, 1, 18, 0, 18, 16, + 6, 10, 2, 6, 2, 13, 6, 13, 15, + 2, 16, 18, 2, 18, 3, 2, 3, 13, + 18, 1, 9, 18, 9, 11, 18, 11, 3, + 4, 14, 12, 4, 12, 0, 4, 0, 8, + 11, 9, 5, 11, 5, 19, 11, 19, 7, + 19, 5, 14, 19, 14, 4, 19, 4, 17, + 1, 12, 14, 1, 14, 5, 1, 5, 9 + ]; + + THREE.PolyhedronGeometry.call( this, vertices, indices, radius, detail ); + +}; + +THREE.DodecahedronGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.DodecahedronGeometry.prototype.constructor = THREE.DodecahedronGeometry; + +// File:src/extras/geometries/IcosahedronGeometry.js + +/** + * @author timothypratley / https://github.com/timothypratley + */ + +THREE.IcosahedronGeometry = function ( radius, detail ) { + + var t = ( 1 + Math.sqrt( 5 ) ) / 2; + + var vertices = [ + - 1, t, 0, 1, t, 0, - 1, - t, 0, 1, - t, 0, + 0, - 1, t, 0, 1, t, 0, - 1, - t, 0, 1, - t, + t, 0, - 1, t, 0, 1, - t, 0, - 1, - t, 0, 1 + ]; + + var indices = [ + 0, 11, 5, 0, 5, 1, 0, 1, 7, 0, 7, 10, 0, 10, 11, + 1, 5, 9, 5, 11, 4, 11, 10, 2, 10, 7, 6, 7, 1, 8, + 3, 9, 4, 3, 4, 2, 3, 2, 6, 3, 6, 8, 3, 8, 9, + 4, 9, 5, 2, 4, 11, 6, 2, 10, 8, 6, 7, 9, 8, 1 + ]; + + THREE.PolyhedronGeometry.call( this, vertices, indices, radius, detail ); + + this.type = 'IcosahedronGeometry'; + + this.parameters = { + radius: radius, + detail: detail + }; +}; + +THREE.IcosahedronGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.IcosahedronGeometry.prototype.constructor = THREE.IcosahedronGeometry; + +// File:src/extras/geometries/OctahedronGeometry.js + +/** + * @author timothypratley / https://github.com/timothypratley + */ + +THREE.OctahedronGeometry = function ( radius, detail ) { + + this.parameters = { + radius: radius, + detail: detail + }; + + var vertices = [ + 1, 0, 0, - 1, 0, 0, 0, 1, 0, 0,- 1, 0, 0, 0, 1, 0, 0,- 1 + ]; + + var indices = [ + 0, 2, 4, 0, 4, 3, 0, 3, 5, 0, 5, 2, 1, 2, 5, 1, 5, 3, 1, 3, 4, 1, 4, 2 + ]; + + THREE.PolyhedronGeometry.call( this, vertices, indices, radius, detail ); + + this.type = 'OctahedronGeometry'; + + this.parameters = { + radius: radius, + detail: detail + }; +}; + +THREE.OctahedronGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.OctahedronGeometry.prototype.constructor = THREE.OctahedronGeometry; + +// File:src/extras/geometries/TetrahedronGeometry.js + +/** + * @author timothypratley / https://github.com/timothypratley + */ + +THREE.TetrahedronGeometry = function ( radius, detail ) { + + var vertices = [ + 1, 1, 1, - 1, - 1, 1, - 1, 1, - 1, 1, - 1, - 1 + ]; + + var indices = [ + 2, 1, 0, 0, 3, 2, 1, 3, 0, 2, 3, 1 + ]; + + THREE.PolyhedronGeometry.call( this, vertices, indices, radius, detail ); + + this.type = 'TetrahedronGeometry'; + + this.parameters = { + radius: radius, + detail: detail + }; + +}; + +THREE.TetrahedronGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.TetrahedronGeometry.prototype.constructor = THREE.TetrahedronGeometry; + +// File:src/extras/geometries/ParametricGeometry.js + +/** + * @author zz85 / https://github.com/zz85 + * Parametric Surfaces Geometry + * based on the brilliant article by @prideout http://prideout.net/blog/?p=44 + * + * new THREE.ParametricGeometry( parametricFunction, uSegments, ySegements ); + * + */ + +THREE.ParametricGeometry = function ( func, slices, stacks ) { + + THREE.Geometry.call( this ); + + this.type = 'ParametricGeometry'; + + this.parameters = { + func: func, + slices: slices, + stacks: stacks + }; + + var verts = this.vertices; + var faces = this.faces; + var uvs = this.faceVertexUvs[ 0 ]; + + var i, j, p; + var u, v; + + var sliceCount = slices + 1; + + for ( i = 0; i <= stacks; i ++ ) { + + v = i / stacks; + + for ( j = 0; j <= slices; j ++ ) { + + u = j / slices; + + p = func( u, v ); + verts.push( p ); + + } + } + + var a, b, c, d; + var uva, uvb, uvc, uvd; + + for ( i = 0; i < stacks; i ++ ) { + + for ( j = 0; j < slices; j ++ ) { + + a = i * sliceCount + j; + b = i * sliceCount + j + 1; + c = (i + 1) * sliceCount + j + 1; + d = (i + 1) * sliceCount + j; + + uva = new THREE.Vector2( j / slices, i / stacks ); + uvb = new THREE.Vector2( ( j + 1 ) / slices, i / stacks ); + uvc = new THREE.Vector2( ( j + 1 ) / slices, ( i + 1 ) / stacks ); + uvd = new THREE.Vector2( j / slices, ( i + 1 ) / stacks ); + + faces.push( new THREE.Face3( a, b, d ) ); + uvs.push( [ uva, uvb, uvd ] ); + + faces.push( new THREE.Face3( b, c, d ) ); + uvs.push( [ uvb.clone(), uvc, uvd.clone() ] ); + + } + + } + + // console.log(this); + + // magic bullet + // var diff = this.mergeVertices(); + // console.log('removed ', diff, ' vertices by merging'); + + this.computeFaceNormals(); + this.computeVertexNormals(); + +}; + +THREE.ParametricGeometry.prototype = Object.create( THREE.Geometry.prototype ); +THREE.ParametricGeometry.prototype.constructor = THREE.ParametricGeometry; + +// File:src/extras/helpers/AxisHelper.js + +/** + * @author sroucheray / http://sroucheray.org/ + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.AxisHelper = function ( size ) { + + size = size || 1; + + var vertices = new Float32Array( [ + 0, 0, 0, size, 0, 0, + 0, 0, 0, 0, size, 0, + 0, 0, 0, 0, 0, size + ] ); + + var colors = new Float32Array( [ + 1, 0, 0, 1, 0.6, 0, + 0, 1, 0, 0.6, 1, 0, + 0, 0, 1, 0, 0.6, 1 + ] ); + + var geometry = new THREE.BufferGeometry(); + geometry.addAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) ); + geometry.addAttribute( 'color', new THREE.BufferAttribute( colors, 3 ) ); + + var material = new THREE.LineBasicMaterial( { vertexColors: THREE.VertexColors } ); + + THREE.Line.call( this, geometry, material, THREE.LinePieces ); + +}; + +THREE.AxisHelper.prototype = Object.create( THREE.Line.prototype ); +THREE.AxisHelper.prototype.constructor = THREE.AxisHelper; + +// File:src/extras/helpers/ArrowHelper.js + +/** + * @author WestLangley / http://github.com/WestLangley + * @author zz85 / http://github.com/zz85 + * @author bhouston / http://exocortex.com + * + * Creates an arrow for visualizing directions + * + * Parameters: + * dir - Vector3 + * origin - Vector3 + * length - Number + * color - color in hex value + * headLength - Number + * headWidth - Number + */ + +THREE.ArrowHelper = ( function () { + + var lineGeometry = new THREE.Geometry(); + lineGeometry.vertices.push( new THREE.Vector3( 0, 0, 0 ), new THREE.Vector3( 0, 1, 0 ) ); + + var coneGeometry = new THREE.CylinderGeometry( 0, 0.5, 1, 5, 1 ); + coneGeometry.applyMatrix( new THREE.Matrix4().makeTranslation( 0, - 0.5, 0 ) ); + + return function ( dir, origin, length, color, headLength, headWidth ) { + + // dir is assumed to be normalized + + THREE.Object3D.call( this ); + + if ( color === undefined ) color = 0xffff00; + if ( length === undefined ) length = 1; + if ( headLength === undefined ) headLength = 0.2 * length; + if ( headWidth === undefined ) headWidth = 0.2 * headLength; + + this.position.copy( origin ); + + this.line = new THREE.Line( lineGeometry, new THREE.LineBasicMaterial( { color: color } ) ); + this.line.matrixAutoUpdate = false; + this.add( this.line ); + + this.cone = new THREE.Mesh( coneGeometry, new THREE.MeshBasicMaterial( { color: color } ) ); + this.cone.matrixAutoUpdate = false; + this.add( this.cone ); + + this.setDirection( dir ); + this.setLength( length, headLength, headWidth ); + + } + +}() ); + +THREE.ArrowHelper.prototype = Object.create( THREE.Object3D.prototype ); +THREE.ArrowHelper.prototype.constructor = THREE.ArrowHelper; + +THREE.ArrowHelper.prototype.setDirection = ( function () { + + var axis = new THREE.Vector3(); + var radians; + + return function ( dir ) { + + // dir is assumed to be normalized + + if ( dir.y > 0.99999 ) { + + this.quaternion.set( 0, 0, 0, 1 ); + + } else if ( dir.y < - 0.99999 ) { + + this.quaternion.set( 1, 0, 0, 0 ); + + } else { + + axis.set( dir.z, 0, - dir.x ).normalize(); + + radians = Math.acos( dir.y ); + + this.quaternion.setFromAxisAngle( axis, radians ); + + } + + }; + +}() ); + +THREE.ArrowHelper.prototype.setLength = function ( length, headLength, headWidth ) { + + if ( headLength === undefined ) headLength = 0.2 * length; + if ( headWidth === undefined ) headWidth = 0.2 * headLength; + + this.line.scale.set( 1, length - headLength, 1 ); + this.line.updateMatrix(); + + this.cone.scale.set( headWidth, headLength, headWidth ); + this.cone.position.y = length; + this.cone.updateMatrix(); + +}; + +THREE.ArrowHelper.prototype.setColor = function ( color ) { + + this.line.material.color.set( color ); + this.cone.material.color.set( color ); + +}; + +// File:src/extras/helpers/BoxHelper.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.BoxHelper = function ( object ) { + + var geometry = new THREE.BufferGeometry(); + geometry.addAttribute( 'position', new THREE.BufferAttribute( new Float32Array( 72 ), 3 ) ); + + THREE.Line.call( this, geometry, new THREE.LineBasicMaterial( { color: 0xffff00 } ), THREE.LinePieces ); + + if ( object !== undefined ) { + + this.update( object ); + + } + +}; + +THREE.BoxHelper.prototype = Object.create( THREE.Line.prototype ); +THREE.BoxHelper.prototype.constructor = THREE.BoxHelper; + +THREE.BoxHelper.prototype.update = function ( object ) { + + var geometry = object.geometry; + + if ( geometry.boundingBox === null ) { + + geometry.computeBoundingBox(); + + } + + var min = geometry.boundingBox.min; + var max = geometry.boundingBox.max; + + /* + 5____4 + 1/___0/| + | 6__|_7 + 2/___3/ + + 0: max.x, max.y, max.z + 1: min.x, max.y, max.z + 2: min.x, min.y, max.z + 3: max.x, min.y, max.z + 4: max.x, max.y, min.z + 5: min.x, max.y, min.z + 6: min.x, min.y, min.z + 7: max.x, min.y, min.z + */ + + var vertices = this.geometry.attributes.position.array; + + vertices[ 0 ] = max.x; vertices[ 1 ] = max.y; vertices[ 2 ] = max.z; + vertices[ 3 ] = min.x; vertices[ 4 ] = max.y; vertices[ 5 ] = max.z; + + vertices[ 6 ] = min.x; vertices[ 7 ] = max.y; vertices[ 8 ] = max.z; + vertices[ 9 ] = min.x; vertices[ 10 ] = min.y; vertices[ 11 ] = max.z; + + vertices[ 12 ] = min.x; vertices[ 13 ] = min.y; vertices[ 14 ] = max.z; + vertices[ 15 ] = max.x; vertices[ 16 ] = min.y; vertices[ 17 ] = max.z; + + vertices[ 18 ] = max.x; vertices[ 19 ] = min.y; vertices[ 20 ] = max.z; + vertices[ 21 ] = max.x; vertices[ 22 ] = max.y; vertices[ 23 ] = max.z; + + // + + vertices[ 24 ] = max.x; vertices[ 25 ] = max.y; vertices[ 26 ] = min.z; + vertices[ 27 ] = min.x; vertices[ 28 ] = max.y; vertices[ 29 ] = min.z; + + vertices[ 30 ] = min.x; vertices[ 31 ] = max.y; vertices[ 32 ] = min.z; + vertices[ 33 ] = min.x; vertices[ 34 ] = min.y; vertices[ 35 ] = min.z; + + vertices[ 36 ] = min.x; vertices[ 37 ] = min.y; vertices[ 38 ] = min.z; + vertices[ 39 ] = max.x; vertices[ 40 ] = min.y; vertices[ 41 ] = min.z; + + vertices[ 42 ] = max.x; vertices[ 43 ] = min.y; vertices[ 44 ] = min.z; + vertices[ 45 ] = max.x; vertices[ 46 ] = max.y; vertices[ 47 ] = min.z; + + // + + vertices[ 48 ] = max.x; vertices[ 49 ] = max.y; vertices[ 50 ] = max.z; + vertices[ 51 ] = max.x; vertices[ 52 ] = max.y; vertices[ 53 ] = min.z; + + vertices[ 54 ] = min.x; vertices[ 55 ] = max.y; vertices[ 56 ] = max.z; + vertices[ 57 ] = min.x; vertices[ 58 ] = max.y; vertices[ 59 ] = min.z; + + vertices[ 60 ] = min.x; vertices[ 61 ] = min.y; vertices[ 62 ] = max.z; + vertices[ 63 ] = min.x; vertices[ 64 ] = min.y; vertices[ 65 ] = min.z; + + vertices[ 66 ] = max.x; vertices[ 67 ] = min.y; vertices[ 68 ] = max.z; + vertices[ 69 ] = max.x; vertices[ 70 ] = min.y; vertices[ 71 ] = min.z; + + this.geometry.attributes.position.needsUpdate = true; + + this.geometry.computeBoundingSphere(); + + this.matrix = object.matrixWorld; + this.matrixAutoUpdate = false; + +}; + +// File:src/extras/helpers/BoundingBoxHelper.js + +/** + * @author WestLangley / http://github.com/WestLangley + */ + +// a helper to show the world-axis-aligned bounding box for an object + +THREE.BoundingBoxHelper = function ( object, hex ) { + + var color = ( hex !== undefined ) ? hex : 0x888888; + + this.object = object; + + this.box = new THREE.Box3(); + + THREE.Mesh.call( this, new THREE.BoxGeometry( 1, 1, 1 ), new THREE.MeshBasicMaterial( { color: color, wireframe: true } ) ); + +}; + +THREE.BoundingBoxHelper.prototype = Object.create( THREE.Mesh.prototype ); +THREE.BoundingBoxHelper.prototype.constructor = THREE.BoundingBoxHelper; + +THREE.BoundingBoxHelper.prototype.update = function () { + + this.box.setFromObject( this.object ); + + this.box.size( this.scale ); + + this.box.center( this.position ); + +}; + +// File:src/extras/helpers/CameraHelper.js + +/** + * @author alteredq / http://alteredqualia.com/ + * + * - shows frustum, line of sight and up of the camera + * - suitable for fast updates + * - based on frustum visualization in lightgl.js shadowmap example + * http://evanw.github.com/lightgl.js/tests/shadowmap.html + */ + +THREE.CameraHelper = function ( camera ) { + + var geometry = new THREE.Geometry(); + var material = new THREE.LineBasicMaterial( { color: 0xffffff, vertexColors: THREE.FaceColors } ); + + var pointMap = {}; + + // colors + + var hexFrustum = 0xffaa00; + var hexCone = 0xff0000; + var hexUp = 0x00aaff; + var hexTarget = 0xffffff; + var hexCross = 0x333333; + + // near + + addLine( "n1", "n2", hexFrustum ); + addLine( "n2", "n4", hexFrustum ); + addLine( "n4", "n3", hexFrustum ); + addLine( "n3", "n1", hexFrustum ); + + // far + + addLine( "f1", "f2", hexFrustum ); + addLine( "f2", "f4", hexFrustum ); + addLine( "f4", "f3", hexFrustum ); + addLine( "f3", "f1", hexFrustum ); + + // sides + + addLine( "n1", "f1", hexFrustum ); + addLine( "n2", "f2", hexFrustum ); + addLine( "n3", "f3", hexFrustum ); + addLine( "n4", "f4", hexFrustum ); + + // cone + + addLine( "p", "n1", hexCone ); + addLine( "p", "n2", hexCone ); + addLine( "p", "n3", hexCone ); + addLine( "p", "n4", hexCone ); + + // up + + addLine( "u1", "u2", hexUp ); + addLine( "u2", "u3", hexUp ); + addLine( "u3", "u1", hexUp ); + + // target + + addLine( "c", "t", hexTarget ); + addLine( "p", "c", hexCross ); + + // cross + + addLine( "cn1", "cn2", hexCross ); + addLine( "cn3", "cn4", hexCross ); + + addLine( "cf1", "cf2", hexCross ); + addLine( "cf3", "cf4", hexCross ); + + function addLine( a, b, hex ) { + + addPoint( a, hex ); + addPoint( b, hex ); + + } + + function addPoint( id, hex ) { + + geometry.vertices.push( new THREE.Vector3() ); + geometry.colors.push( new THREE.Color( hex ) ); + + if ( pointMap[ id ] === undefined ) { + + pointMap[ id ] = []; + + } + + pointMap[ id ].push( geometry.vertices.length - 1 ); + + } + + THREE.Line.call( this, geometry, material, THREE.LinePieces ); + + this.camera = camera; + this.matrix = camera.matrixWorld; + this.matrixAutoUpdate = false; + + this.pointMap = pointMap; + + this.update(); + +}; + +THREE.CameraHelper.prototype = Object.create( THREE.Line.prototype ); +THREE.CameraHelper.prototype.constructor = THREE.CameraHelper; + +THREE.CameraHelper.prototype.update = function () { + + var geometry, pointMap; + + var vector = new THREE.Vector3(); + var camera = new THREE.Camera(); + + var setPoint = function ( point, x, y, z ) { + + vector.set( x, y, z ).unproject( camera ); + + var points = pointMap[ point ]; + + if ( points !== undefined ) { + + for ( var i = 0, il = points.length; i < il; i ++ ) { + + geometry.vertices[ points[ i ] ].copy( vector ); + + } + + } + + }; + + return function () { + + geometry = this.geometry; + pointMap = this.pointMap; + + var w = 1, h = 1; + + // we need just camera projection matrix + // world matrix must be identity + + camera.projectionMatrix.copy( this.camera.projectionMatrix ); + + // center / target + + setPoint( "c", 0, 0, - 1 ); + setPoint( "t", 0, 0, 1 ); + + // near + + setPoint( "n1", - w, - h, - 1 ); + setPoint( "n2", w, - h, - 1 ); + setPoint( "n3", - w, h, - 1 ); + setPoint( "n4", w, h, - 1 ); + + // far + + setPoint( "f1", - w, - h, 1 ); + setPoint( "f2", w, - h, 1 ); + setPoint( "f3", - w, h, 1 ); + setPoint( "f4", w, h, 1 ); + + // up + + setPoint( "u1", w * 0.7, h * 1.1, - 1 ); + setPoint( "u2", - w * 0.7, h * 1.1, - 1 ); + setPoint( "u3", 0, h * 2, - 1 ); + + // cross + + setPoint( "cf1", - w, 0, 1 ); + setPoint( "cf2", w, 0, 1 ); + setPoint( "cf3", 0, - h, 1 ); + setPoint( "cf4", 0, h, 1 ); + + setPoint( "cn1", - w, 0, - 1 ); + setPoint( "cn2", w, 0, - 1 ); + setPoint( "cn3", 0, - h, - 1 ); + setPoint( "cn4", 0, h, - 1 ); + + geometry.verticesNeedUpdate = true; + + }; + +}(); + +// File:src/extras/helpers/DirectionalLightHelper.js + +/** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + * @author WestLangley / http://github.com/WestLangley + */ + +THREE.DirectionalLightHelper = function ( light, size ) { + + THREE.Object3D.call( this ); + + this.light = light; + this.light.updateMatrixWorld(); + + this.matrix = light.matrixWorld; + this.matrixAutoUpdate = false; + + size = size || 1; + + var geometry = new THREE.Geometry(); + geometry.vertices.push( + new THREE.Vector3( - size, size, 0 ), + new THREE.Vector3( size, size, 0 ), + new THREE.Vector3( size, - size, 0 ), + new THREE.Vector3( - size, - size, 0 ), + new THREE.Vector3( - size, size, 0 ) + ); + + var material = new THREE.LineBasicMaterial( { fog: false } ); + material.color.copy( this.light.color ).multiplyScalar( this.light.intensity ); + + this.lightPlane = new THREE.Line( geometry, material ); + this.add( this.lightPlane ); + + geometry = new THREE.Geometry(); + geometry.vertices.push( + new THREE.Vector3(), + new THREE.Vector3() + ); + + material = new THREE.LineBasicMaterial( { fog: false } ); + material.color.copy( this.light.color ).multiplyScalar( this.light.intensity ); + + this.targetLine = new THREE.Line( geometry, material ); + this.add( this.targetLine ); + + this.update(); + +}; + +THREE.DirectionalLightHelper.prototype = Object.create( THREE.Object3D.prototype ); +THREE.DirectionalLightHelper.prototype.constructor = THREE.DirectionalLightHelper; + +THREE.DirectionalLightHelper.prototype.dispose = function () { + + this.lightPlane.geometry.dispose(); + this.lightPlane.material.dispose(); + this.targetLine.geometry.dispose(); + this.targetLine.material.dispose(); +}; + +THREE.DirectionalLightHelper.prototype.update = function () { + + var v1 = new THREE.Vector3(); + var v2 = new THREE.Vector3(); + var v3 = new THREE.Vector3(); + + return function () { + + v1.setFromMatrixPosition( this.light.matrixWorld ); + v2.setFromMatrixPosition( this.light.target.matrixWorld ); + v3.subVectors( v2, v1 ); + + this.lightPlane.lookAt( v3 ); + this.lightPlane.material.color.copy( this.light.color ).multiplyScalar( this.light.intensity ); + + this.targetLine.geometry.vertices[ 1 ].copy( v3 ); + this.targetLine.geometry.verticesNeedUpdate = true; + this.targetLine.material.color.copy( this.lightPlane.material.color ); + + }; + +}(); + +// File:src/extras/helpers/EdgesHelper.js + +/** + * @author WestLangley / http://github.com/WestLangley + * @param object THREE.Mesh whose geometry will be used + * @param hex line color + * @param thresholdAngle the minimim angle (in degrees), + * between the face normals of adjacent faces, + * that is required to render an edge. A value of 10 means + * an edge is only rendered if the angle is at least 10 degrees. + */ + +THREE.EdgesHelper = function ( object, hex, thresholdAngle ) { + + var color = ( hex !== undefined ) ? hex : 0xffffff; + thresholdAngle = ( thresholdAngle !== undefined ) ? thresholdAngle : 1; + + var thresholdDot = Math.cos( THREE.Math.degToRad( thresholdAngle ) ); + + var edge = [ 0, 0 ], hash = {}; + var sortFunction = function ( a, b ) { return a - b }; + + var keys = [ 'a', 'b', 'c' ]; + var geometry = new THREE.BufferGeometry(); + + var geometry2; + + if ( object.geometry instanceof THREE.BufferGeometry ) { + + geometry2 = new THREE.Geometry(); + geometry2.fromBufferGeometry( object.geometry ); + + } else { + + geometry2 = object.geometry.clone(); + + } + + geometry2.mergeVertices(); + geometry2.computeFaceNormals(); + + var vertices = geometry2.vertices; + var faces = geometry2.faces; + var numEdges = 0; + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + var face = faces[ i ]; + + for ( var j = 0; j < 3; j ++ ) { + + edge[ 0 ] = face[ keys[ j ] ]; + edge[ 1 ] = face[ keys[ ( j + 1 ) % 3 ] ]; + edge.sort( sortFunction ); + + var key = edge.toString(); + + if ( hash[ key ] === undefined ) { + + hash[ key ] = { vert1: edge[ 0 ], vert2: edge[ 1 ], face1: i, face2: undefined }; + numEdges ++; + + } else { + + hash[ key ].face2 = i; + + } + + } + + } + + var coords = new Float32Array( numEdges * 2 * 3 ); + + var index = 0; + + for ( var key in hash ) { + + var h = hash[ key ]; + + if ( h.face2 === undefined || faces[ h.face1 ].normal.dot( faces[ h.face2 ].normal ) <= thresholdDot ) { + + var vertex = vertices[ h.vert1 ]; + coords[ index ++ ] = vertex.x; + coords[ index ++ ] = vertex.y; + coords[ index ++ ] = vertex.z; + + vertex = vertices[ h.vert2 ]; + coords[ index ++ ] = vertex.x; + coords[ index ++ ] = vertex.y; + coords[ index ++ ] = vertex.z; + + } + + } + + geometry.addAttribute( 'position', new THREE.BufferAttribute( coords, 3 ) ); + + THREE.Line.call( this, geometry, new THREE.LineBasicMaterial( { color: color } ), THREE.LinePieces ); + + this.matrix = object.matrixWorld; + this.matrixAutoUpdate = false; + +}; + +THREE.EdgesHelper.prototype = Object.create( THREE.Line.prototype ); +THREE.EdgesHelper.prototype.constructor = THREE.EdgesHelper; + +// File:src/extras/helpers/FaceNormalsHelper.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author WestLangley / http://github.com/WestLangley +*/ + +THREE.FaceNormalsHelper = function ( object, size, hex, linewidth ) { + + this.object = object; + + this.size = ( size !== undefined ) ? size : 1; + + var color = ( hex !== undefined ) ? hex : 0xffff00; + + var width = ( linewidth !== undefined ) ? linewidth : 1; + + var geometry = new THREE.Geometry(); + + var faces = this.object.geometry.faces; + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + geometry.vertices.push( new THREE.Vector3(), new THREE.Vector3() ); + + } + + THREE.Line.call( this, geometry, new THREE.LineBasicMaterial( { color: color, linewidth: width } ), THREE.LinePieces ); + + this.matrixAutoUpdate = false; + + this.normalMatrix = new THREE.Matrix3(); + + this.update(); + +}; + +THREE.FaceNormalsHelper.prototype = Object.create( THREE.Line.prototype ); +THREE.FaceNormalsHelper.prototype.constructor = THREE.FaceNormalsHelper; + +THREE.FaceNormalsHelper.prototype.update = function () { + + var vertices = this.geometry.vertices; + + var object = this.object; + var objectVertices = object.geometry.vertices; + var objectFaces = object.geometry.faces; + var objectWorldMatrix = object.matrixWorld; + + object.updateMatrixWorld( true ); + + this.normalMatrix.getNormalMatrix( objectWorldMatrix ); + + for ( var i = 0, i2 = 0, l = objectFaces.length; i < l; i ++, i2 += 2 ) { + + var face = objectFaces[ i ]; + + vertices[ i2 ].copy( objectVertices[ face.a ] ) + .add( objectVertices[ face.b ] ) + .add( objectVertices[ face.c ] ) + .divideScalar( 3 ) + .applyMatrix4( objectWorldMatrix ); + + vertices[ i2 + 1 ].copy( face.normal ) + .applyMatrix3( this.normalMatrix ) + .normalize() + .multiplyScalar( this.size ) + .add( vertices[ i2 ] ); + + } + + this.geometry.verticesNeedUpdate = true; + + return this; + +}; + + +// File:src/extras/helpers/GridHelper.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.GridHelper = function ( size, step ) { + + var geometry = new THREE.Geometry(); + var material = new THREE.LineBasicMaterial( { vertexColors: THREE.VertexColors } ); + + this.color1 = new THREE.Color( 0x444444 ); + this.color2 = new THREE.Color( 0x888888 ); + + for ( var i = - size; i <= size; i += step ) { + + geometry.vertices.push( + new THREE.Vector3( - size, 0, i ), new THREE.Vector3( size, 0, i ), + new THREE.Vector3( i, 0, - size ), new THREE.Vector3( i, 0, size ) + ); + + var color = i === 0 ? this.color1 : this.color2; + + geometry.colors.push( color, color, color, color ); + + } + + THREE.Line.call( this, geometry, material, THREE.LinePieces ); + +}; + +THREE.GridHelper.prototype = Object.create( THREE.Line.prototype ); +THREE.GridHelper.prototype.constructor = THREE.GridHelper; + +THREE.GridHelper.prototype.setColors = function( colorCenterLine, colorGrid ) { + + this.color1.set( colorCenterLine ); + this.color2.set( colorGrid ); + + this.geometry.colorsNeedUpdate = true; + +} + +// File:src/extras/helpers/HemisphereLightHelper.js + +/** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.HemisphereLightHelper = function ( light, sphereSize ) { + + THREE.Object3D.call( this ); + + this.light = light; + this.light.updateMatrixWorld(); + + this.matrix = light.matrixWorld; + this.matrixAutoUpdate = false; + + this.colors = [ new THREE.Color(), new THREE.Color() ]; + + var geometry = new THREE.SphereGeometry( sphereSize, 4, 2 ); + geometry.applyMatrix( new THREE.Matrix4().makeRotationX( - Math.PI / 2 ) ); + + for ( var i = 0, il = 8; i < il; i ++ ) { + + geometry.faces[ i ].color = this.colors[ i < 4 ? 0 : 1 ]; + + } + + var material = new THREE.MeshBasicMaterial( { vertexColors: THREE.FaceColors, wireframe: true } ); + + this.lightSphere = new THREE.Mesh( geometry, material ); + this.add( this.lightSphere ); + + this.update(); + +}; + +THREE.HemisphereLightHelper.prototype = Object.create( THREE.Object3D.prototype ); +THREE.HemisphereLightHelper.prototype.constructor = THREE.HemisphereLightHelper; + +THREE.HemisphereLightHelper.prototype.dispose = function () { + this.lightSphere.geometry.dispose(); + this.lightSphere.material.dispose(); +}; + +THREE.HemisphereLightHelper.prototype.update = function () { + + var vector = new THREE.Vector3(); + + return function () { + + this.colors[ 0 ].copy( this.light.color ).multiplyScalar( this.light.intensity ); + this.colors[ 1 ].copy( this.light.groundColor ).multiplyScalar( this.light.intensity ); + + this.lightSphere.lookAt( vector.setFromMatrixPosition( this.light.matrixWorld ).negate() ); + this.lightSphere.geometry.colorsNeedUpdate = true; + + } + +}(); + +// File:src/extras/helpers/PointLightHelper.js + +/** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.PointLightHelper = function ( light, sphereSize ) { + + this.light = light; + this.light.updateMatrixWorld(); + + var geometry = new THREE.SphereGeometry( sphereSize, 4, 2 ); + var material = new THREE.MeshBasicMaterial( { wireframe: true, fog: false } ); + material.color.copy( this.light.color ).multiplyScalar( this.light.intensity ); + + THREE.Mesh.call( this, geometry, material ); + + this.matrix = this.light.matrixWorld; + this.matrixAutoUpdate = false; + + /* + var distanceGeometry = new THREE.IcosahedronGeometry( 1, 2 ); + var distanceMaterial = new THREE.MeshBasicMaterial( { color: hexColor, fog: false, wireframe: true, opacity: 0.1, transparent: true } ); + + this.lightSphere = new THREE.Mesh( bulbGeometry, bulbMaterial ); + this.lightDistance = new THREE.Mesh( distanceGeometry, distanceMaterial ); + + var d = light.distance; + + if ( d === 0.0 ) { + + this.lightDistance.visible = false; + + } else { + + this.lightDistance.scale.set( d, d, d ); + + } + + this.add( this.lightDistance ); + */ + +}; + +THREE.PointLightHelper.prototype = Object.create( THREE.Mesh.prototype ); +THREE.PointLightHelper.prototype.constructor = THREE.PointLightHelper; + +THREE.PointLightHelper.prototype.dispose = function () { + + this.geometry.dispose(); + this.material.dispose(); +}; + +THREE.PointLightHelper.prototype.update = function () { + + this.material.color.copy( this.light.color ).multiplyScalar( this.light.intensity ); + + /* + var d = this.light.distance; + + if ( d === 0.0 ) { + + this.lightDistance.visible = false; + + } else { + + this.lightDistance.visible = true; + this.lightDistance.scale.set( d, d, d ); + + } + */ + +}; + +// File:src/extras/helpers/SkeletonHelper.js + +/** + * @author Sean Griffin / http://twitter.com/sgrif + * @author Michael Guerrero / http://realitymeltdown.com + * @author mrdoob / http://mrdoob.com/ + * @author ikerr / http://verold.com + */ + +THREE.SkeletonHelper = function ( object ) { + + this.bones = this.getBoneList( object ); + + var geometry = new THREE.Geometry(); + + for ( var i = 0; i < this.bones.length; i ++ ) { + + var bone = this.bones[ i ]; + + if ( bone.parent instanceof THREE.Bone ) { + + geometry.vertices.push( new THREE.Vector3() ); + geometry.vertices.push( new THREE.Vector3() ); + geometry.colors.push( new THREE.Color( 0, 0, 1 ) ); + geometry.colors.push( new THREE.Color( 0, 1, 0 ) ); + + } + + } + + var material = new THREE.LineBasicMaterial( { vertexColors: THREE.VertexColors, depthTest: false, depthWrite: false, transparent: true } ); + + THREE.Line.call( this, geometry, material, THREE.LinePieces ); + + this.root = object; + + this.matrix = object.matrixWorld; + this.matrixAutoUpdate = false; + + this.update(); + +}; + + +THREE.SkeletonHelper.prototype = Object.create( THREE.Line.prototype ); +THREE.SkeletonHelper.prototype.constructor = THREE.SkeletonHelper; + +THREE.SkeletonHelper.prototype.getBoneList = function( object ) { + + var boneList = []; + + if ( object instanceof THREE.Bone ) { + + boneList.push( object ); + + } + + for ( var i = 0; i < object.children.length; i ++ ) { + + boneList.push.apply( boneList, this.getBoneList( object.children[ i ] ) ); + + } + + return boneList; + +}; + +THREE.SkeletonHelper.prototype.update = function () { + + var geometry = this.geometry; + + var matrixWorldInv = new THREE.Matrix4().getInverse( this.root.matrixWorld ); + + var boneMatrix = new THREE.Matrix4(); + + var j = 0; + + for ( var i = 0; i < this.bones.length; i ++ ) { + + var bone = this.bones[ i ]; + + if ( bone.parent instanceof THREE.Bone ) { + + boneMatrix.multiplyMatrices( matrixWorldInv, bone.matrixWorld ); + geometry.vertices[ j ].setFromMatrixPosition( boneMatrix ); + + boneMatrix.multiplyMatrices( matrixWorldInv, bone.parent.matrixWorld ); + geometry.vertices[ j + 1 ].setFromMatrixPosition( boneMatrix ); + + j += 2; + + } + + } + + geometry.verticesNeedUpdate = true; + + geometry.computeBoundingSphere(); + +}; + +// File:src/extras/helpers/SpotLightHelper.js + +/** + * @author alteredq / http://alteredqualia.com/ + * @author mrdoob / http://mrdoob.com/ + * @author WestLangley / http://github.com/WestLangley +*/ + +THREE.SpotLightHelper = function ( light ) { + + THREE.Object3D.call( this ); + + this.light = light; + this.light.updateMatrixWorld(); + + this.matrix = light.matrixWorld; + this.matrixAutoUpdate = false; + + var geometry = new THREE.CylinderGeometry( 0, 1, 1, 8, 1, true ); + + geometry.applyMatrix( new THREE.Matrix4().makeTranslation( 0, - 0.5, 0 ) ); + geometry.applyMatrix( new THREE.Matrix4().makeRotationX( - Math.PI / 2 ) ); + + var material = new THREE.MeshBasicMaterial( { wireframe: true, fog: false } ); + + this.cone = new THREE.Mesh( geometry, material ); + this.add( this.cone ); + + this.update(); + +}; + +THREE.SpotLightHelper.prototype = Object.create( THREE.Object3D.prototype ); +THREE.SpotLightHelper.prototype.constructor = THREE.SpotLightHelper; + +THREE.SpotLightHelper.prototype.dispose = function () { + this.cone.geometry.dispose(); + this.cone.material.dispose(); +}; + +THREE.SpotLightHelper.prototype.update = function () { + + var vector = new THREE.Vector3(); + var vector2 = new THREE.Vector3(); + + return function () { + + var coneLength = this.light.distance ? this.light.distance : 10000; + var coneWidth = coneLength * Math.tan( this.light.angle ); + + this.cone.scale.set( coneWidth, coneWidth, coneLength ); + + vector.setFromMatrixPosition( this.light.matrixWorld ); + vector2.setFromMatrixPosition( this.light.target.matrixWorld ); + + this.cone.lookAt( vector2.sub( vector ) ); + + this.cone.material.color.copy( this.light.color ).multiplyScalar( this.light.intensity ); + + }; + +}(); + +// File:src/extras/helpers/VertexNormalsHelper.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author WestLangley / http://github.com/WestLangley +*/ + +THREE.VertexNormalsHelper = function ( object, size, hex, linewidth ) { + + this.object = object; + + this.size = ( size !== undefined ) ? size : 1; + + var color = ( hex !== undefined ) ? hex : 0xff0000; + + var width = ( linewidth !== undefined ) ? linewidth : 1; + + var geometry = new THREE.Geometry(); + + var faces = object.geometry.faces; + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + var face = faces[ i ]; + + for ( var j = 0, jl = face.vertexNormals.length; j < jl; j ++ ) { + + geometry.vertices.push( new THREE.Vector3(), new THREE.Vector3() ); + + } + + } + + THREE.Line.call( this, geometry, new THREE.LineBasicMaterial( { color: color, linewidth: width } ), THREE.LinePieces ); + + this.matrixAutoUpdate = false; + + this.normalMatrix = new THREE.Matrix3(); + + this.update(); + +}; + +THREE.VertexNormalsHelper.prototype = Object.create( THREE.Line.prototype ); +THREE.VertexNormalsHelper.prototype.constructor = THREE.VertexNormalsHelper; + +THREE.VertexNormalsHelper.prototype.update = ( function ( object ) { + + var v1 = new THREE.Vector3(); + + return function( object ) { + + var keys = [ 'a', 'b', 'c', 'd' ]; + + this.object.updateMatrixWorld( true ); + + this.normalMatrix.getNormalMatrix( this.object.matrixWorld ); + + var vertices = this.geometry.vertices; + + var verts = this.object.geometry.vertices; + + var faces = this.object.geometry.faces; + + var worldMatrix = this.object.matrixWorld; + + var idx = 0; + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + var face = faces[ i ]; + + for ( var j = 0, jl = face.vertexNormals.length; j < jl; j ++ ) { + + var vertexId = face[ keys[ j ] ]; + var vertex = verts[ vertexId ]; + + var normal = face.vertexNormals[ j ]; + + vertices[ idx ].copy( vertex ).applyMatrix4( worldMatrix ); + + v1.copy( normal ).applyMatrix3( this.normalMatrix ).normalize().multiplyScalar( this.size ); + + v1.add( vertices[ idx ] ); + idx = idx + 1; + + vertices[ idx ].copy( v1 ); + idx = idx + 1; + + } + + } + + this.geometry.verticesNeedUpdate = true; + + return this; + + } + +}()); + +// File:src/extras/helpers/VertexTangentsHelper.js + +/** + * @author mrdoob / http://mrdoob.com/ + * @author WestLangley / http://github.com/WestLangley +*/ + +THREE.VertexTangentsHelper = function ( object, size, hex, linewidth ) { + + this.object = object; + + this.size = ( size !== undefined ) ? size : 1; + + var color = ( hex !== undefined ) ? hex : 0x0000ff; + + var width = ( linewidth !== undefined ) ? linewidth : 1; + + var geometry = new THREE.Geometry(); + + var faces = object.geometry.faces; + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + var face = faces[ i ]; + + for ( var j = 0, jl = face.vertexTangents.length; j < jl; j ++ ) { + + geometry.vertices.push( new THREE.Vector3() ); + geometry.vertices.push( new THREE.Vector3() ); + + } + + } + + THREE.Line.call( this, geometry, new THREE.LineBasicMaterial( { color: color, linewidth: width } ), THREE.LinePieces ); + + this.matrixAutoUpdate = false; + + this.update(); + +}; + +THREE.VertexTangentsHelper.prototype = Object.create( THREE.Line.prototype ); +THREE.VertexTangentsHelper.prototype.constructor = THREE.VertexTangentsHelper; + +THREE.VertexTangentsHelper.prototype.update = ( function ( object ) { + + var v1 = new THREE.Vector3(); + + return function( object ) { + + var keys = [ 'a', 'b', 'c', 'd' ]; + + this.object.updateMatrixWorld( true ); + + var vertices = this.geometry.vertices; + + var verts = this.object.geometry.vertices; + + var faces = this.object.geometry.faces; + + var worldMatrix = this.object.matrixWorld; + + var idx = 0; + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + var face = faces[ i ]; + + for ( var j = 0, jl = face.vertexTangents.length; j < jl; j ++ ) { + + var vertexId = face[ keys[ j ] ]; + var vertex = verts[ vertexId ]; + + var tangent = face.vertexTangents[ j ]; + + vertices[ idx ].copy( vertex ).applyMatrix4( worldMatrix ); + + v1.copy( tangent ).transformDirection( worldMatrix ).multiplyScalar( this.size ); + + v1.add( vertices[ idx ] ); + idx = idx + 1; + + vertices[ idx ].copy( v1 ); + idx = idx + 1; + + } + + } + + this.geometry.verticesNeedUpdate = true; + + return this; + + } + +}()); + +// File:src/extras/helpers/WireframeHelper.js + +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.WireframeHelper = function ( object, hex ) { + + var color = ( hex !== undefined ) ? hex : 0xffffff; + + var edge = [ 0, 0 ], hash = {}; + var sortFunction = function ( a, b ) { return a - b }; + + var keys = [ 'a', 'b', 'c' ]; + var geometry = new THREE.BufferGeometry(); + + if ( object.geometry instanceof THREE.Geometry ) { + + var vertices = object.geometry.vertices; + var faces = object.geometry.faces; + var numEdges = 0; + + // allocate maximal size + var edges = new Uint32Array( 6 * faces.length ); + + for ( var i = 0, l = faces.length; i < l; i ++ ) { + + var face = faces[ i ]; + + for ( var j = 0; j < 3; j ++ ) { + + edge[ 0 ] = face[ keys[ j ] ]; + edge[ 1 ] = face[ keys[ ( j + 1 ) % 3 ] ]; + edge.sort( sortFunction ); + + var key = edge.toString(); + + if ( hash[ key ] === undefined ) { + + edges[ 2 * numEdges ] = edge[ 0 ]; + edges[ 2 * numEdges + 1 ] = edge[ 1 ]; + hash[ key ] = true; + numEdges ++; + + } + + } + + } + + var coords = new Float32Array( numEdges * 2 * 3 ); + + for ( var i = 0, l = numEdges; i < l; i ++ ) { + + for ( var j = 0; j < 2; j ++ ) { + + var vertex = vertices[ edges [ 2 * i + j] ]; + + var index = 6 * i + 3 * j; + coords[ index + 0 ] = vertex.x; + coords[ index + 1 ] = vertex.y; + coords[ index + 2 ] = vertex.z; + + } + + } + + geometry.addAttribute( 'position', new THREE.BufferAttribute( coords, 3 ) ); + + } else if ( object.geometry instanceof THREE.BufferGeometry ) { + + if ( object.geometry.attributes.index !== undefined ) { // Indexed BufferGeometry + + var vertices = object.geometry.attributes.position.array; + var indices = object.geometry.attributes.index.array; + var drawcalls = object.geometry.drawcalls; + var numEdges = 0; + + if ( drawcalls.length === 0 ) { + + drawcalls = [ { count : indices.length, index : 0, start : 0 } ]; + + } + + // allocate maximal size + var edges = new Uint32Array( 2 * indices.length ); + + for ( var o = 0, ol = drawcalls.length; o < ol; ++ o ) { + + var start = drawcalls[ o ].start; + var count = drawcalls[ o ].count; + var index = drawcalls[ o ].index; + + for ( var i = start, il = start + count; i < il; i += 3 ) { + + for ( var j = 0; j < 3; j ++ ) { + + edge[ 0 ] = index + indices[ i + j ]; + edge[ 1 ] = index + indices[ i + ( j + 1 ) % 3 ]; + edge.sort( sortFunction ); + + var key = edge.toString(); + + if ( hash[ key ] === undefined ) { + + edges[ 2 * numEdges ] = edge[ 0 ]; + edges[ 2 * numEdges + 1 ] = edge[ 1 ]; + hash[ key ] = true; + numEdges ++; + + } + + } + + } + + } + + var coords = new Float32Array( numEdges * 2 * 3 ); + + for ( var i = 0, l = numEdges; i < l; i ++ ) { + + for ( var j = 0; j < 2; j ++ ) { + + var index = 6 * i + 3 * j; + var index2 = 3 * edges[ 2 * i + j]; + coords[ index + 0 ] = vertices[ index2 ]; + coords[ index + 1 ] = vertices[ index2 + 1 ]; + coords[ index + 2 ] = vertices[ index2 + 2 ]; + + } + + } + + geometry.addAttribute( 'position', new THREE.BufferAttribute( coords, 3 ) ); + + } else { // non-indexed BufferGeometry + + var vertices = object.geometry.attributes.position.array; + var numEdges = vertices.length / 3; + var numTris = numEdges / 3; + + var coords = new Float32Array( numEdges * 2 * 3 ); + + for ( var i = 0, l = numTris; i < l; i ++ ) { + + for ( var j = 0; j < 3; j ++ ) { + + var index = 18 * i + 6 * j; + + var index1 = 9 * i + 3 * j; + coords[ index + 0 ] = vertices[ index1 ]; + coords[ index + 1 ] = vertices[ index1 + 1 ]; + coords[ index + 2 ] = vertices[ index1 + 2 ]; + + var index2 = 9 * i + 3 * ( ( j + 1 ) % 3 ); + coords[ index + 3 ] = vertices[ index2 ]; + coords[ index + 4 ] = vertices[ index2 + 1 ]; + coords[ index + 5 ] = vertices[ index2 + 2 ]; + + } + + } + + geometry.addAttribute( 'position', new THREE.BufferAttribute( coords, 3 ) ); + + } + + } + + THREE.Line.call( this, geometry, new THREE.LineBasicMaterial( { color: color } ), THREE.LinePieces ); + + this.matrix = object.matrixWorld; + this.matrixAutoUpdate = false; + +}; + +THREE.WireframeHelper.prototype = Object.create( THREE.Line.prototype ); +THREE.WireframeHelper.prototype.constructor = THREE.WireframeHelper; + +// File:src/extras/objects/ImmediateRenderObject.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.ImmediateRenderObject = function () { + + THREE.Object3D.call( this ); + + this.render = function ( renderCallback ) {}; + +}; + +THREE.ImmediateRenderObject.prototype = Object.create( THREE.Object3D.prototype ); +THREE.ImmediateRenderObject.prototype.constructor = THREE.ImmediateRenderObject; + +// File:src/extras/objects/MorphBlendMesh.js + +/** + * @author alteredq / http://alteredqualia.com/ + */ + +THREE.MorphBlendMesh = function( geometry, material ) { + + THREE.Mesh.call( this, geometry, material ); + + this.animationsMap = {}; + this.animationsList = []; + + // prepare default animation + // (all frames played together in 1 second) + + var numFrames = this.geometry.morphTargets.length; + + var name = "__default"; + + var startFrame = 0; + var endFrame = numFrames - 1; + + var fps = numFrames / 1; + + this.createAnimation( name, startFrame, endFrame, fps ); + this.setAnimationWeight( name, 1 ); + +}; + +THREE.MorphBlendMesh.prototype = Object.create( THREE.Mesh.prototype ); +THREE.MorphBlendMesh.prototype.constructor = THREE.MorphBlendMesh; + +THREE.MorphBlendMesh.prototype.createAnimation = function ( name, start, end, fps ) { + + var animation = { + + startFrame: start, + endFrame: end, + + length: end - start + 1, + + fps: fps, + duration: ( end - start ) / fps, + + lastFrame: 0, + currentFrame: 0, + + active: false, + + time: 0, + direction: 1, + weight: 1, + + directionBackwards: false, + mirroredLoop: false + + }; + + this.animationsMap[ name ] = animation; + this.animationsList.push( animation ); + +}; + +THREE.MorphBlendMesh.prototype.autoCreateAnimations = function ( fps ) { + + var pattern = /([a-z]+)_?(\d+)/; + + var firstAnimation, frameRanges = {}; + + var geometry = this.geometry; + + for ( var i = 0, il = geometry.morphTargets.length; i < il; i ++ ) { + + var morph = geometry.morphTargets[ i ]; + var chunks = morph.name.match( pattern ); + + if ( chunks && chunks.length > 1 ) { + + var name = chunks[ 1 ]; + + if ( ! frameRanges[ name ] ) frameRanges[ name ] = { start: Infinity, end: - Infinity }; + + var range = frameRanges[ name ]; + + if ( i < range.start ) range.start = i; + if ( i > range.end ) range.end = i; + + if ( ! firstAnimation ) firstAnimation = name; + + } + + } + + for ( var name in frameRanges ) { + + var range = frameRanges[ name ]; + this.createAnimation( name, range.start, range.end, fps ); + + } + + this.firstAnimation = firstAnimation; + +}; + +THREE.MorphBlendMesh.prototype.setAnimationDirectionForward = function ( name ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.direction = 1; + animation.directionBackwards = false; + + } + +}; + +THREE.MorphBlendMesh.prototype.setAnimationDirectionBackward = function ( name ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.direction = - 1; + animation.directionBackwards = true; + + } + +}; + +THREE.MorphBlendMesh.prototype.setAnimationFPS = function ( name, fps ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.fps = fps; + animation.duration = ( animation.end - animation.start ) / animation.fps; + + } + +}; + +THREE.MorphBlendMesh.prototype.setAnimationDuration = function ( name, duration ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.duration = duration; + animation.fps = ( animation.end - animation.start ) / animation.duration; + + } + +}; + +THREE.MorphBlendMesh.prototype.setAnimationWeight = function ( name, weight ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.weight = weight; + + } + +}; + +THREE.MorphBlendMesh.prototype.setAnimationTime = function ( name, time ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.time = time; + + } + +}; + +THREE.MorphBlendMesh.prototype.getAnimationTime = function ( name ) { + + var time = 0; + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + time = animation.time; + + } + + return time; + +}; + +THREE.MorphBlendMesh.prototype.getAnimationDuration = function ( name ) { + + var duration = - 1; + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + duration = animation.duration; + + } + + return duration; + +}; + +THREE.MorphBlendMesh.prototype.playAnimation = function ( name ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.time = 0; + animation.active = true; + + } else { + + THREE.warn( "THREE.MorphBlendMesh: animation[" + name + "] undefined in .playAnimation()" ); + + } + +}; + +THREE.MorphBlendMesh.prototype.stopAnimation = function ( name ) { + + var animation = this.animationsMap[ name ]; + + if ( animation ) { + + animation.active = false; + + } + +}; + +THREE.MorphBlendMesh.prototype.update = function ( delta ) { + + for ( var i = 0, il = this.animationsList.length; i < il; i ++ ) { + + var animation = this.animationsList[ i ]; + + if ( ! animation.active ) continue; + + var frameTime = animation.duration / animation.length; + + animation.time += animation.direction * delta; + + if ( animation.mirroredLoop ) { + + if ( animation.time > animation.duration || animation.time < 0 ) { + + animation.direction *= - 1; + + if ( animation.time > animation.duration ) { + + animation.time = animation.duration; + animation.directionBackwards = true; + + } + + if ( animation.time < 0 ) { + + animation.time = 0; + animation.directionBackwards = false; + + } + + } + + } else { + + animation.time = animation.time % animation.duration; + + if ( animation.time < 0 ) animation.time += animation.duration; + + } + + var keyframe = animation.startFrame + THREE.Math.clamp( Math.floor( animation.time / frameTime ), 0, animation.length - 1 ); + var weight = animation.weight; + + if ( keyframe !== animation.currentFrame ) { + + this.morphTargetInfluences[ animation.lastFrame ] = 0; + this.morphTargetInfluences[ animation.currentFrame ] = 1 * weight; + + this.morphTargetInfluences[ keyframe ] = 0; + + animation.lastFrame = animation.currentFrame; + animation.currentFrame = keyframe; + + } + + var mix = ( animation.time % frameTime ) / frameTime; + + if ( animation.directionBackwards ) mix = 1 - mix; + + this.morphTargetInfluences[ animation.currentFrame ] = mix * weight; + this.morphTargetInfluences[ animation.lastFrame ] = ( 1 - mix ) * weight; + + } + +}; + diff --git a/js/three/DDSLoader.js b/js/three/DDSLoader.js new file mode 100644 index 0000000..ebf0031 --- /dev/null +++ b/js/three/DDSLoader.js @@ -0,0 +1,237 @@ +/* + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.DDSLoader = function () { + this._parser = THREE.DDSLoader.parse; +}; + +THREE.DDSLoader.prototype = Object.create( THREE.CompressedTextureLoader.prototype ); +THREE.DDSLoader.prototype.constructor = THREE.DDSLoader; + +THREE.DDSLoader.parse = function ( buffer, loadMipmaps ) { + + var dds = { mipmaps: [], width: 0, height: 0, format: null, mipmapCount: 1 }; + + // Adapted from @toji's DDS utils + // https://github.com/toji/webgl-texture-utils/blob/master/texture-util/dds.js + + // All values and structures referenced from: + // http://msdn.microsoft.com/en-us/library/bb943991.aspx/ + + var DDS_MAGIC = 0x20534444; + + var DDSD_CAPS = 0x1, + DDSD_HEIGHT = 0x2, + DDSD_WIDTH = 0x4, + DDSD_PITCH = 0x8, + DDSD_PIXELFORMAT = 0x1000, + DDSD_MIPMAPCOUNT = 0x20000, + DDSD_LINEARSIZE = 0x80000, + DDSD_DEPTH = 0x800000; + + var DDSCAPS_COMPLEX = 0x8, + DDSCAPS_MIPMAP = 0x400000, + DDSCAPS_TEXTURE = 0x1000; + + var DDSCAPS2_CUBEMAP = 0x200, + DDSCAPS2_CUBEMAP_POSITIVEX = 0x400, + DDSCAPS2_CUBEMAP_NEGATIVEX = 0x800, + DDSCAPS2_CUBEMAP_POSITIVEY = 0x1000, + DDSCAPS2_CUBEMAP_NEGATIVEY = 0x2000, + DDSCAPS2_CUBEMAP_POSITIVEZ = 0x4000, + DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x8000, + DDSCAPS2_VOLUME = 0x200000; + + var DDPF_ALPHAPIXELS = 0x1, + DDPF_ALPHA = 0x2, + DDPF_FOURCC = 0x4, + DDPF_RGB = 0x40, + DDPF_YUV = 0x200, + DDPF_LUMINANCE = 0x20000; + + function fourCCToInt32( value ) { + + return value.charCodeAt(0) + + (value.charCodeAt(1) << 8) + + (value.charCodeAt(2) << 16) + + (value.charCodeAt(3) << 24); + + } + + function int32ToFourCC( value ) { + + return String.fromCharCode( + value & 0xff, + (value >> 8) & 0xff, + (value >> 16) & 0xff, + (value >> 24) & 0xff + ); + } + + function loadARGBMip( buffer, dataOffset, width, height ) { + var dataLength = width * height * 4; + var srcBuffer = new Uint8Array( buffer, dataOffset, dataLength ); + var byteArray = new Uint8Array( dataLength ); + var dst = 0; + var src = 0; + for ( var y = 0; y < height; y ++ ) { + for ( var x = 0; x < width; x ++ ) { + var b = srcBuffer[src]; src ++; + var g = srcBuffer[src]; src ++; + var r = srcBuffer[src]; src ++; + var a = srcBuffer[src]; src ++; + byteArray[dst] = r; dst ++; //r + byteArray[dst] = g; dst ++; //g + byteArray[dst] = b; dst ++; //b + byteArray[dst] = a; dst ++; //a + } + } + return byteArray; + } + + var FOURCC_DXT1 = fourCCToInt32("DXT1"); + var FOURCC_DXT3 = fourCCToInt32("DXT3"); + var FOURCC_DXT5 = fourCCToInt32("DXT5"); + + var headerLengthInt = 31; // The header length in 32 bit ints + + // Offsets into the header array + + var off_magic = 0; + + var off_size = 1; + var off_flags = 2; + var off_height = 3; + var off_width = 4; + + var off_mipmapCount = 7; + + var off_pfFlags = 20; + var off_pfFourCC = 21; + var off_RGBBitCount = 22; + var off_RBitMask = 23; + var off_GBitMask = 24; + var off_BBitMask = 25; + var off_ABitMask = 26; + + var off_caps = 27; + var off_caps2 = 28; + var off_caps3 = 29; + var off_caps4 = 30; + + // Parse header + + var header = new Int32Array( buffer, 0, headerLengthInt ); + + if ( header[ off_magic ] !== DDS_MAGIC ) { + + console.error( 'THREE.DDSLoader.parse: Invalid magic number in DDS header.' ); + return dds; + + } + + if ( ! header[ off_pfFlags ] & DDPF_FOURCC ) { + + console.error( 'THREE.DDSLoader.parse: Unsupported format, must contain a FourCC code.' ); + return dds; + + } + + var blockBytes; + + var fourCC = header[ off_pfFourCC ]; + + var isRGBAUncompressed = false; + + switch ( fourCC ) { + + case FOURCC_DXT1: + + blockBytes = 8; + dds.format = THREE.RGB_S3TC_DXT1_Format; + break; + + case FOURCC_DXT3: + + blockBytes = 16; + dds.format = THREE.RGBA_S3TC_DXT3_Format; + break; + + case FOURCC_DXT5: + + blockBytes = 16; + dds.format = THREE.RGBA_S3TC_DXT5_Format; + break; + + default: + + if ( header[off_RGBBitCount] == 32 + && header[off_RBitMask]&0xff0000 + && header[off_GBitMask]&0xff00 + && header[off_BBitMask]&0xff + && header[off_ABitMask]&0xff000000 ) { + isRGBAUncompressed = true; + blockBytes = 64; + dds.format = THREE.RGBAFormat; + } else { + console.error( 'THREE.DDSLoader.parse: Unsupported FourCC code ', int32ToFourCC( fourCC ) ); + return dds; + } + } + + dds.mipmapCount = 1; + + if ( header[ off_flags ] & DDSD_MIPMAPCOUNT && loadMipmaps !== false ) { + + dds.mipmapCount = Math.max( 1, header[ off_mipmapCount ] ); + + } + + //TODO: Verify that all faces of the cubemap are present with DDSCAPS2_CUBEMAP_POSITIVEX, etc. + + dds.isCubemap = header[ off_caps2 ] & DDSCAPS2_CUBEMAP ? true : false; + + dds.width = header[ off_width ]; + dds.height = header[ off_height ]; + + var dataOffset = header[ off_size ] + 4; + + // Extract mipmaps buffers + + var width = dds.width; + var height = dds.height; + + var faces = dds.isCubemap ? 6 : 1; + + for ( var face = 0; face < faces; face ++ ) { + + for ( var i = 0; i < dds.mipmapCount; i ++ ) { + + if ( isRGBAUncompressed ) { + var byteArray = loadARGBMip( buffer, dataOffset, width, height ); + var dataLength = byteArray.length; + } else { + var dataLength = Math.max( 4, width ) / 4 * Math.max( 4, height ) / 4 * blockBytes; + var byteArray = new Uint8Array( buffer, dataOffset, dataLength ); + } + + var mipmap = { "data": byteArray, "width": width, "height": height }; + dds.mipmaps.push( mipmap ); + + dataOffset += dataLength; + + width = Math.max( width * 0.5, 1 ); + height = Math.max( height * 0.5, 1 ); + + } + + width = dds.width; + height = dds.height; + + } + + return dds; + +}; + diff --git a/js/three/MTLLoader.js b/js/three/MTLLoader.js new file mode 100644 index 0000000..784c93c --- /dev/null +++ b/js/three/MTLLoader.js @@ -0,0 +1,441 @@ +/** + * Loads a Wavefront .mtl file specifying materials + * + * @author angelxuanchang + */ + +THREE.MTLLoader = function( baseUrl, options, crossOrigin ) { + + this.baseUrl = baseUrl; + this.options = options; + this.crossOrigin = crossOrigin; + +}; + +THREE.MTLLoader.prototype = { + + constructor: THREE.MTLLoader, + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var loader = new THREE.XHRLoader(); + loader.setCrossOrigin( this.crossOrigin ); + loader.load( url, function ( text ) { + + onLoad( scope.parse( text ) ); + + }, onProgress, onError ); + + }, + + /** + * Parses loaded MTL file + * @param text - Content of MTL file + * @return {THREE.MTLLoader.MaterialCreator} + */ + parse: function ( text ) { + + var lines = text.split( "\n" ); + var info = {}; + var delimiter_pattern = /\s+/; + var materialsInfo = {}; + + for ( var i = 0; i < lines.length; i ++ ) { + + var line = lines[ i ]; + line = line.trim(); + + if ( line.length === 0 || line.charAt( 0 ) === '#' ) { + + // Blank line or comment ignore + continue; + + } + + var pos = line.indexOf( ' ' ); + + var key = ( pos >= 0 ) ? line.substring( 0, pos ) : line; + key = key.toLowerCase(); + + var value = ( pos >= 0 ) ? line.substring( pos + 1 ) : ""; + value = value.trim(); + + if ( key === "newmtl" ) { + + // New material + + info = { name: value }; + materialsInfo[ value ] = info; + + } else if ( info ) { + + if ( key === "ka" || key === "kd" || key === "ks" ) { + + var ss = value.split( delimiter_pattern, 3 ); + info[ key ] = [ parseFloat( ss[0] ), parseFloat( ss[1] ), parseFloat( ss[2] ) ]; + + } else { + + info[ key ] = value; + + } + + } + + } + + var materialCreator = new THREE.MTLLoader.MaterialCreator( this.baseUrl, this.options ); + materialCreator.crossOrigin = this.crossOrigin + materialCreator.setMaterials( materialsInfo ); + return materialCreator; + + } + +}; + +/** + * Create a new THREE-MTLLoader.MaterialCreator + * @param baseUrl - Url relative to which textures are loaded + * @param options - Set of options on how to construct the materials + * side: Which side to apply the material + * THREE.FrontSide (default), THREE.BackSide, THREE.DoubleSide + * wrap: What type of wrapping to apply for textures + * THREE.RepeatWrapping (default), THREE.ClampToEdgeWrapping, THREE.MirroredRepeatWrapping + * normalizeRGB: RGBs need to be normalized to 0-1 from 0-255 + * Default: false, assumed to be already normalized + * ignoreZeroRGBs: Ignore values of RGBs (Ka,Kd,Ks) that are all 0's + * Default: false + * invertTransparency: If transparency need to be inverted (inversion is needed if d = 0 is fully opaque) + * Default: false (d = 1 is fully opaque) + * @constructor + */ + +THREE.MTLLoader.MaterialCreator = function( baseUrl, options ) { + + this.baseUrl = baseUrl; + this.options = options; + this.materialsInfo = {}; + this.materials = {}; + this.materialsArray = []; + this.nameLookup = {}; + + this.side = ( this.options && this.options.side ) ? this.options.side : THREE.FrontSide; + this.wrap = ( this.options && this.options.wrap ) ? this.options.wrap : THREE.RepeatWrapping; + +}; + +THREE.MTLLoader.MaterialCreator.prototype = { + + constructor: THREE.MTLLoader.MaterialCreator, + + setMaterials: function( materialsInfo ) { + + this.materialsInfo = this.convert( materialsInfo ); + this.materials = {}; + this.materialsArray = []; + this.nameLookup = {}; + + }, + + convert: function( materialsInfo ) { + + if ( !this.options ) return materialsInfo; + + var converted = {}; + + for ( var mn in materialsInfo ) { + + // Convert materials info into normalized form based on options + + var mat = materialsInfo[ mn ]; + + var covmat = {}; + + converted[ mn ] = covmat; + + for ( var prop in mat ) { + + var save = true; + var value = mat[ prop ]; + var lprop = prop.toLowerCase(); + + switch ( lprop ) { + + case 'kd': + case 'ka': + case 'ks': + + // Diffuse color (color under white light) using RGB values + + if ( this.options && this.options.normalizeRGB ) { + + value = [ value[ 0 ] / 255, value[ 1 ] / 255, value[ 2 ] / 255 ]; + + } + + if ( this.options && this.options.ignoreZeroRGBs ) { + + if ( value[ 0 ] === 0 && value[ 1 ] === 0 && value[ 1 ] === 0 ) { + + // ignore + + save = false; + + } + } + + break; + + case 'd': + + // According to MTL format (http://paulbourke.net/dataformats/mtl/): + // d is dissolve for current material + // factor of 1.0 is fully opaque, a factor of 0 is fully dissolved (completely transparent) + + if ( this.options && this.options.invertTransparency ) { + + value = 1 - value; + + } + + break; + + default: + + break; + } + + if ( save ) { + + covmat[ lprop ] = value; + + } + + } + + } + + return converted; + + }, + + preload: function () { + + for ( var mn in this.materialsInfo ) { + + this.create( mn ); + + } + + }, + + getIndex: function( materialName ) { + + return this.nameLookup[ materialName ]; + + }, + + getAsArray: function() { + + var index = 0; + + for ( var mn in this.materialsInfo ) { + + this.materialsArray[ index ] = this.create( mn ); + this.nameLookup[ mn ] = index; + index ++; + + } + + return this.materialsArray; + + }, + + create: function ( materialName ) { + + if ( this.materials[ materialName ] === undefined ) { + + this.createMaterial_( materialName ); + + } + + return this.materials[ materialName ]; + + }, + + createMaterial_: function ( materialName ) { + + // Create material + + var mat = this.materialsInfo[ materialName ]; + var params = { + + name: materialName, + side: this.side + + }; + + for ( var prop in mat ) { + + var value = mat[ prop ]; + + switch ( prop.toLowerCase() ) { + + // Ns is material specular exponent + + case 'kd': + + // Diffuse color (color under white light) using RGB values + + params[ 'diffuse' ] = new THREE.Color().fromArray( value ); + + break; + + case 'ka': + + // Ambient color (color under shadow) using RGB values + + break; + + case 'ks': + + // Specular color (color when light is reflected from shiny surface) using RGB values + params[ 'specular' ] = new THREE.Color().fromArray( value ); + + break; + + case 'map_kd': + + // Diffuse texture map + + params[ 'map' ] = this.loadTexture( this.baseUrl + value ); + params[ 'map' ].wrapS = this.wrap; + params[ 'map' ].wrapT = this.wrap; + + break; + + case 'ns': + + // The specular exponent (defines the focus of the specular highlight) + // A high exponent results in a tight, concentrated highlight. Ns values normally range from 0 to 1000. + + params['shininess'] = value; + + break; + + case 'd': + + // According to MTL format (http://paulbourke.net/dataformats/mtl/): + // d is dissolve for current material + // factor of 1.0 is fully opaque, a factor of 0 is fully dissolved (completely transparent) + + if ( value < 1 ) { + + params['transparent'] = true; + params['opacity'] = value; + + } + + break; + + case 'map_bump': + case 'bump': + + // Bump texture map + + if ( params[ 'bumpMap' ] ) break; // Avoid loading twice. + + params[ 'bumpMap' ] = this.loadTexture( this.baseUrl + value ); + params[ 'bumpMap' ].wrapS = this.wrap; + params[ 'bumpMap' ].wrapT = this.wrap; + + break; + + default: + break; + + } + + } + + if ( params[ 'diffuse' ] ) { + + params[ 'color' ] = params[ 'diffuse' ]; + + } + + this.materials[ materialName ] = new THREE.MeshPhongMaterial( params ); + return this.materials[ materialName ]; + + }, + + + loadTexture: function ( url, mapping, onLoad, onError ) { + + var texture; + var loader = THREE.Loader.Handlers.get( url ); + + if ( loader !== null ) { + + texture = loader.load( url, onLoad ); + + } else { + + texture = new THREE.Texture(); + + loader = new THREE.ImageLoader(); + loader.crossOrigin = this.crossOrigin; + loader.load( url, function ( image ) { + + texture.image = THREE.MTLLoader.ensurePowerOfTwo_( image ); + texture.needsUpdate = true; + + if ( onLoad ) onLoad( texture ); + + } ); + + } + + if ( mapping !== undefined ) texture.mapping = mapping; + + return texture; + + } + +}; + +THREE.MTLLoader.ensurePowerOfTwo_ = function ( image ) { + + if ( ! THREE.Math.isPowerOfTwo( image.width ) || ! THREE.Math.isPowerOfTwo( image.height ) ) { + + var canvas = document.createElement( "canvas" ); + canvas.width = THREE.MTLLoader.nextHighestPowerOfTwo_( image.width ); + canvas.height = THREE.MTLLoader.nextHighestPowerOfTwo_( image.height ); + + var ctx = canvas.getContext("2d"); + ctx.drawImage( image, 0, 0, image.width, image.height, 0, 0, canvas.width, canvas.height ); + return canvas; + + } + + return image; + +}; + +THREE.MTLLoader.nextHighestPowerOfTwo_ = function( x ) { + + -- x; + + for ( var i = 1; i < 32; i <<= 1 ) { + + x = x | x >> i; + + } + + return x + 1; + +}; + +THREE.EventDispatcher.prototype.apply( THREE.MTLLoader.prototype ); diff --git a/js/three/OBJLoader.js b/js/three/OBJLoader.js new file mode 100644 index 0000000..f66badd --- /dev/null +++ b/js/three/OBJLoader.js @@ -0,0 +1,372 @@ +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.OBJLoader = function ( manager ) { + + this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager; + +}; + +THREE.OBJLoader.prototype = { + + constructor: THREE.OBJLoader, + + load: function ( url, onLoad, onProgress, onError ) { + + var scope = this; + + var loader = new THREE.XHRLoader( scope.manager ); + loader.setCrossOrigin( this.crossOrigin ); + loader.load( url, function ( text ) { + + onLoad( scope.parse( text ) ); + + }, onProgress, onError ); + + }, + + parse: function ( text ) { + + console.time( 'OBJLoader' ); + + var object, objects = []; + var geometry, material; + + function parseVertexIndex( value ) { + + var index = parseInt( value ); + + return ( index >= 0 ? index - 1 : index + vertices.length / 3 ) * 3; + + } + + function parseNormalIndex( value ) { + + var index = parseInt( value ); + + return ( index >= 0 ? index - 1 : index + normals.length / 3 ) * 3; + + } + + function parseUVIndex( value ) { + + var index = parseInt( value ); + + return ( index >= 0 ? index - 1 : index + uvs.length / 2 ) * 2; + + } + + function addVertex( a, b, c ) { + + geometry.vertices.push( + vertices[ a ], vertices[ a + 1 ], vertices[ a + 2 ], + vertices[ b ], vertices[ b + 1 ], vertices[ b + 2 ], + vertices[ c ], vertices[ c + 1 ], vertices[ c + 2 ] + ); + + } + + function addNormal( a, b, c ) { + + geometry.normals.push( + normals[ a ], normals[ a + 1 ], normals[ a + 2 ], + normals[ b ], normals[ b + 1 ], normals[ b + 2 ], + normals[ c ], normals[ c + 1 ], normals[ c + 2 ] + ); + + } + + function addUV( a, b, c ) { + + geometry.uvs.push( + uvs[ a ], uvs[ a + 1 ], + uvs[ b ], uvs[ b + 1 ], + uvs[ c ], uvs[ c + 1 ] + ); + + } + + function addFace( a, b, c, d, ua, ub, uc, ud, na, nb, nc, nd ) { + + var ia = parseVertexIndex( a ); + var ib = parseVertexIndex( b ); + var ic = parseVertexIndex( c ); + var id; + + if ( d === undefined ) { + + addVertex( ia, ib, ic ); + + } else { + + id = parseVertexIndex( d ); + + addVertex( ia, ib, id ); + addVertex( ib, ic, id ); + + } + + if ( ua !== undefined ) { + + ia = parseUVIndex( ua ); + ib = parseUVIndex( ub ); + ic = parseUVIndex( uc ); + + if ( d === undefined ) { + + addUV( ia, ib, ic ); + + } else { + + id = parseUVIndex( ud ); + + addUV( ia, ib, id ); + addUV( ib, ic, id ); + + } + + } + + if ( na !== undefined ) { + + ia = parseNormalIndex( na ); + ib = parseNormalIndex( nb ); + ic = parseNormalIndex( nc ); + + if ( d === undefined ) { + + addNormal( ia, ib, ic ); + + } else { + + id = parseNormalIndex( nd ); + + addNormal( ia, ib, id ); + addNormal( ib, ic, id ); + + } + + } + + } + + // create mesh if no objects in text + + if ( /^o /gm.test( text ) === false ) { + + geometry = { + vertices: [], + normals: [], + uvs: [] + }; + + material = { + name: '' + }; + + object = { + name: '', + geometry: geometry, + material: material + }; + + objects.push( object ); + + } + + var vertices = []; + var normals = []; + var uvs = []; + + // v float float float + + var vertex_pattern = /v( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)/; + + // vn float float float + + var normal_pattern = /vn( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)/; + + // vt float float + + var uv_pattern = /vt( +[\d|\.|\+|\-|e|E]+)( +[\d|\.|\+|\-|e|E]+)/; + + // f vertex vertex vertex ... + + var face_pattern1 = /f( +-?\d+)( +-?\d+)( +-?\d+)( +-?\d+)?/; + + // f vertex/uv vertex/uv vertex/uv ... + + var face_pattern2 = /f( +(-?\d+)\/(-?\d+))( +(-?\d+)\/(-?\d+))( +(-?\d+)\/(-?\d+))( +(-?\d+)\/(-?\d+))?/; + + // f vertex/uv/normal vertex/uv/normal vertex/uv/normal ... + + var face_pattern3 = /f( +(-?\d+)\/(-?\d+)\/(-?\d+))( +(-?\d+)\/(-?\d+)\/(-?\d+))( +(-?\d+)\/(-?\d+)\/(-?\d+))( +(-?\d+)\/(-?\d+)\/(-?\d+))?/; + + // f vertex//normal vertex//normal vertex//normal ... + + var face_pattern4 = /f( +(-?\d+)\/\/(-?\d+))( +(-?\d+)\/\/(-?\d+))( +(-?\d+)\/\/(-?\d+))( +(-?\d+)\/\/(-?\d+))?/ + + // + + var lines = text.split( '\n' ); + + for ( var i = 0; i < lines.length; i ++ ) { + + var line = lines[ i ]; + line = line.trim(); + + var result; + + if ( line.length === 0 || line.charAt( 0 ) === '#' ) { + + continue; + + } else if ( ( result = vertex_pattern.exec( line ) ) !== null ) { + + // ["v 1.0 2.0 3.0", "1.0", "2.0", "3.0"] + + vertices.push( + parseFloat( result[ 1 ] ), + parseFloat( result[ 2 ] ), + parseFloat( result[ 3 ] ) + ); + + } else if ( ( result = normal_pattern.exec( line ) ) !== null ) { + + // ["vn 1.0 2.0 3.0", "1.0", "2.0", "3.0"] + + normals.push( + parseFloat( result[ 1 ] ), + parseFloat( result[ 2 ] ), + parseFloat( result[ 3 ] ) + ); + + } else if ( ( result = uv_pattern.exec( line ) ) !== null ) { + + // ["vt 0.1 0.2", "0.1", "0.2"] + + uvs.push( + parseFloat( result[ 1 ] ), + parseFloat( result[ 2 ] ) + ); + + } else if ( ( result = face_pattern1.exec( line ) ) !== null ) { + + // ["f 1 2 3", "1", "2", "3", undefined] + + addFace( + result[ 1 ], result[ 2 ], result[ 3 ], result[ 4 ] + ); + + } else if ( ( result = face_pattern2.exec( line ) ) !== null ) { + + // ["f 1/1 2/2 3/3", " 1/1", "1", "1", " 2/2", "2", "2", " 3/3", "3", "3", undefined, undefined, undefined] + + addFace( + result[ 2 ], result[ 5 ], result[ 8 ], result[ 11 ], + result[ 3 ], result[ 6 ], result[ 9 ], result[ 12 ] + ); + + } else if ( ( result = face_pattern3.exec( line ) ) !== null ) { + + // ["f 1/1/1 2/2/2 3/3/3", " 1/1/1", "1", "1", "1", " 2/2/2", "2", "2", "2", " 3/3/3", "3", "3", "3", undefined, undefined, undefined, undefined] + + addFace( + result[ 2 ], result[ 6 ], result[ 10 ], result[ 14 ], + result[ 3 ], result[ 7 ], result[ 11 ], result[ 15 ], + result[ 4 ], result[ 8 ], result[ 12 ], result[ 16 ] + ); + + } else if ( ( result = face_pattern4.exec( line ) ) !== null ) { + + // ["f 1//1 2//2 3//3", " 1//1", "1", "1", " 2//2", "2", "2", " 3//3", "3", "3", undefined, undefined, undefined] + + addFace( + result[ 2 ], result[ 5 ], result[ 8 ], result[ 11 ], + undefined, undefined, undefined, undefined, + result[ 3 ], result[ 6 ], result[ 9 ], result[ 12 ] + ); + + } else if ( /^o /.test( line ) ) { + + geometry = { + vertices: [], + normals: [], + uvs: [] + }; + + material = { + name: '' + }; + + object = { + name: line.substring( 2 ).trim(), + geometry: geometry, + material: material + }; + + objects.push( object ) + + } else if ( /^g /.test( line ) ) { + + // group + + } else if ( /^usemtl /.test( line ) ) { + + // material + + material.name = line.substring( 7 ).trim(); + + } else if ( /^mtllib /.test( line ) ) { + + // mtl file + + } else if ( /^s /.test( line ) ) { + + // smooth shading + + } else { + + // console.log( "THREE.OBJLoader: Unhandled line " + line ); + + } + + } + + var container = new THREE.Object3D(); + + for ( var i = 0, l = objects.length; i < l; i ++ ) { + + object = objects[ i ]; + geometry = object.geometry; + + var buffergeometry = new THREE.BufferGeometry(); + + buffergeometry.addAttribute( 'position', new THREE.BufferAttribute( new Float32Array( geometry.vertices ), 3 ) ); + + if ( geometry.normals.length > 0 ) { + buffergeometry.addAttribute( 'normal', new THREE.BufferAttribute( new Float32Array( geometry.normals ), 3 ) ); + } + + if ( geometry.uvs.length > 0 ) { + buffergeometry.addAttribute( 'uv', new THREE.BufferAttribute( new Float32Array( geometry.uvs ), 2 ) ); + } + + material = new THREE.MeshLambertMaterial(); + material.name = object.material.name; + + var mesh = new THREE.Mesh( buffergeometry, material ); + mesh.name = object.name; + + container.add( mesh ); + + } + + console.timeEnd( 'OBJLoader' ); + + return container; + + } + +}; diff --git a/js/three/OBJMTLLoader.js b/js/three/OBJMTLLoader.js new file mode 100644 index 0000000..6efac3e --- /dev/null +++ b/js/three/OBJMTLLoader.js @@ -0,0 +1,365 @@ +/** + * Loads a Wavefront .obj file with materials + * + * @author mrdoob / http://mrdoob.com/ + * @author angelxuanchang + */ + +THREE.OBJMTLLoader = function ( manager ) { + + this.manager = ( manager !== undefined ) ? manager : THREE.DefaultLoadingManager; + +}; + +THREE.OBJMTLLoader.prototype = { + + constructor: THREE.OBJMTLLoader, + + load: function ( url, mtlurl, onLoad, onProgress, onError ) { + + var scope = this; + + var mtlLoader = new THREE.MTLLoader( url.substr( 0, url.lastIndexOf( "/" ) + 1 ) ); + mtlLoader.crossOrigin = scope.crossOrigin; + mtlLoader.load( mtlurl, function ( materials ) { + + var materialsCreator = materials; + materialsCreator.preload(); + + var loader = new THREE.XHRLoader( scope.manager ); + loader.setCrossOrigin( scope.crossOrigin ); + loader.load( url, function ( text ) { + + var object = scope.parse( text ); + + object.traverse( function ( object ) { + + if ( object instanceof THREE.Mesh ) { + + if ( object.material.name ) { + + var material = materialsCreator.create( object.material.name ); + + if ( material ) object.material = material; + + } + + } + + } ); + + onLoad( object ); + + }, onProgress, onError ); + + }, onProgress, onError ); + + }, + + /** + * Parses loaded .obj file + * @param data - content of .obj file + * @param mtllibCallback - callback to handle mtllib declaration (optional) + * @return {THREE.Object3D} - Object3D (with default material) + */ + + parse: function ( data, mtllibCallback ) { + + function vector( x, y, z ) { + + return new THREE.Vector3( x, y, z ); + + } + + function uv( u, v ) { + + return new THREE.Vector2( u, v ); + + } + + function face3( a, b, c, normals ) { + + return new THREE.Face3( a, b, c, normals ); + + } + + var face_offset = 0; + + function meshN( meshName, materialName ) { + + if ( vertices.length > 0 ) { + + geometry.vertices = vertices; + + geometry.mergeVertices(); + geometry.computeFaceNormals(); + geometry.computeBoundingSphere(); + + object.add( mesh ); + + geometry = new THREE.Geometry(); + mesh = new THREE.Mesh( geometry, material ); + + } + + if ( meshName !== undefined ) mesh.name = meshName; + + if ( materialName !== undefined ) { + + material = new THREE.MeshLambertMaterial(); + material.name = materialName; + + mesh.material = material; + + } + + } + + var group = new THREE.Group(); + var object = group; + + var geometry = new THREE.Geometry(); + var material = new THREE.MeshLambertMaterial(); + var mesh = new THREE.Mesh( geometry, material ); + + var vertices = []; + var normals = []; + var uvs = []; + + function add_face( a, b, c, normals_inds ) { + + if ( normals_inds === undefined ) { + + geometry.faces.push( face3( + parseInt( a ) - (face_offset + 1), + parseInt( b ) - (face_offset + 1), + parseInt( c ) - (face_offset + 1) + ) ); + + } else { + + geometry.faces.push( face3( + parseInt( a ) - (face_offset + 1), + parseInt( b ) - (face_offset + 1), + parseInt( c ) - (face_offset + 1), + [ + normals[ parseInt( normals_inds[ 0 ] ) - 1 ].clone(), + normals[ parseInt( normals_inds[ 1 ] ) - 1 ].clone(), + normals[ parseInt( normals_inds[ 2 ] ) - 1 ].clone() + ] + ) ); + + } + + } + + function add_uvs( a, b, c ) { + + geometry.faceVertexUvs[ 0 ].push( [ + uvs[ parseInt( a ) - 1 ].clone(), + uvs[ parseInt( b ) - 1 ].clone(), + uvs[ parseInt( c ) - 1 ].clone() + ] ); + + } + + function handle_face_line(faces, uvs, normals_inds) { + + if ( faces[ 3 ] === undefined ) { + + add_face( faces[ 0 ], faces[ 1 ], faces[ 2 ], normals_inds ); + + if (!(uvs === undefined) && uvs.length > 0) { + add_uvs( uvs[ 0 ], uvs[ 1 ], uvs[ 2 ] ); + } + + } else { + + if (!(normals_inds === undefined) && normals_inds.length > 0) { + + add_face( faces[ 0 ], faces[ 1 ], faces[ 3 ], [ normals_inds[ 0 ], normals_inds[ 1 ], normals_inds[ 3 ] ]); + add_face( faces[ 1 ], faces[ 2 ], faces[ 3 ], [ normals_inds[ 1 ], normals_inds[ 2 ], normals_inds[ 3 ] ]); + + } else { + + add_face( faces[ 0 ], faces[ 1 ], faces[ 3 ]); + add_face( faces[ 1 ], faces[ 2 ], faces[ 3 ]); + + } + + if (!(uvs === undefined) && uvs.length > 0) { + + add_uvs( uvs[ 0 ], uvs[ 1 ], uvs[ 3 ] ); + add_uvs( uvs[ 1 ], uvs[ 2 ], uvs[ 3 ] ); + + } + + } + + } + + + // v float float float + + var vertex_pattern = /v( +[\d|\.|\+|\-|e]+)( +[\d|\.|\+|\-|e]+)( +[\d|\.|\+|\-|e]+)/; + + // vn float float float + + var normal_pattern = /vn( +[\d|\.|\+|\-|e]+)( +[\d|\.|\+|\-|e]+)( +[\d|\.|\+|\-|e]+)/; + + // vt float float + + var uv_pattern = /vt( +[\d|\.|\+|\-|e]+)( +[\d|\.|\+|\-|e]+)/; + + // f vertex vertex vertex ... + + var face_pattern1 = /f( +\d+)( +\d+)( +\d+)( +\d+)?/; + + // f vertex/uv vertex/uv vertex/uv ... + + var face_pattern2 = /f( +(\d+)\/(\d+))( +(\d+)\/(\d+))( +(\d+)\/(\d+))( +(\d+)\/(\d+))?/; + + // f vertex/uv/normal vertex/uv/normal vertex/uv/normal ... + + var face_pattern3 = /f( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))( +(\d+)\/(\d+)\/(\d+))?/; + + // f vertex//normal vertex//normal vertex//normal ... + + var face_pattern4 = /f( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))( +(\d+)\/\/(\d+))?/ + + // + + var lines = data.split( "\n" ); + + for ( var i = 0; i < lines.length; i ++ ) { + + var line = lines[ i ]; + line = line.trim(); + + var result; + + if ( line.length === 0 || line.charAt( 0 ) === '#' ) { + + continue; + + } else if ( ( result = vertex_pattern.exec( line ) ) !== null ) { + + // ["v 1.0 2.0 3.0", "1.0", "2.0", "3.0"] + + vertices.push( vector( + parseFloat( result[ 1 ] ), + parseFloat( result[ 2 ] ), + parseFloat( result[ 3 ] ) + ) ); + + } else if ( ( result = normal_pattern.exec( line ) ) !== null ) { + + // ["vn 1.0 2.0 3.0", "1.0", "2.0", "3.0"] + + normals.push( vector( + parseFloat( result[ 1 ] ), + parseFloat( result[ 2 ] ), + parseFloat( result[ 3 ] ) + ) ); + + } else if ( ( result = uv_pattern.exec( line ) ) !== null ) { + + // ["vt 0.1 0.2", "0.1", "0.2"] + + uvs.push( uv( + parseFloat( result[ 1 ] ), + parseFloat( result[ 2 ] ) + ) ); + + } else if ( ( result = face_pattern1.exec( line ) ) !== null ) { + + // ["f 1 2 3", "1", "2", "3", undefined] + + handle_face_line([ result[ 1 ], result[ 2 ], result[ 3 ], result[ 4 ] ]); + + } else if ( ( result = face_pattern2.exec( line ) ) !== null ) { + + // ["f 1/1 2/2 3/3", " 1/1", "1", "1", " 2/2", "2", "2", " 3/3", "3", "3", undefined, undefined, undefined] + + handle_face_line( + [ result[ 2 ], result[ 5 ], result[ 8 ], result[ 11 ] ], //faces + [ result[ 3 ], result[ 6 ], result[ 9 ], result[ 12 ] ] //uv + ); + + } else if ( ( result = face_pattern3.exec( line ) ) !== null ) { + + // ["f 1/1/1 2/2/2 3/3/3", " 1/1/1", "1", "1", "1", " 2/2/2", "2", "2", "2", " 3/3/3", "3", "3", "3", undefined, undefined, undefined, undefined] + + handle_face_line( + [ result[ 2 ], result[ 6 ], result[ 10 ], result[ 14 ] ], //faces + [ result[ 3 ], result[ 7 ], result[ 11 ], result[ 15 ] ], //uv + [ result[ 4 ], result[ 8 ], result[ 12 ], result[ 16 ] ] //normal + ); + + } else if ( ( result = face_pattern4.exec( line ) ) !== null ) { + + // ["f 1//1 2//2 3//3", " 1//1", "1", "1", " 2//2", "2", "2", " 3//3", "3", "3", undefined, undefined, undefined] + + handle_face_line( + [ result[ 2 ], result[ 5 ], result[ 8 ], result[ 11 ] ], //faces + [ ], //uv + [ result[ 3 ], result[ 6 ], result[ 9 ], result[ 12 ] ] //normal + ); + + } else if ( /^o /.test( line ) ) { + + // object + + meshN(); + face_offset = face_offset + vertices.length; + vertices = []; + object = new THREE.Object3D(); + object.name = line.substring( 2 ).trim(); + group.add( object ); + + } else if ( /^g /.test( line ) ) { + + // group + + meshN( line.substring( 2 ).trim(), undefined ); + + } else if ( /^usemtl /.test( line ) ) { + + // material + + meshN( undefined, line.substring( 7 ).trim() ); + + } else if ( /^mtllib /.test( line ) ) { + + // mtl file + + if ( mtllibCallback ) { + + var mtlfile = line.substring( 7 ); + mtlfile = mtlfile.trim(); + mtllibCallback( mtlfile ); + + } + + } else if ( /^s /.test( line ) ) { + + // Smooth shading + + } else { + + console.log( "THREE.OBJMTLLoader: Unhandled line " + line ); + + } + + } + + //Add last object + meshN(undefined, undefined); + + return group; + + } + +}; + +THREE.EventDispatcher.prototype.apply( THREE.OBJMTLLoader.prototype ); diff --git a/js/three/OrbitControls.js b/js/three/OrbitControls.js new file mode 100644 index 0000000..e150b58 --- /dev/null +++ b/js/three/OrbitControls.js @@ -0,0 +1,706 @@ +/** + * @author qiao / https://github.com/qiao + * @author mrdoob / http://mrdoob.com + * @author alteredq / http://alteredqualia.com/ + * @author WestLangley / http://github.com/WestLangley + * @author erich666 / http://erichaines.com + */ +/*global THREE, console */ + +// This set of controls performs orbiting, dollying (zooming), and panning. It maintains +// the "up" direction as +Y, unlike the TrackballControls. Touch on tablet and phones is +// supported. +// +// Orbit - left mouse / touch: one finger move +// Zoom - middle mouse, or mousewheel / touch: two finger spread or squish +// Pan - right mouse, or arrow keys / touch: three finter swipe + +THREE.OrbitControls = function ( object, domElement ) { + + this.object = object; + this.domElement = ( domElement !== undefined ) ? domElement : document; + + // API + + // Set to false to disable this control + this.enabled = true; + + // "target" sets the location of focus, where the control orbits around + // and where it pans with respect to. + this.target = new THREE.Vector3(); + + // center is old, deprecated; use "target" instead + this.center = this.target; + + // This option actually enables dollying in and out; left as "zoom" for + // backwards compatibility + this.noZoom = false; + this.zoomSpeed = 1.0; + + // Limits to how far you can dolly in and out ( PerspectiveCamera only ) + this.minDistance = 0; + this.maxDistance = Infinity; + + // Limits to how far you can zoom in and out ( OrthographicCamera only ) + this.minZoom = 0; + this.maxZoom = Infinity; + + // Set to true to disable this control + this.noRotate = false; + this.rotateSpeed = 1.0; + + // Set to true to disable this control + this.noPan = false; + this.keyPanSpeed = 7.0; // pixels moved per arrow key push + + // Set to true to automatically rotate around the target + this.autoRotate = false; + this.autoRotateSpeed = 2.0; // 30 seconds per round when fps is 60 + + // How far you can orbit vertically, upper and lower limits. + // Range is 0 to Math.PI radians. + this.minPolarAngle = 0; // radians + this.maxPolarAngle = Math.PI; // radians + + // How far you can orbit horizontally, upper and lower limits. + // If set, must be a sub-interval of the interval [ - Math.PI, Math.PI ]. + this.minAzimuthAngle = - Infinity; // radians + this.maxAzimuthAngle = Infinity; // radians + + // Set to true to disable use of the keys + this.noKeys = false; + + // The four arrow keys + this.keys = { LEFT: 37, UP: 38, RIGHT: 39, BOTTOM: 40 }; + + // Mouse buttons + this.mouseButtons = { ORBIT: THREE.MOUSE.LEFT, ZOOM: THREE.MOUSE.MIDDLE, PAN: THREE.MOUSE.RIGHT }; + + //////////// + // internals + + var scope = this; + + var EPS = 0.000001; + + var rotateStart = new THREE.Vector2(); + var rotateEnd = new THREE.Vector2(); + var rotateDelta = new THREE.Vector2(); + + var panStart = new THREE.Vector2(); + var panEnd = new THREE.Vector2(); + var panDelta = new THREE.Vector2(); + var panOffset = new THREE.Vector3(); + + var offset = new THREE.Vector3(); + + var dollyStart = new THREE.Vector2(); + var dollyEnd = new THREE.Vector2(); + var dollyDelta = new THREE.Vector2(); + + var theta; + var phi; + var phiDelta = 0; + var thetaDelta = 0; + var scale = 1; + var pan = new THREE.Vector3(); + + var lastPosition = new THREE.Vector3(); + var lastQuaternion = new THREE.Quaternion(); + + var STATE = { NONE : -1, ROTATE : 0, DOLLY : 1, PAN : 2, TOUCH_ROTATE : 3, TOUCH_DOLLY : 4, TOUCH_PAN : 5 }; + + var state = STATE.NONE; + + // for reset + + this.target0 = this.target.clone(); + this.position0 = this.object.position.clone(); + this.zoom0 = this.object.zoom; + + // so camera.up is the orbit axis + + var quat = new THREE.Quaternion().setFromUnitVectors( object.up, new THREE.Vector3( 0, 1, 0 ) ); + var quatInverse = quat.clone().inverse(); + + // events + + var changeEvent = { type: 'change' }; + var startEvent = { type: 'start' }; + var endEvent = { type: 'end' }; + + this.rotateLeft = function ( angle ) { + + if ( angle === undefined ) { + + angle = getAutoRotationAngle(); + + } + + thetaDelta -= angle; + + }; + + this.rotateUp = function ( angle ) { + + if ( angle === undefined ) { + + angle = getAutoRotationAngle(); + + } + + phiDelta -= angle; + + }; + + // pass in distance in world space to move left + this.panLeft = function ( distance ) { + + var te = this.object.matrix.elements; + + // get X column of matrix + panOffset.set( te[ 0 ], te[ 1 ], te[ 2 ] ); + panOffset.multiplyScalar( - distance ); + + pan.add( panOffset ); + + }; + + // pass in distance in world space to move up + this.panUp = function ( distance ) { + + var te = this.object.matrix.elements; + + // get Y column of matrix + panOffset.set( te[ 4 ], te[ 5 ], te[ 6 ] ); + panOffset.multiplyScalar( distance ); + + pan.add( panOffset ); + + }; + + // pass in x,y of change desired in pixel space, + // right and down are positive + this.pan = function ( deltaX, deltaY ) { + + var element = scope.domElement === document ? scope.domElement.body : scope.domElement; + + if ( scope.object instanceof THREE.PerspectiveCamera ) { + + // perspective + var position = scope.object.position; + var offset = position.clone().sub( scope.target ); + var targetDistance = offset.length(); + + // half of the fov is center to top of screen + targetDistance *= Math.tan( ( scope.object.fov / 2 ) * Math.PI / 180.0 ); + + // we actually don't use screenWidth, since perspective camera is fixed to screen height + scope.panLeft( 2 * deltaX * targetDistance / element.clientHeight ); + scope.panUp( 2 * deltaY * targetDistance / element.clientHeight ); + + } else if ( scope.object instanceof THREE.OrthographicCamera ) { + + // orthographic + scope.panLeft( deltaX * (scope.object.right - scope.object.left) / element.clientWidth ); + scope.panUp( deltaY * (scope.object.top - scope.object.bottom) / element.clientHeight ); + + } else { + + // camera neither orthographic or perspective + console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' ); + + } + + }; + + this.dollyIn = function ( dollyScale ) { + + if ( dollyScale === undefined ) { + + dollyScale = getZoomScale(); + + } + + if ( scope.object instanceof THREE.PerspectiveCamera ) { + + scale /= dollyScale; + + } else if ( scope.object instanceof THREE.OrthographicCamera ) { + + scope.object.zoom = Math.max( this.minZoom, Math.min( this.maxZoom, this.object.zoom * dollyScale ) ); + scope.object.updateProjectionMatrix(); + scope.dispatchEvent( changeEvent ); + + } else { + + console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' ); + + } + + }; + + this.dollyOut = function ( dollyScale ) { + + if ( dollyScale === undefined ) { + + dollyScale = getZoomScale(); + + } + + if ( scope.object instanceof THREE.PerspectiveCamera ) { + + scale *= dollyScale; + + } else if ( scope.object instanceof THREE.OrthographicCamera ) { + + scope.object.zoom = Math.max( this.minZoom, Math.min( this.maxZoom, this.object.zoom / dollyScale ) ); + scope.object.updateProjectionMatrix(); + scope.dispatchEvent( changeEvent ); + + } else { + + console.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' ); + + } + + }; + + this.update = function () { + + var position = this.object.position; + + offset.copy( position ).sub( this.target ); + + // rotate offset to "y-axis-is-up" space + offset.applyQuaternion( quat ); + + // angle from z-axis around y-axis + + theta = Math.atan2( offset.x, offset.z ); + + // angle from y-axis + + phi = Math.atan2( Math.sqrt( offset.x * offset.x + offset.z * offset.z ), offset.y ); + + if ( this.autoRotate && state === STATE.NONE ) { + + this.rotateLeft( getAutoRotationAngle() ); + + } + + theta += thetaDelta; + phi += phiDelta; + + // restrict theta to be between desired limits + theta = Math.max( this.minAzimuthAngle, Math.min( this.maxAzimuthAngle, theta ) ); + + // restrict phi to be between desired limits + phi = Math.max( this.minPolarAngle, Math.min( this.maxPolarAngle, phi ) ); + + // restrict phi to be betwee EPS and PI-EPS + phi = Math.max( EPS, Math.min( Math.PI - EPS, phi ) ); + + var radius = offset.length() * scale; + + // restrict radius to be between desired limits + radius = Math.max( this.minDistance, Math.min( this.maxDistance, radius ) ); + + // move target to panned location + this.target.add( pan ); + + offset.x = radius * Math.sin( phi ) * Math.sin( theta ); + offset.y = radius * Math.cos( phi ); + offset.z = radius * Math.sin( phi ) * Math.cos( theta ); + + // rotate offset back to "camera-up-vector-is-up" space + offset.applyQuaternion( quatInverse ); + + position.copy( this.target ).add( offset ); + + this.object.lookAt( this.target ); + + thetaDelta = 0; + phiDelta = 0; + scale = 1; + pan.set( 0, 0, 0 ); + + // update condition is: + // min(camera displacement, camera rotation in radians)^2 > EPS + // using small-angle approximation cos(x/2) = 1 - x^2 / 8 + + if ( lastPosition.distanceToSquared( this.object.position ) > EPS + || 8 * (1 - lastQuaternion.dot(this.object.quaternion)) > EPS ) { + + this.dispatchEvent( changeEvent ); + + lastPosition.copy( this.object.position ); + lastQuaternion.copy (this.object.quaternion ); + + } + + }; + + + this.reset = function () { + + state = STATE.NONE; + + this.target.copy( this.target0 ); + this.object.position.copy( this.position0 ); + this.object.zoom = this.zoom0; + + this.object.updateProjectionMatrix(); + this.dispatchEvent( changeEvent ); + + this.update(); + + }; + + this.getPolarAngle = function () { + + return phi; + + }; + + this.getAzimuthalAngle = function () { + + return theta + + }; + + function getAutoRotationAngle() { + + return 2 * Math.PI / 60 / 60 * scope.autoRotateSpeed; + + } + + function getZoomScale() { + + return Math.pow( 0.95, scope.zoomSpeed ); + + } + + function onMouseDown( event ) { + + if ( scope.enabled === false ) return; + event.preventDefault(); + + if ( event.button === scope.mouseButtons.ORBIT ) { + if ( scope.noRotate === true ) return; + + state = STATE.ROTATE; + + rotateStart.set( event.clientX, event.clientY ); + + } else if ( event.button === scope.mouseButtons.ZOOM ) { + if ( scope.noZoom === true ) return; + + state = STATE.DOLLY; + + dollyStart.set( event.clientX, event.clientY ); + + } else if ( event.button === scope.mouseButtons.PAN ) { + if ( scope.noPan === true ) return; + + state = STATE.PAN; + + panStart.set( event.clientX, event.clientY ); + + } + + if ( state !== STATE.NONE ) { + document.addEventListener( 'mousemove', onMouseMove, false ); + document.addEventListener( 'mouseup', onMouseUp, false ); + scope.dispatchEvent( startEvent ); + } + + } + + function onMouseMove( event ) { + + if ( scope.enabled === false ) return; + + event.preventDefault(); + + var element = scope.domElement === document ? scope.domElement.body : scope.domElement; + + if ( state === STATE.ROTATE ) { + + if ( scope.noRotate === true ) return; + + rotateEnd.set( event.clientX, event.clientY ); + rotateDelta.subVectors( rotateEnd, rotateStart ); + + // rotating across whole screen goes 360 degrees around + scope.rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientWidth * scope.rotateSpeed ); + + // rotating up and down along whole screen attempts to go 360, but limited to 180 + scope.rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight * scope.rotateSpeed ); + + rotateStart.copy( rotateEnd ); + + } else if ( state === STATE.DOLLY ) { + + if ( scope.noZoom === true ) return; + + dollyEnd.set( event.clientX, event.clientY ); + dollyDelta.subVectors( dollyEnd, dollyStart ); + + if ( dollyDelta.y > 0 ) { + + scope.dollyIn(); + + } else if ( dollyDelta.y < 0 ) { + + scope.dollyOut(); + + } + + dollyStart.copy( dollyEnd ); + + } else if ( state === STATE.PAN ) { + + if ( scope.noPan === true ) return; + + panEnd.set( event.clientX, event.clientY ); + panDelta.subVectors( panEnd, panStart ); + + scope.pan( panDelta.x, panDelta.y ); + + panStart.copy( panEnd ); + + } + + if ( state !== STATE.NONE ) scope.update(); + + } + + function onMouseUp( /* event */ ) { + + if ( scope.enabled === false ) return; + + document.removeEventListener( 'mousemove', onMouseMove, false ); + document.removeEventListener( 'mouseup', onMouseUp, false ); + scope.dispatchEvent( endEvent ); + state = STATE.NONE; + + } + + function onMouseWheel( event ) { + + if ( scope.enabled === false || scope.noZoom === true || state !== STATE.NONE ) return; + + event.preventDefault(); + event.stopPropagation(); + + var delta = 0; + + if ( event.wheelDelta !== undefined ) { // WebKit / Opera / Explorer 9 + + delta = event.wheelDelta; + + } else if ( event.detail !== undefined ) { // Firefox + + delta = - event.detail; + + } + + if ( delta > 0 ) { + + scope.dollyOut(); + + } else if ( delta < 0 ) { + + scope.dollyIn(); + + } + + scope.update(); + scope.dispatchEvent( startEvent ); + scope.dispatchEvent( endEvent ); + + } + + function onKeyDown( event ) { + + if ( scope.enabled === false || scope.noKeys === true || scope.noPan === true ) return; + + switch ( event.keyCode ) { + + case scope.keys.UP: + scope.pan( 0, scope.keyPanSpeed ); + scope.update(); + break; + + case scope.keys.BOTTOM: + scope.pan( 0, - scope.keyPanSpeed ); + scope.update(); + break; + + case scope.keys.LEFT: + scope.pan( scope.keyPanSpeed, 0 ); + scope.update(); + break; + + case scope.keys.RIGHT: + scope.pan( - scope.keyPanSpeed, 0 ); + scope.update(); + break; + + } + + } + + function touchstart( event ) { + + if ( scope.enabled === false ) return; + + switch ( event.touches.length ) { + + case 1: // one-fingered touch: rotate + + if ( scope.noRotate === true ) return; + + state = STATE.TOUCH_ROTATE; + + rotateStart.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ); + break; + + case 2: // two-fingered touch: dolly + + if ( scope.noZoom === true ) return; + + state = STATE.TOUCH_DOLLY; + + var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX; + var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY; + var distance = Math.sqrt( dx * dx + dy * dy ); + dollyStart.set( 0, distance ); + break; + + case 3: // three-fingered touch: pan + + if ( scope.noPan === true ) return; + + state = STATE.TOUCH_PAN; + + panStart.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ); + break; + + default: + + state = STATE.NONE; + + } + + if ( state !== STATE.NONE ) scope.dispatchEvent( startEvent ); + + } + + function touchmove( event ) { + + if ( scope.enabled === false ) return; + + event.preventDefault(); + event.stopPropagation(); + + var element = scope.domElement === document ? scope.domElement.body : scope.domElement; + + switch ( event.touches.length ) { + + case 1: // one-fingered touch: rotate + + if ( scope.noRotate === true ) return; + if ( state !== STATE.TOUCH_ROTATE ) return; + + rotateEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ); + rotateDelta.subVectors( rotateEnd, rotateStart ); + + // rotating across whole screen goes 360 degrees around + scope.rotateLeft( 2 * Math.PI * rotateDelta.x / element.clientWidth * scope.rotateSpeed ); + // rotating up and down along whole screen attempts to go 360, but limited to 180 + scope.rotateUp( 2 * Math.PI * rotateDelta.y / element.clientHeight * scope.rotateSpeed ); + + rotateStart.copy( rotateEnd ); + + scope.update(); + break; + + case 2: // two-fingered touch: dolly + + if ( scope.noZoom === true ) return; + if ( state !== STATE.TOUCH_DOLLY ) return; + + var dx = event.touches[ 0 ].pageX - event.touches[ 1 ].pageX; + var dy = event.touches[ 0 ].pageY - event.touches[ 1 ].pageY; + var distance = Math.sqrt( dx * dx + dy * dy ); + + dollyEnd.set( 0, distance ); + dollyDelta.subVectors( dollyEnd, dollyStart ); + + if ( dollyDelta.y > 0 ) { + + scope.dollyOut(); + + } else if ( dollyDelta.y < 0 ) { + + scope.dollyIn(); + + } + + dollyStart.copy( dollyEnd ); + + scope.update(); + break; + + case 3: // three-fingered touch: pan + + if ( scope.noPan === true ) return; + if ( state !== STATE.TOUCH_PAN ) return; + + panEnd.set( event.touches[ 0 ].pageX, event.touches[ 0 ].pageY ); + panDelta.subVectors( panEnd, panStart ); + + scope.pan( panDelta.x, panDelta.y ); + + panStart.copy( panEnd ); + + scope.update(); + break; + + default: + + state = STATE.NONE; + + } + + } + + function touchend( /* event */ ) { + + if ( scope.enabled === false ) return; + + scope.dispatchEvent( endEvent ); + state = STATE.NONE; + + } + + this.domElement.addEventListener( 'contextmenu', function ( event ) { event.preventDefault(); }, false ); + this.domElement.addEventListener( 'mousedown', onMouseDown, false ); + this.domElement.addEventListener( 'mousewheel', onMouseWheel, false ); + this.domElement.addEventListener( 'DOMMouseScroll', onMouseWheel, false ); // firefox + + this.domElement.addEventListener( 'touchstart', touchstart, false ); + this.domElement.addEventListener( 'touchend', touchend, false ); + this.domElement.addEventListener( 'touchmove', touchmove, false ); + + window.addEventListener( 'keydown', onKeyDown, false ); + + // force an update at start + this.update(); + +}; + +THREE.OrbitControls.prototype = Object.create( THREE.EventDispatcher.prototype ); +THREE.OrbitControls.prototype.constructor = THREE.OrbitControls; diff --git a/js/three/PointerLockControls.js b/js/three/PointerLockControls.js new file mode 100644 index 0000000..4b9f299 --- /dev/null +++ b/js/three/PointerLockControls.js @@ -0,0 +1,63 @@ +/** + * @author mrdoob / http://mrdoob.com/ + */ + +THREE.PointerLockControls = function ( camera ) { + + var scope = this; + + camera.rotation.set( 0, 0, 0 ); + + var pitchObject = new THREE.Object3D(); + pitchObject.add( camera ); + + var yawObject = new THREE.Object3D(); + yawObject.position.y = 10; + yawObject.add( pitchObject ); + + var PI_2 = Math.PI / 2; + + var onMouseMove = function ( event ) { + + if ( scope.enabled === false ) return; + + var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0; + var movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0; + + yawObject.rotation.y -= movementX * 0.002; + pitchObject.rotation.x -= movementY * 0.002; + + pitchObject.rotation.x = Math.max( - PI_2, Math.min( PI_2, pitchObject.rotation.x ) ); + + }; + + document.addEventListener( 'mousemove', onMouseMove, false ); + + this.enabled = false; + + this.getObject = function () { + + return yawObject; + + }; + + this.getDirection = function() { + + // assumes the camera itself is not rotated + + var direction = new THREE.Vector3( 0, 0, -1 ); + var rotation = new THREE.Euler( 0, 0, 0, "YXZ" ); + + return function( v ) { + + rotation.set( pitchObject.rotation.x, yawObject.rotation.y, 0 ); + + v.copy( direction ).applyEuler( rotation ); + + return v; + + } + + }(); + +}; diff --git a/js/three/three.min.js b/js/three/three.min.js new file mode 100644 index 0000000..85e5596 --- /dev/null +++ b/js/three/three.min.js @@ -0,0 +1,835 @@ +// threejs.org/license +'use strict';var THREE={REVISION:"71"};"object"===typeof module&&(module.exports=THREE);void 0===Math.sign&&(Math.sign=function(a){return 0>a?-1:0>16&255)/255;this.g=(a>>8&255)/255;this.b=(a&255)/255;return this},setRGB:function(a,b,c){this.r=a;this.g=b;this.b=c;return this},setHSL:function(a,b,c){if(0===b)this.r=this.g=this.b=c;else{var d=function(a,b,c){0>c&&(c+=1);1c?b:c<2/3?a+6*(b-a)*(2/3-c):a};b=.5>=c?c*(1+b):c+b-c*b;c=2*c-b;this.r=d(c,b,a+1/3);this.g=d(c,b,a);this.b=d(c,b,a-1/3)}return this},setStyle:function(a){if(/^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.test(a))return a=/^rgb\((\d+), ?(\d+), ?(\d+)\)$/i.exec(a),this.r=Math.min(255,parseInt(a[1],10))/255,this.g=Math.min(255,parseInt(a[2],10))/255,this.b=Math.min(255,parseInt(a[3],10))/255,this;if(/^rgb\((\d+)\%, ?(\d+)\%, ?(\d+)\%\)$/i.test(a))return a=/^rgb\((\d+)\%, ?(\d+)\%, ?(\d+)\%\)$/i.exec(a),this.r= +Math.min(100,parseInt(a[1],10))/100,this.g=Math.min(100,parseInt(a[2],10))/100,this.b=Math.min(100,parseInt(a[3],10))/100,this;if(/^\#([0-9a-f]{6})$/i.test(a))return a=/^\#([0-9a-f]{6})$/i.exec(a),this.setHex(parseInt(a[1],16)),this;if(/^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.test(a))return a=/^\#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(a),this.setHex(parseInt(a[1]+a[1]+a[2]+a[2]+a[3]+a[3],16)),this;if(/^(\w+)$/i.test(a))return this.setHex(THREE.ColorKeywords[a]),this},copy:function(a){this.r=a.r;this.g= +a.g;this.b=a.b;return this},copyGammaToLinear:function(a,b){void 0===b&&(b=2);this.r=Math.pow(a.r,b);this.g=Math.pow(a.g,b);this.b=Math.pow(a.b,b);return this},copyLinearToGamma:function(a,b){void 0===b&&(b=2);var c=0=h?k/(e+f):k/(2-e-f);switch(e){case b:g=(c-d)/k+(cf&&c>b?(c=2*Math.sqrt(1+c-f-b),this._w=(k-g)/c,this._x=.25*c,this._y=(a+e)/c,this._z=(d+h)/c):f>b?(c=2*Math.sqrt(1+f-c-b),this._w=(d-h)/c,this._x=(a+e)/c,this._y= +.25*c,this._z=(g+k)/c):(c=2*Math.sqrt(1+b-c-f),this._w=(e-a)/c,this._x=(d+h)/c,this._y=(g+k)/c,this._z=.25*c);this.onChangeCallback();return this},setFromUnitVectors:function(){var a,b;return function(c,d){void 0===a&&(a=new THREE.Vector3);b=c.dot(d)+1;1E-6>b?(b=0,Math.abs(c.x)>Math.abs(c.z)?a.set(-c.y,c.x,0):a.set(0,-c.z,c.y)):a.crossVectors(c,d);this._x=a.x;this._y=a.y;this._z=a.z;this._w=b;this.normalize();return this}}(),inverse:function(){this.conjugate().normalize();return this},conjugate:function(){this._x*= +-1;this._y*=-1;this._z*=-1;this.onChangeCallback();return this},dot:function(a){return this._x*a._x+this._y*a._y+this._z*a._z+this._w*a._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var a=this.length();0===a?(this._z=this._y=this._x=0,this._w=1):(a=1/a,this._x*=a,this._y*=a,this._z*=a,this._w*=a);this.onChangeCallback();return this}, +multiply:function(a,b){return void 0!==b?(THREE.warn("THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead."),this.multiplyQuaternions(a,b)):this.multiplyQuaternions(this,a)},multiplyQuaternions:function(a,b){var c=a._x,d=a._y,e=a._z,f=a._w,g=b._x,h=b._y,k=b._z,l=b._w;this._x=c*l+f*g+d*k-e*h;this._y=d*l+f*h+e*g-c*k;this._z=e*l+f*k+c*h-d*g;this._w=f*l-c*g-d*h-e*k;this.onChangeCallback();return this},multiplyVector3:function(a){THREE.warn("THREE.Quaternion: .multiplyVector3() has been removed. Use is now vector.applyQuaternion( quaternion ) instead."); +return a.applyQuaternion(this)},slerp:function(a,b){if(0===b)return this;if(1===b)return this.copy(a);var c=this._x,d=this._y,e=this._z,f=this._w,g=f*a._w+c*a._x+d*a._y+e*a._z;0>g?(this._w=-a._w,this._x=-a._x,this._y=-a._y,this._z=-a._z,g=-g):this.copy(a);if(1<=g)return this._w=f,this._x=c,this._y=d,this._z=e,this;var h=Math.acos(g),k=Math.sqrt(1-g*g);if(.001>Math.abs(k))return this._w=.5*(f+this._w),this._x=.5*(c+this._x),this._y=.5*(d+this._y),this._z=.5*(e+this._z),this;g=Math.sin((1-b)*h)/k;h= +Math.sin(b*h)/k;this._w=f*g+this._w*h;this._x=c*g+this._x*h;this._y=d*g+this._y*h;this._z=e*g+this._z*h;this.onChangeCallback();return this},equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._w===this._w},fromArray:function(a,b){void 0===b&&(b=0);this._x=a[b];this._y=a[b+1];this._z=a[b+2];this._w=a[b+3];this.onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._w;return a},onChange:function(a){this.onChangeCallback= +a;return this},onChangeCallback:function(){},clone:function(){return new THREE.Quaternion(this._x,this._y,this._z,this._w)}};THREE.Quaternion.slerp=function(a,b,c,d){return c.copy(a).slerp(b,d)};THREE.Vector2=function(a,b){this.x=a||0;this.y=b||0}; +THREE.Vector2.prototype={constructor:THREE.Vector2,set:function(a,b){this.x=a;this.y=b;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;default:throw Error("index is out of range: "+a);}},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;default:throw Error("index is out of range: "+a);}},copy:function(a){this.x=a.x;this.y=a.y;return this},add:function(a, +b){if(void 0!==b)return THREE.warn("THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;return this},addScalar:function(a){this.x+=a;this.y+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;return this},sub:function(a,b){if(void 0!==b)return THREE.warn("THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;return this}, +subScalar:function(a){this.x-=a;this.y-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;return this},multiply:function(a){this.x*=a.x;this.y*=a.y;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;return this},divide:function(a){this.x/=a.x;this.y/=a.y;return this},divideScalar:function(a){0!==a?(a=1/a,this.x*=a,this.y*=a):this.y=this.x=0;return this},min:function(a){this.x>a.x&&(this.x=a.x);this.y>a.y&&(this.y=a.y);return this},max:function(a){this.xb.x&&(this.x=b.x);this.yb.y&&(this.y=b.y);return this},clampScalar:function(){var a,b;return function(c,d){void 0===a&&(a=new THREE.Vector2,b=new THREE.Vector2);a.set(c,c);b.set(d,d);return this.clamp(a,b)}}(),floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);return this},round:function(){this.x= +Math.round(this.x);this.y=Math.round(this.y);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y);return this},negate:function(){this.x=-this.x;this.y=-this.y;return this},dot:function(a){return this.x*a.x+this.y*a.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},normalize:function(){return this.divideScalar(this.length())},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))}, +distanceToSquared:function(a){var b=this.x-a.x;a=this.y-a.y;return b*b+a*a},setLength:function(a){var b=this.length();0!==b&&a!==b&&this.multiplyScalar(a/b);return this},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;return this},lerpVectors:function(a,b,c){this.subVectors(b,a).multiplyScalar(c).add(a);return this},equals:function(a){return a.x===this.x&&a.y===this.y},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];return this},toArray:function(a,b){void 0=== +a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;return a},fromAttribute:function(a,b,c){void 0===c&&(c=0);b=b*a.itemSize+c;this.x=a.array[b];this.y=a.array[b+1];return this},clone:function(){return new THREE.Vector2(this.x,this.y)}};THREE.Vector3=function(a,b,c){this.x=a||0;this.y=b||0;this.z=c||0}; +THREE.Vector3.prototype={constructor:THREE.Vector3,set:function(a,b,c){this.x=a;this.y=b;this.z=c;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;default:throw Error("index is out of range: "+a);}},getComponent:function(a){switch(a){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw Error("index is out of range: "+ +a);}},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;return this},add:function(a,b){if(void 0!==b)return THREE.warn("THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;return this},addVectors:function(a,b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;return this},sub:function(a,b){if(void 0!==b)return THREE.warn("THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."), +this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;return this},multiply:function(a,b){if(void 0!==b)return THREE.warn("THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead."),this.multiplyVectors(a,b);this.x*=a.x;this.y*=a.y;this.z*=a.z;return this},multiplyScalar:function(a){this.x*=a;this.y*=a;this.z*= +a;return this},multiplyVectors:function(a,b){this.x=a.x*b.x;this.y=a.y*b.y;this.z=a.z*b.z;return this},applyEuler:function(){var a;return function(b){!1===b instanceof THREE.Euler&&THREE.error("THREE.Vector3: .applyEuler() now expects a Euler rotation rather than a Vector3 and order.");void 0===a&&(a=new THREE.Quaternion);this.applyQuaternion(a.setFromEuler(b));return this}}(),applyAxisAngle:function(){var a;return function(b,c){void 0===a&&(a=new THREE.Quaternion);this.applyQuaternion(a.setFromAxisAngle(b, +c));return this}}(),applyMatrix3:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[3]*c+a[6]*d;this.y=a[1]*b+a[4]*c+a[7]*d;this.z=a[2]*b+a[5]*c+a[8]*d;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12];this.y=a[1]*b+a[5]*c+a[9]*d+a[13];this.z=a[2]*b+a[6]*c+a[10]*d+a[14];return this},applyProjection:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;var e=1/(a[3]*b+a[7]*c+a[11]*d+a[15]);this.x=(a[0]*b+a[4]* +c+a[8]*d+a[12])*e;this.y=(a[1]*b+a[5]*c+a[9]*d+a[13])*e;this.z=(a[2]*b+a[6]*c+a[10]*d+a[14])*e;return this},applyQuaternion:function(a){var b=this.x,c=this.y,d=this.z,e=a.x,f=a.y,g=a.z;a=a.w;var h=a*b+f*d-g*c,k=a*c+g*b-e*d,l=a*d+e*c-f*b,b=-e*b-f*c-g*d;this.x=h*a+b*-e+k*-g-l*-f;this.y=k*a+b*-f+l*-e-h*-g;this.z=l*a+b*-g+h*-f-k*-e;return this},project:function(){var a;return function(b){void 0===a&&(a=new THREE.Matrix4);a.multiplyMatrices(b.projectionMatrix,a.getInverse(b.matrixWorld));return this.applyProjection(a)}}(), +unproject:function(){var a;return function(b){void 0===a&&(a=new THREE.Matrix4);a.multiplyMatrices(b.matrixWorld,a.getInverse(b.projectionMatrix));return this.applyProjection(a)}}(),transformDirection:function(a){var b=this.x,c=this.y,d=this.z;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d;this.y=a[1]*b+a[5]*c+a[9]*d;this.z=a[2]*b+a[6]*c+a[10]*d;this.normalize();return this},divide:function(a){this.x/=a.x;this.y/=a.y;this.z/=a.z;return this},divideScalar:function(a){0!==a?(a=1/a,this.x*=a,this.y*=a,this.z*= +a):this.z=this.y=this.x=0;return this},min:function(a){this.x>a.x&&(this.x=a.x);this.y>a.y&&(this.y=a.y);this.z>a.z&&(this.z=a.z);return this},max:function(a){this.xb.x&&(this.x=b.x);this.yb.y&&(this.y=b.y);this.zb.z&&(this.z=b.z);return this},clampScalar:function(){var a,b;return function(c,d){void 0===a&&(a=new THREE.Vector3, +b=new THREE.Vector3);a.set(c,c,c);b.set(d,d,d);return this.clamp(a,b)}}(),floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y): +Math.floor(this.y);this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length())}, +setLength:function(a){var b=this.length();0!==b&&a!==b&&this.multiplyScalar(a/b);return this},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;return this},lerpVectors:function(a,b,c){this.subVectors(b,a).multiplyScalar(c).add(a);return this},cross:function(a,b){if(void 0!==b)return THREE.warn("THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead."),this.crossVectors(a,b);var c=this.x,d=this.y,e=this.z;this.x=d*a.z-e*a.y;this.y= +e*a.x-c*a.z;this.z=c*a.y-d*a.x;return this},crossVectors:function(a,b){var c=a.x,d=a.y,e=a.z,f=b.x,g=b.y,h=b.z;this.x=d*h-e*g;this.y=e*f-c*h;this.z=c*g-d*f;return this},projectOnVector:function(){var a,b;return function(c){void 0===a&&(a=new THREE.Vector3);a.copy(c).normalize();b=this.dot(a);return this.copy(a).multiplyScalar(b)}}(),projectOnPlane:function(){var a;return function(b){void 0===a&&(a=new THREE.Vector3);a.copy(this).projectOnVector(b);return this.sub(a)}}(),reflect:function(){var a;return function(b){void 0=== +a&&(a=new THREE.Vector3);return this.sub(a.copy(b).multiplyScalar(2*this.dot(b)))}}(),angleTo:function(a){a=this.dot(a)/(this.length()*a.length());return Math.acos(THREE.Math.clamp(a,-1,1))},distanceTo:function(a){return Math.sqrt(this.distanceToSquared(a))},distanceToSquared:function(a){var b=this.x-a.x,c=this.y-a.y;a=this.z-a.z;return b*b+c*c+a*a},setEulerFromRotationMatrix:function(a,b){THREE.error("THREE.Vector3: .setEulerFromRotationMatrix() has been removed. Use Euler.setFromRotationMatrix() instead.")}, +setEulerFromQuaternion:function(a,b){THREE.error("THREE.Vector3: .setEulerFromQuaternion() has been removed. Use Euler.setFromQuaternion() instead.")},getPositionFromMatrix:function(a){THREE.warn("THREE.Vector3: .getPositionFromMatrix() has been renamed to .setFromMatrixPosition().");return this.setFromMatrixPosition(a)},getScaleFromMatrix:function(a){THREE.warn("THREE.Vector3: .getScaleFromMatrix() has been renamed to .setFromMatrixScale().");return this.setFromMatrixScale(a)},getColumnFromMatrix:function(a, +b){THREE.warn("THREE.Vector3: .getColumnFromMatrix() has been renamed to .setFromMatrixColumn().");return this.setFromMatrixColumn(a,b)},setFromMatrixPosition:function(a){this.x=a.elements[12];this.y=a.elements[13];this.z=a.elements[14];return this},setFromMatrixScale:function(a){var b=this.set(a.elements[0],a.elements[1],a.elements[2]).length(),c=this.set(a.elements[4],a.elements[5],a.elements[6]).length();a=this.set(a.elements[8],a.elements[9],a.elements[10]).length();this.x=b;this.y=c;this.z=a; +return this},setFromMatrixColumn:function(a,b){var c=4*a,d=b.elements;this.x=d[c];this.y=d[c+1];this.z=d[c+2];return this},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z},fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;return a},fromAttribute:function(a,b,c){void 0===c&&(c=0);b=b*a.itemSize+c;this.x=a.array[b];this.y=a.array[b+1];this.z= +a.array[b+2];return this},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)}};THREE.Vector4=function(a,b,c,d){this.x=a||0;this.y=b||0;this.z=c||0;this.w=void 0!==d?d:1}; +THREE.Vector4.prototype={constructor:THREE.Vector4,set:function(a,b,c,d){this.x=a;this.y=b;this.z=c;this.w=d;return this},setX:function(a){this.x=a;return this},setY:function(a){this.y=a;return this},setZ:function(a){this.z=a;return this},setW:function(a){this.w=a;return this},setComponent:function(a,b){switch(a){case 0:this.x=b;break;case 1:this.y=b;break;case 2:this.z=b;break;case 3:this.w=b;break;default:throw Error("index is out of range: "+a);}},getComponent:function(a){switch(a){case 0:return this.x; +case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw Error("index is out of range: "+a);}},copy:function(a){this.x=a.x;this.y=a.y;this.z=a.z;this.w=void 0!==a.w?a.w:1;return this},add:function(a,b){if(void 0!==b)return THREE.warn("THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead."),this.addVectors(a,b);this.x+=a.x;this.y+=a.y;this.z+=a.z;this.w+=a.w;return this},addScalar:function(a){this.x+=a;this.y+=a;this.z+=a;this.w+=a;return this},addVectors:function(a, +b){this.x=a.x+b.x;this.y=a.y+b.y;this.z=a.z+b.z;this.w=a.w+b.w;return this},sub:function(a,b){if(void 0!==b)return THREE.warn("THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead."),this.subVectors(a,b);this.x-=a.x;this.y-=a.y;this.z-=a.z;this.w-=a.w;return this},subScalar:function(a){this.x-=a;this.y-=a;this.z-=a;this.w-=a;return this},subVectors:function(a,b){this.x=a.x-b.x;this.y=a.y-b.y;this.z=a.z-b.z;this.w=a.w-b.w;return this},multiplyScalar:function(a){this.x*= +a;this.y*=a;this.z*=a;this.w*=a;return this},applyMatrix4:function(a){var b=this.x,c=this.y,d=this.z,e=this.w;a=a.elements;this.x=a[0]*b+a[4]*c+a[8]*d+a[12]*e;this.y=a[1]*b+a[5]*c+a[9]*d+a[13]*e;this.z=a[2]*b+a[6]*c+a[10]*d+a[14]*e;this.w=a[3]*b+a[7]*c+a[11]*d+a[15]*e;return this},divideScalar:function(a){0!==a?(a=1/a,this.x*=a,this.y*=a,this.z*=a,this.w*=a):(this.z=this.y=this.x=0,this.w=1);return this},setAxisAngleFromQuaternion:function(a){this.w=2*Math.acos(a.w);var b=Math.sqrt(1-a.w*a.w);1E-4> +b?(this.x=1,this.z=this.y=0):(this.x=a.x/b,this.y=a.y/b,this.z=a.z/b);return this},setAxisAngleFromRotationMatrix:function(a){var b,c,d;a=a.elements;var e=a[0];d=a[4];var f=a[8],g=a[1],h=a[5],k=a[9];c=a[2];b=a[6];var l=a[10];if(.01>Math.abs(d-g)&&.01>Math.abs(f-c)&&.01>Math.abs(k-b)){if(.1>Math.abs(d+g)&&.1>Math.abs(f+c)&&.1>Math.abs(k+b)&&.1>Math.abs(e+h+l-3))return this.set(1,0,0,0),this;a=Math.PI;e=(e+1)/2;h=(h+1)/2;l=(l+1)/2;d=(d+g)/4;f=(f+c)/4;k=(k+b)/4;e>h&&e>l?.01>e?(b=0,d=c=.707106781):(b= +Math.sqrt(e),c=d/b,d=f/b):h>l?.01>h?(b=.707106781,c=0,d=.707106781):(c=Math.sqrt(h),b=d/c,d=k/c):.01>l?(c=b=.707106781,d=0):(d=Math.sqrt(l),b=f/d,c=k/d);this.set(b,c,d,a);return this}a=Math.sqrt((b-k)*(b-k)+(f-c)*(f-c)+(g-d)*(g-d));.001>Math.abs(a)&&(a=1);this.x=(b-k)/a;this.y=(f-c)/a;this.z=(g-d)/a;this.w=Math.acos((e+h+l-1)/2);return this},min:function(a){this.x>a.x&&(this.x=a.x);this.y>a.y&&(this.y=a.y);this.z>a.z&&(this.z=a.z);this.w>a.w&&(this.w=a.w);return this},max:function(a){this.xb.x&&(this.x=b.x);this.yb.y&&(this.y=b.y);this.zb.z&&(this.z=b.z);this.wb.w&&(this.w=b.w);return this},clampScalar:function(){var a,b;return function(c,d){void 0===a&&(a=new THREE.Vector4,b=new THREE.Vector4);a.set(c,c,c,c);b.set(d,d,d,d);return this.clamp(a,b)}}(),floor:function(){this.x= +Math.floor(this.x);this.y=Math.floor(this.y);this.z=Math.floor(this.z);this.w=Math.floor(this.w);return this},ceil:function(){this.x=Math.ceil(this.x);this.y=Math.ceil(this.y);this.z=Math.ceil(this.z);this.w=Math.ceil(this.w);return this},round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);this.z=Math.round(this.z);this.w=Math.round(this.w);return this},roundToZero:function(){this.x=0>this.x?Math.ceil(this.x):Math.floor(this.x);this.y=0>this.y?Math.ceil(this.y):Math.floor(this.y); +this.z=0>this.z?Math.ceil(this.z):Math.floor(this.z);this.w=0>this.w?Math.ceil(this.w):Math.floor(this.w);return this},negate:function(){this.x=-this.x;this.y=-this.y;this.z=-this.z;this.w=-this.w;return this},dot:function(a){return this.x*a.x+this.y*a.y+this.z*a.z+this.w*a.w},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},lengthManhattan:function(){return Math.abs(this.x)+ +Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)},normalize:function(){return this.divideScalar(this.length())},setLength:function(a){var b=this.length();0!==b&&a!==b&&this.multiplyScalar(a/b);return this},lerp:function(a,b){this.x+=(a.x-this.x)*b;this.y+=(a.y-this.y)*b;this.z+=(a.z-this.z)*b;this.w+=(a.w-this.w)*b;return this},lerpVectors:function(a,b,c){this.subVectors(b,a).multiplyScalar(c).add(a);return this},equals:function(a){return a.x===this.x&&a.y===this.y&&a.z===this.z&&a.w===this.w}, +fromArray:function(a,b){void 0===b&&(b=0);this.x=a[b];this.y=a[b+1];this.z=a[b+2];this.w=a[b+3];return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this.x;a[b+1]=this.y;a[b+2]=this.z;a[b+3]=this.w;return a},fromAttribute:function(a,b,c){void 0===c&&(c=0);b=b*a.itemSize+c;this.x=a.array[b];this.y=a.array[b+1];this.z=a.array[b+2];this.w=a.array[b+3];return this},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)}}; +THREE.Euler=function(a,b,c,d){this._x=a||0;this._y=b||0;this._z=c||0;this._order=d||THREE.Euler.DefaultOrder};THREE.Euler.RotationOrders="XYZ YZX ZXY XZY YXZ ZYX".split(" ");THREE.Euler.DefaultOrder="XYZ"; +THREE.Euler.prototype={constructor:THREE.Euler,_x:0,_y:0,_z:0,_order:THREE.Euler.DefaultOrder,get x(){return this._x},set x(a){this._x=a;this.onChangeCallback()},get y(){return this._y},set y(a){this._y=a;this.onChangeCallback()},get z(){return this._z},set z(a){this._z=a;this.onChangeCallback()},get order(){return this._order},set order(a){this._order=a;this.onChangeCallback()},set:function(a,b,c,d){this._x=a;this._y=b;this._z=c;this._order=d||this._order;this.onChangeCallback();return this},copy:function(a){this._x= +a._x;this._y=a._y;this._z=a._z;this._order=a._order;this.onChangeCallback();return this},setFromRotationMatrix:function(a,b,c){var d=THREE.Math.clamp,e=a.elements;a=e[0];var f=e[4],g=e[8],h=e[1],k=e[5],l=e[9],p=e[2],q=e[6],e=e[10];b=b||this._order;"XYZ"===b?(this._y=Math.asin(d(g,-1,1)),.99999>Math.abs(g)?(this._x=Math.atan2(-l,e),this._z=Math.atan2(-f,a)):(this._x=Math.atan2(q,k),this._z=0)):"YXZ"===b?(this._x=Math.asin(-d(l,-1,1)),.99999>Math.abs(l)?(this._y=Math.atan2(g,e),this._z=Math.atan2(h, +k)):(this._y=Math.atan2(-p,a),this._z=0)):"ZXY"===b?(this._x=Math.asin(d(q,-1,1)),.99999>Math.abs(q)?(this._y=Math.atan2(-p,e),this._z=Math.atan2(-f,k)):(this._y=0,this._z=Math.atan2(h,a))):"ZYX"===b?(this._y=Math.asin(-d(p,-1,1)),.99999>Math.abs(p)?(this._x=Math.atan2(q,e),this._z=Math.atan2(h,a)):(this._x=0,this._z=Math.atan2(-f,k))):"YZX"===b?(this._z=Math.asin(d(h,-1,1)),.99999>Math.abs(h)?(this._x=Math.atan2(-l,k),this._y=Math.atan2(-p,a)):(this._x=0,this._y=Math.atan2(g,e))):"XZY"===b?(this._z= +Math.asin(-d(f,-1,1)),.99999>Math.abs(f)?(this._x=Math.atan2(q,k),this._y=Math.atan2(g,a)):(this._x=Math.atan2(-l,e),this._y=0)):THREE.warn("THREE.Euler: .setFromRotationMatrix() given unsupported order: "+b);this._order=b;if(!1!==c)this.onChangeCallback();return this},setFromQuaternion:function(){var a;return function(b,c,d){void 0===a&&(a=new THREE.Matrix4);a.makeRotationFromQuaternion(b);this.setFromRotationMatrix(a,c,d);return this}}(),setFromVector3:function(a,b){return this.set(a.x,a.y,a.z, +b||this._order)},reorder:function(){var a=new THREE.Quaternion;return function(b){a.setFromEuler(this);this.setFromQuaternion(a,b)}}(),equals:function(a){return a._x===this._x&&a._y===this._y&&a._z===this._z&&a._order===this._order},fromArray:function(a){this._x=a[0];this._y=a[1];this._z=a[2];void 0!==a[3]&&(this._order=a[3]);this.onChangeCallback();return this},toArray:function(a,b){void 0===a&&(a=[]);void 0===b&&(b=0);a[b]=this._x;a[b+1]=this._y;a[b+2]=this._z;a[b+3]=this._order;return a},toVector3:function(a){return a? +a.set(this._x,this._y,this._z):new THREE.Vector3(this._x,this._y,this._z)},onChange:function(a){this.onChangeCallback=a;return this},onChangeCallback:function(){},clone:function(){return new THREE.Euler(this._x,this._y,this._z,this._order)}};THREE.Line3=function(a,b){this.start=void 0!==a?a:new THREE.Vector3;this.end=void 0!==b?b:new THREE.Vector3}; +THREE.Line3.prototype={constructor:THREE.Line3,set:function(a,b){this.start.copy(a);this.end.copy(b);return this},copy:function(a){this.start.copy(a.start);this.end.copy(a.end);return this},center:function(a){return(a||new THREE.Vector3).addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(a){return(a||new THREE.Vector3).subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(a, +b){var c=b||new THREE.Vector3;return this.delta(c).multiplyScalar(a).add(this.start)},closestPointToPointParameter:function(){var a=new THREE.Vector3,b=new THREE.Vector3;return function(c,d){a.subVectors(c,this.start);b.subVectors(this.end,this.start);var e=b.dot(b),e=b.dot(a)/e;d&&(e=THREE.Math.clamp(e,0,1));return e}}(),closestPointToPoint:function(a,b,c){a=this.closestPointToPointParameter(a,b);c=c||new THREE.Vector3;return this.delta(c).multiplyScalar(a).add(this.start)},applyMatrix4:function(a){this.start.applyMatrix4(a); +this.end.applyMatrix4(a);return this},equals:function(a){return a.start.equals(this.start)&&a.end.equals(this.end)},clone:function(){return(new THREE.Line3).copy(this)}};THREE.Box2=function(a,b){this.min=void 0!==a?a:new THREE.Vector2(Infinity,Infinity);this.max=void 0!==b?b:new THREE.Vector2(-Infinity,-Infinity)}; +THREE.Box2.prototype={constructor:THREE.Box2,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromPoints:function(a){this.makeEmpty();for(var b=0,c=a.length;bthis.max.x||a.ythis.max.y?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y?!0:!1},getParameter:function(a,b){return(b||new THREE.Vector2).set((a.x-this.min.x)/(this.max.x-this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y))},isIntersectionBox:function(a){return a.max.xthis.max.x||a.max.y +this.max.y?!1:!0},clampPoint:function(a,b){return(b||new THREE.Vector2).copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new THREE.Vector2;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},translate:function(a){this.min.add(a);this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&& +a.max.equals(this.max)},clone:function(){return(new THREE.Box2).copy(this)}};THREE.Box3=function(a,b){this.min=void 0!==a?a:new THREE.Vector3(Infinity,Infinity,Infinity);this.max=void 0!==b?b:new THREE.Vector3(-Infinity,-Infinity,-Infinity)}; +THREE.Box3.prototype={constructor:THREE.Box3,set:function(a,b){this.min.copy(a);this.max.copy(b);return this},setFromPoints:function(a){this.makeEmpty();for(var b=0,c=a.length;bthis.max.x||a.ythis.max.y||a.zthis.max.z?!1:!0},containsBox:function(a){return this.min.x<=a.min.x&&a.max.x<=this.max.x&&this.min.y<=a.min.y&&a.max.y<=this.max.y&&this.min.z<=a.min.z&&a.max.z<=this.max.z?!0:!1},getParameter:function(a,b){return(b||new THREE.Vector3).set((a.x-this.min.x)/(this.max.x- +this.min.x),(a.y-this.min.y)/(this.max.y-this.min.y),(a.z-this.min.z)/(this.max.z-this.min.z))},isIntersectionBox:function(a){return a.max.xthis.max.x||a.max.ythis.max.y||a.max.zthis.max.z?!1:!0},clampPoint:function(a,b){return(b||new THREE.Vector3).copy(a).clamp(this.min,this.max)},distanceToPoint:function(){var a=new THREE.Vector3;return function(b){return a.copy(b).clamp(this.min,this.max).sub(b).length()}}(),getBoundingSphere:function(){var a= +new THREE.Vector3;return function(b){b=b||new THREE.Sphere;b.center=this.center();b.radius=.5*this.size(a).length();return b}}(),intersect:function(a){this.min.max(a.min);this.max.min(a.max);return this},union:function(a){this.min.min(a.min);this.max.max(a.max);return this},applyMatrix4:function(){var a=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];return function(b){a[0].set(this.min.x,this.min.y, +this.min.z).applyMatrix4(b);a[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(b);a[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(b);a[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(b);a[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(b);a[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(b);a[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(b);a[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(b);this.makeEmpty();this.setFromPoints(a);return this}}(),translate:function(a){this.min.add(a); +this.max.add(a);return this},equals:function(a){return a.min.equals(this.min)&&a.max.equals(this.max)},clone:function(){return(new THREE.Box3).copy(this)}};THREE.Matrix3=function(){this.elements=new Float32Array([1,0,0,0,1,0,0,0,1]);0this.determinant()&&(g=-g);c.x=f[12]; +c.y=f[13];c.z=f[14];b.elements.set(this.elements);c=1/g;var f=1/h,l=1/k;b.elements[0]*=c;b.elements[1]*=c;b.elements[2]*=c;b.elements[4]*=f;b.elements[5]*=f;b.elements[6]*=f;b.elements[8]*=l;b.elements[9]*=l;b.elements[10]*=l;d.setFromRotationMatrix(b);e.x=g;e.y=h;e.z=k;return this}}(),makeFrustum:function(a,b,c,d,e,f){var g=this.elements;g[0]=2*e/(b-a);g[4]=0;g[8]=(b+a)/(b-a);g[12]=0;g[1]=0;g[5]=2*e/(d-c);g[9]=(d+c)/(d-c);g[13]=0;g[2]=0;g[6]=0;g[10]=-(f+e)/(f-e);g[14]=-2*f*e/(f-e);g[3]=0;g[7]=0; +g[11]=-1;g[15]=0;return this},makePerspective:function(a,b,c,d){a=c*Math.tan(THREE.Math.degToRad(.5*a));var e=-a;return this.makeFrustum(e*b,a*b,e,a,c,d)},makeOrthographic:function(a,b,c,d,e,f){var g=this.elements,h=b-a,k=c-d,l=f-e;g[0]=2/h;g[4]=0;g[8]=0;g[12]=-((b+a)/h);g[1]=0;g[5]=2/k;g[9]=0;g[13]=-((c+d)/k);g[2]=0;g[6]=0;g[10]=-2/l;g[14]=-((f+e)/l);g[3]=0;g[7]=0;g[11]=0;g[15]=1;return this},fromArray:function(a){this.elements.set(a);return this},toArray:function(){var a=this.elements;return[a[0], +a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10],a[11],a[12],a[13],a[14],a[15]]},clone:function(){return(new THREE.Matrix4).fromArray(this.elements)}};THREE.Ray=function(a,b){this.origin=void 0!==a?a:new THREE.Vector3;this.direction=void 0!==b?b:new THREE.Vector3}; +THREE.Ray.prototype={constructor:THREE.Ray,set:function(a,b){this.origin.copy(a);this.direction.copy(b);return this},copy:function(a){this.origin.copy(a.origin);this.direction.copy(a.direction);return this},at:function(a,b){return(b||new THREE.Vector3).copy(this.direction).multiplyScalar(a).add(this.origin)},recast:function(){var a=new THREE.Vector3;return function(b){this.origin.copy(this.at(b,a));return this}}(),closestPointToPoint:function(a,b){var c=b||new THREE.Vector3;c.subVectors(a,this.origin); +var d=c.dot(this.direction);return 0>d?c.copy(this.origin):c.copy(this.direction).multiplyScalar(d).add(this.origin)},distanceToPoint:function(){var a=new THREE.Vector3;return function(b){var c=a.subVectors(b,this.origin).dot(this.direction);if(0>c)return this.origin.distanceTo(b);a.copy(this.direction).multiplyScalar(c).add(this.origin);return a.distanceTo(b)}}(),distanceSqToSegment:function(){var a=new THREE.Vector3,b=new THREE.Vector3,c=new THREE.Vector3;return function(d,e,f,g){a.copy(d).add(e).multiplyScalar(.5); +b.copy(e).sub(d).normalize();c.copy(this.origin).sub(a);var h=.5*d.distanceTo(e),k=-this.direction.dot(b),l=c.dot(this.direction),p=-c.dot(b),q=c.lengthSq(),n=Math.abs(1-k*k),t;0=-t?e<=t?(h=1/n,d*=h,e*=h,k=d*(d+k*e+2*l)+e*(k*d+e+2*p)+q):(e=h,d=Math.max(0,-(k*e+l)),k=-d*d+e*(e+2*p)+q):(e=-h,d=Math.max(0,-(k*e+l)),k=-d*d+e*(e+2*p)+q):e<=-t?(d=Math.max(0,-(-k*h+l)),e=0f)return null;f=Math.sqrt(f-e);e=d-f;d+=f;return 0>e&&0>d?null:0>e?this.at(d,c):this.at(e,c)}}(),isIntersectionPlane:function(a){var b=a.distanceToPoint(this.origin);return 0===b||0>a.normal.dot(this.direction)*b?!0:!1},distanceToPlane:function(a){var b=a.normal.dot(this.direction);if(0==b)return 0==a.distanceToPoint(this.origin)?0:null;a=-(this.origin.dot(a.normal)+a.constant)/b;return 0<=a?a:null},intersectPlane:function(a,b){var c=this.distanceToPlane(a);return null===c?null:this.at(c,b)}, +isIntersectionBox:function(){var a=new THREE.Vector3;return function(b){return null!==this.intersectBox(b,a)}}(),intersectBox:function(a,b){var c,d,e,f,g;d=1/this.direction.x;f=1/this.direction.y;g=1/this.direction.z;var h=this.origin;0<=d?(c=(a.min.x-h.x)*d,d*=a.max.x-h.x):(c=(a.max.x-h.x)*d,d*=a.min.x-h.x);0<=f?(e=(a.min.y-h.y)*f,f*=a.max.y-h.y):(e=(a.max.y-h.y)*f,f*=a.min.y-h.y);if(c>f||e>d)return null;if(e>c||c!==c)c=e;if(fg||e>d)return null;if(e>c||c!==c)c=e;if(gd?null:this.at(0<=c?c:d,b)},intersectTriangle:function(){var a=new THREE.Vector3,b=new THREE.Vector3,c=new THREE.Vector3,d=new THREE.Vector3;return function(e,f,g,h,k){b.subVectors(f,e);c.subVectors(g,e);d.crossVectors(b,c);f=this.direction.dot(d);if(0f)h=-1,f=-f;else return null;a.subVectors(this.origin,e);e=h*this.direction.dot(c.crossVectors(a,c));if(0>e)return null;g=h*this.direction.dot(b.cross(a)); +if(0>g||e+g>f)return null;e=-h*a.dot(d);return 0>e?null:this.at(e/f,k)}}(),applyMatrix4:function(a){this.direction.add(this.origin).applyMatrix4(a);this.origin.applyMatrix4(a);this.direction.sub(this.origin);this.direction.normalize();return this},equals:function(a){return a.origin.equals(this.origin)&&a.direction.equals(this.direction)},clone:function(){return(new THREE.Ray).copy(this)}};THREE.Sphere=function(a,b){this.center=void 0!==a?a:new THREE.Vector3;this.radius=void 0!==b?b:0}; +THREE.Sphere.prototype={constructor:THREE.Sphere,set:function(a,b){this.center.copy(a);this.radius=b;return this},setFromPoints:function(){var a=new THREE.Box3;return function(b,c){var d=this.center;void 0!==c?d.copy(c):a.setFromPoints(b).center(d);for(var e=0,f=0,g=b.length;f=this.radius},containsPoint:function(a){return a.distanceToSquared(this.center)<= +this.radius*this.radius},distanceToPoint:function(a){return a.distanceTo(this.center)-this.radius},intersectsSphere:function(a){var b=this.radius+a.radius;return a.center.distanceToSquared(this.center)<=b*b},clampPoint:function(a,b){var c=this.center.distanceToSquared(a),d=b||new THREE.Vector3;d.copy(a);c>this.radius*this.radius&&(d.sub(this.center).normalize(),d.multiplyScalar(this.radius).add(this.center));return d},getBoundingBox:function(a){a=a||new THREE.Box3;a.set(this.center,this.center);a.expandByScalar(this.radius); +return a},applyMatrix4:function(a){this.center.applyMatrix4(a);this.radius*=a.getMaxScaleOnAxis();return this},translate:function(a){this.center.add(a);return this},equals:function(a){return a.center.equals(this.center)&&a.radius===this.radius},clone:function(){return(new THREE.Sphere).copy(this)}}; +THREE.Frustum=function(a,b,c,d,e,f){this.planes=[void 0!==a?a:new THREE.Plane,void 0!==b?b:new THREE.Plane,void 0!==c?c:new THREE.Plane,void 0!==d?d:new THREE.Plane,void 0!==e?e:new THREE.Plane,void 0!==f?f:new THREE.Plane]}; +THREE.Frustum.prototype={constructor:THREE.Frustum,set:function(a,b,c,d,e,f){var g=this.planes;g[0].copy(a);g[1].copy(b);g[2].copy(c);g[3].copy(d);g[4].copy(e);g[5].copy(f);return this},copy:function(a){for(var b=this.planes,c=0;6>c;c++)b[c].copy(a.planes[c]);return this},setFromMatrix:function(a){var b=this.planes,c=a.elements;a=c[0];var d=c[1],e=c[2],f=c[3],g=c[4],h=c[5],k=c[6],l=c[7],p=c[8],q=c[9],n=c[10],t=c[11],r=c[12],s=c[13],u=c[14],c=c[15];b[0].setComponents(f-a,l-g,t-p,c-r).normalize();b[1].setComponents(f+ +a,l+g,t+p,c+r).normalize();b[2].setComponents(f+d,l+h,t+q,c+s).normalize();b[3].setComponents(f-d,l-h,t-q,c-s).normalize();b[4].setComponents(f-e,l-k,t-n,c-u).normalize();b[5].setComponents(f+e,l+k,t+n,c+u).normalize();return this},intersectsObject:function(){var a=new THREE.Sphere;return function(b){var c=b.geometry;null===c.boundingSphere&&c.computeBoundingSphere();a.copy(c.boundingSphere);a.applyMatrix4(b.matrixWorld);return this.intersectsSphere(a)}}(),intersectsSphere:function(a){var b=this.planes, +c=a.center;a=-a.radius;for(var d=0;6>d;d++)if(b[d].distanceToPoint(c)e;e++){var f=d[e];a.x=0g&&0>f)return!1}return!0}}(), +containsPoint:function(a){for(var b=this.planes,c=0;6>c;c++)if(0>b[c].distanceToPoint(a))return!1;return!0},clone:function(){return(new THREE.Frustum).copy(this)}};THREE.Plane=function(a,b){this.normal=void 0!==a?a:new THREE.Vector3(1,0,0);this.constant=void 0!==b?b:0}; +THREE.Plane.prototype={constructor:THREE.Plane,set:function(a,b){this.normal.copy(a);this.constant=b;return this},setComponents:function(a,b,c,d){this.normal.set(a,b,c);this.constant=d;return this},setFromNormalAndCoplanarPoint:function(a,b){this.normal.copy(a);this.constant=-b.dot(this.normal);return this},setFromCoplanarPoints:function(){var a=new THREE.Vector3,b=new THREE.Vector3;return function(c,d,e){d=a.subVectors(e,d).cross(b.subVectors(c,d)).normalize();this.setFromNormalAndCoplanarPoint(d, +c);return this}}(),copy:function(a){this.normal.copy(a.normal);this.constant=a.constant;return this},normalize:function(){var a=1/this.normal.length();this.normal.multiplyScalar(a);this.constant*=a;return this},negate:function(){this.constant*=-1;this.normal.negate();return this},distanceToPoint:function(a){return this.normal.dot(a)+this.constant},distanceToSphere:function(a){return this.distanceToPoint(a.center)-a.radius},projectPoint:function(a,b){return this.orthoPoint(a,b).sub(a).negate()},orthoPoint:function(a, +b){var c=this.distanceToPoint(a);return(b||new THREE.Vector3).copy(this.normal).multiplyScalar(c)},isIntersectionLine:function(a){var b=this.distanceToPoint(a.start);a=this.distanceToPoint(a.end);return 0>b&&0a&&0f||1e;e++)8==e||13==e||18==e||23==e?b[e]="-":14==e?b[e]="4":(2>=c&&(c=33554432+16777216*Math.random()|0),d=c&15,c>>=4,b[e]=a[19==e?d&3|8:d]);return b.join("")}}(),clamp:function(a,b,c){return ac?c:a},clampBottom:function(a,b){return a=c)return 1;a=(a-b)/(c-b);return a*a*(3-2*a)},smootherstep:function(a,b,c){if(a<=b)return 0;if(a>=c)return 1;a=(a-b)/(c-b);return a*a*a*(a*(6*a-15)+10)},random16:function(){return(65280*Math.random()+255*Math.random())/65535},randInt:function(a,b){return Math.floor(this.randFloat(a,b))},randFloat:function(a,b){return a+Math.random()*(b-a)},randFloatSpread:function(a){return a*(.5-Math.random())},degToRad:function(){var a=Math.PI/180;return function(b){return b*a}}(),radToDeg:function(){var a= +180/Math.PI;return function(b){return b*a}}(),isPowerOfTwo:function(a){return 0===(a&a-1)&&0!==a},nextPowerOfTwo:function(a){a--;a|=a>>1;a|=a>>2;a|=a>>4;a|=a>>8;a|=a>>16;a++;return a}}; +THREE.Spline=function(a){function b(a,b,c,d,e,f,g){a=.5*(c-a);d=.5*(d-b);return(2*(b-c)+a+d)*g+(-3*(b-c)-2*a-d)*f+a*e+b}this.points=a;var c=[],d={x:0,y:0,z:0},e,f,g,h,k,l,p,q,n;this.initFromArray=function(a){this.points=[];for(var b=0;bthis.points.length-2?this.points.length-1:f+1;c[3]=f>this.points.length-3?this.points.length-1:f+ +2;l=this.points[c[0]];p=this.points[c[1]];q=this.points[c[2]];n=this.points[c[3]];h=g*g;k=g*h;d.x=b(l.x,p.x,q.x,n.x,g,h,k);d.y=b(l.y,p.y,q.y,n.y,g,h,k);d.z=b(l.z,p.z,q.z,n.z,g,h,k);return d};this.getControlPointsArray=function(){var a,b,c=this.points.length,d=[];for(a=0;a=b.x+b.y}}(); +THREE.Triangle.prototype={constructor:THREE.Triangle,set:function(a,b,c){this.a.copy(a);this.b.copy(b);this.c.copy(c);return this},setFromPointsAndIndices:function(a,b,c,d){this.a.copy(a[b]);this.b.copy(a[c]);this.c.copy(a[d]);return this},copy:function(a){this.a.copy(a.a);this.b.copy(a.b);this.c.copy(a.c);return this},area:function(){var a=new THREE.Vector3,b=new THREE.Vector3;return function(){a.subVectors(this.c,this.b);b.subVectors(this.a,this.b);return.5*a.cross(b).length()}}(),midpoint:function(a){return(a|| +new THREE.Vector3).addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(a){return THREE.Triangle.normal(this.a,this.b,this.c,a)},plane:function(a){return(a||new THREE.Plane).setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(a,b){return THREE.Triangle.barycoordFromPoint(a,this.a,this.b,this.c,b)},containsPoint:function(a){return THREE.Triangle.containsPoint(a,this.a,this.b,this.c)},equals:function(a){return a.a.equals(this.a)&&a.b.equals(this.b)&&a.c.equals(this.c)}, +clone:function(){return(new THREE.Triangle).copy(this)}};THREE.Clock=function(a){this.autoStart=void 0!==a?a:!0;this.elapsedTime=this.oldTime=this.startTime=0;this.running=!1}; +THREE.Clock.prototype={constructor:THREE.Clock,start:function(){this.oldTime=this.startTime=void 0!==self.performance&&void 0!==self.performance.now?self.performance.now():Date.now();this.running=!0},stop:function(){this.getElapsedTime();this.running=!1},getElapsedTime:function(){this.getDelta();return this.elapsedTime},getDelta:function(){var a=0;this.autoStart&&!this.running&&this.start();if(this.running){var b=void 0!==self.performance&&void 0!==self.performance.now?self.performance.now():Date.now(), +a=.001*(b-this.oldTime);this.oldTime=b;this.elapsedTime+=a}return a}};THREE.EventDispatcher=function(){}; +THREE.EventDispatcher.prototype={constructor:THREE.EventDispatcher,apply:function(a){a.addEventListener=THREE.EventDispatcher.prototype.addEventListener;a.hasEventListener=THREE.EventDispatcher.prototype.hasEventListener;a.removeEventListener=THREE.EventDispatcher.prototype.removeEventListener;a.dispatchEvent=THREE.EventDispatcher.prototype.dispatchEvent},addEventListener:function(a,b){void 0===this._listeners&&(this._listeners={});var c=this._listeners;void 0===c[a]&&(c[a]=[]);-1===c[a].indexOf(b)&& +c[a].push(b)},hasEventListener:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;return void 0!==c[a]&&-1!==c[a].indexOf(b)?!0:!1},removeEventListener:function(a,b){if(void 0!==this._listeners){var c=this._listeners[a];if(void 0!==c){var d=c.indexOf(b);-1!==d&&c.splice(d,1)}}},dispatchEvent:function(a){if(void 0!==this._listeners){var b=this._listeners[a.type];if(void 0!==b){a.target=this;for(var c=[],d=b.length,e=0;eqa?-1:1;h[4*a]=oa.x;h[4*a+1]=oa.y;h[4*a+2]=oa.z;h[4*a+3]=ca}if(void 0===this.attributes.index||void 0===this.attributes.position||void 0===this.attributes.normal|| +void 0===this.attributes.uv)THREE.warn("THREE.BufferGeometry: Missing required attributes (index, position, normal or uv) in BufferGeometry.computeTangents()");else{var c=this.attributes.index.array,d=this.attributes.position.array,e=this.attributes.normal.array,f=this.attributes.uv.array,g=d.length/3;void 0===this.attributes.tangent&&this.addAttribute("tangent",new THREE.BufferAttribute(new Float32Array(4*g),4));for(var h=this.attributes.tangent.array,k=[],l=[],p=0;p +s;s++)r=b[3*c+s],-1==n[r]?(q[2*s]=r,q[2*s+1]=-1,p++):n[r]k.index+a)for(k={start:f,count:0,index:g},h.push(k),p=0;6>p;p+=2)s=q[p+1],-1p;p+=2)r=q[p],s=q[p+1],-1===s&&(s=g++),n[r]=s,t[s]=r,e[f++]=s-k.index,k.count++}this.reorderBuffers(e,t,g);return this.drawcalls=this.offsets=h},merge:function(a,b){if(!1===a instanceof THREE.BufferGeometry)THREE.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.", +a);else{void 0===b&&(b=0);var c=this.attributes,d;for(d in c)if(void 0!==a.attributes[d])for(var e=c[d].array,f=a.attributes[d],g=f.array,h=0,f=f.itemSize*b;hd?-1:1,e.vertexTangents[c]=new THREE.Vector4(w.x,w.y,w.z,d);this.hasTangents=!0},computeLineDistances:function(){for(var a=0,b=this.vertices,c=0,d=b.length;cd;d++)if(e[d]==e[(d+1)%3]){a.push(f);break}for(f=a.length-1;0<=f;f--)for(e=a[f],this.faces.splice(e,1),c=0,g=this.faceVertexUvs.length;ca.opacity&&(h.transparent=!0);void 0!==a.depthTest&&(h.depthTest=a.depthTest);void 0!==a.depthWrite&&(h.depthWrite=a.depthWrite);void 0!==a.visible&&(h.visible=a.visible);void 0!==a.flipSided&&(h.side=THREE.BackSide);void 0!==a.doubleSided&&(h.side=THREE.DoubleSide);void 0!==a.wireframe&&(h.wireframe=a.wireframe); +void 0!==a.vertexColors&&("face"===a.vertexColors?h.vertexColors=THREE.FaceColors:a.vertexColors&&(h.vertexColors=THREE.VertexColors));a.colorDiffuse?h.color=e(a.colorDiffuse):a.DbgColor&&(h.color=a.DbgColor);a.colorSpecular&&(h.specular=e(a.colorSpecular));a.colorEmissive&&(h.emissive=e(a.colorEmissive));void 0!==a.transparency&&(console.warn("THREE.Loader: transparency has been renamed to opacity"),a.opacity=a.transparency);void 0!==a.opacity&&(h.opacity=a.opacity);a.specularCoef&&(h.shininess= +a.specularCoef);a.mapDiffuse&&b&&d(h,"map",a.mapDiffuse,a.mapDiffuseRepeat,a.mapDiffuseOffset,a.mapDiffuseWrap,a.mapDiffuseAnisotropy);a.mapLight&&b&&d(h,"lightMap",a.mapLight,a.mapLightRepeat,a.mapLightOffset,a.mapLightWrap,a.mapLightAnisotropy);a.mapBump&&b&&d(h,"bumpMap",a.mapBump,a.mapBumpRepeat,a.mapBumpOffset,a.mapBumpWrap,a.mapBumpAnisotropy);a.mapNormal&&b&&d(h,"normalMap",a.mapNormal,a.mapNormalRepeat,a.mapNormalOffset,a.mapNormalWrap,a.mapNormalAnisotropy);a.mapSpecular&&b&&d(h,"specularMap", +a.mapSpecular,a.mapSpecularRepeat,a.mapSpecularOffset,a.mapSpecularWrap,a.mapSpecularAnisotropy);a.mapAlpha&&b&&d(h,"alphaMap",a.mapAlpha,a.mapAlphaRepeat,a.mapAlphaOffset,a.mapAlphaWrap,a.mapAlphaAnisotropy);a.mapBumpScale&&(h.bumpScale=a.mapBumpScale);a.mapNormalFactor&&(h.normalScale=new THREE.Vector2(a.mapNormalFactor,a.mapNormalFactor));g=new THREE[g](h);void 0!==a.DbgName&&(g.name=a.DbgName);return g}}; +THREE.Loader.Handlers={handlers:[],add:function(a,b){this.handlers.push(a,b)},get:function(a){for(var b=0,c=this.handlers.length;bg;g++)n=x[k++],v=u[2*n],n=u[2*n+1],v=new THREE.Vector2(v,n),2!==g&&c.faceVertexUvs[d][h].push(v),0!==g&&c.faceVertexUvs[d][h+1].push(v);q&&(q=3*x[k++],t.normal.set(D[q++],D[q++],D[q]),s.normal.copy(t.normal));if(r)for(d=0;4>d;d++)q=3*x[k++],r=new THREE.Vector3(D[q++], +D[q++],D[q]),2!==d&&t.vertexNormals.push(r),0!==d&&s.vertexNormals.push(r);p&&(p=x[k++],p=w[p],t.color.setHex(p),s.color.setHex(p));if(b)for(d=0;4>d;d++)p=x[k++],p=w[p],2!==d&&t.vertexColors.push(new THREE.Color(p)),0!==d&&s.vertexColors.push(new THREE.Color(p));c.faces.push(t);c.faces.push(s)}else{t=new THREE.Face3;t.a=x[k++];t.b=x[k++];t.c=x[k++];h&&(h=x[k++],t.materialIndex=h);h=c.faces.length;if(d)for(d=0;dg;g++)n=x[k++],v=u[2*n],n=u[2*n+1], +v=new THREE.Vector2(v,n),c.faceVertexUvs[d][h].push(v);q&&(q=3*x[k++],t.normal.set(D[q++],D[q++],D[q]));if(r)for(d=0;3>d;d++)q=3*x[k++],r=new THREE.Vector3(D[q++],D[q++],D[q]),t.vertexNormals.push(r);p&&(p=x[k++],t.color.setHex(w[p]));if(b)for(d=0;3>d;d++)p=x[k++],t.vertexColors.push(new THREE.Color(w[p]));c.faces.push(t)}})(d);(function(){var b=void 0!==a.influencesPerVertex?a.influencesPerVertex:2;if(a.skinWeights)for(var d=0,g=a.skinWeights.length;dthis.opacity&&(a.opacity=this.opacity);!1!==this.transparent&&(a.transparent=this.transparent);!1!==this.wireframe&& +(a.wireframe=this.wireframe);return a},clone:function(a){void 0===a&&(a=new THREE.Material);a.name=this.name;a.side=this.side;a.opacity=this.opacity;a.transparent=this.transparent;a.blending=this.blending;a.blendSrc=this.blendSrc;a.blendDst=this.blendDst;a.blendEquation=this.blendEquation;a.blendSrcAlpha=this.blendSrcAlpha;a.blendDstAlpha=this.blendDstAlpha;a.blendEquationAlpha=this.blendEquationAlpha;a.depthTest=this.depthTest;a.depthWrite=this.depthWrite;a.polygonOffset=this.polygonOffset;a.polygonOffsetFactor= +this.polygonOffsetFactor;a.polygonOffsetUnits=this.polygonOffsetUnits;a.alphaTest=this.alphaTest;a.overdraw=this.overdraw;a.visible=this.visible;return a},update:function(){this.dispatchEvent({type:"update"})},dispose:function(){this.dispatchEvent({type:"dispose"})}};THREE.EventDispatcher.prototype.apply(THREE.Material.prototype);THREE.MaterialIdCount=0; +THREE.LineBasicMaterial=function(a){THREE.Material.call(this);this.type="LineBasicMaterial";this.color=new THREE.Color(16777215);this.linewidth=1;this.linejoin=this.linecap="round";this.vertexColors=THREE.NoColors;this.fog=!0;this.setValues(a)};THREE.LineBasicMaterial.prototype=Object.create(THREE.Material.prototype);THREE.LineBasicMaterial.prototype.constructor=THREE.LineBasicMaterial; +THREE.LineBasicMaterial.prototype.clone=function(){var a=new THREE.LineBasicMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.linewidth=this.linewidth;a.linecap=this.linecap;a.linejoin=this.linejoin;a.vertexColors=this.vertexColors;a.fog=this.fog;return a}; +THREE.LineDashedMaterial=function(a){THREE.Material.call(this);this.type="LineDashedMaterial";this.color=new THREE.Color(16777215);this.scale=this.linewidth=1;this.dashSize=3;this.gapSize=1;this.vertexColors=!1;this.fog=!0;this.setValues(a)};THREE.LineDashedMaterial.prototype=Object.create(THREE.Material.prototype);THREE.LineDashedMaterial.prototype.constructor=THREE.LineDashedMaterial; +THREE.LineDashedMaterial.prototype.clone=function(){var a=new THREE.LineDashedMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.linewidth=this.linewidth;a.scale=this.scale;a.dashSize=this.dashSize;a.gapSize=this.gapSize;a.vertexColors=this.vertexColors;a.fog=this.fog;return a}; +THREE.MeshBasicMaterial=function(a){THREE.Material.call(this);this.type="MeshBasicMaterial";this.color=new THREE.Color(16777215);this.envMap=this.alphaMap=this.specularMap=this.lightMap=this.map=null;this.combine=THREE.MultiplyOperation;this.reflectivity=1;this.refractionRatio=.98;this.fog=!0;this.shading=THREE.SmoothShading;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.vertexColors=THREE.NoColors;this.morphTargets=this.skinning=!1;this.setValues(a)}; +THREE.MeshBasicMaterial.prototype=Object.create(THREE.Material.prototype);THREE.MeshBasicMaterial.prototype.constructor=THREE.MeshBasicMaterial; +THREE.MeshBasicMaterial.prototype.clone=function(){var a=new THREE.MeshBasicMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.map=this.map;a.lightMap=this.lightMap;a.specularMap=this.specularMap;a.alphaMap=this.alphaMap;a.envMap=this.envMap;a.combine=this.combine;a.reflectivity=this.reflectivity;a.refractionRatio=this.refractionRatio;a.fog=this.fog;a.shading=this.shading;a.wireframe=this.wireframe;a.wireframeLinewidth=this.wireframeLinewidth;a.wireframeLinecap=this.wireframeLinecap; +a.wireframeLinejoin=this.wireframeLinejoin;a.vertexColors=this.vertexColors;a.skinning=this.skinning;a.morphTargets=this.morphTargets;return a}; +THREE.MeshLambertMaterial=function(a){THREE.Material.call(this);this.type="MeshLambertMaterial";this.color=new THREE.Color(16777215);this.emissive=new THREE.Color(0);this.wrapAround=!1;this.wrapRGB=new THREE.Vector3(1,1,1);this.envMap=this.alphaMap=this.specularMap=this.lightMap=this.map=null;this.combine=THREE.MultiplyOperation;this.reflectivity=1;this.refractionRatio=.98;this.fog=!0;this.shading=THREE.SmoothShading;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap= +"round";this.vertexColors=THREE.NoColors;this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)};THREE.MeshLambertMaterial.prototype=Object.create(THREE.Material.prototype);THREE.MeshLambertMaterial.prototype.constructor=THREE.MeshLambertMaterial; +THREE.MeshLambertMaterial.prototype.clone=function(){var a=new THREE.MeshLambertMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.emissive.copy(this.emissive);a.wrapAround=this.wrapAround;a.wrapRGB.copy(this.wrapRGB);a.map=this.map;a.lightMap=this.lightMap;a.specularMap=this.specularMap;a.alphaMap=this.alphaMap;a.envMap=this.envMap;a.combine=this.combine;a.reflectivity=this.reflectivity;a.refractionRatio=this.refractionRatio;a.fog=this.fog;a.shading=this.shading;a.wireframe= +this.wireframe;a.wireframeLinewidth=this.wireframeLinewidth;a.wireframeLinecap=this.wireframeLinecap;a.wireframeLinejoin=this.wireframeLinejoin;a.vertexColors=this.vertexColors;a.skinning=this.skinning;a.morphTargets=this.morphTargets;a.morphNormals=this.morphNormals;return a}; +THREE.MeshPhongMaterial=function(a){THREE.Material.call(this);this.type="MeshPhongMaterial";this.color=new THREE.Color(16777215);this.emissive=new THREE.Color(0);this.specular=new THREE.Color(1118481);this.shininess=30;this.wrapAround=this.metal=!1;this.wrapRGB=new THREE.Vector3(1,1,1);this.bumpMap=this.lightMap=this.map=null;this.bumpScale=1;this.normalMap=null;this.normalScale=new THREE.Vector2(1,1);this.envMap=this.alphaMap=this.specularMap=null;this.combine=THREE.MultiplyOperation;this.reflectivity= +1;this.refractionRatio=.98;this.fog=!0;this.shading=THREE.SmoothShading;this.wireframe=!1;this.wireframeLinewidth=1;this.wireframeLinejoin=this.wireframeLinecap="round";this.vertexColors=THREE.NoColors;this.morphNormals=this.morphTargets=this.skinning=!1;this.setValues(a)};THREE.MeshPhongMaterial.prototype=Object.create(THREE.Material.prototype);THREE.MeshPhongMaterial.prototype.constructor=THREE.MeshPhongMaterial; +THREE.MeshPhongMaterial.prototype.clone=function(){var a=new THREE.MeshPhongMaterial;THREE.Material.prototype.clone.call(this,a);a.color.copy(this.color);a.emissive.copy(this.emissive);a.specular.copy(this.specular);a.shininess=this.shininess;a.metal=this.metal;a.wrapAround=this.wrapAround;a.wrapRGB.copy(this.wrapRGB);a.map=this.map;a.lightMap=this.lightMap;a.bumpMap=this.bumpMap;a.bumpScale=this.bumpScale;a.normalMap=this.normalMap;a.normalScale.copy(this.normalScale);a.specularMap=this.specularMap; +a.alphaMap=this.alphaMap;a.envMap=this.envMap;a.combine=this.combine;a.reflectivity=this.reflectivity;a.refractionRatio=this.refractionRatio;a.fog=this.fog;a.shading=this.shading;a.wireframe=this.wireframe;a.wireframeLinewidth=this.wireframeLinewidth;a.wireframeLinecap=this.wireframeLinecap;a.wireframeLinejoin=this.wireframeLinejoin;a.vertexColors=this.vertexColors;a.skinning=this.skinning;a.morphTargets=this.morphTargets;a.morphNormals=this.morphNormals;return a}; +THREE.MeshDepthMaterial=function(a){THREE.Material.call(this);this.type="MeshDepthMaterial";this.wireframe=this.morphTargets=!1;this.wireframeLinewidth=1;this.setValues(a)};THREE.MeshDepthMaterial.prototype=Object.create(THREE.Material.prototype);THREE.MeshDepthMaterial.prototype.constructor=THREE.MeshDepthMaterial; +THREE.MeshDepthMaterial.prototype.clone=function(){var a=new THREE.MeshDepthMaterial;THREE.Material.prototype.clone.call(this,a);a.wireframe=this.wireframe;a.wireframeLinewidth=this.wireframeLinewidth;return a};THREE.MeshNormalMaterial=function(a){THREE.Material.call(this,a);this.type="MeshNormalMaterial";this.wireframe=!1;this.wireframeLinewidth=1;this.morphTargets=!1;this.setValues(a)};THREE.MeshNormalMaterial.prototype=Object.create(THREE.Material.prototype); +THREE.MeshNormalMaterial.prototype.constructor=THREE.MeshNormalMaterial;THREE.MeshNormalMaterial.prototype.clone=function(){var a=new THREE.MeshNormalMaterial;THREE.Material.prototype.clone.call(this,a);a.wireframe=this.wireframe;a.wireframeLinewidth=this.wireframeLinewidth;return a};THREE.MeshFaceMaterial=function(a){this.uuid=THREE.Math.generateUUID();this.type="MeshFaceMaterial";this.materials=a instanceof Array?a:[]}; +THREE.MeshFaceMaterial.prototype={constructor:THREE.MeshFaceMaterial,toJSON:function(){for(var a={metadata:{version:4.2,type:"material",generator:"MaterialExporter"},uuid:this.uuid,type:this.type,materials:[]},b=0,c=this.materials.length;bf||(D=b.origin.distanceTo(p),Dd.far||e.push({distance:D,point:l.clone().applyMatrix4(this.matrixWorld),index:g,offsetIndex:s,face:null,faceIndex:null, +object:this}))}}else for(n=n.position.array,g=0;gf||(D=b.origin.distanceTo(p),Dd.far||e.push({distance:D,point:l.clone().applyMatrix4(this.matrixWorld),index:g,face:null,faceIndex:null,object:this}))}else if(g instanceof THREE.Geometry)for(h=g.vertices,k=h.length,g=0;gf||(D=b.origin.distanceTo(p),Dd.far||e.push({distance:D,point:l.clone().applyMatrix4(this.matrixWorld), +index:g,face:null,faceIndex:null,object:this}))}}}();THREE.Line.prototype.clone=function(a){void 0===a&&(a=new THREE.Line(this.geometry,this.material,this.mode));THREE.Object3D.prototype.clone.call(this,a);return a};THREE.Mesh=function(a,b){THREE.Object3D.call(this);this.type="Mesh";this.geometry=void 0!==a?a:new THREE.Geometry;this.material=void 0!==b?b:new THREE.MeshBasicMaterial({color:16777215*Math.random()});this.updateMorphTargets()};THREE.Mesh.prototype=Object.create(THREE.Object3D.prototype); +THREE.Mesh.prototype.constructor=THREE.Mesh;THREE.Mesh.prototype.updateMorphTargets=function(){if(void 0!==this.geometry.morphTargets&&0g.far||h.push({distance:A,point:y,face:new THREE.Face3(p,q,n,THREE.Triangle.normal(d,e,f)),faceIndex:null,object:this})}}}else for(s=p.position.array,r=k=0,w=s.length;k +g.far||h.push({distance:A,point:y,face:new THREE.Face3(p,q,n,THREE.Triangle.normal(d,e,f)),faceIndex:null,object:this}))}}else if(k instanceof THREE.Geometry)for(r=this.material instanceof THREE.MeshFaceMaterial,s=!0===r?this.material.materials:null,t=g.precision,u=k.vertices,v=0,x=k.faces.length;vg.far||h.push({distance:A,point:y,face:D,faceIndex:v,object:this}))}}}();THREE.Mesh.prototype.clone=function(a,b){void 0===a&&(a=new THREE.Mesh(this.geometry,this.material));THREE.Object3D.prototype.clone.call(this,a,b);return a};THREE.Bone=function(a){THREE.Object3D.call(this);this.type="Bone";this.skin=a};THREE.Bone.prototype=Object.create(THREE.Object3D.prototype);THREE.Bone.prototype.constructor=THREE.Bone; +THREE.Skeleton=function(a,b,c){this.useVertexTexture=void 0!==c?c:!0;this.identityMatrix=new THREE.Matrix4;a=a||[];this.bones=a.slice(0);this.useVertexTexture?(this.boneTextureHeight=this.boneTextureWidth=a=256h.end&&(h.end=e);b||(b=g)}}a.firstAnimation=b}; +THREE.MorphAnimMesh.prototype.setAnimationLabel=function(a,b,c){this.geometry.animations||(this.geometry.animations={});this.geometry.animations[a]={start:b,end:c}};THREE.MorphAnimMesh.prototype.playAnimation=function(a,b){var c=this.geometry.animations[a];c?(this.setFrameRange(c.start,c.end),this.duration=(c.end-c.start)/b*1E3,this.time=0):THREE.warn("THREE.MorphAnimMesh: animation["+a+"] undefined in .playAnimation()")}; +THREE.MorphAnimMesh.prototype.updateAnimation=function(a){var b=this.duration/this.length;this.time+=this.direction*a;if(this.mirroredLoop){if(this.time>this.duration||0>this.time)this.direction*=-1,this.time>this.duration&&(this.time=this.duration,this.directionBackwards=!0),0>this.time&&(this.time=0,this.directionBackwards=!1)}else this.time%=this.duration,0>this.time&&(this.time+=this.duration);a=this.startKeyframe+THREE.Math.clamp(Math.floor(this.time/b),0,this.length-1);a!==this.currentKeyframe&& +(this.morphTargetInfluences[this.lastKeyframe]=0,this.morphTargetInfluences[this.currentKeyframe]=1,this.morphTargetInfluences[a]=0,this.lastKeyframe=this.currentKeyframe,this.currentKeyframe=a);b=this.time%b/b;this.directionBackwards&&(b=1-b);this.morphTargetInfluences[this.currentKeyframe]=b;this.morphTargetInfluences[this.lastKeyframe]=1-b}; +THREE.MorphAnimMesh.prototype.interpolateTargets=function(a,b,c){for(var d=this.morphTargetInfluences,e=0,f=d.length;e=this.objects[d].distance)this.objects[d-1].object.visible=!1,this.objects[d].object.visible=!0;else break;for(;dthis.scale.x||c.push({distance:d,point:this.position,face:null,object:this})}}();THREE.Sprite.prototype.clone=function(a){void 0===a&&(a=new THREE.Sprite(this.material));THREE.Object3D.prototype.clone.call(this,a);return a}; +THREE.Particle=THREE.Sprite;THREE.LensFlare=function(a,b,c,d,e){THREE.Object3D.call(this);this.lensFlares=[];this.positionScreen=new THREE.Vector3;this.customUpdateCallback=void 0;void 0!==a&&this.add(a,b,c,d,e)};THREE.LensFlare.prototype=Object.create(THREE.Object3D.prototype);THREE.LensFlare.prototype.constructor=THREE.LensFlare; +THREE.LensFlare.prototype.add=function(a,b,c,d,e,f){void 0===b&&(b=-1);void 0===c&&(c=0);void 0===f&&(f=1);void 0===e&&(e=new THREE.Color(16777215));void 0===d&&(d=THREE.NormalBlending);c=Math.min(c,Math.max(0,c));this.lensFlares.push({texture:a,size:b,distance:c,x:0,y:0,z:0,scale:1,rotation:1,opacity:f,color:e,blending:d})}; +THREE.LensFlare.prototype.updateLensFlares=function(){var a,b=this.lensFlares.length,c,d=2*-this.positionScreen.x,e=2*-this.positionScreen.y;for(a=0;a 0.0 ) {\n\t return pow( saturate( 1.0 - lightDistance / cutoffDistance ), decayExponent );\n\t}\n\treturn 1.0;\n}\n\nvec3 inputToLinear( in vec3 a ) {\n#ifdef GAMMA_INPUT\n\treturn pow( a, vec3( float( GAMMA_FACTOR ) ) );\n#else\n\treturn a;\n#endif\n}\nvec3 linearToOutput( in vec3 a ) {\n#ifdef GAMMA_OUTPUT\n\treturn pow( a, vec3( 1.0 / float( GAMMA_FACTOR ) ) );\n#else\n\treturn a;\n#endif\n}\n"; +THREE.ShaderChunk.alphatest_fragment="#ifdef ALPHATEST\n\n\tif ( diffuseColor.a < ALPHATEST ) discard;\n\n#endif\n";THREE.ShaderChunk.lights_lambert_vertex="vLightFront = vec3( 0.0 );\n\n#ifdef DOUBLE_SIDED\n\n\tvLightBack = vec3( 0.0 );\n\n#endif\n\ntransformedNormal = normalize( transformedNormal );\n\n#if MAX_DIR_LIGHTS > 0\n\nfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\n\n\tvec3 dirVector = transformDirection( directionalLightDirection[ i ], viewMatrix );\n\n\tfloat dotProduct = dot( transformedNormal, dirVector );\n\tvec3 directionalLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\n\t#ifdef DOUBLE_SIDED\n\n\t\tvec3 directionalLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\n\t\t#ifdef WRAP_AROUND\n\n\t\t\tvec3 directionalLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\n\t\t#endif\n\n\t#endif\n\n\t#ifdef WRAP_AROUND\n\n\t\tvec3 directionalLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n\t\tdirectionalLightWeighting = mix( directionalLightWeighting, directionalLightWeightingHalf, wrapRGB );\n\n\t\t#ifdef DOUBLE_SIDED\n\n\t\t\tdirectionalLightWeightingBack = mix( directionalLightWeightingBack, directionalLightWeightingHalfBack, wrapRGB );\n\n\t\t#endif\n\n\t#endif\n\n\tvLightFront += directionalLightColor[ i ] * directionalLightWeighting;\n\n\t#ifdef DOUBLE_SIDED\n\n\t\tvLightBack += directionalLightColor[ i ] * directionalLightWeightingBack;\n\n\t#endif\n\n}\n\n#endif\n\n#if MAX_POINT_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n\n\t\tvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz - mvPosition.xyz;\n\n\t\tfloat attenuation = calcLightAttenuation( length( lVector ), pointLightDistance[ i ], pointLightDecay[ i ] );\n\n\t\tlVector = normalize( lVector );\n\t\tfloat dotProduct = dot( transformedNormal, lVector );\n\n\t\tvec3 pointLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\n\t\t#ifdef DOUBLE_SIDED\n\n\t\t\tvec3 pointLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\n\t\t\t#ifdef WRAP_AROUND\n\n\t\t\t\tvec3 pointLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\n\t\t\t#endif\n\n\t\t#endif\n\n\t\t#ifdef WRAP_AROUND\n\n\t\t\tvec3 pointLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n\t\t\tpointLightWeighting = mix( pointLightWeighting, pointLightWeightingHalf, wrapRGB );\n\n\t\t\t#ifdef DOUBLE_SIDED\n\n\t\t\t\tpointLightWeightingBack = mix( pointLightWeightingBack, pointLightWeightingHalfBack, wrapRGB );\n\n\t\t\t#endif\n\n\t\t#endif\n\n\t\tvLightFront += pointLightColor[ i ] * pointLightWeighting * attenuation;\n\n\t\t#ifdef DOUBLE_SIDED\n\n\t\t\tvLightBack += pointLightColor[ i ] * pointLightWeightingBack * attenuation;\n\n\t\t#endif\n\n\t}\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\n\n\t\tvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz - mvPosition.xyz;\n\n\t\tfloat spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - worldPosition.xyz ) );\n\n\t\tif ( spotEffect > spotLightAngleCos[ i ] ) {\n\n\t\t\tspotEffect = max( pow( max( spotEffect, 0.0 ), spotLightExponent[ i ] ), 0.0 );\n\n\t\t\tfloat attenuation = calcLightAttenuation( length( lVector ), spotLightDistance[ i ], spotLightDecay[ i ] );\n\n\t\t\tlVector = normalize( lVector );\n\n\t\t\tfloat dotProduct = dot( transformedNormal, lVector );\n\t\t\tvec3 spotLightWeighting = vec3( max( dotProduct, 0.0 ) );\n\n\t\t\t#ifdef DOUBLE_SIDED\n\n\t\t\t\tvec3 spotLightWeightingBack = vec3( max( -dotProduct, 0.0 ) );\n\n\t\t\t\t#ifdef WRAP_AROUND\n\n\t\t\t\t\tvec3 spotLightWeightingHalfBack = vec3( max( -0.5 * dotProduct + 0.5, 0.0 ) );\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\t#ifdef WRAP_AROUND\n\n\t\t\t\tvec3 spotLightWeightingHalf = vec3( max( 0.5 * dotProduct + 0.5, 0.0 ) );\n\t\t\t\tspotLightWeighting = mix( spotLightWeighting, spotLightWeightingHalf, wrapRGB );\n\n\t\t\t\t#ifdef DOUBLE_SIDED\n\n\t\t\t\t\tspotLightWeightingBack = mix( spotLightWeightingBack, spotLightWeightingHalfBack, wrapRGB );\n\n\t\t\t\t#endif\n\n\t\t\t#endif\n\n\t\t\tvLightFront += spotLightColor[ i ] * spotLightWeighting * attenuation * spotEffect;\n\n\t\t\t#ifdef DOUBLE_SIDED\n\n\t\t\t\tvLightBack += spotLightColor[ i ] * spotLightWeightingBack * attenuation * spotEffect;\n\n\t\t\t#endif\n\n\t\t}\n\n\t}\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\n\n\t\tvec3 lVector = transformDirection( hemisphereLightDirection[ i ], viewMatrix );\n\n\t\tfloat dotProduct = dot( transformedNormal, lVector );\n\n\t\tfloat hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\n\t\tfloat hemiDiffuseWeightBack = -0.5 * dotProduct + 0.5;\n\n\t\tvLightFront += mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\n\n\t\t#ifdef DOUBLE_SIDED\n\n\t\t\tvLightBack += mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeightBack );\n\n\t\t#endif\n\n\t}\n\n#endif\n\nvLightFront += ambientLightColor;\n\n#ifdef DOUBLE_SIDED\n\n\tvLightBack += ambientLightColor;\n\n#endif\n"; +THREE.ShaderChunk.map_particle_pars_fragment="#ifdef USE_MAP\n\n\tuniform vec4 offsetRepeat;\n\tuniform sampler2D map;\n\n#endif\n";THREE.ShaderChunk.default_vertex="#ifdef USE_SKINNING\n\n\tvec4 mvPosition = modelViewMatrix * skinned;\n\n#elif defined( USE_MORPHTARGETS )\n\n\tvec4 mvPosition = modelViewMatrix * vec4( morphed, 1.0 );\n\n#else\n\n\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n\n#endif\n\ngl_Position = projectionMatrix * mvPosition;\n"; +THREE.ShaderChunk.map_pars_fragment="#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n\tvarying vec2 vUv;\n\n#endif\n\n#ifdef USE_MAP\n\n\tuniform sampler2D map;\n\n#endif";THREE.ShaderChunk.skinnormal_vertex="#ifdef USE_SKINNING\n\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\n\t#ifdef USE_MORPHNORMALS\n\n\tvec4 skinnedNormal = skinMatrix * vec4( morphedNormal, 0.0 );\n\n\t#else\n\n\tvec4 skinnedNormal = skinMatrix * vec4( normal, 0.0 );\n\n\t#endif\n\n#endif\n"; +THREE.ShaderChunk.logdepthbuf_pars_vertex="#ifdef USE_LOGDEPTHBUF\n\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\n\t\tvarying float vFragDepth;\n\n\t#endif\n\n\tuniform float logDepthBufFC;\n\n#endif";THREE.ShaderChunk.lightmap_pars_vertex="#ifdef USE_LIGHTMAP\n\n\tvarying vec2 vUv2;\n\n#endif";THREE.ShaderChunk.lights_phong_fragment="#ifndef FLAT_SHADED\n\n\tvec3 normal = normalize( vNormal );\n\n\t#ifdef DOUBLE_SIDED\n\n\t\tnormal = normal * ( -1.0 + 2.0 * float( gl_FrontFacing ) );\n\n\t#endif\n\n#else\n\n\tvec3 fdx = dFdx( vViewPosition );\n\tvec3 fdy = dFdy( vViewPosition );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n\n#endif\n\nvec3 viewPosition = normalize( vViewPosition );\n\n#ifdef USE_NORMALMAP\n\n\tnormal = perturbNormal2Arb( -vViewPosition, normal );\n\n#elif defined( USE_BUMPMAP )\n\n\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\n\n#endif\n\nvec3 totalDiffuseLight = vec3( 0.0 );\nvec3 totalSpecularLight = vec3( 0.0 );\n\n#if MAX_POINT_LIGHTS > 0\n\n\tfor ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\n\n\t\tvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz + vViewPosition.xyz;\n\n\t\tfloat attenuation = calcLightAttenuation( length( lVector ), pointLightDistance[ i ], pointLightDecay[ i ] );\n\n\t\tlVector = normalize( lVector );\n\n\t\t// diffuse\n\n\t\tfloat dotProduct = dot( normal, lVector );\n\n\t\t#ifdef WRAP_AROUND\n\n\t\t\tfloat pointDiffuseWeightFull = max( dotProduct, 0.0 );\n\t\t\tfloat pointDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\n\t\t\tvec3 pointDiffuseWeight = mix( vec3( pointDiffuseWeightFull ), vec3( pointDiffuseWeightHalf ), wrapRGB );\n\n\t\t#else\n\n\t\t\tfloat pointDiffuseWeight = max( dotProduct, 0.0 );\n\n\t\t#endif\n\n\t\ttotalDiffuseLight += pointLightColor[ i ] * pointDiffuseWeight * attenuation;\n\n\t\t\t\t// specular\n\n\t\tvec3 pointHalfVector = normalize( lVector + viewPosition );\n\t\tfloat pointDotNormalHalf = max( dot( normal, pointHalfVector ), 0.0 );\n\t\tfloat pointSpecularWeight = specularStrength * max( pow( pointDotNormalHalf, shininess ), 0.0 );\n\n\t\tfloat specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, pointHalfVector ), 0.0 ), 5.0 );\n\t\ttotalSpecularLight += schlick * pointLightColor[ i ] * pointSpecularWeight * pointDiffuseWeight * attenuation * specularNormalization;\n\n\t}\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n\tfor ( int i = 0; i < MAX_SPOT_LIGHTS; i ++ ) {\n\n\t\tvec4 lPosition = viewMatrix * vec4( spotLightPosition[ i ], 1.0 );\n\t\tvec3 lVector = lPosition.xyz + vViewPosition.xyz;\n\n\t\tfloat attenuation = calcLightAttenuation( length( lVector ), spotLightDistance[ i ], spotLightDecay[ i ] );\n\n\t\tlVector = normalize( lVector );\n\n\t\tfloat spotEffect = dot( spotLightDirection[ i ], normalize( spotLightPosition[ i ] - vWorldPosition ) );\n\n\t\tif ( spotEffect > spotLightAngleCos[ i ] ) {\n\n\t\t\tspotEffect = max( pow( max( spotEffect, 0.0 ), spotLightExponent[ i ] ), 0.0 );\n\n\t\t\t// diffuse\n\n\t\t\tfloat dotProduct = dot( normal, lVector );\n\n\t\t\t#ifdef WRAP_AROUND\n\n\t\t\t\tfloat spotDiffuseWeightFull = max( dotProduct, 0.0 );\n\t\t\t\tfloat spotDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\n\t\t\t\tvec3 spotDiffuseWeight = mix( vec3( spotDiffuseWeightFull ), vec3( spotDiffuseWeightHalf ), wrapRGB );\n\n\t\t\t#else\n\n\t\t\t\tfloat spotDiffuseWeight = max( dotProduct, 0.0 );\n\n\t\t\t#endif\n\n\t\t\ttotalDiffuseLight += spotLightColor[ i ] * spotDiffuseWeight * attenuation * spotEffect;\n\n\t\t\t// specular\n\n\t\t\tvec3 spotHalfVector = normalize( lVector + viewPosition );\n\t\t\tfloat spotDotNormalHalf = max( dot( normal, spotHalfVector ), 0.0 );\n\t\t\tfloat spotSpecularWeight = specularStrength * max( pow( spotDotNormalHalf, shininess ), 0.0 );\n\n\t\t\tfloat specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n\t\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, spotHalfVector ), 0.0 ), 5.0 );\n\t\t\ttotalSpecularLight += schlick * spotLightColor[ i ] * spotSpecularWeight * spotDiffuseWeight * attenuation * specularNormalization * spotEffect;\n\n\t\t}\n\n\t}\n\n#endif\n\n#if MAX_DIR_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\n\n\t\tvec3 dirVector = transformDirection( directionalLightDirection[ i ], viewMatrix );\n\n\t\t// diffuse\n\n\t\tfloat dotProduct = dot( normal, dirVector );\n\n\t\t#ifdef WRAP_AROUND\n\n\t\t\tfloat dirDiffuseWeightFull = max( dotProduct, 0.0 );\n\t\t\tfloat dirDiffuseWeightHalf = max( 0.5 * dotProduct + 0.5, 0.0 );\n\n\t\t\tvec3 dirDiffuseWeight = mix( vec3( dirDiffuseWeightFull ), vec3( dirDiffuseWeightHalf ), wrapRGB );\n\n\t\t#else\n\n\t\t\tfloat dirDiffuseWeight = max( dotProduct, 0.0 );\n\n\t\t#endif\n\n\t\ttotalDiffuseLight += directionalLightColor[ i ] * dirDiffuseWeight;\n\n\t\t// specular\n\n\t\tvec3 dirHalfVector = normalize( dirVector + viewPosition );\n\t\tfloat dirDotNormalHalf = max( dot( normal, dirHalfVector ), 0.0 );\n\t\tfloat dirSpecularWeight = specularStrength * max( pow( dirDotNormalHalf, shininess ), 0.0 );\n\n\t\t/*\n\t\t// fresnel term from skin shader\n\t\tconst float F0 = 0.128;\n\n\t\tfloat base = 1.0 - dot( viewPosition, dirHalfVector );\n\t\tfloat exponential = pow( base, 5.0 );\n\n\t\tfloat fresnel = exponential + F0 * ( 1.0 - exponential );\n\t\t*/\n\n\t\t/*\n\t\t// fresnel term from fresnel shader\n\t\tconst float mFresnelBias = 0.08;\n\t\tconst float mFresnelScale = 0.3;\n\t\tconst float mFresnelPower = 5.0;\n\n\t\tfloat fresnel = mFresnelBias + mFresnelScale * pow( 1.0 + dot( normalize( -viewPosition ), normal ), mFresnelPower );\n\t\t*/\n\n\t\tfloat specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n\t\t// \t\tdirSpecular += specular * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight * specularNormalization * fresnel;\n\n\t\tvec3 schlick = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( dirVector, dirHalfVector ), 0.0 ), 5.0 );\n\t\ttotalSpecularLight += schlick * directionalLightColor[ i ] * dirSpecularWeight * dirDiffuseWeight * specularNormalization;\n\n\n\t}\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n\tfor( int i = 0; i < MAX_HEMI_LIGHTS; i ++ ) {\n\n\t\tvec3 lVector = transformDirection( hemisphereLightDirection[ i ], viewMatrix );\n\n\t\t// diffuse\n\n\t\tfloat dotProduct = dot( normal, lVector );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotProduct + 0.5;\n\n\t\tvec3 hemiColor = mix( hemisphereLightGroundColor[ i ], hemisphereLightSkyColor[ i ], hemiDiffuseWeight );\n\n\t\ttotalDiffuseLight += hemiColor;\n\n\t\t// specular (sky light)\n\n\t\tvec3 hemiHalfVectorSky = normalize( lVector + viewPosition );\n\t\tfloat hemiDotNormalHalfSky = 0.5 * dot( normal, hemiHalfVectorSky ) + 0.5;\n\t\tfloat hemiSpecularWeightSky = specularStrength * max( pow( max( hemiDotNormalHalfSky, 0.0 ), shininess ), 0.0 );\n\n\t\t// specular (ground light)\n\n\t\tvec3 lVectorGround = -lVector;\n\n\t\tvec3 hemiHalfVectorGround = normalize( lVectorGround + viewPosition );\n\t\tfloat hemiDotNormalHalfGround = 0.5 * dot( normal, hemiHalfVectorGround ) + 0.5;\n\t\tfloat hemiSpecularWeightGround = specularStrength * max( pow( max( hemiDotNormalHalfGround, 0.0 ), shininess ), 0.0 );\n\n\t\tfloat dotProductGround = dot( normal, lVectorGround );\n\n\t\tfloat specularNormalization = ( shininess + 2.0 ) / 8.0;\n\n\t\tvec3 schlickSky = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVector, hemiHalfVectorSky ), 0.0 ), 5.0 );\n\t\tvec3 schlickGround = specular + vec3( 1.0 - specular ) * pow( max( 1.0 - dot( lVectorGround, hemiHalfVectorGround ), 0.0 ), 5.0 );\n\t\ttotalSpecularLight += hemiColor * specularNormalization * ( schlickSky * hemiSpecularWeightSky * max( dotProduct, 0.0 ) + schlickGround * hemiSpecularWeightGround * max( dotProductGround, 0.0 ) );\n\n\t}\n\n#endif\n\n#ifdef METAL\n\n\toutgoingLight += diffuseColor.rgb * ( totalDiffuseLight + ambientLightColor ) * specular + totalSpecularLight + emissive;\n\n#else\n\n\toutgoingLight += diffuseColor.rgb * ( totalDiffuseLight + ambientLightColor ) + totalSpecularLight + emissive;\n\n#endif\n"; +THREE.ShaderChunk.fog_pars_fragment="#ifdef USE_FOG\n\n\tuniform vec3 fogColor;\n\n\t#ifdef FOG_EXP2\n\n\t\tuniform float fogDensity;\n\n\t#else\n\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n\n#endif";THREE.ShaderChunk.morphnormal_vertex="#ifdef USE_MORPHNORMALS\n\n\tvec3 morphedNormal = vec3( 0.0 );\n\n\tmorphedNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\n\tmorphedNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\n\tmorphedNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\n\tmorphedNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\n\n\tmorphedNormal += normal;\n\n#endif"; +THREE.ShaderChunk.envmap_pars_fragment="#ifdef USE_ENVMAP\n\n\tuniform float reflectivity;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\tuniform float flipEnvMap;\n\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\n\t\tuniform float refractionRatio;\n\n\t#else\n\n\t\tvarying vec3 vReflect;\n\n\t#endif\n\n#endif\n";THREE.ShaderChunk.logdepthbuf_fragment="#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)\n\n\tgl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;\n\n#endif"; +THREE.ShaderChunk.normalmap_pars_fragment="#ifdef USE_NORMALMAP\n\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n\n\t// Per-Pixel Tangent Space Normal Mapping\n\t// http://hacksoflife.blogspot.ch/2009/11/per-pixel-tangent-space-normal-mapping.html\n\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\n\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\n\t\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\n\t\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\n\t\tvec3 N = normalize( surf_norm );\n\n\t\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t\tmapN.xy = normalScale * mapN.xy;\n\t\tmat3 tsn = mat3( S, T, N );\n\t\treturn normalize( tsn * mapN );\n\n\t}\n\n#endif\n"; +THREE.ShaderChunk.lights_phong_pars_vertex="#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\n\tvarying vec3 vWorldPosition;\n\n#endif\n";THREE.ShaderChunk.lightmap_pars_fragment="#ifdef USE_LIGHTMAP\n\n\tvarying vec2 vUv2;\n\tuniform sampler2D lightMap;\n\n#endif";THREE.ShaderChunk.shadowmap_vertex="#ifdef USE_SHADOWMAP\n\n\tfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\n\n\t\tvShadowCoord[ i ] = shadowMatrix[ i ] * worldPosition;\n\n\t}\n\n#endif"; +THREE.ShaderChunk.lights_phong_vertex="#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\n\tvWorldPosition = worldPosition.xyz;\n\n#endif";THREE.ShaderChunk.map_fragment="#ifdef USE_MAP\n\n\tvec4 texelColor = texture2D( map, vUv );\n\n\ttexelColor.xyz = inputToLinear( texelColor.xyz );\n\n\tdiffuseColor *= texelColor;\n\n#endif";THREE.ShaderChunk.lightmap_vertex="#ifdef USE_LIGHTMAP\n\n\tvUv2 = uv2;\n\n#endif";THREE.ShaderChunk.map_particle_fragment="#ifdef USE_MAP\n\n\tdiffuseColor *= texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\n\n#endif\n"; +THREE.ShaderChunk.color_pars_fragment="#ifdef USE_COLOR\n\n\tvarying vec3 vColor;\n\n#endif\n";THREE.ShaderChunk.color_vertex="#ifdef USE_COLOR\n\n\tvColor.xyz = inputToLinear( color.xyz );\n\n#endif";THREE.ShaderChunk.skinning_vertex="#ifdef USE_SKINNING\n\n\t#ifdef USE_MORPHTARGETS\n\n\tvec4 skinVertex = bindMatrix * vec4( morphed, 1.0 );\n\n\t#else\n\n\tvec4 skinVertex = bindMatrix * vec4( position, 1.0 );\n\n\t#endif\n\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\tskinned = bindMatrixInverse * skinned;\n\n#endif\n"; +THREE.ShaderChunk.envmap_pars_vertex="#if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP ) && ! defined( PHONG )\n\n\tvarying vec3 vReflect;\n\n\tuniform float refractionRatio;\n\n#endif\n";THREE.ShaderChunk.linear_to_gamma_fragment="\n\toutgoingLight = linearToOutput( outgoingLight );\n";THREE.ShaderChunk.color_pars_vertex="#ifdef USE_COLOR\n\n\tvarying vec3 vColor;\n\n#endif";THREE.ShaderChunk.lights_lambert_pars_vertex="uniform vec3 ambientLightColor;\n\n#if MAX_DIR_LIGHTS > 0\n\n\tuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\n\tuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n\tuniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n\n#endif\n\n#if MAX_POINT_LIGHTS > 0\n\n\tuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n\tuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDecay[ MAX_POINT_LIGHTS ];\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n\tuniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDecay[ MAX_SPOT_LIGHTS ];\n\n#endif\n\n#ifdef WRAP_AROUND\n\n\tuniform vec3 wrapRGB;\n\n#endif\n"; +THREE.ShaderChunk.map_pars_vertex="#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n\tvarying vec2 vUv;\n\tuniform vec4 offsetRepeat;\n\n#endif\n";THREE.ShaderChunk.envmap_fragment="#ifdef USE_ENVMAP\n\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\n\t\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\n\n\t\t// Transforming Normal Vectors with the Inverse Transformation\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\n\t\t\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\n\n\t\t#else\n\n\t\t\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\n\n\t\t#endif\n\n\t#else\n\n\t\tvec3 reflectVec = vReflect;\n\n\t#endif\n\n\t#ifdef DOUBLE_SIDED\n\t\tfloat flipNormal = ( -1.0 + 2.0 * float( gl_FrontFacing ) );\n\t#else\n\t\tfloat flipNormal = 1.0;\n\t#endif\n\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\n\t#elif defined( ENVMAP_TYPE_EQUIREC )\n\t\tvec2 sampleUV;\n\t\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\n\t\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\n\t\tvec4 envColor = texture2D( envMap, sampleUV );\n\n\t#elif defined( ENVMAP_TYPE_SPHERE )\n\t\tvec3 reflectView = flipNormal * normalize((viewMatrix * vec4( reflectVec, 0.0 )).xyz + vec3(0.0,0.0,1.0));\n\t\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\n\t#endif\n\n\tenvColor.xyz = inputToLinear( envColor.xyz );\n\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\n\t#endif\n\n#endif\n"; +THREE.ShaderChunk.specularmap_pars_fragment="#ifdef USE_SPECULARMAP\n\n\tuniform sampler2D specularMap;\n\n#endif";THREE.ShaderChunk.logdepthbuf_vertex="#ifdef USE_LOGDEPTHBUF\n\n\tgl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;\n\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\n#else\n\n\t\tgl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;\n\n\t#endif\n\n#endif";THREE.ShaderChunk.morphtarget_pars_vertex="#ifdef USE_MORPHTARGETS\n\n\t#ifndef USE_MORPHNORMALS\n\n\tuniform float morphTargetInfluences[ 8 ];\n\n\t#else\n\n\tuniform float morphTargetInfluences[ 4 ];\n\n\t#endif\n\n#endif"; +THREE.ShaderChunk.specularmap_fragment="float specularStrength;\n\n#ifdef USE_SPECULARMAP\n\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n\n#else\n\n\tspecularStrength = 1.0;\n\n#endif";THREE.ShaderChunk.fog_fragment="#ifdef USE_FOG\n\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\n\t\tfloat depth = gl_FragDepthEXT / gl_FragCoord.w;\n\n\t#else\n\n\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\n\t#endif\n\n\t#ifdef FOG_EXP2\n\n\t\tfloat fogFactor = exp2( - square( fogDensity ) * square( depth ) * LOG2 );\n\t\tfogFactor = whiteCompliment( fogFactor );\n\n\t#else\n\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, depth );\n\n\t#endif\n\t\n\toutgoingLight = mix( outgoingLight, fogColor, fogFactor );\n\n#endif"; +THREE.ShaderChunk.bumpmap_pars_fragment="#ifdef USE_BUMPMAP\n\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\n\t// Derivative maps - bump mapping unparametrized surfaces by Morten Mikkelsen\n\t// http://mmikkelsen3d.blogspot.sk/2011/07/derivative-maps.html\n\n\t// Evaluate the derivative of the height w.r.t. screen-space using forward differencing (listing 2)\n\n\tvec2 dHdxy_fwd() {\n\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\n\t\treturn vec2( dBx, dBy );\n\n\t}\n\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\n\n\t\tvec3 vSigmaX = dFdx( surf_pos );\n\t\tvec3 vSigmaY = dFdy( surf_pos );\n\t\tvec3 vN = surf_norm;\t\t// normalized\n\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\n\t\tfloat fDet = dot( vSigmaX, R1 );\n\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\n\t}\n\n#endif\n"; +THREE.ShaderChunk.defaultnormal_vertex="#ifdef USE_SKINNING\n\n\tvec3 objectNormal = skinnedNormal.xyz;\n\n#elif defined( USE_MORPHNORMALS )\n\n\tvec3 objectNormal = morphedNormal;\n\n#else\n\n\tvec3 objectNormal = normal;\n\n#endif\n\n#ifdef FLIP_SIDED\n\n\tobjectNormal = -objectNormal;\n\n#endif\n\nvec3 transformedNormal = normalMatrix * objectNormal;\n";THREE.ShaderChunk.lights_phong_pars_fragment="uniform vec3 ambientLightColor;\n\n#if MAX_DIR_LIGHTS > 0\n\n\tuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\n\tuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n\n#endif\n\n#if MAX_HEMI_LIGHTS > 0\n\n\tuniform vec3 hemisphereLightSkyColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightGroundColor[ MAX_HEMI_LIGHTS ];\n\tuniform vec3 hemisphereLightDirection[ MAX_HEMI_LIGHTS ];\n\n#endif\n\n#if MAX_POINT_LIGHTS > 0\n\n\tuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\n\n\tuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n\tuniform float pointLightDecay[ MAX_POINT_LIGHTS ];\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0\n\n\tuniform vec3 spotLightColor[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightPosition[ MAX_SPOT_LIGHTS ];\n\tuniform vec3 spotLightDirection[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightAngleCos[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightExponent[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDistance[ MAX_SPOT_LIGHTS ];\n\tuniform float spotLightDecay[ MAX_SPOT_LIGHTS ];\n\n#endif\n\n#if MAX_SPOT_LIGHTS > 0 || defined( USE_BUMPMAP ) || defined( USE_ENVMAP )\n\n\tvarying vec3 vWorldPosition;\n\n#endif\n\n#ifdef WRAP_AROUND\n\n\tuniform vec3 wrapRGB;\n\n#endif\n\nvarying vec3 vViewPosition;\n\n#ifndef FLAT_SHADED\n\n\tvarying vec3 vNormal;\n\n#endif\n"; +THREE.ShaderChunk.skinbase_vertex="#ifdef USE_SKINNING\n\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n\n#endif";THREE.ShaderChunk.map_vertex="#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP )\n\n\tvUv = uv * offsetRepeat.zw + offsetRepeat.xy;\n\n#endif"; +THREE.ShaderChunk.lightmap_fragment="#ifdef USE_LIGHTMAP\n\n\toutgoingLight *= diffuseColor.xyz * texture2D( lightMap, vUv2 ).xyz;\n\n#endif";THREE.ShaderChunk.shadowmap_pars_vertex="#ifdef USE_SHADOWMAP\n\n\tvarying vec4 vShadowCoord[ MAX_SHADOWS ];\n\tuniform mat4 shadowMatrix[ MAX_SHADOWS ];\n\n#endif";THREE.ShaderChunk.color_fragment="#ifdef USE_COLOR\n\n\tdiffuseColor.rgb *= vColor;\n\n#endif";THREE.ShaderChunk.morphtarget_vertex="#ifdef USE_MORPHTARGETS\n\n\tvec3 morphed = vec3( 0.0 );\n\tmorphed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\n\tmorphed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\n\tmorphed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\n\tmorphed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\n\n\t#ifndef USE_MORPHNORMALS\n\n\tmorphed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\n\tmorphed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\n\tmorphed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\n\tmorphed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\n\n\t#endif\n\n\tmorphed += position;\n\n#endif"; +THREE.ShaderChunk.envmap_vertex="#if defined( USE_ENVMAP ) && ! defined( USE_BUMPMAP ) && ! defined( USE_NORMALMAP ) && ! defined( PHONG )\n\n\tvec3 worldNormal = transformDirection( objectNormal, modelMatrix );\n\n\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\n\t#ifdef ENVMAP_MODE_REFLECTION\n\n\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\n\t#else\n\n\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\n\t#endif\n\n#endif\n"; +THREE.ShaderChunk.shadowmap_fragment="#ifdef USE_SHADOWMAP\n\n\t#ifdef SHADOWMAP_DEBUG\n\n\t\tvec3 frustumColors[3];\n\t\tfrustumColors[0] = vec3( 1.0, 0.5, 0.0 );\n\t\tfrustumColors[1] = vec3( 0.0, 1.0, 0.8 );\n\t\tfrustumColors[2] = vec3( 0.0, 0.5, 1.0 );\n\n\t#endif\n\n\t#ifdef SHADOWMAP_CASCADE\n\n\t\tint inFrustumCount = 0;\n\n\t#endif\n\n\tfloat fDepth;\n\tvec3 shadowColor = vec3( 1.0 );\n\n\tfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\n\n\t\tvec3 shadowCoord = vShadowCoord[ i ].xyz / vShadowCoord[ i ].w;\n\n\t\t\t\t// if ( something && something ) breaks ATI OpenGL shader compiler\n\t\t\t\t// if ( all( something, something ) ) using this instead\n\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\n\t\t\t\t// don't shadow pixels outside of light frustum\n\t\t\t\t// use just first frustum (for cascades)\n\t\t\t\t// don't shadow pixels behind far plane of light frustum\n\n\t\t#ifdef SHADOWMAP_CASCADE\n\n\t\t\tinFrustumCount += int( inFrustum );\n\t\t\tbvec3 frustumTestVec = bvec3( inFrustum, inFrustumCount == 1, shadowCoord.z <= 1.0 );\n\n\t\t#else\n\n\t\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\n\t\t#endif\n\n\t\tbool frustumTest = all( frustumTestVec );\n\n\t\tif ( frustumTest ) {\n\n\t\t\tshadowCoord.z += shadowBias[ i ];\n\n\t\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\n\t\t\t\t\t\t// Percentage-close filtering\n\t\t\t\t\t\t// (9 pixel kernel)\n\t\t\t\t\t\t// http://fabiensanglard.net/shadowmappingPCF/\n\n\t\t\t\tfloat shadow = 0.0;\n\n\t\t/*\n\t\t\t\t\t\t// nested loops breaks shader compiler / validator on some ATI cards when using OpenGL\n\t\t\t\t\t\t// must enroll loop manually\n\n\t\t\t\tfor ( float y = -1.25; y <= 1.25; y += 1.25 )\n\t\t\t\t\tfor ( float x = -1.25; x <= 1.25; x += 1.25 ) {\n\n\t\t\t\t\t\tvec4 rgbaDepth = texture2D( shadowMap[ i ], vec2( x * xPixelOffset, y * yPixelOffset ) + shadowCoord.xy );\n\n\t\t\t\t\t\t\t\t// doesn't seem to produce any noticeable visual difference compared to simple texture2D lookup\n\t\t\t\t\t\t\t\t//vec4 rgbaDepth = texture2DProj( shadowMap[ i ], vec4( vShadowCoord[ i ].w * ( vec2( x * xPixelOffset, y * yPixelOffset ) + shadowCoord.xy ), 0.05, vShadowCoord[ i ].w ) );\n\n\t\t\t\t\t\tfloat fDepth = unpackDepth( rgbaDepth );\n\n\t\t\t\t\t\tif ( fDepth < shadowCoord.z )\n\t\t\t\t\t\t\tshadow += 1.0;\n\n\t\t\t\t}\n\n\t\t\t\tshadow /= 9.0;\n\n\t\t*/\n\n\t\t\t\tconst float shadowDelta = 1.0 / 9.0;\n\n\t\t\t\tfloat xPixelOffset = 1.0 / shadowMapSize[ i ].x;\n\t\t\t\tfloat yPixelOffset = 1.0 / shadowMapSize[ i ].y;\n\n\t\t\t\tfloat dx0 = -1.25 * xPixelOffset;\n\t\t\t\tfloat dy0 = -1.25 * yPixelOffset;\n\t\t\t\tfloat dx1 = 1.25 * xPixelOffset;\n\t\t\t\tfloat dy1 = 1.25 * yPixelOffset;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tfDepth = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\n\t\t\t\tif ( fDepth < shadowCoord.z ) shadow += shadowDelta;\n\n\t\t\t\tshadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n\n\t\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\n\t\t\t\t\t\t// Percentage-close filtering\n\t\t\t\t\t\t// (9 pixel kernel)\n\t\t\t\t\t\t// http://fabiensanglard.net/shadowmappingPCF/\n\n\t\t\t\tfloat shadow = 0.0;\n\n\t\t\t\tfloat xPixelOffset = 1.0 / shadowMapSize[ i ].x;\n\t\t\t\tfloat yPixelOffset = 1.0 / shadowMapSize[ i ].y;\n\n\t\t\t\tfloat dx0 = -1.0 * xPixelOffset;\n\t\t\t\tfloat dy0 = -1.0 * yPixelOffset;\n\t\t\t\tfloat dx1 = 1.0 * xPixelOffset;\n\t\t\t\tfloat dy1 = 1.0 * yPixelOffset;\n\n\t\t\t\tmat3 shadowKernel;\n\t\t\t\tmat3 depthKernel;\n\n\t\t\t\tdepthKernel[0][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy0 ) ) );\n\t\t\t\tdepthKernel[0][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, 0.0 ) ) );\n\t\t\t\tdepthKernel[0][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx0, dy1 ) ) );\n\t\t\t\tdepthKernel[1][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy0 ) ) );\n\t\t\t\tdepthKernel[1][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy ) );\n\t\t\t\tdepthKernel[1][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( 0.0, dy1 ) ) );\n\t\t\t\tdepthKernel[2][0] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy0 ) ) );\n\t\t\t\tdepthKernel[2][1] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, 0.0 ) ) );\n\t\t\t\tdepthKernel[2][2] = unpackDepth( texture2D( shadowMap[ i ], shadowCoord.xy + vec2( dx1, dy1 ) ) );\n\n\t\t\t\tvec3 shadowZ = vec3( shadowCoord.z );\n\t\t\t\tshadowKernel[0] = vec3(lessThan(depthKernel[0], shadowZ ));\n\t\t\t\tshadowKernel[0] *= vec3(0.25);\n\n\t\t\t\tshadowKernel[1] = vec3(lessThan(depthKernel[1], shadowZ ));\n\t\t\t\tshadowKernel[1] *= vec3(0.25);\n\n\t\t\t\tshadowKernel[2] = vec3(lessThan(depthKernel[2], shadowZ ));\n\t\t\t\tshadowKernel[2] *= vec3(0.25);\n\n\t\t\t\tvec2 fractionalCoord = 1.0 - fract( shadowCoord.xy * shadowMapSize[i].xy );\n\n\t\t\t\tshadowKernel[0] = mix( shadowKernel[1], shadowKernel[0], fractionalCoord.x );\n\t\t\t\tshadowKernel[1] = mix( shadowKernel[2], shadowKernel[1], fractionalCoord.x );\n\n\t\t\t\tvec4 shadowValues;\n\t\t\t\tshadowValues.x = mix( shadowKernel[0][1], shadowKernel[0][0], fractionalCoord.y );\n\t\t\t\tshadowValues.y = mix( shadowKernel[0][2], shadowKernel[0][1], fractionalCoord.y );\n\t\t\t\tshadowValues.z = mix( shadowKernel[1][1], shadowKernel[1][0], fractionalCoord.y );\n\t\t\t\tshadowValues.w = mix( shadowKernel[1][2], shadowKernel[1][1], fractionalCoord.y );\n\n\t\t\t\tshadow = dot( shadowValues, vec4( 1.0 ) );\n\n\t\t\t\tshadowColor = shadowColor * vec3( ( 1.0 - shadowDarkness[ i ] * shadow ) );\n\n\t\t\t#else\n\n\t\t\t\tvec4 rgbaDepth = texture2D( shadowMap[ i ], shadowCoord.xy );\n\t\t\t\tfloat fDepth = unpackDepth( rgbaDepth );\n\n\t\t\t\tif ( fDepth < shadowCoord.z )\n\n\t\t// spot with multiple shadows is darker\n\n\t\t\t\t\tshadowColor = shadowColor * vec3( 1.0 - shadowDarkness[ i ] );\n\n\t\t// spot with multiple shadows has the same color as single shadow spot\n\n\t\t// \t\t\t\t\tshadowColor = min( shadowColor, vec3( shadowDarkness[ i ] ) );\n\n\t\t\t#endif\n\n\t\t}\n\n\n\t\t#ifdef SHADOWMAP_DEBUG\n\n\t\t\t#ifdef SHADOWMAP_CASCADE\n\n\t\t\t\tif ( inFrustum && inFrustumCount == 1 ) outgoingLight *= frustumColors[ i ];\n\n\t\t\t#else\n\n\t\t\t\tif ( inFrustum ) outgoingLight *= frustumColors[ i ];\n\n\t\t\t#endif\n\n\t\t#endif\n\n\t}\n\n\t// NOTE: I am unsure if this is correct in linear space. -bhouston, Dec 29, 2014\n\tshadowColor = inputToLinear( shadowColor );\n\n\toutgoingLight = outgoingLight * shadowColor;\n\n#endif\n"; +THREE.ShaderChunk.worldpos_vertex="#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\n\n\t#ifdef USE_SKINNING\n\n\t\tvec4 worldPosition = modelMatrix * skinned;\n\n\t#elif defined( USE_MORPHTARGETS )\n\n\t\tvec4 worldPosition = modelMatrix * vec4( morphed, 1.0 );\n\n\t#else\n\n\t\tvec4 worldPosition = modelMatrix * vec4( position, 1.0 );\n\n\t#endif\n\n#endif\n";THREE.ShaderChunk.shadowmap_pars_fragment="#ifdef USE_SHADOWMAP\n\n\tuniform sampler2D shadowMap[ MAX_SHADOWS ];\n\tuniform vec2 shadowMapSize[ MAX_SHADOWS ];\n\n\tuniform float shadowDarkness[ MAX_SHADOWS ];\n\tuniform float shadowBias[ MAX_SHADOWS ];\n\n\tvarying vec4 vShadowCoord[ MAX_SHADOWS ];\n\n\tfloat unpackDepth( const in vec4 rgba_depth ) {\n\n\t\tconst vec4 bit_shift = vec4( 1.0 / ( 256.0 * 256.0 * 256.0 ), 1.0 / ( 256.0 * 256.0 ), 1.0 / 256.0, 1.0 );\n\t\tfloat depth = dot( rgba_depth, bit_shift );\n\t\treturn depth;\n\n\t}\n\n#endif"; +THREE.ShaderChunk.skinning_pars_vertex="#ifdef USE_SKINNING\n\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\n\t#ifdef BONE_TEXTURE\n\n\t\tuniform sampler2D boneTexture;\n\t\tuniform int boneTextureWidth;\n\t\tuniform int boneTextureHeight;\n\n\t\tmat4 getBoneMatrix( const in float i ) {\n\n\t\t\tfloat j = i * 4.0;\n\t\t\tfloat x = mod( j, float( boneTextureWidth ) );\n\t\t\tfloat y = floor( j / float( boneTextureWidth ) );\n\n\t\t\tfloat dx = 1.0 / float( boneTextureWidth );\n\t\t\tfloat dy = 1.0 / float( boneTextureHeight );\n\n\t\t\ty = dy * ( y + 0.5 );\n\n\t\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\n\t\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\n\t\t\treturn bone;\n\n\t\t}\n\n\t#else\n\n\t\tuniform mat4 boneGlobalMatrices[ MAX_BONES ];\n\n\t\tmat4 getBoneMatrix( const in float i ) {\n\n\t\t\tmat4 bone = boneGlobalMatrices[ int(i) ];\n\t\t\treturn bone;\n\n\t\t}\n\n\t#endif\n\n#endif\n"; +THREE.ShaderChunk.logdepthbuf_pars_fragment="#ifdef USE_LOGDEPTHBUF\n\n\tuniform float logDepthBufFC;\n\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\n\t\t#extension GL_EXT_frag_depth : enable\n\t\tvarying float vFragDepth;\n\n\t#endif\n\n#endif";THREE.ShaderChunk.alphamap_fragment="#ifdef USE_ALPHAMAP\n\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n\n#endif\n";THREE.ShaderChunk.alphamap_pars_fragment="#ifdef USE_ALPHAMAP\n\n\tuniform sampler2D alphaMap;\n\n#endif\n"; +THREE.UniformsUtils={merge:function(a){for(var b={},c=0;c dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );",THREE.ShaderChunk.logdepthbuf_fragment,THREE.ShaderChunk.color_fragment,"\toutgoingLight = diffuseColor.rgb;",THREE.ShaderChunk.fog_fragment,"\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\n}"].join("\n")}, +depth:{uniforms:{mNear:{type:"f",value:1},mFar:{type:"f",value:2E3},opacity:{type:"f",value:1}},vertexShader:[THREE.ShaderChunk.common,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {",THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:["uniform float mNear;\nuniform float mFar;\nuniform float opacity;",THREE.ShaderChunk.common,THREE.ShaderChunk.logdepthbuf_pars_fragment, +"void main() {",THREE.ShaderChunk.logdepthbuf_fragment,"\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tfloat depth = gl_FragDepthEXT / gl_FragCoord.w;\n\t#else\n\t\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n\t#endif\n\tfloat color = 1.0 - smoothstep( mNear, mFar, depth );\n\tgl_FragColor = vec4( vec3( color ), opacity );\n}"].join("\n")},normal:{uniforms:{opacity:{type:"f",value:1}},vertexShader:["varying vec3 vNormal;",THREE.ShaderChunk.common,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.logdepthbuf_pars_vertex, +"void main() {\n\tvNormal = normalize( normalMatrix * normal );",THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:["uniform float opacity;\nvarying vec3 vNormal;",THREE.ShaderChunk.common,THREE.ShaderChunk.logdepthbuf_pars_fragment,"void main() {\n\tgl_FragColor = vec4( 0.5 * normalize( vNormal ) + 0.5, opacity );",THREE.ShaderChunk.logdepthbuf_fragment,"}"].join("\n")},cube:{uniforms:{tCube:{type:"t",value:null}, +tFlip:{type:"f",value:-1}},vertexShader:["varying vec3 vWorldPosition;",THREE.ShaderChunk.common,THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:["uniform samplerCube tCube;\nuniform float tFlip;\nvarying vec3 vWorldPosition;",THREE.ShaderChunk.common,THREE.ShaderChunk.logdepthbuf_pars_fragment, +"void main() {\n\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );",THREE.ShaderChunk.logdepthbuf_fragment,"}"].join("\n")},equirect:{uniforms:{tEquirect:{type:"t",value:null},tFlip:{type:"f",value:-1}},vertexShader:["varying vec3 vWorldPosition;",THREE.ShaderChunk.common,THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );", +THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:["uniform sampler2D tEquirect;\nuniform float tFlip;\nvarying vec3 vWorldPosition;",THREE.ShaderChunk.common,THREE.ShaderChunk.logdepthbuf_pars_fragment,"void main() {\nvec3 direction = normalize( vWorldPosition );\nvec2 sampleUV;\nsampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );\nsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\ngl_FragColor = texture2D( tEquirect, sampleUV );",THREE.ShaderChunk.logdepthbuf_fragment, +"}"].join("\n")},depthRGBA:{uniforms:{},vertexShader:[THREE.ShaderChunk.common,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.logdepthbuf_pars_vertex,"void main() {",THREE.ShaderChunk.skinbase_vertex,THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.logdepthbuf_vertex,"}"].join("\n"),fragmentShader:[THREE.ShaderChunk.common,THREE.ShaderChunk.logdepthbuf_pars_fragment,"vec4 pack_depth( const in float depth ) {\n\tconst vec4 bit_shift = vec4( 256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0 );\n\tconst vec4 bit_mask = vec4( 0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0 );\n\tvec4 res = mod( depth * bit_shift * vec4( 255 ), vec4( 256 ) ) / vec4( 255 );\n\tres -= res.xxyz * bit_mask;\n\treturn res;\n}\nvoid main() {", +THREE.ShaderChunk.logdepthbuf_fragment,"\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tgl_FragData[ 0 ] = pack_depth( gl_FragDepthEXT );\n\t#else\n\t\tgl_FragData[ 0 ] = pack_depth( gl_FragCoord.z );\n\t#endif\n}"].join("\n")}}; +THREE.WebGLRenderer=function(a){function b(a){var b=a.geometry;a=a.material;var c=b.vertices.length;if(a.attributes){void 0===b.__webglCustomAttributesList&&(b.__webglCustomAttributesList=[]);for(var d in a.attributes){var e=a.attributes[d];if(!e.__webglInitialized||e.createUniqueBuffers){e.__webglInitialized=!0;var f=1;"v2"===e.type?f=2:"v3"===e.type?f=3:"v4"===e.type?f=4:"c"===e.type&&(f=3);e.size=f;e.array=new Float32Array(c*f);e.buffer=m.createBuffer();e.buffer.belongsToAttribute=d;e.needsUpdate= +!0}b.__webglCustomAttributesList.push(e)}}}function c(a,b){return a.material instanceof THREE.MeshFaceMaterial?a.material.materials[b.materialIndex]:a.material}function d(a,b,c,d){c=c.attributes;var e=b.attributes;b=b.attributesKeys;for(var f=0,g=b.length;fh&&(e[u].counter+=1,k=e[u].hash+"_"+e[u].counter,k in s||(q={id:Qb++,faces3:[],materialIndex:u,vertices:0,numMorphTargets:l, +numMorphNormals:p},s[k]=q,t.push(q)));s[k].faces3.push(r);s[k].vertices+=3}f[g]=t;b.groupsNeedUpdate=!1}f=Ua[b.id];g=0;for(d=f.length;gY;Y++)pa=I[Y],Na[Ra]=pa.x,Na[Ra+1]= +pa.y,Na[Ra+2]=pa.z,Ra+=3;else for(Y=0;3>Y;Y++)Na[Ra]=H.x,Na[Ra+1]=H.y,Na[Ra+2]=H.z,Ra+=3;m.bindBuffer(m.ARRAY_BUFFER,v.__webglNormalBuffer);m.bufferData(m.ARRAY_BUFFER,Na,D)}if(vb&&Hb){y=0;for(z=$.length;yY;Y++)ab=U[Y],Ab[kb]=ab.x,Ab[kb+1]=ab.y,kb+=2;0Y;Y++)oa=O[Y],lb[yb]=oa.x,lb[yb+1]=oa.y, +yb+=2;0ya;ya++)gb[ya]=!B.autoScaleCubemaps||Rb||Ib?Ib? +X.image[ya].image:X.image[ya]:E(X.image[ya],qc);var Yb=gb[0],Zb=THREE.Math.isPowerOfTwo(Yb.width)&&THREE.Math.isPowerOfTwo(Yb.height),Wa=I(X.format),tb=I(X.type);A(m.TEXTURE_CUBE_MAP,X,Zb);for(ya=0;6>ya;ya++)if(Rb)for(var hb,$b=gb[ya].mipmaps,Fb=0,Sb=$b.length;Fb=Wb&&THREE.warn("WebGLRenderer: trying to use "+a+" texture units while this GPU supports only "+Wb);Mb+=1;return a}function w(a,b){a._modelViewMatrix.multiplyMatrices(b.matrixWorldInverse,a.matrixWorld);a._normalMatrix.getNormalMatrix(a._modelViewMatrix)} +function y(a,b,c,d){a[b]=c.r*d;a[b+1]=c.g*d;a[b+2]=c.b*d}function A(a,b,c){c?(m.texParameteri(a,m.TEXTURE_WRAP_S,I(b.wrapS)),m.texParameteri(a,m.TEXTURE_WRAP_T,I(b.wrapT)),m.texParameteri(a,m.TEXTURE_MAG_FILTER,I(b.magFilter)),m.texParameteri(a,m.TEXTURE_MIN_FILTER,I(b.minFilter))):(m.texParameteri(a,m.TEXTURE_WRAP_S,m.CLAMP_TO_EDGE),m.texParameteri(a,m.TEXTURE_WRAP_T,m.CLAMP_TO_EDGE),b.wrapS===THREE.ClampToEdgeWrapping&&b.wrapT===THREE.ClampToEdgeWrapping||THREE.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping. ( "+ +b.sourceFile+" )"),m.texParameteri(a,m.TEXTURE_MAG_FILTER,z(b.magFilter)),m.texParameteri(a,m.TEXTURE_MIN_FILTER,z(b.minFilter)),b.minFilter!==THREE.NearestFilter&&b.minFilter!==THREE.LinearFilter&&THREE.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter. ( "+b.sourceFile+" )"));(c=da.get("EXT_texture_filter_anisotropic"))&&b.type!==THREE.FloatType&&b.type!==THREE.HalfFloatType&&(1b||a.height>b){var c=b/Math.max(a.width,a.height),d=document.createElement("canvas");d.width=Math.floor(a.width*c);d.height=Math.floor(a.height*c);d.getContext("2d").drawImage(a,0,0,a.width,a.height,0,0,d.width,d.height);THREE.warn("THREE.WebGLRenderer: image is too big ("+a.width+"x"+a.height+"). Resized to "+d.width+"x"+d.height,a);return d}return a} +function G(a,b){m.bindRenderbuffer(m.RENDERBUFFER,a);b.depthBuffer&&!b.stencilBuffer?(m.renderbufferStorage(m.RENDERBUFFER,m.DEPTH_COMPONENT16,b.width,b.height),m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_ATTACHMENT,m.RENDERBUFFER,a)):b.depthBuffer&&b.stencilBuffer?(m.renderbufferStorage(m.RENDERBUFFER,m.DEPTH_STENCIL,b.width,b.height),m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_STENCIL_ATTACHMENT,m.RENDERBUFFER,a)):m.renderbufferStorage(m.RENDERBUFFER,m.RGBA4,b.width,b.height)}function F(a){a instanceof +THREE.WebGLRenderTargetCube?(m.bindTexture(m.TEXTURE_CUBE_MAP,a.__webglTexture),m.generateMipmap(m.TEXTURE_CUBE_MAP),m.bindTexture(m.TEXTURE_CUBE_MAP,null)):(m.bindTexture(m.TEXTURE_2D,a.__webglTexture),m.generateMipmap(m.TEXTURE_2D),m.bindTexture(m.TEXTURE_2D,null))}function z(a){return a===THREE.NearestFilter||a===THREE.NearestMipMapNearestFilter||a===THREE.NearestMipMapLinearFilter?m.NEAREST:m.LINEAR}function I(a){var b;if(a===THREE.RepeatWrapping)return m.REPEAT;if(a===THREE.ClampToEdgeWrapping)return m.CLAMP_TO_EDGE; +if(a===THREE.MirroredRepeatWrapping)return m.MIRRORED_REPEAT;if(a===THREE.NearestFilter)return m.NEAREST;if(a===THREE.NearestMipMapNearestFilter)return m.NEAREST_MIPMAP_NEAREST;if(a===THREE.NearestMipMapLinearFilter)return m.NEAREST_MIPMAP_LINEAR;if(a===THREE.LinearFilter)return m.LINEAR;if(a===THREE.LinearMipMapNearestFilter)return m.LINEAR_MIPMAP_NEAREST;if(a===THREE.LinearMipMapLinearFilter)return m.LINEAR_MIPMAP_LINEAR;if(a===THREE.UnsignedByteType)return m.UNSIGNED_BYTE;if(a===THREE.UnsignedShort4444Type)return m.UNSIGNED_SHORT_4_4_4_4; +if(a===THREE.UnsignedShort5551Type)return m.UNSIGNED_SHORT_5_5_5_1;if(a===THREE.UnsignedShort565Type)return m.UNSIGNED_SHORT_5_6_5;if(a===THREE.ByteType)return m.BYTE;if(a===THREE.ShortType)return m.SHORT;if(a===THREE.UnsignedShortType)return m.UNSIGNED_SHORT;if(a===THREE.IntType)return m.INT;if(a===THREE.UnsignedIntType)return m.UNSIGNED_INT;if(a===THREE.FloatType)return m.FLOAT;b=da.get("OES_texture_half_float");if(null!==b&&a===THREE.HalfFloatType)return b.HALF_FLOAT_OES;if(a===THREE.AlphaFormat)return m.ALPHA; +if(a===THREE.RGBFormat)return m.RGB;if(a===THREE.RGBAFormat)return m.RGBA;if(a===THREE.LuminanceFormat)return m.LUMINANCE;if(a===THREE.LuminanceAlphaFormat)return m.LUMINANCE_ALPHA;if(a===THREE.AddEquation)return m.FUNC_ADD;if(a===THREE.SubtractEquation)return m.FUNC_SUBTRACT;if(a===THREE.ReverseSubtractEquation)return m.FUNC_REVERSE_SUBTRACT;if(a===THREE.ZeroFactor)return m.ZERO;if(a===THREE.OneFactor)return m.ONE;if(a===THREE.SrcColorFactor)return m.SRC_COLOR;if(a===THREE.OneMinusSrcColorFactor)return m.ONE_MINUS_SRC_COLOR; +if(a===THREE.SrcAlphaFactor)return m.SRC_ALPHA;if(a===THREE.OneMinusSrcAlphaFactor)return m.ONE_MINUS_SRC_ALPHA;if(a===THREE.DstAlphaFactor)return m.DST_ALPHA;if(a===THREE.OneMinusDstAlphaFactor)return m.ONE_MINUS_DST_ALPHA;if(a===THREE.DstColorFactor)return m.DST_COLOR;if(a===THREE.OneMinusDstColorFactor)return m.ONE_MINUS_DST_COLOR;if(a===THREE.SrcAlphaSaturateFactor)return m.SRC_ALPHA_SATURATE;b=da.get("WEBGL_compressed_texture_s3tc");if(null!==b){if(a===THREE.RGB_S3TC_DXT1_Format)return b.COMPRESSED_RGB_S3TC_DXT1_EXT; +if(a===THREE.RGBA_S3TC_DXT1_Format)return b.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(a===THREE.RGBA_S3TC_DXT3_Format)return b.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(a===THREE.RGBA_S3TC_DXT5_Format)return b.COMPRESSED_RGBA_S3TC_DXT5_EXT}b=da.get("WEBGL_compressed_texture_pvrtc");if(null!==b){if(a===THREE.RGB_PVRTC_4BPPV1_Format)return b.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(a===THREE.RGB_PVRTC_2BPPV1_Format)return b.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(a===THREE.RGBA_PVRTC_4BPPV1_Format)return b.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG; +if(a===THREE.RGBA_PVRTC_2BPPV1_Format)return b.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}b=da.get("EXT_blend_minmax");if(null!==b){if(a===THREE.MinEquation)return b.MIN_EXT;if(a===THREE.MaxEquation)return b.MAX_EXT}return 0}console.log("THREE.WebGLRenderer",THREE.REVISION);a=a||{};var U=void 0!==a.canvas?a.canvas:document.createElement("canvas"),M=void 0!==a.context?a.context:null,H=1,L=void 0!==a.precision?a.precision:"highp",P=void 0!==a.alpha?a.alpha:!1,N=void 0!==a.depth?a.depth:!0,R=void 0!==a.stencil? +a.stencil:!0,V=void 0!==a.antialias?a.antialias:!1,J=void 0!==a.premultipliedAlpha?a.premultipliedAlpha:!0,oa=void 0!==a.preserveDrawingBuffer?a.preserveDrawingBuffer:!1,ja=void 0!==a.logarithmicDepthBuffer?a.logarithmicDepthBuffer:!1,ha=new THREE.Color(0),O=0,ca=[],ba={},qa=[],Ka=[],Qa=[],Xa=[],Ya=[];this.domElement=U;this.context=null;this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear=!0;this.gammaFactor=2;this.shadowMapEnabled=this.gammaOutput=this.gammaInput= +!1;this.shadowMapType=THREE.PCFShadowMap;this.shadowMapCullFace=THREE.CullFaceFront;this.shadowMapCascade=this.shadowMapDebug=!1;this.maxMorphTargets=8;this.maxMorphNormals=4;this.autoScaleCubemaps=!0;this.info={memory:{programs:0,geometries:0,textures:0},render:{calls:0,vertices:0,faces:0,points:0}};var B=this,Pa=[],ob=null,ab=null,ub=-1,ta="",vb=null,Mb=0,ib=0,bb=0,pb=U.width,qb=U.height,Xb=0,fc=0,cb=new THREE.Frustum,db=new THREE.Matrix4,wa=new THREE.Vector3,pa=new THREE.Vector3,Ob=!0,jc={ambient:[0, +0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[],decays:[]},spot:{length:0,colors:[],positions:[],distances:[],directions:[],anglesCos:[],exponents:[],decays:[]},hemi:{length:0,skyColors:[],groundColors:[],positions:[]}},m;try{var Yb={alpha:P,depth:N,stencil:R,antialias:V,premultipliedAlpha:J,preserveDrawingBuffer:oa};m=M||U.getContext("webgl",Yb)||U.getContext("experimental-webgl",Yb);if(null===m){if(null!==U.getContext("webgl"))throw"Error creating WebGL context with your selected attributes."; +throw"Error creating WebGL context.";}U.addEventListener("webglcontextlost",function(a){a.preventDefault();Zb();lc();ba={}},!1)}catch(rc){THREE.error("THREE.WebGLRenderer: "+rc)}var W=new THREE.WebGLState(m,I);void 0===m.getShaderPrecisionFormat&&(m.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}});var da=new THREE.WebGLExtensions(m);da.get("OES_texture_float");da.get("OES_texture_float_linear");da.get("OES_texture_half_float");da.get("OES_texture_half_float_linear"); +da.get("OES_standard_derivatives");ja&&da.get("EXT_frag_depth");var rb=function(a,b,c,d){!0===J&&(a*=d,b*=d,c*=d);m.clearColor(a,b,c,d)},lc=function(){m.clearColor(0,0,0,1);m.clearDepth(1);m.clearStencil(0);m.enable(m.DEPTH_TEST);m.depthFunc(m.LEQUAL);m.frontFace(m.CCW);m.cullFace(m.BACK);m.enable(m.CULL_FACE);m.enable(m.BLEND);m.blendEquation(m.FUNC_ADD);m.blendFunc(m.SRC_ALPHA,m.ONE_MINUS_SRC_ALPHA);m.viewport(ib,bb,pb,qb);rb(ha.r,ha.g,ha.b,O)},Zb=function(){vb=ob=null;ta="";ub=-1;Ob=!0;W.reset()}; +lc();this.context=m;this.state=W;var Wb=m.getParameter(m.MAX_TEXTURE_IMAGE_UNITS),sc=m.getParameter(m.MAX_VERTEX_TEXTURE_IMAGE_UNITS),tc=m.getParameter(m.MAX_TEXTURE_SIZE),qc=m.getParameter(m.MAX_CUBE_MAP_TEXTURE_SIZE),Vb=0b;b++)m.deleteFramebuffer(a.__webglFramebuffer[b]),m.deleteRenderbuffer(a.__webglRenderbuffer[b]);else m.deleteFramebuffer(a.__webglFramebuffer),m.deleteRenderbuffer(a.__webglRenderbuffer);delete a.__webglFramebuffer;delete a.__webglRenderbuffer}B.info.memory.textures--},ic=function(a){a=a.target;a.removeEventListener("dispose",ic);hc(a)},nc=function(a){for(var b= +"__webglVertexBuffer __webglNormalBuffer __webglTangentBuffer __webglColorBuffer __webglUVBuffer __webglUV2Buffer __webglSkinIndicesBuffer __webglSkinWeightsBuffer __webglFaceBuffer __webglLineBuffer __webglLineDistanceBuffer".split(" "),c=0,d=b.length;ch.length&&(console.warn("THREE.WebGLRenderer: Influences array is bigger than morphTargets array."),n.length=h.length);h=0;for(l=n.length;hd.numSupportedMorphTargets?(k.sort(g),k.length=d.numSupportedMorphTargets):k.length>d.numSupportedMorphNormals?k.sort(g):0===k.length&&k.push([0,0]);for(var h=0,p=d.numSupportedMorphTargets;hf;f++){a.__webglFramebuffer[f]=m.createFramebuffer();a.__webglRenderbuffer[f]=m.createRenderbuffer();m.texImage2D(m.TEXTURE_CUBE_MAP_POSITIVE_X+f,0,d,a.width,a.height,0,d,e,null);var g=a,h=m.TEXTURE_CUBE_MAP_POSITIVE_X+f;m.bindFramebuffer(m.FRAMEBUFFER, +a.__webglFramebuffer[f]);m.framebufferTexture2D(m.FRAMEBUFFER,m.COLOR_ATTACHMENT0,h,g.__webglTexture,0);G(a.__webglRenderbuffer[f],a)}c&&m.generateMipmap(m.TEXTURE_CUBE_MAP)}else a.__webglFramebuffer=m.createFramebuffer(),a.__webglRenderbuffer=a.shareDepthFrom?a.shareDepthFrom.__webglRenderbuffer:m.createRenderbuffer(),m.bindTexture(m.TEXTURE_2D,a.__webglTexture),A(m.TEXTURE_2D,a,c),m.texImage2D(m.TEXTURE_2D,0,d,a.width,a.height,0,d,e,null),d=m.TEXTURE_2D,m.bindFramebuffer(m.FRAMEBUFFER,a.__webglFramebuffer), +m.framebufferTexture2D(m.FRAMEBUFFER,m.COLOR_ATTACHMENT0,d,a.__webglTexture,0),a.shareDepthFrom?a.depthBuffer&&!a.stencilBuffer?m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_ATTACHMENT,m.RENDERBUFFER,a.__webglRenderbuffer):a.depthBuffer&&a.stencilBuffer&&m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_STENCIL_ATTACHMENT,m.RENDERBUFFER,a.__webglRenderbuffer):G(a.__webglRenderbuffer,a),c&&m.generateMipmap(m.TEXTURE_2D);b?m.bindTexture(m.TEXTURE_CUBE_MAP,null):m.bindTexture(m.TEXTURE_2D,null);m.bindRenderbuffer(m.RENDERBUFFER, +null);m.bindFramebuffer(m.FRAMEBUFFER,null)}a?(b=b?a.__webglFramebuffer[a.activeCubeFace]:a.__webglFramebuffer,c=a.width,a=a.height,e=d=0):(b=null,c=pb,a=qb,d=ib,e=bb);b!==ab&&(m.bindFramebuffer(m.FRAMEBUFFER,b),m.viewport(d,e,c,a),ab=b);Xb=c;fc=a};this.readRenderTargetPixels=function(a,b,c,d,e,f){if(!(a instanceof THREE.WebGLRenderTarget))console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");else if(a.__webglFramebuffer)if(a.format!==THREE.RGBAFormat)console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA format. readPixels can read only RGBA format."); +else{var g=!1;a.__webglFramebuffer!==ab&&(m.bindFramebuffer(m.FRAMEBUFFER,a.__webglFramebuffer),g=!0);m.checkFramebufferStatus(m.FRAMEBUFFER)===m.FRAMEBUFFER_COMPLETE?m.readPixels(b,c,d,e,m.RGBA,m.UNSIGNED_BYTE,f):console.error("THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.");g&&m.bindFramebuffer(m.FRAMEBUFFER,ab)}};this.initMaterial=function(){THREE.warn("THREE.WebGLRenderer: .initMaterial() has been removed.")};this.addPrePlugin=function(){THREE.warn("THREE.WebGLRenderer: .addPrePlugin() has been removed.")}; +this.addPostPlugin=function(){THREE.warn("THREE.WebGLRenderer: .addPostPlugin() has been removed.")};this.updateShadowMap=function(){THREE.warn("THREE.WebGLRenderer: .updateShadowMap() has been removed.")}}; +THREE.WebGLRenderTarget=function(a,b,c){this.width=a;this.height=b;c=c||{};this.wrapS=void 0!==c.wrapS?c.wrapS:THREE.ClampToEdgeWrapping;this.wrapT=void 0!==c.wrapT?c.wrapT:THREE.ClampToEdgeWrapping;this.magFilter=void 0!==c.magFilter?c.magFilter:THREE.LinearFilter;this.minFilter=void 0!==c.minFilter?c.minFilter:THREE.LinearMipMapLinearFilter;this.anisotropy=void 0!==c.anisotropy?c.anisotropy:1;this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1);this.format=void 0!==c.format?c.format: +THREE.RGBAFormat;this.type=void 0!==c.type?c.type:THREE.UnsignedByteType;this.depthBuffer=void 0!==c.depthBuffer?c.depthBuffer:!0;this.stencilBuffer=void 0!==c.stencilBuffer?c.stencilBuffer:!0;this.generateMipmaps=!0;this.shareDepthFrom=void 0!==c.shareDepthFrom?c.shareDepthFrom:null}; +THREE.WebGLRenderTarget.prototype={constructor:THREE.WebGLRenderTarget,setSize:function(a,b){this.width=a;this.height=b},clone:function(){var a=new THREE.WebGLRenderTarget(this.width,this.height);a.wrapS=this.wrapS;a.wrapT=this.wrapT;a.magFilter=this.magFilter;a.minFilter=this.minFilter;a.anisotropy=this.anisotropy;a.offset.copy(this.offset);a.repeat.copy(this.repeat);a.format=this.format;a.type=this.type;a.depthBuffer=this.depthBuffer;a.stencilBuffer=this.stencilBuffer;a.generateMipmaps=this.generateMipmaps; +a.shareDepthFrom=this.shareDepthFrom;return a},dispose:function(){this.dispatchEvent({type:"dispose"})}};THREE.EventDispatcher.prototype.apply(THREE.WebGLRenderTarget.prototype);THREE.WebGLRenderTargetCube=function(a,b,c){THREE.WebGLRenderTarget.call(this,a,b,c);this.activeCubeFace=0};THREE.WebGLRenderTargetCube.prototype=Object.create(THREE.WebGLRenderTarget.prototype);THREE.WebGLRenderTargetCube.prototype.constructor=THREE.WebGLRenderTargetCube; +THREE.WebGLExtensions=function(a){var b={};this.get=function(c){if(void 0!==b[c])return b[c];var d;switch(c){case "EXT_texture_filter_anisotropic":d=a.getExtension("EXT_texture_filter_anisotropic")||a.getExtension("MOZ_EXT_texture_filter_anisotropic")||a.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case "WEBGL_compressed_texture_s3tc":d=a.getExtension("WEBGL_compressed_texture_s3tc")||a.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc"); +break;case "WEBGL_compressed_texture_pvrtc":d=a.getExtension("WEBGL_compressed_texture_pvrtc")||a.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:d=a.getExtension(c)}null===d&&THREE.warn("THREE.WebGLRenderer: "+c+" extension not supported.");return b[c]=d}}; +THREE.WebGLProgram=function(){var a=0;return function(b,c,d,e){var f=b.context,g=d.defines,h=d.__webglShader.uniforms,k=d.attributes,l=d.__webglShader.vertexShader,p=d.__webglShader.fragmentShader,q=d.index0AttributeName;void 0===q&&!0===e.morphTargets&&(q="position");var n="SHADOWMAP_TYPE_BASIC";e.shadowMapType===THREE.PCFShadowMap?n="SHADOWMAP_TYPE_PCF":e.shadowMapType===THREE.PCFSoftShadowMap&&(n="SHADOWMAP_TYPE_PCF_SOFT");var t="ENVMAP_TYPE_CUBE",r="ENVMAP_MODE_REFLECTION",s="ENVMAP_BLENDING_MULTIPLY"; +if(e.envMap){switch(d.envMap.mapping){case THREE.CubeReflectionMapping:case THREE.CubeRefractionMapping:t="ENVMAP_TYPE_CUBE";break;case THREE.EquirectangularReflectionMapping:case THREE.EquirectangularRefractionMapping:t="ENVMAP_TYPE_EQUIREC";break;case THREE.SphericalReflectionMapping:t="ENVMAP_TYPE_SPHERE"}switch(d.envMap.mapping){case THREE.CubeRefractionMapping:case THREE.EquirectangularRefractionMapping:r="ENVMAP_MODE_REFRACTION"}switch(d.combine){case THREE.MultiplyOperation:s="ENVMAP_BLENDING_MULTIPLY"; +break;case THREE.MixOperation:s="ENVMAP_BLENDING_MIX";break;case THREE.AddOperation:s="ENVMAP_BLENDING_ADD"}}var u=0L;L++)I[L]=new THREE.Vector3,F[L]=new THREE.Vector3;I=z.shadowCascadeNearZ[H];z=z.shadowCascadeFarZ[H];F[0].set(-1,-1,I);F[1].set(1,-1,I);F[2].set(-1,1,I);F[3].set(1,1,I);F[4].set(-1,-1,z);F[5].set(1,-1,z);F[6].set(-1,1,z);F[7].set(1,1,z);M.originalCamera=v;F=new THREE.Gyroscope;F.position.copy(A.shadowCascadeOffset);F.add(M);F.add(M.target);v.add(F);A.shadowCascadeArray[G]=M}H=A;I=G;z=H.shadowCascadeArray[I];z.position.copy(H.position); +z.target.position.copy(H.target.position);z.lookAt(z.target);z.shadowCameraVisible=H.shadowCameraVisible;z.shadowDarkness=H.shadowDarkness;z.shadowBias=H.shadowCascadeBias[I];F=H.shadowCascadeNearZ[I];H=H.shadowCascadeFarZ[I];z=z.pointsFrustum;z[0].z=F;z[1].z=F;z[2].z=F;z[3].z=F;z[4].z=H;z[5].z=H;z[6].z=H;z[7].z=H;U[E]=M;E++}else U[E]=A,E++;u=0;for(y=U.length;u +H;H++)I=z[H],I.copy(F[H]),I.unproject(G),I.applyMatrix4(E.matrixWorldInverse),I.xt.x&&(t.x=I.x),I.yt.y&&(t.y=I.y),I.zt.z&&(t.z=I.z);E.left=n.x;E.right=t.x;E.top=t.y;E.bottom=n.y;E.updateProjectionMatrix()}E=A.shadowMap;F=A.shadowMatrix;G=A.shadowCamera;G.position.setFromMatrixPosition(A.matrixWorld);r.setFromMatrixPosition(A.target.matrixWorld);G.lookAt(r);G.updateMatrixWorld();G.matrixWorldInverse.getInverse(G.matrixWorld);A.cameraHelper&& +(A.cameraHelper.visible=A.shadowCameraVisible);A.shadowCameraVisible&&A.cameraHelper.update();F.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);F.multiply(G.projectionMatrix);F.multiply(G.matrixWorldInverse);q.multiplyMatrices(G.projectionMatrix,G.matrixWorldInverse);p.setFromMatrix(q);a.setRenderTarget(E);a.clear();s.length=0;e(c,c,G);A=0;for(E=s.length;A 0 ) {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat fogFactor = 0.0;\nif ( fogType == 1 ) {\nfogFactor = smoothstep( fogNear, fogFar, depth );\n} else {\nconst float LOG2 = 1.442695;\nfloat fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n}\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n}\n}"].join("\n")); +w.compileShader(L);w.compileShader(P);w.attachShader(H,L);w.attachShader(H,P);w.linkProgram(H);E=H;v=w.getAttribLocation(E,"position");x=w.getAttribLocation(E,"uv");c=w.getUniformLocation(E,"uvOffset");d=w.getUniformLocation(E,"uvScale");e=w.getUniformLocation(E,"rotation");f=w.getUniformLocation(E,"scale");g=w.getUniformLocation(E,"color");h=w.getUniformLocation(E,"map");k=w.getUniformLocation(E,"opacity");l=w.getUniformLocation(E,"modelViewMatrix");p=w.getUniformLocation(E,"projectionMatrix");q= +w.getUniformLocation(E,"fogType");n=w.getUniformLocation(E,"fogDensity");t=w.getUniformLocation(E,"fogNear");r=w.getUniformLocation(E,"fogFar");s=w.getUniformLocation(E,"fogColor");u=w.getUniformLocation(E,"alphaTest");H=document.createElement("canvas");H.width=8;H.height=8;L=H.getContext("2d");L.fillStyle="white";L.fillRect(0,0,8,8);G=new THREE.Texture(H);G.needsUpdate=!0}w.useProgram(E);w.enableVertexAttribArray(v);w.enableVertexAttribArray(x);w.disable(w.CULL_FACE);w.enable(w.BLEND);w.bindBuffer(w.ARRAY_BUFFER, +y);w.vertexAttribPointer(v,2,w.FLOAT,!1,16,0);w.vertexAttribPointer(x,2,w.FLOAT,!1,16,8);w.bindBuffer(w.ELEMENT_ARRAY_BUFFER,A);w.uniformMatrix4fv(p,!1,M.projectionMatrix.elements);w.activeTexture(w.TEXTURE0);w.uniform1i(h,0);L=H=0;(P=U.fog)?(w.uniform3f(s,P.color.r,P.color.g,P.color.b),P instanceof THREE.Fog?(w.uniform1f(t,P.near),w.uniform1f(r,P.far),w.uniform1i(q,1),L=H=1):P instanceof THREE.FogExp2&&(w.uniform1f(n,P.density),w.uniform1i(q,2),L=H=2)):(w.uniform1i(q,0),L=H=0);for(var P=0,N=b.length;P< +N;P++){var R=b[P];R._modelViewMatrix.multiplyMatrices(M.matrixWorldInverse,R.matrixWorld);R.z=-R._modelViewMatrix.elements[14]}b.sort(D);for(var V=[],P=0,N=b.length;Pq-1?0:q-1,t=q+1>e-1?e-1:q+1,r=0>p-1?0:p-1,s=p+1>d-1?d-1:p+1,u=[],v=[0,0,h[4*(q*d+p)]/255*b];u.push([-1,0,h[4*(q*d+r)]/255*b]);u.push([-1,-1,h[4*(n*d+r)]/255*b]);u.push([0,-1,h[4*(n*d+p)]/255*b]);u.push([1,-1,h[4*(n*d+s)]/255*b]);u.push([1,0,h[4*(q*d+s)]/255*b]);u.push([1,1,h[4*(t*d+s)]/255*b]);u.push([0,1,h[4*(t*d+p)]/255* +b]);u.push([-1,1,h[4*(t*d+r)]/255*b]);n=[];r=u.length;for(t=0;te)return null;var f=[],g=[],h=[],k,l,p;if(0=q--){THREE.warn("THREE.FontUtils: Warning, unable to triangulate polygon! in Triangulate.process()");break}k=l;e<=k&&(k=0);l=k+1;e<=l&&(l=0);p=l+1;e<=p&&(p=0);var n;a:{var t=n=void 0,r=void 0,s=void 0, +u=void 0,v=void 0,x=void 0,D=void 0,w=void 0,t=a[g[k]].x,r=a[g[k]].y,s=a[g[l]].x,u=a[g[l]].y,v=a[g[p]].x,x=a[g[p]].y;if(1E-10>(s-t)*(x-r)-(u-r)*(v-t))n=!1;else{var y=void 0,A=void 0,E=void 0,G=void 0,F=void 0,z=void 0,I=void 0,U=void 0,M=void 0,H=void 0,M=U=I=w=D=void 0,y=v-s,A=x-u,E=t-v,G=r-x,F=s-t,z=u-r;for(n=0;nk)g=d+1;else if(0b&&(b=0);1=b)return b=c[a]-b,a=this.curves[a],b=1-b/a.getLength(),a.getPointAt(b);a++}return null};THREE.CurvePath.prototype.getLength=function(){var a=this.getCurveLengths();return a[a.length-1]}; +THREE.CurvePath.prototype.getCurveLengths=function(){if(this.cacheLengths&&this.cacheLengths.length==this.curves.length)return this.cacheLengths;var a=[],b=0,c,d=this.curves.length;for(c=0;cb?b=h.x:h.xc?c=h.y:h.yd?d=h.z:h.zMath.abs(d.x-c[0].x)&&1E-10>Math.abs(d.y-c[0].y)&&c.splice(c.length-1,1);b&&c.push(c[0]);return c}; +THREE.Path.prototype.toShapes=function(a,b){function c(a){for(var b=[],c=0,d=a.length;cn&&(g=b[f],k=-k,h=b[e],n=-n),!(a.yh.y))if(a.y==g.y){if(a.x==g.x)return!0}else{e=n*(a.x-g.x)-k*(a.y-g.y);if(0==e)return!0;0>e||(d=!d)}}else if(a.y==g.y&&(h.x<=a.x&&a.x<=g.x||g.x<=a.x&&a.x<= +h.x))return!0}return d}var e=function(a){var b,c,d,e,f=[],g=new THREE.Path;b=0;for(c=a.length;bG||G>E)return[];k=l*p-k*q;if(0>k||k>E)return[]}else{if(0d?[]:k==d?f?[]:[g]:a<=d?[g,h]: +[g,l]}function e(a,b,c,d){var e=b.x-a.x,f=b.y-a.y;b=c.x-a.x;c=c.y-a.y;var g=d.x-a.x;d=d.y-a.y;a=e*c-f*b;e=e*d-f*g;return 1E-10f&&(f=d);var g=a+1;g>d&&(g=0);d=e(h[a],h[f],h[g],k[b]); +if(!d)return!1;d=k.length-1;f=b-1;0>f&&(f=d);g=b+1;g>d&&(g=0);return(d=e(k[b],k[f],k[g],h[a]))?!0:!1}function f(a,b){var c,e;for(c=0;c +H){console.log("Infinite Loop! Holes left:"+l.length+", Probably Hole outside Shape!");break}for(q=z;qh;h++)l=k[h].x+":"+k[h].y,l=p[l],void 0!==l&&(k[h]=l);return q.concat()},isClockWise:function(a){return 0>THREE.FontUtils.Triangulate.area(a)},b2p0:function(a,b){var c=1-a;return c*c*b},b2p1:function(a,b){return 2*(1-a)*a*b},b2p2:function(a,b){return a*a*b},b2:function(a,b,c,d){return this.b2p0(a,b)+this.b2p1(a,c)+this.b2p2(a,d)},b3p0:function(a,b){var c=1-a;return c*c*c*b},b3p1:function(a,b){var c=1-a;return 3*c*c*a*b},b3p2:function(a,b){return 3*(1-a)*a*a*b},b3p3:function(a,b){return a* +a*a*b},b3:function(a,b,c,d,e){return this.b3p0(a,b)+this.b3p1(a,c)+this.b3p2(a,d)+this.b3p3(a,e)}};THREE.LineCurve=function(a,b){this.v1=a;this.v2=b};THREE.LineCurve.prototype=Object.create(THREE.Curve.prototype);THREE.LineCurve.prototype.constructor=THREE.LineCurve;THREE.LineCurve.prototype.getPoint=function(a){var b=this.v2.clone().sub(this.v1);b.multiplyScalar(a).add(this.v1);return b};THREE.LineCurve.prototype.getPointAt=function(a){return this.getPoint(a)}; +THREE.LineCurve.prototype.getTangent=function(a){return this.v2.clone().sub(this.v1).normalize()};THREE.QuadraticBezierCurve=function(a,b,c){this.v0=a;this.v1=b;this.v2=c};THREE.QuadraticBezierCurve.prototype=Object.create(THREE.Curve.prototype);THREE.QuadraticBezierCurve.prototype.constructor=THREE.QuadraticBezierCurve; +THREE.QuadraticBezierCurve.prototype.getPoint=function(a){var b=new THREE.Vector2;b.x=THREE.Shape.Utils.b2(a,this.v0.x,this.v1.x,this.v2.x);b.y=THREE.Shape.Utils.b2(a,this.v0.y,this.v1.y,this.v2.y);return b};THREE.QuadraticBezierCurve.prototype.getTangent=function(a){var b=new THREE.Vector2;b.x=THREE.Curve.Utils.tangentQuadraticBezier(a,this.v0.x,this.v1.x,this.v2.x);b.y=THREE.Curve.Utils.tangentQuadraticBezier(a,this.v0.y,this.v1.y,this.v2.y);return b.normalize()}; +THREE.CubicBezierCurve=function(a,b,c,d){this.v0=a;this.v1=b;this.v2=c;this.v3=d};THREE.CubicBezierCurve.prototype=Object.create(THREE.Curve.prototype);THREE.CubicBezierCurve.prototype.constructor=THREE.CubicBezierCurve;THREE.CubicBezierCurve.prototype.getPoint=function(a){var b;b=THREE.Shape.Utils.b3(a,this.v0.x,this.v1.x,this.v2.x,this.v3.x);a=THREE.Shape.Utils.b3(a,this.v0.y,this.v1.y,this.v2.y,this.v3.y);return new THREE.Vector2(b,a)}; +THREE.CubicBezierCurve.prototype.getTangent=function(a){var b;b=THREE.Curve.Utils.tangentCubicBezier(a,this.v0.x,this.v1.x,this.v2.x,this.v3.x);a=THREE.Curve.Utils.tangentCubicBezier(a,this.v0.y,this.v1.y,this.v2.y,this.v3.y);b=new THREE.Vector2(b,a);b.normalize();return b};THREE.SplineCurve=function(a){this.points=void 0==a?[]:a};THREE.SplineCurve.prototype=Object.create(THREE.Curve.prototype);THREE.SplineCurve.prototype.constructor=THREE.SplineCurve; +THREE.SplineCurve.prototype.getPoint=function(a){var b=this.points;a*=b.length-1;var c=Math.floor(a);a-=c;var d=b[0==c?c:c-1],e=b[c],f=b[c>b.length-2?b.length-1:c+1],b=b[c>b.length-3?b.length-1:c+2],c=new THREE.Vector2;c.x=THREE.Curve.Utils.interpolate(d.x,e.x,f.x,b.x,a);c.y=THREE.Curve.Utils.interpolate(d.y,e.y,f.y,b.y,a);return c};THREE.EllipseCurve=function(a,b,c,d,e,f,g){this.aX=a;this.aY=b;this.xRadius=c;this.yRadius=d;this.aStartAngle=e;this.aEndAngle=f;this.aClockwise=g}; +THREE.EllipseCurve.prototype=Object.create(THREE.Curve.prototype);THREE.EllipseCurve.prototype.constructor=THREE.EllipseCurve;THREE.EllipseCurve.prototype.getPoint=function(a){var b=this.aEndAngle-this.aStartAngle;0>b&&(b+=2*Math.PI);b>2*Math.PI&&(b-=2*Math.PI);a=!0===this.aClockwise?this.aEndAngle+(1-a)*(2*Math.PI-b):this.aStartAngle+a*b;b=new THREE.Vector2;b.x=this.aX+this.xRadius*Math.cos(a);b.y=this.aY+this.yRadius*Math.sin(a);return b}; +THREE.ArcCurve=function(a,b,c,d,e,f){THREE.EllipseCurve.call(this,a,b,c,c,d,e,f)};THREE.ArcCurve.prototype=Object.create(THREE.EllipseCurve.prototype);THREE.ArcCurve.prototype.constructor=THREE.ArcCurve;THREE.LineCurve3=THREE.Curve.create(function(a,b){this.v1=a;this.v2=b},function(a){var b=new THREE.Vector3;b.subVectors(this.v2,this.v1);b.multiplyScalar(a);b.add(this.v1);return b}); +THREE.QuadraticBezierCurve3=THREE.Curve.create(function(a,b,c){this.v0=a;this.v1=b;this.v2=c},function(a){var b=new THREE.Vector3;b.x=THREE.Shape.Utils.b2(a,this.v0.x,this.v1.x,this.v2.x);b.y=THREE.Shape.Utils.b2(a,this.v0.y,this.v1.y,this.v2.y);b.z=THREE.Shape.Utils.b2(a,this.v0.z,this.v1.z,this.v2.z);return b}); +THREE.CubicBezierCurve3=THREE.Curve.create(function(a,b,c,d){this.v0=a;this.v1=b;this.v2=c;this.v3=d},function(a){var b=new THREE.Vector3;b.x=THREE.Shape.Utils.b3(a,this.v0.x,this.v1.x,this.v2.x,this.v3.x);b.y=THREE.Shape.Utils.b3(a,this.v0.y,this.v1.y,this.v2.y,this.v3.y);b.z=THREE.Shape.Utils.b3(a,this.v0.z,this.v1.z,this.v2.z,this.v3.z);return b}); +THREE.SplineCurve3=THREE.Curve.create(function(a){this.points=void 0==a?[]:a},function(a){var b=this.points;a*=b.length-1;var c=Math.floor(a);a-=c;var d=b[0==c?c:c-1],e=b[c],f=b[c>b.length-2?b.length-1:c+1],b=b[c>b.length-3?b.length-1:c+2],c=new THREE.Vector3;c.x=THREE.Curve.Utils.interpolate(d.x,e.x,f.x,b.x,a);c.y=THREE.Curve.Utils.interpolate(d.y,e.y,f.y,b.y,a);c.z=THREE.Curve.Utils.interpolate(d.z,e.z,f.z,b.z,a);return c}); +THREE.ClosedSplineCurve3=THREE.Curve.create(function(a){this.points=void 0==a?[]:a},function(a){var b=this.points;a*=b.length-0;var c=Math.floor(a);a-=c;var c=c+(0a.hierarchy[b].keys[c].time&&(a.hierarchy[b].keys[c].time= +0),void 0!==a.hierarchy[b].keys[c].rot&&!(a.hierarchy[b].keys[c].rot instanceof THREE.Quaternion)){var d=a.hierarchy[b].keys[c].rot;a.hierarchy[b].keys[c].rot=(new THREE.Quaternion).fromArray(d)}if(a.hierarchy[b].keys.length&&void 0!==a.hierarchy[b].keys[0].morphTargets){d={};for(c=0;cc;c++){for(var d=this.keyTypes[c],e=this.data.hierarchy[a].keys[0],g=this.getNextKeyWith(d,a,1);g.timee.index;)e=g,g=this.getNextKeyWith(d,a,g.index+1);f.prevKey[d]=e;f.nextKey[d]=g}}},resetBlendWeights:function(){for(var a=0,b=this.hierarchy.length;aa.length-2?q:q+1;c[3]=q>a.length-3?q:q+2;q=a[c[0]];t=a[c[1]];r=a[c[2]];s=a[c[3]];c=e*e;n=e*c;d[0]=f(q[0],t[0],r[0],s[0],e,c,n);d[1]=f(q[1],t[1],r[1],s[1],e,c,n);d[2]=f(q[2],t[2],r[2],s[2],e,c,n);return d},f=function(a,b,c,d, +e,f,n){a=.5*(c-a);d=.5*(d-b);return(2*(b-c)+a+d)*n+(-3*(b-c)-2*a-d)*f+a*e+b};return function(f){if(!1!==this.isPlaying&&(this.currentTime+=f*this.timeScale,0!==this.weight)){f=this.data.length;if(this.currentTime>f||0>this.currentTime)this.loop?(this.currentTime%=f,0>this.currentTime&&(this.currentTime+=f),this.reset()):this.stop();f=0;for(var h=this.hierarchy.length;fq;q++){var n=this.keyTypes[q], +t=l.prevKey[n],r=l.nextKey[n];if(0this.timeScale&&t.time>=this.currentTime){t=this.data.hierarchy[f].keys[0];for(r=this.getNextKeyWith(n,f,1);r.timet.index;)t=r,r=this.getNextKeyWith(n,f,r.index+1);l.prevKey[n]=t;l.nextKey[n]=r}var s=(this.currentTime-t.time)/(r.time-t.time),u=t[n],v=r[n];0>s&&(s=0);1a&&(this.currentTime%=a);this.currentTime=Math.min(this.currentTime,a);a=0;for(var b=this.hierarchy.length;af.index;)f=g,g=e[f.index+1];d.prevKey=f;d.nextKey=g}g.time>=this.currentTime?f.interpolate(g,this.currentTime): +f.interpolate(g,g.time);this.data.hierarchy[a].node.updateMatrix();c.matrixWorldNeedsUpdate=!0}}}},getNextKeyWith:function(a,b,c){b=this.data.hierarchy[b].keys;for(c%=b.length;cthis.duration&&(this.currentTime%=this.duration);this.currentTime=Math.min(this.currentTime,this.duration);a=this.duration/this.frames;var b=Math.floor(this.currentTime/a),c=this.mesh.morphTargetInfluences;b!=this.currentFrame&&(c[this.lastFrame]=0,c[this.currentFrame]= +1,c[b]=0,this.lastFrame=this.currentFrame,this.currentFrame=b);c[b]=this.currentTime%a/a;c[this.lastFrame]=1-c[b]}}}; +THREE.BoxGeometry=function(a,b,c,d,e,f){function g(a,b,c,d,e,f,g,s){var u,v=h.widthSegments,x=h.heightSegments,D=e/2,w=f/2,y=h.vertices.length;if("x"===a&&"y"===b||"y"===a&&"x"===b)u="z";else if("x"===a&&"z"===b||"z"===a&&"x"===b)u="y",x=h.depthSegments;else if("z"===a&&"y"===b||"y"===a&&"z"===b)u="x",v=h.depthSegments;var A=v+1,E=x+1,G=e/v,F=f/x,z=new THREE.Vector3;z[u]=0=d)return new THREE.Vector2(c,a);d=Math.sqrt(d/2)}else a=!1,1E-10d?-1E-10>f&&(a=!0):Math.sign(e)==Math.sign(g)&&(a=!0),a?(c=-e,a=d,d=Math.sqrt(h)):(c=d,a=e,d=Math.sqrt(h/2));return new THREE.Vector2(c/d,a/d)}function e(a,b){var c,d;for(O=a.length;0<=--O;){c=O;d=O-1;0>d&&(d=a.length-1);for(var e=0,f=t+2*p,e=0;eMath.abs(b.y-c.y)?[new THREE.Vector2(b.x,1-b.z),new THREE.Vector2(c.x,1-c.z),new THREE.Vector2(d.x,1-d.z),new THREE.Vector2(e.x,1-e.z)]:[new THREE.Vector2(b.y,1-b.z),new THREE.Vector2(c.y,1-c.z),new THREE.Vector2(d.y, +1-d.z),new THREE.Vector2(e.y,1-e.z)]}};THREE.ShapeGeometry=function(a,b){THREE.Geometry.call(this);this.type="ShapeGeometry";!1===a instanceof Array&&(a=[a]);this.addShapeList(a,b);this.computeFaceNormals()};THREE.ShapeGeometry.prototype=Object.create(THREE.Geometry.prototype);THREE.ShapeGeometry.prototype.constructor=THREE.ShapeGeometry;THREE.ShapeGeometry.prototype.addShapeList=function(a,b){for(var c=0,d=a.length;cc&&1===a.x&&(a=new THREE.Vector2(a.x-1,a.y));0===b.x&&0===b.z&&(a=new THREE.Vector2(c/2/Math.PI+.5,a.y));return a.clone()} +THREE.Geometry.call(this);this.type="PolyhedronGeometry";this.parameters={vertices:a,indices:b,radius:c,detail:d};c=c||1;d=d||0;for(var k=this,l=0,p=a.length;lt&&(.2>d&&(b[0].x+=1),.2>a&&(b[1].x+=1),.2>q&&(b[2].x+=1));l=0;for(p=this.vertices.length;lc.y?this.quaternion.set(1,0,0,0):(a.set(c.z,0,-c.x).normalize(),b=Math.acos(c.y),this.quaternion.setFromAxisAngle(a,b))}}();THREE.ArrowHelper.prototype.setLength=function(a,b,c){void 0===b&&(b=.2*a);void 0===c&&(c=.2*b);this.line.scale.set(1,a-b,1);this.line.updateMatrix();this.cone.scale.set(c,b,c);this.cone.position.y=a;this.cone.updateMatrix()}; +THREE.ArrowHelper.prototype.setColor=function(a){this.line.material.color.set(a);this.cone.material.color.set(a)};THREE.BoxHelper=function(a){var b=new THREE.BufferGeometry;b.addAttribute("position",new THREE.BufferAttribute(new Float32Array(72),3));THREE.Line.call(this,b,new THREE.LineBasicMaterial({color:16776960}),THREE.LinePieces);void 0!==a&&this.update(a)};THREE.BoxHelper.prototype=Object.create(THREE.Line.prototype);THREE.BoxHelper.prototype.constructor=THREE.BoxHelper; +THREE.BoxHelper.prototype.update=function(a){var b=a.geometry;null===b.boundingBox&&b.computeBoundingBox();var c=b.boundingBox.min,b=b.boundingBox.max,d=this.geometry.attributes.position.array;d[0]=b.x;d[1]=b.y;d[2]=b.z;d[3]=c.x;d[4]=b.y;d[5]=b.z;d[6]=c.x;d[7]=b.y;d[8]=b.z;d[9]=c.x;d[10]=c.y;d[11]=b.z;d[12]=c.x;d[13]=c.y;d[14]=b.z;d[15]=b.x;d[16]=c.y;d[17]=b.z;d[18]=b.x;d[19]=c.y;d[20]=b.z;d[21]=b.x;d[22]=b.y;d[23]=b.z;d[24]=b.x;d[25]=b.y;d[26]=c.z;d[27]=c.x;d[28]=b.y;d[29]=c.z;d[30]=c.x;d[31]=b.y; +d[32]=c.z;d[33]=c.x;d[34]=c.y;d[35]=c.z;d[36]=c.x;d[37]=c.y;d[38]=c.z;d[39]=b.x;d[40]=c.y;d[41]=c.z;d[42]=b.x;d[43]=c.y;d[44]=c.z;d[45]=b.x;d[46]=b.y;d[47]=c.z;d[48]=b.x;d[49]=b.y;d[50]=b.z;d[51]=b.x;d[52]=b.y;d[53]=c.z;d[54]=c.x;d[55]=b.y;d[56]=b.z;d[57]=c.x;d[58]=b.y;d[59]=c.z;d[60]=c.x;d[61]=c.y;d[62]=b.z;d[63]=c.x;d[64]=c.y;d[65]=c.z;d[66]=b.x;d[67]=c.y;d[68]=b.z;d[69]=b.x;d[70]=c.y;d[71]=c.z;this.geometry.attributes.position.needsUpdate=!0;this.geometry.computeBoundingSphere();this.matrix=a.matrixWorld; +this.matrixAutoUpdate=!1};THREE.BoundingBoxHelper=function(a,b){var c=void 0!==b?b:8947848;this.object=a;this.box=new THREE.Box3;THREE.Mesh.call(this,new THREE.BoxGeometry(1,1,1),new THREE.MeshBasicMaterial({color:c,wireframe:!0}))};THREE.BoundingBoxHelper.prototype=Object.create(THREE.Mesh.prototype);THREE.BoundingBoxHelper.prototype.constructor=THREE.BoundingBoxHelper;THREE.BoundingBoxHelper.prototype.update=function(){this.box.setFromObject(this.object);this.box.size(this.scale);this.box.center(this.position)}; +THREE.CameraHelper=function(a){function b(a,b,d){c(a,d);c(b,d)}function c(a,b){d.vertices.push(new THREE.Vector3);d.colors.push(new THREE.Color(b));void 0===f[a]&&(f[a]=[]);f[a].push(d.vertices.length-1)}var d=new THREE.Geometry,e=new THREE.LineBasicMaterial({color:16777215,vertexColors:THREE.FaceColors}),f={};b("n1","n2",16755200);b("n2","n4",16755200);b("n4","n3",16755200);b("n3","n1",16755200);b("f1","f2",16755200);b("f2","f4",16755200);b("f4","f3",16755200);b("f3","f1",16755200);b("n1","f1",16755200); +b("n2","f2",16755200);b("n3","f3",16755200);b("n4","f4",16755200);b("p","n1",16711680);b("p","n2",16711680);b("p","n3",16711680);b("p","n4",16711680);b("u1","u2",43775);b("u2","u3",43775);b("u3","u1",43775);b("c","t",16777215);b("p","c",3355443);b("cn1","cn2",3355443);b("cn3","cn4",3355443);b("cf1","cf2",3355443);b("cf3","cf4",3355443);THREE.Line.call(this,d,e,THREE.LinePieces);this.camera=a;this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1;this.pointMap=f;this.update()}; +THREE.CameraHelper.prototype=Object.create(THREE.Line.prototype);THREE.CameraHelper.prototype.constructor=THREE.CameraHelper; +THREE.CameraHelper.prototype.update=function(){var a,b,c=new THREE.Vector3,d=new THREE.Camera,e=function(e,g,h,k){c.set(g,h,k).unproject(d);e=b[e];if(void 0!==e)for(g=0,h=e.length;gr;r++){d[0]=t[g[r]];d[1]=t[g[(r+1)%3]];d.sort(f);var s=d.toString(); +void 0===e[s]?(e[s]={vert1:d[0],vert2:d[1],face1:q,face2:void 0},p++):e[s].face2=q}d=new Float32Array(6*p);f=0;for(s in e)if(g=e[s],void 0===g.face2||k[g.face1].normal.dot(k[g.face2].normal)<=c)p=l[g.vert1],d[f++]=p.x,d[f++]=p.y,d[f++]=p.z,p=l[g.vert2],d[f++]=p.x,d[f++]=p.y,d[f++]=p.z;h.addAttribute("position",new THREE.BufferAttribute(d,3));THREE.Line.call(this,h,new THREE.LineBasicMaterial({color:b}),THREE.LinePieces);this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1}; +THREE.EdgesHelper.prototype=Object.create(THREE.Line.prototype);THREE.EdgesHelper.prototype.constructor=THREE.EdgesHelper; +THREE.FaceNormalsHelper=function(a,b,c,d){this.object=a;this.size=void 0!==b?b:1;a=void 0!==c?c:16776960;d=void 0!==d?d:1;b=new THREE.Geometry;c=0;for(var e=this.object.geometry.faces.length;cd;d++)c.faces[d].color=this.colors[4>d?0:1];d=new THREE.MeshBasicMaterial({vertexColors:THREE.FaceColors,wireframe:!0});this.lightSphere=new THREE.Mesh(c,d);this.add(this.lightSphere); +this.update()};THREE.HemisphereLightHelper.prototype=Object.create(THREE.Object3D.prototype);THREE.HemisphereLightHelper.prototype.constructor=THREE.HemisphereLightHelper;THREE.HemisphereLightHelper.prototype.dispose=function(){this.lightSphere.geometry.dispose();this.lightSphere.material.dispose()}; +THREE.HemisphereLightHelper.prototype.update=function(){var a=new THREE.Vector3;return function(){this.colors[0].copy(this.light.color).multiplyScalar(this.light.intensity);this.colors[1].copy(this.light.groundColor).multiplyScalar(this.light.intensity);this.lightSphere.lookAt(a.setFromMatrixPosition(this.light.matrixWorld).negate());this.lightSphere.geometry.colorsNeedUpdate=!0}}(); +THREE.PointLightHelper=function(a,b){this.light=a;this.light.updateMatrixWorld();var c=new THREE.SphereGeometry(b,4,2),d=new THREE.MeshBasicMaterial({wireframe:!0,fog:!1});d.color.copy(this.light.color).multiplyScalar(this.light.intensity);THREE.Mesh.call(this,c,d);this.matrix=this.light.matrixWorld;this.matrixAutoUpdate=!1};THREE.PointLightHelper.prototype=Object.create(THREE.Mesh.prototype);THREE.PointLightHelper.prototype.constructor=THREE.PointLightHelper; +THREE.PointLightHelper.prototype.dispose=function(){this.geometry.dispose();this.material.dispose()};THREE.PointLightHelper.prototype.update=function(){this.material.color.copy(this.light.color).multiplyScalar(this.light.intensity)}; +THREE.SkeletonHelper=function(a){this.bones=this.getBoneList(a);for(var b=new THREE.Geometry,c=0;cs;s++){d[0]=r[g[s]];d[1]=r[g[(s+1)%3]];d.sort(f);var u=d.toString();void 0===e[u]&&(q[2*p]=d[0],q[2*p+1]=d[1],e[u]=!0,p++)}d=new Float32Array(6*p);n=0;for(t=p;ns;s++)p= +k[q[2*n+s]],g=6*n+3*s,d[g+0]=p.x,d[g+1]=p.y,d[g+2]=p.z;h.addAttribute("position",new THREE.BufferAttribute(d,3))}else if(a.geometry instanceof THREE.BufferGeometry){if(void 0!==a.geometry.attributes.index){k=a.geometry.attributes.position.array;t=a.geometry.attributes.index.array;l=a.geometry.drawcalls;p=0;0===l.length&&(l=[{count:t.length,index:0,start:0}]);for(var q=new Uint32Array(2*t.length),r=0,v=l.length;rs;s++)d[0]= +g+t[n+s],d[1]=g+t[n+(s+1)%3],d.sort(f),u=d.toString(),void 0===e[u]&&(q[2*p]=d[0],q[2*p+1]=d[1],e[u]=!0,p++);d=new Float32Array(6*p);n=0;for(t=p;ns;s++)g=6*n+3*s,p=3*q[2*n+s],d[g+0]=k[p],d[g+1]=k[p+1],d[g+2]=k[p+2]}else for(k=a.geometry.attributes.position.array,p=k.length/3,q=p/3,d=new Float32Array(6*p),n=0,t=q;ns;s++)g=18*n+6*s,q=9*n+3*s,d[g+0]=k[q],d[g+1]=k[q+1],d[g+2]=k[q+2],p=9*n+(s+1)%3*3,d[g+3]=k[p],d[g+4]=k[p+1],d[g+5]=k[p+2];h.addAttribute("position",new THREE.BufferAttribute(d, +3))}THREE.Line.call(this,h,new THREE.LineBasicMaterial({color:c}),THREE.LinePieces);this.matrix=a.matrixWorld;this.matrixAutoUpdate=!1};THREE.WireframeHelper.prototype=Object.create(THREE.Line.prototype);THREE.WireframeHelper.prototype.constructor=THREE.WireframeHelper;THREE.ImmediateRenderObject=function(){THREE.Object3D.call(this);this.render=function(a){}};THREE.ImmediateRenderObject.prototype=Object.create(THREE.Object3D.prototype);THREE.ImmediateRenderObject.prototype.constructor=THREE.ImmediateRenderObject; +THREE.MorphBlendMesh=function(a,b){THREE.Mesh.call(this,a,b);this.animationsMap={};this.animationsList=[];var c=this.geometry.morphTargets.length;this.createAnimation("__default",0,c-1,c/1);this.setAnimationWeight("__default",1)};THREE.MorphBlendMesh.prototype=Object.create(THREE.Mesh.prototype);THREE.MorphBlendMesh.prototype.constructor=THREE.MorphBlendMesh; +THREE.MorphBlendMesh.prototype.createAnimation=function(a,b,c,d){b={startFrame:b,endFrame:c,length:c-b+1,fps:d,duration:(c-b)/d,lastFrame:0,currentFrame:0,active:!1,time:0,direction:1,weight:1,directionBackwards:!1,mirroredLoop:!1};this.animationsMap[a]=b;this.animationsList.push(b)}; +THREE.MorphBlendMesh.prototype.autoCreateAnimations=function(a){for(var b=/([a-z]+)_?(\d+)/,c,d={},e=this.geometry,f=0,g=e.morphTargets.length;fh.end&&(h.end=f);c||(c=k)}}for(k in d)h=d[k],this.createAnimation(k,h.start,h.end,a);this.firstAnimation=c}; +THREE.MorphBlendMesh.prototype.setAnimationDirectionForward=function(a){if(a=this.animationsMap[a])a.direction=1,a.directionBackwards=!1};THREE.MorphBlendMesh.prototype.setAnimationDirectionBackward=function(a){if(a=this.animationsMap[a])a.direction=-1,a.directionBackwards=!0};THREE.MorphBlendMesh.prototype.setAnimationFPS=function(a,b){var c=this.animationsMap[a];c&&(c.fps=b,c.duration=(c.end-c.start)/c.fps)}; +THREE.MorphBlendMesh.prototype.setAnimationDuration=function(a,b){var c=this.animationsMap[a];c&&(c.duration=b,c.fps=(c.end-c.start)/c.duration)};THREE.MorphBlendMesh.prototype.setAnimationWeight=function(a,b){var c=this.animationsMap[a];c&&(c.weight=b)};THREE.MorphBlendMesh.prototype.setAnimationTime=function(a,b){var c=this.animationsMap[a];c&&(c.time=b)};THREE.MorphBlendMesh.prototype.getAnimationTime=function(a){var b=0;if(a=this.animationsMap[a])b=a.time;return b}; +THREE.MorphBlendMesh.prototype.getAnimationDuration=function(a){var b=-1;if(a=this.animationsMap[a])b=a.duration;return b};THREE.MorphBlendMesh.prototype.playAnimation=function(a){var b=this.animationsMap[a];b?(b.time=0,b.active=!0):THREE.warn("THREE.MorphBlendMesh: animation["+a+"] undefined in .playAnimation()")};THREE.MorphBlendMesh.prototype.stopAnimation=function(a){if(a=this.animationsMap[a])a.active=!1}; +THREE.MorphBlendMesh.prototype.update=function(a){for(var b=0,c=this.animationsList.length;bd.duration||0>d.time)d.direction*=-1,d.time>d.duration&&(d.time=d.duration,d.directionBackwards=!0),0>d.time&&(d.time=0,d.directionBackwards=!1)}else d.time%=d.duration,0>d.time&&(d.time+=d.duration);var f=d.startFrame+THREE.Math.clamp(Math.floor(d.time/e),0,d.length-1),g=d.weight; +f!==d.currentFrame&&(this.morphTargetInfluences[d.lastFrame]=0,this.morphTargetInfluences[d.currentFrame]=1*g,this.morphTargetInfluences[f]=0,d.lastFrame=d.currentFrame,d.currentFrame=f);e=d.time%e/e;d.directionBackwards&&(e=1-e);this.morphTargetInfluences[d.currentFrame]=e*g;this.morphTargetInfluences[d.lastFrame]=(1-e)*g}}}; diff --git a/multisphere/index.html b/multisphere/index.html new file mode 100644 index 0000000..eddae53 --- /dev/null +++ b/multisphere/index.html @@ -0,0 +1,19 @@ + + + + The begining + + + +

      Here is stuff

      +
      + + + + + + + + + + diff --git a/multisphere/js/MultiSphere.js b/multisphere/js/MultiSphere.js new file mode 100644 index 0000000..e75cc4c --- /dev/null +++ b/multisphere/js/MultiSphere.js @@ -0,0 +1,116 @@ +var mesh_number = 25; +var renderer, scene, camera, controls, cube, container, plane, mouse= {x:0, y:0}; +var raycaster; +var objects = []; +var spheres = new Array(mesh_number); +var visible = 0; + +var loader; + +var container_size = new Object(); +container_size.width = 1067; +container_size.height = 600; + +init(); +animate(); + +function init() { + // on initialise le moteur de rendu + container = document.getElementById('container'); + container.style.height = container_size.height + 'px'; + container.style.width = container_size.width + 'px'; + renderer = new THREE.WebGLRenderer({alpha:"true"}); + renderer.setSize(container_size.width, container_size.height); + renderer.shadowMapEnabled = true; + document.getElementById('container').appendChild(renderer.domElement); + + // on initialise la scène + scene = new THREE.Scene(); + raycaster = new THREE.Raycaster(); + + // init light + var directional_light = new THREE.DirectionalLight(0xffffff); + directional_light.position.set(1, 0.5, 1).normalize(); + directional_light.castShadow = true; + scene.add(directional_light); + + var ambient_light = new THREE.AmbientLight(0x444444); + scene.add(ambient_light); + + // on initialise la camera que l’on place ensuite sur la scène + camera = new Camera(50, container_size.width / container_size.height, 1, 10000); + scene.add(camera); + + window.addEventListener('resize', onWindowResize, false); + + container.addEventListener('mousedown', click, false); + + // Création d'un objloader + loader = new THREE.OBJLoader(); + + for (var i = 0; i < mesh_number; i++) { + // Capture of i + // I am pretty good + (function(i) { + loader.load('/data/spheres/' + (i+1) + '.obj', function (object) { + object.traverse(function (child) { + if (child instanceof THREE.Mesh ) { + child.material.color.setHex(0xff0000); + child.up = new THREE.Vector3(0,0,1); + child.geometry.computeFaceNormals(); + child.geometry.computeVertexNormals(); + } + }); + spheres[i] = object; + scene.add(object); + if (i != 0) + hide(object); + }); + })(i); + } + + + plane = new Plane(1000,1000); + plane.translate(0,0,-100); + plane.addToScene(scene); +} + +function animate() { + // on appelle la fonction animate() récursivement à chaque frame + requestAnimationFrame(animate); + + camera.update(); + camera.look(); + + renderer.render(scene, camera); +} + +function onWindowResize() { + camera.aspect = container.offsetWidth / container.offsetHeight; + camera.updateProjectionMatrix(); + + renderer.setSize(container.offsetWidth, container.offsetHeight); + renderer.render(scene, camera); +} + +function click(event) { + ++visible; + visible %= spheres.length; + + console.log('Mesh ', visible + 1, ' out of ', spheres.length, ' : ', spheres[visible].children[0].geometry.attributes.position.array.length, ' vertices (with duplication...)'); + + // hide everything except visible + for (var i in spheres) + { + hide(spheres[i]); + } + show(spheres[visible]); +} + +function hide(object) { + object.traverse(function ( object ) { object.visible = false; } ); +} + +function show(object) { + object.traverse(function ( object ) { object.visible = true; } ); +} diff --git a/scene/index.html b/scene/index.html new file mode 100644 index 0000000..afda122 --- /dev/null +++ b/scene/index.html @@ -0,0 +1,26 @@ + + + + The begining + + + +

      Here is stuff

      +
      + + + + + + + + + + + + + + + + + diff --git a/scene/js/gen.py b/scene/js/gen.py new file mode 100755 index 0000000..21e9f50 --- /dev/null +++ b/scene/js/gen.py @@ -0,0 +1,49 @@ +#!/usr/bin/python3 + +import random + +N = 4; + +def rand_vector(): + print('new THREE.Vector3(', end='') + print(random.uniform(-500,500), end='') + print(',', end='') + print(random.uniform(-500,500), end='') + print(',', end='') + print(random.uniform(0,500), end='') + print(')', end='') + +def rand_color(): + chars = [ str(x) for x in range(10)] + [chr(x) for x in range(ord('a'), ord('f') + 1)] + print('0x', end='') + for i in range(6): + print(chars[random.randint(0, len(chars)-1)],end=''); + +def gen_positions(): + print('var positions = [') + for i in range(N): + print(' ', end='') + rand_vector() + print(',') + print(' ', end='') + gen_vector() + print('\n];') + +def gen_colors(): + print('var colors = [') + for i in range(N): + print(' ', end='') + rand_color() + print(',') + print(' ', end='') + rand_color() + print('\n];') + + +def main(): + gen_colors() + +if __name__ == '__main__': + main() + + diff --git a/scene/js/main.js b/scene/js/main.js new file mode 100644 index 0000000..39c2baf --- /dev/null +++ b/scene/js/main.js @@ -0,0 +1,231 @@ +var mesh_number = 25; +var renderer, scene, controls, cube, container, plane, mouse= {x:0, y:0}; +var bigmesh; +var raycaster; +var objects = []; +var cameras = new CameraContainer(); +var spheres = new Array(mesh_number); +var visible = 0; + +var loader; + +var container_size = new Object(); +container_size.width = 1067; +container_size.height = 600; + +init(); +animate(); + +function init() { + // on initialise le moteur de rendu + container = document.getElementById('container'); + container.style.height = container_size.height + 'px'; + container.style.width = container_size.width + 'px'; + renderer = new THREE.WebGLRenderer({alpha:"true"}); + renderer.setSize(container_size.width, container_size.height); + renderer.shadowMapEnabled = true; + // renderer.setClearColor(0x000000); + document.getElementById('container').appendChild(renderer.domElement); + + // on initialise la scène + scene = new THREE.Scene(); + raycaster = new THREE.Raycaster(); + + // init light + var directional_light = new THREE.DirectionalLight(0x999999); + directional_light.position.set(1, 0.5, 1).normalize(); + directional_light.castShadow = true; + scene.add(directional_light); + + var ambient_light = new THREE.AmbientLight(0x333333); + scene.add(ambient_light); + + // on initialise la camera que l’on place ensuite sur la scène + var camera1 = new PointerCamera(50, container_size.width / container_size.height, 1, 100000); + + var camera2 = new FixedCamera(50, + container_size.width / container_size.height, + 1, 100000, + new THREE.Vector3(707,-247,603), + new THREE.Vector3(683,-269,580) + ); + + var camera3 = new FixedCamera(50, + container_size.width / container_size.height, + 1, 100000, + new THREE.Vector3(727,165,310), + new THREE.Vector3(693,173,291) + ); + + var camera4 = new FixedCamera(50, + container_size.width / container_size.height, + 1, 100000, + new THREE.Vector3(-67,-105,306), + new THREE.Vector3(-103,-120,314) + ); + + scene.add(camera1); + cameras.push(camera1); + cameras.push(camera2); + cameras.push(camera3); + cameras.push(camera4); + + camera2.addToScene(scene); + camera3.addToScene(scene); + camera4.addToScene(scene); + + // var camera3 = new FixedCamera( + // 50, + // container_size.width / container_size.height, + // 1, + // 100000, + // new THREE.Vector3(500,0,500), + // new THREE.Vector3(0,0,0) + // ); + + // camera3.addToScene(scene); + // cameras.push(camera3); + + window.addEventListener('resize', onWindowResize, false); + + container.addEventListener('mousedown', click, false); + + // Load the scene + loadScene(); + + plane = new Plane(1000,1000); + plane.translate(0,0,-100); + plane.addToScene(scene); + +} + +function loadScene() { + var positions = [ + new THREE.Vector3(139.4026786273838,135.5184946130355,398.44068539970607), + new THREE.Vector3(-435.43466612542625,-213.42817928744614,357.9683852860272), + new THREE.Vector3(331.55730402813379,-554.75051838788778,327.9545043861335), + new THREE.Vector3(337.83563114154583,494.02776032947725,91.40149126173162), + new THREE.Vector3(-483.7218395537484,26.07460345877575,16.1503626453437) + ]; + + var colors = [ + 0x5bf9ef, + 0xec5e15, + 0xcac518, + 0x39c8d6, + 0x04da72 + ]; + + var seen_by = [ + [], + [3], + [1], + [2], + [2] + ]; + + var mesh_number = positions.length; + + loader = new THREE.OBJLoader(); + for (var i = 0; i < mesh_number; i++) { + // Capture of i + // I am pretty good + (function(i) { + var new_id; + loader.load('/data/spheres/' + (i+1) + '.obj', function (object) { + object.traverse(function (child) { + if (child instanceof THREE.Mesh ) { + child.material.color.setHex(colors[i]); + child.up = new THREE.Vector3(0,0,1); + child.geometry.computeVertexNormals(); + child.translateX(positions[i].x); + child.translateY(positions[i].y); + child.translateZ(positions[i].z); + new_id = child.id; + } + }); + spheres[i] = object; + scene.add(object); + objects.push({obj: object, seen_by: seen_by[i], id: new_id}); + }); + })(i); + } +} + +function animate() { + // on appelle la fonction animate() récursivement à chaque frame + requestAnimationFrame(animate); + + cameras.update(); + cameras.look(); + + renderer.render(scene, cameras.mainCamera()); +} + +function onWindowResize() { + cameras.forEach(function(camera) {camera.aspect = container.offsetWidth / container.offsetHeight;}); + cameras.forEach(function(camera) {camera.updateProjectionMatrix();}); + + renderer.setSize(container.offsetWidth, container.offsetHeight); + renderer.render(scene, cameras.mainCamera()); +} + +function hide(object) { + object.traverse(function(object) {object.visible = false;}); +} + +function show(object) { + object.traverse(function(object) {object.visible = true;}); +} + +function click(event) { + if (cameras.mainCamera() == cameras.get(0)) { + var mouse = Object(); + mouse.x = ( ( event.clientX - renderer.domElement.offsetLeft ) / renderer.domElement.width ) * 2 - 1; + mouse.y = - ( ( event.clientY - renderer.domElement.offsetTop ) / renderer.domElement.height ) * 2 + 1; + + var camera = cameras.mainCamera(); + var vector = new THREE.Vector3(mouse.x, mouse.y, 0.5); + vector.unproject(camera); + + raycaster.set(camera.position, vector.sub(camera.position).normalize()); + + var intersects = raycaster.intersectObjects(scene.children, true); + + if ( intersects.length > 0 ) { + var minDistance; + var bestIndex; + + // Looking for cameras + for (i in intersects) { + if (typeof minDistance == 'undefined' || intersects[i].distance < minDistance) { + // We will not consider a line as clickable + if (! (intersects[i].object instanceof THREE.Line)) { + minDistance = intersects[i].distance; + bestIndex = i; + } + } + } + if (typeof bestIndex!= 'undefined') { + console.log(intersects[bestIndex]); + cameras.setById(intersects[bestIndex].object.id); + } + + // Looking for objects + for (o in objects) { + if ( intersects[bestIndex].object.id == objects[o].id) { + cameras.mainCamera(objects[o].seen_by[0]); + } + } + } + } + else + { + cameras.mainCamera(0); + } + + // var pos = cameras.mainCamera().position; + // var target = cameras.mainCamera().target + // console.log("Position = ", pos.x, pos.y, pos.z); + // console.log("Target = ", target.x, target.y, target.z); +}